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.

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


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

Похожие статьи:
ИНТЕРВЬЮ - Fatal Snipe отвечает на вопросы C-Jeff'а.
В приложении к номеру.
Байки из склепа - Кинотеатр...

В этот день...   29 ноября