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...