Я предлагаю проще, изменять константу тут:
И тогда не потребуется даже менять подпрограмму чтения/записи сектора...Код:LaD954: MOV A, E ; восстанавливаем номер диска CALL LaD9B2 ; получаем ссылку на нужную таблицу MOV M, C INX H MOV M, B INX H ; запись в таблицу номера дискеты НЖМД PUSH H ; сохр.в стек LXI H, 0F3BEh ; = 2 - 0622h * 2 MVI A, 0FFh INX B LaD96A: LXI D, 00622h ; суммарное количество секторов на одной дискете![]()
Последний раз редактировалось Improver; 07.04.2020 в 16:11. Причина: Выделил. :-)
Чуть занудства - FFh в следующей строке тоже надо выделить
Improver(07.04.2020)
Improver(07.04.2020)
На всякий случай ссылка на тему с текущими реинкарнациями FAT b2mа в развитом PVV виде. Работа с SD оттуда вряд ли понадобится, а FATную часть можно подсмотреть/позаимствовать.
- - - Добавлено - - -
Кстати, а как станет работать такая система с суперзагрузчиком в эмуляторе? Меня больше всего смущает фрагментация. Разве что позиционировать такую систему только для реала.
Improver(09.04.2020)
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Я пока не очень представляю, как это может быть организовано, но если внутрь эмулятора дать реальные параметры физического ПКшного диска, то может получиться нехорошо. И образ hdd наверняка будет фрагментирован (у меня точно) и вектор может накуролесить в ПКшном разделе и раздел современного диска вряд ли будет в FAT16. Как вариант - отдельный образ ПКшного диска с FAT16 и файлом с образом hdd внутри.
- - - Добавлено - - -
Ну или компромисс - отдельный раздел FAT16, но это не очень удобно.
Не забудь про доступ к дорожкам 0-7 и псевдо-дорожке 255.
- - - Добавлено - - -
Эмулятор не работает с физическими носителями, только файлы. Придётся копировать образ CF на ПК и обратно.
Либо учитывать в суперзагрузчике, что CF-карта не отформатирована под FAT и тогда в эмуляторе мдос будет работать по-старинке, без смещения. С указанием в конфиге образа (в старом формате) на CF-карте.
Последний раз редактировалось b2m; 07.04.2020 в 17:00.
Хорошо, хотя к дорожкам 0-7 доступ нужен крайне редко, но можно это тоже поправить, изменив константу тут:
А к 255 (или нулевому сектору) вообще доступ будет не обязателен, если задать максимальное количество дискет на диске каким-либо другим способом. Хотя и его расположение тоже правится изменением константы.Код:LDA L_E86D ; дорожка, = FFh при инициализации НЖМД (чтении 1-го сектора) CPI 008h JNC L_D85F ; переход если дорожка >= 08h (несистемная область) LXI D, 00002h XRA A JMP L_D86C
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)