Differences
This shows you the differences between two versions of the page.
Next revision | Previous revision Last revision Both sides next revision | ||
star_expander [2016/05/28 19:29] ex_writer created |
star_expander [2016/05/28 19:47] ex_writer |
||
---|---|---|---|
Line 1: | Line 1: | ||
====== Star Battle Expanded Pattern ====== | ====== Star Battle Expanded Pattern ====== | ||
- | <code z80> | + | //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. |
- | ; 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> |