Deja Vu #04
31 марта 1998
  Юмор  

Семь и 1/2 - Урок Ламера или сто и одна процедура очистки аккумулятора.

SoundTrack: "FuCK iSn'T A FacT Yet"(A.FER)
__________________________________________


(C) PLAYGEAR COMPANY/BD
Автор: Card!nal & dAn!!L
__________________________________________



++++++++++++++++++++++++++++++++++++++++++
+  Урок ламера или сто и одна процедура  +
+  очистки аккумулятора v0.007T++ demo.  +
++++++++++++++++++++++++++++++++++++++++++


   Привет  всем  читателям  самого крутого
(без  ложной скромности) журнала для всеми
                нами  любимого  компьютера
└S            SPECCY!!!  Мы, Card!nal  и
c└S            dAn!!L,  решили  настучать
╞└S            эту статейку  для кого  бы
)┴S            вы думали...  для ламеров.
М┴S            Сразу скажу, чтобы  вы  не
я┴S            воспринимали ее  серьезно,
R┬S            ведь сегодня  сами  знаете
╡┬S            какой день (кто  не  сразу
                проинсталлировался,look'ни
на дату выпуска журнала).
   А началось все с того, что я, Card!nal,
завалил  как-то к dAn!!L'у  и после корот-
кой, но содержательной беседы типа: -Новье
есть?  -До хрена!!! - dAn!!L начал мне по-
казывать  "новый  soft".  Среди  новья был
журнал  Zx-Element  или  Energy#9, который
подозрительно  был  похож  на  ZX-FORMAT и
упорно  не хотел работать на компостере...
эээ, извините, компьютере с неподключенной
мышой. Мы, конечно, принялись за  лом, что
бы  выявить  в  программе  драйвер  мыша и
отключить его. Нажав на Magic Scorp'а, на-
чали  копаться в программе. Там мы увидели
прикол:  аккумулятор  очищался по XOR A, а
проверка  на  ноль  делалась по CP 0. Жур-
нальчик  мы  исправили, но CP 0 нас сильно
приколол,  и мы, посмеявшись, решили напи-
сать  статейку,  которая  освещает похожий
вопрос, а точнее очистку аккумулятора.
        Итак, внимание!!! Поехали!
;-----------------------------------------
        LD A,0
        XOR A
        SUB A

   Эти  команды, как вы поняли очищают ак-
кумулятор, но я не рекомендую их использо-
вать, не смотря на высокую скорость выпол-
нения, т.к. хакер, который неизбежно будет
ломать  вашу  программу,  увидив их, сразу
поймет, что здесь происходит очистка акку-
мулятора, а не расксорка тела программы!!!
;-----------------------------------------
   Следующая  процедура делает тоже самое,
но оригинальнее.

        RES 7,A
        RES 5,A
        RES 3,A
        RES 1,A
        RES 6,A
        RES 4,A
        RES 2,A
        RES 0,A

   Тут не сразу понимаешь в чем дело, пока
не протрассируешь STS'ом v1.0 или MONS.
;-----------------------------------------
   Следующая  процедурка делает это в цик-
ле,  но она почему-то вместе с аккумулято-
ром очищает еще и регистр B вашего микроп-
роцессора  PENTIUM  II  333  или MOTOROLLA
68060 (у всех по разному).

        LD B,8
        SLA A
        DJNZ $-2
;-----------------------------------------
   Тут  сам черт ноги поломает, до сих пор
не понял почему так получается.

        LD C,#80
        SLI A
        RRC C
        JR NC,$-4
        XOR C
        RRC C
        JR NC,$-3
;-----------------------------------------
   Далее сделано хитро, на скорость выпол-
нения  процедурки  влияют  регистры B и C,
которые потом грохаются. Скорость в преде-
лах  от  32  до 1310732 тиков... фантасти-
ка!!!  Вот  уж  поистине  потрясающие ско-
ростные возможности Z80A.

        LD H,D
        LD L,E
        LDIR
        LD A,B
;-----------------------------------------
   Вообще,  процедуру очистки аккумулятора
лучше оформить в виде подпрограммы и обра-
щаться к ней по мере необходимости.

        CALL CLR_A
        RET
CLR_A   XOR A
        RET
;-----------------------------------------
   Пока тут набивал статью, услышал по ра-
