10000 poke65299,208:poke216,0:poke217,237 10005 *A,10020 10007 scnclr 10010 sysdec("1010") 10012 if peek(198)=64 then 10012:else 10010 10014 : 10020 "*M 10030 " 10050 "REG1=$D0 10060 "REG2=$D1 10070 "REG3=$D2 10300 "DIR =$D3 10310 "PX =$D4 10320 "PY =$D5 10330 "RX =$D6 10340 "RY =$D7 10350 "SX =$D8 10360 "SY =$D9 10370 "CNT =$DA 10380 "NS =$DB 10390 "SEED=$DC 10490 " 10600 "WD =38 10610 "HE =22 10620 "NN =209 ;(WD*HE)/4 10700 "N =5 ;ROUND UP (WD/8) 10705 "TLEN=132 ;(N+1)*HE 10706 ";MULTIPLY BY N IN 'GETADD' 10710 " 10800 "COUT=$FFD2 10801 "SCR =3112 10802 "TED =$FF00 10810 " 10900 " ORG $1010 10912 " JSR BEGIN 10914 " JSR OUTARR 10916 " RTS 10918 " 10920 "DRT: BYT 0,2,0,/2,0 10921 "DRU: BYT /1,0,1 10930 " 10990 ";MULTIPLY A.Y 10995 ";GIVING A=H Y=L 11000 "MUL: STA REG1 11010 " STY REG2 11020 " LDA #0 11021 " STA REG3 11040 " LDX #8 11050 "MUL0: LSR REG1 11060 " BCC NOADD 11070 " CLC 11080 " ADC REG2 11110 "NOADD: ROR A 11115 " ROR REG3 11120 " DEX 11130 " BNE MUL0 11135 " LDY REG3 11140 " RTS 11150 " 12000 "RANDOM: LDA SEED 12010 " LDY #$65 12020 " JSR MUL 12040 " TYA 12050 " CLC 12060 " ADC #$35 12070 " EOR TED 12075 " STA SEED 12080 " RTS 12090 " 13000 "RNDIDX: JSR RANDOM 13005 " LDX #1 13010 " CMP #64 13015 " BCC RND1 13020 " INX 13025 " CMP #128 13030 " BCC RND1 13035 " INX 13040 " CMP #192 13045 " BCC RND1 13050 " INX 13055 "RND1: STX DIR 13060 " 13065 "RNDIDO: LDX DIR 13070 " LDA DRT,X 13075 " STA RX 13080 " LDA DRT-1,X 13085 " STA RY 13090 " 13120 " LDA PX 13130 " CLC 13140 " ADC RX 13150 " BMI RND99 13160 " CMP #WD 13170 " BCS RND99 13180 " LDA PY 13190 " CLC 13200 " ADC RY 13210 " BMI RND99 13220 " CMP #HE 13230 " BCS RND99 13240 " CLC 13250 " RTS 13260 "RND99: SEC 13270 " RTS 13280 " 20000 "BEGIN: LDX #]WD 20010 " STX PX 20020 " DEX 20030 " DEX 20040 " STX SX 20050 " LDX #]HE 20060 " STX PY 20070 " STX SY 20080 " LDA #0 20090 " STA NS 20095 " JSR CLRARR 20097 " 20100 "BEG1: JSR RNDIDX 20110 " BCS BEG1 20120 " LDX PX 20130 " LDY PY 20140 " JSR SETARR 20150 " INC NS 20160 " LDA NS 20170 " CMP #NN 20180 " BNE BEG3A 20190 " RTS 20192 "BEG3A: 20194 " LDA #0 20196 " STA CNT 20198 " 20200 "BEG3: LDA PX 20210 " CLC 20220 " ADC RX 20230 " TAX 20240 " LDA PY 20250 " CLC 20260 " ADC RY 20270 " TAY 20280 " JSR GETARR 20295 " BCC BEG6 20297 " 20300 "BEG2: INC DIR 20310 " LDA DIR 20320 " CMP #5 20330 " BNE BEG4 20340 " LDA #1 20350 " STA DIR 20355 " 20360 "BEG4: JSR RNDIDO 20370 " BCS BEG2 20380 " INC CNT 20390 " LDA CNT 20400 " CMP #4 20410 " BCC BEG3 20430 " LDA #0 20440 " STA CNT 20445 " 20450 "BEG5: LDA SX 20460 " CLC 20470 " ADC #2 20480 " STA SX 20490 " CMP #WD 20500 " BCC BEG5A 20510 " LDA #1 20520 " STA SX 20530 " LDA SY 20540 " CLC 20550 " ADC #2 20560 " STA SY 20570 " CMP #HE 20580 " BCC BEG5A 20590 " LDA #1 20600 " STA SY 20610 "BEG5A: LDX SX 20620 " LDY SY 20630 " JSR GETARR 20640 " BCC BEG5 20650 " 20660 " LDA SX 20670 " STA PX 20680 " LDA SY 20690 " STA PY 20700 " JMP BEG4 20710 " 21000 "BEG6: LDA RX 21002 " JSR ADJUST 21030 " ADC PX 21040 " TAX 21050 " LDA RY 21060 " JSR ADJUST 21070 " CLC 21080 " ADC PY 21090 " TAY 21100 " JSR SETARR 21110 " LDA PX 21120 " CLC 21130 " ADC RX 21140 " STA PX 21150 " LDA PY 21160 " CLC 21170 " ADC RY 21180 " STA PY 21190 " JMP BEG1 21200 " 21400 "ADJUST: CLC 21410 " ADC #2 21420 " LSR A 21430 " TAY 21440 " LDA DRU,Y 21450 " RTS 21460 " 22000 "CLRARR: LDX #TLEN 22010 " LDA #0 22020 "CLR1: STA ARRAY-1,X 22030 " DEX 22040 " BNE CLR1 22050 " RTS 22060 " 22500 "GETADD: TXA 22510 " PHA 22520 " LSR A 22530 " LSR A 22540 " LSR A 22550 " PHA 22552 " STY REG1; Y.N 22553 " TYA 22554 " ASL A 22555 " ASL A 22556 " ADC REG1 22580 " STA REG1 22600 " PLA 22620 " ADC REG1 22656 " ADC #ARRAY 22662 " ADC #0 22664 " STA REG2 22666 " PLA 22668 " AND #7 22670 " TAX 22680 " LDA #1 22700 "GET2: CPX #0 22710 " BEQ GET3 22720 " ASL A 22725 " DEX 22730 " JMP GET2 22740 "GET3: LDY #0 22745 " RTS 22750 " 22760 "GETARR: JSR GETADD 22770 " CLC 22780 " AND (REG1),Y 22790 " BEQ GET11 22800 " SEC 22810 "GET11: RTS 22820 " 22830 "SETARR: JSR GETADD 22840 " ORA (REG1),Y 22850 " STA (REG1),Y 22860 " RTS 22870 " 30000 "OUTARR: LDA #SCR 30030 " STA OUT1+2 30040 " LDY #0 30050 "OUT0: LDX #0 30060 "OUT00: TYA 30070 " PHA 30080 " TXA 30090 " PHA 30100 " JSR GETARR 30110 " PLA 30120 " TAX 30130 " PLA 30140 " TAY 30150 " LDA #160 30160 " BCC OUT1 30170 " LDA #32 30180 "OUT1: STA $FFFF,X 30190 " INX 30200 " CPX #WD+1 30210 " BNE OUT00 30220 " LDA OUT1+1 30230 " CLC 30240 " ADC #40 30250 " STA OUT1+1 30260 " BCC OUT3 30270 " INC OUT1+2 30280 "OUT3: INY 30290 " CPY #HE+1 30300 " BNE OUT0 30310 " RTS 59000 "ARRAY: 60000 "*