Coding - Load the following program on Ustav'e-2oo2.01.24 into your overheated brain

TargeT #10
                                
                      .         
                      |         
              . - - Intro - - . 
          FOX,Savers Alliance   
   . - -- ------------|---------
                      .         
                                
                      |         
      ,&&$$&&,   [sinus/zgr/svr]
   ,&$$$$&$$$$&,      |         
  ,&$$$&$$&$&$$&,     |         
  &$&$$$&&$$$$&$$     |         
 ,$$$&$$''&$&'   /   |    /   
 &$$&$&'  '$'   /    |   /    
 $$$$$'___________/__|__/____ 
 $$$$&           /  /|        
 $$&$4         ,$,  / |        
 $$$$$,   $&, ,&$&,  |        
 &$$$$$,  '$$$$$&$$  |        
 '$$&$$&,  ,$&$$$$&            
  '$$$$$$&$$$$&$$&'             
   '&$$$$$$$&$$&'               
     '$&&$$$&&'                 
 Great bulls! How is it?
Badly?  It's cool here! And you
it will be cool too!  ... Not yet
became?   Then download it to your
feverish brain next program
onUstav'e-2oo2.01.24 :         
                                
FOX>                            
                                
  Since Sine on Charter'e
Coding is still weak, I'll help him here
:)                              
                                
0 ЭЙ, ТЫ! ;опрос порта          
1 ВСТАТЬ!                       
2 СЕСТЬ!                        
3 НУ ЧТО,УРОД,ЕЩЕ ?!!           
                                
  ; (IF вам круто THEN GO TO S) 
                                
4 GO TO 1                       
                                
S ОТбОЙ !!! ; ВАМ КРУТО !!!!    
                                
Sinus>Okay, it was all bullshit.
complete... We'll talk to you o
coding, or more precisely, o
full frame
pixel-by-pixelscrolling of everything
screen. I'm guessing you don't
new to coding, and familiar with
some coding perversions
(type of data transfer via
stack)                           
                                
  So, as is already known, all
how to throw a screen over a frame
send two bytes ;) Method
is:                          
                                
  LD SP,#S800                   
  DUP #0С00                     
  LD HL,some_data               
  PUSH HL                       
  EDUP                          
                                
where some_data this is our
screenshot (by the way, this piece of code
will not work, because I need this
some_data change before each
PUSH'em).  However, it is necessary that
this feces also scrolled, for
convenience, let's break down our picture
along the lines:                      
                                
  DUP 192 ;192 lines in picture 
  LD SP,scr_addr ;scrn addr :)  
  DUP #10                       
  LD HL,rulez_data              
  PUSH HL                       
  EDUP                          
  EDUP                          
                                
now if instead of scr_addr
put line_address_ekpaha+32,
a instead of rulez_data our
picture, then... we will see that
this example is not much different
from the previous one (just now)
slows down more...             
 So that the picture moves from
places, you can either change the data
(which is equivalent to standard
scrolling and slows down terribly) or...
change screen addresses!!! Ticks
minimum changes are spent on
screen maximum :)              
                                
Well, now the final version:   
;-------------------------------
 ORG #7000               
        CALL GENSCBF            
        XOR A                   
                                
