Home » Personal collection » Commodore disks » disk44a_mandelbrot.d64 » mandelcode11
mandelcode11
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: | mandelcode11 | 
| Read OK: | ✔ | 
| File size: | 34C3 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 DMLB 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
 40850 TAY
 40860 STX $24
 40870 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
 41230 TXA
 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 {"