|
ZX-News
#17
03 декабря 1996 |
|
Программистам - Перехват Reset'a на 128к машинах (на примере игры Doble Xinox).

┌───────────────┐
│ Программистам │▒
└───────────────┘▒
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
(c) Михаил Блюм (Zx-Masters)
──────────────────────────
"Перехват" reset'а на 128к машинах.
Многие, поиграв в игру "DOUBLE XINOX" и
нажав в ней на reset, пришли в полное не-
доумение, увидев надпись, подтверждающую
ваше решение сбросить программу, причём не
на Scorpion'е, а на обыкновенном 128!
К моему глубокому удивлению, среди этих
многих оказались некоторые программисты и
хакеры... Секрет этого "глюка" настолько
прост, что мне просто неудобно говорить о
нём, но по просьбе редакции газеты я это
сделаю.
Как известно, в 128К компьютере имеются
две области памяти, отведённые под экран:
стандартная - с адреса _#4000_ в основном
поле памяти, и дополнительная - с адреса
_#C000_ в банке RAM7. Выбирать нужный эк-
ран надо через порт _#7FFD_, сбрасывая или
устанавливая третий бит. Если бит устано-
вить, то будет отображаться второй экран
(RAM7), если его сбросить, то стандартный
(RAM5).
Теперь о Reset'е. При приходе сигнала
reset аппаратно устанавливается стандарт-
ный экран, который очищается программой
инициализации, расположенной в свою оче-
редь с адреса _#0000_ в ПЗУ в момент отжа-
тия кнопки "RESET".
Таким образом, если использовать в прог-
рамме только дополнительный экран, а в ос-
новной поместить какое угодно сообщение,
то при Reset'е оно появится! В DOUBLE XI-
NOX'е, например, сообщение находится в об-
ласти атрибутов в целях экономии памяти.
=== cut ===
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 " "
=== cut ===
__________________________
────────────────────
Другие статьи номера:
Похожие статьи:
В этот день... 1 января
SibNews #08,
Woot! #01,
Spectrum Magazine #01,
ACNews #25,
Psychoz #14,
ACNews #14,
Last 128 #08,
Last 128 #06,
Last 128 #05,
Last 128 #04,
Last 128 #03,
Last 128 #02,
Last 128 #09,
Last 128 #3.5,
Last 128 #8.025,
Sinclair Club #05,
Last 128 #M!R 01,
Fantadrom #01,
Buzz #20,
Last 128 #01,
DonNews #13,
Nicron #120,
Promised Land #01,
Inferno #01,
Marazm #25,
Ultimathum #01,
Marazm #21,
Hooy Mag #02,
KrNews #11,
Marazm #22,
Marazm #23,
ZX Football 2000 #01,
Codemania #01,
Always #03,
Bugs #02,
IzhNews #08,
Virtual Worlds #01,
Listok #04,
Scenergy #02,
Flash Info #18,
Marazm #16,
Marazm #17,
Zed #01,
Balagan #02,
ZX Format #08,
ZX Power #03,
Shock #01,
Impulse #02,
Deja Vu #03,
ZX Club #08,
ZX Club #06,
Numberology #01,
Marazm #13,
Marazm #12,
Marazm #14,
Gorodok #02,
Zodiac #01,
Marazm #15,
Deja Vu #07,
Marazm #11,
Deja Vu #07,
Playboy #03,
Crazy News #2,
Crazy News #4,
ZX Light #01,
Crazy News #5,
Playboy #02,
ZX News #03,
ZX Review #1-2,
Read Me #02,
Crazy News #3,
Nicron #13,
Read Me #01,
Public Spirit #01,
Faultless #06,
Faultless #05,
ZX Software #01,
Stump #04,
Speccy #07,
Возраждение #0,
Speccy #03,
On-Line #17,
Scene+ #01,
Welcome Press #01,
ZX Konig #04,
Adventurer #01,
Faultless #05,
Faultless #04,
Di Halt #01,
Faultless #01,
Playboy #01,
Crazy News #1,
Faultless #03,
Pioneer #03,
Sinclair Town #02,
ZX Magazine #01,
Eldorado #01,
ZX Magazine #02,
Spectron #01,
ZX News #01,
ZX Konig #02,
200 #W,
Welcome Press #00,
Dune #07,
Subliminal Extacy #01,
Subliminal Extacy #02,
ZX Konig #01,
Subliminal Extacy #00,
Muchomor #01,
Spectrofon #01,
ZX Revija #02,
Outlet #01,
Outlet #1-3