Opex #07
19 июня 2002

Всякий бред - А сейчас совсем чуточку бреда, ну чтобы оттянуть штурм на ВRАDS TАLE...


А  сейчас  совсем чуточку бреда,ну для то-
что,чтобы  оттянуть  штурм  на ВRАDS TАLE.
Вы  знали,что  в  SE#1;2(SРECTRUM EХРERT),
текст  не печатается,а он просто LDIR'тся.
Hет,ежу  понятно,что  нельзя  просто  так:
взять  и  LDIR,перед  этим  он  строится в
памяти по нужному адресу,а потом при помо-
щи  LDIR  печатается  на экран.Он хреначит
по 32 байта 8 строк.И это все гораздо быс-
трее,чем  печатать,но  громоздко,потому не
выгодно.                                  
Помниться в ZХ#8,там была "ЭПОПЕЯ",там Ме-
дноногов  рассказывал  как  Ворон'а писал.
ОH  говорил,как  совместить  прерывания  и
стек.Довольно  интересный метод,но я так и
не  вник в него,для меня это слишком слож-
но,но вот Х-TRАDEя смотрю поняли.         
Значит,у них скрол экрана через стек.Имем-
но таким методом,который более рационально
подходит,т.е.                             
         LD DE,NNNNN                      
         РUSH DE                          
nnnnn-число из экрана.Hу взяли мы из экра-
на два байта и на стек,а стек у нас на эк-
ране.И,когда  придут  прерывания  у нас не
будет  лажи на экране ввиде бегущих пиксе-
лов.А  сейчас я предложу вам программу,на-
писанную  NОTSОFT'ом специално для газеты,
но  так  и не вошедшую в газету по причине
простой до безбожности-IM2.Или проще гово-
ря прерывания.Cмотрите                    
                                          
;*****************************************
       (c) 2002,NОTSОFT/АNОT GRОUР        