LOOP PUSH AF                 
        HALT                    
        LD B,A                  
        LD A,7                  
        OUT(#FE),A             
        LD A,B                  
        D.I.                      
        CALL OUTPUT             
        EI                      
        XOR A                   
 OUT (#FE),A             
        POP AF                  
                                
        INC A                   
        SR 192                  
        JP С,LOOP0              
        XOR A                   
                                
LOOP0 LD V,A                  
        IN A,(#FE)              
        OR#E0INC A                   
        RET NZ                  
        LD A,В                  
        JP LOOP                 
                                
OUTPUT  LD L,A                  
        LD Н,0                  
        ADD HL,HL               
        LD DE,SCBF+(192*2)      
        EX DE,HL                
        AND A                   
        SBC HL,DE               
        LD DE,SCGL              
        DUP 192*2               
        LDI                     
        EDUP                    
                                
        LD L,A                  
        LD Н,0                  
        ADD HL,HL ; HL=A*2      
        ADD HL,HL ; HL=A*4      
        LD D,Н                  
        LD E,L ; DE=A*4         
        ADD HL,HL ; HL=A*8      
        ADD HL,HL ; HL=A*16     
        ADD HL,HL ; HL=A*32     
        ADD HL,HL ;HL=A*64     
        ADD HL,DE ; HL=A*68     
        LD DE,RULEZ             
        ADD HL,DE ; HL=START_ADD
        PUSH HL                 
        LD DE,68*192            
                                
; если поставить 68*1S0 то должн
; влезть за фрейм               
                                
        ADD HL,DE               
        LD (OUTPUT0+1),HL       
                                
        MML=0                   
        DUP 3                   
        LD A,(HL)               
        LD (ZPBUF+MML),A        
        LD A,(COMBUF+MML)       
        LD (HL),A               
        INC HL                  
        MML=MML+1               
        EDUP                    
                                
        LD (_OUTPUT+1),SP       
        RET ; == POP HL: JP (HL)
                                
_OUTPUT LD SP,0                 
        POP HL                  
                                
; POP HL бЫСТРЕЕ ЧЕМ            
; INC SP: INC SP                
                                
OUTPUT0 LD DE,0                 
        LD HL,ZPBUF             
        LDI                     
        LDI                     
        LDI                     
        RET                     
                                
COMBUF  JP _OUTPUT              
ZPBUF   DS 3                    
                                
GENSCBF LD HL,SCBF              
        LD DE,#401F             
        LD В,192                
                                
GENSCBF0                        
        INC DE                  
        LD (HL),E               
        INC HL                  
        LD (HL),D               
        INC HL                  
        DEC DE                  
        CALL DWDE               
        DJNZ GENSCBF0           
                                
        LD HL,SCBF              
        LD DE,SCBF+(192*2)      
        LD ВС,192*2             
        LDIR                    
        RET                     
                                
DWDE    INC D                   
        LD A,D                  
        AND 7                   
        RET NZLD A,E                  
        ADD A,#20               
        LD E,A                  
        RET С                   
        LD A,D                  
        SUB 8                   
        LD D,A                  
        RET                     
                                
RULEZ                           
        КАКА=0                  
        DUP 192                 
        LD SP,(SCGL+КАКА) ; 4   
        КАКА=КАКА+2  ;          
        DUP #10      ;          
        LD HL,#SSSS  ; 3        
        PUSH HL      ; 1        
        EDUP         ;          
        EDUP                    
                                
; 3+1=4                         
; 4*#10=#40                     
; #40+4=#44 (68)                
                                
        KAKA=0                  
        DUP 192                 
        LD SP,(SCGL+KAKA)       
        KAKA=KAKA+2             
        DUP #10                 
        LD HL,#FFFF             
        PUSH HL                 
        EDUP                    
        EDUP                    
                                
        DS 3                    
                                
SCGL DS 192*2                
                                
SCBF DS 192*2                
        DS 192*2                
;-------------------------------
naturally in place RULEZ_DATA_1 and
RULEZ_DATA_2 you need to put two
pictures.                       
                                
  Because   I'm writing this now in
HorrorWord'e, then I can’t
say this top will work
as it should or not.  Throughout
visibility should work,
and almost frame-wise (about how
do it REAL
frame, I will bazaar in
TargeT#11 (if there is one,
of course)).                      
                                
FOX>                            
                                
damn if this crap doesn't work
will be Sine will be flying "almost
frame" :)))                  
                                
Sinus>                          
                                
Р.S.   Used in the text
profanity ALASM'a.  
                                
FOX>                            
                                
Sine joked about
Horrorword'a :)                 
                                
SIN>                            
                                
              Sinus/zgr/svr,2oo2
                                

Share your thoughts about the article