ZX Идеи
Загрузка экрана посимвольно
Во многих играх (например, MIKIE, BATMAN, ALIEN HIGHWAY) можно увидеть этот эффектный способ загрузки SCREEN. Эта процедура занимает всего 178 байт, и каждый может встроить её в свою программу.
Однако написать такую программу загрузки — не проблема. Гораздо сложнее привести содержимое экрана к формату, подходящему для загрузчика.
Итак, сначала нужно написать программу для сохранения содержимого экрана. Для простоты она написана на BASIC:
10 LET A=50000
20 FOR I=40000 TO 40255
30 GO SUB 100
32 POKE A+10,PEEK (I+6144)
35 LET A=A+11
40 NEXT I
50 FOR I=42048 TO 42303
60 GO SUB 100
62 POKE A+10,PEEK (I+4352)
65 LET A=A+11
70 NEXT I
80 FOR I=44096 TO 44351
90 GO SUB 100
92 POKE A-10,PEEK (I+2560)
95 LET A=A+11
96 NEXT I
98 STOP
100 RANDOMIZE I-23616
110 POKE A,PEEK 23670:
POKE A+1,PEEK 23671
120 POKE A+2,PEEK I:POKE A+3,PEEK (I+256)
130 POKE A+4,PEEK (I+512):POKE A+5,PEEK (I+768)
140 POKE A+6,PEEK (I+1024):POKE A+7,PEEK (I+1280)
150 POKE A+8,PEEK (I-1536):POKE A+9,PEEK (I+1792)
160 RETURN
Чтобы воспользоваться этой программой, сначала загрузите свой SCREEN по адресу 40000. Перед этим опустите RAMTOP до 39999.
Загрузите (введите) приведённую выше программу на BASIC и запустите её. Она создаст новый формат SCREEN, начиная с адреса 50000. Его длина увеличится с 6912 до 8448 байт. Сохраните этот код на ленту командой:
SAVE NOVISCRE CODE 50000
Заголовок нам не понадобится, не сохраняйте его. Те, кто внимательно читал до этого места, наверняка задаются вопросом: откуда наша процедура узнает, сколько данных нужно загрузить? Об этом позаботится флаг переноса CARRY FLAG.
В течение всей загрузки его значение равно 1, а в конце загрузки оно станет равным 0. Командой RET NC (возврат, если переноса нет) мы выйдем из процедуры.
Когда закончите подготовку SCREEN, загрузите машинную процедуру по адресу 40000 и запустите её командой RANDOMIZE USR 40000, затем включите ленту с записанным SCREEN (без заголовка). И вот результат вашей работы перед глазами! Машинный код приводим в виде DATA:
10 DATA 243,205,70,156,
20 DATA 62,198,184,48,224
30 DATA 205,207,156,208,
Сохраните эту машинную программу командой:
SAVE SCREEN CODE 40000
Поделитесь вашим мнением о статье