ВОЗВРАЩАЯСЬ К НАПЕЧАТАННОМУ
В ZX-PEBJ0-94, N2 (стр.11) была опубликована программа, выводящая на экран часы. Мне кажется, к этим часам подошел бы загрузчик, который бы исчезал после введения текущего времени и таймера. Вот листинг такого загрузчика:
5 1УК 0: PAPER 0: BORDER 0: С LEAR 63988
10 LOAD "сlock"CODE 15 INK 7: CLS
20 INPUT "Enter current time ( hh: mm: ss): " • ' t$
25 IF LEN t$<>8 THEN CLS : GO TO 20
30 IF t$(l TO 2)>"12" OR t$(l TO 2)<"01" OR t$(4 TO 5)>"59" OR t$(4 TO 5)<"00" OR t$(7 TO 8)>" 59" OR t$(7 TO 8)<"00" THEN CLS : GO TO 20 40 CLS
50 POKE 64252,VAL t$(l)*16+VAL t$(2): POKE 64251,VAL t$(4)*16+ VAL t$(5): POKE 64250,VAL t$(7)+
VAL t$(8)*16
60 RANDOMIZE USR 64239
70 INPUT "Enter timer (hh:mm): »• 't$
80 IF LEN t$<>5 THEN CLS : GO TO 70
90 IF t$(l TO 2)>"12" OR t$(l TO 2)<"01" OR t$(4 TO 5)>"59" OR
t$(4 TO 5)<"00" THEN CLS : GO TO 70
100 POKE 64254,VAL t$(l)*16+VAL t$(2): POKE 64253,VAL t$(4)*16+ VAL t$(5) 110 CLS
120 PRINT #0;"'USR 642461 - sto p the clock": PAUSE 0 130 POKE 23627,PEEK 23635: POKE 23628,PEEK 23636 140 RUN
Удаление Бейсик-программы происходит следующим образом. В 130 строке в системную переменную VARS (адреса переменных) заносится значение PROG (начало Бейсик- программы). При исполнении в 140 строке команды PUN происходит очистка области переменных: в данном случае затирается сама Бейсик-программа.
Нестандартный загрузчик со счетчиком
(С) Штурхолев С.И.,
Читинская обл.
Существует загрузчик блоков машинных кодов с заголовком, при котором на экран выводится изображение четырехзначного счетчика, показывающего, сколько осталось до конца загрузки программы. Значения счетчика уменьшаются от ка-кого-то значения до нуля. Цифры сменяются как в спидометре автомобиля или в счетчике ленты магнитофона - счетчик состоит как бы из вращающихся дисков с цифрами. Результат работы придает загружаемой программе определенный вес. Многие игры с кассет, записанных в С.Петербурге имеют такой загрузчик. После взлома обнаружилось, что процедура загрузки блока кодов с заголовком имеет вид:
Программа включает таблицу (системную область) по адресу #FC16 - #FC89.
#FC16-#FC19 - STR$ значений счетчика (единицы...тысячи).
#FC1A - флаг запрета/разрешения включения счетчика.
#FC1B-#FC1C - адрес счетчика в таблице.
#FC1D-#FC31 - адрес счетчика в дисплейном файле.
#FC21-#FC31 - хэдер.
#FC32-#FC89 - шаблоны цифр счетчика (стандартно, по 8 байт на символ); всего - 11 цифр, следующих : 0-1-2-3-4-5-6-7-8-9-0.
Сама процедура загрузки по адресу #FC8A в основе содержит программу LD-BYTES из ПЗУ, которая была подробно описана в РЕ-ВЮ-93 N1-2 (стр. 13). Отличия незначительны. Все адреса даны для новой процедуры.