User Tag List

Показано с 1 по 10 из 25

Тема: BUGS IN TRDOS

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #25

    Регистрация
    20.01.2016
    Адрес
    п. Власиха, Московская обл.
    Сообщений
    594
    Спасибо Благодарностей отдано 
    6
    Спасибо Благодарностей получено 
    41
    Поблагодарили
    22 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Так получается там прямые обращения идут? Если так, то куда подсмотреть, чтобы это дело реализовать в этом трдосе? В 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)

Похожие темы

  1. BUG in TRDOS
    от VELESOFT в разделе Оси
    Ответов: 5
    Последнее: 01.07.2010, 19:52
  2. trdos for spectrum 128 /+2
    от sergey2b в разделе Зарубежные модели
    Ответов: 75
    Последнее: 26.04.2010, 02:12
  3. TRDOS 6.11P
    от alsp в разделе Оси
    Ответов: 39
    Последнее: 11.04.2010, 16:29
  4. NMI in TRDOS
    от VELESOFT в разделе Оси
    Ответов: 6
    Последнее: 09.02.2010, 15:41
  5. TRDOS для Neo
    от ILoveSpeccy в разделе Внешние накопители
    Ответов: 20
    Последнее: 08.03.2008, 15:04

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •