Орион-128/ZCard-II
Данный материал защищён авторскими правами!
Использование материала заявлено как добросовестное, исключительно для образовательных некоммерческих целей. Автор: Чистяков Владимир |
Внимание. Данное описание относится к варианту установки Z80 1991 года с помощью платки изначально называемой Z80CARD (впоследствии ставшей Z80CARD-I), которая существенно отличается от представленной на расположенном справа рисунке схемы Z80CARD-II 1993 года. Надеюсь, позднее это несоответсвующее и потому, по сути бесполезное, описание для Z80CARD-I будет заменено.
Важно сразу отметить, что назначение платки Z80CARD не столько в замене процессора на более эффективный (это легко делается без платки), а в исправлении недостатков архитектуры «Ориона». А именно - для решения цветовой проблемы и проблемы мизерного объёма резидентного ПЗУ. Частично проблему нехватки объёма ПЗУ решили с помощью внешней доп.платки называемой ROM-диском, но это далеко не одно и то же, т.к только ПЗУ в адресном пространстве позволяет расширять ROM-BIOS.
Цветовая проблема заключается в том, что экранные буфера отнимают ОЗУ в обоих страницах памяти (а не находятся в одной странице). Потому для программ доступно всего 48 кб адресного пространства. Эту проблему платка Z80CARD решает добавлением второго диспетчера ОЗУ, позволяющего скоммутировать ОЗУ так, чтобы экранные буфера оказались в одной странице ОЗУ, освободив другую страницу для программ. Это стало особенно актуально для CP/M, требующей 60 кб сплошного ОЗУ. Также данная платка вводит две страницы ПЗУ F800 с окном в 2 кб, что позволяет хранить в резидентном ПЗУ ОС ORDOS, загрузчик с дисковода или расширенный ROM-BIOS.
Название Z80CARD заимствовано от названия платки аналогичного назначения для компьютере Apple-II, позволяющей добавить в него второй процессор Z80 и использовать ОС CP/M. Там платка устанавливается в системный слот и не требуется никаких изменений на материнской плате. К сожалению, в ОРИОНЕ не открытая архитектура, потому процессор подключается к контактам старого процессора КР580ВМ80 и требуется ряд дополнительных коррекций на основной плате.
Конструктивно доработка выполняется путем удаления из основной платы центрального процессора КР580ВМ80 и подключения к оставшимся на плате контактным точкам небольшой дополнительной платы «Z80CARD». На этой плате размещается новый центральный процессор Z80, элементы обеспечивающие его работу и прерывания, доработанный узел диспетчера ОЗУ, порт для управления расширенным ПЗУ, а также необязательный узел регистра бордюра. Кроме подключения доп.платы «Z80CARD» на основной плате необходимо выполнить несколько доработок (разрезов и соединений).
Для облегчения, доработку следует выполнять на уже работающей плате стандартного «Ориона-128», поэтапно в соответствии с описанной ниже методикой. Перед началом работы следует разобраться в предлагаемой схеме, полностью уяснить логику работы и назначение сигналов.
Для начала разберёмся в том, как работает стандартный «Орион-128». В «Орионе» используется оригинальная идея из «Специалиста», позволяющая обеспечить работу процессора в режиме так называемого «прозрачного ОЗУ», что означает, что ОЗУ доступно процессору всегда, видеоадаптер не мешает процессору обращаться для чтения или записи ОЗУ.
При этом реальное быстродействие программы определяется только быстродействием самого процессора, использованным тактом процессора и самой программой (т.е набором команд данной программы). Это большое преимущество, позволяющее создавать программы реального времени, т.к всегда можно рассчитать сколько машинных тактов будет исполняться любая часть программы.
Для сравнения, непрозрачное ОЗУ имеет ЭВМ «Ириша», где прозрачность ОЗУ всего 30%, что означает, что 70% обращений процессора приходятся на занятые циклы и процессор останавливается WAIT-ом. Из-за этого в «Ирише» эффективный такт CPU падает на 40%. Все остальные имеющиеся в стране 8-ми разрядки не обладают прозрачным ОЗУ, например, «ZX-48K», «Вектор», «Львов», «РК86», и из-за непрозрачности ОЗУ имеют эффективный такт на 20% ниже клока процессора.
Идея получения «прозрачного ОЗУ» на компьютерах с процессором КР580, по видимому, является отечественной разработкой, и была применена для «Специалиста» А. Волковым. «Орион-128» по сути является «Специалистом» со второй банкой ОЗУ и на мой взгляд было не очень красиво в публикации не упомянуть, что основная идея принадлежит А.Волкову. В чем же заключается идея А. Волкова?
Как известно машинный цикл 580-го процессора при обращении к ОЗУ или В/У (без WAIT) состоит из 4-х машинных тактов, причем на такте T1 выдается сигнал SYNC. Чтение и запись осуществляются на тактах T2 и T3. Для регенерации видео-изображения видеоадаптеру достаточно одного обращения к ОЗУ за два машинных такта.
Для реализации прозрачности, процессору для доступа к ОЗУ выделяется всего один такт, а именно T2. Причем для определения такта T2, используется сигнал SYNC, который всегда формируется в такте T1. Для этого сигнал SYNC просто защёлкивается тактом F2 процессора в D-триггер (D13.2), т.е задерживается на один такт и полученный сигнал (называемый DSYNC) используется для разрешения процессору доступа к ОЗУ.
Таким образом процессор имеет право читать и записывать в ОЗУ только во время такта T2, что не совсем корректно, т.к если сигнал /RD почти совпадает с периодом T2, то сигнал /WR начинается в середине T2 и продолжается в такте T3 (он как бы укорачивается для ОЗУ вдвое, но динамическим ОЗУ этого достаточно).
Разработчики компьютеров на Z80 не могли воспользоваться этой идеей, т.к в нем нет сигнала SYNC, именно поэтому во всех компьютерах на Z80 используется WAIT, т.е ОЗУ непрозрачно. Разобравшись в принципе работы «Ориона», нам удалось реализовать на этом же принципе прозрачное ОЗУ с процессором Z80. Для формирования сигнала DSYNC используется то, что в Z80 сигнал /MREQ начинается уже в такте Т1.
В предлагаемой схеме отсутствующий сигнал SYNC эмулируется из сигналов /MREQ и /RFSH с помощью простейшей схемы. Однако если в КР580 сигнал /RD длится только такт T2, то в Z80 сигналы /RD и /WR длиннее. Если для записи в ОЗУ это не существенно, то для чтения приводит к ошибке: такт T2 закончился, буфера ОЗУ закрылись, а Z80 еще читает данные с шины.
В «Орионе» это усугубляется тем, что в отличие от «Специалиста» SYNC «защелкивается» более ранним сигналом (т.е и буфера закрываются раньше), а также отличающейся логикой управления буферами. Из-за этого при установке Z80 на «Орион» приходится дополнительно задерживать сигналы управления буферами ОЗУ, а именно на 9 «ноги» буферов ОЗУ D49 и D50 вешать емкость 2500-3000 пф на землю (а вот на «Специалисте» это делать не требовалось). В качестве клока Z80 используется сигнал F2TTL. Узел прерывания аналогичен узлу запроса немаскируемых прерываний «зоновского клона ZX-Spectrum».
Обратите внимание, что плата формирует сигналы чтения и записи в ОЗУ (MEMW и MEMR) неинвертированные. Сигнал MEMR соответствует сигналу DBIN КР580, а что касается сигнала /WR его КР580 формирует уже инвертированным, поэтому на основной плате следует исключить лишний инвертор D59.2 (не указанные выводы D59.3 это контакты 5 и 6). Сигнал SND с платы Z80CARD — это звук, он соответствует сигналу INTE КР580.
Сигналы ROM1 и ROM2 это сигналы для чтения основного и дополнительного ПЗУ по адресу F800, подключаются к 20-тым ногам этих ИМС (если не планируется ставить второе ПЗУ, то и не надо трогать, при этом всегда будет одна страница ПЗУ F800).
На микросхеме D2 реализован дополнительный системный регистр (доступный только по OUT FB), управляющий прерыванием и адресацией ОЗУ.
ИМС D4 - мультиплексор обеспечивающий формирование логических адресов A15, A16, A17. D4/15 подключите к земле, а D4/2 к сигналу X15. Сигналы X15, X16 и X17 это физические адреса. X15 формируется процессором, а X16 и X17 это сигналы из регистра управления банками ОЗУ D18.1 (OUT F9). Сигналы A16 и A17 должны подаваться на основную плату вместо сигналов снимаемых ранее с D18.1/15 и D18.1/16 соответственно (т.е отрезать эти выводы от печатных проводников).
Необходимо также подать на плату сигналы инверсный сброс (/RES) и кадровые синхроимпульсы (KSI). Сигналы F8, F9, FA это «чип-селекты» системных регистров, они подаются на основную плату вместо сигналов формируемых ранее дешифратором D27 (ИД4), а именно D27/9 F8, D27/10 F9, D27/11 FA.
ИМС D6 это регистр бордюра. Сигнал V1 используется для индикации (светодиод «РУС/ЛАТ», это важно для владельцев МС7007, в схеме включения которой нет индикации). Для работы с Z80CARD вы можете использовать Мониторы-2 или 3, однако при этом не будет звуковой индикации (в Z80 нет сигнала INTE, кстати это очень неразумно использовать прерывания для звука).
Поэтому целесообразно подпрограмму BEEP (F83F) в Мониторе переделать (это очень просто сделать, новая п/п 14 байт, вместо 27 в оригинальном ПЗУ). Имеется вариант Монитора-3 (для обоих клавиатур) для доработанного до Z80 «Ориона». В нем, благодаря замене 3-х байтовых переходов 2-х байтовыми (JR), удалось разместить, кроме собственно Монитора-3 еще и загрузчик НГМД, а также доработать п/п-мы F836/F839 (они работают теперь со всем ОЗУ и не «теряется» по 4 кб ОЗУ в каждой банке впустую).
1. Включите свой «Орион-128» и убедитесь что всё работает. Выключите питание и с помощью маленьких кусачек выкусите процессор КР580 (больше он вам не понадобится, а сохранить печать важнее).
2. Удалите печатные проводники от контактов КР580 с номерами: 11, 13, 14, 18, 21, 22, 23, 24 и 28. Эти сигналы не требуются Z80 и через эти контакты на плату Z80CARD будут подаваться другие сигналы.
3. Удалите перемычку D59/4-D59/5 и соедините D59/5 с 18 контактом D19 (КР580).
4. Резистор R10 замените на 220 Ом и вместо +12 вольт подайте на него +5 вольт (F2TTL). Резистор R11 можно совсем удалить (см. ниже).
5. Соедините D18.2/8 с D19/13 (/RES)
6. Подпаяйте проводники от Z80CARD ко всем 40 контактам D19 (КР580)
7. Между 9 и 10 контактами буферов ОЗУ (ВА86) включите емкости 2700 пф
8. На 4 ногу DA1 (УД6) вместо -5 вольт подайте землю.
9. Установите в панель ПЗУ Монитор-1 или журнальный тест ОЗУ (ж.Радио 02.1991) и подайте питание (теперь только +5 вольт).
Добейтесь работы Монитора-1 или прохода теста ОЗУ. Если плохой сброс увеличьте емкость C2 до 1,5-2 мкф (керамич.). Иногда требуется подобрать ёмкость в формирователе сигнала «SYNC» (270 пф) и емкости для задержки «/OE» 580ВА86. Монитор-3 (2) не будет пока работать, т.к он использует команды OUT для работы с В/У, а Z80 в отличие от КР580 выставляет адреса внешних устройств только на младшей половине адресов.
Можно реализовать второй вариант «формирователя DSYNC» (лучший) для чего переключить такт (CLOCK) с «F2TTL» на «F1TTL», в формирователе DSYNC на входе D13/12 убрать дифф.цепочку (закоротить емкость 270 пф, убрать земляной резистор 1К) и на плате «Ориона» у триггера D13 соединить R-вход (13 нога) с D-входом (12 нога). При таком варианте не требуется подключать ёмкости на «/OE» буферов. К сожалению, выпущенная печ.плата Z80CARD выполнена по старому (специалистовскому) варианту, но как видите отличие этих вариантов незначительно и поэтому выбор за вами.
Новый вариант формирователя DSYNC (с соединением R и D входов триггера) лучше, т.к не требует настройки, в то время как про первый вариант были сообщения, что для Z80 некоторых фирм требовалась подборка константы RC-цепочки.
Чтобы работали команды OUT выключите питание и выполните:
10. Отрезать у D27 печатные проводники от контактов: 9, 10, 11 и эти печатные проводники соединить с сигналами F8, F9, FA на разъеме X1 платы Z80CARD.
11. Установите Монитор-3, включите питание и добейтесь работы компьютера в полном объеме. Все должно работать также как и до переделки.
А теперь выключите питание и сделайте последний шаг:
12. Отрезать D18/15 и D18/16 от печатных проводников и эти печатные проводники соединить с D19/23 и D19/21 соответственно (A16 и A17). Сами же выводы D18/15 и D18/16 соединить с D19/24 и D19/22 соответственно
13. Отрезать у ПЗУ D22 20 контакт от печатного проводника и соединить с D19/11 (ROM1). Если у вас уже есть наша версия расширенного BIOS, то на ПЗУ с маркировкой 0, напаяйте ПЗУ с маркировкой 1. Все контакты кроме 20 в «параллель». Установите это «удвоенное ПЗУ» в панель и соедините D19/8 (ROM2) с отогнутой 20 ногой верхнего ПЗУ. Если у вас еще нет нашей версии BIOS, опять поставьте свой «старый» Монитор (2 или 3) и включайте питание.
Добейтесь полной работы компьютера, проверьте возможности вывода звука, коммутации банок ОЗУ как в режиме «128» (сигнал MZ=1), так и в режиме «Z» (MZ=0). Учтите, что сигнал MZ (это D2/15) по сбросу равен 0, т.е по сбросу компьютер находится в режиме «Z». Для работы со всеми старыми программами необходимо записать в порт FB (для настройки можете это сделать аппаратно) в разряде D7 единицу (Монитор для Z80CAD-I это делает при инициализации). После того, как убедитесь в полной исправности переходите к пункту 14.
14. Для того, чтобы работали некоторые «старые» игры, переключающие регистры F8, F9, FA командой «STA», можете установить вместо 155ЛА7 ИМС 155ЛИ1 (см.схему). Эта микросхема обеспечит «попадание» в системные регистры, командами STA F800/F900/FA00, и тем самым работу всех программ. Так как программ с «некорректными» командами OUT для попадания ими в ОЗУ всего две: «Moon-fox» и «Silent-service», то делать дополнительные аппаратные затраты только ради них не имеет смысла.
15. Подключите контроллер НГМД и проверьте его работу. Надежность его работы должна значительно повыситься. При процессоре Z80 даже можно отключить узел добавляющий такт WAIT при обращении в порт КНГМД. Это потому, что Z80 выдаёт более длительные сигналы /RD и /WR, чем процессор КР580ВМ80 без системного контроллера. В вот ВК28 формирует сигналы /RD и /WR более длительные, потому при ВК28 для КНГМД не нужно вводить такты WAIT (потому «Специалист» с ВК28 работал с дисководом надёжнее, чем без ВК28).
PS. На доработанном таким образом «Орионе» будет прекрасно работать CP/M с BIOS SP-Computer Club-а (1990). Данная версия CP/M в отличие от так называемого «авторского варианта CP/M» работает в дополнительной странице ОЗУ, там же, где расположен экранный буфер атрибутов цвета. Это целесообразно, т.к при этом для CP/M доступно 60К, при этом работают все программы (фирменным программам и компиляторам ЯВУ мало 48К).
Однако при CP/M в странице 1 нельзя использовать цвет (для фирменных программ CP/M это не вредит, т.к CP/M не поддерживает ни графику, ни цвет, потому в CP/M нет цветных программ).
Доработанный таким образом «Орион» легко позволяет устранить этот недостаток, т.е можно «отдать» для CP/M 60К ОЗУ и в то же время иметь цвет. Для этого даже не надо менять DOS, - достаточно чуть изменить дисковый загрузчик. Дисковый загрузчик должен перед началом работы включить экран с 0, включить доп.диспетчер платы Z80CARD и по адресам 0-7FFF скоммутировать старшую страницу (32К) из основной банки. Тем самым для CP/M создаётся непрерывное ОЗУ 60К и в то же время для CP/M-программ возможен цвет.
Следует сразу же заметить, что вводить цвет и графику в программы, написанные для CP/M, стоит только корректно т.е расширяя управляющие коды дисплея («искейп»-последовательности), а не так как это делают авторы «Ориона» в своих программах (они непосредственно «лезут» в экран для того, чтобы нарисовать простейшие рамки, вместо того, чтобы использовать «псевдографику», как это делается в промышленных ЭВМ). При этом при запуске программы подгружается расширение ROM-BIOS (драйвер), которое обеспечивает обработку дополнительных упр.кодов (управление цветовыми режимами, цветом символов и фона, загрузкой знакогенераторов/фонтов; можно посмотреть как это делается в ROM-BIOS «ИРИШИ»).
Некоторые из этих функций (а именно, отсутствующие в ПЗУ искейп-коды VT52) обеспечивает расширенный BIOS (2-х банковое ПЗУ F800) для описанного варианта доработки «Ориона». Заметим, что получение цвета и CP/M на 60К на недоработанном «Орионе» возможно только после установки дополнительной 3-ей банки ОЗУ (2 TTL ИМС диспетчера ОЗУ явно дешевле, чем 8 шт. 565РУ5 + буфер) и переноса DOS туда. Но перенос DOS в третью банку ОЗУ бесперспективен, т.к далеко не у всех даже спустя пару лет ОЗУ будет расширено.
Таким образом как с точки зрения игр, так и использования «Ориона» для деловых применений указанная доработка является необходимой. Для получения документации о других апп.доработках и новых программ для «Ориона» звоните по телефону (812)-106-35-24 (17.00-23.00) или пишите: 192238 Санкт-Петербург а/я 175. Чистяков Владимир, Январь 1992.