Технический форум

Emulate #05
==========================================
*******************************
*  PART 7  - TECHNICAL FORUM  *
*******************************

ТЕХНИЧЕСКИЕ ЗАМЕТКИ

Хотя никто не прислал сообщение по этому вопросу, друг, который иногда читает этот журнал, попросил объяснить метод «hand-blocking» — способ, иногда используемый для переноса старых игр на другие носители.

В общих чертах это работает так:

  1. С помощью читателя заголовков кассеты определите строку начала первого блока BASIC и адреса и длины других блоков.

  2. Сбросьте компьютер и выполните MERGE загрузчика BASIC. После паузы должно появиться OK. Программы больше 7K могут вызвать сбой системы, если они защищены от MERGE. Следует также учесть, что все программы с автозапуском на Microdrive защищены от MERGE.

  3. Отредактируйте операторы LOAD так, чтобы они обращались к новому устройству, а не к кассете, включая имена файлов. Если экран загружается через LOAD ""CODE, замените на LOAD *"m";1;"filename"SCREEN$ (или LOAD "a:filename"SCREEN$, или то, что требует ваше устройство). Любой блок, проходящий через адреса от 23672 до 23674, нуждается в добавлении начального адреса после CODE.

  4. SAVE загрузчик на новый носитель. Не забудьте параметр LINE.

  5. Сбросьте компьютер. Кроме экранов и блоков, проходящих через 23672–23674, LOAD остальные блоки по их исходным адресам и SAVE на новый носитель с этих адресов с исходной длиной. Не забудьте сначала CLEAR на один байт ниже начального адреса, если только байты не загружаются в системные переменные или буфер принтера.

  6. Для экранов и блоков с защитой счётчика кадров (те, что затрагивают 23672–23674) нужно сохранить содержимое. CLEAR 32767 (25856 на 16K) и LOAD блок по адресу 32768 (25856 на 16K). SAVE на новый носитель с 32768 (или 25856) с исходной длиной.

  7. Когда все блоки готовы, сбросьте компьютер и LOAD загрузчик с нового носителя. Игра должна запускаться нормально.

С техническим редактором Phil Reynolds можно связаться по e-mail: phil@hedgford.demon.co.uk, или по факсу (+44/0) 1543 428082.

Технические вопросы обычно разбираются в следующем выпуске Emulate.

==========================================

Поделитесь вашим мнением о статье