Pull to refresh

Comments 12

UFO just landed and posted this here
А чего там не понятного? Формат хранения данных. Это просто побайтовая копия секторов диска этого файла, к которым также добавлен заголовок.
Файл в TR-DOS состоит из 2 частей: 16 байт описателя в каталоге на 0-й дорожке + собственно данные в секторах на диске. Фактически, формат hobeta это склеенные вместе эти два блока данных.
В какой-то момент пытался восстановить свои старые 5.25" диски для Spectrum. Некоторые утилиты написал на Python, некоторые выложил на GitHub. Есть там и парсер Hobeta со встроенной справкой о формате.

Времени катастрофически не хватает развивать этот проект, но он не заброшен. Пул-риквесты приветствуются.
UFO just landed and posted this here
UFO just landed and posted this here
Всё правильно. В простешем случае нужно было просто перед всеми `LOAD` добавить `RANDOMIZE USR 15619: REM:`, но этого было достаточно далеко не всегда. В этой и других статьях будут как раз детали.
Не. Этого мало. Недостаточно было везде перед LOAD «name» CODE добавлять RANDOMIZE USR 15619: REM:
ОБЯЗАТЕЛЬНО надо чтобы стоящий далее оператор LOAD был последним в бейсик-строке.
То есть если у меня, например, если загрузчик кассетной версии был таким:
10 LOAD «1» CODE: LOAD «2» CODE: LOAD «3» CODE: RANDOMIZE USR 32768
То сделав так:
10 RANDOMIZE USR 15619: REM: LOAD «1» CODE: RANDOMIZE USR 15619: REM: LOAD «2» CODE: RANDOMIZE USR 15619: REM: LOAD «3» CODE: RANDOMIZE USR 32768
Я получу НЕРАБОТАЮЩИЙ загрузчик. Мало того что он ничего не запустит, но он не загрузит даже одного кодового блока.
А написав вот так:
10 RANDOMIZE USR 15619: REM: LOAD «1» CODE
20 RANDOMIZE USR 15619: REM: LOAD «2» CODE
30 RANDOMIZE USR 15619: REM: LOAD «3» CODE
40 RANDOMIZE USR 32768
мы получим рабочий загрузчик для дисковода, с учетом того, что загружаемые блоки не будут пересекаться с загрузочной программой.
Операторы INK, PAPER, BORDER и CLEAR с CLS в загрузчике не писал по соображениям ненужности и не касаемости самого процесса загрузки. Хотя CLEAR стоило бы, чтобы опустить стек и случайно не затереть его при загрузке данных.
Всё так. Я же говорил про простейший случай.
Отличная тема! Автор, а вы оставите ссылку на книгу Н. Родионова «Адаптация программ к системе TR-DOS»?
Sign up to leave a comment.

Articles