Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
star_expander [2016/05/28 19:29]
ex_writer created
star_expander [2016/06/05 16:10] (current)
ex_writer
Line 1: Line 1:
 ====== Star Battle Expanded Pattern ====== ====== Star Battle Expanded Pattern ======
  
-<code z80>+//Star Battle// uses the [[hardware:​magic system#​Magic Register]]'​s [[hardware:​magic system#​expander|Expander]] function to pack its fighter patterns in half the ROM space. The XOR function '​merges'​ the fighter with the background.
  
-;  Restart Vector $08 +<code z80>
-+
-RST08: ​   LD      A,($4FB7) +
-          OR      A +
-          LD      HL,​L26A4-2 ​     ; X-Fighter Table +
-          JR      Z,L264D +
-          LD      HL,​L269A-2 ​     ; H-Fighter Table +
-          CP      $01 +
-          JR      Z,L264D +
-          LD      HL,$27C2 +
-L264D: ​   LD      A,​(IX+$0E) +
-          SYSTEM ​ INDEXW ​       ;  UPI INDEX Word by A +
-          ; +
-          EX      DE,HL +
-          LD      A,$08 +
-          OUT     ​($19),​A +
-          SYSTEM ​ VWRITR ​       ;  UPI Vector WRITe Relative +
-          ; +
-          RET     +
  
- +XPAND load (code portions omitted ​for clarity
- Limit Table for VECT (2 Bytes, goes into HL+; [...] 
-L265A:    ​DB    ​$0B +L2650:    ​LD      A,$08          
-          ​DB    ​$95 +          ​OUT     ($19),A       ; write 00001000B to XPAND (foreground color = 10, background = 00)
-          DB    $03 +
-          DB    $54+
           ​           ​
 ; [...] ; [...]
  
-SYSSUK ​ WRITP         ​;  UPI WRITe with Pattern size lookup+SYSSUK ​ WRITP                   ​;  UPI WRITe with Pattern size lookup
           DB      $7C           ; ​ ... X = 124           DB      $7C           ; ​ ... X = 124
           DB      $00           ; ​ ... Y = 0           DB      $00           ; ​ ... Y = 0
-          DB      $28           ; ​ ... Magic = 40 +          DB      $28           ; ​ ... Magic Register ​0010 1000B (XOR, Expand) 
-          DW      $26EC         ; ​ ... Pattern Address ​= 9964+          DW      $26EC         ; ​ ... Pattern Address
           ​           ​
 ; [...] ; [...]
  
 ; Small H-Fighter Graphic ; Small H-Fighter Graphic
-L26EA:    ​DB    -3,-2     ; X,Y Displacement +L26EC:    DB    10000100B ​           ;   X . . . . X . .
-          DB    1,5       ; X,Y Size +
-+
-          ​DB    10000100B ​           ;   X . . . . X . .+
           DB    10110100B ​           ;   X . X X . X . .           DB    10110100B ​           ;   X . X X . X . .
           DB    11111100B ​           ;   X X X X X X . .           DB    11111100B ​           ;   X X X X X X . .
           DB    10110100B ​           ;   X . X X . X . .           DB    10110100B ​           ;   X . X X . X . .
           DB    10000100B ​           ;   X . . . . X . .           DB    10000100B ​           ;   X . . . . X . .
 +           
 +; [...]
 </​code>​ </​code>​