ZX-Ревю 1996 №4-5 1996 г.

Компьтеры, которые мы выбираем - доступ к верхней области памяти.


КОМПЬТЕРЫ, КОТОРЫЕ МЫ ВЫБИРАЕМ

© Шиляев Павел (Stellar company inc), г. Кирово-Чепецк, 1996.

ДОСТУП К ВЕРХНЕЙ ОБЛАСТИ ПАМЯТИ.

Я пишу вам по поводу решения проблемы с различными способами доступа к верхней памяти в различных машинах. Ведь не секрет, что сейчас появляется много программ, использующих верхнюю память, но они ориентированы, в основном, на один тип компьютера. Но как же быть пользователям других компьютеров?

Первое решение этой проблемы я вижу в создании специального файла RAM_DRIVE. Пусть в нем хранится подпрограмма, обслуживающая верхнюю память компьютера. Все, что нужно создателю программы, так это объяснить какие параметры должна эта подпрограмма использовать, где располагаться и т. д., тогда каждый пользователь, умеющий программировать, напишет свой вариант подпрограммы RAM_DRIVE.

Другой способ я вижу такой: пусть все пользователи компьютеров с расширенной памятью дадут исчерпывающую информацию о своем компьютере на страницах "ZX-РЕВЮ". Тогда создатель ПО по этим данным сможет адаптировать свое творение ко многим машинам.

В свою очередь, я предлагаю информацию о компьютере PROFI.

Памятью он оперирует с помощью двух портов: CMR1 (#DFFD) и CMR0 (#7FFD). Порт CMR0 ничем особым не отличается от порта в обычном 128 компьютере, поэтому рассмотрим "поближе" порт CMR1 и назначения его битов: D0 в

D1 - ► Номер проецируемой страницы памяти. D2 J

D3 ► Выбор положения окна проецирования сегмента памяти:

0 - окно N1 (#C000 - #FFFF)

1 - окно N2 (#4000 - #7FFF)

D4 ► блокировка ПЗУ, на его место включается страница 0. D5 ► 1 - блокировка контроллера ВГ93, включение его портов на доступ из ОЗУ. D6 ► проецирование дополнительного экрана SEG 06 в карту памяти процессора на место SEG 02. D7 ► 0 - экран SPECTRUMа 1 - экран PROFI.

Как же происходит переключение? Вы выдаете в порт #7FFD номер сегмента (как на обычном 128) - это будет столбец (см. таблицу), а в порт #DFFD выдаете строку (разряды D0-D2). И по этим данным выбирается страница. Это можно проиллюстрировать следующей таблицей:

CMR0

0 1 2 3 4 5 6 7

0

00

01

02

03

04

05

06

07

1

08

09

10

11

12

13

14

15

C

2

16

17

18

19

20

21

22

23

M

3

24

25

26

27

28

29

30

31

R

4

32

33

34

35

36

37

38

39

1

5

40

41

42

43

44

45

46

47

6

48

49

50

51

52

53

54

55

7

56

57

58

59

60

61

62

63

Здесь условно показана память компьютера PROFI, т.е. 00,01,...,63 - это номера банков памяти. Пример: выдаем в порт CRM0 байт 0ххххх000, а в порт CMR1 байт 06, тогда с адреса #С000 у нас будет стоять банк 48.

В таблице показана память PROFI 1024K, но как эта память выглядит на PROFI 512K и как с ней оперировать? На самом деле все очень просто! В компьютерах с памятью меньше, чем 1024K, некоторые "банки" памяти отсутствуют (в моем компьютере, например, нет "банков" памяти с 16 по 47), а как обращаться к остальным "банкам" памяти мы рассмотрели выше. Только учтите, если выбрать отсутствующий "банк" памяти, то с адреса #C000 будут числа #FF, и записать туда ничего нельзя. Этим фактом можно пользоваться при составлении карты памяти компьютера.

Внимание!!! Если Ваша программа рассчитана на PROFI, то перед началом работы проверьте наличную память, или предложите пользователю самому составить таблицу распределения "банков" памяти. Это необходимо, так как отсутствовать могут любые "банки" памяти.

Теперь насчет того, как определить наличие порта CMR1. Для этого можно заблокировать ПЗУ и записать туда что-нибудь. Если запись прошла успешно, то порт CMR1 имеется в наличии. Другой способ: заносим по адресу #C000 число 1 и подаем в порт #DFFD байт 01. Если после этого из адреса #C000 считано другое число, то в Вашем компьютере также есть порт CMR1.




СОДЕРЖАНИЕ:


  Оставте Ваш отзыв:

  НИК/ИМЯ
  ПОЧТА (шифруется)
  КОД



Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
Железо - обзор микропроцессора Zilog Z380, продолжение.
Черная бездна - новелла "Рыцари новой земли" (по игре "Черная бездна").
Обо всём - подробный отчет с Funtop'98 от MMA (глава 1-4).
HOT GAMES - Лучшая десятка от Magic Soft.
Ретро - 40 лучших процедур: Поиск подстроки.

В этот день...   24 апреля