дио  прикольную  фразу,  цитирую:  Счастье
есть - оно не может не есть!
   Далее  процессор  заряжает аккумулятор,
до глюков и выходит по знамени Z.

        ADD A,A
        JR NZ,$-1
;-----------------------------------------
   Ха-Ха-Ха!!!  Опять по радио прикол ска-
зали: Крепче за шоферку держись баран!
   Дальше объяснять не буду.

        AND 0
;-----------------------------------------
   Одна процеДУРА отлична от другой с точ-
ностью до наоборот.

        DEC A
        JR NZ,$-1

        INC A
        JR NZ,$-1
;-----------------------------------------
   По радио опять  шутку  сморозили: Лучше
переспать, чем недоесть!
   Эту  программу  запускать  опасно, т.к.
порт  0  может оказаться портом расширения
памяти, мыша, джойстика, монитора, принте-
ра,   дисковода,  клавы,  микропроцессора,
дисковода...  ой,  это  уже  было  или все
вместе взятое!!!

        IN A,(0)
        CPL
;-----------------------------------------
   Здесь  ничего объяснить не могу... глюк
полнейший.

        LD C,#7F
        AND C
        RRC C
        JR C,$-3
;-----------------------------------------
   Эти  четыре  процедурки  похожи друг на
друга, как подгузники хагис, либеро и др.

        LD A,1
        ADD A,#FF

        LD A,#FF
        ADD A,1

        LD A,1
        DEC A

        LD A,#FF
        INC A
;-----------------------------------------
   Тут  пояснять,  думаю,  не  надо. Скажу
только,  что  вместо  B можно использовать
все остальные регистры и порты Спектрума.

        LD B,0
        LD A,B
;-----------------------------------------
   Здеся вовлекаются не только команды LD,
ADD и DJNZ, но и PUSH и POP. Если вы поня-
ли мой бред, тогда спустите шары пониже...
я не в том смысле...

        LD B,16
        ADD HL,HL
        DJNZ $-1
        PUSH HL
        POP AF
;-----------------------------------------
   Вместо  последовательности команд RRA и
AND A  можно  использовать  последователь-
ность ( люблю я это слово ) команды SLA A.

        LD B,8
        RRA
        AND A
        DJNZ $-2
;-----------------------------------------
   Следующая процедура восемь раз крутит в
цикле архисложную команду NEG.

        LD B,8
        SCF
        RRA
        NEG
        RRA
        DJNZ $-3
        ADD A,#56
;-----------------------------------------
   Если  ты не смог разобраться, как рабо-
тает  следующая процедурка, то я могу тебя
поздравить, ты - олень!

        DJNZ $
        LD A,B
;-----------------------------------------
   Сегодня похоже завал приколов по радио:
Желаю здоровья, счастья и творческих узбе-
ков!
   Следующая программка прикалывается сле-
дующим  образом: она прикалывает #FF к ре-
гистрам  B  и A, а потом откалывает от них
по единичке.

        LD B,#FF
        LD A,#FF
        DEC A
        DJNZ $-1
;-----------------------------------------
        LD HL,#FFFF
        INC HL
        PUSH HL
        POP AF
   Эта процедура работает также, как:
        LD DE,#FFFF
        INC DE
        PUSH DE
        POP AF
   или как:
        LD BC,#FFFF
        INC BC
        PUSH BC
        POP AF
   Как видите - никакой разницы.
;-----------------------------------------
   Вместо  метки  METKA можно использовать
метку  SHIT,  а вместо DATA_A использовать
SUXX.  Выбирайте  сами, что для вас прият-
нее.

        LD HL,DATA_A
        LD DE,METKA+1
        LDI
METKA   LD A,1
        RET
DATA_A  DEFB 0
;-----------------------------------------
   Не понятно, зачем здесь примазались ко-
манды  CP 0 и JP Z,... ну да ладно, байтом
больше - байтом меньше (логика писишника).

        LD A,0
        CP 0
        JP Z,$+3
;-----------------------------------------
   Если  у вас нестандартная прошивка ПЗУ,
