Орион-Про/Описание режимов работы
Данный материал защищён авторскими правами!
Использование материала заявлено как добросовестное, исключительно для образовательных некоммерческих целей. Автор: (C) 1990-1996 ORIONSOFT |
1. Аннотация
В данном руководстве описаны режимы работы компьютера «Orion-Pro», порядок их назначения, а также интерфейс отладочного Монитора.
2. Процедура «холодного» старта
Назначение режимов работы выполняется процедурой «холодного» (начального) старта после включения компьютера (или нажатия кнопки «Сброс») с учетом состояния DIP-переключателей (SW1-SW8) на основной плате, которые определяют конфигурацию системы.
On 1 2 3 4 5 6 7 8 Стандартная конфигурация: ┌─┬─┬─┬─┬─┬─┬─┬─┐ – дисковод; │▀│▄│▀│▄│▄│▄│▀│▄│ – клавиатура: MC7007; └─┴─┴─┴─┴─┴─┴─┴─┘ – ORDOS из ROM2. Off
Каждый из восьми переключателей имеет два устойчивых положения и позволяет выбрать одно из значений соответствующего параметра:
1 Наличие дисковода: On – есть, Off – нет; 2 Наличие жесткого диска: On – есть, Off – нет; 3 Тип клавиатуры: On – MC7007 (основная клавиатура), Off – PK86; 4 Рабочая страница ОЗУ для внутренней CP/M-80 из ROM2: On – 2, Off – 1; 5 Наличие контроллера символьного дисплея: On – есть, Off – нет; 6 Запуск внутреннего Меню после сброса: On – есть, Off – нет; 7 Тип загрузки операционной системы: On – внутренняя (ПЗУ), Off – внешняя; 8 Режим работы: On – «Pro», Off – «Orion-128» (CP/M-80) (ORDOS)
Примечание: положению «On» соответствует замкнутое состояние (смотри схему) переключателя, «Off» — разомкнутое.
Если переключатель «6» установлен в положение «On», то при «холодном» старте на экране появляется Меню:
T E S T Orion-128 Orion-Pro Monitor
Выбор требуемого режима осуществляется с помощью клавиш управления курсором и завершается нажатием клавиши ВК.
ВНИМАНИЕ: Если переключатель «6» установлен в положение «Off», то войти в данное Меню можно, нажав одновременно две любые клавиши сразу после «сброса» (включения) компьютера.
2.1. Режим «TEST»
При входе в режим «TEST» на экране появляется подменю:
Configuration RAM T e s t ROM T e s t TV T e s t
При обращении к пункту «Configuration» на экран выводится состояние DIP-переключателей, определяющих конфигурацию системы.
1 Floppy drive Yes (No) 2 Hard drive No (Yes) 3 Keyboard M7007 (RK86) 4 Page OS-DOS 1 (2) 5 Ext.display No (Yes) 6 StartMenu No (Yes) 7 Loading ROM2 (Extrn) 8 System ORDOS (OS-DOS)
В режиме «RAM Test» проверяется доступность записи/чтения в сегменты основной памяти компьютера. При благоприятном исходе теста выводится звуковой сигнал и сообщение: «512К ОК!». Если в какой-либо сегмент памяти информация не записывается, то выводится следующее сообщение «Error» и два звуковых сигнала.
Следует иметь ввиду, что данный тест не проверяет качество памяти — это делается с помощью отдельных тест-программ. Задача внутреннего теста проверить работоспособность механизма управлениями окнами и доступность сегментов памяти к операциям записи.
В режиме «ROM Test» проверяется целостность стартового ПЗУ. Для этого просчитывается его контрольная сумма. Если нарушений нет, то выводится сообщение «ОК!» и один звуковой сигнал, в противном случае — «Error!» и два звуковых сигнала.
«TV Test» это тест для проверки правильности вывода градаций яркости на монитор. На экране монохромного монитора появится 16 вертикальных полос с нарастающей яркостью. В левой части экрана монитора будет самая темная полоса, а справа — самая светлая. С помощью этого теста можно производить точную подгонку резисторов ЦАП монохромного видеовыхода.
На экране цветного монитора «TV Test» будет проявляться в виде 8-ми цветных полос в следующей последовательности слева на право: черный, синий, красный, фиолетовый, зеленый, бирюзовый, желтый, белый. Если последовательность цветов не совпадает, то необходимо уточнить правильность подключения цветного монитора.
Для выхода из подменю «TEST» в главное меню используется клавиша АР2.
2.2. Режим «Orion-128»
При входе в этот режим открывается окно ROM2 и управление передается по адресу 2000H специальному загрузчику, размещенному в 0-м сегменте ПЗУ (если микросхема «ROM2» установлена). Предполагается стандартом, что в данном сегменте объемом 8 Кбайт (может быть, единственном) записан штатный «Монитор-2» и система «ORDOS» с программой «PC» (Power Commander — «Нортон»). Однако, пользователь может разместить там другую систему по-своему усмотрению. Следует иметь ввиду, что при размещении альтернативной системы (вместо ORDOS) по адресу 2000Н должна находиться и своя управляющая программа — загрузчик, который «знает что делать» с вашей системой.
После загрузки «Монитор-2/PRO», система проверяет состояние DIP-переключателя «7». От его состояния будет зависеть загрузка ORDOS: On — внутренняя ORDOS из ROM2 (эта система сама «знает», где она находится и как себя грузить), Off — внешняя ORDOS (не обязательно) — из мультикарты.
Внутренняя ORDOS при обращении к ROM-диску проверяет его первый байт: если его значение равно 00H или 0FFH, то считается, что ПЗУ в панельке отсутствует, если это значение 0C3H (код команды JMP), то предполагается, что у пользователя установлено «старое» ПЗУ из ROM-диска «Орион-128.2», начальные 2К которого содержат ORDOS, а сами программы находятся с адреса 800Н. Если же значение первого байта другое (как стандарт определен код 0E7H), то предполагается, что информация записана в НОВОМ формате. Новый формат устанавливает, что программы в таком ПЗУ начинаются с адреса 10Н (зачем оставлять 2К вначале, если сама ORDOS находится в другом месте). Содержимое ячеек 10FH зарезервировано и должно иметь значение 0FFH. Внутренняя ORDOS автоматически распознает форматы записи информации в ROM-диске, поэтому в панельки на мультикарте можно устанавливать одновременно ПЗУ с разными форматами.
Таблица векторов стандартных подпрограмм «Монитор-2/PRO», доступная пользователю в режиме «Orion-128», в основном совпадает с соответствующей таблицей компьютера «Орион-128», однако имеет и новшества:
F800 (START) – холодный старт BIOS (вход в Монитор) F803 (KBRD) – ввод с клавиатуры F806 – не используется F809 (TVC) – вывод символа (C) на экран F80C – не используется F80F (TVA) – вывод символа (A) на экран F812 (STTS) – статус клавиатуры F815 (HEX) – вывод байта двумя HEX-символами F818 (MSG) – вывод текстового сообщения F81B (INKEY) – опрос кода нажатой клавиши F81E (RCUR) – чтение положения курсора F821 (PRINT) – вывод байта на принтер F824 (MOVBL) – перенос блока памяти из одной страницы в другую. При этом: HL – нач. адрес блока DE – нач. адрес «куда» BC – размер блока A=0000 – откуда читать (N страницы) 0000 – куда записать (N страницы) После выполнения операции возврат происходит в страницу, установленную вектором XPAGE (по умолчанию 0). Адрес возврата находится в стеке. F827 (FILL) – запись константы (байта) в выбранную страницу ОЗУ: HL – начальный адрес DE – размер области заполнения C – записываемый байт A – страница, куда записывается байт После выполнения операции возврат происходит в страницу, установленную вектором XPAGE (по умолчанию 0). Адрес возврата находится в стеке. F82A (CSUM) – вычисление контрольной суммы (по «О128»). F82D (UNPCK) – распаковка внутреннего знакогенератора. F830 (XPAGE) – установка/чтение рабочей страницы Вход: А=0 – читать А=/=0 – установить С= номер страницы (07) Выход: при чтении – А=номер страницы при записи – А=предыдущее состояние F833 (RESET) – восстановление исходного состояния рабочих ячеек Монитора. Вход: А=0 (с другим A не выполняется) Выход: А= байт-описатель: D0 \ тип ПК: 00 – Орион 128.2 D1 \ 01 – О128.2+Card-2 (от Чистякова) D2 / 02 – O128.2+Card (ОрионСервис) D3 / 03 – О128.2+Z80Card (Орионсофт) 04 – ОрионПРО V3.10 (Орионсофт) D4 \ реальная скорость ПК: D5 – 00 – 2.5 МГц D6 / 01 – 3.5 МГц 02 – 5.0 МГц 03 – 6.5 МГц 04 – 8.5 МГц 05 – 10.0 МГц 06 – более 10 МГц D7 – тип дисплея: 0 – электронно-лучевой 1 – жидкокристаллический F836 (RRAM) – чтение байта из дополнительной страницы F839 (WRAM) – запись байта в дополнительную страницу F83C (WCUR) – установка положения курсора F83F (BEEP) – подача звукового сигнала.
2.3. Режим «Orion-Pro»
Это основной режим, который позволяет практически в полной мере реализовать, как аппаратные, так программные возможности компьютера «Orion-Pro». Как в режиме «Орион-128», так и «Orion-Pro» должны присутствовать оба ПЗУ — ROM1 и ROM2. Недопустимо вводить изменения содержимого этих ПЗУ (за исключением первых 8К ROM2).
В режиме «Orion-Pro» непосредственный доступ пользователя к рабочим и системным ячейкам внутренних драйверов не предусмотрен.
При запуске компьютера в режиме «Orion-Pro» процедура холодного старта формирует таблицу векторов стандартных подпрограмм BIOS, инициализирует драйвер дисплея «TV-PRO» из ROM2 и передает управление вектору 0F800H.
Дальнейший процесс загрузки системы, выполняемый процедурой с начальным адресом 0F800H, будет зависеть от положения переключателя «8» (внешняя/внутренняя загрузка) и переключателей «1», «2» (наличие дисковода и жесткого диска, если установлен признак внешней загрузки).
Следует заметить, что в зависимости от положения SW-переключателя «4» процедура «холодного» старта устанавливает в качестве рабочей 1-ю или 2-ю страницу ОЗУ для CP/M-80, загружаемой из ПЗУ.
При работе в 1-й странице часть адресного пространства процессора будет занята экранной областью (атрибуты цвета) ОЗУ. В настоящее время все варианты адаптации CP/M загружаются именно в первую страницу. С одной стороны, это уже стало стандартом и традицией, и многие прикладные программы это учитывают в своей работе. С другой — ограничивает возможности работы с цветом и обработки нескольких экранов.
Так как драйвер дисплея «TV-PRO» обеспечивает работу с несколькими экранами из любой страницы во всех цветовых режимах, проблема доступа к экранной памяти снимается, и в качестве рабочей может быть выбрана 2я страница ОЗУ. При этом программы пользователя не будут конфликтовать с данными экранов, расположенными в страницах 0 и 1.
Таблица векторов (в области 0F800H) стандартных подпрограмм в режиме «Orion-Pro» отличается от соответствующей таблицы в режиме «Orion-128», поэтому совместимость между программами, разработанными для этих двух режимов, НЕ обеспечивается.
Стандартные подпрограммы, доступные для программ пользователя через таблицу векторов, составляют основу так называемой Базовой Системы Ввода/Вывода (BIOS), выполняющей прямое взаимодействие с памятью и портами компьютера. В компьютере «Орион-128» вместо «BIOS» часто использовалось понятие «Стандартные подпрограммы Монитора».
Таблица векторов стандартных подпрограмм BIOS для режима «Orion-Pro» описана в «Руководстве программиста».
Если SW-переключатель «8» находится в положении «Off», то режим «Orion-Pro» назначается автоматически. Следует уточнить, что режим «Pro» — это, прежде всего, CPM-режим, имеющий расширенные возможности за счет резидентных драйверов и более упорядоченной архитектуры компьютера.
Переключатель «7» определяет тип загрузки CPM-Pro: внутренняя (положение — «On») — загрузка производится из ROM2-BIOS, и внешняя — с системной дискеты. ROM2-BIOS версии 1.00 (размер 32К — 27256) систему CPM-Pro не содержит.
2.4. Режим «Monitor»
При назначении данного режима происходит вход в программу Монитор, находящуюся в ПЗУ «ROM1-BIOS». Монитор предоставляет пользователю средства для отладочных и проверочных целей, выяснения конфликтных ситуаций в системе.
С целью сокращения занимаемого объема в Мониторе применено командное управление. Команда задается заглавной латинской буквой, после которой может следовать до трех числовых параметров, разделенных запятыми. Параметры представляются в шестнадцатиричном формате, при этом незначащие нули можно опускать. Если параметр отсутствует, по умолчанию предполагается его нулевое значение.
Для выполнения команды после ее набора необходимо нажать клавишу ВК. Исправление неверно набранной команды до нажатия ВК осуществляется клавишей <- или Del (Забой). Для отказа от выполнения команды можно использовать клавишу АР2.
Признаком готовности Монитора к вводу команды является значок => в начале командной строки и мигающий курсор.
Список допустимых команд Монитора высвечивается после его старта в верхней части экрана между двумя горизонтальными линиями.
2.4.1. Команда Modify
Предназначена для модификации (внесения изменений) содержимого ячеек оперативной памяти, начиная с заданного адреса.
Формат: M XXXX где XXXX – адрес ячейки.
После ввода данной команды Монитор выводит текущий адрес и содержимое ячейки по этому адресу. Для модификации ячейки необходимо ввести шестнадцатиричный байт, а затем нажать ВК.
2.4.2. Команда Dump
Предназначена для вывода дампа памяти в шестнадцатиричном и символьном виде на экран.
Формат: D XXXX,YY где XXXX – начальный адрес, YY – номер страницы ОЗУ.
Если номер страницы ОЗУ не указан, предполагается нулевая страница.
После ввода команды на экране появляется дамп первого блока 256 байт, причем в левой части отображаются шестнадцатиричные коды, в правой — соответствующие символы.
В нижней строке экрана выводится Меню допустимых клавиш для управления. При нажатии клавиш курсора «Вверх» и «Вниз» происходит переход к предыдущему или следующему блоку, а при нажатии клавиши «B» — к начальному адресу, указанному в команде. Для выхода из команды «Dump» необходимо нажать клавишу АР2.
Следует помнить, что по адресам 00001FFFH отображаются коды ПЗУ «ROM1-BIOS». Чтобы просмотреть ОЗУ, необходимо эту область открыть в одном из окон (кроме окна 0, перекрывающегося с окном ПЗУ), например:
W1,0 [ВК] D4000 [ВК]
2.4.3. Команда Fill
Предназначена для заполнения памяти заданной константой.
Формат: F XXXX,YYYY,ZZ где XXXX – начальный адрес, YYYY – конечный адрес, ZZ – константа.
2.4.4. Команда Transfer
Предназначена для перемещения области памяти.
Формат: T XXXX,YYYY,ZZZZ где XXXX – начальный адрес перемещаемой области: откуда, YYYY – конечный адрес, ZZZZ – начальный адрес перемещения: куда.
2.4.5. Команда Compare
Предназначена для сравнения двух областей памяти.
Формат: C XXXX,YYYY,ZZZZ где XXXX – начальный адрес области 1, YYYY – начальный адрес области 2, ZZZZ – конечный адрес области 2.
2.4.6. Команда Input
Предназначена для чтения значения порта.
Формат: I XX где XX – адрес порта.
Значение указанного порта выводится в шестнадцатиричном и двоичном виде, например:
IA [ВК] (читать порт диспетчера) 50=0100_0000 (результат в виде «HEX=BIN»)
2.4.7. Команда Output
Предназначена для записи значения в порт.
Формат: O XX,YY где XX – адрес порта, YY – значение.
Пример:
OA,58 [ВК] (включить ПЗУ ROM2)
2.4.8. Команда Video
Предназначена для включения/выключения широкого экрана.
Формат: V
Данная команда работает в триггерном режиме. При включении широкого экрана (512 точек) в правой части экрана будет просматриваться служебная область 0F000H0FFFFH.
2.4.9. Команда Window
Предназначена для включения окна ОЗУ.
Формат: W X,YY где X – номер окна (02), YY – номер сегмента (0-1F). Окна ОЗУ: Номера сегментов по страницам ОЗУ Окно 0 – 0000-3FFFH 0 1 2 3 4 5 6 7 Адреса ЦП Окно 1 – 4000-7FFFH ----------------------- --------- Окно 2 – 8000-BFFFH 03 07 0B 0F 13 17 1B 1F C000-FFFF 02 06 0A 0E 12 16 1A 1E 8000-BFFF 01 05 09 0D 11 15 19 1D 4000-7FFF 00 04 08 0C 10 14 18 1C 0000-3FFF
2.4.9. Команда Xwindow
Предназначена для вывода содержимого портов управления сегментами окон ОЗУ и ПЗУ, состояния диспетчера, а также справочной информации о расположении сегментов по страницам.
Формат: X
По этой команде на экран выводится следующая информация:
03 07 0B 0F 13 17 1B 1F 02 06 0A 0E 12 16 1A 1E <== номера сегментов 01 05 09 0D 11 15 19 1D 00 04 08 0C 10 14 18 1C 03 00=0000_0000 (состояние регистра сегментов ROM2) 02 00=0000_0000 (состояние регистра сегментов Окна 2) 01 00=0000_0000 (состояние регистра сегментов Окна 1) 00 00=0000_0000 (состояние регистра сегментов Окна 0) DP 50=0101_0000 (состояние диспетчера) Здесь приведено состояние регистров после «Сброса».
2.4.10. Команда «2»
Предназначена для переключения компьютера на тактовую частоту 2.5 Мгц.
Формат: 2
2.4.10. Команда «8»
Предназначена для переключения компьютера на тактовую частоту 8.7 Мгц.
Формат: 8
Следует иметь в виду, что процессор может работать с тактовой частотой 10 Мгц. При обращении к ОЗУ, ПЗУ и портам реальная частота снижается до 8.7 Мгц из-за наличия тактов ожидания.
Если используются микросхемы ПЗУ (ROM1 и ROM2) со временем выборки не более 200—250 нс, то такты ожидания ПЗУ можно выключить (для этого отключается диод VD4 на плате компьютера). В этом случае реальная частота процессора при выполнении программ в ПЗУ будет составлять также 10 МГц.
Перемычка J1 на плате позволяет устанавливать верхнюю тактовую частоту процессора 5 или 10 МГц (в зависимости от применяемого процессора).
2.4.11. Команда Go
Предназначена для передачи управления по заданному адресу.
Формат: G XXXX где XXXX – адрес перехода.