Радио-86РК/Радио 10-91/ROM-диск

Материал из Emuverse
Версия от 14:50, 10 декабря 2008; Panther (обсуждение | вклад) (http://retro.h1.ru/RK86/ROMdsk/ROMDsk.php)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Данный материал защищён авторскими правами!

Использование материала заявлено как добросовестное, исключительно для образовательных некоммерческих целей.

Автор: М. ОВЕЧКИН, Ю. КРЫЛОВ

Источник: http://retro.h1.ru/RK86/ROMdsk/ROMDsk.php

Радиолюбительство переживает настоящий компьютерный бум. «Радио-86РК» — этот «восьмимесячный ребенок», не умеющий рисовать, с ограниченными ресурсами памяти, не различающий цвета, без периферии — оказался тем не менее «забавным» и «нужным» в руках серьезных «пап». Вероятно, это случилось потому, что, несмотря на недостатки, РК обладал несколькими важными достоинствами: минимальное число комплектующих, возможность приобретения печатной платы, приличное программное обеспечение.

Пять лет эксплуатации РК подтвердили его способность быть хорошим помощником в изучении алгоритмических языков BASIC и Ассемблер. А использование его в качестве контроллера позволяет компьютеризовать большинство технологических процессов.

Конечно, неплохо бы иметь на этом ПК какую-нибудь дисковую операционную систему, например СР/М. Но массовому радиолюбителю накопитель на гибких магнитных дисках еще долго будет только сниться. Можно иметь ДОС на электронном диске, да и то с некоторыми ограничениями. В этом случае остается вопрос — как делать загрузку диска на 256-— 512 Кбайт? Загружать его с магнитной ленты и держать автомобильный аккумулятор в качестве резервного питания при сбоях в сети, мягко говоря, несерьезно.

Выход из положения может быть найден в более эффективном использовании ресурсов внешнего ПЗУ, подключаемого к компьютеру через уже установленный интерфейс на микросхеме D14. В журнале уже предлагалось несколько способов подключения ПЗУ с использованием директивы «R», обеспечивающей считывание информации из ПЗУ в ОЗУ. Однако, если число программ, хранимых во внешнем накопителе, большое и все они работают в разных областях ОЗУ, то пользователю надо помнить все адреса запуска (нерадостная перспектива). Следовательно, необходимо разработать программу управления внешним ПЗУ (ROM-ДИСК), которая возьмет на себя заботы о том, что, откуда и куда перенести .и запустить в работу.

Теперь посмотрим, каких это потребует изменений? Лучше всего было бы встроить программу управления в МОНИТОР. Однако, даже исключив директиву «X» и освободив порядка 80 Байт, программу управления ROM-ДИСКОМ встроить в МОНИТОР не удастся. Ее придется разместить в том же внешнем ПЗУ, использовав часть адресов ROM-ДИСКА. В свободном пространстве МОНИТОРа можно разместить только загрузчик, который загрузит в ОЗУ и запустит программу управления ROM-ДИСКОМ. обращение к загрузке происходит по оставшейся директиве «X», переименованной в «U».

Программа управления из ПЗУ переносится в верхние адреса ОЗУ (7400H-75FFH), однако объема ОЗУ пользователя она не уменьшает. Дело в том) что по окончании работы с ROM -диском хранить в ОЗУ программу управления нет необходимости, так как ее всегда можно перезапустить из МОНИТОРа.

Что же должна выполнять программа обслуживания ROM-ДИСКА? Полуторогодовая работа с первой версией ROM-ДИСКА показала, что прежде всего она должна выводить на экран каталог программ, содержащихся на диске, автоматически переписывать любую из них в ОЗУ и запускать в работу, не требуя от пользователя ввода информации по каким адресам программа расположена в ПЗУ и ОЗУ. Уйти от запоминания или записи на листе бумаги адресации множества программ — вот основная задача, возлагаемая на программную поддержку диска. Кроме того, необходимо обеспечить хранение «промежуточной» информации, полученной в результате выполнения какой-либо программы. Такую информацию можно хранить в заранее оговоренной области ОЗУ и возвращать на «старое» место по желанию пользователя. Примером может служить создание документа редактором текста, в то время как данные для него готовятся с помощью программ на Бейсике. При вызове Бейсика из ПЗУ необходимо созданный документ сохранить во временном буфере, а затем внести в него полученные данные и вернуть в текстовый буфер.

