00000000: 3B 20 53 50 52 49 54 45 53 0D 3B 20 46 4F 52 20 |; SPRITES.; FOR |
00000010: 55 53 45 20 57 49 54 48 20 47 52 31 20 41 4E 44 |USE WITH GR1 AND|
00000020: 20 47 52 32 0D 3B 0D 53 59 53 50 50 4E 54 53 3D | GR2.;.SYSPPNTS=|
00000030: 24 44 46 46 38 0D 53 59 53 50 43 4D 58 3D 24 44 |$DFF8.SYSPCMX=$D|
00000040: 30 31 43 0D 3B 0D 20 44 49 4D 20 53 59 53 50 4E |01C.;. DIM SYSPN|
00000050: 4F 20 2C 20 53 59 53 50 43 4C 20 2C 20 53 59 53 |O , SYSPCL , SYS|
00000060: 50 43 4D 20 2C 20 53 59 53 50 53 5A 20 2C 20 53 |PCM , SYSPSZ , S|
00000070: 59 53 50 54 4D 0D 3B 0D 20 44 45 46 20 4D 41 4B |YSPTM.;. DEF MAK|
00000080: 45 53 50 52 49 54 45 20 53 59 53 50 4E 4F 20 2C |ESPRITE SYSPNO ,|
00000090: 20 53 59 53 50 43 4C 20 2C 20 53 59 53 50 43 4D | SYSPCL , SYSPCM|
000000A0: 20 2C 20 53 59 53 50 53 5A 20 2C 20 2E 53 59 54 | , SYSPSZ , .SYT|
000000B0: 4D 50 0D 20 20 47 4F 53 55 42 20 53 59 53 50 43 |MP. GOSUB SYSPC|
000000C0: 4F 4C 4F 52 31 0D 20 20 47 4F 53 55 42 20 53 59 |OLOR1. GOSUB SY|
000000D0: 53 50 53 49 5A 45 31 0D 20 20 53 45 49 20 3A 20 |SPSIZE1. SEI : |
000000E0: 4C 44 41 20 31 20 3A 20 4C 45 54 20 2D 3E 20 53 |LDA 1 : LET -> S|
000000F0: 59 53 50 54 4D 20 41 4E 44 20 24 46 38 20 3A 20 |YSPTM AND $F8 : |
00000100: 53 54 41 20 31 0D 20 20 4C 44 59 20 53 59 53 50 |STA 1. LDY SYSP|
00000110: 4E 4F 20 3A 20 54 59 41 0D 20 20 4C 45 54 20 2B |NO : TYA. LET +|
00000120: 20 31 30 34 20 2D 3E 20 53 59 53 50 50 4E 54 53 | 104 -> SYSPPNTS|
00000130: 2C 59 0D 20 20 4C 45 54 20 53 59 53 50 4C 4F 2C |,Y. LET SYSPLO,|
00000140: 59 20 2D 3E 20 53 59 50 4E 54 0D 20 20 4C 45 54 |Y -> SYPNT. LET|
00000150: 20 53 59 53 50 48 49 2C 59 20 2D 3E 20 53 59 50 | SYSPHI,Y -> SYP|
00000160: 4E 54 2B 31 0D 20 20 4C 44 59 20 23 30 0D 53 59 |NT+1. LDY #0.SY|
00000170: 4D 4B 53 50 31 20 4C 45 54 20 28 53 59 54 4D 50 |MKSP1 LET (SYTMP|
00000180: 29 2C 59 20 2D 3E 20 28 53 59 50 4E 54 29 2C 59 |),Y -> (SYPNT),Y|
00000190: 20 3A 20 49 4E 59 20 3A 20 43 50 59 20 23 36 34 | : INY : CPY #64|
000001A0: 20 3A 20 42 4E 45 20 53 59 4D 4B 53 50 31 0D 20 | : BNE SYMKSP1. |
000001B0: 20 4C 44 59 20 53 59 53 50 4E 4F 0D 20 20 4C 44 | LDY SYSPNO. LD|
000001C0: 41 20 53 59 53 50 4E 4F 20 3A 20 41 53 4C 20 41 |A SYSPNO : ASL A|
000001D0: 20 3A 20 4F 52 41 20 53 59 53 50 43 4D 20 3A 20 | : ORA SYSPCM : |
000001E0: 54 41 58 0D 20 20 4C 45 54 20 53 59 53 50 43 4D |TAX. LET SYSPCM|
000001F0: 58 20 41 4E 44 20 53 59 53 50 4D 53 4B 2C 59 20 |X AND SYSPMSK,Y |
00000200: 4F 52 20 53 59 53 50 54 41 42 2C 58 20 2D 3E 20 |OR SYSPTAB,X -> |
00000210: 53 59 53 50 43 4D 58 0D 20 20 4C 44 41 20 53 59 |SYSPCMX. LDA SY|
00000220: 53 50 54 4D 20 3A 20 53 54 41 20 31 20 3A 20 43 |SPTM : STA 1 : C|
00000230: 4C 49 0D 20 20 47 4F 53 55 42 20 53 59 53 50 4F |LI. GOSUB SYSPO|
00000240: 4E 31 0D 20 20 52 45 54 55 52 4E 0D 53 59 53 50 |N1. RETURN.SYSP|
00000250: 4C 4F 20 2E 42 59 54 45 20 24 30 2C 24 34 30 2C |LO .BYTE $0,$40,|
00000260: 24 38 30 2C 24 43 30 2C 30 2C 24 34 30 2C 24 38 |$80,$C0,0,$40,$8|
00000270: 30 2C 24 43 30 0D 53 59 53 50 48 49 20 2E 42 59 |0,$C0.SYSPHI .BY|
00000280: 54 45 20 24 44 41 2C 24 44 41 2C 24 44 41 2C 24 |TE $DA,$DA,$DA,$|
00000290: 44 41 2C 24 44 42 2C 24 44 42 2C 24 44 42 2C 24 |DA,$DB,$DB,$DB,$|
000002A0: 44 42 0D 20 45 4E 44 44 45 46 20 4D 41 4B 45 53 |DB. ENDDEF MAKES|
000002B0: 50 52 49 54 45 0D 3B 0D 53 59 53 50 4D 53 4B 20 |PRITE.;.SYSPMSK |
000002C0: 2E 42 59 54 45 20 24 46 45 2C 24 46 44 2C 24 46 |.BYTE $FE,$FD,$F|
000002D0: 42 2C 24 46 37 2C 24 45 46 2C 24 44 46 2C 24 42 |B,$F7,$EF,$DF,$B|
000002E0: 46 2C 24 37 46 0D 53 59 53 50 54 41 42 20 2E 42 |F,$7F.SYSPTAB .B|
000002F0: 59 54 45 20 30 2C 31 2C 30 2C 32 2C 30 2C 34 2C |YTE 0,1,0,2,0,4,|
00000300: 30 2C 38 2C 30 2C 31 36 2C 30 2C 33 32 2C 30 2C |0,8,0,16,0,32,0,|
00000310: 36 34 2C 30 2C 31 32 38 0D 3B 0D 20 44 45 46 20 |64,0,128.;. DEF |
00000320: 53 50 52 49 54 45 20 53 59 53 50 4E 4F 20 2C 20 |SPRITE SYSPNO , |
00000330: 53 59 50 4E 54 25 20 2C 20 53 59 54 4D 50 0D 20 |SYPNT% , SYTMP. |
00000340: 20 4C 44 41 20 53 59 53 50 4E 4F 20 3A 20 54 41 | LDA SYSPNO : TA|
00000350: 59 20 3A 20 41 53 4C 20 41 20 3A 20 54 41 58 0D |Y : ASL A : TAX.|
00000360: 20 20 4C 44 41 20 53 59 54 4D 50 20 3A 20 53 54 | LDA SYTMP : ST|
00000370: 41 20 24 44 30 30 31 2C 58 0D 20 20 4C 44 41 20 |A $D001,X. LDA |
00000380: 53 59 50 4E 54 20 3A 20 53 54 41 20 24 44 30 30 |SYPNT : STA $D00|
00000390: 30 2C 58 0D 20 20 54 58 41 20 3A 20 4C 45 54 20 |0,X. TXA : LET |
000003A0: 2B 20 53 59 50 4E 54 2B 31 20 3A 20 54 41 58 20 |+ SYPNT+1 : TAX |
000003B0: 3A 20 4C 44 41 20 24 44 30 31 30 0D 20 20 4C 45 |: LDA $D010. LE|
000003C0: 54 20 41 4E 44 20 53 59 53 50 4D 53 4B 2C 59 20 |T AND SYSPMSK,Y |
000003D0: 4F 52 20 53 59 53 50 54 41 42 2C 58 0D 20 20 53 |OR SYSPTAB,X. S|
000003E0: 54 41 20 24 44 30 31 30 0D 20 20 52 45 54 55 52 |TA $D010. RETUR|
000003F0: 4E 0D 20 45 4E 44 44 45 46 20 53 50 52 49 54 45 |N. ENDDEF SPRITE|
00000400: 0D 3B 0D 20 44 45 46 20 53 50 52 49 54 45 43 4F |.;. DEF SPRITECO|
00000410: 4C 4F 52 20 53 59 53 50 4E 4F 20 2C 20 53 59 53 |LOR SYSPNO , SYS|
00000420: 50 43 4C 0D 53 59 53 50 43 4F 4C 4F 52 31 0D 20 |PCL.SYSPCOLOR1. |
00000430: 20 4C 44 59 20 53 59 53 50 4E 4F 0D 20 20 4C 44 | LDY SYSPNO. LD|
00000440: 41 20 53 59 53 50 43 4C 20 3A 20 53 54 41 20 24 |A SYSPCL : STA $|
00000450: 44 30 32 37 2C 59 0D 20 20 52 45 54 55 52 4E 0D |D027,Y. RETURN.|
00000460: 20 45 4E 44 44 45 46 20 53 50 52 49 54 45 43 4F | ENDDEF SPRITECO|
00000470: 4C 4F 52 0D 3B 0D 20 44 45 46 20 53 50 52 49 54 |LOR.;. DEF SPRIT|
00000480: 45 53 49 5A 45 20 53 59 53 50 4E 4F 20 2C 20 53 |ESIZE SYSPNO , S|
00000490: 59 53 50 53 5A 0D 53 59 53 50 53 49 5A 45 31 0D |YSPSZ.SYSPSIZE1.|
000004A0: 20 20 4C 44 41 20 53 59 53 50 4E 4F 20 3A 20 54 | LDA SYSPNO : T|
000004B0: 41 59 20 3A 20 41 53 4C 20 41 20 3A 20 4C 45 54 |AY : ASL A : LET|
000004C0: 20 2B 20 53 59 53 50 53 5A 20 3A 20 54 41 58 0D | + SYSPSZ : TAX.|
000004D0: 20 20 4C 44 41 20 24 44 30 31 37 0D 20 20 4C 45 | LDA $D017. LE|
000004E0: 54 20 41 4E 44 20 53 59 53 50 4D 53 4B 2C 59 20 |T AND SYSPMSK,Y |
000004F0: 4F 52 20 53 59 53 50 54 41 42 2C 58 0D 20 20 53 |OR SYSPTAB,X. S|
00000500: 54 41 20 24 44 30 31 37 0D 20 20 4C 44 41 20 24 |TA $D017. LDA $|
00000510: 44 30 31 44 0D 20 20 4C 45 54 20 41 4E 44 20 53 |D01D. LET AND S|
00000520: 59 53 50 4D 53 4B 2C 59 20 4F 52 20 53 59 53 50 |YSPMSK,Y OR SYSP|
00000530: 54 41 42 2C 58 0D 20 20 53 54 41 20 24 44 30 31 |TAB,X. STA $D01|
00000540: 44 0D 20 20 52 45 54 55 52 4E 0D 20 45 4E 44 44 |D. RETURN. ENDD|
00000550: 45 46 20 53 50 52 49 54 45 53 49 5A 45 0D 3B 0D |EF SPRITESIZE.;.|
00000560: 20 44 45 46 20 53 50 52 49 54 45 4F 4E 20 53 59 | DEF SPRITEON SY|
00000570: 53 50 4E 4F 0D 53 59 53 50 4F 4E 31 0D 20 20 4C |SPNO.SYSPON1. L|
00000580: 44 41 20 53 59 53 50 4E 4F 20 3A 20 41 53 4C 20 |DA SYSPNO : ASL |
00000590: 41 20 3A 20 4C 45 54 20 2B 20 31 20 3A 20 54 41 |A : LET + 1 : TA|
000005A0: 58 0D 20 20 4C 44 41 20 24 44 30 31 35 20 3A 20 |X. LDA $D015 : |
000005B0: 4F 52 41 20 53 59 53 50 54 41 42 2C 58 20 3A 20 |ORA SYSPTAB,X : |
000005C0: 53 54 41 20 24 44 30 31 35 0D 20 20 52 45 54 55 |STA $D015. RETU|
000005D0: 52 4E 0D 20 45 4E 44 44 45 46 20 53 50 52 49 54 |RN. ENDDEF SPRIT|
000005E0: 45 4F 4E 0D 3B 0D 20 44 45 46 20 53 50 52 49 54 |EON.;. DEF SPRIT|
000005F0: 45 4F 46 46 20 53 59 53 50 4E 4F 0D 20 20 4C 44 |EOFF SYSPNO. LD|
00000600: 59 20 53 59 53 50 4E 4F 0D 20 20 4C 44 41 20 24 |Y SYSPNO. LDA $|
00000610: 44 30 31 35 20 3A 20 41 4E 44 20 53 59 53 50 4D |D015 : AND SYSPM|
00000620: 53 4B 2C 59 20 3A 20 53 54 41 20 24 44 30 31 35 |SK,Y : STA $D015|
00000630: 0D 20 20 52 45 54 55 52 4E 0D 20 45 4E 44 44 45 |. RETURN. ENDDE|
00000640: 46 20 53 50 52 49 54 45 4F 46 46 0D 00 00 00 FF |F SPRITEOFF.....|
; SPRITES.; FOR USE WITH GR1 AND GR2.;.S
YSPPNTS=$DFF8.SYSPCMX=$D01C.;. DIM SYSPN
O , SYSPCL , SYSPCM , SYSPSZ , SYSPTM.;.
DEF MAKESPRITE SYSPNO , SYSPCL , SYSPCM
, SYSPSZ , .SYTMP. GOSUB SYSPCOLOR1.
GOSUB SYSPSIZE1. SEI : LDA 1 : LET -> S
YSPTM AND $F8 : STA 1. LDY SYSPNO : TYA
. LET + 104 -> SYSPPNTS,Y. LET SYSPLO,
Y -> SYPNT. LET SYSPHI,Y -> SYPNT+1. L
DY #0.SYMKSP1 LET (SYTMP),Y -> (SYPNT),Y
: INY : CPY #64 : BNE SYMKSP1. LDY SYS
PNO. LDA SYSPNO : ASL A : ORA SYSPCM :
TAX. LET SYSPCMX AND SYSPMSK,Y OR SYSPT
AB,X -> SYSPCMX. LDA SYSPTM : STA 1 : C
LI. GOSUB SYSPON1. RETURN.SYSPLO .BYTE
$0,$40,$80,$C0,0,$40,$80,$C0.SYSPHI .BY
TE $DA,$DA,$DA,$DA,$DB,$DB,$DB,$DB. ENDD
EF MAKESPRITE.;.SYSPMSK .BYTE $FE,$FD,$F
B,$F7,$EF,$DF,$BF,$7F.SYSPTAB .BYTE 0,1,
0,2,0,4,0,8,0,16,0,32,0,64,0,128.;. DEF
SPRITE SYSPNO , SYPNT% , SYTMP. LDA SYS
PNO : TAY : ASL A : TAX. LDA SYTMP : ST
A $D001,X. LDA SYPNT : STA $D000,X. TX
A : LET + SYPNT+1 : TAX : LDA $D010. LE
T AND SYSPMSK,Y OR SYSPTAB,X. STA $D010
. RETURN. ENDDEF SPRITE.;. DEF SPRITECO
LOR SYSPNO , SYSPCL.SYSPCOLOR1. LDY SYS
PNO. LDA SYSPCL : STA $D027,Y. RETURN.
ENDDEF SPRITECOLOR.;. DEF SPRITESIZE SY
SPNO , SYSPSZ.SYSPSIZE1. LDA SYSPNO : T
AY : ASL A : LET + SYSPSZ : TAX. LDA $D
017. LET AND SYSPMSK,Y OR SYSPTAB,X. S
TA $D017. LDA $D01D. LET AND SYSPMSK,Y
OR SYSPTAB,X. STA $D01D. RETURN. ENDD
EF SPRITESIZE.;. DEF SPRITEON SYSPNO.SYS
PON1. LDA SYSPNO : ASL A : LET + 1 : TA
X. LDA $D015 : ORA SYSPTAB,X : STA $D01
5. RETURN. ENDDEF SPRITEON.;. DEF SPRIT
EOFF SYSPNO. LDY SYSPNO. LDA $D015 : A
ND SYSPMSK,Y : STA $D015. RETURN. ENDDE
F SPRITEOFF.....
×
C64 Image
> CLICK IMAGE PREVIEW FOR FULL MODAL