Deja Vu #01
30 июня 1997
  Scorpion ZS  
  Железо  

Coding - Описание программы AntiRST8 (для ZS256).

(C)1997 Cardinal/PLAYGEAR Co.

       Описание программы ANTIRST8.
──────────────────────────────────────────

                  * * *

  Информация, о которой пойдет речь далее,
наверняка, заинтересует владельцев компью-
тера  Scorpion. Все владельцы SCORP'а час-
тенько сталкиваются с такой проблемой, что
некоторые  программы блокируют теневой мо-
нитор  по  RST #08: DEFB #85  и этим самым
препятствуют  просмотр  их изнутри. Но это
было раньше, а теперь все изменится! Прог-
рамма, которую я вам предлагаю, решит ваши
проблемы. Сразу скажу, что она есть в при-
ложении    этого    журнала   под   именем
ANTIRST8.B  длиной  всего  в  один сектор.
Позже  я расскажу о ней подробно, а сейчас
объясню,  как она работает. Запустите файл
ANTIRST8.B из приложения журнала DEJA VU и
смотрите  на  экран.  Спустя секунду будет
произведена  инициализация  TR DOS, и если
бордюр будет черный, то все в порядке, ес-
ли  же он стал синим, то произошла одна из
ошибок:  1) у  вас  не Scorpion.  2) у вас
Scorpion,  но  ПЗУ-шка  скорее всего очень
старой версии.(?...) 3) у вас Scorpion, но
перед запуском этой программки вы случайно
(или спецом) отключили порт #1FFD. 4) ???!
  Если у вас все прошло хорошо, тогда сме-
ло запускайте программу, которая блокирует
Monitor  по  RST 8.  Потом как бы случайно
жмите на  Magic и тащитесь, монитор больше
не   заблокирован!   Надо   сказать,   что
ANTIRST8   не  спасет  теневик  от  полной
очистки  восьмой  страницы  ОЗУ. Программа
ANTIRST8  резидентно  находится в памяти и
не уничтожается даже по кнопке  RESET.
  А теперь я расскажу подробнее о том, как
работает  ANTIRST8.  Говоря простым языком
моя  программа перехватыватывает Magic или
RST #08,  подправляет  переменную монитора
по  адресу #C063, (в этой переменной нахо-
дится  0, если монитор не заблокирован или
любое  другое значение, если он заблокиро-
ван)  и делается возврат в монитор. Вот ее
листинг.
------------------------------------------
        ORG 25000
RESID   EQU #C008
        DI
        LD SP,#7FFF
        LD DE,#1210
        CALL BANKS
;подключаем  ПЗУ теневого монитора и уста-
;навливаем восьмую страницу памяти
;------------------
        LD HL,PROGA
        LD DE,RESID
        LD BC,7
        LDIR
;перекидываем  резидент в восьмую страницу
;памяти по адресу указанному в метке RESID
;------------------
        LD IX,#0000
        LD BC,#4000
LOOP_1  LD A,#ED
        CP (IX+0)
        JR NZ,LOOP_2
        CP (IX+4)
        JR NZ,LOOP_2
        LD A,#73
        CP (IX+1)
        JR NZ,LOOP_2
        CP (IX+5)
        JR NZ,LOOP_2
        LD A,#31
        CP (IX+8)
        JR NZ,LOOP_2
        LD A,#4B
        CP (IX+12)
        JR Z,INSTALL
LOOP_2  INC IX
        DEC BC
        LD A,B
        OR C
        JR NZ,LOOP_1
