b2m, как у тебя с реализацией команд 3-го типа:Read Address, Read Track, Write Track, в описании команд написано что там читается CRC ? в то же время в файлах образа этих CRC нету.
и как расчитывается CRC ?
Вид для печати
b2m, как у тебя с реализацией команд 3-го типа:Read Address, Read Track, Write Track, в описании команд написано что там читается CRC ? в то же время в файлах образа этих CRC нету.
и как расчитывается CRC ?
b2m, у тебя в команде ReadSector после чтения последнего (1024-го) байта сектора в status регистре 2-й бит DRQ взводится? и поддерживает ли у тебя эмулятор в этой же команде мультисекторное чтение до конца дорожки?
DRQ "взводится", когда есть чего читать, а если данные в буфере закончились, то DRQ=0.
Мультисекторное чтение поддерживается, а вот использует ли кто его - вопрос.
почти все fdd стали запускаться, но skynet на второй деме вешается, подозреваю что некоректно реализовано Step, StepIn, StepOut, вопрос: как должны вести себя команды например StepOut если дорожка уже нулевая, или StepIn при максимальновозможной?
при выполнении команды контроллера FDD "WriteSector" после записи на сектор последнего 1024-го байта, флаг DRQ возводится должен или нет?
я конешно думаю что нет, но все же вдруг я ошибаюсь... хотя прогам похоже всеравно :)
Ramiros, наверняка не скажу, но вроде бы должен.
Кстати, на запись хороший тест -- это сделать что-нибудь вроде:
D>FILE.TXT
из микродоса. Попробуй, что получится.
В кишиневском загрузчике используется такая процедура:
Получается, что даже если диск не вставлен, то регистр контроллера SECTOR (19H) при чтении вернет то значение, которое было в него записано?Код:; проверка наличия дисковода
M0138H: MVI A,0BH
OUT 19H
MOV C,A
XTHL
XTHL
IN 19H
CMP C
JZ M0146H
XRA A
M0146H: ORA A
RET
Приложил.
Это очевидная вещь, но вопрос же был не в этом, а немного глубже. Меня интересует поведение регистра SR. Допустим, дисковод подключен, но диск не вставлен. Производится запись в SR. Регистр SR примет значение, которое в него пишут или нет? Есть ли зависимость от состояния "Готов/Не готов"? Я этого не знаю, потому и спрашиваю.
Ramiros уже сделал таким образом (в еще невыложенной версии): если образ не подключен, то дисковода считай нет и его регистры отсутствуют, соответственно загрузчик его не обнаруживает и не пытается с него грузиться.
b2m, может тебе стоит сделать в своем эмуляторе так же, тогда его не будет "колбасить" при отсутствии образов диска и квазидиска? Напротив, может есть какие-то причины, почему так делать не стоит?
Также:
1) может у кого-то есть PDF на аналог ВГ93 или ссылка?
2) какой однозначный 100%-ный признак наличия диска в дисководе (по состоянию регистров)? я бы поправил процедуру в загрузчике, если это никак не зависит от регистра SR. Бит7 регистра Status - "готов/не готов"?