PDA

Просмотр полной версии : Эмуляция TR-DOS - как должно быть?



Spectramine
16.04.2015, 23:43
Выцепил интересный факт, касающийся эмуляции TR-DOS. Есть образ диска игры SexMinesweeper, прилагаю для интересующихся. Так вот, если открыть этот образ и сразу сделать RUN в TR-DOS, он запустится, и заиграет оцифрованная музыка с зелёно-чёрной картинкой. Это во всех эмуляторах происходит одинаково. А вот если открыть образ этого диска, и выполнить LIST в TR-DOS, то в одних эмуляторах команда в конце (иногда после долгой паузы) выдаст ошибку Disk Error Track 80 Sec 1 (Spectaculator, ZX Mac, Fuse), а в других отработает без ошибок (EmuzWin, Unreal). Но это не всё, если после этого сделать RUN, музыка на заставке будет играть с эпизодическими заметными искажениями на тех эмуляторах, где LIST отрабатывала с ошибкой. (Эмуль ZX Spin ведёт себя половинчато - LIST ошибки не выдаёт, но музыка после LIST, RUN играет с искажениями).

Вопросы знатокам:
1) понятно, что где-то в логическую структуру диска внесены "защитные" искажения. Какие именно эти искажения, из-за которых происходит подобное?
2) Почему на разных эмуляторах команда LIST ведёт себя по-разному?
3) Почему после LIST, RUN появляются искажения в музыке?
4) Какое поведение следует считать эталонным? (это, наверно, проще проверить на реале, записав образ на реальный диск)

Сам я ответить на данные вопросы ниасиливаю, так как с TR-DOS-ом знаком слабо.

goodboy
17.04.2015, 09:42
Почему на разных эмуляторах команда LIST ведёт себя по-разному? сначала смотри на версию trdos.
может найдёшь закономерность.

в 5.04TM* точно есть подводные камни.

Vadim
17.04.2015, 09:52
Во многих версиях tr-dos есть ошибка в команде LIST. Не освобождается память, после ее использования.

Spectramine
17.04.2015, 10:20
сначала смотри на версию trdos.
может найдёшь закономерность.

в 5.04TM* точно есть подводные камни.

Проверил, от версии tr-dos не зависит, смена ROM ничего не дала.

goodboy
17.04.2015, 11:14
Почему на разных эмуляторах команда LIST ведёт себя по-разному?
trdos при выяснении/распечатки номера строки автостарта для boot пытается считать сектор которого нет на стандартном TRDобразе.
(если длина бейсик файла один сектор то trdos подстраховывается и грузит два)
посмотри в любом коммандере на каком треке/секторе находится файл boot

Spectramine
17.04.2015, 12:19
Ага, спасибо. Это отвечает на первый вопрос - почему так происходит: файл boot, судя по размерам предыдущих файлов, находится на последнем секторе дискеты, а TR-DOS пытается прочесть два сектора.

Так же можно примерно ответить на второй вопрос - потому что эмуляция обращения к несуществующей дорожке в разных эмуляторах обрабатывается по-разному, соответственно, по-разному отрабатывает команда LIST.

---------- Post added at 12:19 ---------- Previous post was at 12:16 ----------


Во многих версиях tr-dos есть ошибка в команде LIST. Не освобождается память, после ее использования.

Спасибо. Возможно, эта ошибка является причиной искажений в музыке - какой-то сектор грузится на смещённую бейсик-область, и портится в процессе.

Но остаётся вопрос - как себя ведёт реальный компьютер с TR-DOS на такой дискете. Нет ли у кого возможности и желания проверить на реале?

goodboy
17.04.2015, 13:44
сравнил загруженный и разжатый блок с цифровкой
(после RUN и после LIST/RUN) - никакой разницы,хотя на слух она явно заметна.

блин, плейер опрашивает ячейку (24293) ?????
после LIST в отличие от RUN её содержимое меняется