1000 *=$1400 1010 NMIEN=$D40E SET TO $C0 FOR DLI 1020 SDMCTL=$22F SET TO $3E FOR P-M 1030 GRACTL=$D01D SET TO 3 FOR P-M 1040 SDLSTL=$230 DISP. LIST LOW 1050 PMBASE=$D407 1060 HSCROL=$D404 1070 GPRIOR=$26F 1080 COLOR0=$2C4 1090 PCOLR0=$2C0 1100 COLPF0=$D016 1110 COLPM0=$D012 1120 VCOUNT=$D40B 1130 SIZEP0=$D008 1140 SIZEM=$D00C 1150 HPOSP0=$D000 1160 HPOSM0=$D004 1170 GRAFP0=$D00D 1180 SETVBV=$E45C 1190 VVBLKI=$222 VBLANK ROUT. PTR. 1200 VDSLST=$200 DLI ROUT. PTR. 1210 RANDOM=$D20A 1220 MEMLO=$2E7 1230 APPMHI=$E 1240 DOSVEC=$A 1250 LOAD=* 1260 BASE=LOAD-$1400 1270 .BYTE 0,END-LOAD/128+1 1280 .WORD LOAD 1290 .WORD INIT 1300 LDA #END&$FF 1310 STA MEMLO 1320 STA APPMHI 1330 LDA #END/256 1340 STA MEMLO+1 1350 STA APPMHI+1 1360 LDA #START&$FF 1370 STA DOSVEC 1380 LDA #START/256 1390 STA DOSVEC+1 1400 CLC 1410 INIT RTS 1420 START LDA #$3E 1430 STA SDMCTL 1440 LDA #DLIST&$FF 1450 STA SDLSTL 1460 LDA #DLIST/256 1470 STA SDLSTL+1 1480 LDA #PMDATA/256 1490 STA PMBASE 1500 LDA #$14 1510 STA GPRIOR 1520 LDA #0 1530 STA SIZEM 1540 LDA #DLI&$FF 1550 STA VDSLST 1560 LDA #DLI/256 1570 STA VDSLST+1 1580 LDA #1 1590 STA SIZEP0 1600 STA SIZEP0+1 1610 STA SIZEP0+2 1620 STA SIZEP0+3 1630 LDA #$60 1640 STA HPOSP0 1650 LDA #$70 1660 STA HPOSP0+1 1670 LDA #$80 1680 STA HPOSP0+2 1690 LDA #$90 1700 STA HPOSP0+3 1710 LDA #$E4 1720 STA COLOR0 1730 LDA #$0A 1740 STA COLOR0+1 1750 LDA #$C2 1760 STA COLOR0+2 1770 LDA #$0C 1780 STA COLOR0+3 1790 LDA RANDOM 1800 STA PCOLR0 1810 LDA RANDOM 1820 STA PCOLR0+3 1830 LDA #$34 1840 STA $D302 1850 LDA #6 1860 LDY #VBLANK&$FF 1870 LDX #VBLANK/256 1880 JSR SETVBV 1890 LDA #$C0 1900 STA NMIEN 1910 LDX #0 1920 LOOP LDY RANDOM 1930 LUPE CLC 1940 TYA 1950 ADC COLTBL,X 1960 STA COLTBL,X 1970 INX 1980 BNE LUPE 1990 CLC 2000 TYA 2010 ADC PCOLR0 2020 STA PCOLR0 2030 CLC 2040 TYA 2050 ADC PCOLR0+3 2060 STA PCOLR0+3 2070 DEL LDY RANDOM 2080 BNE DEL 2090 LDY RANDOM 2100 BEQ LOOP 2110 BNE DEL 2120 VBLANK LDX $C3 =FSNOST 2130 DEX 2140 STX $C3 =FSNOST 2150 STX $C2 =FSNOPT 2160 LDX $C1 =SNOSTT 2170 LDY $C4 =WAIT 2180 BEQ SKIP 2190 DEX 2200 LDY #$FF 2210 SKIP INY 2220 STY $C4 =WAIT 2230 STX $C0 =SNOPTR 2240 STX $C1 =SNOSTT 2250 LDX $C5 =SCROLL 2260 DEX 2270 BPL SKIP1 2280 LDX #7 2290 INC TEXTAD 2300 SKIP1 STX HSCROL 2310 STX $C5 =SCROLL 2320 LDA #3 2330 STA GRACTL 2340 LDA $14 2350 AND #3 2360 BNE RET 2370 LDX #0 2380 MOVE INC SNOTBL,X 2390 DEC SNOTBL+1,X 2400 INC SNOTBL+$100,X 2410 DEC SNOTBL+$101,X 2420 INX 2430 INX 2440 INX 2450 INX 2460 INX 2470 INX 2480 INX 2490 INX 2500 BNE MOVE 2510 RET JMP $E45F 2520 DLI PHA 2530 TXA 2540 PHA 2550 LDX $C0 =SNOPTR 2560 LDA SNOTBL,X 2570 STA HPOSM0 2580 LDA SNOTBL+85,X 2590 STA HPOSM0+1 2600 INX 2610 STX $C0 =SNOPTR 2620 LDX $C2 =FSNOPT 2630 LDA SNOTBL+170,X 2640 STA HPOSM0+2 2650 LDA SNOTBL+255,X 2660 STA HPOSM0+3 2670 INX 2680 STX $C2 =FSNOPT 2690 LDX VCOUNT 2700 LDA COLTBL,X 2710 STA COLPM0+1 2720 LDA COLTBL+$80,X 2730 STA COLPM0+2 2740 CPX #$66 2750 BEQ FINDLI 2760 RETDLI PLA 2770 TAX 2780 PLA 2790 RTI 2800 FINDLI LDA COLOR0+1 2810 STA COLPF0+4 2820 LDA #0 2830 STA GRACTL 2840 STA GRAFP0+4 2850 LDA #$34 2860 STA COLPF0 2870 LDA #$18 2880 STA COLPF0+3 2890 LDA #$C4 2900 STA COLPF0+2 2910 LDA #0 2920 STA $4D CLEAR ATTRACT MODE 2930 BEQ RETDLI 2940 *=BASE+$1800 2950 PMDATA=* 2960 *=BASE+$1A00 2970 COLTBL=* 2980 *=BASE+$1718 2990 DLIST=* 3000 TEXTAD=DLIST+$C1 3010 *=BASE+$1600 3020 TEXT=* 3030 *=BASE+$1800 3040 SNOTBL=* 3050 *=BASE+$2010 3060 DISP1=* 3070 *=BASE+$3000 3080 DISP2=* 3090 *=BASE+$3B90 3100 END=*