10 ;MACHINE CODE LIBRARY›20 ;by Steve Williamson›30 ;for PAGE 6›40 ;_________________________________›50 ;#3.4 SET UP PLAYER MISSILE SYSTEM›60 ;BASIC VERSION›70 ;_________________________________›80 ;›90 ;Load to variable SETPM$›0100 ;Call with:›0110 ;A=USR(ADR(SETPM$),PMBASE,SDMTCL, 68 ;PRIORITY,DUMMY)›0120 ;_________________________________›0130 ;›0140 *= 36000›0150 .OPT OBJ›0160 HPOSP0 = 53248›0170 HPOSP1 = 53249›0180 HPOSP2 = 53250›0190 HPOSP3 = 53251›0200 HP0 = 1536›0210 HP1 = 1537›0220 HP2 = 1538›0230 HP3 = 1539›0240 VP0 = 1540›0250 VP1 = 1541›0260 VP2 = 1542›0270 VP3 = 1543›0280 LEN0 = 1544›0290 LEN1 = 1545›0300 LEN2 = 1546›0310 LEN3 = 1547›0320 SHAPE0 = 1548›0330 SHAPE1 = 1608›0340 SHAPE2 = 1668›0350 SHAPE3 = 1728›0360 ;--------------------›0370 ;Initialise registers›0380 ;--------------------›0390 PLA ›0400 PLA Get PMBASE›0410 STA 204›0420 STA 54279›0430 CLC ›0440 ADC #3›0450 STA 204›0460 STA 205›0470 LDA #0›0480 STA 203›0490 PLA ›0500 PLA ›0510 PLA Get SDMCTL›0520 STA 559›0530 PLA ›0540 PLA Get PRIORITY›0550 STA 623›0560 LDA #0 Clear collision›0570 STA 53278 registers›0580 ;----------------------------›0590 ;Clear player missile stripes›0600 ;of garbage›0610 ;----------------------------›0620 LDA #0›0630 LDX #0›0640 L1 LDY #0›0650 L1A STA (203),Y›0660 INY ›0670 BNE L1A›0680 INC 204›0690 INX ›0700 CPX #5›0710 BNE L1›0720 ;----------------------›0730 ;Switch on PM system›0740 ;---------------------›0750 LDA #3›0760 STA 53277›0770 ;---------------------›0780 ;Load shape data & set›0790 ;horizontal positions›0800 ;---------------------›0810 PLA ›0820 LOAD LDA HP0 Player 0›0830 STA HPOSP0›0840 LDA 205›0850 STA 204›0860 INC 204›0870 LDY VP0›0880 LDX #0›0890 L3 LDA SHAPE0,X›0900 STA (203),Y›0910 INX ›0920 INY ›0930 CPX LEN0›0940 BNE L3›0950 ;›0960 LDA HP1 Player1›0970 STA HPOSP1›0980 INC 204›0990 LDA #0›1000 STA 203›1010 LDY VP1›1020 LDX #0›1030 L4 LDA SHAPE1,X›1040 STA (203),Y›1050 INX ›1060 INY ›1070 CPX LEN1›1080 BNE L4›1090 ;›1100 LDA HP2 Player2›1110 STA HPOSP2›1120 INC 204›1130 LDA #0›1140 STA 203›1150 LDX #0›1160 LDY VP2›1170 L5 LDA SHAPE2,X›1180 STA (203),Y›1190 INX ›1200 INY ›1210 CPX LEN2›1220 BNE L5›1230 ;›1240 LDA HP3 Player3›1250 STA HPOSP3›1260 INC 204›1270 LDA #0›1280 STA 203›1290 LDX #0›1300 LDY VP3›1310 L6 LDA SHAPE3,X›1320 STA (203),Y›1330 INX ›1340 INY ›1350 CPX LEN3›1360 BNE L6›1370 RTS ›˙ '1;EOYcmw‹•ŸŠł˝ÇŃŰĺď˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