10 ;MACHINE CODE LIBRARY20 ;by Steve Williamson30 ;for PAGE 640 ;_________________________________50 ;#3.1 SET UP PLAYER MISSILE SYSTEM60 ;_________________________________70 ;80 *= 3600090 .OPT OBJ0100 PMBASE = 368640110 HPOSP0 = 532480120 HPOSP1 = 532490130 HPOSP2 = 532500140 HPOSP3 = 532510150 ;0160 ;--------------------0170 ;Initialise registers0180 ;--------------------0190 LDA #PMBASE/2560200 STA 542790210 CLC 0220 ADC #30230 STA 2040240 STA 2050250 LDA #00260 STA 2030270 ;Set SDMCTL for normal playfield0280 ;and single resolution players0290 LDA #620300 STA 5590310 LDA PRIORITY Set priority0320 STA 6230330 LDA #0 Clear collision0340 STA 53278 registers0350 ;----------------------------0360 ;Clear player missile stripes0370 ;of garbage0380 ;----------------------------0390 LDA #00400 LDX #00410 L1 LDY #00420 L1A STA (203),Y0430 INY 0440 BNE L1A0450 INC 2040460 INX 0470 CPX #50480 BNE L10490 ;-----------0500 ;Set colours0510 ;-----------0520 LDA COL00530 STA 7040540 LDA COL10550 STA 7050560 LDA COL20570 STA 7060580 LDA COL30590 STA 7070600 ;-------------------0610 ;Switch on PM system0620 ;-------------------0630 JSR LOAD0640 LDA #30650 STA 532770660 RTS 0670 ;---------------------0680 ;Load shape data & set0690 ;horizontal positions0700 ;---------------------0710 LOAD LDA HP0 Player 00720 STA HPOSP00730 LDA 2050740 STA 2040750 INC 2040760 LDY VP00770 LDX #00780 L3 LDA SHAPE0,X0790 STA (203),Y0800 INX 0810 INY 0820 CPX LEN00830 BNE L30840 ;0850 LDA HP1 Player10860 STA HPOSP10870 INC 2040880 LDA #00890 STA 2030900 LDY VP10910 LDX #00920 L4 LDA SHAPE1,X0930 STA (203),Y0940 INX 0950 INY 0960 CPX LEN10970 BNE L40980 ;0990 LDA HP2 Player21000 STA HPOSP21010 INC 2041020 LDA #01030 STA 2031040 LDX #01050 LDY VP21060 L5 LDA SHAPE2,X1070 STA (203),Y1080 INX 1090 INY 1100 CPX LEN21110 BNE L51120 ;1130 LDA HP3 Player31140 STA HPOSP31150 INC 2041160 LDA #01170 STA 2031180 LDX #01190 LDY VP31200 L6 LDA SHAPE3,X1210 STA (203),Y1220 INX 1230 INY 1240 CPX LEN31250 BNE L61260 RTS 1270 ;-----------------------1280 ;Horizontal co-ordiantes1290 ;-----------------------1300 HP0 .BYTE 1001310 HP1 .BYTE 1001320 HP2 .BYTE 1201330 HP3 .BYTE 1201340 ;-----------------------1350 ;Vertical co-ordinates1360 ;---------------------1370 VP0 .BYTE 1031380 VP1 .BYTE 1001390 VP2 .BYTE 1211400 VP3 .BYTE 1201410 ;-------------1420 ;Shape lengths1430 ;-------------1440 LEN0 .BYTE 131450 LEN1 .BYTE 171460 LEN2 .BYTE 131470 LEN3 .BYTE 161480 ;-------------1490 ;Colour values1500 ;-------------1510 COL0 .BYTE 521520 COL1 .BYTE 141530 COL2 .BYTE 881540 COL3 .BYTE 101550 ;------------1560 ;Player ON/OFF FLAGS1570 ;------------1580 FLAG0 .BYTE 11590 FLAG1 .BYTE 11600 FLAG2 .BYTE 01610 FLAG3 .BYTE 01620 ;---------------1630 ;Player priority1640 ;---------------1650 PRIORITY .BYTE 11660 ;----------1670 ;__________1680 ;SHAPE DATA1690 ;__________1700 *= PMBASE1710 SHAPE0 .BYTE 0,40,108,68,0,0,0,0,0,0,56,124,01720 *= PMBASE+1901730 SHAPE1 .BYTE 0,56,124,254,214,146,1861740 .BYTE 238,238,238,254,124,124,124,56,56,01750 *= PMBASE+3801760 SHAPE2 .BYTE 0,36,126,18,86,126,110,110,110,126,126,60,01770 *= PMBASE+5701780 SHAPE3 .BYTE 0,255,219,129,129,129,1291790 .BYTE 129,129,129,129,129,129,195,255,0 '1;EOYcmw