+--------------+
|##############|
|#ОБЗОР ГЛЮКОВ#|
|##############|
+--------------+
Старый,родимый раздел, который вот уже 8
номеров прижился у нас.Мы его греем,кормим
ласкаем,а он нам выдает свежую процию глю-
ков,ингода, конечно, ин и не получает долю
ласки,но бывают моменты,когда уж думаешь:
"а не балуем ли мы его".Иногда бывают пери
оды застоя,когад ему нечего сказать,а,ино-
да его просто распирает от слов.Вот и сего
дня он приготовил что-то новенького(глюки
новые,а программы другие).
На расстрел идет ART128s.
Надеюсь,понимаете, что это ART STUDIO 128
версия МОА,специально для SCORP`а.
Хотя,я не знаю,елси наличие RAM-disk'а,
это и есть скорп,то жаль,откровенно гово-
ря.Такой мизерный RAM-disk,что на стенку
хочеться лезть.Ну и хрен с этим RAM-disk.
Меня волнует сейчас глюк,точнее моя задача
донести его до вас.Да и не глюк это скорее
всего,а особенность работы программы.
Значит,при входе в опцию MAGNIFY (перед
тем, как туда входить,установите атрибуты,
только border,любой,только не белый),мы
видим,это border белеет,хотя в атрибутах
стоит у меня другой цвет,ладно,допустим
так и надо,но тогда почему редактор не по-
менял в опции ATTRIB.,точнее не установил
рамочку на белый цвет,а оставил на моем
цвете.....Ну,я же говорил,что скорее всего
это не глюк,а может и глюк? Тогда я прави
льно сделал,что описал его.
Продолжим......MacroEd.
Да,да,да,про эту прогу я уже рассказывал,
да вы можете сказать,что она еще сырая,а
также версия-то первая. Я же пишу про
глюки,чтобы автор прочитал и сказал:
"Опаньки,понятно,надо будет исправить".
Вот,для этог я и пишу.А смысл глюка(не од-
ного глюка,а двух ),неее,начнем с перво-
го.Во-первых ,я первый раз вижу программу,
которая загружает пустуой файл,т.е. она ни
чего не грузит,у меня в каталоге не было
картинок,но он все-таки что-то загрузил.
Второй глюк связан с загрузкой картинки,
он ищет че-то на диске,но картинку не нахо
дит(именно для проверки второго глюка я
поместил на диск картинку),при этом появля
ется курсор,и какие-то пикселы.Начинаем
бегать курсорм его(редактора) картинка на
чинает затираться ,а на месте появляется
картинка,которую мы редактируем.
Вот такой вот глюк,да и вообще у меня та-
кое предчувствие, что у этой проги такое
кол-во глюков, что мне нужно будет целый
номер отвести под нее........
Следующая прога тоже попадает по сомните-
льность:глюк или не глюк.
Эта игра, довольно извсестная вам всем(на-
деюсь,что всем-ЧЕРНыЙ ВОРОН.
Хотите иметь 45 войнов,вместо 35(или 37 я
я точно не помню).А все делается очень про
сто:вам понадивиться деньги на постройку
сразу двух изб(хибар).Значит,строите дома
до тех пор,пока не увидите,что дом сейчас,
который вы построите-последний (т.е дохо-
дит игрового лимита).Выберете,кем будете
строить,и ставьте дом,как только рабочий
ринеться строить его,вы должны остановить
самое главное,успеть,чтобы он не пострил
дом,иначе,вам придеться его рушить,для то-
го, чтобы была возможность на постройку
еще одного дома.Короче,вы его остановили и
теперь у вас есть возможность строить тучу
домов.Но,постройте себе сначала недострое-
нные дома,ну так же останавливайте его на
полпути и все.А потом дома достраивайте,
как только недостроек вам хватит.Подсчитай
те сколько вам домов надо до предела(Ч5чл)
Вы,конечно же,можете и строить больше дом-
ов,но толку не будет.Комп будет показывать
что еда есть для NN человек,но вот всего у
вас может быть 45 человек.Забавный глюк,ко
торый превратился в своеобразную помощь.
Я приношу свои извинения,но я закончу на
этом ОБЗОР ГЛЮКОВ,я просто пока глюков
еще не обнаружил,кроме этих.В десятом номе
ре я подготовлю побольше,а сейчас я приве-
ду пару программ,которые может вам будут
нужны,а может и нет.
Комментарии и пояснения в конце каждой
программы.
******************************************
NADE SCREEN(STACK) BY ANGEL
******************************************
ORG 30000
DI
L1 LD А,39
CALL EFFSP
LD А,16
CALL EFFSP
LD А,#7F:IN (#FE):RRA:JR C,L1
RET
EFFSP LD (STACK+1),SP
LD SP,23296
LD L,А
LD H,А
RRA
RRA
RRA
AND 7
LD В,48
L2 OUT (#FE)
PUSH HL
PUSH HL
PUSH HL
PUSH HL
PUSH HL
PUSH HL
PUSH HL
PUSH HL
DJNZ L2
STACK LD SP,0
EI:HALT:DI
RET
------------------------------------------
Итак,в чем же смысл этой программы?.А вот
в чем,она очищает экран(только атрибуты),
но очищает настолько быстро,что можно офи-
геть.А хрен вы думали стек , ну зачем я
объясняю,я думаю и самы понимаете.Но есть
и второй смысл этой программы.Знаете, мно-
гие любят моргать двумя цветами на экране,
а делают все это в основном двумя экрана-
ми,т.е. 5 и 7.Это тоже быстро происходит,и
вдобавок не влияет на прерывания,но в моей
проге можно задать любой цвет,и не один
а великое множество.Да,я понимаю,что на
прерывания влияем ввиде "бегущего" стека
на экране,а что поделать,можете сохранять
стек в своих прерываниях,но стек все равно
будет на экране,разве что в меньшем кол-
ве,также,как видите стоят три RRA,как вы
понимает они обеспечивают нам BORDER,ког-
да моргает целый экран,вдобавок не "своим"
цветом,поверьте мне,смотрится красиво.
HALT нужен для того,чтобы замедлить про-
гу,т.к. скорость ее не позволяет доконца,
окрасить экран,т.к. за ней следом идет уже
другой цвет,можете и убрать его,и задать
три цвета и получите на экране бегущие по-
лоски;эффект простой,но большой(по объему
памяти,можно и раскрыть цикл,но выйдет аж
512 PUSH HL да и не особо скорость будет
сверхофигенной).
******************************************
UNIVERSAL COPY NOR SCORP-256 BY NOTSONT
******************************************
ORG 24500,30000
DI
LD SP,24499
LD HL,#4000:LD DE,HL:INC DE
LD ВС,6912:LD А,L:OUT (#FE)
LD (HL),L:LDIR
LD C,0:CALL DOS
XOR А:LD C,1:CALL DOS
XOR А:CALL RAM
;-LOADING---------------------------
BEGIN LD HL,TABRAM
LOAG LD А,(HL)
AND А:JR Z,EXLOAD
PUSH HL:CALL RAM,LOAD,REMV1
РОР HL:INC HL
LD А,(TRKL+1):СР 81
JR NC,EXLOAD
JR LOAG
EXLOAD CALL SPACE
;-SAVING------------------------------
SAVING LD HL,TABRAM
SAVAG LD А,(HL)
AND А:JR Z,EXSAVE
PUSH HL
CALL RAM,REMV2,SAVE
РОР HL:INC HL
LD А,(TRKS+1):СР 81
JR NC,EXIT
JR SAVAG
EXSAVE CALL SPACE:JR BEGIN
EXIT LD А,R:NOP:OUT (#FE):OR #20
OUT (#FE):JR EXIT
SAVE LD DE,(TRKS):LD HL,25000
SAVE1 PUSH DE:XOR А
LD C,14:CALL DOS
LD C,11:LD DE,#5800:LD В,#20
CALL DOS
LD DE,HL:INC D
LD C,13:CALL DOS
LD HL,33000
РОР DE:PUSH DE
LD А,1:LD C,14
CALL DOS
LD C,11:LD DE,#5840:LD В,#20
CALL DOS
LD DE,HL:INC D
LD C,13:CALL DOS
РОР DE:INC D:LD (TRKS),DE
LD HL,22528:LD DE,HL:INC DE
LD ВС,32*3:LD (HL),L:LDIR
RET
TRKS DB 0,0
LOAD LD DE,(TRKL):LD HL,25000
LOAD1 PUSH DE:XOR А
LD C,14:CALL DOS
LD C,10
CALL DOS,ERRES
LD DE,HL:INC D
LD C,12:CALL DOS,ERRES
LD HL,33000
РОР DE:PUSH DE
LD А,1:LD C,14:CALL DOS
LD C,10
CALL DOS,ERRES
LD DE,HL:INC D
LD C,12:CALL DOS,ERRES
РОР DE:INC D:LD (TRKL),DE
RET
TRKL DB 0,0
DOS DI:PUSH AF,HL,DE,ВС,IX,IY
RST 8:DB #81
DI:РОР IY,IX,ВС,DE,HL,AF
RET
GRAM PUSH ВС
PUSH AF
PUSH AF
DI
LD (BANKA),А
LD ВС,32765
AND 7
OR 16
OUT (C),А
РОР AF
LD ВС,8189
AND 8
SLA А
OUT (C),А
РОР AF
РОР ВС
RET
BANKA DB 0
SPACE LD А,R:OUT (#FE)
LD А,#7F:IN (#FE):RRA
JR C,SPACE
XOR А:OUT (#FE)
RET
ERRES LD E,#FF:LD D,0:LD C,15:CALL DOS
LD E,#FD:LD D,0:LD C,15:CALL DOS
PUSH HL:LD В,0
ERRR LD А,(HL)
СР #F9
JR NC,NOERR
СР #F4
JR C,NOERR
SUB 100:LD (HL),А
NOERR INC HL:DJNZ ERRR
РОР HL:RET
REMV1 LD HL,25000:LD DE,#C000
LD ВС,#4000:LDIR
RET
REMV2 LD HL,#C000:LD DE,25000
LD ВС,#4000:LDIR
RET
TABRAM DB 1,3,4,6,7,10,11,12
DB 13,14,15,0
------------------------------------------
А вторая программа, как наверное понял на-
род работает только для SCROP`а,остальным
придеться......а че придеться,да они сами
знают,что придеться.Вторая программа-уни-
версальный копировщик,который может скопи
ровать практически любую дискету,один в
один.IS-DOS,О.Р.Р,LEMMINGS-2,ЧВ-1 ,для не
го это не проблема,программа потом будет
хорошо работать.Как понимаете,используется
вся скорповская память,скорость чтения не
высокая(все зависит с какими секторами ра-
боает,т.е. от длины сектора).На экране мо-
жно видеть процесс копирования,т.е. какой
длины сектор.К сожалению,программу,защищен
ную как НЛО-2 ,скопировать копировщик не
может(я бы посмотрел на человека,который
один в один скопирует НЛО-2,на SPECCY).
ТАкже не сможет скопировать ЗЕРКАЛО,т.к.
они защищены хоть и стандартно,но у них
есть и своя осбенность защиты.Они прове-
ряют,информацию,которая содержиться в ин-
дексных массивах,а вот с нимы-то копиров-
щик и не работает,но,как IS-DOS копиров-
щик,я думаю подойдет.Она и была написана,
еще очень давно,как раз для нужд IS-DOS.
А сейчас я решил показать народу труд,кото
рый был сделан NOTSOFT'ом,может и оценит
кто,и будет пользоваться(размечтался!!!).
И еще,надеюсь,окажется полезной информаци-
ей.Она касается людей,у которых нет старых
версий Рго-Tracker'а :PTv2,1;PTv2.4
Я думаю,вы не раз хотели скатать мусыку,а
у вас не было этих редакторов,а были толь-
ко новые версии:PTv3.x ,но,как скатать
мусыку,написанную в том же самом редакторе
но более старой версии.А все очень просто
Вам всего лишь понадобится простая матема-
тика.Итак,грузите музыку(только редактора
старых версий-2.1 и 2.4),потом узнаетсе,
где находится player(он ВСЕГДА находится
в HL,т.е. самый первый адрес:HL,nnnnn,а да
лцше идут JR).Самое главное вы должны
знать ПОЛНУЮ длину ВСЕЙ музыки-обязатель
но.Дальше от начала player'а отнимаете на
чало музыки.И затем от длины музыки отнима
ете ту длину,которая получилась,когда вы
отнимали начало player'а от начало музыки.
И записываем музыку от начала player'а,и
длиной равной второй разнице,т.е.
длина2-длина1=длина музыки без player'а
Показываю на примере.
Допустим длина музыки у нас 4675 байт.
Откомпилировали по адресу 49152.
Редактор 1PTv2.1.
Player расположен по адресу 51759.
Как узнал-смотрите.
В музыке у нас идет вот так
LD HL,51759-адрес play-
JR ....... ега.
JR .......
JR .......
Отнимаем 51759-49152=2607-это и есть длина
player'а
И потом длину музыки отнимаем от длины
player'а,т.е. 4675-2607=2068-а это длина
музыки без player'а.
И записываем с адреса 51759, длиной 2068
Вот,надеюсь когда-нибудь вам это понадоби-
тся,но это не подходит для PTv2.4(rough)
T.к. там изменен player,но подходит еще и
для PTv2.4;PTv3.01(ьу Frunze).
Есть и проще способ.Но только для одного
редактора-PTv2.1. По адресу,где располага
ется музыка,т.е. HL,nnnnn(по nnnnn распола
гается музыка без playser'а). В первых
двух ячейках содержится длина музыки без
player'а.А вот в PTv3.01 и 1PTv2.4 ,там
содержится длина,но она неправильна,да и
вообще мне кажется,что это вообще не длина
а нужные музыке данные,так что в этом слу-
чае(двух других версиях) придеться исполь-
зовать первый способ.
Other articles: