10 ;MACHINE CODE LIBRARY 20 ;by Steve Williamson 30 ;for PAGE 6 40 ;_________________________________ 50 ;#3.1 SET UP PLAYER MISSILE SYSTEM 60 ;_________________________________ 70 ; 80 *= 36000 90 .OPT OBJ 0100 PMBASE = 36864 0110 HPOSP0 = 53248 0120 HPOSP1 = 53249 0130 HPOSP2 = 53250 0140 HPOSP3 = 53251 0150 ; 0160 ;-------------------- 0170 ;Initialise registers 0180 ;-------------------- 0190 LDA #PMBASE/256 0200 STA 54279 0210 CLC 0220 ADC #3 0230 STA 204 0240 STA 205 0250 LDA #0 0260 STA 203 0270 ;Set SDMCTL for normal playfield 0280 ;and single resolution players 0290 LDA #62 0300 STA 559 0310 LDA PRIORITY Set priority 0320 STA 623 0330 LDA #0 Clear collision 0340 STA 53278 registers 0350 ;---------------------------- 0360 ;Clear player missile stripes 0370 ;of garbage 0380 ;---------------------------- 0390 LDA #0 0400 LDX #0 0410 L1 LDY #0 0420 L1A STA (203),Y 0430 INY 0440 BNE L1A 0450 INC 204 0460 INX 0470 CPX #5 0480 BNE L1 0490 ;----------- 0500 ;Set colours 0510 ;----------- 0520 LDA COL0 0530 STA 704 0540 LDA COL1 0550 STA 705 0560 LDA COL2 0570 STA 706 0580 LDA COL3 0590 STA 707 0600 ;------------------- 0610 ;Switch on PM system 0620 ;------------------- 0630 JSR LOAD 0640 LDA #3 0650 STA 53277 0660 RTS 0670 ;--------------------- 0680 ;Load shape data & set 0690 ;horizontal positions 0700 ;--------------------- 0710 LOAD LDA HP0 Player 0 0720 STA HPOSP0 0730 LDA 205 0740 STA 204 0750 INC 204 0760 LDY VP0 0770 LDX #0 0780 L3 LDA SHAPE0,X 0790 STA (203),Y 0800 INX 0810 INY 0820 CPX LEN0 0830 BNE L3 0840 ; 0850 LDA HP1 Player1 0860 STA HPOSP1 0870 INC 204 0880 LDA #0 0890 STA 203 0900 LDY VP1 0910 LDX #0 0920 L4 LDA SHAPE1,X 0930 STA (203),Y 0940 INX 0950 INY 0960 CPX LEN1 0970 BNE L4 0980 ; 0990 LDA HP2 Player2 1000 STA HPOSP2 1010 INC 204 1020 LDA #0 1030 STA 203 1040 LDX #0 1050 LDY VP2 1060 L5 LDA SHAPE2,X 1070 STA (203),Y 1080 INX 1090 INY 1100 CPX LEN2 1110 BNE L5 1120 ; 1130 LDA HP3 Player3 1140 STA HPOSP3 1150 INC 204 1160 LDA #0 1170 STA 203 1180 LDX #0 1190 LDY VP3 1200 L6 LDA SHAPE3,X 1210 STA (203),Y 1220 INX 1230 INY 1240 CPX LEN3 1250 BNE L6 1260 RTS 1270 ;----------------------- 1280 ;Horizontal co-ordiantes 1290 ;----------------------- 1300 HP0 .BYTE 100 1310 HP1 .BYTE 100 1320 HP2 .BYTE 120 1330 HP3 .BYTE 120 1340 ;----------------------- 1350 ;Vertical co-ordinates 1360 ;--------------------- 1370 VP0 .BYTE 103 1380 VP1 .BYTE 100 1390 VP2 .BYTE 121 1400 VP3 .BYTE 120 1410 ;------------- 1420 ;Shape lengths 1430 ;------------- 1440 LEN0 .BYTE 13 1450 LEN1 .BYTE 17 1460 LEN2 .BYTE 13 1470 LEN3 .BYTE 16 1480 ;------------- 1490 ;Colour values 1500 ;------------- 1510 COL0 .BYTE 52 1520 COL1 .BYTE 14 1530 COL2 .BYTE 88 1540 COL3 .BYTE 10 1550 ;------------ 1560 ;Player ON/OFF FLAGS 1570 ;------------ 1580 FLAG0 .BYTE 1 1590 FLAG1 .BYTE 1 1600 FLAG2 .BYTE 0 1610 FLAG3 .BYTE 0 1620 ;--------------- 1630 ;Player priority 1640 ;--------------- 1650 PRIORITY .BYTE 1 1660 ;---------- 1670 ;__________ 1680 ;SHAPE DATA 1690 ;__________ 1700 *= PMBASE 1710 SHAPE0 .BYTE 0,40,108,68,0,0,0,0,0,0,56,124,0 1720 *= PMBASE+190 1730 SHAPE1 .BYTE 0,56,124,254,214,146,186 1740 .BYTE 238,238,238,254,124,124,124,56,56,0 1750 *= PMBASE+380 1760 SHAPE2 .BYTE 0,36,126,18,86,126,110,110,110,126,126,60,0 1770 *= PMBASE+570 1780 SHAPE3 .BYTE 0,255,219,129,129,129,129 1790 .BYTE 129,129,129,129,129,129,195,255,0 . ......'1;EOYcmw....)3=GQ[eo