Home » Archimedes archive » Micro User » MU 1990-06.adf » L-2-IV

L-2-IV

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 » Archimedes archive » Micro User » MU 1990-06.adf
Filename: L-2-IV
Read OK:
File size: 2B30 bytes
Load address: FFFFFB43
Exec address: 6D39838A
Duplicates

There is 1 duplicate copy of this file in the archive:

File contents
   10 REM   Listing IV
   20 REM   By Glenn Marshall
   30 REM   (C) The Micro User
   40 :
   50 IF PAGE<>&2100 THEN END
   60 :
   70 xlb=&50:xhb=&51
   80 ylb=&52:yhb=&53
   90 X1=&54:X2=&55
  100 Y1=&56:Y2=&57
  110 color=&58
  120 stl=&59:sth=&5A
  130 pass=&5B
  140 coll=&5C:colh=&5D
  150 memory=&5E
  160 pwl=&5F:pwh=&60
  170 windows=&61
  180 icons2=&62
  190 icon=&63
  200 icons=&64
  210 iconY=&65
  220 iconX=&66
  230 box1=&67
  240 box2=&68
  250 box3=&69
  260 box4=&6A
  270 dbox1=&6B
  280 dbox2=&6C
  290 dbox3=&6D
  300 gpl=&6E
  310 gph=&6F
  320 mesl=&70
  330 mesh=&71
  340 :
  350 FOR code=0 TO 2 STEP 2
  360 P%=&1900
  370 [OPT code 
  380 :
  390 \\\\\\\\\\\\\\\\\\\\\\
  400 \\\\\\\ POINTER \\\\\\
  410 \\\\\\\\\\\\\\\\\\\\\\
  420 .pointer
  430 JSR set_pointer_size
  440 JSR set_pointer_interrupts
  450 LDA #19:JSR &FFF4
  460 .sync_loop
  470 LDA #0:STA icon 
  480 LDA icon:BEQ sync_loop
  490 JSR pointer_check
  500 JSR pointer_off
  510 JSR reset_pointer_interrupts 
  520 rts
  530 :
  540 \\\\\\\\\\\\\\\\\\\\\\
  550 \\ POINTER ROUTINES \\
  560 \\\\\\\\\\\\\\\\\\\\\\
  570 .set_pointer_size
  580 LDA #2:STA X2:LDA #13:STA Y2
  590 JSR pointer_on
  600 rts 
  610 :
  620 .pointer_on
  630 LDA #pointer_data MOD 256
  640 STA coll
  650 LDA #pointer_data DIV 256
  660 STA colh
  670 LDA #0:STA pass:JSR sprite_save
  680 rts
  690 :
  700 .pointer_off
  710 JSR sprite_restore 
  720 rts 
  730 :
  740 .set_pointer_interrupts 
  750 SEI
  760 LDA &204:STA &230
  770 LDA &205:STA &231 
  780 LDA #pointer_interrupt MOD 256
  790 STA &204
  800 LDA #pointer_interrupt DIV 256
  810 STA &205
  820 LDA #&50:STA &FE4E 
  830 CLI
  840 rts 
  850 :
  860 .reset_pointer_interrupts 
  870 LDA &230:STA &204
  880 LDA &231:STA &205
  890 LDA #242:STA &FE4E
  900 LDA #96:STA &FE4B
  910 rts 
  920 :
  930 .pointer_interrupt 
  940 LDA &FC:PHA:TYA:PHA:TXA:PHA 
  950 LDA #2:BIT &FE4D:BEQ not_sync 
  960 LDA &FE4B:AND #&DF:STA &FE4B 
  970 LDA &FE4E:ORA #&20:STA &FE4E 
  980 LDA #80:STA &FE48 
  990 LDA #70:STA &FE49
 1000 .pointer_interrupt_exit 
 1010 PLA:TAX:PLA:TAY:PLA:STA &FC
 1020 JMP (&230)
 1030 .not_sync 
 1040 LDA #&20:BIT &FE4D
 1050 BEQ pointer_interrupt_exit
 1060 STA &FE4D:PHP:CLI
 1070 JSR pointer_off
 1080 JSR pointer_direction
 1090 JSR pointer_on
 1100 PLP:JMP pointer_interrupt_exit 
 1110 :
 1120 .pointer_check
 1130 LDA X1:PHA:LDA X2:PHA
 1140 LDA Y1:PHA:LDA Y2:PHA
 1150 TXA:PHA:TYA:PHA 
 1160 LDA X1:STA iconX:LDA Y1:STA iconY
 1170 LDX #0
 1180 .pointer_check_loop 
 1190 JSR get_icon_shape
 1200 LDA iconX:CMP X1:BCC not_icon 
 1210 LDA X1:CLC:ADC X2:STA X1
 1220 LDA iconX:CMP X1:BCS not_icon
 1230 LDA iconY:CMP Y1:BCC not_icon 
 1240 LDA Y1:CLC:ADC Y2:STA Y1
 1250 LDA iconY:CMP Y1:BCS not_icon
 1260 INX:STX icon:JMP pointer_out 
 1270 .not_icon 
 1280 LDA gpl:CLC:ADC #4:STA gpl
 1290 LDA gph:ADC #0:STA gph
 1300 INX:CPX icons
 1310 BNE pointer_check_loop
 1320 .pointer_out 
 1330 PLA:TAY:PLA:TAX 
 1340 PLA:STA Y2:PLA:STA Y1
 1350 PLA:STA X2:PLA:STA X1
 1360 rts 
 1370 :
 1380 .pointer_direction
 1390 LDX #(-58 AND &FF):LDY #&FF
 1400 LDA #&81:JSR &FFF4:TXA
 1410 BCC down:LDA Y1:CMP #4:BCC down
 1420 SEC:SBC #3:STA Y1
 1430 .down 
 1440 LDX #(-42 AND &FF):LDY #&FF
 1450 LDA #&81:JSR &FFF4:TXA
 1460 BCC right:LDA Y1:CMP #184
 1470 BCS right:CLC:ADC #3:STA Y1
 1480 .right 
 1490 LDX #(-122 AND &FF):LDY #&FF
 1500 LDA #&81:JSR &FFF4:TXA
 1510 BCC left:LDA X1:CMP #78:BCS left
 1520 CLC:ADC #1:STA X1
 1530 .left 
 1540 LDX #(-26 AND &FF):LDY #&FF
 1550 LDA #&81:JSR &FFF4:TXA
 1560 BCC return:LDA X1:CMP #1
 1570 BCC return:SEC:SBC #1:STA X1
 1580 .return 
 1590 LDX #(-106 AND &FF):LDY #&FF
 1600 LDA #&81:JSR &FFF4:TXA
 1610 BCC direction_exit 
 1620 LDA #&FF:STA icon 
 1630 .direction_exit 
 1640 rts 
 1650 :
 1660 \\\\\\\\\\\\\\\\\\\\\\
 1670 \\ GRAPHIC ROUTINES \\
 1680 \\\\\\\\\\\\\\\\\\\\\\
 1690 .display_icons 
 1700 LDX icons 
 1710 .display_icons_loop 
 1720 JSR get_icon_shape 
 1730 JSR sprite_save
 1740 .display_icons_past
 1750 LDA gpl:CLC:ADC #4:STA gpl
 1760 LDA gph:ADC #0:STA gph
 1770 DEX:BNE display_icons_loop 
 1780 rts 
 1790 :
 1800 .get_icon_shape 
 1810 TYA:PHA 
 1820 LDY #0 
 1830 LDA (gpl),Y:STA X1:INY 
 1840 LDA (gpl),Y:STA Y1:INY  
 1850 LDA (gpl),Y:STA X2:INY 
 1860 LDA (gpl),Y:STA Y2 
 1870 PLA:TAY 
 1880 rts 
 1890 :
 1900 .box 
 1910 LDA X1:PHA:LDA Y1:PHA
 1920 LDA X2:PHA:LDA Y2:PHA
 1930 LDA box1:STA color
 1940 JSR sprite_save
 1950 INC Y1:DEC Y2:DEC Y2
 1960 INC X1:DEC X2:DEC X2
 1970 LDA box2:STA color
 1980 JSR sprite_save
 1990 LDA X1:CLC:ADC X2:PHA:DEC X1
 2000 LDA #1:STA X2
 2010 LDA box3:STA color
 2020 JSR sprite_save
 2030 PLA:STA X1:LDA #1:STA X2 
 2040 LDA box4:STA color
 2050 JSR sprite_save
 2060 PLA:STA Y2:PLA:STA X2
 2070 PLA:STA Y1:PLA:STA X1
 2080 rts 
 2090 :
 2100 .restore_box
 2110 JSR sprite_restore
 2120 JSR sprite_restore
 2130 JSR sprite_restore
 2140 JSR sprite_restore
 2150 rts
 2160 :
 2170 .dropped_box 
 2180 LDA X1:PHA:LDA Y1:PHA
 2190 LDA X2:PHA:LDA Y2:PHA
 2200 LDA dbox1:STA color
 2210 JSR sprite_save
 2220 LDA X2:PHA 
 2230 LDA X1:PHA:CLC:ADC X2:STA X1
 2240 LDA #1:STA X2
 2250 LDA Y1:CLC:ADC #4:STA Y1 
 2260 LDA dbox2:STA color
 2270 JSR sprite_save
 2280 PLA:STA X1:INC X1:PLA:STA X2
 2290 LDA Y1:CLC:ADC Y2:SEC:SBC #4
 2300 STA Y1
 2310 LDA #5:STA Y2
 2320 LDA dbox3:STA color
 2330 JSR sprite_save
 2340 PLA:STA Y2:PLA:STA X2
 2350 PLA:STA Y1:PLA:STA X1
 2360 rts 
 2370 :
 2380 .restore_dropped_box
 2390 JSR sprite_restore
 2400 JSR sprite_restore
 2410 JSR sprite_restore
 2420 rts
 2430 :
 2440 .inverse_text 
 2450 LDA #&11:JSR &FFEE
 2460 LDA #0:JSR &FFEE
 2470 LDA #&11:JSR &FFEE
 2480 LDA #129:JSR &FFEE
 2490 rts 
 2500 :
 2510 .normal_text 
 2520 LDA #&11:JSR &FFEE
 2530 LDA #1:JSR &FFEE
 2540 LDA #&11:JSR &FFEE
 2550 LDA #128:JSR &FFEE
 2560 rts 
 2570 :
 2580 .sprite_save 
 2590 LDA pass:CMP #2:BCC saving
 2600 JSR sprite
 2610 rts
 2620 .saving
 2630 TYA:PHA 
 2640 INC windows
 2650 LDA pass:PHA
 2660 LDA #1:STA memory 
 2670 LDA stl:STA pwl
 2680 LDA sth:STA pwh
 2690 JSR sprite 
 2700 LDA memory:BEQ not_enough_memory 
 2710 LDY #0 
 2720 LDA X1:STA (stl),Y:INY 
 2730 LDA Y1:STA (stl),Y:INY 
 2740 LDA X2:STA (stl),Y:INY 
 2750 LDA Y2:STA (stl),Y:INY 
 2760 LDA pwl:STA (stl),Y:INY
 2770 LDA pwh:STA (stl),Y
 2780 LDA stl:CLC:ADC #6:STA stl
 2790 LDA sth:ADC #0:STA sth
 2800 PLA:STA pass
 2810 PLA:TAY 
 2820 rts 
 2830 :
 2840 .not_enough_memory 
 2850 LDA pwl:PHA:STA stl
 2860 LDA pwh:PHA:STA sth
 2870 DEC windows
 2880 LDA #128:STA pass:JSR sprite 
 2890 LDA #7:JSR &FFEE 
 2900 PLA:STA sth:PLA:STA stl
 2910 PLA:STA pass
 2920 PLA:TAY 
 2930 rts 
 2940 :
 2950 .sprite_restore 
 2960 LDA X1:PHA:LDA Y1:PHA
 2970 LDA X2:PHA:LDA Y2:PHA
 2980 LDA windows
 2990 BEQ sprite_restore_exit
 3000 DEC windows
 3010 TYA:PHA 
 3020 LDA stl:SEC:SBC #6:STA stl
 3030 LDA sth:SBC #0:STA sth
 3040 LDY #0 
 3050 LDA (stl),Y:STA X1:INY 
 3060 LDA (stl),Y:STA Y1:INY 
 3070 LDA (stl),Y:STA X2:INY 
 3080 LDA (stl),Y:STA Y2:INY 
 3090 LDA (stl),Y:PHA:STA pwl:INY 
 3100 LDA (stl),Y:STA sth:STA pwh 
 3110 PLA:STA stl 
 3120 LDA #128:STA pass:JSR sprite  
 3130 LDA pwl:STA stl 
 3140 LDA pwh:STA sth 
 3150 PLA:TAY 
 3160 .sprite_restore_exit
 3170 PLA:STA Y2:PLA:STA X2
 3180 PLA:STA Y1:PLA:STA X1
 3190 rts 
 3200 :
 3210 .sprite 
 3220 TYA:PHA:TXA:PHA 
 3230 LDA Y1:PHA 
 3240 LDY Y2 
 3250 :
 3260 .sprite_yloop 
 3270 JSR position 
 3280 TYA:PHA 
 3290 LDX X2 
 3300 LDY #0 
 3310 :
 3320 .sprite_xloop 
 3330 LDA pass:BMI restore 
 3340 CMP #2:BEQ draw_pointer 
 3350 BCS draw_fixed 
 3360 CMP #1:BEQ draw_save_fixed 
 3370 :
 3380 .draw_save_pointer 
 3390 LDA (ylb),Y:STA (stl),Y 
 3400 LDA (coll),Y:AND (ylb),Y
 3410 EOR (ylb),Y:STA (ylb),Y
 3420 JMP inc_colour_pointer 
 3430 :
 3440 .draw_save_fixed 
 3450 LDA (ylb),Y:STA (stl),Y 
 3460 LDA color:STA (ylb),Y
 3470 JMP inc_store_mem 
 3480 :
 3490 .draw_pointer 
 3500 LDA (coll),Y:STA (ylb),Y 
 3510 INC coll:BNE no_colour_carry1
 3520 INC colh:.no_colour_carry1
 3530 JMP no_store_mem_carry 
 3540 :
 3550 .draw_fixed 
 3560 LDA color:STA (ylb),Y 
 3570 JMP no_store_mem_carry 
 3580 :
 3590 .restore 
 3600 LDA (stl),Y:STA (ylb),Y 
 3610 JMP inc_store_mem  
 3620 :
 3630 .inc_colour_pointer 
 3640 INC coll:BNE inc_store_mem
 3650 INC colh
 3660 :
 3670 .inc_store_mem 
 3680 INC stl:BNE no_store_mem_carry
 3690 INC sth
 3700 LDA sth:CMP &7
 3710 BEQ past_memory_bound
 3720 .no_store_mem_carry
 3730 :
 3740 LDA ylb:CLC:ADC #8:STA ylb
 3750 LDA yhb:ADC #0:STA yhb
 3760 DEX:BNE sprite_xloop 
 3770 INC Y1:PLA:TAY
 3780 DEY:BNE sprite_yloop
 3790 JMP sprite_exit  
 3800 .past_memory_bound 
 3810 LDA #0:STA memory 
 3820 PLA 
 3830 :
 3840 .sprite_exit 
 3850 PLA:STA Y1 
 3860 PLA:TAX:PLA:TAY 
 3870 rts 
 3880 :
 3890 .position 
 3900 LDA #0:STA xhb 
 3910 LDA X1:ASL A:ROL xhb:ASL A
 3920 ROL xhb:ASL A:ROL xhb:STA xlb
 3930 LDA &7:CLC:ADC xhb:STA xhb 
 3940 LDA #0:STA ylb 
 3950 LDA Y1:AND #&F8
 3960 LSR A:LSR A:STA yhb
 3970 LSR A:LSR A:ROR ylb:CLC:ADC yhb
 3980 ADC xhb:STA yhb
 3990 LDA Y1:AND #7:CLC:ADC ylb:ADC xlb
 4000 STA ylb:LDA #0:ADC yhb:STA yhb
 4010 rts 
 4020 :
 4030 .string
 4040 TYA:PHA
 4050 LDY #0
 4060 .string_loop
 4070 LDA (mesl),Y
 4080 CMP #&FF:BEQ string_exit
 4090 JSR &FFE3
 4100 INY
 4110 CPY #&FF:BNE string_loop
 4120 .string_exit
 4130 PLA:TAY
 4140 rts
 4150 :
 4160 \\\\\\\\\\\\\\\\\\\\\\
 4170 \\ DESKTOP HANDLER \\\
 4180 \\\\\\\\\\\\\\\\\\\\\\
 4190 .desktop
 4200 JSR desktop_background
 4210 JSR desktop_icon_line
 4220 JSR desktop_icons_data
 4230 LDA #2:STA pass:JSR display_icons
 4240 LDA #60:STA X1:LDA #6:STA Y1
 4250 .desk_loop
 4260 JSR desktop_icons_data
 4270 JSR pointer
 4280 LDA icons:STA icons2
 4290 INC icons2:LDA icon
 4300 CMP icons2:BCS desk_loop
 4310 rts
 4320 :
 4330 \\\\\\\\\\\\\\\\\\\\\\
 4340 \\ DESKTOP ROUTINES \\
 4350 \\\\\\\\\\\\\\\\\\\\\\
 4360 .desktop_background 
 4370 LDA #170:STA &358
 4380 LDA &2:STA stl
 4390 LDA &3:CLC:ADC #1:STA sth
 4400 LDA #0:STA windows
 4410 LDA #screen MOD 256:STA mesl
 4420 LDA #screen DIV 256:STA mesh
 4430 JSR string
 4440 rts 
 4450 :
 4460 .desktop_icon_line
 4470 LDA #0:STA X1:STA Y1
 4480 LDA #80:STA X2:LDA #23:STA Y2
 4490 LDA #255:STA color
 4500 LDA #3:STA pass:JSR sprite_save
 4510 rts 
 4520 :
 4530 .desktop_icons_data
 4540 LDA #2:STA icons
 4550 LDA #calc_icon_pos MOD 256
 4560 STA gpl
 4570 LDA #calc_icon_pos DIV 256
 4580 STA gph
 4590 LDA #calc_icon_data MOD 256
 4600 STA coll
 4610 LDA #calc_icon_data DIV 256
 4620 STA colh
 4630 rts 
 4640 :
 4650 \\\\\\\\\\\\\\\\\\\\\\
 4660 \\ DESK CHOICE DATA \\
 4670 \\\\\\\\\\\\\\\\\\\\\\
 4680 .calc_icon_pos 
 4690 EQUB 05:EQUB 2:EQUB 4:EQUB 19 
 4700 EQUB 16:EQUB 2:EQUB 4:EQUB 19
 4710 : 
 4720 .calc_icon_data 
 4730 EQUD &01000080 
 4740 EQUD &FEFFFF7F 
 4750 EQUD &0E000070 
 4760 EQUD &CE010070 
 4770 EQUD &0E000070 
 4780 EQUD &FEFFFF7F 
 4790 EQUD &8EC7E371 
 4800 EQUD &8EC7E371 
 4810 EQUD &FEFFFF7F 
 4820 EQUD &8EC7E371 
 4830 EQUD &8EC7E371 
 4840 EQUD &FEFFFF7F 
 4850 EQUD &8EC7E371 
 4860 EQUD &8EC7E371 
 4870 EQUD &FEFFFF7F 
 4880 EQUD &8EC7E371 
 4890 EQUD &8EC7E371 
 4900 EQUD &FEFFFF7F 
 4910 EQUD &80000001 
 4920 .calendar_icon_data
 4930 EQUD &FFDDDDFD
 4940 EQUD &03000000
 4950 EQUD &FBDDDD7D
 4960 EQUD &F8FFFF7F
 4970 EQUD &F8FFFF7F
 4980 EQUD &F8FFFC7F
 4990 EQUD &F8FFFC7F
 5000 EQUD &F8FFFC7F
 5010 EQUD &F8FFFC7F
 5020 EQUD &F8FFFC7F
 5030 EQUD &F8FFFC7F
 5040 EQUD &F8FFFC7F
 5050 EQUD &F8FFFC7F
 5060 EQUD &F8FFFC7F
 5070 EQUD &F8FFFC7F
 5080 EQUD &F8FFFF7F
 5090 EQUD &F8FFFF7F
 5100 EQUD &00000000
 5110 EQUD &000000F0
 5120 
 5130 \\\\\\\\\\\\\\\\\\\\\\
 5140 \\\\ POINTER DATA \\\\
 5150 \\\\\\\\\\\\\\\\\\\\\\
 5160 .pointer_data
 5170 EQUD &00780060
 5180 EQUD &C07F007E
 5190 EQUD &E07FF07F
 5200 EQUD &C063807F
 5210 EQUD &F000E001
 5220 EQUD &3C007800
 5230 EQUW &1800
 5240 
 5250 .screen
 5260 EQUD &0001170C
 5270 EQUD &00000000
 5280 EQUW &0000
 5290 EQUB &00
 5300 EQUD &07090017
 5310 EQUD &00000000
 5320 EQUW &0000
 5330 EQUD &26040017
 5340 EQUD &00000000
 5350 EQUW &0000
 5360 EQUD &1F070017
 5370 EQUD &00000000
 5380 EQUW &0000
 5390 EQUB &FF
 5400 
 5410 
 5420 .code_end
 5430 
 5440 
 5450 ] 
 5460 NEXT code 

 �   Listing IV
 �   By Glenn Marshall
 �   (C) The Micro User
