Home » Personal collection » Commodore disks » disk44a_mandelbrot.d64 » mandelcode13
mandelcode13
This website contains an archive of files for the Acorn Electron, BBC Micro, Acorn Archimedes, Commodore 16 and Commodore 64 computers, which Dominic Ford has rescued from his private collection of floppy disks and cassettes.
Some of these files were originally commercial releases in the 1980s and 1990s, but they are now widely available online. I assume that copyright over them is no longer being asserted. If you own the copyright and would like files to be removed, please contact me.
Tape/disk: | Home » Personal collection » Commodore disks » disk44a_mandelbrot.d64 |
Filename: | mandelcode13 |
Read OK: | ✔ |
File size: | 34EE bytes |
Load address: | 0801 |
Exec address: | 0000 |
File contents
10 ;MANDLEPLOT 20 ;SOURCE CODE 30 ;22/10/95 40 ; 100 *=$0E00 110 XPIXEL=$4103 120 YPIXEL=$4104 130 COLOUR=$4105 140 YPIB=$4106 150 MAXCOL=$4107 160 XP=$4108 170 YP=$4109 180 XPB=$410A 190 CLICK=$410B 200 HOUR=$410C 210 XPIB=$410D 220 XPBIB=$410E 300 ; SPRITE DATA 305 ; 310 TXT 224,000,000,176,000,000,152,000 320 TXT 000,140,000,000,134,000,000,131 330 TXT 000,000,129,128,000,128,192,000 340 TXT 128,064,000,147,192,000,185,000 350 TXT 000,233,000,000,009,128,000,012 360 TXT 128,000,004,128,000,004,128,000 370 TXT 007,128,000,000,000,000,000,000 380 TXT 000,000,000,000,000,000,000,153 385 ; 390 TXT 000,000,000,064,000,000,096,000 400 TXT 000,112,000,000,120,000,000,124 410 TXT 000,000,126,000,000,127,000,000 420 TXT 127,128,000,108,000,000,070,000 430 TXT 000,006,000,000,006,000,000,003 440 TXT 000,000,003,000,000,003,000,000 450 TXT 000,000,000,000,000,000,000,000 460 TXT 000,000,000,000,000,000,000,153 465 ; 470 TXT 255,192,000,129,064,000,128,064 480 TXT 000,129,064,000,066,128,000,064 490 TXT 128,000,051,000,000,012,000,000 500 TXT 055,000,000,065,128,000,066,128 510 TXT 000,129,064,000,130,192,000,133 520 TXT 064,000,255,192,000,000,000,000 530 TXT 000,000,000,000,000,000,000,000 540 TXT 000,000,000,000,000,000,000,197 545 ; 550 TXT 255,192,000,255,192,000,255,192 560 TXT 000,255,192,000,127,128,000,127 570 TXT 128,000,063,000,000,012,000,000 580 TXT 063,000,000,127,128,000,127,128 590 TXT 000,255,192,000,255,192,000,255 600 TXT 192,000,255,192,000,000,000,000 610 TXT 000,000,000,000,000,000,000,000 620 TXT 000,000,000,000,000,000,000,197 625 ; 630 TXT 168,000,000,000,000,000,128,000 640 TXT 000,000,000,000,128,000,000,000 650 TXT 000,000,000,000,000,000,000,000 660 TXT 000,000,000,000,000,000,000,000 670 TXT 000,000,000,000,000,000,000,000 680 TXT 000,000,000,000,000,000,000,000 690 TXT 000,000,000,000,000,000,000,000 700 TXT 000,000,000,000,000,000,000,197 705 ; 710 TXT 000,000,021,000,000,000,000,000 720 TXT 001,000,000,000,000,000,001,000 730 TXT 000,000,000,000,000,000,000,000 740 TXT 000,000,000,000,000,000,000,000 750 TXT 000,000,000,000,000,000,000,000 760 TXT 000,000,000,000,000,000,000,000 770 TXT 000,000,000,000,000,000,000,000 780 TXT 000,000,000,000,000,000,000,000 785 ; 790 TXT 000,000,000,000,000,000,000,000 800 TXT 000,000,000,000,000,000,000,000 810 TXT 000,000,000,000,000,000,000,000 820 TXT 000,000,000,000,000,000,000,000 830 TXT 000,000,000,000,000,000,000,000 840 TXT 000,000,000,000,000,000,000,000 850 TXT 128,000,000,000,000,000,128,000 860 TXT 000,000,000,000,168,000,000,000 865 ; 870 TXT 000,000,000,000,000,000,000,000 880 TXT 000,000,000,000,000,000,000,000 890 TXT 000,000,000,000,000,000,000,000 900 TXT 000,000,000,000,000,000,000,000 910 TXT 000,000,000,000,000,000,000,000 920 TXT 000,000,000,000,000,000,000,000 930 TXT 000,000,001,000,000,000,000,000 940 TXT 001,000,000,000,000,000,021,000 945 ; 10000 ; MAIN CONTROL ROUTINES 10010 JSR INIT 10020 JSR HIRESON 10030 CONTROLOP LDA CLICK 10040 BNE CONTROLOP 10050 CONTLOPB LDA CLICK 10060 BEQ CONTLOPB 10070 LDA XP 10080 CMP #$58 10090 BCC CONTCONT 10100 JMP BOX 10110 CONTCONT JMP CONTROLOP 10120 ; THERE IS A LOT MORE TO COME! 12000 ; WIMP ROUTINES 12020 ; WIMP - MOUSE 12030 IRQ LDA #$00 12040 STA CLICK 12050 LDA $C5 12060 CMP #$01 12070 BNE CONCHECK 12080 STA CLICK 12090 CONCHECK CMP #$0C 12100 BEQ LEFTK 12110 LKC CMP #$17 12120 BEQ RIGHTK 12130 RKC CMP #$32 12140 BEQ UPK 12150 UPKC CMP #$37 12160 BEQ DOWNK 12170 DKC LDA $DC00 12190 AND #$01 12200 BEQ UPJ 12210 UJC LDA $DC00 12220 AND #$02 12230 BEQ DOWNJ 12240 DJC LDA $DC00 12250 AND #$04 12260 BEQ LEFTJ 12270 LJC LDA $DC00 12280 AND #$08 12290 BEQ RIGHTJ 12300 RJC LDA $DC00 12310 AND #$10 12320 EOR #$10 12330 BEQ CJCH 12340 STA CLICK 12350 CJCH JMP BOXFLASH 12360 LEFTK JSR LEFT 12370 JMP LKC 12380 RIGHTK JSR RIGHT 12390 JMP RKC 12400 UPK JSR UP 12410 JMP UPKC 12420 DOWNK JSR DOWN 12430 JMP DKC 12440 UPJ JSR UP 12450 JMP UJC 12460 DOWNJ JSR DOWN 12470 JMP DJC 12480 LEFTJ JSR LEFT 12490 JMP LJC 12500 RIGHTJ JSR RIGHT 12510 JMP RJC 12520 LEFT DEC XP 12530 LDA XP 12540 CMP #$FF 12550 BNE NOTFF 12560 LDY #$00 12570 STY XPB 12580 NOTFF LDY XPB 12590 BNE FIN 12600 CMP #$18 12610 BNE FIN 12620 INC XP 12630 FIN JMP CONTROL 12640 RIGHT INC XP 12650 LDA XP 12660 BNE NOT00 12670 LDY #$01 12680 STY XPB 12690 NOT00 LDY XPB 12700 BEQ FIN 12710 CMP #$58 12720 BNE FIN 12730 DEC XP 12740 JMP CONTROL 12750 UP DEC YP 12760 LDA YP 12770 CMP #$32 12780 BNE FIN 12790 INC YP 12800 JMP CONTROL 12810 DOWN INC YP 12820 LDA YP 12830 CMP #$F8 12840 BNE FIN 12850 DEC YP 12860 JMP CONTROL 12870 ; WIMP - POINTER 12880 CONTROL LDA HOUR 12890 BEQ NHGLASS 13210 LDX #$3A 13220 STX $07F8 13230 INX 13240 STX $07F9 13250 NHGLASS LDA XP 13260 STA $D000 13270 STA $D002 13280 LDA YP 13290 STA $D001 13300 STA $D003 13310 LDA $D010 13320 AND #$FC 13330 LSR A 13340 CLC 13350 ADC XPB 13360 ASL A 13370 CLC 13380 ADC XPB 13390 STA $D010 13400 LDA #$00 13410 STA $D027 13420 LDA #$01 13430 STA $D028 13440 LDA $D015 13450 ORA #$03 13460 STA $D015 13470 LDA HOUR 13480 BNE QTRO 13490 LDX #$38 13500 STX $07F8 13510 INX 13520 STX $07F9 13530 QTRO RTS 13540 ; STARTUP ROUTINES 13550 INIT LDA #$00 13560 STA $D020 13570 STA $D021 13580 STA XP 13590 STA HOUR 13600 STA $D015 13610 LDA #$01 13620 STA XPB 13630 LDA #$80 13640 STA YP 13650 HIRESON LDA #$3B 13660 STA $D011 13670 LDA #$D8 13680 STA $D016 13690 LDA #$00 13700 STA $FB 13710 TAY 13720 LDA #$04 13730 STA $FC 13740 LDA #$7E 13750 FLOP STA ($FB),Y 13760 INY 13770 BEQ FLOPINC 13780 CPY #$F8 13790 BNE FLOP 13800 LDX $FC 13810 CPX #$07 13820 BNE FLOP 13830 JSR LEFT 13840 SEI 13850 LDA #<IRQ 13860 STA $0314 13870 LDA #>IRQ 13880 STA $0315 13890 CLI 13900 LDA #$D8 13910 STA $FC 13920 LDA #$02 13930 LDY #$00 13940 FLOPB STA ($FB),Y 13950 INY 13960 BNE FLOPB 13970 INC $FC 13980 LDX $FC 13990 CPX #$DC 14000 BNE FLOPB 14010 LDA #$18 14020 STA $D018 14900 RTS 14910 FLOPINC INC $FC 14920 JMP FLOP 14930 HIRESOFF SEI 14940 LDA #$31 14950 STA $0314 14960 LDA #$EA 14970 STA $0315 14980 CLI 14990 LDA #$00 15000 STA $D015 15010 LDA #$9B 15020 STA $D011 15030 LDA #$C8 15040 STA $D016 15050 RTS 30000 ; MANDLEBROT SET PLOTTER 30010 MANDLE LDA #$00 30020 STA YPIXEL 30030 LDA #$03 30040 STA $4100 30050 LDA #$06 30060 STA $4102 30070 JSR EQUAL 30080 MMAINL LDA #$00 30090 STA XPIXEL 30100 LDA #$01 30110 STA $4100 30120 LDA #$05 30130 STA $4102 30140 JSR EQUAL 30150 MMAINLB LDA #$05 30160 STA $4100 30170 LDA #$07 30180 STA $4102 30190 JSR EQUAL 30200 INC $4100 30210 INC $4102 30220 JSR EQUAL 30230 LDA #$00 30240 STA COLOUR 30250 LOOP LDA #$07 30260 STA $4100 30270 STA $4101 30280 LDA #$10 30290 STA $4102 30300 JSR MULTIPLY 30310 LDA #$08 30320 STA $4100 30330 STA $4101 30340 LDA #$11 30350 STA $4102 30360 JSR MULTIPLY 30370 LDX #$10 30380 STX $4100 30390 INX 30400 STX $4101 30410 INX 30420 STX $4102 30430 JSR ADDITION 30440 LDA $4091 30450 CMP #$04 30460 BCC FAIL 30470 CMP #$50 30480 BCS FAIL 30490 SUCPASS JMP SUCCESS 30500 FAIL INC COLOUR 30505 LDA COLOUR 30510 CMP MAXCOL 30520 BEQ SUCPASS 30530 JSR SUBTRACT 30540 LDA #$12 30550 STA $4100 30560 LDA #$05 30570 STA $4101 30580 LDA #$13 30590 STA $4102 30600 JSR ADDITION 30610 LDA #$07 30620 STA $4100 30630 LDA #$08 30640 STA $4101 30650 INC $4102 30660 JSR MULTIPLY 30670 LDA #$14 30680 STA $4100 30690 LDA #$1C 30700 STA $4101 30710 LDA #$15 30720 STA $4102 30730 JSR MULTIPLY 30740 LDA #$15 30750 STA $4100 30760 LDA #$06 30770 STA $4101 30780 LDA #$16 30790 STA $4102 30800 JSR ADDITION 30810 LDA #$13 30820 STA $4100 30830 LDA #$07 30840 STA $4102 30850 JSR EQUAL 30860 LDA #$16 30870 STA $4100 30880 LDA #$08 30890 STA $4102 30900 JSR EQUAL 30910 JMP LOOP 30920 SUCCESS JSR PLOT 30930 LDA #$05 30940 STA $4100 30950 STA $4102 30960 LDA #$02 30970 STA $4101 30980 JSR ADDITION 30990 LDA XPIXEL 31000 BNE XRELOP 31010 LDA #$06 31020 STA $4100 31030 STA $4102 31040 LDA #$04 31050 STA $4101 31060 JSR ADDITION 31070 INC YPIXEL 31080 LDA YPIXEL 31090 CMP #$C8 31100 BNE YRELOP 31110 RTS 31120 XRELOP JMP MMAINLB 31130 YRELOP JMP MMAINL 40000 ; ARITHMETIC ROUTINES 40010 GETDIGIT CLD 40020 ASL A 40030 ASL A 40040 ASL A 40050 STA $02 40060 TXA 40070 LSR A 40080 STA $24 40090 LDA #$07 40100 SEC 40110 SBC $24 40120 CLC 40130 ADC $02 40140 TAY 40150 LDA $4000,Y 40160 TAY 40170 TXA 40180 AND #$01 40190 BEQ LSNGD 40200 TYA 40210 AND #$F0 40220 LSR A 40230 LSR A 40240 LSR A 40250 LSR A 40260 RTS 40270 LSNGD TYA 40280 AND #$0F 40290 RTS 40300 MULTIPLYB JSR NEGATIVE 40305 LDA $4102 40310 ASL A 40320 ASL A 40330 ASL A 40340 TAX 40350 LDA #$00 40360 TAY 40370 MLOPA STA $4000,X 40380 INY 40390 INX 40400 CPY #$08 40410 BNE MLOPA 40420 LDA #$06 40430 STA $FC 40440 NEWDIGIT LDA $4101 40450 LDX $FC 40460 JSR GETDIGIT 40470 CMP #$00 40480 BEQ DMOVER 40490 STA $FD 40500 LDA #$06 40510 STA $FB 40520 DMLOP LDA $4100 40530 LDX $FB 40540 JSR GETDIGIT 40550 CMP #$00 40560 BEQ DMOVER 40570 STA $FE 40580 LDA $FB 40590 CLC 40600 ADC $FC 40610 SEC 40620 SBC #$0C 40630 LDX $FD 40640 TAY 40650 AND #$01 40660 BEQ MSKIP 40670 TXA 40680 ASL A 40690 ASL A 40700 ASL A 40710 ASL A 40720 TAX 40730 MSKIP TYA 40740 LSR A 40750 STA $02 40760 LDA #$07 40770 SEC 40780 SBC $02 40790 STA $02 40800 LDA $4102 40810 ASL A 40820 ASL A 40830 ASL A 40840 ADC $02 40845 STA $25 40850 TAY 40860 STX $24 40870 DMLB LDX $02 40880 SED 40890 LDA $4000,Y 40900 CLC 40910 ADC $24 40920 STA $4000,Y 40930 MALP CLD 40940 BCC MAQUIT 40950 DEY 40960 DEX 40970 CPX #$FF 40980 BEQ MAQUIT 40990 SED 41000 LDA $4000,Y 41010 CLC 41020 ADC #$01 41030 STA $4000,Y 41040 JMP MALP 41050 DMOVER INC $FB 41060 LDA $FB 41070 CMP #$0E 41080 BCC DMLOP 41090 INC $FC 41100 LDA $FC 41110 CMP #$0E 41120 BCC NEWDIGIT 41130 LDA YPIB 41140 BEQ QUIT 41150 LDA $4102 41160 STA $4101 41170 LDA #$1D 41180 STA $4100 41190 JSR SUBTRACT 41200 QUIT RTS 41210 MAQUIT LDX $FE 41220 DEX 41223 BEQ DMOVER 41226 STX $FE 41230 LDY $25 41240 JMP DMLB 41250 MSUP LDA $4100 41260 ASL A 41270 ASL A 41280 ASL A 41290 TAX 41300 DEX 41310 STX $FB 41320 LDA $4101 41330 ASL A 41340 ASL A 41350 ASL A 41360 TAX 41370 DEX 41380 STX $FD 41390 LDA $4102 41400 ASL A 41410 ASL A 41420 ASL A 41430 TAX 41440 DEX 41450 STX $22 41460 LDA #$40 41470 STA $FC 41480 STA $FE 41490 STA $23 41500 RTS 41510 EQUAL JSR MSUP 41520 LDY #$08 41530 ELOP LDA ($FB),Y 41540 STA ($22),Y 41550 DEY 41560 BNE ELOP 41570 RTS 41580 ADDITION JSR MSUP 41590 LDY #$08 41600 SED 41610 CLC 41620 ADLOP LDA ($FB),Y 41630 ADC ($FD),Y 41640 STA ($22),Y 41650 DEY 41660 BNE ADLOP 41670 CLD 41680 RTS 41690 SUBTRACT JSR MSUP 41700 LDY #$08 41710 SED 41720 SEC 41730 SULOP LDA ($FB),Y 41740 SBC ($FD),Y 41750 STA ($22),Y 41760 DEY 41770 BNE SULOP 41780 CLD 41790 RTS 41800 NEGATIVE LDA #$00 41810 PHA 41820 LDA $4100 41830 TAY 41840 ASL A 41850 ASL A 41860 ASL A 41870 TAX 41880 LDA $4001,X 41890 CMP #$50 41895 BCC NEGRMOVEAB 41900 PLA 41910 ADC #$00 41920 PHA 41930 JMP NEGRMOVEA 41940 NEGRMOVEAB LDA $4101 41950 TAY 41960 ASL A 41970 ASL A 41980 ASL A 41990 TAX 42000 LDA $4001,X 42010 CMP #$50 42020 PLA 42030 BCC NOEOR 42040 EOR #$01 42050 PHA 42060 BCS NEGRMOVEB 42070 NEGRMOVEBB PLA 42080 NOEOR STA YPIB 42090 RTS 42100 NEGRMOVE LDA $4100 42110 PHA 42120 LDA $4101 42130 PHA 42140 LDA $4102 42150 PHA 42160 TYA 42170 STA $4101 42180 STA $4102 42190 LDA #$1D 42200 STA $4100 42210 JSR SUBTRACT 42220 PLA 42230 STA $4102 42240 PLA 42250 STA $4101 42260 PLA 42270 STA $4100 42280 RTS 42290 NEGRMOVEA JSR NEGRMOVE 42300 JMP NEGRMOVEAB 42310 NEGRMOVEB JSR NEGRMOVE 42320 JMP NEGRMOVEBB 42330 MULTIPLY LDA $4102 42340 PHA 42350 LDA $4101 42360 PHA 42370 LDA #$18 42380 STA $4102 42390 JSR EQUAL 42400 INC $4102 42410 PLA 42420 STA $4100 42430 JSR EQUAL 42440 LDA #$18 42450 STA $4100 42460 LDA #$19 42470 STA $4101 42480 PLA 42490 STA $4102 42500 JMP MULTIPLYB 50000 ; GRAPHIC POINT PLOTTER 50010 PLOTPC LDA #$47 50020 STA $FB 50030 LDA #$3F 50040 STA $FC 50050 LDA YPIXEL 50060 LSR A 50070 LSR A 50080 LSR A 50090 STA YPIB 50100 AND #$03 50110 ASL A 50120 ASL A 50130 ASL A 50140 ASL A 50150 ASL A 50160 ASL A 50170 STA $02 50180 LDA $FB 50190 SEC 50200 SBC $02 50210 STA $FB 50220 LDA $FC 50230 SBC #$00 50235 SBC YPIB 50240 PHA 50250 LDA YPIB 50260 LSR A 50270 LSR A 50280 STA $02 50290 PLA 50300 SEC 50310 SBC $02 50320 STA $FC 50330 LDA YPIXEL 50340 AND #$07 50350 STA YPIB 50360 LDA $FB 50370 SEC 50380 SBC YPIB 50390 PHA 50400 LDA XPIXEL 50410 AND #$F8 50420 STA YPIB 50430 PLA 50440 CLC 50450 ADC YPIB 50460 STA $FB 50470 LDA $FC 50480 SBC #$00 50490 STA $FC 50500 LDA XPIXEL 50510 AND #$07 50520 TAX 50530 LDA #$80 50540 GBITLP CPX #$00 50550 BEQ PPCONT 50560 LSR A 50570 DEX 50580 JMP GBITLP 50590 PPCONT STA $FD 50600 RTS 50610 PLOTON JSR PLOTPC 50620 LDY #$00 50630 LDA ($FB),Y 50640 ORA $FD 50650 STA ($FB),Y 50660 RTS 50670 PLOTOFF JSR PLOTPC 50680 LDA $FD 50690 EOR #$FF 50700 STA $FD 50710 LDY #$00 50720 LDA ($FB),Y 50730 AND $FD 50740 STA ($FB),Y 50750 RTS 50760 PLOT LDA COLOUR 50770 AND #$02 50780 BNE PPAON 50790 JSR PLOTOFF 50800 JMP PPACNT 50810 PPAON JSR PLOTON 50820 PPACNT INC XPIXEL 50830 LDA COLOUR 50840 AND #$01 50850 BNE PPBON 50860 JSR PLOTOFF 50870 JMP PPBCNT 50880 PPBON JSR PLOTON 50890 PPBCNT INC XPIXEL 50900 RTS 60000 ; ZOOM ROUTINES 60010 BOX LDA XP 60020 STA XPIB 60030 LDA YP 60040 STA YPIB 60050 LDA XPB 60060 STA XPBIB 60070 LDX #$3C 60080 STX $07FC 60090 INX 60100 STX $07FD 60110 INX 60120 STX $07FE 60130 INX 60140 STX $07FF 60150 LDA $D015 60160 ORA #$F0 60170 STA $D015 60180 BOXWAIT LDA CLICK 60190 BNE BOXWAIT 60280 BOXLOOP LDA XPBIB 60290 CMP XPB 60300 BEQ CHECKFINE 60310 BCS LESSTHAN 60320 JMP MORETHAN 60330 CHECKFINE LDA XPIB 60340 CMP XP 60350 BCS LESSTHAN 60360 MORETHAN LDA XPIB 60370 STA $D008 60380 STA $D00C 60390 LDX #$00 60400 LDA XPBIB 60410 BEQ NOXPBADD 60420 LDX #$50 60430 NOXPBADD LDA $D010 60440 AND #$AF 60450 STX $02 60460 CLC 60470 ADC $02 60480 STA $D010 60485 LDX #$00 60490 LDA XP 60500 SEC 60510 SBC #$18 60520 STA $D00A 60530 STA $D00E 60540 BCC MTSUB 60550 LDX XPB 60560 BEQ MTSUB 60570 LDX #$A0 60580 MTSUB LDA $D010 60590 AND #$5F 60600 STX $02 60610 CLC 60620 ADC $02 60630 STA $D010 60640 JMP BOXCONT 60650 LESSTHAN LDA XP 60660 LDX XPB 60670 BNE NOTOUT 60680 CMP #$58 60690 BCS NOTOUT 60700 LDA #$58 60710 NOTOUT STA $D008 60720 STA $D00C 60730 CPX #$00 60740 BEQ LTNOADD 60750 LDX #$50 60760 LTNOADD LDA $D010 60770 AND #$AF 60780 STX $02 60790 CLC 60800 ADC $02 60810 STA $D010 60815 LDX #$00 60820 LDA XPIB 60830 SEC 60840 SBC #$18 60850 STA $D00A 60860 STA $D00E 60870 BCC LTSUB 60880 LDX XPBIB 60890 BEQ LTSUB 60900 LDX #$A0 60910 LTSUB LDA $D010 60920 AND #$5F 60930 STX $02 60940 CLC 60950 ADC $02 60960 STA $D010 60970 BOXCONT LDA YP 60980 CMP YPIB 60990 BCC LESSY 61000 LDA YPIB 61010 STA $D009 61020 STA $D00B 61030 LDA YP 61040 SEC 61050 SBC #$15 61060 STA $D00D 61070 STA $D00F 61080 JMP BOXCONTII 61090 LESSY LDA YP 61100 STA $D009 61110 STA $D00B 61120 LDA YPIB 61130 SEC 61140 SBC #$15 61150 STA $D00D 61160 STA $D00F 61170 BOXCONTII LDA CLICK 61180 BNE BOXEND 61190 JMP BOXLOOP 61200 BOXEND JMP CONTROLOP 62000 BOXFLASH LDA $A2 62010 AND #$3C 62020 LSR A 62030 LSR A 62040 TAX 62050 LDA BOXCOLS,X 62060 STA $D02B 62070 STA $D02C 62080 STA $D02D 62090 STA $D02E 62100 JMP $EA31 62110 BOXCOLS TXT 0,9,2,8,10,7,13,1 62120 TXT 1,13,3,5,14,4,6,0
;MANDLEPLOT " ;SOURCE CODE 0 ;22/10/95 6( ; Bd ��$0E00 Sn XPIXEL�$4103 dx YPIXEL�$4104 u� COLOUR�$4105 �� YPIB�$4106 �� MAXCOL�$4107 �� XP�$4108 �� YP�$4109 �� XPB�$410A �� CLICK�$410B �� HOUR�$410C �� XPIB�$410D �� XPBIB�$410E " ,; SPRITE DATA ( 1; P 6TXT 224,000,000,176,000,000,152,000 x @TXT 000,140,000,000,134,000,000,131 � JTXT 000,000,129,128,000,128,192,000 � TTXT 128,064,000,147,192,000,185,000 � ^TXT 000,233,000,000,009,128,000,012 hTXT 128,000,004,128,000,004,128,000 @ rTXT 007,128,000,000,000,000,000,000 h |TXT 000,000,000,000,000,000,000,153 n �; � �TXT 000,000,000,064,000,000,096,000 � �TXT 000,112,000,000,120,000,000,124 � �TXT 000,000,126,000,000,127,000,000 �TXT 127,128,000,108,000,000,070,000 6�TXT 000,006,000,000,006,000,000,003 ^�TXT 000,000,003,000,000,003,000,000 ��TXT 000,000,000,000,000,000,000,000 ��TXT 000,000,000,000,000,000,000,153 ��; ��TXT 255,192,000,129,064,000,128,064 �TXT 000,129,064,000,066,128,000,064 ,�TXT 128,000,051,000,000,012,000,000 T�TXT 055,000,000,065,128,000,066,128 |�TXT 000,129,064,000,130,192,000,133 �TXT 064,000,255,192,000,000,000,000 �TXT 000,000,000,000,000,000,000,000 �TXT 000,000,000,000,000,000,000,197 �!; " &TXT 255,192,000,255,192,000,255,192 J 0TXT 000,255,192,000,127,128,000,127 r :TXT 128,000,063,000,000,012,000,000 � DTXT 063,000,000,127,128,000,127,128 � NTXT 000,255,192,000,255,192,000,255 � XTXT 192,000,255,192,000,000,000,000 bTXT 000,000,000,000,000,000,000,000 :lTXT 000,000,000,000,000,000,000,197 @q; hvTXT 168,000,000,000,000,000,128,000 ��TXT 000,000,000,000,128,000,000,000 ��TXT 000,000,000,000,000,000,000,000 ��TXT 000,000,000,000,000,000,000,000 �TXT 000,000,000,000,000,000,000,000 0�TXT 000,000,000,000,000,000,000,000 X�TXT 000,000,000,000,000,000,000,000 ��TXT 000,000,000,000,000,000,000,197 ��; ��TXT 000,000,021,000,000,000,000,000 ��TXT 001,000,000,000,000,000,001,000 ��TXT 000,000,000,000,000,000,000,000 &�TXT 000,000,000,000,000,000,000,000 N�TXT 000,000,000,000,000,000,000,000 v�TXT 000,000,000,000,000,000,000,000 �TXT 000,000,000,000,000,000,000,000 �TXT 000,000,000,000,000,000,000,000 �; �TXT 000,000,000,000,000,000,000,000 TXT 000,000,000,000,000,000,000,000 D*TXT 000,000,000,000,000,000,000,000 l4TXT 000,000,000,000,000,000,000,000 �>TXT 000,000,000,000,000,000,000,000 �HTXT 000,000,000,000,000,000,000,000 �RTXT 128,000,000,000,000,000,128,000 \TXT 000,000,000,000,168,000,000,000 a; :fTXT 000,000,000,000,000,000,000,000 bpTXT 000,000,000,000,000,000,000,000 �zTXT 000,000,000,000,000,000,000,000 ��TXT 000,000,000,000,000,000,000,000 ��TXT 000,000,000,000,000,000,000,000 �TXT 000,000,000,000,000,000,000,000 *�TXT 000,000,001,000,000,000,000,000 R�TXT 001,000,000,000,000,000,021,000 X�; {'; MAIN �ROL ROUTINES �'JSR INIT �$'JSR HIRES� �.'�ROLOP LDA CLICK �8'BNE �ROLOP �B'�LOPB LDA CLICK �L'BEQ �LOPB �V'LDA XP �`'CMP #$58 j'BCC �� t'JMP BOX ~'�� JMP �ROLOP ?�'; THERE IS A LOT M�E � COME! e�.; WIMP ROUTINES x�.; WIMP - MOUSE ��.IRQ LDA #$00 �/STA CLICK �/LDA $C5 �/CMP #$01 �&/BNE C�CHECK �0/STA CLICK �:/C�CHECK CMP #$0C �D/BEQ LEFTK N/LKC CMP #$17 X/BEQ RIGHTK "b/RKC CMP #$32 .l/BEQ UPK @v/UPKC CMP #$37 N�/BEQ DOWNK `�/DKC LDA $DC00 k�/� #$01 w�/BEQ UPJ ��/UJC LDA $DC00 ��/� #$02 ��/BEQ DOWNJ ��/DJC LDA $DC00 ��/� #$04 ��/BEQ LEFTJ ��/LJC LDA $DC00 ��/� #$08 �0BEQ RIGHTJ 0RJC LDA $DC00 0� #$10 " 0E� #$10 /*0BEQ CJCH =40STA CLICK S>0CJCH JMP BOXFLASH fH0LEFTK JSR LEFT rR0JMP LKC �\0RIGHTK JSR RIGHT �f0JMP RKC �p0UPK JSR UP �z0JMP UPKC ��0DOWNK JSR DOWN ��0JMP DKC ��0UPJ JSR UP ��0JMP UJC ��0DOWNJ JSR DOWN �0JMP DJC �0LEFTJ JSR LEFT '�0JMP LJC <�0RIGHTJ JSR RIGHT H�0JMP RJC X�0LEFT DEC XP c�0LDA XP p�0CMP #$FF |1BNE �FF �1LDY #$00 �1STY XPB �$1�FF LDY XPB �.1BNE FIN �81CMP #$18 �B1BNE FIN �L1INC XP �V1FIN JMP �ROL �`1RIGHT INC XP j1LDA XP t1BNE �00 ~1LDY #$01 '�1STY XPB 7�1�00 LDY XPB C�1BEQ FIN P�1CMP #$58 \�1BNE FIN g�1DEC XP t�1JMP �ROL ��1UP DEC YP ��1LDA YP ��1CMP #$32 ��1BNE FIN ��1INC YP � 2JMP �ROL � 2DOWN INC YP �2LDA YP �2CMP #$F8 �(2BNE FIN �22DEC YP <2JMP �ROL F2; WIMP � PO�ER /P2�ROL LDA HOUR ?Z2BEQ NHGLASS L�3LDX #$3A Z�3STX $07F8 b�3INX p�3STX $07F9 ��3NHGLASS LDA XP ��3STA $D000 ��3STA $D002 ��3LDA YP ��3STA $D001 ��3STA $D003 ��3LDA $D010 �4� #$FC �4LSR A �4CLC �&4ADC XPB 04ASL A :4CLC D4ADC XPB )N4STA $D010 6X4LDA #$00 Db4STA $D027 Ql4LDA #$01 _v4STA $D028 m�4LDA $D015 y�4�A #$03 ��4STA $D015 ��4LDA HOUR ��4BNE QTRO ��4LDX #$38 ��4STX $07F8 ��4INX ��4STX $07F9 ��4QTRO RTS ��4; STARTUP ROUTINES �4INIT LDA #$00 �4STA $D020 $5STA $D021 /5STA XP <5STA HOUR J 5STA $D015 W*5LDA #$01 c45STA XPB p>5LDA #$80 {H5STA YP �R5HIRES� LDA #$3B �\5STA $D011 �f5LDA #$D8 �p5STA $D016 �z5LDA #$00 ��5STA $FB ��5TAY ��5LDA #$04 ��5STA $FC ��5LDA #$7E �5FLOP STA ($FB),Y �5INY ,�5BEQ FLOPINC 9�5CPY #$F8 F�5BNE FLOP R�5LDX $FC _�5CPX #$07 l�5BNE FLOP y6JSR LEFT �6SEI �6LDA #�IRQ �$6STA $0314 �.6LDA #�IRQ �86STA $0315 �B6CLI �L6LDA #$D8 �V6STA $FC �`6LDA #$02 �j6LDY #$00 t6FLOPB STA ($FB),Y ~6INY �6BNE FLOPB ,�6INC $FC 8�6LDX $FC E�6CPX #$DC S�6BNE FLOPB `�6LDA #$18 n�6STA $D018 v4:RTS �>:FLOPINC INC $FC �H:JMP FLOP �R:HIRESOFF SEI �\:LDA #$31 �f:STA $0314 �p:LDA #$EA �z:STA $0315 ��:CLI ��:LDA #$00 �:STA $D015 �:LDA #$9B �:STA $D011 )�:LDA #$C8 7�:STA $D016 ?�:RTS c0u; M�LEBROT SET PLOTTER u:uM�LE LDA #$00 �DuSTA YPIXEL �NuLDA #$03 �XuSTA $4100 �buLDA #$06 �luSTA $4102 �vuJSR EQUAL ��uMMAINL LDA #$00 ��uSTA XPIXEL ��uLDA #$01 �uSTA $4100 �uLDA #$05 !�uSTA $4102 /�uJSR EQUAL D�uMMAINLB LDA #$05 R�uSTA $4100 _�uLDA #$07 m�uSTA $4102 {�uJSR EQUAL ��uINC $4100 �vINC $4102 �vJSR EQUAL �vLDA #$00 � vSTA COLOUR �*vLOOP LDA #$07 �4vSTA $4100 �>vSTA $4101 �HvLDA #$10 RvSTA $4102 \vJSR MULTIPLY ( fvLDA #$08 6 pvSTA $4100 D zvSTA $4101 Q �vLDA #$11 _ �vSTA $4102 p �vJSR MULTIPLY } �vLDX #$10 � �vSTX $4100 � �vINX � �vSTX $4101 � �vINX � �vSTX $4102 � �vJSR ADDITI� � �vLDA $4091 � �vCMP #$04 � �vBCC FAIL � wCMP #$50 !wBCS FAIL !!wSUCPASS JMP SUCCESS 5!$wFAIL INC COLOUR D!)wLDA COLOUR S!.wCMP MAXCOL c!8wBEQ SUCPASS t!BwJSR SUBTRACT �!LwLDA #$12 �!VwSTA $4100 �!`wLDA #$05 �!jwSTA $4101 �!twLDA #$13 �!~wSTA $4102 �!�wJSR ADDITI� �!�wLDA #$07 �!�wSTA $4100 �!�wLDA #$08 "�wSTA $4101 "�wINC $4102 *"�wJSR MULTIPLY 7"�wLDA #$14 E"�wSTA $4100 R"�wLDA #$1C `"�wSTA $4101 m"�wLDA #$15 {"