Практика подсказала, что должно всегда быть на ROM-диске:

  • BASIC «МИКРОН»,
  • ПАКЕТ «ED.+ASSM»,
  • «ОТЛАДЧИК»,
  • «ДРАЙВЕР ПЕЧАТИ»,
  • «СОРТИРОВКА»,
  • «ПРОГРАММАТОР».

Общий объем программ равен 22К байт. Естественно, что у каждого конкретного пользователя набор программ может быть иным.

По мере эксплуатации диска в него можно будет вносить изменения, не затрагивающие ни МОНИТОР, ни аппаратные средства, ни ресурсы ОЗУ.

С другой стороны, не хочешь работать в среде ROM-ДИСКА, пользуйся директивами МОНИТОРа.

А теперь о конкретной реализации ROM-ДИСКА, начиная с аппаратной части. Диск представляет собой печатную плату — «слепыш». На плате установлены панельки для 4 микросхем 573РФ4А (зарубежный аналог 2764). Все соединения выполнены объемным монтажом по приведенной на рис.1 схеме. Диск подключают к компьютеру с помощью кабеля через 3 порта микросхемы D14, установленной в РК в качестве дополнительного интерфейса. На плате установлены также конденсаторы развязки по питанию: один конденсатор емкостью 100 Мк и по одному керамическому конденсатору емкостью 0,1 Мк около каждой микросхемы.

Дешифратор DD15 выбирает необходимую микросхему ПЗУ при подаче на его входы сигналов с линий адресов А13, А14 микросхемы К580ВВ55.

Вместо микросхем 573РФ4А можно использовать более распространенные К573РФ2(5), с соответствующей дешифрацией выбора сигнала CS. Однако число микросхем при этом существенно увеличится.

Таблица 1

1. ИЗМЕНЕНИЯ ДЛЯ ВВОДА НОВОЙ ДИРЕКТИВЫ "U": 
FB6C:  FE 55     .U       CPI   55 
F86E:  СA 73 FF  .С.      JZ    FF73
2. ИЗМЕНЕНИЯ ПОДПРОГРАММЫ FA68H: 
FA6D:  СЗ 82 FF  ...      JMP   FF82
3. ЗАГРУЗЧИК УПР. ПРОГРАММЫ ROM-DISK/32K-
FF75:  21 00 7Е  !.Ч      LXI   Н,7Е00 
FF76:  11 FF 7F  ...      LXI   D,7FFF 
FF77:  01 00 74  ..T      LXI   В,7400 
FF7C:  C5        .        PUSH  B 
FF7D:  CD 6В FA  .X.      CALL  FA6B 
FF80:  E1        .        POP   H 
FFB1:  E9        .        PCHL
4. ДОБАВЛЕНИЕ В ПОДПРОГРАММУ FA68H: 
FFB2:  ЗЕ 80     >.       MVI   A,80 
FFB4:  B4        .        ORA   H 
FFB5:  52 02 A0  2..      STA   A002 
FFB8:  22 01 A0  "..      SHLD  А001 
FFBB:  C3 70 FA  .П.      JMP   FA70

Все изменения, внесенные в МОНИТОР, приведены в табл.1. Обусловлены они следующими причинами.

Для микросхем 573РФ4 при переходе из режима ожидания в режим считывания сигнал СS («Выбор кристалла») необходимо подавать не менее чем за 10 мкс до подачи сигнала СЕ0 («Разрешение по выходу»). Это значит, что подпрограмма считывания из ПЗУ, находящаяся в МОНИТОРе по адресу FA68H, в том виде, как она есть, не позволяет достоверно считать данные из микросхем. Сигналы CS и СЕ0 она выдает практически одновременно. В табл. 1 приведена доработанная подпрограмма считывания из ПЗУ. Там же даны изменения адреса директивы « U» и непосредственно программа — загрузчик.