;эта  подпрограммка  ищет  в  ПЗУ монитора
;примерно такой кусок программы:
;LD (#NNNN),SP
;LD (#MMMM),SP
;LD SP,#YYYY
;LD BC,(#XXXX)
;LD A,C
;OR B
;JR NZ,#LLLL
;CALL .....
;это  нужно для  того, чтобы узнать адрес,
;который  находится  в  ячейке #XXXX, и на
;который переходит теневик, если он не ра-
;вен 0.  кстати, по адресу #LLLL находится
;примерно такая подпрограмма:
;PUSH BC
;DEC BC
;LD A,B
;OR C
;JR NZ,$-3
;RET
;отсюда мы видим, что на стек кладется ад-
;рес  взятый из ячейки #XXXX, затем закру-
;чивается  цикл пока BC не обнулится и вы-
;ход по адресу на стеке
;------------------
        INC A
        OUT (#FE),A
        JR EXIT
;ошибка, кусок не найден
;------------------
INSTALL LD IY,RESID
        PUSH IX
        POP HL
        LD BC,19
        ADD HL,BC
        LD (IY+#05),L
        LD (IY+#06),H
        PUSH IY
        POP BC
        LD L,(IX+13)
        LD H,(IX+14)
        LD (HL),C
        INC HL
        LD (HL),B
;инсталлируем резидент и устанавливаем ад-
;рес  перехода при нажатии на Magic на ад-
;рес, где будет находиться резидент
;------------------
EXIT    LD DE,#0010
        CALL BANKS
        LD IY,#5C3A
        LD HL,#2758
        EXX
        LD SP,65000
        LD HL,0
        PUSH HL
        JP #3D2F
;выход в TR DOS
;------------------
BANKS   LD BC,#1FFD
        OUT (C),D
        LD B,#7F
        OUT (C),E
        RET
;RAMDRIVE
;------------------
PROGA   XOR A
        LD (#C063),A
        JP 0
;резидент, который запускается после нажа-
;тия на Magic, вместо адреса 0 инсталлятор
;занесет адрес возврата в монитор
;-----------------------------------------

  Вот  я  в двух словах и объяснил принцип
работы ANTIRST8. Добавлю только, что полу-
чить ПЗУ монитора можно такой программкой.
;------------------
        DI
        LD A,2
        OUT (#FD),A
        LD HL,0
        LD DE,#8000
        LD BC,#4000
        LDIR
        XOR A
        OUT (#FD),A
        EI
        RET
;по  адресу #8000 будет находиться ПЗУ мо-
;нитора
;-----------------------------------------

  Если  вы хотите узнать больше информации
по  Скорпиону, пишите, спрашивайте. Так же
буду рад принять от вас любую информацию.
Мой  адрес:  650056  г.Кемерово  пр.Ленина
д.117Б, кв.37 Латышеву Денису Ивановичу.
Просьба вкладывать чистый конверт.

END...




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

Coding - Описание программы AntiRST8 (для ZS256).

Coding - Режим IM 2 при работе в TR-DOS (вариант Loader'а).

Software - Oбзор системных программ : ZX-Turbo Assembler v3.10 demo, Flash Music Module Convertor v 1.1, Pro Tracker v2.4, Str Music Decompiles v1.1, Extremes Tracker v 1.3, Softcopy v1.3.

Software - Новинки демосцены: Over The Top, Brain Sugery, Braind Crash, Paraxyzm, Nerve Trackmo, Insane, Trashe, Iris Uldtra demo.

Software - Обзор новых игровых программ: Mortal Kombat, Magic Stripes, Return to Home 4, Чёрный Ворон, Athena, Rescate Atlantida, Skull & Crossbones, Mario Islands demo.

Software - Описание системной программмы: Professional Xoring System v1.0.

Апперативчик - Об оболочке журнала и управлении в ней.

Апперативчик - От авторов

Доска почета - "oVERFILE" всю страну кинули". О Кемеровской Спектрумовской Сцене. Пара слов о писи.

Доска почета - Попса, Must Die !

За бугром - Богатые тоже плачут?

За бугром - Интервью с Джоном Ритманом.

Капля припоя - Использование принтера СМ-6337 с компьютером Скорпион ZS 256 Turbo+.

Капля припоя - О доработке компьютера Scorpion ZS256 (Схема доработки AY).

Проба пера - Рассказ "Война продолжается"

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

Семь и 1/2 - Из неопубликованного: Стих "Кроха сын к отцу пошел..."

Семь и 1/2 - Повесть о настоящем Werewolfe или Virtual'но амижный синдром.

Семь и 1/2 - Прострелить себе ногу (руководство программистам).

Тема - Музыкальные возможности ZX-Spectrum'а: что было, что есть и что будет.


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

Похожие статьи:
Железо - схема подключения внутреннего Hayes модема к ZX Spectrum.
Железо - Дополнительный графический режим 512x192. (Дополнение).
Реклама - Реклама и об'явления ...

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