![]() |
|
|
|
|
|
#1 |
|
Guru
Join Date: 11th September 2009
Location: Москва
Posts: 2,976
Thanks: 60
Thanked 1,785 Times in 1,099 Posts
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Предлагаю первым делом реализовать поддержку псевдоустройства HD, позволяющего подключать к эмулятору образы любых размеров.
В приложении - исходник драйвера HD.SYS для RT-11 и образ загрузочного диска HD с тестами TMOS для платы МС1201. Для поддержки устройства HD эмулятор должен обслуживать его регистры HDCSR = 0177720 и HDDATA = 0177722. Драйвер HD передаёт в HDCSR следующие команды: Code:
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 признак ошибки не устанавливается. Last edited by Patron; 18th April 2014 at 16:49. |
|
|
|
| The Following User Says Thank You to Patron For This Useful Post: | hobot (17th November 2011) |
![]() |
| Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
|
|