В табл.2 приведена программа управления ROM-ДИСКОМ, выполненная на Ассемблере. Машинные коды программы, а также контрольные суммы отдельных блоков и программы в целом приведены в табл.3, 4.

Таблица 4 
ДАМП      КОНТР. СУММА
7400-74FF 5E25 
7500-7562 EDD6
7400-7562 6AFB

Программу управления записывают в ПЗУ по адресам 7Е00Н—7FFFH. Она состоит из 4 отдельных подпрограмм: собственно поиска и пересылки требуемой системной программы, копирования во временный буфер набранного текста при работе в редакторе, обратной пересылки из временного буфера в текстовый и очистки памяти.

Работа с ROM-ДИСКОМ несложна: сначала из МОНИТОРа вводят директиву «U» и нажимают «ВК». Программа — загрузчик переписывает из ПЗУ в ОЗУ программу

*ROM-DISK/32K” V2.0-91
DIR:
<0> - BASIC 
<1> - ED/ASSM 
<2> - DP/DDT 
<3> - SORT UT 
<4> - DRIV/260 
<5> - PROGR
<S> - BUFF 
<L> - RED 
<Z> - 0/RAM

Нажатием цифровых клавиш от 0 до 5 можно вывести в ОЗУ и запустить соответствующую программу. При вводе директивы «Z» происходит очистка ячеек памяти с адресами 0000H—73FFH.

При необходимости сохранить текст, набранный с помощью редактора ED."МИКРОН", следует выйти из редактора в МОНИТОР, а затем запустить программу управления ROM-ДИСКОМ. При вводе директивы «S» происходит пересылка текста во временный буфер. Обратная операция проводится при вводе директивы «L». Если длина текстового файла превышает значение 49FFH, то пересылки не происходит, на экран выводится сообщение «OUT OF BUFF». В программе управления (см. табл.2) есть команда очистки ячейки ОЗУ с адресом 2117Н. Это необходимо для правильного запуска интерпретатора BASIC «МИКРОН». Кроме того, нет необходимости заново инициализировать указатель стека, так как по окончании работы с каталогом ROM — ДИСКА стек остается в области 7500Н—75FFH.

Распределение адресного пространства ROM-ДИСКА:

РАСПРЕДЕЛЕНИЕ АДРЕСНОГО ПРОСТРАНСТВА ROM-DISK/32KB
УПР.ROM-DISK (0.5KB)  7FFFF
PROGR ( 1.5KB)        7E00H
DRIVER/260 (1.5KB)    7A95H
SORT UT (2KB)         74E4H
РЕЗЕРВ ( 10.5КБ)      6E4EH
DP (4KB)              4000H
ASSM (2KB)            3000H
ED (2KB)              2800H
BASIC (8KB)           2000H

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

Программа управления рассчитана на обслуживание 16 программ (7562Н—75FFH). Для работы с новыми программами необходимо изменить метку CONST в соответствии с числом программ, дописать каталог (метка SOI) в таблицу адресов (метка TABL). При этом заново переписываются верхние 2 блока четвертой микросхемы ПЗУ ROM-ДИСКА.

Формирование (запись) ROM-ДИСКА — дело довольно трудоемкое. Необходимо хорошо «просчитать» адреса ПЗУ, чтобы программы заносились «Байт в байт», без свободных промежутков между ними. Особенно трудно стыковать программы при использовании микросхем К573РФ2(5).

Рассчитать физические адреса частей программы, расположенных в разных ПЗУ, поможет ASSM."МИКРОН". Например, Ассемблер допускает запись в псевдокоманду «DW» адресов «ХХХХН—YYYYH», «XXXXH+YYYYH», где XXXХН — конечный (исходный) адрес программы, а YYYYH — объем программы в Байтах.

По окончании формирования ROM-ДИСКА Вы оцените преимущества работы в среде внешнего ПЗУ с использованием программы управления по сравнение с вводом программ по директиве «R» МОНИТОРа, и тем более с вводом программ с магнитной ленты.

М. ОВЕЧКИН, Ю. КРЫЛОВ, Серпухов — Москва

Отсканировано с Журнала Радио № 10 1991 г.
Отредактировано Лесных Ю.