ZX-News #17
03 декабря 1996

Программистам - Перехват Reset'a на 128к машинах (на примере игры Doble Xinox).

<b>Программистам</b> - Перехват 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 ===

        __________________________
           ────────────────────



Другие статьи номера:

Oт авторов - Фидошные рубрики в ZX-News.

Информация - Что такое код '73'.

Письма - Какие бывают ZX'ы... : Москва 48К, Балтик, Москва 128К, Ленинград 1, Пентагон 48.

Программистам - Перехват Reset'a на 128к машинах (на примере игры Doble Xinox).

Реклама - Реклама и объявления ...

Сетевые новости - График работы BBS'ок.

Системные программы - Translator (BBS Utilites) - замена букв Н,Р,У на латинские. Killer - обрезка муссора в конце текстовго файла. Adder - "склеивает" файлы в один.

Скорпион-256 - Ремонт Скорпиона своими руками (часть-2)

Хит-парад - 10 лучших программ, по итогам продаж фирмы Welcome.

Юмор - Фидошный юмор - Словарь ламера.


Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
Программистам - О формате музыкальных модулей Sound Tracker Pro и исходник проигрывателя.
Из неопубликованого - Поскриптум.
Софт - утилита SET для перевода консоли и клавиатуры в режим ALT-кодирования.
Поэзия - Про Joker`а.
Обо всём - как раскрасить унылый IS-DOS.

В этот день...   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