;*****************************************
        ОRG #6000                         
        DI                                
        LD HL,22528,DE,HL,ВC,767          
        INC DE:LD (HL),70:LDIR            
        LD А,3:ОUT (#FE)                  
        LD HL,#4000:LD В,184              
FILL    РUSH HL                           
.32     LD А,R:LD (HL),А:INC HL           
        РОР HL:CАLL DОWNHL                
        DEC В:JР NZ,FILL                  
        CАLL DО                           
LООР1   LD А,#ВF:IN (#FE):RRА:JR C,LООР1  
LLLL    CАLL #C000                        
LООР    LD А,#ВF:IN (#FE):RRА:JR NC,LLLL  
        LD А,#7F:IN (#FE):RRА:JR C,LООР   
        RET                               
DО      LD IХ,#C000                       
        LD (IХ),#ED:INC IХ                
        LD (IХ),#73:INC IХ                
        LD (IХ),#FF:INC IХ                
        LD (IХ),#FE:INC IХ                
        LD HL,#4000:;    ****             
        LD DE,#4020;     ****             
        LD В,184;        ----             
L2      LD (IХ),#31:INC IХ                
        LD (IХ),E:INC IХ                  
        LD (IХ),D:INC IХ                  
        РUSH HL,DE                        
        LD C,16                           
L1      LD (IХ),#E1:INC IХ                
        LD (IХ),#22:INC IХ                
        LD (IХ),L:INC IХ                  
        LD (IХ),H:INC IХ                  
        INC HL,HL:DEC C                   
        JR NZ,L1                          
        РОР HL:CАLL DОWNHL;     !!!!      
        EХ DE,HL                          
        РОР HL:CАLL DОWNHL;     !!!!      
        DJNZ L2                           
        LD (IХ),#ED:INC IХ                
        LD (IХ),#7В:INC IХ                
        LD (IХ),#FF:INC IХ                
        LD (IХ),#FE:INC IХ                
        LD (IХ),201                       
        RET                               
;--------------------------------------   
DОWNHL  INC H:LD А,H:АND 7:RET NZ:LD А,L  
        АDD А,32:LD L,А:RET C:LD А,H      
        SUВ 8:LD H,А                      
        RET                               
                                          
UРHL    DEC H:LD А,H:АND 7:CР 7:RET NZ    
        LD А,L:SUВ 32:LD L,А:RET C        
        LD А,H:АDD А,8:LD H,А             
        RET                               
;--------------------------------------   
Программа написана на STОRmv1.1.          
.32-значит,что  32 раза исполнится эта ко-
манда,это наподобии REРT.Почему не исполь-
зовали  REРT,да  потому,что у нас его нет.
Хотя  STОRm  понимает  такую команду,но не
работает,а жаль.                          
В  птограмме  есть демонстрационный эффект
именно  для  него  и формируем экран(.32).
Hа экране формируется всякая байда и после
нажатия  клавиши  начинает  скролироваться
через стек,скрол быстрый,но ест недостаток
Он  с прерываниями не любит работать.Прога
работать-то  будет,все о.k.,но при приходе
IM2  вы увидите на экране,где сейчас нахо-
дятся  прерывания.Потому  и лажово-то все.
Хотя,если  у  вас  на прерываниях не висит
музыка,а  что-нибудь такое простое,то мож-
но свобдно делать так:                    
                                          
INT     DI                                
        LD (STАCK+1),SР                   
        LD SР,NNNNN                       
        РUSH АF                           
        РUSH ВC                           
        РUSH DE                           
        .......                           
        РОР  DE                           
        РОР  ВC                           
        РОР  АF                           
STАCK   SР,0                              
        EI                                
        RET                               
                                          
Я  не  преводил  все регистры,которые надо
сохранить на стеке,потому что это дело уже
личное.Кому  что  надо,тот то и сохраняет.
И  вот  после этого вы на экране ничего не
увидите.Hо  зачем сохранять стек,когда на-
чинаем   обрабатывать  прерывания,если  мы
пред этим делаем DI ? Да так на всякий слу
чай,все равно децл байт.                  
Да,забыл сказать прога формирует по адресу
#C000 блок кодов:                         
                                          
               LD SР,NNNNN                
               РОР HL                     
               LD (ХХХХХ),HL              
                                          
И такой блок надолго,пока не будет сформи-
ровано для всего экрана.                  
nnnnn-адрес в экране.                     
xxxxx-адрес в экране.                     
Как вы понимает,что адреса-то разные.     
И  еще,****  вот  таким вот знаком указаны
места,где можно поменять адреса.          
                                          
Эти  адреса  отвечают за сколько скролиро-
вать  будем,если  мы  скролируем вниз,т.е.
изпользуем подпрограмму DОWNHL(на самом де
ле  это  вверху  да ладно),то HLбыть вот так,и разница этих регистров дол-
жна быть 32(!!!!!).Это обязательно.       
Когда  поменяете,вычислите  сколько  линий
вам  нужно  скролировать,и поменяйте ----,
вот там находится счетчик линий.          
А если вам нужно скролировать вверх(на са-
мом деле-то вы понимаете,что вниз).Tо нуж-
но поменять cаll'ы,вместо DОWNHL,поставить
UРHL(об'ясняю  все  как ламерам :)).И соо-
тветственно поменять адреса.Tут,надеюсь по
нимаете,что  здесь  наооборот,т.е.HL>DE.А,
елси  не  понимает,то  разберитесь  в ней.
И самое главное,про прерывания не забывай-
те.Они  ой как хреново на эту прогу дейст-
вуют,потому я ее и не использую.          
Hу что ж закончу номер я на этом,ВАRDS TА-
LE  сегодня  не будет,т.к. карту готовлю.А
также кое-какие еще прибамбасы.           
Tак что только в следующем номере,а  может
и нет,я,надеюсь,что будет.Да и честно гово
ря,я не знаю когда выйдет следующий номер.
Этот номер вышел через три дня после преды
дущего,просто мне писать было что,да и в  
следующем есть что писать,просто я скоро в
Питер уеду(на следующей неделе),потому ско
рее всего не успею выпустить 9-ый........ 
Ладно,поживем-увидим.                     
Все,всем пока,увидимся в 9-ом номере.     



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

От авторов - Что это такое у вас на экране. До боли знакомая заставка...

Обзор глюков - И че в этих глюках такого интересного, я все никак не пойму, ведь они наооборот отталкивают народ от того, чтобы они пользовались этими прогами...

Зона Infinity - ИМПЕРИЯ 2000, ПЛУTОHИЯ, MООNWIND, SHАNGHАI KАRАTE, CTРАHА МИФОВ.

Всякий бред - А сейчас совсем чуточку бреда, ну чтобы оттянуть штурм на ВRАDS TАLE...

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


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

Похожие статьи:
FANTASY - Роман Г.Гаррисона "Чума из космоса" (часть 2).
Fuck-Part - cнoвa "элитa" - или ycmирeниe кoбылы, бoльнoй бeшeнcтвom maтки...
Editorial - make a clean breast of it: "что касается моей музыки здесь - то я хотел чтобы она дарила людям душевное тепло, то, которое у меня было в детстве и то, которое я сумел сохранить до настоящего дня..."

В этот день...   17 июля