Opex #08
23 июня 2002

Обзор глюков - Старый, родимый раздел, который вот уже 8 номеров прижился у нас.

<b>Обзор глюков</b> - Старый, родимый раздел, который вот уже 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 - А вот и предпоследний раздел газеты, в котором я поведую о бесконечках в играх...

Послесловие - Авторы и софт.


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

Похожие статьи:
Если глючит модем... - вот вам советы от Hamer'a
Реклама - бесплатные обьявления и реклама.
Взгляд в будущее
Бук - Лабиринт Отражений.
Деда Мороз 2 - новогодние стихи.

В этот день...   3 февраля