то  вместе  с  аккумулятором очистится вся
память.

        LD A,(#3D03)
        LD B,A
        LD A,(#3D04)
        ADD A,B
        CP 0
        JP NZ,0
;-----------------------------------------
   Наконец-то   появилась   программа  ис-
пользующая индексный регистр, советую зво-
нить к ней по CALL.

        LD IX,DATA
        LD A,(IX+0)
        RET
DATA    DEFB 0
;-----------------------------------------
   Следующий  глюк не только разряжает ак-
кумулятор  до  нуля,  но  врубает трубу на
Скорпионе.  Чтобы  вырубить трубу поставте
#1FFD вместо #7FFD в четвертой строке сни-
зу.

        LD BC,#7FFD
        IN A,(C)
        AND %00001111
        AND %11110000
;-----------------------------------------
   Программа  может  не  пойти, если у вас
ПЗУ не RULEZ, а SUCKS AND MUST DIE!

        LD A,(#3D00)
;-----------------------------------------
   Что-то я совсем забил на TR-DOS... Дан-
ная процедура юзает этот интерфейс.

        LD HL,#8000
        LD DE,#0000
        LD B,1
        LD C,5
        CALL #3D13
        LD A,(#8000)
        LD B,A
        XOR B
;-----------------------------------------
   Следующие  два глюка настолько глючные,
что  у меня просто язык... а точнее пальцы
не поворачиваются их комментировать.

        LD A,#FF
        CPL

        AND %00000001
        RES 1,A
;-----------------------------------------
   Многие  начинающие ламеры до сих пор не
знают как использовать второй режим преры-
ваний.  Поэтому  смотрите и учитесь. А как
научитесь,  так пришлите не менее 5 долла-
ров  США на мой адрес, можно больше, какие
могут быть возражения.

        ORG #8000
        DI
        LD HL,#BE00
        LD DE,#BE01
        LD BC,256
        LD (HL),#BF
        LDIR
        LD A,#BE
        LD I,A
        IM 2
        EI
        HALT
        DI
        IM 1
        PUSH AF
        LD A,#3F
        LD I,A
        POP AF
        RET
INT     DI
        PUSH HL
        PUSH DE
        PUSH BC
        PUSH IX
        PUSH IY
        LD A,0
        POP IY
        POP IX
        POP BC
        POP DE
        POP HL
        EI
        RETI
        ORG #BFBF
        JP INT
   Конечно, программу можно немного сокра-
тить  по  длине, стерев все команды, кроме
LD A,0, а вместо нее использовать XOR A.
;-----------------------------------------
   Данная  процедурка привязана к конкрет-
ному  адресу,  ибо  сказано, что изменение
этого  адреса повлечет за собой преждевре-
менную инсталляцию wINDOWS 95 со всеми вы-
текающими от сюда последствиями.

        ORG #BFFC
        DI
        CALL #0052
        DEC SP
        DEC SP
        POP HL
        LD B,L
        LD C,H
        PUSH BC
        POP AF
        EI
        RET
;-----------------------------------------
   Вместо  метки  BYTE  можно использовать
любую не длинную  последовательность букв.
Больше добавить нечего.

        LD A,(BYTE)
        RET
BYTE    DEFB 0
;-----------------------------------------
   Если  вы  немного  шарите  в  кодах, то
программа  в  конце  концов выходит по RET
либо уходит по JP 0.

        LD A,(#0000)
M       CP 0
        JR NZ,YEP
        JP 0
YEP     LD A,(M+1)
        CP 0
        JP Z,RETURN
        JP 0
RETURN  RET


   Help  для  ламеров:  используйте  RST 0
вместо  JP 0  и тогда ваши волосы не будут
сухими  и безжизненными, а будут мокрыми и
шевелиться.
;-----------------------------------------
   Ну что я еще могу сказать?!

        LD A,0
        CP 0
        JR NZ,0
        RET

        LD A,0
        CP 1
        JP Z,0
        RET
;-----------------------------------------
   Печать  символов по RST #10 тоже приго-
дилась для разрядки аккумулятора.

        LD A,2
        CALL 5633
        LD HL,MES
M1      LD A,(HL)
        CP 255
        JR Z,CONT
        RST #10
        INC HL
        JR M1
CONT    LD A,(#4000)
        RET
MES     DEFB 22,0,0,"0",255
;-----------------------------------------
   Тут как повезет. Либо очистится аккуму-
лятор,  либо очистится компьютер от памяти
либо  память  от  компьютера, одно обещаю,
вирусы сдохнут сразу!

        LD A,B
        CP 0
        RET Z
        LD A,C
        CP 0
        RET Z
        LD A,H
        CP 0
        RET Z
        LD A,L
        CP 0
        RET Z
        LD A,D
        CP 0
        RET Z
        LD A,E
        CP 0
        RET Z
        LD A,R
        CP 0
        RET Z
        LD A,I
        CP 0
        RET Z
        LD A,A
        CP 0
        RET Z
        JP 0
;-----------------------------------------
   Тут   закручивается  итарационный  цикл
(горе тем, кто не учится на программиста),
и  делается выход, поэтому вызывайте ее по
CALL.

        LD HL,0
NEXT_B  LD A,(HL)
        CP 0
        RET Z
        INC HL
        JR NEXT_B
;-----------------------------------------
   Ну и последний шедевр очистки аккумуля-
тора  завершает лучшие сто и одну процеду-
ру.  Программа  должна  работать,  хотя не
знаю...  не  проверял... числа dAn!!L явно
взял от балды.

        LD A,4
        LD B,101
        LD C,38
        LD D,41
        LD E,19
        LD H,9
        LD L,43
        ADD A,B
        ADD A,C
        ADD A,D
        ADD A,E
        ADD A,H
        ADD A,L
        INC A

   P.S. Весь этот бред набил Card!nal/PGC/
BD. Процедуры придумывали dAn!!L/PGC/BD  и
Card!nal/PGC/BD. Мы можем  продолжить  эту
рубрику, а поэтому  присылайте  отзывы  и,
конечно, свои оригинальные процедуры очис-
тки аккумулятора.
   P.P.S. А Ze Pagan  сидел, как  придурок
до трех ночи и раскрашивал всю эту  бредя-
тину, которую вы  тут  сочинили, кисточкой
для окраски ногтей!
   P.P.P.S. Кисточку я спер у жены, а то я
знаю вас, извращенцев:))!

END...



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

Аперативчик - Об управлении в обoлочке DEJA VU и о содержании 4 номера журнала

Тема - Бессмертный SPECCY - "проект будущего Speccy".

Капля припоя - Эмулятор ZX-SPECTRUM v3.04 - Руководство пользователя.

Капля припоя - Эмулятор ZX-SPECTRUM v0.20b by LION.

Капля припоя - ZX-SPECTRUM NAVIGATOR v1.00beta.

SOFTWARE - Презентация игры "Властелин Ориона".

SOFTWARE - Трактат о великой пользительности некоторых авторский разработок.

SOFTWARE - Обзор новых игр: FISHER pre-reliz , EMPIRE demo , LITTLE GHOST demo, СТАЛКЕР, ELOPEMENT, WORDLIFE.

SOFTWARE - Обзор новинок демосцены: HALLUCINATIONS in OPERA, INFARCT, YER ACHE 2, AMIGA, RAY EURODEMO, ZEST.

CODING - Ремикс некоторых процедур 93 года: SCREEN APARAT, Теневой контур, LOOK BASIC PROGRAMM-2.

CODING - Печать чисел в разных системах счисления: печать десятичных и шестнадцатеричных, двоичных и римских чисел, печать чисел в системе счисления с основанием, установленным пользователем.

CODING - процедура "Плазменные шарики".

CODING - Плавное затухание музыки в любой момент времени.

CODING - THE оптимизация.

CODING - Вращение спрайтов.

ANOTHER WORLD - О компьютере Be Box.

ANOTHER WORLD - Аргументы и факты (AMIGA vs PC).

Доска почета - Официальная информация о фестивале FunTop-98.

Доска почета - Конкурс на самую лучшую минидемку (1024 байта).

Семь и 1/2 - Урок Ламера или сто и одна процедура очистки аккумулятора.

Семь и 1/2 - День дурака (приколы и юмор).

Проба пера - Последняя гастроль или VIRTUL-но AMIG-ный синдром.

Проба пера - Поэма о добре и зле.

Проба пера - Возвращение Клэр.

Проба пера - Стихи: Спящий студент, Басня о Матане, Медкомиссия.

Проба пера - Рассказ "Война продолжается" (продолжение, глава 6).

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


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

Похожие статьи:
Байки - поездка в деревню (продолжение).
BBS - список станций BBS ZXNet.
Форум - А.Стрельников. Перспективы развития ZX Spectrum.

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