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 === __________________________ ────────────────────
Другие статьи номера:
Похожие статьи:
В этот день... 21 ноября