( :
2 � �<>&2100 � �
< :
F xlb=&50:xhb=&51
P ylb=&52:yhb=&53
Z X1=&54:X2=&55
d Y1=&56:Y2=&57
n color=&58
x stl=&59:sth=&5A
�
 pass=&5B
� coll=&5C:colh=&5D
� memory=&5E
� pwl=&5F:pwh=&60
� windows=&61
� icons2=&62
�
 icon=&63
� icons=&64
� iconY=&65
� iconX=&66
�
 box1=&67
�
 box2=&68
�
 box3=&69

 box4=&6A
 dbox1=&6B
 dbox2=&6C
" dbox3=&6D
, gpl=&6E
6 gph=&6F
@
 mesl=&70
J
 mesh=&71
T :
^ � code=0 � 2 � 2
h
 P%=&1900
r [OPT code 
| :
� \\\\\\\\\\\\\\\\\\\\\\
� \\\\\\\ POINTER \\\\\\
� \\\\\\\\\\\\\\\\\\\\\\
�
 .pointer
� JSR set_pointer_size
� JSR set_pointer_interrupts
� LDA #19:JSR &FFF4
� .sync_loop
� LDA #0:STA icon 
� LDA icon:BEQ sync_loop
� JSR pointer_check
� JSR pointer_off
�" JSR reset_pointer_interrupts 
 rts
 :
 \\\\\\\\\\\\\\\\\\\\\\
& \\ POINTER ROUTINES \\
0 \\\\\\\\\\\\\\\\\\\\\\
: .set_pointer_size
D! LDA #2:STA X2:LDA #13:STA Y2
N JSR pointer_on
X	 rts 
b :
l .pointer_on
v LDA #pointer_data � 256
�
 STA coll
� LDA #pointer_data � 256
�
 STA colh
�$ LDA #0:STA pass:JSR sprite_save
� rts
� :
� .pointer_off
� JSR sprite_restore 
�	 rts 
� :
� .set_pointer_interrupts 
� SEI
� LDA &204:STA &230
 LDA &205:STA &231 
! LDA #pointer_interrupt � 256

 STA &204
 ! LDA #pointer_interrupt � 256
*
 STA &205
4 LDA #&50:STA &FE4E 
> CLI
H	 rts 
R :
\ .reset_pointer_interrupts 
f LDA &230:STA &204
p LDA &231:STA &205
z LDA #242:STA &FE4E
� LDA #96:STA &FE4B
�	 rts 
� :
� .pointer_interrupt 
�! LDA &FC:PHA:TYA:PHA:TXA:PHA 
�# LDA #2:BIT &FE4D:BEQ not_sync 
�  LDA &FE4B:� #&DF:STA &FE4B 
�! LDA &FE4E:�A #&20:STA &FE4E 
� LDA #80:STA &FE48 
� LDA #70:STA &FE49
� .pointer_interrupt_exit 
�  PLA:TAX:PLA:TAY:PLA:STA &FC
� JMP (&230)
 .not_sync 
 LDA #&20:BIT &FE4D
 BEQ pointer_interrupt_exit
$ STA &FE4D:PHP:CLI
. JSR pointer_off
8 JSR pointer_direction
B JSR pointer_on
L$ PLP:JMP pointer_interrupt_exit 
V :
` .pointer_check
j LDA X1:PHA:LDA X2:PHA
t LDA Y1:PHA:LDA Y2:PHA
~ TXA:PHA:TYA:PHA 
�& LDA X1:STA iconX:LDA Y1:STA iconY
� LDX #0
� .pointer_check_loop 
� JSR get_icon_shape
�# LDA iconX:CMP X1:BCC not_icon 
� LDA X1:CLC:ADC X2:STA X1
�" LDA iconX:CMP X1:BCS not_icon
�# LDA iconY:CMP Y1:BCC not_icon 
� LDA Y1:CLC:ADC Y2:STA Y1
�" LDA iconY:CMP Y1:BCS not_icon
�" INX:STX icon:JMP pointer_out 
� .not_icon 
 LDA gpl:CLC:ADC #4:STA gpl

 LDA gph:ADC #0:STA gph
 INX:CPX icons
 BNE pointer_check_loop
( .pointer_out 
2 PLA:TAY:PLA:TAX 
< PLA:STA Y2:PLA:STA Y1
F PLA:STA X2:PLA:STA X1
P	 rts 
Z :
d .pointer_direction
n LDX #(-58 � &FF):LDY #&FF
x LDA #&81:JSR &FFF4:TXA
�$ BCC down:LDA Y1:CMP #4:BCC down
� SEC:SBC #3:STA Y1
� .down 
� LDX #(-42 � &FF):LDY #&FF
� LDA #&81:JSR &FFF4:TXA
� BCC right:LDA Y1:CMP #184
�  BCS right:CLC:ADC #3:STA Y1
� .right 
� LDX #(-122 � &FF):LDY #&FF
� LDA #&81:JSR &FFF4:TXA
�% BCC left:LDA X1:CMP #78:BCS left
� CLC:ADC #1:STA X1
� .left 
 LDX #(-26 � &FF):LDY #&FF
 LDA #&81:JSR &FFF4:TXA
 BCC return:LDA X1:CMP #1
"! BCC return:SEC:SBC #1:STA X1
,
 .return 
6 LDX #(-106 � &FF):LDY #&FF
@ LDA #&81:JSR &FFF4:TXA
J BCC direction_exit 
T LDA #&FF:STA icon 
^ .direction_exit 
h	 rts 
r :
| \\\\\\\\\\\\\\\\\\\\\\
� \\ GRAPHIC ROUTINES \\
� \\\\\\\\\\\\\\\\\\\\\\
� .display_icons 
� LDX icons 
� .display_icons_loop 
� JSR get_icon_shape 
� JSR sprite_save
� .display_icons_past
� LDA gpl:CLC:ADC #4:STA gpl
� LDA gph:ADC #0:STA gph
�  DEX:BNE display_icons_loop 
�	 rts 
� :
 .get_icon_shape 

 TYA:PHA 
 LDY #0 
& LDA (gpl),Y:STA X1:INY 
0 LDA (gpl),Y:STA Y1:INY  
: LDA (gpl),Y:STA X2:INY 
D LDA (gpl),Y:STA Y2 
N
 PLA:TAY 
X	 rts 
b :
l
 .box 
v LDA X1:PHA:LDA Y1:PHA
� LDA X2:PHA:LDA Y2:PHA
� LDA box1:STA color
� JSR sprite_save
� INC Y1:DEC Y2:DEC Y2
� INC X1:DEC X2:DEC X2
� LDA box2:STA color
� JSR sprite_save
�! LDA X1:CLC:ADC X2:PHA:DEC X1
� LDA #1:STA X2
� LDA box3:STA color
� JSR sprite_save
� PLA:STA X1:LDA #1:STA X2 
� LDA box4:STA color
 JSR sprite_save
 PLA:STA Y2:PLA:STA X2
 PLA:STA Y1:PLA:STA X1
 	 rts 
* :
4 .restore_box
> JSR sprite_restore
H JSR sprite_restore
R JSR sprite_restore
\ JSR sprite_restore
f rts
p :
z .dropped_box 
� LDA X1:PHA:LDA Y1:PHA
� LDA X2:PHA:LDA Y2:PHA
� LDA dbox1:STA color
� JSR sprite_save
� LDA X2:PHA 
�! LDA X1:PHA:CLC:ADC X2:STA X1
� LDA #1:STA X2
� LDA Y1:CLC:ADC #4:STA Y1 
� LDA dbox2:STA color
� JSR sprite_save
�! PLA:STA X1:INC X1:PLA:STA X2
�! LDA Y1:CLC:ADC Y2:SEC:SBC #4
� STA Y1
	 LDA #5:STA Y2
	 LDA dbox3:STA color
	 JSR sprite_save
	$ PLA:STA Y2:PLA:STA X2
	. PLA:STA Y1:PLA:STA X1
	8	 rts 
	B :
	L .restore_dropped_box
	V JSR sprite_restore
	` JSR sprite_restore
	j JSR sprite_restore
	t rts
	~ :
	� .inverse_text 
	� LDA #&11:JSR &FFEE
	� LDA #0:JSR &FFEE
	� LDA #&11:JSR &FFEE
	� LDA #129:JSR &FFEE
	�	 rts 
	� :
	� .normal_text 
	� LDA #&11:JSR &FFEE
	� LDA #1:JSR &FFEE
	� LDA #&11:JSR &FFEE
	� LDA #128:JSR &FFEE
	 rts 

 :
 .sprite_save 
 LDA pass:CMP #2:BCC saving
( JSR sprite
2 rts
< .saving
F
 TYA:PHA 
P INC windows
Z LDA pass:PHA
d LDA #1:STA memory 
n LDA stl:STA pwl
x LDA sth:STA pwh
� JSR sprite 
�& LDA memory:BEQ not_enough_memory 
� LDY #0 
� LDA X1:STA (stl),Y:INY 
� LDA Y1:STA (stl),Y:INY 
� LDA X2:STA (stl),Y:INY 
� LDA Y2:STA (stl),Y:INY 
� LDA pwl:STA (stl),Y:INY
� LDA pwh:STA (stl),Y
� LDA stl:CLC:ADC #6:STA stl
� LDA sth:ADC #0:STA sth
� PLA:STA pass
�
 PLA:TAY 
	 rts 
 :
 .not_enough_memory 
" LDA pwl:PHA:STA stl
, LDA pwh:PHA:STA sth
6 DEC windows
@" LDA #128:STA pass:JSR sprite 
J LDA #7:JSR &FFEE 
T PLA:STA sth:PLA:STA stl
^ PLA:STA pass
h
 PLA:TAY 
r	 rts 
| :
� .sprite_restore 
� LDA X1:PHA:LDA Y1:PHA
� LDA X2:PHA:LDA Y2:PHA
� LDA windows
� BEQ sprite_restore_exit
� DEC windows
�
 TYA:PHA 
� LDA stl:SEC:SBC #6:STA stl
� LDA sth:SBC #0:STA sth
� LDY #0 
� LDA (stl),Y:STA X1:INY 
� LDA (stl),Y:STA Y1:INY 
� LDA (stl),Y:STA X2:INY 
 LDA (stl),Y:STA Y2:INY 
! LDA (stl),Y:PHA:STA pwl:INY 
! LDA (stl),Y:STA sth:STA pwh 
& PLA:STA stl 
0# LDA #128:STA pass:JSR sprite  
: LDA pwl:STA stl 
D LDA pwh:STA sth 
N
 PLA:TAY 
X .sprite_restore_exit
b PLA:STA Y2:PLA:STA X2
l PLA:STA Y1:PLA:STA X1
v	 rts 
� :
�
 .sprite 
� TYA:PHA:TXA:PHA 
� LDA Y1:PHA 
� LDY Y2 
� :
� .sprite_yloop 
� JSR position 
�
 TYA:PHA 
� LDX X2 
� LDY #0 
� :
� .sprite_xloop 

 LDA pass:BMI restore 

 CMP #2:BEQ draw_pointer 

 BCS draw_fixed 

   CMP #1:BEQ draw_save_fixed 

* :

4 .draw_save_pointer 

> LDA (ylb),Y:STA (stl),Y 

H LDA (coll),Y:� (ylb),Y

R � (ylb),Y:STA (ylb),Y

\ JMP inc_colour_pointer 

f :

p .draw_save_fixed 

z LDA (ylb),Y:STA (stl),Y 

� LDA color:STA (ylb),Y

� JMP inc_store_mem 

� :

� .draw_pointer 

� LDA (coll),Y:STA (ylb),Y 

�" INC coll:BNE no_colour_carry1

� INC colh:.no_colour_carry1

� JMP no_store_mem_carry 

� :

� .draw_fixed 

� LDA color:STA (ylb),Y 

� JMP no_store_mem_carry 

� :
 .restore 
 LDA (stl),Y:STA (ylb),Y 
 JMP inc_store_mem  
$ :
. .inc_colour_pointer 
8 INC coll:BNE inc_store_mem
B
 INC colh
L :
V .inc_store_mem 
`# INC stl:BNE no_store_mem_carry
j INC sth
t LDA sth:CMP &7
~ BEQ past_memory_bound
� .no_store_mem_carry
� :
� LDA ylb:CLC:ADC #8:STA ylb
� LDA yhb:ADC #0:STA yhb
� DEX:BNE sprite_xloop 
� INC Y1:PLA:TAY
� DEY:BNE sprite_yloop
� JMP sprite_exit  
� .past_memory_bound 
� LDA #0:STA memory 
�	 PLA 
� :
 .sprite_exit 

 PLA:STA Y1 
 PLA:TAX:PLA:TAY 
	 rts 
( :
2 .position 
< LDA #0:STA xhb 
F LDA X1:ASL A:ROL xhb:ASL A
P" ROL xhb:ASL A:ROL xhb:STA xlb
Z  LDA &7:CLC:ADC xhb:STA xhb 
d LDA #0:STA ylb 
n LDA Y1:� #&F8
x LSR A:LSR A:STA yhb
�$ LSR A:LSR A:ROR ylb:CLC:ADC yhb
� ADC xhb:STA yhb
�$ LDA Y1:� #7:CLC:ADC ylb:ADC xlb
�# STA ylb:LDA #0:ADC yhb:STA yhb
�	 rts 
� :
� .string
� TYA:PHA
� LDY #0
� .string_loop
� LDA (mesl),Y
� CMP #&FF:BEQ string_exit
� JSR &FFE3
 INY
 CPY #&FF:BNE string_loop
 .string_exit
" PLA:TAY
, rts
6 :
@ \\\\\\\\\\\\\\\\\\\\\\
J \\ DESKTOP HANDLER \\\
T \\\\\\\\\\\\\\\\\\\\\\
^
 .desktop
h JSR desktop_background
r JSR desktop_icon_line
| JSR desktop_icons_data
�& LDA #2:STA pass:JSR display_icons
�! LDA #60:STA X1:LDA #6:STA Y1
� .desk_loop
� JSR desktop_icons_data
� JSR pointer
� LDA icons:STA icons2
� INC icons2:LDA icon
� CMP icons2:BCS desk_loop
� rts
� :
� \\\\\\\\\\\\\\\\\\\\\\
� \\ DESKTOP ROUTINES \\
� \\\\\\\\\\\\\\\\\\\\\\
 .desktop_background 
 LDA #170:STA &358
 LDA &2:STA stl
& LDA &3:CLC:ADC #1:STA sth
0 LDA #0:STA windows
: LDA #screen � 256:STA mesl
D LDA #screen � 256:STA mesh
N JSR string
X	 rts 
b :
l .desktop_icon_line
v LDA #0:STA X1:STA Y1
�" LDA #80:STA X2:LDA #23:STA Y2
� LDA #255:STA color
�$ LDA #3:STA pass:JSR sprite_save
�	 rts 
� :
� .desktop_icons_data
� LDA #2:STA icons
� LDA #calc_icon_pos � 256
� STA gpl
� LDA #calc_icon_pos � 256
� STA gph
� LDA #calc_icon_data � 256
�
 STA coll
 LDA #calc_icon_data � 256

 STA colh
	 rts 
  :
* \\\\\\\\\\\\\\\\\\\\\\
4 \\ DESK CHOICE � \\
> \\\\\\\\\\\\\\\\\\\\\\
H .calc_icon_pos 
R# EQUB 05:EQUB 2:EQUB 4:EQUB 19 
\" EQUB 16:EQUB 2:EQUB 4:EQUB 19
f : 
p .calc_icon_data 
z EQUD &01000080 
� EQUD &FEFFFF7F 
� EQUD &0E000070 
� EQUD &CE010070 
� EQUD &0E000070 
� EQUD &FEFFFF7F 
� EQUD &8EC7E371 
� EQUD &8EC7E371 
� EQUD &FEFFFF7F 
� EQUD &8EC7E371 
� EQUD &8EC7E371 
� EQUD &FEFFFF7F 
� EQUD &8EC7E371 
� EQUD &8EC7E371 
 EQUD &FEFFFF7F 
 EQUD &8EC7E371 
 EQUD &8EC7E371 
$ EQUD &FEFFFF7F 
. EQUD &80000001 
8 .calendar_icon_data
B EQUD &FFDDDDFD
L EQUD &03000000
V EQUD &FBDDDD7D
` EQUD &F8FFFF7F
j EQUD &F8FFFF7F
t EQUD &F8FFFC7F
~ EQUD &F8FFFC7F
� EQUD &F8FFFC7F
� EQUD &F8FFFC7F
� EQUD &F8FFFC7F
� EQUD &F8FFFC7F
� EQUD &F8FFFC7F
� EQUD &F8FFFC7F
� EQUD &F8FFFC7F
� EQUD &F8FFFC7F
� EQUD &F8FFFF7F
� EQUD &F8FFFF7F
� EQUD &00000000
� EQUD &000000F0
 

 \\\\\\\\\\\\\\\\\\\\\\
 \\\\ POINTER � \\\\
 \\\\\\\\\\\\\\\\\\\\\\
( .pointer_data
2 EQUD &00780060
< EQUD &C07F007E
F EQUD &E07FF07F
P EQUD &C063807F
Z EQUD &F000E001
d EQUD &3C007800
n EQUW &1800
x 
� .screen
� EQUD &0001170C
� EQUD &00000000
� EQUW &0000
�
 EQUB &00
� EQUD &07090017
� EQUD &00000000
� EQUW &0000
� EQUD &26040017
� EQUD &00000000
� EQUW &0000
� EQUD &1F070017
� EQUD &00000000
 EQUW &0000

 EQUB &FF
 
" 
, .code_end
6 
@ 
J ] 
T � code 
�
00000000  0d 00 0a 13 20 f4 20 20  20 4c 69 73 74 69 6e 67  |.... .   Listing|
00000010  20 49 56 0d 00 14 1a 20  f4 20 20 20 42 79 20 47  | IV.... .   By G|
00000020  6c 65 6e 6e 20 4d 61 72  73 68 61 6c 6c 0d 00 1e  |lenn Marshall...|
00000030  1b 20 f4 20 20 20 28 43  29 20 54 68 65 20 4d 69  |. .   (C) The Mi|
00000040  63 72 6f 20 55 73 65 72  0d 00 28 06 20 3a 0d 00  |cro User..(. :..|
00000050  32 13 20 e7 20 90 3c 3e  26 32 31 30 30 20 8c 20  |2. . .<>&2100 . |
00000060  e0 0d 00 3c 06 20 3a 0d  00 46 14 20 78 6c 62 3d  |...<. :..F. xlb=|
00000070  26 35 30 3a 78 68 62 3d  26 35 31 0d 00 50 14 20  |&50:xhb=&51..P. |
00000080  79 6c 62 3d 26 35 32 3a  79 68 62 3d 26 35 33 0d  |ylb=&52:yhb=&53.|
00000090  00 5a 12 20 58 31 3d 26  35 34 3a 58 32 3d 26 35  |.Z. X1=&54:X2=&5|
000000a0  35 0d 00 64 12 20 59 31  3d 26 35 36 3a 59 32 3d  |5..d. Y1=&56:Y2=|
000000b0  26 35 37 0d 00 6e 0e 20  63 6f 6c 6f 72 3d 26 35  |&57..n. color=&5|
000000c0  38 0d 00 78 14 20 73 74  6c 3d 26 35 39 3a 73 74  |8..x. stl=&59:st|
000000d0  68 3d 26 35 41 0d 00 82  0d 20 70 61 73 73 3d 26  |h=&5A.... pass=&|
000000e0  35 42 0d 00 8c 16 20 63  6f 6c 6c 3d 26 35 43 3a  |5B.... coll=&5C:|
000000f0  63 6f 6c 68 3d 26 35 44  0d 00 96 0f 20 6d 65 6d  |colh=&5D.... mem|
00000100  6f 72 79 3d 26 35 45 0d  00 a0 14 20 70 77 6c 3d  |ory=&5E.... pwl=|
00000110  26 35 46 3a 70 77 68 3d  26 36 30 0d 00 aa 10 20  |&5F:pwh=&60.... |
00000120  77 69 6e 64 6f 77 73 3d  26 36 31 0d 00 b4 0f 20  |windows=&61.... |
00000130  69 63 6f 6e 73 32 3d 26  36 32 0d 00 be 0d 20 69  |icons2=&62.... i|
00000140  63 6f 6e 3d 26 36 33 0d  00 c8 0e 20 69 63 6f 6e  |con=&63.... icon|
00000150  73 3d 26 36 34 0d 00 d2  0e 20 69 63 6f 6e 59 3d  |s=&64.... iconY=|
00000160  26 36 35 0d 00 dc 0e 20  69 63 6f 6e 58 3d 26 36  |&65.... iconX=&6|
00000170  36 0d 00 e6 0d 20 62 6f  78 31 3d 26 36 37 0d 00  |6.... box1=&67..|
00000180  f0 0d 20 62 6f 78 32 3d  26 36 38 0d 00 fa 0d 20  |.. box2=&68.... |
00000190  62 6f 78 33 3d 26 36 39  0d 01 04 0d 20 62 6f 78  |box3=&69.... box|
000001a0  34 3d 26 36 41 0d 01 0e  0e 20 64 62 6f 78 31 3d  |4=&6A.... dbox1=|
000001b0  26 36 42 0d 01 18 0e 20  64 62 6f 78 32 3d 26 36  |&6B.... dbox2=&6|
000001c0  43 0d 01 22 0e 20 64 62  6f 78 33 3d 26 36 44 0d  |C..". dbox3=&6D.|
000001d0  01 2c 0c 20 67 70 6c 3d  26 36 45 0d 01 36 0c 20  |.,. gpl=&6E..6. |
000001e0  67 70 68 3d 26 36 46 0d  01 40 0d 20 6d 65 73 6c  |gph=&6F..@. mesl|
000001f0  3d 26 37 30 0d 01 4a 0d  20 6d 65 73 68 3d 26 37  |=&70..J. mesh=&7|
00000200  31 0d 01 54 06 20 3a 0d  01 5e 15 20 e3 20 63 6f  |1..T. :..^. . co|
00000210  64 65 3d 30 20 b8 20 32  20 88 20 32 0d 01 68 0d  |de=0 . 2 . 2..h.|
00000220  20 50 25 3d 26 31 39 30  30 0d 01 72 0f 20 5b 4f  | P%=&1900..r. [O|
00000230  50 54 20 63 6f 64 65 20  0d 01 7c 06 20 3a 0d 01  |PT code ..|. :..|
00000240  86 1b 20 5c 5c 5c 5c 5c  5c 5c 5c 5c 5c 5c 5c 5c  |.. \\\\\\\\\\\\\|
00000250  5c 5c 5c 5c 5c 5c 5c 5c  5c 0d 01 90 1b 20 5c 5c  |\\\\\\\\\.... \\|
00000260  5c 5c 5c 5c 5c 20 50 4f  49 4e 54 45 52 20 5c 5c  |\\\\\ POINTER \\|
00000270  5c 5c 5c 5c 0d 01 9a 1b  20 5c 5c 5c 5c 5c 5c 5c  |\\\\.... \\\\\\\|
00000280  5c 5c 5c 5c 5c 5c 5c 5c  5c 5c 5c 5c 5c 5c 5c 0d  |\\\\\\\\\\\\\\\.|
00000290  01 a4 0d 20 2e 70 6f 69  6e 74 65 72 0d 01 ae 19  |... .pointer....|
000002a0  20 4a 53 52 20 73 65 74  5f 70 6f 69 6e 74 65 72  | JSR set_pointer|
000002b0  5f 73 69 7a 65 0d 01 b8  1f 20 4a 53 52 20 73 65  |_size.... JSR se|
000002c0  74 5f 70 6f 69 6e 74 65  72 5f 69 6e 74 65 72 72  |t_pointer_interr|
000002d0  75 70 74 73 0d 01 c2 16  20 4c 44 41 20 23 31 39  |upts.... LDA #19|
000002e0  3a 4a 53 52 20 26 46 46  46 34 0d 01 cc 0f 20 2e  |:JSR &FFF4.... .|
000002f0  73 79 6e 63 5f 6c 6f 6f  70 0d 01 d6 15 20 4c 44  |sync_loop.... LD|
00000300  41 20 23 30 3a 53 54 41  20 69 63 6f 6e 20 0d 01  |A #0:STA icon ..|
00000310  e0 1b 20 4c 44 41 20 69  63 6f 6e 3a 42 45 51 20  |.. LDA icon:BEQ |
00000320  73 79 6e 63 5f 6c 6f 6f  70 0d 01 ea 16 20 4a 53  |sync_loop.... JS|
00000330  52 20 70 6f 69 6e 74 65  72 5f 63 68 65 63 6b 0d  |R pointer_check.|
00000340  01 f4 14 20 4a 53 52 20  70 6f 69 6e 74 65 72 5f  |... JSR pointer_|
00000350  6f 66 66 0d 01 fe 22 20  4a 53 52 20 72 65 73 65  |off..." JSR rese|
00000360  74 5f 70 6f 69 6e 74 65  72 5f 69 6e 74 65 72 72  |t_pointer_interr|
00000370  75 70 74 73 20 0d 02 08  08 20 72 74 73 0d 02 12  |upts .... rts...|
00000380  06 20 3a 0d 02 1c 1b 20  5c 5c 5c 5c 5c 5c 5c 5c  |. :.... \\\\\\\\|
00000390  5c 5c 5c 5c 5c 5c 5c 5c  5c 5c 5c 5c 5c 5c 0d 02  |\\\\\\\\\\\\\\..|
000003a0  26 1b 20 5c 5c 20 50 4f  49 4e 54 45 52 20 52 4f  |&. \\ POINTER RO|
000003b0  55 54 49 4e 45 53 20 5c  5c 0d 02 30 1b 20 5c 5c  |UTINES \\..0. \\|
000003c0  5c 5c 5c 5c 5c 5c 5c 5c  5c 5c 5c 5c 5c 5c 5c 5c  |\\\\\\\\\\\\\\\\|
000003d0  5c 5c 5c 5c 0d 02 3a 16  20 2e 73 65 74 5f 70 6f  |\\\\..:. .set_po|
000003e0  69 6e 74 65 72 5f 73 69  7a 65 0d 02 44 21 20 4c  |inter_size..D! L|
000003f0  44 41 20 23 32 3a 53 54  41 20 58 32 3a 4c 44 41  |DA #2:STA X2:LDA|
00000400  20 23 31 33 3a 53 54 41  20 59 32 0d 02 4e 13 20  | #13:STA Y2..N. |
00000410  4a 53 52 20 70 6f 69 6e  74 65 72 5f 6f 6e 0d 02  |JSR pointer_on..|
00000420  58 09 20 72 74 73 20 0d  02 62 06 20 3a 0d 02 6c  |X. rts ..b. :..l|
00000430  10 20 2e 70 6f 69 6e 74  65 72 5f 6f 6e 0d 02 76  |. .pointer_on..v|
00000440  1c 20 4c 44 41 20 23 70  6f 69 6e 74 65 72 5f 64  |. LDA #pointer_d|
00000450  61 74 61 20 83 20 32 35  36 0d 02 80 0d 20 53 54  |ata . 256.... ST|
00000460  41 20 63 6f 6c 6c 0d 02  8a 1c 20 4c 44 41 20 23  |A coll.... LDA #|
00000470  70 6f 69 6e 74 65 72 5f  64 61 74 61 20 81 20 32  |pointer_data . 2|
00000480  35 36 0d 02 94 0d 20 53  54 41 20 63 6f 6c 68 0d  |56.... STA colh.|
00000490  02 9e 24 20 4c 44 41 20  23 30 3a 53 54 41 20 70  |..$ LDA #0:STA p|
000004a0  61 73 73 3a 4a 53 52 20  73 70 72 69 74 65 5f 73  |ass:JSR sprite_s|
000004b0  61 76 65 0d 02 a8 08 20  72 74 73 0d 02 b2 06 20  |ave.... rts.... |
000004c0  3a 0d 02 bc 11 20 2e 70  6f 69 6e 74 65 72 5f 6f  |:.... .pointer_o|
000004d0  66 66 0d 02 c6 18 20 4a  53 52 20 73 70 72 69 74  |ff.... JSR sprit|
000004e0  65 5f 72 65 73 74 6f 72  65 20 0d 02 d0 09 20 72  |e_restore .... r|
000004f0  74 73 20 0d 02 da 06 20  3a 0d 02 e4 1d 20 2e 73  |ts .... :.... .s|
00000500  65 74 5f 70 6f 69 6e 74  65 72 5f 69 6e 74 65 72  |et_pointer_inter|
00000510  72 75 70 74 73 20 0d 02  ee 08 20 53 45 49 0d 02  |rupts .... SEI..|
00000520  f8 16 20 4c 44 41 20 26  32 30 34 3a 53 54 41 20  |.. LDA &204:STA |
00000530  26 32 33 30 0d 03 02 17  20 4c 44 41 20 26 32 30  |&230.... LDA &20|
00000540  35 3a 53 54 41 20 26 32  33 31 20 0d 03 0c 21 20  |5:STA &231 ...! |
00000550  4c 44 41 20 23 70 6f 69  6e 74 65 72 5f 69 6e 74  |LDA #pointer_int|
00000560  65 72 72 75 70 74 20 83  20 32 35 36 0d 03 16 0d  |errupt . 256....|
00000570  20 53 54 41 20 26 32 30  34 0d 03 20 21 20 4c 44  | STA &204.. ! LD|
00000580  41 20 23 70 6f 69 6e 74  65 72 5f 69 6e 74 65 72  |A #pointer_inter|
00000590  72 75 70 74 20 81 20 32  35 36 0d 03 2a 0d 20 53  |rupt . 256..*. S|
000005a0  54 41 20 26 32 30 35 0d  03 34 18 20 4c 44 41 20  |TA &205..4. LDA |
000005b0  23 26 35 30 3a 53 54 41  20 26 46 45 34 45 20 0d  |#&50:STA &FE4E .|
000005c0  03 3e 08 20 43 4c 49 0d  03 48 09 20 72 74 73 20  |.>. CLI..H. rts |
000005d0  0d 03 52 06 20 3a 0d 03  5c 1f 20 2e 72 65 73 65  |..R. :..\. .rese|
000005e0  74 5f 70 6f 69 6e 74 65  72 5f 69 6e 74 65 72 72  |t_pointer_interr|
000005f0  75 70 74 73 20 0d 03 66  16 20 4c 44 41 20 26 32  |upts ..f. LDA &2|
00000600  33 30 3a 53 54 41 20 26  32 30 34 0d 03 70 16 20  |30:STA &204..p. |
00000610  4c 44 41 20 26 32 33 31  3a 53 54 41 20 26 32 30  |LDA &231:STA &20|
00000620  35 0d 03 7a 17 20 4c 44  41 20 23 32 34 32 3a 53  |5..z. LDA #242:S|
00000630  54 41 20 26 46 45 34 45  0d 03 84 16 20 4c 44 41  |TA &FE4E.... LDA|
00000640  20 23 39 36 3a 53 54 41  20 26 46 45 34 42 0d 03  | #96:STA &FE4B..|
00000650  8e 09 20 72 74 73 20 0d  03 98 06 20 3a 0d 03 a2  |.. rts .... :...|
00000660  18 20 2e 70 6f 69 6e 74  65 72 5f 69 6e 74 65 72  |. .pointer_inter|
00000670  72 75 70 74 20 0d 03 ac  21 20 4c 44 41 20 26 46  |rupt ...! LDA &F|
00000680  43 3a 50 48 41 3a 54 59  41 3a 50 48 41 3a 54 58  |C:PHA:TYA:PHA:TX|
00000690  41 3a 50 48 41 20 0d 03  b6 23 20 4c 44 41 20 23  |A:PHA ...# LDA #|
000006a0  32 3a 42 49 54 20 26 46  45 34 44 3a 42 45 51 20  |2:BIT &FE4D:BEQ |
000006b0  6e 6f 74 5f 73 79 6e 63  20 0d 03 c0 20 20 4c 44  |not_sync ...  LD|
000006c0  41 20 26 46 45 34 42 3a  80 20 23 26 44 46 3a 53  |A &FE4B:. #&DF:S|
000006d0  54 41 20 26 46 45 34 42  20 0d 03 ca 21 20 4c 44  |TA &FE4B ...! LD|
000006e0  41 20 26 46 45 34 45 3a  84 41 20 23 26 32 30 3a  |A &FE4E:.A #&20:|
000006f0  53 54 41 20 26 46 45 34  45 20 0d 03 d4 17 20 4c  |STA &FE4E .... L|
00000700  44 41 20 23 38 30 3a 53  54 41 20 26 46 45 34 38  |DA #80:STA &FE48|
00000710  20 0d 03 de 16 20 4c 44  41 20 23 37 30 3a 53 54  | .... LDA #70:ST|
00000720  41 20 26 46 45 34 39 0d  03 e8 1d 20 2e 70 6f 69  |A &FE49.... .poi|
00000730  6e 74 65 72 5f 69 6e 74  65 72 72 75 70 74 5f 65  |nter_interrupt_e|
00000740  78 69 74 20 0d 03 f2 20  20 50 4c 41 3a 54 41 58  |xit ...  PLA:TAX|
00000750  3a 50 4c 41 3a 54 41 59  3a 50 4c 41 3a 53 54 41  |:PLA:TAY:PLA:STA|
00000760  20 26 46 43 0d 03 fc 0f  20 4a 4d 50 20 28 26 32  | &FC.... JMP (&2|
00000770  33 30 29 0d 04 06 0f 20  2e 6e 6f 74 5f 73 79 6e  |30).... .not_syn|
00000780  63 20 0d 04 10 17 20 4c  44 41 20 23 26 32 30 3a  |c .... LDA #&20:|
00000790  42 49 54 20 26 46 45 34  44 0d 04 1a 1f 20 42 45  |BIT &FE4D.... BE|
000007a0  51 20 70 6f 69 6e 74 65  72 5f 69 6e 74 65 72 72  |Q pointer_interr|
000007b0  75 70 74 5f 65 78 69 74  0d 04 24 16 20 53 54 41  |upt_exit..$. STA|
000007c0  20 26 46 45 34 44 3a 50  48 50 3a 43 4c 49 0d 04  | &FE4D:PHP:CLI..|
000007d0  2e 14 20 4a 53 52 20 70  6f 69 6e 74 65 72 5f 6f  |.. JSR pointer_o|
000007e0  66 66 0d 04 38 1a 20 4a  53 52 20 70 6f 69 6e 74  |ff..8. JSR point|
000007f0  65 72 5f 64 69 72 65 63  74 69 6f 6e 0d 04 42 13  |er_direction..B.|
00000800  20 4a 53 52 20 70 6f 69  6e 74 65 72 5f 6f 6e 0d  | JSR pointer_on.|
00000810  04 4c 24 20 50 4c 50 3a  4a 4d 50 20 70 6f 69 6e  |.L$ PLP:JMP poin|
00000820  74 65 72 5f 69 6e 74 65  72 72 75 70 74 5f 65 78  |ter_interrupt_ex|
00000830  69 74 20 0d 04 56 06 20  3a 0d 04 60 13 20 2e 70  |it ..V. :..`. .p|
00000840  6f 69 6e 74 65 72 5f 63  68 65 63 6b 0d 04 6a 1a  |ointer_check..j.|
00000850  20 4c 44 41 20 58 31 3a  50 48 41 3a 4c 44 41 20  | LDA X1:PHA:LDA |
00000860  58 32 3a 50 48 41 0d 04  74 1a 20 4c 44 41 20 59  |X2:PHA..t. LDA Y|
00000870  31 3a 50 48 41 3a 4c 44  41 20 59 32 3a 50 48 41  |1:PHA:LDA Y2:PHA|
00000880  0d 04 7e 15 20 54 58 41  3a 50 48 41 3a 54 59 41  |..~. TXA:PHA:TYA|
00000890  3a 50 48 41 20 0d 04 88  26 20 4c 44 41 20 58 31  |:PHA ...& LDA X1|
000008a0  3a 53 54 41 20 69 63 6f  6e 58 3a 4c 44 41 20 59  |:STA iconX:LDA Y|
000008b0  31 3a 53 54 41 20 69 63  6f 6e 59 0d 04 92 0b 20  |1:STA iconY.... |
000008c0  4c 44 58 20 23 30 0d 04  9c 19 20 2e 70 6f 69 6e  |LDX #0.... .poin|
000008d0  74 65 72 5f 63 68 65 63  6b 5f 6c 6f 6f 70 20 0d  |ter_check_loop .|
000008e0  04 a6 17 20 4a 53 52 20  67 65 74 5f 69 63 6f 6e  |... JSR get_icon|
000008f0  5f 73 68 61 70 65 0d 04  b0 23 20 4c 44 41 20 69  |_shape...# LDA i|
00000900  63 6f 6e 58 3a 43 4d 50  20 58 31 3a 42 43 43 20  |conX:CMP X1:BCC |
00000910  6e 6f 74 5f 69 63 6f 6e  20 0d 04 ba 1d 20 4c 44  |not_icon .... LD|
00000920  41 20 58 31 3a 43 4c 43  3a 41 44 43 20 58 32 3a  |A X1:CLC:ADC X2:|
00000930  53 54 41 20 58 31 0d 04  c4 22 20 4c 44 41 20 69  |STA X1..." LDA i|
00000940  63 6f 6e 58 3a 43 4d 50  20 58 31 3a 42 43 53 20  |conX:CMP X1:BCS |
00000950  6e 6f 74 5f 69 63 6f 6e  0d 04 ce 23 20 4c 44 41  |not_icon...# LDA|
00000960  20 69 63 6f 6e 59 3a 43  4d 50 20 59 31 3a 42 43  | iconY:CMP Y1:BC|
00000970  43 20 6e 6f 74 5f 69 63  6f 6e 20 0d 04 d8 1d 20  |C not_icon .... |
00000980  4c 44 41 20 59 31 3a 43  4c 43 3a 41 44 43 20 59  |LDA Y1:CLC:ADC Y|
00000990  32 3a 53 54 41 20 59 31  0d 04 e2 22 20 4c 44 41  |2:STA Y1..." LDA|
000009a0  20 69 63 6f 6e 59 3a 43  4d 50 20 59 31 3a 42 43  | iconY:CMP Y1:BC|
000009b0  53 20 6e 6f 74 5f 69 63  6f 6e 0d 04 ec 22 20 49  |S not_icon..." I|
000009c0  4e 58 3a 53 54 58 20 69  63 6f 6e 3a 4a 4d 50 20  |NX:STX icon:JMP |
000009d0  70 6f 69 6e 74 65 72 5f  6f 75 74 20 0d 04 f6 0f  |pointer_out ....|
000009e0  20 2e 6e 6f 74 5f 69 63  6f 6e 20 0d 05 00 1f 20  | .not_icon .... |
000009f0  4c 44 41 20 67 70 6c 3a  43 4c 43 3a 41 44 43 20  |LDA gpl:CLC:ADC |
00000a00  23 34 3a 53 54 41 20 67  70 6c 0d 05 0a 1b 20 4c  |#4:STA gpl.... L|
00000a10  44 41 20 67 70 68 3a 41  44 43 20 23 30 3a 53 54  |DA gph:ADC #0:ST|
00000a20  41 20 67 70 68 0d 05 14  12 20 49 4e 58 3a 43 50  |A gph.... INX:CP|
00000a30  58 20 69 63 6f 6e 73 0d  05 1e 1b 20 42 4e 45 20  |X icons.... BNE |
00000a40  70 6f 69 6e 74 65 72 5f  63 68 65 63 6b 5f 6c 6f  |pointer_check_lo|
00000a50  6f 70 0d 05 28 12 20 2e  70 6f 69 6e 74 65 72 5f  |op..(. .pointer_|
00000a60  6f 75 74 20 0d 05 32 15  20 50 4c 41 3a 54 41 59  |out ..2. PLA:TAY|
00000a70  3a 50 4c 41 3a 54 41 58  20 0d 05 3c 1a 20 50 4c  |:PLA:TAX ..<. PL|
00000a80  41 3a 53 54 41 20 59 32  3a 50 4c 41 3a 53 54 41  |A:STA Y2:PLA:STA|
00000a90  20 59 31 0d 05 46 1a 20  50 4c 41 3a 53 54 41 20  | Y1..F. PLA:STA |
00000aa0  58 32 3a 50 4c 41 3a 53  54 41 20 58 31 0d 05 50  |X2:PLA:STA X1..P|
00000ab0  09 20 72 74 73 20 0d 05  5a 06 20 3a 0d 05 64 17  |. rts ..Z. :..d.|
00000ac0  20 2e 70 6f 69 6e 74 65  72 5f 64 69 72 65 63 74  | .pointer_direct|
00000ad0  69 6f 6e 0d 05 6e 1e 20  4c 44 58 20 23 28 2d 35  |ion..n. LDX #(-5|
00000ae0  38 20 80 20 26 46 46 29  3a 4c 44 59 20 23 26 46  |8 . &FF):LDY #&F|
00000af0  46 0d 05 78 1b 20 4c 44  41 20 23 26 38 31 3a 4a  |F..x. LDA #&81:J|
00000b00  53 52 20 26 46 46 46 34  3a 54 58 41 0d 05 82 24  |SR &FFF4:TXA...$|
00000b10  20 42 43 43 20 64 6f 77  6e 3a 4c 44 41 20 59 31  | BCC down:LDA Y1|
00000b20  3a 43 4d 50 20 23 34 3a  42 43 43 20 64 6f 77 6e  |:CMP #4:BCC down|
00000b30  0d 05 8c 16 20 53 45 43  3a 53 42 43 20 23 33 3a  |.... SEC:SBC #3:|
00000b40  53 54 41 20 59 31 0d 05  96 0b 20 2e 64 6f 77 6e  |STA Y1.... .down|
00000b50  20 0d 05 a0 1e 20 4c 44  58 20 23 28 2d 34 32 20  | .... LDX #(-42 |
00000b60  80 20 26 46 46 29 3a 4c  44 59 20 23 26 46 46 0d  |. &FF):LDY #&FF.|
00000b70  05 aa 1b 20 4c 44 41 20  23 26 38 31 3a 4a 53 52  |... LDA #&81:JSR|
00000b80  20 26 46 46 46 34 3a 54  58 41 0d 05 b4 1e 20 42  | &FFF4:TXA.... B|
00000b90  43 43 20 72 69 67 68 74  3a 4c 44 41 20 59 31 3a  |CC right:LDA Y1:|
00000ba0  43 4d 50 20 23 31 38 34  0d 05 be 20 20 42 43 53  |CMP #184...  BCS|
00000bb0  20 72 69 67 68 74 3a 43  4c 43 3a 41 44 43 20 23  | right:CLC:ADC #|
00000bc0  33 3a 53 54 41 20 59 31  0d 05 c8 0c 20 2e 72 69  |3:STA Y1.... .ri|
00000bd0  67 68 74 20 0d 05 d2 1f  20 4c 44 58 20 23 28 2d  |ght .... LDX #(-|
00000be0  31 32 32 20 80 20 26 46  46 29 3a 4c 44 59 20 23  |122 . &FF):LDY #|
00000bf0  26 46 46 0d 05 dc 1b 20  4c 44 41 20 23 26 38 31  |&FF.... LDA #&81|
00000c00  3a 4a 53 52 20 26 46 46  46 34 3a 54 58 41 0d 05  |:JSR &FFF4:TXA..|
00000c10  e6 25 20 42 43 43 20 6c  65 66 74 3a 4c 44 41 20  |.% BCC left:LDA |
00000c20  58 31 3a 43 4d 50 20 23  37 38 3a 42 43 53 20 6c  |X1:CMP #78:BCS l|
00000c30  65 66 74 0d 05 f0 16 20  43 4c 43 3a 41 44 43 20  |eft.... CLC:ADC |
00000c40  23 31 3a 53 54 41 20 58  31 0d 05 fa 0b 20 2e 6c  |#1:STA X1.... .l|
00000c50  65 66 74 20 0d 06 04 1e  20 4c 44 58 20 23 28 2d  |eft .... LDX #(-|
00000c60  32 36 20 80 20 26 46 46  29 3a 4c 44 59 20 23 26  |26 . &FF):LDY #&|
00000c70  46 46 0d 06 0e 1b 20 4c  44 41 20 23 26 38 31 3a  |FF.... LDA #&81:|
00000c80  4a 53 52 20 26 46 46 46  34 3a 54 58 41 0d 06 18  |JSR &FFF4:TXA...|
00000c90  1d 20 42 43 43 20 72 65  74 75 72 6e 3a 4c 44 41  |. BCC return:LDA|
00000ca0  20 58 31 3a 43 4d 50 20  23 31 0d 06 22 21 20 42  | X1:CMP #1.."! B|
00000cb0  43 43 20 72 65 74 75 72  6e 3a 53 45 43 3a 53 42  |CC return:SEC:SB|
00000cc0  43 20 23 31 3a 53 54 41  20 58 31 0d 06 2c 0d 20  |C #1:STA X1..,. |
00000cd0  2e 72 65 74 75 72 6e 20  0d 06 36 1f 20 4c 44 58  |.return ..6. LDX|
00000ce0  20 23 28 2d 31 30 36 20  80 20 26 46 46 29 3a 4c  | #(-106 . &FF):L|
00000cf0  44 59 20 23 26 46 46 0d  06 40 1b 20 4c 44 41 20  |DY #&FF..@. LDA |
00000d00  23 26 38 31 3a 4a 53 52  20 26 46 46 46 34 3a 54  |#&81:JSR &FFF4:T|
00000d10  58 41 0d 06 4a 18 20 42  43 43 20 64 69 72 65 63  |XA..J. BCC direc|
00000d20  74 69 6f 6e 5f 65 78 69  74 20 0d 06 54 17 20 4c  |tion_exit ..T. L|
00000d30  44 41 20 23 26 46 46 3a  53 54 41 20 69 63 6f 6e  |DA #&FF:STA icon|
00000d40  20 0d 06 5e 15 20 2e 64  69 72 65 63 74 69 6f 6e  | ..^. .direction|
00000d50  5f 65 78 69 74 20 0d 06  68 09 20 72 74 73 20 0d  |_exit ..h. rts .|
00000d60  06 72 06 20 3a 0d 06 7c  1b 20 5c 5c 5c 5c 5c 5c  |.r. :..|. \\\\\\|
00000d70  5c 5c 5c 5c 5c 5c 5c 5c  5c 5c 5c 5c 5c 5c 5c 5c  |\\\\\\\\\\\\\\\\|
00000d80  0d 06 86 1b 20 5c 5c 20  47 52 41 50 48 49 43 20  |.... \\ GRAPHIC |
00000d90  52 4f 55 54 49 4e 45 53  20 5c 5c 0d 06 90 1b 20  |ROUTINES \\.... |
00000da0  5c 5c 5c 5c 5c 5c 5c 5c  5c 5c 5c 5c 5c 5c 5c 5c  |\\\\\\\\\\\\\\\\|
00000db0  5c 5c 5c 5c 5c 5c 0d 06  9a 14 20 2e 64 69 73 70  |\\\\\\.... .disp|
00000dc0  6c 61 79 5f 69 63 6f 6e  73 20 0d 06 a4 0f 20 4c  |lay_icons .... L|
00000dd0  44 58 20 69 63 6f 6e 73  20 0d 06 ae 19 20 2e 64  |DX icons .... .d|
00000de0  69 73 70 6c 61 79 5f 69  63 6f 6e 73 5f 6c 6f 6f  |isplay_icons_loo|
00000df0  70 20 0d 06 b8 18 20 4a  53 52 20 67 65 74 5f 69  |p .... JSR get_i|
00000e00  63 6f 6e 5f 73 68 61 70  65 20 0d 06 c2 14 20 4a  |con_shape .... J|
00000e10  53 52 20 73 70 72 69 74  65 5f 73 61 76 65 0d 06  |SR sprite_save..|
00000e20  cc 18 20 2e 64 69 73 70  6c 61 79 5f 69 63 6f 6e  |.. .display_icon|
00000e30  73 5f 70 61 73 74 0d 06  d6 1f 20 4c 44 41 20 67  |s_past.... LDA g|
00000e40  70 6c 3a 43 4c 43 3a 41  44 43 20 23 34 3a 53 54  |pl:CLC:ADC #4:ST|
00000e50  41 20 67 70 6c 0d 06 e0  1b 20 4c 44 41 20 67 70  |A gpl.... LDA gp|
00000e60  68 3a 41 44 43 20 23 30  3a 53 54 41 20 67 70 68  |h:ADC #0:STA gph|
00000e70  0d 06 ea 20 20 44 45 58  3a 42 4e 45 20 64 69 73  |...  DEX:BNE dis|
00000e80  70 6c 61 79 5f 69 63 6f  6e 73 5f 6c 6f 6f 70 20  |play_icons_loop |
00000e90  0d 06 f4 09 20 72 74 73  20 0d 06 fe 06 20 3a 0d  |.... rts .... :.|
00000ea0  07 08 15 20 2e 67 65 74  5f 69 63 6f 6e 5f 73 68  |... .get_icon_sh|
00000eb0  61 70 65 20 0d 07 12 0d  20 54 59 41 3a 50 48 41  |ape .... TYA:PHA|
00000ec0  20 0d 07 1c 0c 20 4c 44  59 20 23 30 20 0d 07 26  | .... LDY #0 ..&|
00000ed0  1c 20 4c 44 41 20 28 67  70 6c 29 2c 59 3a 53 54  |. LDA (gpl),Y:ST|
00000ee0  41 20 58 31 3a 49 4e 59  20 0d 07 30 1d 20 4c 44  |A X1:INY ..0. LD|
00000ef0  41 20 28 67 70 6c 29 2c  59 3a 53 54 41 20 59 31  |A (gpl),Y:STA Y1|
00000f00  3a 49 4e 59 20 20 0d 07  3a 1c 20 4c 44 41 20 28  |:INY  ..:. LDA (|
00000f10  67 70 6c 29 2c 59 3a 53  54 41 20 58 32 3a 49 4e  |gpl),Y:STA X2:IN|
00000f20  59 20 0d 07 44 18 20 4c  44 41 20 28 67 70 6c 29  |Y ..D. LDA (gpl)|
00000f30  2c 59 3a 53 54 41 20 59  32 20 0d 07 4e 0d 20 50  |,Y:STA Y2 ..N. P|
00000f40  4c 41 3a 54 41 59 20 0d  07 58 09 20 72 74 73 20  |LA:TAY ..X. rts |
00000f50  0d 07 62 06 20 3a 0d 07  6c 0a 20 2e 62 6f 78 20  |..b. :..l. .box |
00000f60  0d 07 76 1a 20 4c 44 41  20 58 31 3a 50 48 41 3a  |..v. LDA X1:PHA:|
00000f70  4c 44 41 20 59 31 3a 50  48 41 0d 07 80 1a 20 4c  |LDA Y1:PHA.... L|
00000f80  44 41 20 58 32 3a 50 48  41 3a 4c 44 41 20 59 32  |DA X2:PHA:LDA Y2|
00000f90  3a 50 48 41 0d 07 8a 17  20 4c 44 41 20 62 6f 78  |:PHA.... LDA box|
00000fa0  31 3a 53 54 41 20 63 6f  6c 6f 72 0d 07 94 14 20  |1:STA color.... |
00000fb0  4a 53 52 20 73 70 72 69  74 65 5f 73 61 76 65 0d  |JSR sprite_save.|
00000fc0  07 9e 19 20 49 4e 43 20  59 31 3a 44 45 43 20 59  |... INC Y1:DEC Y|
00000fd0  32 3a 44 45 43 20 59 32  0d 07 a8 19 20 49 4e 43  |2:DEC Y2.... INC|
00000fe0  20 58 31 3a 44 45 43 20  58 32 3a 44 45 43 20 58  | X1:DEC X2:DEC X|
00000ff0  32 0d 07 b2 17 20 4c 44  41 20 62 6f 78 32 3a 53  |2.... LDA box2:S|
00001000  54 41 20 63 6f 6c 6f 72  0d 07 bc 14 20 4a 53 52  |TA color.... JSR|
00001010  20 73 70 72 69 74 65 5f  73 61 76 65 0d 07 c6 21  | sprite_save...!|
00001020  20 4c 44 41 20 58 31 3a  43 4c 43 3a 41 44 43 20  | LDA X1:CLC:ADC |
00001030  58 32 3a 50 48 41 3a 44  45 43 20 58 31 0d 07 d0  |X2:PHA:DEC X1...|
00001040  12 20 4c 44 41 20 23 31  3a 53 54 41 20 58 32 0d  |. LDA #1:STA X2.|
00001050  07 da 17 20 4c 44 41 20  62 6f 78 33 3a 53 54 41  |... LDA box3:STA|
00001060  20 63 6f 6c 6f 72 0d 07  e4 14 20 4a 53 52 20 73  | color.... JSR s|
00001070  70 72 69 74 65 5f 73 61  76 65 0d 07 ee 1e 20 50  |prite_save.... P|
00001080  4c 41 3a 53 54 41 20 58  31 3a 4c 44 41 20 23 31  |LA:STA X1:LDA #1|
00001090  3a 53 54 41 20 58 32 20  0d 07 f8 17 20 4c 44 41  |:STA X2 .... LDA|
000010a0  20 62 6f 78 34 3a 53 54  41 20 63 6f 6c 6f 72 0d  | box4:STA color.|
000010b0  08 02 14 20 4a 53 52 20  73 70 72 69 74 65 5f 73  |... JSR sprite_s|
000010c0  61 76 65 0d 08 0c 1a 20  50 4c 41 3a 53 54 41 20  |ave.... PLA:STA |
000010d0  59 32 3a 50 4c 41 3a 53  54 41 20 58 32 0d 08 16  |Y2:PLA:STA X2...|
000010e0  1a 20 50 4c 41 3a 53 54  41 20 59 31 3a 50 4c 41  |. PLA:STA Y1:PLA|
000010f0  3a 53 54 41 20 58 31 0d  08 20 09 20 72 74 73 20  |:STA X1.. . rts |
00001100  0d 08 2a 06 20 3a 0d 08  34 11 20 2e 72 65 73 74  |..*. :..4. .rest|
00001110  6f 72 65 5f 62 6f 78 0d  08 3e 17 20 4a 53 52 20  |ore_box..>. JSR |
00001120  73 70 72 69 74 65 5f 72  65 73 74 6f 72 65 0d 08  |sprite_restore..|
00001130  48 17 20 4a 53 52 20 73  70 72 69 74 65 5f 72 65  |H. JSR sprite_re|
00001140  73 74 6f 72 65 0d 08 52  17 20 4a 53 52 20 73 70  |store..R. JSR sp|
00001150  72 69 74 65 5f 72 65 73  74 6f 72 65 0d 08 5c 17  |rite_restore..\.|
00001160  20 4a 53 52 20 73 70 72  69 74 65 5f 72 65 73 74  | JSR sprite_rest|
00001170  6f 72 65 0d 08 66 08 20  72 74 73 0d 08 70 06 20  |ore..f. rts..p. |
00001180  3a 0d 08 7a 12 20 2e 64  72 6f 70 70 65 64 5f 62  |:..z. .dropped_b|
00001190  6f 78 20 0d 08 84 1a 20  4c 44 41 20 58 31 3a 50  |ox .... LDA X1:P|
000011a0  48 41 3a 4c 44 41 20 59  31 3a 50 48 41 0d 08 8e  |HA:LDA Y1:PHA...|
000011b0  1a 20 4c 44 41 20 58 32  3a 50 48 41 3a 4c 44 41  |. LDA X2:PHA:LDA|
000011c0  20 59 32 3a 50 48 41 0d  08 98 18 20 4c 44 41 20  | Y2:PHA.... LDA |
000011d0  64 62 6f 78 31 3a 53 54  41 20 63 6f 6c 6f 72 0d  |dbox1:STA color.|
000011e0  08 a2 14 20 4a 53 52 20  73 70 72 69 74 65 5f 73  |... JSR sprite_s|
000011f0  61 76 65 0d 08 ac 10 20  4c 44 41 20 58 32 3a 50  |ave.... LDA X2:P|
00001200  48 41 20 0d 08 b6 21 20  4c 44 41 20 58 31 3a 50  |HA ...! LDA X1:P|
00001210  48 41 3a 43 4c 43 3a 41  44 43 20 58 32 3a 53 54  |HA:CLC:ADC X2:ST|
00001220  41 20 58 31 0d 08 c0 12  20 4c 44 41 20 23 31 3a  |A X1.... LDA #1:|
00001230  53 54 41 20 58 32 0d 08  ca 1e 20 4c 44 41 20 59  |STA X2.... LDA Y|
00001240  31 3a 43 4c 43 3a 41 44  43 20 23 34 3a 53 54 41  |1:CLC:ADC #4:STA|
00001250  20 59 31 20 0d 08 d4 18  20 4c 44 41 20 64 62 6f  | Y1 .... LDA dbo|
00001260  78 32 3a 53 54 41 20 63  6f 6c 6f 72 0d 08 de 14  |x2:STA color....|
00001270  20 4a 53 52 20 73 70 72  69 74 65 5f 73 61 76 65  | JSR sprite_save|
00001280  0d 08 e8 21 20 50 4c 41  3a 53 54 41 20 58 31 3a  |...! PLA:STA X1:|
00001290  49 4e 43 20 58 31 3a 50  4c 41 3a 53 54 41 20 58  |INC X1:PLA:STA X|
000012a0  32 0d 08 f2 21 20 4c 44  41 20 59 31 3a 43 4c 43  |2...! LDA Y1:CLC|
000012b0  3a 41 44 43 20 59 32 3a  53 45 43 3a 53 42 43 20  |:ADC Y2:SEC:SBC |
000012c0  23 34 0d 08 fc 0b 20 53  54 41 20 59 31 0d 09 06  |#4.... STA Y1...|
000012d0  12 20 4c 44 41 20 23 35  3a 53 54 41 20 59 32 0d  |. LDA #5:STA Y2.|
000012e0  09 10 18 20 4c 44 41 20  64 62 6f 78 33 3a 53 54  |... LDA dbox3:ST|
000012f0  41 20 63 6f 6c 6f 72 0d  09 1a 14 20 4a 53 52 20  |A color.... JSR |
00001300  73 70 72 69 74 65 5f 73  61 76 65 0d 09 24 1a 20  |sprite_save..$. |
00001310  50 4c 41 3a 53 54 41 20  59 32 3a 50 4c 41 3a 53  |PLA:STA Y2:PLA:S|
00001320  54 41 20 58 32 0d 09 2e  1a 20 50 4c 41 3a 53 54  |TA X2.... PLA:ST|
00001330  41 20 59 31 3a 50 4c 41  3a 53 54 41 20 58 31 0d  |A Y1:PLA:STA X1.|
00001340  09 38 09 20 72 74 73 20  0d 09 42 06 20 3a 0d 09  |.8. rts ..B. :..|
00001350  4c 19 20 2e 72 65 73 74  6f 72 65 5f 64 72 6f 70  |L. .restore_drop|
00001360  70 65 64 5f 62 6f 78 0d  09 56 17 20 4a 53 52 20  |ped_box..V. JSR |
00001370  73 70 72 69 74 65 5f 72  65 73 74 6f 72 65 0d 09  |sprite_restore..|
00001380  60 17 20 4a 53 52 20 73  70 72 69 74 65 5f 72 65  |`. JSR sprite_re|
00001390  73 74 6f 72 65 0d 09 6a  17 20 4a 53 52 20 73 70  |store..j. JSR sp|
000013a0  72 69 74 65 5f 72 65 73  74 6f 72 65 0d 09 74 08  |rite_restore..t.|
000013b0  20 72 74 73 0d 09 7e 06  20 3a 0d 09 88 13 20 2e  | rts..~. :.... .|
000013c0  69 6e 76 65 72 73 65 5f  74 65 78 74 20 0d 09 92  |inverse_text ...|
000013d0  17 20 4c 44 41 20 23 26  31 31 3a 4a 53 52 20 26  |. LDA #&11:JSR &|
000013e0  46 46 45 45 0d 09 9c 15  20 4c 44 41 20 23 30 3a  |FFEE.... LDA #0:|
000013f0  4a 53 52 20 26 46 46 45  45 0d 09 a6 17 20 4c 44  |JSR &FFEE.... LD|
00001400  41 20 23 26 31 31 3a 4a  53 52 20 26 46 46 45 45  |A #&11:JSR &FFEE|
00001410  0d 09 b0 17 20 4c 44 41  20 23 31 32 39 3a 4a 53  |.... LDA #129:JS|
00001420  52 20 26 46 46 45 45 0d  09 ba 09 20 72 74 73 20  |R &FFEE.... rts |
00001430  0d 09 c4 06 20 3a 0d 09  ce 12 20 2e 6e 6f 72 6d  |.... :.... .norm|
00001440  61 6c 5f 74 65 78 74 20  0d 09 d8 17 20 4c 44 41  |al_text .... LDA|
00001450  20 23 26 31 31 3a 4a 53  52 20 26 46 46 45 45 0d  | #&11:JSR &FFEE.|
00001460  09 e2 15 20 4c 44 41 20  23 31 3a 4a 53 52 20 26  |... LDA #1:JSR &|
00001470  46 46 45 45 0d 09 ec 17  20 4c 44 41 20 23 26 31  |FFEE.... LDA #&1|
00001480  31 3a 4a 53 52 20 26 46  46 45 45 0d 09 f6 17 20  |1:JSR &FFEE.... |
00001490  4c 44 41 20 23 31 32 38  3a 4a 53 52 20 26 46 46  |LDA #128:JSR &FF|
000014a0  45 45 0d 0a 00 09 20 72  74 73 20 0d 0a 0a 06 20  |EE.... rts .... |
000014b0  3a 0d 0a 14 12 20 2e 73  70 72 69 74 65 5f 73 61  |:.... .sprite_sa|
000014c0  76 65 20 0d 0a 1e 1f 20  4c 44 41 20 70 61 73 73  |ve .... LDA pass|
000014d0  3a 43 4d 50 20 23 32 3a  42 43 43 20 73 61 76 69  |:CMP #2:BCC savi|
000014e0  6e 67 0d 0a 28 0f 20 4a  53 52 20 73 70 72 69 74  |ng..(. JSR sprit|
000014f0  65 0d 0a 32 08 20 72 74  73 0d 0a 3c 0c 20 2e 73  |e..2. rts..<. .s|
00001500  61 76 69 6e 67 0d 0a 46  0d 20 54 59 41 3a 50 48  |aving..F. TYA:PH|
00001510  41 20 0d 0a 50 10 20 49  4e 43 20 77 69 6e 64 6f  |A ..P. INC windo|
00001520  77 73 0d 0a 5a 11 20 4c  44 41 20 70 61 73 73 3a  |ws..Z. LDA pass:|
00001530  50 48 41 0d 0a 64 17 20  4c 44 41 20 23 31 3a 53  |PHA..d. LDA #1:S|
00001540  54 41 20 6d 65 6d 6f 72  79 20 0d 0a 6e 14 20 4c  |TA memory ..n. L|
00001550  44 41 20 73 74 6c 3a 53  54 41 20 70 77 6c 0d 0a  |DA stl:STA pwl..|
00001560  78 14 20 4c 44 41 20 73  74 68 3a 53 54 41 20 70  |x. LDA sth:STA p|
00001570  77 68 0d 0a 82 10 20 4a  53 52 20 73 70 72 69 74  |wh.... JSR sprit|
00001580  65 20 0d 0a 8c 26 20 4c  44 41 20 6d 65 6d 6f 72  |e ...& LDA memor|
00001590  79 3a 42 45 51 20 6e 6f  74 5f 65 6e 6f 75 67 68  |y:BEQ not_enough|
000015a0  5f 6d 65 6d 6f 72 79 20  0d 0a 96 0c 20 4c 44 59  |_memory .... LDY|
000015b0  20 23 30 20 0d 0a a0 1c  20 4c 44 41 20 58 31 3a  | #0 .... LDA X1:|
000015c0  53 54 41 20 28 73 74 6c  29 2c 59 3a 49 4e 59 20  |STA (stl),Y:INY |
000015d0  0d 0a aa 1c 20 4c 44 41  20 59 31 3a 53 54 41 20  |.... LDA Y1:STA |
000015e0  28 73 74 6c 29 2c 59 3a  49 4e 59 20 0d 0a b4 1c  |(stl),Y:INY ....|
000015f0  20 4c 44 41 20 58 32 3a  53 54 41 20 28 73 74 6c  | LDA X2:STA (stl|
00001600  29 2c 59 3a 49 4e 59 20  0d 0a be 1c 20 4c 44 41  |),Y:INY .... LDA|
00001610  20 59 32 3a 53 54 41 20  28 73 74 6c 29 2c 59 3a  | Y2:STA (stl),Y:|
00001620  49 4e 59 20 0d 0a c8 1c  20 4c 44 41 20 70 77 6c  |INY .... LDA pwl|
00001630  3a 53 54 41 20 28 73 74  6c 29 2c 59 3a 49 4e 59  |:STA (stl),Y:INY|
00001640  0d 0a d2 18 20 4c 44 41  20 70 77 68 3a 53 54 41  |.... LDA pwh:STA|
00001650  20 28 73 74 6c 29 2c 59  0d 0a dc 1f 20 4c 44 41  | (stl),Y.... LDA|
00001660  20 73 74 6c 3a 43 4c 43  3a 41 44 43 20 23 36 3a  | stl:CLC:ADC #6:|
00001670  53 54 41 20 73 74 6c 0d  0a e6 1b 20 4c 44 41 20  |STA stl.... LDA |
00001680  73 74 68 3a 41 44 43 20  23 30 3a 53 54 41 20 73  |sth:ADC #0:STA s|
00001690  74 68 0d 0a f0 11 20 50  4c 41 3a 53 54 41 20 70  |th.... PLA:STA p|
000016a0  61 73 73 0d 0a fa 0d 20  50 4c 41 3a 54 41 59 20  |ass.... PLA:TAY |
000016b0  0d 0b 04 09 20 72 74 73  20 0d 0b 0e 06 20 3a 0d  |.... rts .... :.|
000016c0  0b 18 18 20 2e 6e 6f 74  5f 65 6e 6f 75 67 68 5f  |... .not_enough_|
000016d0  6d 65 6d 6f 72 79 20 0d  0b 22 18 20 4c 44 41 20  |memory ..". LDA |
000016e0  70 77 6c 3a 50 48 41 3a  53 54 41 20 73 74 6c 0d  |pwl:PHA:STA stl.|
000016f0  0b 2c 18 20 4c 44 41 20  70 77 68 3a 50 48 41 3a  |.,. LDA pwh:PHA:|
00001700  53 54 41 20 73 74 68 0d  0b 36 10 20 44 45 43 20  |STA sth..6. DEC |
00001710  77 69 6e 64 6f 77 73 0d  0b 40 22 20 4c 44 41 20  |windows..@" LDA |
00001720  23 31 32 38 3a 53 54 41  20 70 61 73 73 3a 4a 53  |#128:STA pass:JS|
00001730  52 20 73 70 72 69 74 65  20 0d 0b 4a 16 20 4c 44  |R sprite ..J. LD|
00001740  41 20 23 37 3a 4a 53 52  20 26 46 46 45 45 20 0d  |A #7:JSR &FFEE .|
00001750  0b 54 1c 20 50 4c 41 3a  53 54 41 20 73 74 68 3a  |.T. PLA:STA sth:|
00001760  50 4c 41 3a 53 54 41 20  73 74 6c 0d 0b 5e 11 20  |PLA:STA stl..^. |
00001770  50 4c 41 3a 53 54 41 20  70 61 73 73 0d 0b 68 0d  |PLA:STA pass..h.|
00001780  20 50 4c 41 3a 54 41 59  20 0d 0b 72 09 20 72 74  | PLA:TAY ..r. rt|
00001790  73 20 0d 0b 7c 06 20 3a  0d 0b 86 15 20 2e 73 70  |s ..|. :.... .sp|
000017a0  72 69 74 65 5f 72 65 73  74 6f 72 65 20 0d 0b 90  |rite_restore ...|
000017b0  1a 20 4c 44 41 20 58 31  3a 50 48 41 3a 4c 44 41  |. LDA X1:PHA:LDA|
000017c0  20 59 31 3a 50 48 41 0d  0b 9a 1a 20 4c 44 41 20  | Y1:PHA.... LDA |
000017d0  58 32 3a 50 48 41 3a 4c  44 41 20 59 32 3a 50 48  |X2:PHA:LDA Y2:PH|
000017e0  41 0d 0b a4 10 20 4c 44  41 20 77 69 6e 64 6f 77  |A.... LDA window|
000017f0  73 0d 0b ae 1c 20 42 45  51 20 73 70 72 69 74 65  |s.... BEQ sprite|
00001800  5f 72 65 73 74 6f 72 65  5f 65 78 69 74 0d 0b b8  |_restore_exit...|
00001810  10 20 44 45 43 20 77 69  6e 64 6f 77 73 0d 0b c2  |. DEC windows...|
00001820  0d 20 54 59 41 3a 50 48  41 20 0d 0b cc 1f 20 4c  |. TYA:PHA .... L|
00001830  44 41 20 73 74 6c 3a 53  45 43 3a 53 42 43 20 23  |DA stl:SEC:SBC #|
00001840  36 3a 53 54 41 20 73 74  6c 0d 0b d6 1b 20 4c 44  |6:STA stl.... LD|
00001850  41 20 73 74 68 3a 53 42  43 20 23 30 3a 53 54 41  |A sth:SBC #0:STA|
00001860  20 73 74 68 0d 0b e0 0c  20 4c 44 59 20 23 30 20  | sth.... LDY #0 |
00001870  0d 0b ea 1c 20 4c 44 41  20 28 73 74 6c 29 2c 59  |.... LDA (stl),Y|
00001880  3a 53 54 41 20 58 31 3a  49 4e 59 20 0d 0b f4 1c  |:STA X1:INY ....|
00001890  20 4c 44 41 20 28 73 74  6c 29 2c 59 3a 53 54 41  | LDA (stl),Y:STA|
000018a0  20 59 31 3a 49 4e 59 20  0d 0b fe 1c 20 4c 44 41  | Y1:INY .... LDA|
000018b0  20 28 73 74 6c 29 2c 59  3a 53 54 41 20 58 32 3a  | (stl),Y:STA X2:|
000018c0  49 4e 59 20 0d 0c 08 1c  20 4c 44 41 20 28 73 74  |INY .... LDA (st|
000018d0  6c 29 2c 59 3a 53 54 41  20 59 32 3a 49 4e 59 20  |l),Y:STA Y2:INY |
000018e0  0d 0c 12 21 20 4c 44 41  20 28 73 74 6c 29 2c 59  |...! LDA (stl),Y|
000018f0  3a 50 48 41 3a 53 54 41  20 70 77 6c 3a 49 4e 59  |:PHA:STA pwl:INY|
00001900  20 0d 0c 1c 21 20 4c 44  41 20 28 73 74 6c 29 2c  | ...! LDA (stl),|
00001910  59 3a 53 54 41 20 73 74  68 3a 53 54 41 20 70 77  |Y:STA sth:STA pw|
00001920  68 20 0d 0c 26 11 20 50  4c 41 3a 53 54 41 20 73  |h ..&. PLA:STA s|
00001930  74 6c 20 0d 0c 30 23 20  4c 44 41 20 23 31 32 38  |tl ..0# LDA #128|
00001940  3a 53 54 41 20 70 61 73  73 3a 4a 53 52 20 73 70  |:STA pass:JSR sp|
00001950  72 69 74 65 20 20 0d 0c  3a 15 20 4c 44 41 20 70  |rite  ..:. LDA p|
00001960  77 6c 3a 53 54 41 20 73  74 6c 20 0d 0c 44 15 20  |wl:STA stl ..D. |
00001970  4c 44 41 20 70 77 68 3a  53 54 41 20 73 74 68 20  |LDA pwh:STA sth |
00001980  0d 0c 4e 0d 20 50 4c 41  3a 54 41 59 20 0d 0c 58  |..N. PLA:TAY ..X|
00001990  19 20 2e 73 70 72 69 74  65 5f 72 65 73 74 6f 72  |. .sprite_restor|
000019a0  65 5f 65 78 69 74 0d 0c  62 1a 20 50 4c 41 3a 53  |e_exit..b. PLA:S|
000019b0  54 41 20 59 32 3a 50 4c  41 3a 53 54 41 20 58 32  |TA Y2:PLA:STA X2|
000019c0  0d 0c 6c 1a 20 50 4c 41  3a 53 54 41 20 59 31 3a  |..l. PLA:STA Y1:|
000019d0  50 4c 41 3a 53 54 41 20  58 31 0d 0c 76 09 20 72  |PLA:STA X1..v. r|
000019e0  74 73 20 0d 0c 80 06 20  3a 0d 0c 8a 0d 20 2e 73  |ts .... :.... .s|
000019f0  70 72 69 74 65 20 0d 0c  94 15 20 54 59 41 3a 50  |prite .... TYA:P|
00001a00  48 41 3a 54 58 41 3a 50  48 41 20 0d 0c 9e 10 20  |HA:TXA:PHA .... |
00001a10  4c 44 41 20 59 31 3a 50  48 41 20 0d 0c a8 0c 20  |LDA Y1:PHA .... |
00001a20  4c 44 59 20 59 32 20 0d  0c b2 06 20 3a 0d 0c bc  |LDY Y2 .... :...|
00001a30  13 20 2e 73 70 72 69 74  65 5f 79 6c 6f 6f 70 20  |. .sprite_yloop |
00001a40  0d 0c c6 12 20 4a 53 52  20 70 6f 73 69 74 69 6f  |.... JSR positio|
00001a50  6e 20 0d 0c d0 0d 20 54  59 41 3a 50 48 41 20 0d  |n .... TYA:PHA .|
00001a60  0c da 0c 20 4c 44 58 20  58 32 20 0d 0c e4 0c 20  |... LDX X2 .... |
00001a70  4c 44 59 20 23 30 20 0d  0c ee 06 20 3a 0d 0c f8  |LDY #0 .... :...|
00001a80  13 20 2e 73 70 72 69 74  65 5f 78 6c 6f 6f 70 20  |. .sprite_xloop |
00001a90  0d 0d 02 1a 20 4c 44 41  20 70 61 73 73 3a 42 4d  |.... LDA pass:BM|
00001aa0  49 20 72 65 73 74 6f 72  65 20 0d 0d 0c 1d 20 43  |I restore .... C|
00001ab0  4d 50 20 23 32 3a 42 45  51 20 64 72 61 77 5f 70  |MP #2:BEQ draw_p|
00001ac0  6f 69 6e 74 65 72 20 0d  0d 16 14 20 42 43 53 20  |ointer .... BCS |
00001ad0  64 72 61 77 5f 66 69 78  65 64 20 0d 0d 20 20 20  |draw_fixed ..   |
00001ae0  43 4d 50 20 23 31 3a 42  45 51 20 64 72 61 77 5f  |CMP #1:BEQ draw_|
00001af0  73 61 76 65 5f 66 69 78  65 64 20 0d 0d 2a 06 20  |save_fixed ..*. |
00001b00  3a 0d 0d 34 18 20 2e 64  72 61 77 5f 73 61 76 65  |:..4. .draw_save|
00001b10  5f 70 6f 69 6e 74 65 72  20 0d 0d 3e 1d 20 4c 44  |_pointer ..>. LD|
00001b20  41 20 28 79 6c 62 29 2c  59 3a 53 54 41 20 28 73  |A (ylb),Y:STA (s|
00001b30  74 6c 29 2c 59 20 0d 0d  48 1b 20 4c 44 41 20 28  |tl),Y ..H. LDA (|
00001b40  63 6f 6c 6c 29 2c 59 3a  80 20 28 79 6c 62 29 2c  |coll),Y:. (ylb),|
00001b50  59 0d 0d 52 1a 20 82 20  28 79 6c 62 29 2c 59 3a  |Y..R. . (ylb),Y:|
00001b60  53 54 41 20 28 79 6c 62  29 2c 59 0d 0d 5c 1c 20  |STA (ylb),Y..\. |
00001b70  4a 4d 50 20 69 6e 63 5f  63 6f 6c 6f 75 72 5f 70  |JMP inc_colour_p|
00001b80  6f 69 6e 74 65 72 20 0d  0d 66 06 20 3a 0d 0d 70  |ointer ..f. :..p|
00001b90  16 20 2e 64 72 61 77 5f  73 61 76 65 5f 66 69 78  |. .draw_save_fix|
00001ba0  65 64 20 0d 0d 7a 1d 20  4c 44 41 20 28 79 6c 62  |ed ..z. LDA (ylb|
00001bb0  29 2c 59 3a 53 54 41 20  28 73 74 6c 29 2c 59 20  |),Y:STA (stl),Y |
00001bc0  0d 0d 84 1a 20 4c 44 41  20 63 6f 6c 6f 72 3a 53  |.... LDA color:S|
00001bd0  54 41 20 28 79 6c 62 29  2c 59 0d 0d 8e 17 20 4a  |TA (ylb),Y.... J|
00001be0  4d 50 20 69 6e 63 5f 73  74 6f 72 65 5f 6d 65 6d  |MP inc_store_mem|
00001bf0  20 0d 0d 98 06 20 3a 0d  0d a2 13 20 2e 64 72 61  | .... :.... .dra|
00001c00  77 5f 70 6f 69 6e 74 65  72 20 0d 0d ac 1e 20 4c  |w_pointer .... L|
00001c10  44 41 20 28 63 6f 6c 6c  29 2c 59 3a 53 54 41 20  |DA (coll),Y:STA |
00001c20  28 79 6c 62 29 2c 59 20  0d 0d b6 22 20 49 4e 43  |(ylb),Y ..." INC|
00001c30  20 63 6f 6c 6c 3a 42 4e  45 20 6e 6f 5f 63 6f 6c  | coll:BNE no_col|
00001c40  6f 75 72 5f 63 61 72 72  79 31 0d 0d c0 1f 20 49  |our_carry1.... I|
00001c50  4e 43 20 63 6f 6c 68 3a  2e 6e 6f 5f 63 6f 6c 6f  |NC colh:.no_colo|
00001c60  75 72 5f 63 61 72 72 79  31 0d 0d ca 1c 20 4a 4d  |ur_carry1.... JM|
00001c70  50 20 6e 6f 5f 73 74 6f  72 65 5f 6d 65 6d 5f 63  |P no_store_mem_c|
00001c80  61 72 72 79 20 0d 0d d4  06 20 3a 0d 0d de 11 20  |arry .... :.... |
00001c90  2e 64 72 61 77 5f 66 69  78 65 64 20 0d 0d e8 1b  |.draw_fixed ....|
00001ca0  20 4c 44 41 20 63 6f 6c  6f 72 3a 53 54 41 20 28  | LDA color:STA (|
00001cb0  79 6c 62 29 2c 59 20 0d  0d f2 1c 20 4a 4d 50 20  |ylb),Y .... JMP |
00001cc0  6e 6f 5f 73 74 6f 72 65  5f 6d 65 6d 5f 63 61 72  |no_store_mem_car|
00001cd0  72 79 20 0d 0d fc 06 20  3a 0d 0e 06 0e 20 2e 72  |ry .... :.... .r|
00001ce0  65 73 74 6f 72 65 20 0d  0e 10 1d 20 4c 44 41 20  |estore .... LDA |
00001cf0  28 73 74 6c 29 2c 59 3a  53 54 41 20 28 79 6c 62  |(stl),Y:STA (ylb|
00001d00  29 2c 59 20 0d 0e 1a 18  20 4a 4d 50 20 69 6e 63  |),Y .... JMP inc|
00001d10  5f 73 74 6f 72 65 5f 6d  65 6d 20 20 0d 0e 24 06  |_store_mem  ..$.|
00001d20  20 3a 0d 0e 2e 19 20 2e  69 6e 63 5f 63 6f 6c 6f  | :.... .inc_colo|
00001d30  75 72 5f 70 6f 69 6e 74  65 72 20 0d 0e 38 1f 20  |ur_pointer ..8. |
00001d40  49 4e 43 20 63 6f 6c 6c  3a 42 4e 45 20 69 6e 63  |INC coll:BNE inc|
00001d50  5f 73 74 6f 72 65 5f 6d  65 6d 0d 0e 42 0d 20 49  |_store_mem..B. I|
00001d60  4e 43 20 63 6f 6c 68 0d  0e 4c 06 20 3a 0d 0e 56  |NC colh..L. :..V|
00001d70  14 20 2e 69 6e 63 5f 73  74 6f 72 65 5f 6d 65 6d  |. .inc_store_mem|
00001d80  20 0d 0e 60 23 20 49 4e  43 20 73 74 6c 3a 42 4e  | ..`# INC stl:BN|
00001d90  45 20 6e 6f 5f 73 74 6f  72 65 5f 6d 65 6d 5f 63  |E no_store_mem_c|
00001da0  61 72 72 79 0d 0e 6a 0c  20 49 4e 43 20 73 74 68  |arry..j. INC sth|
00001db0  0d 0e 74 13 20 4c 44 41  20 73 74 68 3a 43 4d 50  |..t. LDA sth:CMP|
00001dc0  20 26 37 0d 0e 7e 1a 20  42 45 51 20 70 61 73 74  | &7..~. BEQ past|
00001dd0  5f 6d 65 6d 6f 72 79 5f  62 6f 75 6e 64 0d 0e 88  |_memory_bound...|
00001de0  18 20 2e 6e 6f 5f 73 74  6f 72 65 5f 6d 65 6d 5f  |. .no_store_mem_|
00001df0  63 61 72 72 79 0d 0e 92  06 20 3a 0d 0e 9c 1f 20  |carry.... :.... |
00001e00  4c 44 41 20 79 6c 62 3a  43 4c 43 3a 41 44 43 20  |LDA ylb:CLC:ADC |
00001e10  23 38 3a 53 54 41 20 79  6c 62 0d 0e a6 1b 20 4c  |#8:STA ylb.... L|
00001e20  44 41 20 79 68 62 3a 41  44 43 20 23 30 3a 53 54  |DA yhb:ADC #0:ST|
00001e30  41 20 79 68 62 0d 0e b0  1a 20 44 45 58 3a 42 4e  |A yhb.... DEX:BN|
00001e40  45 20 73 70 72 69 74 65  5f 78 6c 6f 6f 70 20 0d  |E sprite_xloop .|
00001e50  0e ba 13 20 49 4e 43 20  59 31 3a 50 4c 41 3a 54  |... INC Y1:PLA:T|
00001e60  41 59 0d 0e c4 19 20 44  45 59 3a 42 4e 45 20 73  |AY.... DEY:BNE s|
00001e70  70 72 69 74 65 5f 79 6c  6f 6f 70 0d 0e ce 16 20  |prite_yloop.... |
00001e80  4a 4d 50 20 73 70 72 69  74 65 5f 65 78 69 74 20  |JMP sprite_exit |
00001e90  20 0d 0e d8 18 20 2e 70  61 73 74 5f 6d 65 6d 6f  | .... .past_memo|
00001ea0  72 79 5f 62 6f 75 6e 64  20 0d 0e e2 17 20 4c 44  |ry_bound .... LD|
00001eb0  41 20 23 30 3a 53 54 41  20 6d 65 6d 6f 72 79 20  |A #0:STA memory |
00001ec0  0d 0e ec 09 20 50 4c 41  20 0d 0e f6 06 20 3a 0d  |.... PLA .... :.|
00001ed0  0f 00 12 20 2e 73 70 72  69 74 65 5f 65 78 69 74  |... .sprite_exit|
00001ee0  20 0d 0f 0a 10 20 50 4c  41 3a 53 54 41 20 59 31  | .... PLA:STA Y1|
00001ef0  20 0d 0f 14 15 20 50 4c  41 3a 54 41 58 3a 50 4c  | .... PLA:TAX:PL|
00001f00  41 3a 54 41 59 20 0d 0f  1e 09 20 72 74 73 20 0d  |A:TAY .... rts .|
00001f10  0f 28 06 20 3a 0d 0f 32  0f 20 2e 70 6f 73 69 74  |.(. :..2. .posit|
00001f20  69 6f 6e 20 0d 0f 3c 14  20 4c 44 41 20 23 30 3a  |ion ..<. LDA #0:|
00001f30  53 54 41 20 78 68 62 20  0d 0f 46 1f 20 4c 44 41  |STA xhb ..F. LDA|
00001f40  20 58 31 3a 41 53 4c 20  41 3a 52 4f 4c 20 78 68  | X1:ASL A:ROL xh|
00001f50  62 3a 41 53 4c 20 41 0d  0f 50 22 20 52 4f 4c 20  |b:ASL A..P" ROL |
00001f60  78 68 62 3a 41 53 4c 20  41 3a 52 4f 4c 20 78 68  |xhb:ASL A:ROL xh|
00001f70  62 3a 53 54 41 20 78 6c  62 0d 0f 5a 20 20 4c 44  |b:STA xlb..Z  LD|
00001f80  41 20 26 37 3a 43 4c 43  3a 41 44 43 20 78 68 62  |A &7:CLC:ADC xhb|
00001f90  3a 53 54 41 20 78 68 62  20 0d 0f 64 14 20 4c 44  |:STA xhb ..d. LD|
00001fa0  41 20 23 30 3a 53 54 41  20 79 6c 62 20 0d 0f 6e  |A #0:STA ylb ..n|
00001fb0  12 20 4c 44 41 20 59 31  3a 80 20 23 26 46 38 0d  |. LDA Y1:. #&F8.|
00001fc0  0f 78 18 20 4c 53 52 20  41 3a 4c 53 52 20 41 3a  |.x. LSR A:LSR A:|
00001fd0  53 54 41 20 79 68 62 0d  0f 82 24 20 4c 53 52 20  |STA yhb...$ LSR |
00001fe0  41 3a 4c 53 52 20 41 3a  52 4f 52 20 79 6c 62 3a  |A:LSR A:ROR ylb:|
00001ff0  43 4c 43 3a 41 44 43 20  79 68 62 0d 0f 8c 14 20  |CLC:ADC yhb.... |
00002000  41 44 43 20 78 68 62 3a  53 54 41 20 79 68 62 0d  |ADC xhb:STA yhb.|
00002010  0f 96 24 20 4c 44 41 20  59 31 3a 80 20 23 37 3a  |..$ LDA Y1:. #7:|
00002020  43 4c 43 3a 41 44 43 20  79 6c 62 3a 41 44 43 20  |CLC:ADC ylb:ADC |
00002030  78 6c 62 0d 0f a0 23 20  53 54 41 20 79 6c 62 3a  |xlb...# STA ylb:|
00002040  4c 44 41 20 23 30 3a 41  44 43 20 79 68 62 3a 53  |LDA #0:ADC yhb:S|
00002050  54 41 20 79 68 62 0d 0f  aa 09 20 72 74 73 20 0d  |TA yhb.... rts .|
00002060  0f b4 06 20 3a 0d 0f be  0c 20 2e 73 74 72 69 6e  |... :.... .strin|
00002070  67 0d 0f c8 0c 20 54 59  41 3a 50 48 41 0d 0f d2  |g.... TYA:PHA...|
00002080  0b 20 4c 44 59 20 23 30  0d 0f dc 11 20 2e 73 74  |. LDY #0.... .st|
00002090  72 69 6e 67 5f 6c 6f 6f  70 0d 0f e6 11 20 4c 44  |ring_loop.... LD|
000020a0  41 20 28 6d 65 73 6c 29  2c 59 0d 0f f0 1d 20 43  |A (mesl),Y.... C|
000020b0  4d 50 20 23 26 46 46 3a  42 45 51 20 73 74 72 69  |MP #&FF:BEQ stri|
000020c0  6e 67 5f 65 78 69 74 0d  0f fa 0e 20 4a 53 52 20  |ng_exit.... JSR |
000020d0  26 46 46 45 33 0d 10 04  08 20 49 4e 59 0d 10 0e  |&FFE3.... INY...|
000020e0  1d 20 43 50 59 20 23 26  46 46 3a 42 4e 45 20 73  |. CPY #&FF:BNE s|
000020f0  74 72 69 6e 67 5f 6c 6f  6f 70 0d 10 18 11 20 2e  |tring_loop.... .|
00002100  73 74 72 69 6e 67 5f 65  78 69 74 0d 10 22 0c 20  |string_exit..". |
00002110  50 4c 41 3a 54 41 59 0d  10 2c 08 20 72 74 73 0d  |PLA:TAY..,. rts.|
00002120  10 36 06 20 3a 0d 10 40  1b 20 5c 5c 5c 5c 5c 5c  |.6. :..@. \\\\\\|
00002130  5c 5c 5c 5c 5c 5c 5c 5c  5c 5c 5c 5c 5c 5c 5c 5c  |\\\\\\\\\\\\\\\\|
00002140  0d 10 4a 1b 20 5c 5c 20  44 45 53 4b 54 4f 50 20  |..J. \\ DESKTOP |
00002150  48 41 4e 44 4c 45 52 20  5c 5c 5c 0d 10 54 1b 20  |HANDLER \\\..T. |
00002160  5c 5c 5c 5c 5c 5c 5c 5c  5c 5c 5c 5c 5c 5c 5c 5c  |\\\\\\\\\\\\\\\\|
00002170  5c 5c 5c 5c 5c 5c 0d 10  5e 0d 20 2e 64 65 73 6b  |\\\\\\..^. .desk|
00002180  74 6f 70 0d 10 68 1b 20  4a 53 52 20 64 65 73 6b  |top..h. JSR desk|
00002190  74 6f 70 5f 62 61 63 6b  67 72 6f 75 6e 64 0d 10  |top_background..|
000021a0  72 1a 20 4a 53 52 20 64  65 73 6b 74 6f 70 5f 69  |r. JSR desktop_i|
000021b0  63 6f 6e 5f 6c 69 6e 65  0d 10 7c 1b 20 4a 53 52  |con_line..|. JSR|
000021c0  20 64 65 73 6b 74 6f 70  5f 69 63 6f 6e 73 5f 64  | desktop_icons_d|
000021d0  61 74 61 0d 10 86 26 20  4c 44 41 20 23 32 3a 53  |ata...& LDA #2:S|
000021e0  54 41 20 70 61 73 73 3a  4a 53 52 20 64 69 73 70  |TA pass:JSR disp|
000021f0  6c 61 79 5f 69 63 6f 6e  73 0d 10 90 21 20 4c 44  |lay_icons...! LD|
00002200  41 20 23 36 30 3a 53 54  41 20 58 31 3a 4c 44 41  |A #60:STA X1:LDA|
00002210  20 23 36 3a 53 54 41 20  59 31 0d 10 9a 0f 20 2e  | #6:STA Y1.... .|
00002220  64 65 73 6b 5f 6c 6f 6f  70 0d 10 a4 1b 20 4a 53  |desk_loop.... JS|
00002230  52 20 64 65 73 6b 74 6f  70 5f 69 63 6f 6e 73 5f  |R desktop_icons_|
00002240  64 61 74 61 0d 10 ae 10  20 4a 53 52 20 70 6f 69  |data.... JSR poi|
00002250  6e 74 65 72 0d 10 b8 19  20 4c 44 41 20 69 63 6f  |nter.... LDA ico|
00002260  6e 73 3a 53 54 41 20 69  63 6f 6e 73 32 0d 10 c2  |ns:STA icons2...|
00002270  18 20 49 4e 43 20 69 63  6f 6e 73 32 3a 4c 44 41  |. INC icons2:LDA|
00002280  20 69 63 6f 6e 0d 10 cc  1d 20 43 4d 50 20 69 63  | icon.... CMP ic|
00002290  6f 6e 73 32 3a 42 43 53  20 64 65 73 6b 5f 6c 6f  |ons2:BCS desk_lo|
000022a0  6f 70 0d 10 d6 08 20 72  74 73 0d 10 e0 06 20 3a  |op.... rts.... :|
000022b0  0d 10 ea 1b 20 5c 5c 5c  5c 5c 5c 5c 5c 5c 5c 5c  |.... \\\\\\\\\\\|
000022c0  5c 5c 5c 5c 5c 5c 5c 5c  5c 5c 5c 0d 10 f4 1b 20  |\\\\\\\\\\\.... |
000022d0  5c 5c 20 44 45 53 4b 54  4f 50 20 52 4f 55 54 49  |\\ DESKTOP ROUTI|
000022e0  4e 45 53 20 5c 5c 0d 10  fe 1b 20 5c 5c 5c 5c 5c  |NES \\.... \\\\\|
000022f0  5c 5c 5c 5c 5c 5c 5c 5c  5c 5c 5c 5c 5c 5c 5c 5c  |\\\\\\\\\\\\\\\\|
00002300  5c 0d 11 08 19 20 2e 64  65 73 6b 74 6f 70 5f 62  |\.... .desktop_b|
00002310  61 63 6b 67 72 6f 75 6e  64 20 0d 11 12 16 20 4c  |ackground .... L|
00002320  44 41 20 23 31 37 30 3a  53 54 41 20 26 33 35 38  |DA #170:STA &358|
00002330  0d 11 1c 13 20 4c 44 41  20 26 32 3a 53 54 41 20  |.... LDA &2:STA |
00002340  73 74 6c 0d 11 26 1e 20  4c 44 41 20 26 33 3a 43  |stl..&. LDA &3:C|
00002350  4c 43 3a 41 44 43 20 23  31 3a 53 54 41 20 73 74  |LC:ADC #1:STA st|
00002360  68 0d 11 30 17 20 4c 44  41 20 23 30 3a 53 54 41  |h..0. LDA #0:STA|
00002370  20 77 69 6e 64 6f 77 73  0d 11 3a 1f 20 4c 44 41  | windows..:. LDA|
00002380  20 23 73 63 72 65 65 6e  20 83 20 32 35 36 3a 53  | #screen . 256:S|
00002390  54 41 20 6d 65 73 6c 0d  11 44 1f 20 4c 44 41 20  |TA mesl..D. LDA |
000023a0  23 73 63 72 65 65 6e 20  81 20 32 35 36 3a 53 54  |#screen . 256:ST|
000023b0  41 20 6d 65 73 68 0d 11  4e 0f 20 4a 53 52 20 73  |A mesh..N. JSR s|
000023c0  74 72 69 6e 67 0d 11 58  09 20 72 74 73 20 0d 11  |tring..X. rts ..|
000023d0  62 06 20 3a 0d 11 6c 17  20 2e 64 65 73 6b 74 6f  |b. :..l. .deskto|
000023e0  70 5f 69 63 6f 6e 5f 6c  69 6e 65 0d 11 76 19 20  |p_icon_line..v. |
000023f0  4c 44 41 20 23 30 3a 53  54 41 20 58 31 3a 53 54  |LDA #0:STA X1:ST|
00002400  41 20 59 31 0d 11 80 22  20 4c 44 41 20 23 38 30  |A Y1..." LDA #80|
00002410  3a 53 54 41 20 58 32 3a  4c 44 41 20 23 32 33 3a  |:STA X2:LDA #23:|
00002420  53 54 41 20 59 32 0d 11  8a 17 20 4c 44 41 20 23  |STA Y2.... LDA #|
00002430  32 35 35 3a 53 54 41 20  63 6f 6c 6f 72 0d 11 94  |255:STA color...|
00002440  24 20 4c 44 41 20 23 33  3a 53 54 41 20 70 61 73  |$ LDA #3:STA pas|
00002450  73 3a 4a 53 52 20 73 70  72 69 74 65 5f 73 61 76  |s:JSR sprite_sav|
00002460  65 0d 11 9e 09 20 72 74  73 20 0d 11 a8 06 20 3a  |e.... rts .... :|
00002470  0d 11 b2 18 20 2e 64 65  73 6b 74 6f 70 5f 69 63  |.... .desktop_ic|
00002480  6f 6e 73 5f 64 61 74 61  0d 11 bc 15 20 4c 44 41  |ons_data.... LDA|
00002490  20 23 32 3a 53 54 41 20  69 63 6f 6e 73 0d 11 c6  | #2:STA icons...|
000024a0  1d 20 4c 44 41 20 23 63  61 6c 63 5f 69 63 6f 6e  |. LDA #calc_icon|
000024b0  5f 70 6f 73 20 83 20 32  35 36 0d 11 d0 0c 20 53  |_pos . 256.... S|
000024c0  54 41 20 67 70 6c 0d 11  da 1d 20 4c 44 41 20 23  |TA gpl.... LDA #|
000024d0  63 61 6c 63 5f 69 63 6f  6e 5f 70 6f 73 20 81 20  |calc_icon_pos . |
000024e0  32 35 36 0d 11 e4 0c 20  53 54 41 20 67 70 68 0d  |256.... STA gph.|
000024f0  11 ee 1e 20 4c 44 41 20  23 63 61 6c 63 5f 69 63  |... LDA #calc_ic|
00002500  6f 6e 5f 64 61 74 61 20  83 20 32 35 36 0d 11 f8  |on_data . 256...|
00002510  0d 20 53 54 41 20 63 6f  6c 6c 0d 12 02 1e 20 4c  |. STA coll.... L|
00002520  44 41 20 23 63 61 6c 63  5f 69 63 6f 6e 5f 64 61  |DA #calc_icon_da|
00002530  74 61 20 81 20 32 35 36  0d 12 0c 0d 20 53 54 41  |ta . 256.... STA|
00002540  20 63 6f 6c 68 0d 12 16  09 20 72 74 73 20 0d 12  | colh.... rts ..|
00002550  20 06 20 3a 0d 12 2a 1b  20 5c 5c 5c 5c 5c 5c 5c  | . :..*. \\\\\\\|
00002560  5c 5c 5c 5c 5c 5c 5c 5c  5c 5c 5c 5c 5c 5c 5c 0d  |\\\\\\\\\\\\\\\.|
00002570  12 34 18 20 5c 5c 20 44  45 53 4b 20 43 48 4f 49  |.4. \\ DESK CHOI|
00002580  43 45 20 dc 20 5c 5c 0d  12 3e 1b 20 5c 5c 5c 5c  |CE . \\..>. \\\\|
00002590  5c 5c 5c 5c 5c 5c 5c 5c  5c 5c 5c 5c 5c 5c 5c 5c  |\\\\\\\\\\\\\\\\|
000025a0  5c 5c 0d 12 48 14 20 2e  63 61 6c 63 5f 69 63 6f  |\\..H. .calc_ico|
000025b0  6e 5f 70 6f 73 20 0d 12  52 23 20 45 51 55 42 20  |n_pos ..R# EQUB |
000025c0  30 35 3a 45 51 55 42 20  32 3a 45 51 55 42 20 34  |05:EQUB 2:EQUB 4|
000025d0  3a 45 51 55 42 20 31 39  20 0d 12 5c 22 20 45 51  |:EQUB 19 ..\" EQ|
000025e0  55 42 20 31 36 3a 45 51  55 42 20 32 3a 45 51 55  |UB 16:EQUB 2:EQU|
000025f0  42 20 34 3a 45 51 55 42  20 31 39 0d 12 66 07 20  |B 4:EQUB 19..f. |
00002600  3a 20 0d 12 70 15 20 2e  63 61 6c 63 5f 69 63 6f  |: ..p. .calc_ico|
00002610  6e 5f 64 61 74 61 20 0d  12 7a 14 20 45 51 55 44  |n_data ..z. EQUD|
00002620  20 26 30 31 30 30 30 30  38 30 20 0d 12 84 14 20  | &01000080 .... |
00002630  45 51 55 44 20 26 46 45  46 46 46 46 37 46 20 0d  |EQUD &FEFFFF7F .|
00002640  12 8e 14 20 45 51 55 44  20 26 30 45 30 30 30 30  |... EQUD &0E0000|
00002650  37 30 20 0d 12 98 14 20  45 51 55 44 20 26 43 45  |70 .... EQUD &CE|
00002660  30 31 30 30 37 30 20 0d  12 a2 14 20 45 51 55 44  |010070 .... EQUD|
00002670  20 26 30 45 30 30 30 30  37 30 20 0d 12 ac 14 20  | &0E000070 .... |
00002680  45 51 55 44 20 26 46 45  46 46 46 46 37 46 20 0d  |EQUD &FEFFFF7F .|
00002690  12 b6 14 20 45 51 55 44  20 26 38 45 43 37 45 33  |... EQUD &8EC7E3|
000026a0  37 31 20 0d 12 c0 14 20  45 51 55 44 20 26 38 45  |71 .... EQUD &8E|
000026b0  43 37 45 33 37 31 20 0d  12 ca 14 20 45 51 55 44  |C7E371 .... EQUD|
000026c0  20 26 46 45 46 46 46 46  37 46 20 0d 12 d4 14 20  | &FEFFFF7F .... |
000026d0  45 51 55 44 20 26 38 45  43 37 45 33 37 31 20 0d  |EQUD &8EC7E371 .|
000026e0  12 de 14 20 45 51 55 44  20 26 38 45 43 37 45 33  |... EQUD &8EC7E3|
000026f0  37 31 20 0d 12 e8 14 20  45 51 55 44 20 26 46 45  |71 .... EQUD &FE|
00002700  46 46 46 46 37 46 20 0d  12 f2 14 20 45 51 55 44  |FFFF7F .... EQUD|
00002710  20 26 38 45 43 37 45 33  37 31 20 0d 12 fc 14 20  | &8EC7E371 .... |
00002720  45 51 55 44 20 26 38 45  43 37 45 33 37 31 20 0d  |EQUD &8EC7E371 .|
00002730  13 06 14 20 45 51 55 44  20 26 46 45 46 46 46 46  |... EQUD &FEFFFF|
00002740  37 46 20 0d 13 10 14 20  45 51 55 44 20 26 38 45  |7F .... EQUD &8E|
00002750  43 37 45 33 37 31 20 0d  13 1a 14 20 45 51 55 44  |C7E371 .... EQUD|
00002760  20 26 38 45 43 37 45 33  37 31 20 0d 13 24 14 20  | &8EC7E371 ..$. |
00002770  45 51 55 44 20 26 46 45  46 46 46 46 37 46 20 0d  |EQUD &FEFFFF7F .|
00002780  13 2e 14 20 45 51 55 44  20 26 38 30 30 30 30 30  |... EQUD &800000|
00002790  30 31 20 0d 13 38 18 20  2e 63 61 6c 65 6e 64 61  |01 ..8. .calenda|
000027a0  72 5f 69 63 6f 6e 5f 64  61 74 61 0d 13 42 13 20  |r_icon_data..B. |
000027b0  45 51 55 44 20 26 46 46  44 44 44 44 46 44 0d 13  |EQUD &FFDDDDFD..|
000027c0  4c 13 20 45 51 55 44 20  26 30 33 30 30 30 30 30  |L. EQUD &0300000|
000027d0  30 0d 13 56 13 20 45 51  55 44 20 26 46 42 44 44  |0..V. EQUD &FBDD|
000027e0  44 44 37 44 0d 13 60 13  20 45 51 55 44 20 26 46  |DD7D..`. EQUD &F|
000027f0  38 46 46 46 46 37 46 0d  13 6a 13 20 45 51 55 44  |8FFFF7F..j. EQUD|
00002800  20 26 46 38 46 46 46 46  37 46 0d 13 74 13 20 45  | &F8FFFF7F..t. E|
00002810  51 55 44 20 26 46 38 46  46 46 43 37 46 0d 13 7e  |QUD &F8FFFC7F..~|
00002820  13 20 45 51 55 44 20 26  46 38 46 46 46 43 37 46  |. EQUD &F8FFFC7F|
00002830  0d 13 88 13 20 45 51 55  44 20 26 46 38 46 46 46  |.... EQUD &F8FFF|
00002840  43 37 46 0d 13 92 13 20  45 51 55 44 20 26 46 38  |C7F.... EQUD &F8|
00002850  46 46 46 43 37 46 0d 13  9c 13 20 45 51 55 44 20  |FFFC7F.... EQUD |
00002860  26 46 38 46 46 46 43 37  46 0d 13 a6 13 20 45 51  |&F8FFFC7F.... EQ|
00002870  55 44 20 26 46 38 46 46  46 43 37 46 0d 13 b0 13  |UD &F8FFFC7F....|
00002880  20 45 51 55 44 20 26 46  38 46 46 46 43 37 46 0d  | EQUD &F8FFFC7F.|
00002890  13 ba 13 20 45 51 55 44  20 26 46 38 46 46 46 43  |... EQUD &F8FFFC|
000028a0  37 46 0d 13 c4 13 20 45  51 55 44 20 26 46 38 46  |7F.... EQUD &F8F|
000028b0  46 46 43 37 46 0d 13 ce  13 20 45 51 55 44 20 26  |FFC7F.... EQUD &|
000028c0  46 38 46 46 46 43 37 46  0d 13 d8 13 20 45 51 55  |F8FFFC7F.... EQU|
000028d0  44 20 26 46 38 46 46 46  46 37 46 0d 13 e2 13 20  |D &F8FFFF7F.... |
000028e0  45 51 55 44 20 26 46 38  46 46 46 46 37 46 0d 13  |EQUD &F8FFFF7F..|
000028f0  ec 13 20 45 51 55 44 20  26 30 30 30 30 30 30 30  |.. EQUD &0000000|
00002900  30 0d 13 f6 13 20 45 51  55 44 20 26 30 30 30 30  |0.... EQUD &0000|
00002910  30 30 46 30 0d 14 00 05  20 0d 14 0a 1b 20 5c 5c  |00F0.... .... \\|
00002920  5c 5c 5c 5c 5c 5c 5c 5c  5c 5c 5c 5c 5c 5c 5c 5c  |\\\\\\\\\\\\\\\\|
00002930  5c 5c 5c 5c 0d 14 14 18  20 5c 5c 5c 5c 20 50 4f  |\\\\.... \\\\ PO|
00002940  49 4e 54 45 52 20 dc 20  5c 5c 5c 5c 0d 14 1e 1b  |INTER . \\\\....|
00002950  20 5c 5c 5c 5c 5c 5c 5c  5c 5c 5c 5c 5c 5c 5c 5c  | \\\\\\\\\\\\\\\|
00002960  5c 5c 5c 5c 5c 5c 5c 0d  14 28 12 20 2e 70 6f 69  |\\\\\\\..(. .poi|
00002970  6e 74 65 72 5f 64 61 74  61 0d 14 32 13 20 45 51  |nter_data..2. EQ|
00002980  55 44 20 26 30 30 37 38  30 30 36 30 0d 14 3c 13  |UD &00780060..<.|
00002990  20 45 51 55 44 20 26 43  30 37 46 30 30 37 45 0d  | EQUD &C07F007E.|
000029a0  14 46 13 20 45 51 55 44  20 26 45 30 37 46 46 30  |.F. EQUD &E07FF0|
000029b0  37 46 0d 14 50 13 20 45  51 55 44 20 26 43 30 36  |7F..P. EQUD &C06|
000029c0  33 38 30 37 46 0d 14 5a  13 20 45 51 55 44 20 26  |3807F..Z. EQUD &|
000029d0  46 30 30 30 45 30 30 31  0d 14 64 13 20 45 51 55  |F000E001..d. EQU|
000029e0  44 20 26 33 43 30 30 37  38 30 30 0d 14 6e 0f 20  |D &3C007800..n. |
000029f0  45 51 55 57 20 26 31 38  30 30 0d 14 78 05 20 0d  |EQUW &1800..x. .|
00002a00  14 82 0c 20 2e 73 63 72  65 65 6e 0d 14 8c 13 20  |... .screen.... |
00002a10  45 51 55 44 20 26 30 30  30 31 31 37 30 43 0d 14  |EQUD &0001170C..|
00002a20  96 13 20 45 51 55 44 20  26 30 30 30 30 30 30 30  |.. EQUD &0000000|
00002a30  30 0d 14 a0 0f 20 45 51  55 57 20 26 30 30 30 30  |0.... EQUW &0000|
00002a40  0d 14 aa 0d 20 45 51 55  42 20 26 30 30 0d 14 b4  |.... EQUB &00...|
00002a50  13 20 45 51 55 44 20 26  30 37 30 39 30 30 31 37  |. EQUD &07090017|
00002a60  0d 14 be 13 20 45 51 55  44 20 26 30 30 30 30 30  |.... EQUD &00000|
00002a70  30 30 30 0d 14 c8 0f 20  45 51 55 57 20 26 30 30  |000.... EQUW &00|
00002a80  30 30 0d 14 d2 13 20 45  51 55 44 20 26 32 36 30  |00.... EQUD &260|
00002a90  34 30 30 31 37 0d 14 dc  13 20 45 51 55 44 20 26  |40017.... EQUD &|
00002aa0  30 30 30 30 30 30 30 30  0d 14 e6 0f 20 45 51 55  |00000000.... EQU|
00002ab0  57 20 26 30 30 30 30 0d  14 f0 13 20 45 51 55 44  |W &0000.... EQUD|
00002ac0  20 26 31 46 30 37 30 30  31 37 0d 14 fa 13 20 45  | &1F070017.... E|
00002ad0  51 55 44 20 26 30 30 30  30 30 30 30 30 0d 15 04  |QUD &00000000...|
00002ae0  0f 20 45 51 55 57 20 26  30 30 30 30 0d 15 0e 0d  |. EQUW &0000....|
00002af0  20 45 51 55 42 20 26 46  46 0d 15 18 05 20 0d 15  | EQUB &FF.... ..|
00002b00  22 05 20 0d 15 2c 0e 20  2e 63 6f 64 65 5f 65 6e  |". ..,. .code_en|
00002b10  64 0d 15 36 05 20 0d 15  40 05 20 0d 15 4a 07 20  |d..6. ..@. ..J. |
00002b20  5d 20 0d 15 54 0c 20 ed  20 63 6f 64 65 20 0d ff  |] ..T. . code ..|
00002b30