|
|
| М |
К моему глубокому удивлению, среди этих многих оказались некоторые программисты и хакеры... Секрет этого "глюка" настолько прост, что мне просто неудобно говорить о нём, но по просьбе редакции газеты я это сделаю.
Как известно, в 128К компьютере имеются две области памяти, отведённые под экран: стандартная - с адреса _#4000_ в основном поле памяти, и дополнительная - с адреса _#C000_ в банке RAM7. Выбирать нужный экран надо через порт _#7FFD_, сбрасывая или устанавливая третий бит. Если бит установить, то будет отображаться второй экран (RAM7), если его сбросить, то стандартный (RAM5).
Теперь о Reset'е. При приходе сигнала reset аппаратно устанавливается стандартный экран, который очищается программой инициализации, расположенной в свою очередь с адреса _#0000_ в ПЗУ в момент отжатия кнопки "RESET".
Таким образом, если использовать в программе только дополнительный экран, а в основной поместить какое угодно сообщение, то при Reset'е оно появится! В DOUBLE XINOX'е, например, сообщение находится в области атрибутов в целях экономии памяти.
ORG 30000
START DI
LD A,23
CALL MEMORY
LD HL,49152
CALL CLS
LD HL,16384
CALL CLS
LD A,23+8
CALL MEMORY
LD HL,TEXT
LD DE,22528+256
LD BC,32*7
LDIR
LOOP JR LOOP
MEMORY LD BC,32765
OUT (C),A
RET
CLS LD E,L
LD D,H
INC E
LD BC,6911
LD (HL),L
LDIR
RET
;12345678901234567890123456789012
TEXT DM " "
DM " @@@@@ @@@@@ @@@@ @@@@@ @@@@@ "
DM " @ @ @ @ @ @ "
DM " @@@@@ @@@@@ @@@ @@@@@ @ "
DM " @ @ @ @ @ @ "
DM " @ @ @@@@@ @@@@ @@@@@ @ "
DM " "
|
|