Patron, Огромное Вам спасибо за консультации и поддержку!
Прошли тесты 1,2,3 и 4, т.е правильно сделана эмуляция терминала.
Будем работать дальше по периферии. Ну и сделаем (на досуге) поддержку дисковода, чтобы поиграть в XONIX![]()
Patron, Огромное Вам спасибо за консультации и поддержку!
Прошли тесты 1,2,3 и 4, т.е правильно сделана эмуляция терминала.
Будем работать дальше по периферии. Ну и сделаем (на досуге) поддержку дисковода, чтобы поиграть в XONIX![]()
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Предлагаю первым делом реализовать поддержку псевдоустройства HD, позволяющего подключать к эмулятору образы любых размеров.
В приложении - исходник драйвера HD.SYS для RT-11 и образ загрузочного диска HD с тестами TMOS для платы МС1201.
Для поддержки устройства HD эмулятор должен обслуживать его регистры HDCSR = 0177720 и HDDATA = 0177722.
Драйвер HD передаёт в HDCSR следующие команды:
Если после получения команды эмулятор установит старший бит HDCSR - это будет признак ошибки.Код:SetUni = 1 ; Set HD unit number SetBlk = 2 ; Set HD block number SetBuf = 3 ; Set memory buffer address SetWCn = 4 ; Set operation word count CmdRea = 5 ; Execute READ on HD CmdWri = 6 ; Execute WRITE on HD GetSiz = 7 ; Get HD size in blocks.
"memory buffer address", записываемый драйвером HD в регистр HDDATA перед выдачей в HDCSR команды 3 ( Задать адрес в памяти ) - это адрес эмулируемой памяти ДВК, начиная с которого эмулятор должен читать или писать данные, при получении в HDCSR команды 5 (Читать образ диска в память) или 6 (Писать память в образ диска).
Смещение от начала образа диска для команд чтения и записи (в блоках по 512 байт) задаётся содержимым HDDATA при получении эмулятором в HDCSR команды 2 ( Задать номер блока ).
При получении в HDCSR команды 7 ( Сообщить размер образа ) эмулятор должен записать в HDDATA размер файла образа (в блоках по 512 байт), подключенного к приводу, заданному до того командой 1 ( Задать номер привода ), или 0, если к этому приводу образ диска в эмуляторе не подключен. При выполнении команды 7 признак ошибки не устанавливается.
Устройство HD должно выполнять команды "мгновенно" для обслуживаемого процессора, поэтому на время выполнения команд HD - процессор надо останавливать.
Последний раз редактировалось Patron; 09.12.2015 в 15:57.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)