Differences

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

Link to this comparison view

Next revision Both sides next revision
star_expander [2016/05/28 19:29]
ex_writer created
star_expander [2016/05/28 19:46]
ex_writer
Line 1: Line 1:
 ====== Star Battle Expanded Pattern ====== ====== Star Battle Expanded Pattern ======
 +
 +//Star Battle// uses the [[Magic Register]]'​s [[magic register#​expander|Expander]] function to pack its fighter patterns in half the ROM space. The XOR function '​merges'​ the fighter with the background.
  
 <code z80> <code z80>
- +XPAND load (code portions omitted for clarity
- ​Restart Vector $08 +L2650:    LD      A,$08         ​ 
-+          OUT     ​($19),​A ​      ​write 00001000B to XPAND (foreground color = 10background = 00)
-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      +
- +
- +
-;  Limit Table for VECT (2 Bytesgoes into HL) +
-L265A: ​   DB    $0B +
-          DB    $95 +
-          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>​