МГТФ - любимый провод!
KAY-1024(4096)/SL-4/TURBO v2010 + Nemo-FDC + Nemo-IDE (CF 4GB) + SMUC2 Rev.B RTC (HDD 1.6GB + DVD-ROM) + PROF-ROM + ZXMC2 + GENERAL SOUND 2MB + ZX-BUS_TEE + FDD 3.5' + FDD 5.25' + VGA&PAL
Извиняюсь, перезалил. На реале они идут только если это диск А. Рам диск у меня тоже А, с ним такая вот беда получается...
PS: процессор тут ни при чем, на анриле такая же фигня.
стоп, а разве (TR-DOS 5.04T с рамдиском под профи) умеет эмулировать прямые обращения к ВГшке ?
(вроде только сделан перехват функций #3d13)
или я отстал от жизни ?
Так получается там прямые обращения идут? Если так, то куда подсмотреть, чтобы это дело реализовать в этом трдосе? В 6.11Q этого тоже получается нет раз не работает?
PS: я так понимаю там проблема в команде GO TO ?
UPD: удалось локализовать проблему, короче эти 2 игры, и аналогичные, которые не грузятся, для чтения сектора вызывают (через что-то, хз пока что что, может GOTO) подпрограмму чтения сектора по адресу #2F1B, которая читает сектор напрямую с контроллера минуя RAM DISK и вызывая #3FE5, чтобы это исправить, нужно допилить вызов #3FE5, чтобы проверялся рамдиск и выполнялись соответствующие действия для рамдиска.
Как-то так....
UPD2: попробовал код #2F1B заменить на вызов #3F2 или #1E3D, в E у нас номер сектора текущей дорожки видимо, в HL адрес куда грузить, но #1E3D нужен еще номер дорожки, пробовал брать его из #5CF5, но что-то ничего не выходит...
Короче полный DI&HALT, но, я всё еще не оставил попыток это исправить, вроде с виду не должно быть очень сложно.
UPD3: проверил загрузку игры DARKMAN, в ней
через #1FF3 в порт #FF шлется #2C
через #2A53 в порт #7F шлется #5D
через #2FC3 в порт #1F шлется #18 (установка номера дорожки)
затем вызывается #2F1B, для чтения #2C секторов
видимо придется перехватывать эти точки входа и сохранять значения портов перед вызовом #2F1B
UPD_FINAL: короче, перехватил я эти подпрограммы вывода в порты, сделал обработку команд контроллера и допилил #2F1B и всё заработало! Короче это не баг, а эмуляция контроллера для RAM диска получилась! Важно помнить, что в регистры #5F, #3f и регистр данных шлется не номер дорожки, а номер цилиндра, так что нужно умножать цилиндр на 2 и прибавлять номер стороны из регистра состояний, как-то так, если будут вопросы - пишите в ПМ.
Последний раз редактировалось EvgenRU; 30.05.2017 в 11:57.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)