Opex
#08
23 июня 2002 |
|
Обзор глюков - Старый, родимый раздел, который вот уже 8 номеров прижился у нас.
+--------------+ |##############| |#ОБЗОР ГЛЮКОВ#| |##############| +--------------+ Старый,родимый раздел, который вот уже 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 ,там содержится длина,но она неправильна,да и вообще мне кажется,что это вообще не длина а нужные музыке данные,так что в этом слу- чае(двух других версиях) придеться исполь- зовать первый способ.
Другие статьи номера:
От авторов - Хаюшки, добрый народ. Вот дожилы мы вместе с вами до очередного, 9-го по счету номера газеты... |
Обзор глюков - Старый, родимый раздел, который вот уже 8 номеров прижился у нас. |
Зона Infinity - А вот и предпоследний раздел газеты, в котором я поведую о бесконечках в играх... |
Послесловие - Авторы и софт. |
Похожие статьи:
В этот день... 21 ноября