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

L-2-I

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-I
Read OK:
File size: 15FC bytes
Load address: FFFFFB43
Exec address: 6D398864
Duplicates

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

File contents
   10 REM   Listing I
   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 icon=&63
  190 mesl=&70
  200 mesh=&71
  210 :
  220 FOR code=0 TO 2 STEP 2
  230 P%=&1900
  240 [OPT code 
  250 :
  260 .set_pointer_size
  270 LDA #2:STA X2:LDA #13:STA Y2
  280 rts 
  290 :
  300 .pointer_on
  310 LDA #pointer_data MOD 256
  320 STA coll
  330 LDA #pointer_data DIV 256
  340 STA colh
  350 LDA #0:STA pass:JSR sprite_save
  360 rts
  370 :
  380 .pointer_off
  390 JSR sprite_restore 
  400 rts 
  410 :
  420 .pointer_direction
  430 LDX #(-58 AND &FF):LDY #&FF
  440 LDA #&81:JSR &FFF4:TXA
  450 BCC down:LDA Y1:CMP #4:BCC down
  460 SEC:SBC #3:STA Y1
  470 .down 
  480 LDX #(-42 AND &FF):LDY #&FF
  490 LDA #&81:JSR &FFF4:TXA
  500 BCC right:LDA Y1:CMP #184
  510 BCS right:CLC:ADC #3:STA Y1
  520 .right 
  530 LDX #(-122 AND &FF):LDY #&FF
  540 LDA #&81:JSR &FFF4:TXA
  550 BCC left:LDA X1:CMP #78:BCS left
  560 CLC:ADC #1:STA X1
  570 .left 
  580 LDX #(-26 AND &FF):LDY #&FF
  590 LDA #&81:JSR &FFF4:TXA
  600 BCC return:LDA X1:CMP #1
  610 BCC return:SEC:SBC #1:STA X1
  620 .return 
  630 LDX #(-106 AND &FF):LDY #&FF
  640 LDA #&81:JSR &FFF4:TXA
  650 BCC direction_exit 
  660 LDA #&FF:STA icon 
  670 .direction_exit 
  680 rts 
  690 :
  700 .sprite_save 
  710 LDA pass:CMP #2:BCC saving
  720 JSR sprite
  730 rts
  740 .saving
  750 TYA:PHA 
  760 INC windows
  770 LDA pass:PHA
  780 LDA #1:STA memory 
  790 LDA stl:STA pwl
  800 LDA sth:STA pwh
  810 JSR sprite 
  820 LDA memory:BEQ not_enough_memory 
  830 LDY #0 
  840 LDA X1:STA (stl),Y:INY 
  850 LDA Y1:STA (stl),Y:INY 
  860 LDA X2:STA (stl),Y:INY 
  870 LDA Y2:STA (stl),Y:INY 
  880 LDA pwl:STA (stl),Y:INY
  890 LDA pwh:STA (stl),Y
  900 LDA stl:CLC:ADC #6:STA stl
  910 LDA sth:ADC #0:STA sth
  920 PLA:STA pass
  930 PLA:TAY 
  940 rts 
  950 :
  960 .not_enough_memory 
  970 LDA pwl:PHA:STA stl
  980 LDA pwh:PHA:STA sth
  990 DEC windows
 1000 LDA #128:STA pass:JSR sprite 
 1010 LDA #7:JSR &FFEE 
 1020 PLA:STA sth:PLA:STA stl
 1030 PLA:STA pass
 1040 PLA:TAY 
 1050 rts 
 1060 :
 1070 .sprite_restore 
 1080 LDA X1:PHA:LDA Y1:PHA
 1090 LDA X2:PHA:LDA Y2:PHA
 1100 LDA windows
 1110 BEQ sprite_restore_exit
 1120 DEC windows
 1130 TYA:PHA 
 1140 LDA stl:SEC:SBC #6:STA stl
 1150 LDA sth:SBC #0:STA sth
 1160 LDY #0 
 1170 LDA (stl),Y:STA X1:INY 
 1180 LDA (stl),Y:STA Y1:INY 
 1190 LDA (stl),Y:STA X2:INY 
 1200 LDA (stl),Y:STA Y2:INY 
 1210 LDA (stl),Y:PHA:STA pwl:INY 
 1220 LDA (stl),Y:STA sth:STA pwh 
 1230 PLA:STA stl 
 1240 LDA #128:STA pass:JSR sprite  
 1250 LDA pwl:STA stl 
 1260 LDA pwh:STA sth 
 1270 PLA:TAY 
 1280 .sprite_restore_exit
 1290 PLA:STA Y2:PLA:STA X2
 1300 PLA:STA Y1:PLA:STA X1
 1310 rts 
 1320 :
 1330 .sprite 
 1340 TYA:PHA:TXA:PHA 
 1350 LDA Y1:PHA 
 1360 LDY Y2 
 1370 :
 1380 .sprite_yloop 
 1390 JSR position 
 1400 TYA:PHA 
 1410 LDX X2 
 1420 LDY #0 
 1430 :
 1440 .sprite_xloop 
 1450 LDA pass:BMI restore 
 1460 CMP #2:BEQ draw_pointer 
 1470 BCS draw_fixed 
 1480 CMP #1:BEQ draw_save_fixed 
 1490 :
 1500 .draw_save_pointer 
 1510 LDA (ylb),Y:STA (stl),Y 
 1520 LDA (coll),Y:STA (ylb),Y
 1530 JMP inc_colour_pointer 
 1540 :
 1550 .draw_save_fixed 
 1560 LDA (ylb),Y:STA (stl),Y 
 1570 LDA color:STA (ylb),Y
 1580 JMP inc_store_mem 
 1590 :
 1600 .draw_pointer 
 1610 LDA (coll),Y:STA (ylb),Y 
 1620 INC coll:BNE no_colour_carry1
 1630 INC colh:.no_colour_carry1
 1640 JMP no_store_mem_carry 
 1650 :
 1660 .draw_fixed 
 1670 LDA color:STA (ylb),Y 
 1680 JMP no_store_mem_carry 
 1690 :
 1700 .restore 
 1710 LDA (stl),Y:STA (ylb),Y 
 1720 JMP inc_store_mem  
 1730 :
 1740 .inc_colour_pointer 
 1750 INC coll:BNE inc_store_mem
 1760 INC colh
 1770 :
 1780 .inc_store_mem 
 1790 INC stl:BNE no_store_mem_carry
 1800 INC sth
 1810 LDA sth:CMP &7
 1820 BEQ past_memory_bound
 1830 .no_store_mem_carry
 1840 :
 1850 LDA ylb:CLC:ADC #8:STA ylb
 1860 LDA yhb:ADC #0:STA yhb
 1870 DEX:BNE sprite_xloop 
 1880 INC Y1:PLA:TAY
 1890 DEY:BNE sprite_yloop
 1900 JMP sprite_exit  
 1910 :
 1920 .past_memory_bound 
 1930 LDA #0:STA memory 
 1940 PLA 
 1950 :
 1960 .sprite_exit 
 1970 PLA:STA Y1 
 1980 PLA:TAX:PLA:TAY 
 1990 rts 
 2000 :
 2010 .position 
 2020 LDA #0:STA xhb 
 2030 LDA X1:ASL A:ROL xhb:ASL A
 2040 ROL xhb:ASL A:ROL xhb:STA xlb
 2050 LDA &7:CLC:ADC xhb:STA xhb 
 2060 LDA #0:STA ylb 
 2070 LDA Y1:AND #&F8
 2080 LSR A:LSR A:STA yhb
 2090 LSR A:LSR A:ROR ylb:CLC:ADC yhb
 2100 ADC xhb:STA yhb
 2110 LDA Y1:AND #7:CLC:ADC ylb:ADC xlb
 2120 STA ylb:LDA #0:ADC yhb:STA yhb
 2130 rts 
 2140 :
 2150 .string
 2160 TYA:PHA
 2170 LDY #0
 2180 .string_loop
 2190 LDA (mesl),Y
 2200 CMP #&FF:BEQ string_exit
 2210 JSR &FFE3
 2220 INY
 2230 CPY #&FF:BNE string_loop
 2240 .string_exit
 2250 PLA:TAY
 2260 rts
 2270 :
 2280 .desktop
 2290 JSR desktop_background
 2300 JSR desktop_icon_line
 2310 JSR set_pointer_size
 2320 LDA #60:STA X1:LDA #6:STA Y1
 2330 LDA #1:STA icon
 2340 .desk_loop
 2350 JSR pointer_on
 2360 JSR pointer_off
 2370 JSR pointer_direction
 2380 LDA icon:CMP #&FF:BNE desk_loop
 2390 rts
 2400 :
 2410 .desktop_background 
 2420 LDA #170:STA &358
 2430 LDA &2:STA stl
 2440 LDA &3:CLC:ADC #1:STA sth
 2450 LDA #0:STA windows
 2460 LDA #screen MOD 256:STA mesl
 2470 LDA #screen DIV 256:STA mesh
 2480 JSR string
 2490 rts 
 2500 :
 2510 .desktop_icon_line
 2520 LDA #0:STA X1:STA Y1
 2530 LDA #80:STA X2:LDA #23:STA Y2
 2540 LDA #255:STA color
 2550 LDA #3:STA pass:JSR sprite_save
 2560 rts 
 2570 :
 2580 .pointer_data
 2590 EQUD &00780060
 2600 EQUD &C07F007E
 2610 EQUD &E07FF07F
 2620 EQUD &C063807F
 2630 EQUD &F000E001
 2640 EQUD &3C007800
 2650 EQUW &1800
 2660 :
 2670 .screen
 2680 EQUD &0001170C
 2690 EQUD &00000000
 2700 EQUW &0000
 2710 EQUB &00
 2720 EQUD &07090017
 2730 EQUD &00000000
 2740 EQUW &0000
 2750 EQUD &26040017
 2760 EQUD &00000000
 2770 EQUW &0000
 2780 EQUD &1F070017
 2790 EQUD &00000000
 2800 EQUW &0000
 2810 EQUB &FF
 2820 :
 2830 .code_end
 2840 :
 2850 ] 
 2860 NEXT code 
 2870 CALL desktop

 �   Listing I
 �   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
�
 icon=&63
�
 mesl=&70
�
 mesh=&71
� :
� � code=0 � 2 � 2
�
 P%=&1900
� [OPT code 
� :
 .set_pointer_size
! LDA #2:STA X2:LDA #13:STA Y2
	 rts 
" :
, .pointer_on
6 LDA #pointer_data � 256
@
 STA coll
J LDA #pointer_data � 256
T
 STA colh
^$ LDA #0:STA pass:JSR sprite_save
h rts
r :
| .pointer_off
� JSR sprite_restore 
�	 rts 
� :
� .pointer_direction
� LDX #(-58 � &FF):LDY #&FF
� 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
0 CLC:ADC #1:STA X1
: .left 
D LDX #(-26 � &FF):LDY #&FF
N LDA #&81:JSR &FFF4:TXA
X BCC return:LDA X1:CMP #1
b! BCC return:SEC:SBC #1:STA X1
l
 .return 
v LDX #(-106 � &FF):LDY #&FF
� LDA #&81:JSR &FFF4:TXA
� BCC direction_exit 
� LDA #&FF:STA icon 
� .direction_exit 
�	 rts 
� :
� .sprite_save 
� LDA pass:CMP #2:BCC saving
� JSR sprite
� rts
� .saving
�
 TYA:PHA 
� INC windows
 LDA pass:PHA
 LDA #1:STA memory 
 LDA stl:STA pwl
  LDA sth:STA pwh
* JSR sprite 
4& LDA memory:BEQ not_enough_memory 
> LDY #0 
H LDA X1:STA (stl),Y:INY 
R LDA Y1:STA (stl),Y:INY 
\ LDA X2:STA (stl),Y:INY 
f LDA Y2:STA (stl),Y:INY 
p LDA pwl:STA (stl),Y:INY
z 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
� DEC windows
�" LDA #128:STA pass:JSR sprite 
� LDA #7:JSR &FFEE 
� PLA:STA sth:PLA:STA stl
 PLA:STA pass

 PLA:TAY 
	 rts 
$ :
. .sprite_restore 
8 LDA X1:PHA:LDA Y1:PHA
B LDA X2:PHA:LDA Y2:PHA
L LDA windows
V BEQ sprite_restore_exit
` DEC windows
j
 TYA:PHA 
t 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 
�# LDA #128:STA pass:JSR sprite  
� LDA pwl:STA stl 
� LDA pwh:STA sth 
�
 PLA:TAY 
 .sprite_restore_exit

 PLA:STA Y2:PLA:STA X2
 PLA:STA Y1:PLA:STA X1
	 rts 
( :
2
 .sprite 
< TYA:PHA:TXA:PHA 
F LDA Y1:PHA 
P LDY Y2 
Z :
d .sprite_yloop 
n JSR position 
x
 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 
� :
� .draw_save_pointer 
� LDA (ylb),Y:STA (stl),Y 
� LDA (coll),Y:STA (ylb),Y
� JMP inc_colour_pointer 
 :
 .draw_save_fixed 
 LDA (ylb),Y:STA (stl),Y 
" LDA color:STA (ylb),Y
, JMP inc_store_mem 
6 :
@ .draw_pointer 
J LDA (coll),Y:STA (ylb),Y 
T" INC coll:BNE no_colour_carry1
^ INC colh:.no_colour_carry1
h JMP no_store_mem_carry 
r :
| .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 
� INC coll:BNE inc_store_mem
�
 INC colh
� :
� .inc_store_mem 
�# INC stl:BNE no_store_mem_carry
 INC sth
 LDA sth:CMP &7
 BEQ past_memory_bound
& .no_store_mem_carry
0 :
: LDA ylb:CLC:ADC #8:STA ylb
D LDA yhb:ADC #0:STA yhb
N DEX:BNE sprite_xloop 
X INC Y1:PLA:TAY
b DEY:BNE sprite_yloop
l JMP sprite_exit  
v :
� .past_memory_bound 
� LDA #0:STA memory 
�	 PLA 
� :
� .sprite_exit 
� PLA:STA Y1 
� PLA:TAX:PLA:TAY 
�	 rts 
� :
� .position 
� LDA #0:STA xhb 
� LDA X1:ASL A:ROL xhb:ASL A
�" ROL xhb:ASL A:ROL xhb:STA xlb
  LDA &7:CLC:ADC xhb:STA xhb 
 LDA #0:STA ylb 
 LDA Y1:� #&F8
  LSR A:LSR A:STA yhb
*$ LSR A:LSR A:ROR ylb:CLC:ADC yhb
4 ADC xhb:STA yhb
>$ LDA Y1:� #7:CLC:ADC ylb:ADC xlb
H# STA ylb:LDA #0:ADC yhb:STA yhb
R	 rts 
\ :
f .string
p TYA:PHA
z 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
� :
�
 .desktop
� JSR desktop_background
� JSR desktop_icon_line
	 JSR set_pointer_size
	! LDA #60:STA X1:LDA #6:STA Y1
	 LDA #1:STA icon
	$ .desk_loop
	. JSR pointer_on
	8 JSR pointer_off
	B JSR pointer_direction
	L$ LDA icon:CMP #&FF:BNE desk_loop
	V rts
	` :
	j .desktop_background 
	t LDA #170:STA &358
	~ LDA &2:STA stl
	� LDA &3:CLC:ADC #1:STA sth
	� LDA #0:STA windows
	� LDA #screen � 256:STA mesl
	� LDA #screen � 256:STA mesh
	� JSR string
	�	 rts 
	� :
	� .desktop_icon_line
	� 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 

 :
 .pointer_data
 EQUD &00780060
( EQUD &C07F007E
2 EQUD &E07FF07F
< EQUD &C063807F
F EQUD &F000E001
P EQUD &3C007800
Z EQUW &1800
d :
n .screen
x 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
 :
" ] 
, � code 
6 � desktop
�
00000000  0d 00 0a 12 20 f4 20 20  20 4c 69 73 74 69 6e 67  |.... .   Listing|
00000010  20 49 0d 00 14 1a 20 f4  20 20 20 42 79 20 47 6c  | I.... .   By Gl|
00000020  65 6e 6e 20 4d 61 72 73  68 61 6c 6c 0d 00 1e 1b  |enn Marshall....|
00000030  20 f4 20 20 20 28 43 29  20 54 68 65 20 4d 69 63  | .   (C) The Mic|
00000040  72 6f 20 55 73 65 72 0d  00 28 06 20 3a 0d 00 32  |ro User..(. :..2|
00000050  13 20 e7 20 90 3c 3e 26  32 31 30 30 20 8c 20 e0  |. . .<>&2100 . .|
00000060  0d 00 3c 06 20 3a 0d 00  46 14 20 78 6c 62 3d 26  |..<. :..F. xlb=&|
00000070  35 30 3a 78 68 62 3d 26  35 31 0d 00 50 14 20 79  |50:xhb=&51..P. y|
00000080  6c 62 3d 26 35 32 3a 79  68 62 3d 26 35 33 0d 00  |lb=&52:yhb=&53..|
00000090  5a 12 20 58 31 3d 26 35  34 3a 58 32 3d 26 35 35  |Z. X1=&54:X2=&55|
000000a0  0d 00 64 12 20 59 31 3d  26 35 36 3a 59 32 3d 26  |..d. Y1=&56:Y2=&|
000000b0  35 37 0d 00 6e 0e 20 63  6f 6c 6f 72 3d 26 35 38  |57..n. color=&58|
000000c0  0d 00 78 14 20 73 74 6c  3d 26 35 39 3a 73 74 68  |..x. stl=&59:sth|
000000d0  3d 26 35 41 0d 00 82 0d  20 70 61 73 73 3d 26 35  |=&5A.... pass=&5|
000000e0  42 0d 00 8c 16 20 63 6f  6c 6c 3d 26 35 43 3a 63  |B.... coll=&5C:c|
000000f0  6f 6c 68 3d 26 35 44 0d  00 96 0f 20 6d 65 6d 6f  |olh=&5D.... memo|
00000100  72 79 3d 26 35 45 0d 00  a0 14 20 70 77 6c 3d 26  |ry=&5E.... pwl=&|
00000110  35 46 3a 70 77 68 3d 26  36 30 0d 00 aa 10 20 77  |5F:pwh=&60.... w|
00000120  69 6e 64 6f 77 73 3d 26  36 31 0d 00 b4 0d 20 69  |indows=&61.... i|
00000130  63 6f 6e 3d 26 36 33 0d  00 be 0d 20 6d 65 73 6c  |con=&63.... mesl|
00000140  3d 26 37 30 0d 00 c8 0d  20 6d 65 73 68 3d 26 37  |=&70.... mesh=&7|
00000150  31 0d 00 d2 06 20 3a 0d  00 dc 15 20 e3 20 63 6f  |1.... :.... . co|
00000160  64 65 3d 30 20 b8 20 32  20 88 20 32 0d 00 e6 0d  |de=0 . 2 . 2....|
00000170  20 50 25 3d 26 31 39 30  30 0d 00 f0 0f 20 5b 4f  | P%=&1900.... [O|
00000180  50 54 20 63 6f 64 65 20  0d 00 fa 06 20 3a 0d 01  |PT code .... :..|
00000190  04 16 20 2e 73 65 74 5f  70 6f 69 6e 74 65 72 5f  |.. .set_pointer_|
000001a0  73 69 7a 65 0d 01 0e 21  20 4c 44 41 20 23 32 3a  |size...! LDA #2:|
000001b0  53 54 41 20 58 32 3a 4c  44 41 20 23 31 33 3a 53  |STA X2:LDA #13:S|
000001c0  54 41 20 59 32 0d 01 18  09 20 72 74 73 20 0d 01  |TA Y2.... rts ..|
000001d0  22 06 20 3a 0d 01 2c 10  20 2e 70 6f 69 6e 74 65  |". :..,. .pointe|
000001e0  72 5f 6f 6e 0d 01 36 1c  20 4c 44 41 20 23 70 6f  |r_on..6. LDA #po|
000001f0  69 6e 74 65 72 5f 64 61  74 61 20 83 20 32 35 36  |inter_data . 256|
00000200  0d 01 40 0d 20 53 54 41  20 63 6f 6c 6c 0d 01 4a  |..@. STA coll..J|
00000210  1c 20 4c 44 41 20 23 70  6f 69 6e 74 65 72 5f 64  |. LDA #pointer_d|
00000220  61 74 61 20 81 20 32 35  36 0d 01 54 0d 20 53 54  |ata . 256..T. ST|
00000230  41 20 63 6f 6c 68 0d 01  5e 24 20 4c 44 41 20 23  |A colh..^$ LDA #|
00000240  30 3a 53 54 41 20 70 61  73 73 3a 4a 53 52 20 73  |0:STA pass:JSR s|
00000250  70 72 69 74 65 5f 73 61  76 65 0d 01 68 08 20 72  |prite_save..h. r|
00000260  74 73 0d 01 72 06 20 3a  0d 01 7c 11 20 2e 70 6f  |ts..r. :..|. .po|
00000270  69 6e 74 65 72 5f 6f 66  66 0d 01 86 18 20 4a 53  |inter_off.... JS|
00000280  52 20 73 70 72 69 74 65  5f 72 65 73 74 6f 72 65  |R sprite_restore|
00000290  20 0d 01 90 09 20 72 74  73 20 0d 01 9a 06 20 3a  | .... rts .... :|
000002a0  0d 01 a4 17 20 2e 70 6f  69 6e 74 65 72 5f 64 69  |.... .pointer_di|
000002b0  72 65 63 74 69 6f 6e 0d  01 ae 1e 20 4c 44 58 20  |rection.... LDX |
000002c0  23 28 2d 35 38 20 80 20  26 46 46 29 3a 4c 44 59  |#(-58 . &FF):LDY|
000002d0  20 23 26 46 46 0d 01 b8  1b 20 4c 44 41 20 23 26  | #&FF.... LDA #&|
000002e0  38 31 3a 4a 53 52 20 26  46 46 46 34 3a 54 58 41  |81:JSR &FFF4:TXA|
000002f0  0d 01 c2 24 20 42 43 43  20 64 6f 77 6e 3a 4c 44  |...$ BCC down:LD|
00000300  41 20 59 31 3a 43 4d 50  20 23 34 3a 42 43 43 20  |A Y1:CMP #4:BCC |
00000310  64 6f 77 6e 0d 01 cc 16  20 53 45 43 3a 53 42 43  |down.... SEC:SBC|
00000320  20 23 33 3a 53 54 41 20  59 31 0d 01 d6 0b 20 2e  | #3:STA Y1.... .|
00000330  64 6f 77 6e 20 0d 01 e0  1e 20 4c 44 58 20 23 28  |down .... LDX #(|
00000340  2d 34 32 20 80 20 26 46  46 29 3a 4c 44 59 20 23  |-42 . &FF):LDY #|
00000350  26 46 46 0d 01 ea 1b 20  4c 44 41 20 23 26 38 31  |&FF.... LDA #&81|
00000360  3a 4a 53 52 20 26 46 46  46 34 3a 54 58 41 0d 01  |:JSR &FFF4:TXA..|
00000370  f4 1e 20 42 43 43 20 72  69 67 68 74 3a 4c 44 41  |.. BCC right:LDA|
00000380  20 59 31 3a 43 4d 50 20  23 31 38 34 0d 01 fe 20  | Y1:CMP #184... |
00000390  20 42 43 53 20 72 69 67  68 74 3a 43 4c 43 3a 41  | BCS right:CLC:A|
000003a0  44 43 20 23 33 3a 53 54  41 20 59 31 0d 02 08 0c  |DC #3:STA Y1....|
000003b0  20 2e 72 69 67 68 74 20  0d 02 12 1f 20 4c 44 58  | .right .... LDX|
000003c0  20 23 28 2d 31 32 32 20  80 20 26 46 46 29 3a 4c  | #(-122 . &FF):L|
000003d0  44 59 20 23 26 46 46 0d  02 1c 1b 20 4c 44 41 20  |DY #&FF.... LDA |
000003e0  23 26 38 31 3a 4a 53 52  20 26 46 46 46 34 3a 54  |#&81:JSR &FFF4:T|
000003f0  58 41 0d 02 26 25 20 42  43 43 20 6c 65 66 74 3a  |XA..&% BCC left:|
00000400  4c 44 41 20 58 31 3a 43  4d 50 20 23 37 38 3a 42  |LDA X1:CMP #78:B|
00000410  43 53 20 6c 65 66 74 0d  02 30 16 20 43 4c 43 3a  |CS left..0. CLC:|
00000420  41 44 43 20 23 31 3a 53  54 41 20 58 31 0d 02 3a  |ADC #1:STA X1..:|
00000430  0b 20 2e 6c 65 66 74 20  0d 02 44 1e 20 4c 44 58  |. .left ..D. LDX|
00000440  20 23 28 2d 32 36 20 80  20 26 46 46 29 3a 4c 44  | #(-26 . &FF):LD|
00000450  59 20 23 26 46 46 0d 02  4e 1b 20 4c 44 41 20 23  |Y #&FF..N. LDA #|
00000460  26 38 31 3a 4a 53 52 20  26 46 46 46 34 3a 54 58  |&81:JSR &FFF4:TX|
00000470  41 0d 02 58 1d 20 42 43  43 20 72 65 74 75 72 6e  |A..X. BCC return|
00000480  3a 4c 44 41 20 58 31 3a  43 4d 50 20 23 31 0d 02  |:LDA X1:CMP #1..|
00000490  62 21 20 42 43 43 20 72  65 74 75 72 6e 3a 53 45  |b! BCC return:SE|
000004a0  43 3a 53 42 43 20 23 31  3a 53 54 41 20 58 31 0d  |C:SBC #1:STA X1.|
000004b0  02 6c 0d 20 2e 72 65 74  75 72 6e 20 0d 02 76 1f  |.l. .return ..v.|
000004c0  20 4c 44 58 20 23 28 2d  31 30 36 20 80 20 26 46  | LDX #(-106 . &F|
000004d0  46 29 3a 4c 44 59 20 23  26 46 46 0d 02 80 1b 20  |F):LDY #&FF.... |
000004e0  4c 44 41 20 23 26 38 31  3a 4a 53 52 20 26 46 46  |LDA #&81:JSR &FF|
000004f0  46 34 3a 54 58 41 0d 02  8a 18 20 42 43 43 20 64  |F4:TXA.... BCC d|
00000500  69 72 65 63 74 69 6f 6e  5f 65 78 69 74 20 0d 02  |irection_exit ..|
00000510  94 17 20 4c 44 41 20 23  26 46 46 3a 53 54 41 20  |.. LDA #&FF:STA |
00000520  69 63 6f 6e 20 0d 02 9e  15 20 2e 64 69 72 65 63  |icon .... .direc|
00000530  74 69 6f 6e 5f 65 78 69  74 20 0d 02 a8 09 20 72  |tion_exit .... r|
00000540  74 73 20 0d 02 b2 06 20  3a 0d 02 bc 12 20 2e 73  |ts .... :.... .s|
00000550  70 72 69 74 65 5f 73 61  76 65 20 0d 02 c6 1f 20  |prite_save .... |
00000560  4c 44 41 20 70 61 73 73  3a 43 4d 50 20 23 32 3a  |LDA pass:CMP #2:|
00000570  42 43 43 20 73 61 76 69  6e 67 0d 02 d0 0f 20 4a  |BCC saving.... J|
00000580  53 52 20 73 70 72 69 74  65 0d 02 da 08 20 72 74  |SR sprite.... rt|
00000590  73 0d 02 e4 0c 20 2e 73  61 76 69 6e 67 0d 02 ee  |s.... .saving...|
000005a0  0d 20 54 59 41 3a 50 48  41 20 0d 02 f8 10 20 49  |. TYA:PHA .... I|
000005b0  4e 43 20 77 69 6e 64 6f  77 73 0d 03 02 11 20 4c  |NC windows.... L|
000005c0  44 41 20 70 61 73 73 3a  50 48 41 0d 03 0c 17 20  |DA pass:PHA.... |
000005d0  4c 44 41 20 23 31 3a 53  54 41 20 6d 65 6d 6f 72  |LDA #1:STA memor|
000005e0  79 20 0d 03 16 14 20 4c  44 41 20 73 74 6c 3a 53  |y .... LDA stl:S|
000005f0  54 41 20 70 77 6c 0d 03  20 14 20 4c 44 41 20 73  |TA pwl.. . LDA s|
00000600  74 68 3a 53 54 41 20 70  77 68 0d 03 2a 10 20 4a  |th:STA pwh..*. J|
00000610  53 52 20 73 70 72 69 74  65 20 0d 03 34 26 20 4c  |SR sprite ..4& L|
00000620  44 41 20 6d 65 6d 6f 72  79 3a 42 45 51 20 6e 6f  |DA memory:BEQ no|
00000630  74 5f 65 6e 6f 75 67 68  5f 6d 65 6d 6f 72 79 20  |t_enough_memory |
00000640  0d 03 3e 0c 20 4c 44 59  20 23 30 20 0d 03 48 1c  |..>. LDY #0 ..H.|
00000650  20 4c 44 41 20 58 31 3a  53 54 41 20 28 73 74 6c  | LDA X1:STA (stl|
00000660  29 2c 59 3a 49 4e 59 20  0d 03 52 1c 20 4c 44 41  |),Y:INY ..R. LDA|
00000670  20 59 31 3a 53 54 41 20  28 73 74 6c 29 2c 59 3a  | Y1:STA (stl),Y:|
00000680  49 4e 59 20 0d 03 5c 1c  20 4c 44 41 20 58 32 3a  |INY ..\. LDA X2:|
00000690  53 54 41 20 28 73 74 6c  29 2c 59 3a 49 4e 59 20  |STA (stl),Y:INY |
000006a0  0d 03 66 1c 20 4c 44 41  20 59 32 3a 53 54 41 20  |..f. LDA Y2:STA |
000006b0  28 73 74 6c 29 2c 59 3a  49 4e 59 20 0d 03 70 1c  |(stl),Y:INY ..p.|
000006c0  20 4c 44 41 20 70 77 6c  3a 53 54 41 20 28 73 74  | LDA pwl:STA (st|
000006d0  6c 29 2c 59 3a 49 4e 59  0d 03 7a 18 20 4c 44 41  |l),Y:INY..z. LDA|
000006e0  20 70 77 68 3a 53 54 41  20 28 73 74 6c 29 2c 59  | pwh:STA (stl),Y|
000006f0  0d 03 84 1f 20 4c 44 41  20 73 74 6c 3a 43 4c 43  |.... LDA stl:CLC|
00000700  3a 41 44 43 20 23 36 3a  53 54 41 20 73 74 6c 0d  |:ADC #6:STA stl.|
00000710  03 8e 1b 20 4c 44 41 20  73 74 68 3a 41 44 43 20  |... LDA sth:ADC |
00000720  23 30 3a 53 54 41 20 73  74 68 0d 03 98 11 20 50  |#0:STA sth.... P|
00000730  4c 41 3a 53 54 41 20 70  61 73 73 0d 03 a2 0d 20  |LA:STA pass.... |
00000740  50 4c 41 3a 54 41 59 20  0d 03 ac 09 20 72 74 73  |PLA:TAY .... rts|
00000750  20 0d 03 b6 06 20 3a 0d  03 c0 18 20 2e 6e 6f 74  | .... :.... .not|
00000760  5f 65 6e 6f 75 67 68 5f  6d 65 6d 6f 72 79 20 0d  |_enough_memory .|
00000770  03 ca 18 20 4c 44 41 20  70 77 6c 3a 50 48 41 3a  |... LDA pwl:PHA:|
00000780  53 54 41 20 73 74 6c 0d  03 d4 18 20 4c 44 41 20  |STA stl.... LDA |
00000790  70 77 68 3a 50 48 41 3a  53 54 41 20 73 74 68 0d  |pwh:PHA:STA sth.|
000007a0  03 de 10 20 44 45 43 20  77 69 6e 64 6f 77 73 0d  |... DEC windows.|
000007b0  03 e8 22 20 4c 44 41 20  23 31 32 38 3a 53 54 41  |.." LDA #128:STA|
000007c0  20 70 61 73 73 3a 4a 53  52 20 73 70 72 69 74 65  | pass:JSR sprite|
000007d0  20 0d 03 f2 16 20 4c 44  41 20 23 37 3a 4a 53 52  | .... LDA #7:JSR|
000007e0  20 26 46 46 45 45 20 0d  03 fc 1c 20 50 4c 41 3a  | &FFEE .... PLA:|
000007f0  53 54 41 20 73 74 68 3a  50 4c 41 3a 53 54 41 20  |STA sth:PLA:STA |
00000800  73 74 6c 0d 04 06 11 20  50 4c 41 3a 53 54 41 20  |stl.... PLA:STA |
00000810  70 61 73 73 0d 04 10 0d  20 50 4c 41 3a 54 41 59  |pass.... PLA:TAY|
00000820  20 0d 04 1a 09 20 72 74  73 20 0d 04 24 06 20 3a  | .... rts ..$. :|
00000830  0d 04 2e 15 20 2e 73 70  72 69 74 65 5f 72 65 73  |.... .sprite_res|
00000840  74 6f 72 65 20 0d 04 38  1a 20 4c 44 41 20 58 31  |tore ..8. LDA X1|
00000850  3a 50 48 41 3a 4c 44 41  20 59 31 3a 50 48 41 0d  |:PHA:LDA Y1:PHA.|
00000860  04 42 1a 20 4c 44 41 20  58 32 3a 50 48 41 3a 4c  |.B. LDA X2:PHA:L|
00000870  44 41 20 59 32 3a 50 48  41 0d 04 4c 10 20 4c 44  |DA Y2:PHA..L. LD|
00000880  41 20 77 69 6e 64 6f 77  73 0d 04 56 1c 20 42 45  |A windows..V. BE|
00000890  51 20 73 70 72 69 74 65  5f 72 65 73 74 6f 72 65  |Q sprite_restore|
000008a0  5f 65 78 69 74 0d 04 60  10 20 44 45 43 20 77 69  |_exit..`. DEC wi|
000008b0  6e 64 6f 77 73 0d 04 6a  0d 20 54 59 41 3a 50 48  |ndows..j. TYA:PH|
000008c0  41 20 0d 04 74 1f 20 4c  44 41 20 73 74 6c 3a 53  |A ..t. LDA stl:S|
000008d0  45 43 3a 53 42 43 20 23  36 3a 53 54 41 20 73 74  |EC:SBC #6:STA st|
000008e0  6c 0d 04 7e 1b 20 4c 44  41 20 73 74 68 3a 53 42  |l..~. LDA sth:SB|
000008f0  43 20 23 30 3a 53 54 41  20 73 74 68 0d 04 88 0c  |C #0:STA sth....|
00000900  20 4c 44 59 20 23 30 20  0d 04 92 1c 20 4c 44 41  | LDY #0 .... LDA|
00000910  20 28 73 74 6c 29 2c 59  3a 53 54 41 20 58 31 3a  | (stl),Y:STA X1:|
00000920  49 4e 59 20 0d 04 9c 1c  20 4c 44 41 20 28 73 74  |INY .... LDA (st|
00000930  6c 29 2c 59 3a 53 54 41  20 59 31 3a 49 4e 59 20  |l),Y:STA Y1:INY |
00000940  0d 04 a6 1c 20 4c 44 41  20 28 73 74 6c 29 2c 59  |.... LDA (stl),Y|
00000950  3a 53 54 41 20 58 32 3a  49 4e 59 20 0d 04 b0 1c  |:STA X2:INY ....|
00000960  20 4c 44 41 20 28 73 74  6c 29 2c 59 3a 53 54 41  | LDA (stl),Y:STA|
00000970  20 59 32 3a 49 4e 59 20  0d 04 ba 21 20 4c 44 41  | Y2:INY ...! LDA|
00000980  20 28 73 74 6c 29 2c 59  3a 50 48 41 3a 53 54 41  | (stl),Y:PHA:STA|
00000990  20 70 77 6c 3a 49 4e 59  20 0d 04 c4 21 20 4c 44  | pwl:INY ...! LD|
000009a0  41 20 28 73 74 6c 29 2c  59 3a 53 54 41 20 73 74  |A (stl),Y:STA st|
000009b0  68 3a 53 54 41 20 70 77  68 20 0d 04 ce 11 20 50  |h:STA pwh .... P|
000009c0  4c 41 3a 53 54 41 20 73  74 6c 20 0d 04 d8 23 20  |LA:STA stl ...# |
000009d0  4c 44 41 20 23 31 32 38  3a 53 54 41 20 70 61 73  |LDA #128:STA pas|
000009e0  73 3a 4a 53 52 20 73 70  72 69 74 65 20 20 0d 04  |s:JSR sprite  ..|
000009f0  e2 15 20 4c 44 41 20 70  77 6c 3a 53 54 41 20 73  |.. LDA pwl:STA s|
00000a00  74 6c 20 0d 04 ec 15 20  4c 44 41 20 70 77 68 3a  |tl .... LDA pwh:|
00000a10  53 54 41 20 73 74 68 20  0d 04 f6 0d 20 50 4c 41  |STA sth .... PLA|
00000a20  3a 54 41 59 20 0d 05 00  19 20 2e 73 70 72 69 74  |:TAY .... .sprit|
00000a30  65 5f 72 65 73 74 6f 72  65 5f 65 78 69 74 0d 05  |e_restore_exit..|
00000a40  0a 1a 20 50 4c 41 3a 53  54 41 20 59 32 3a 50 4c  |.. PLA:STA Y2:PL|
00000a50  41 3a 53 54 41 20 58 32  0d 05 14 1a 20 50 4c 41  |A:STA X2.... PLA|
00000a60  3a 53 54 41 20 59 31 3a  50 4c 41 3a 53 54 41 20  |:STA Y1:PLA:STA |
00000a70  58 31 0d 05 1e 09 20 72  74 73 20 0d 05 28 06 20  |X1.... rts ..(. |
00000a80  3a 0d 05 32 0d 20 2e 73  70 72 69 74 65 20 0d 05  |:..2. .sprite ..|
00000a90  3c 15 20 54 59 41 3a 50  48 41 3a 54 58 41 3a 50  |<. TYA:PHA:TXA:P|
00000aa0  48 41 20 0d 05 46 10 20  4c 44 41 20 59 31 3a 50  |HA ..F. LDA Y1:P|
00000ab0  48 41 20 0d 05 50 0c 20  4c 44 59 20 59 32 20 0d  |HA ..P. LDY Y2 .|
00000ac0  05 5a 06 20 3a 0d 05 64  13 20 2e 73 70 72 69 74  |.Z. :..d. .sprit|
00000ad0  65 5f 79 6c 6f 6f 70 20  0d 05 6e 12 20 4a 53 52  |e_yloop ..n. JSR|
00000ae0  20 70 6f 73 69 74 69 6f  6e 20 0d 05 78 0d 20 54  | position ..x. T|
00000af0  59 41 3a 50 48 41 20 0d  05 82 0c 20 4c 44 58 20  |YA:PHA .... LDX |
00000b00  58 32 20 0d 05 8c 0c 20  4c 44 59 20 23 30 20 0d  |X2 .... LDY #0 .|
00000b10  05 96 06 20 3a 0d 05 a0  13 20 2e 73 70 72 69 74  |... :.... .sprit|
00000b20  65 5f 78 6c 6f 6f 70 20  0d 05 aa 1a 20 4c 44 41  |e_xloop .... LDA|
00000b30  20 70 61 73 73 3a 42 4d  49 20 72 65 73 74 6f 72  | pass:BMI restor|
00000b40  65 20 0d 05 b4 1d 20 43  4d 50 20 23 32 3a 42 45  |e .... CMP #2:BE|
00000b50  51 20 64 72 61 77 5f 70  6f 69 6e 74 65 72 20 0d  |Q draw_pointer .|
00000b60  05 be 14 20 42 43 53 20  64 72 61 77 5f 66 69 78  |... BCS draw_fix|
00000b70  65 64 20 0d 05 c8 20 20  43 4d 50 20 23 31 3a 42  |ed ...  CMP #1:B|
00000b80  45 51 20 64 72 61 77 5f  73 61 76 65 5f 66 69 78  |EQ draw_save_fix|
00000b90  65 64 20 0d 05 d2 06 20  3a 0d 05 dc 18 20 2e 64  |ed .... :.... .d|
00000ba0  72 61 77 5f 73 61 76 65  5f 70 6f 69 6e 74 65 72  |raw_save_pointer|
00000bb0  20 0d 05 e6 1d 20 4c 44  41 20 28 79 6c 62 29 2c  | .... LDA (ylb),|
00000bc0  59 3a 53 54 41 20 28 73  74 6c 29 2c 59 20 0d 05  |Y:STA (stl),Y ..|
00000bd0  f0 1d 20 4c 44 41 20 28  63 6f 6c 6c 29 2c 59 3a  |.. LDA (coll),Y:|
00000be0  53 54 41 20 28 79 6c 62  29 2c 59 0d 05 fa 1c 20  |STA (ylb),Y.... |
00000bf0  4a 4d 50 20 69 6e 63 5f  63 6f 6c 6f 75 72 5f 70  |JMP inc_colour_p|
00000c00  6f 69 6e 74 65 72 20 0d  06 04 06 20 3a 0d 06 0e  |ointer .... :...|
00000c10  16 20 2e 64 72 61 77 5f  73 61 76 65 5f 66 69 78  |. .draw_save_fix|
00000c20  65 64 20 0d 06 18 1d 20  4c 44 41 20 28 79 6c 62  |ed .... LDA (ylb|
00000c30  29 2c 59 3a 53 54 41 20  28 73 74 6c 29 2c 59 20  |),Y:STA (stl),Y |
00000c40  0d 06 22 1a 20 4c 44 41  20 63 6f 6c 6f 72 3a 53  |..". LDA color:S|
00000c50  54 41 20 28 79 6c 62 29  2c 59 0d 06 2c 17 20 4a  |TA (ylb),Y..,. J|
00000c60  4d 50 20 69 6e 63 5f 73  74 6f 72 65 5f 6d 65 6d  |MP inc_store_mem|
00000c70  20 0d 06 36 06 20 3a 0d  06 40 13 20 2e 64 72 61  | ..6. :..@. .dra|
00000c80  77 5f 70 6f 69 6e 74 65  72 20 0d 06 4a 1e 20 4c  |w_pointer ..J. L|
00000c90  44 41 20 28 63 6f 6c 6c  29 2c 59 3a 53 54 41 20  |DA (coll),Y:STA |
00000ca0  28 79 6c 62 29 2c 59 20  0d 06 54 22 20 49 4e 43  |(ylb),Y ..T" INC|
00000cb0  20 63 6f 6c 6c 3a 42 4e  45 20 6e 6f 5f 63 6f 6c  | coll:BNE no_col|
00000cc0  6f 75 72 5f 63 61 72 72  79 31 0d 06 5e 1f 20 49  |our_carry1..^. I|
00000cd0  4e 43 20 63 6f 6c 68 3a  2e 6e 6f 5f 63 6f 6c 6f  |NC colh:.no_colo|
00000ce0  75 72 5f 63 61 72 72 79  31 0d 06 68 1c 20 4a 4d  |ur_carry1..h. JM|
00000cf0  50 20 6e 6f 5f 73 74 6f  72 65 5f 6d 65 6d 5f 63  |P no_store_mem_c|
00000d00  61 72 72 79 20 0d 06 72  06 20 3a 0d 06 7c 11 20  |arry ..r. :..|. |
00000d10  2e 64 72 61 77 5f 66 69  78 65 64 20 0d 06 86 1b  |.draw_fixed ....|
00000d20  20 4c 44 41 20 63 6f 6c  6f 72 3a 53 54 41 20 28  | LDA color:STA (|
00000d30  79 6c 62 29 2c 59 20 0d  06 90 1c 20 4a 4d 50 20  |ylb),Y .... JMP |
00000d40  6e 6f 5f 73 74 6f 72 65  5f 6d 65 6d 5f 63 61 72  |no_store_mem_car|
00000d50  72 79 20 0d 06 9a 06 20  3a 0d 06 a4 0e 20 2e 72  |ry .... :.... .r|
00000d60  65 73 74 6f 72 65 20 0d  06 ae 1d 20 4c 44 41 20  |estore .... LDA |
00000d70  28 73 74 6c 29 2c 59 3a  53 54 41 20 28 79 6c 62  |(stl),Y:STA (ylb|
00000d80  29 2c 59 20 0d 06 b8 18  20 4a 4d 50 20 69 6e 63  |),Y .... JMP inc|
00000d90  5f 73 74 6f 72 65 5f 6d  65 6d 20 20 0d 06 c2 06  |_store_mem  ....|
00000da0  20 3a 0d 06 cc 19 20 2e  69 6e 63 5f 63 6f 6c 6f  | :.... .inc_colo|
00000db0  75 72 5f 70 6f 69 6e 74  65 72 20 0d 06 d6 1f 20  |ur_pointer .... |
00000dc0  49 4e 43 20 63 6f 6c 6c  3a 42 4e 45 20 69 6e 63  |INC coll:BNE inc|
00000dd0  5f 73 74 6f 72 65 5f 6d  65 6d 0d 06 e0 0d 20 49  |_store_mem.... I|
00000de0  4e 43 20 63 6f 6c 68 0d  06 ea 06 20 3a 0d 06 f4  |NC colh.... :...|
00000df0  14 20 2e 69 6e 63 5f 73  74 6f 72 65 5f 6d 65 6d  |. .inc_store_mem|
00000e00  20 0d 06 fe 23 20 49 4e  43 20 73 74 6c 3a 42 4e  | ...# INC stl:BN|
00000e10  45 20 6e 6f 5f 73 74 6f  72 65 5f 6d 65 6d 5f 63  |E no_store_mem_c|
00000e20  61 72 72 79 0d 07 08 0c  20 49 4e 43 20 73 74 68  |arry.... INC sth|
00000e30  0d 07 12 13 20 4c 44 41  20 73 74 68 3a 43 4d 50  |.... LDA sth:CMP|
00000e40  20 26 37 0d 07 1c 1a 20  42 45 51 20 70 61 73 74  | &7.... BEQ past|
00000e50  5f 6d 65 6d 6f 72 79 5f  62 6f 75 6e 64 0d 07 26  |_memory_bound..&|
00000e60  18 20 2e 6e 6f 5f 73 74  6f 72 65 5f 6d 65 6d 5f  |. .no_store_mem_|
00000e70  63 61 72 72 79 0d 07 30  06 20 3a 0d 07 3a 1f 20  |carry..0. :..:. |
00000e80  4c 44 41 20 79 6c 62 3a  43 4c 43 3a 41 44 43 20  |LDA ylb:CLC:ADC |
00000e90  23 38 3a 53 54 41 20 79  6c 62 0d 07 44 1b 20 4c  |#8:STA ylb..D. L|
00000ea0  44 41 20 79 68 62 3a 41  44 43 20 23 30 3a 53 54  |DA yhb:ADC #0:ST|
00000eb0  41 20 79 68 62 0d 07 4e  1a 20 44 45 58 3a 42 4e  |A yhb..N. DEX:BN|
00000ec0  45 20 73 70 72 69 74 65  5f 78 6c 6f 6f 70 20 0d  |E sprite_xloop .|
00000ed0  07 58 13 20 49 4e 43 20  59 31 3a 50 4c 41 3a 54  |.X. INC Y1:PLA:T|
00000ee0  41 59 0d 07 62 19 20 44  45 59 3a 42 4e 45 20 73  |AY..b. DEY:BNE s|
00000ef0  70 72 69 74 65 5f 79 6c  6f 6f 70 0d 07 6c 16 20  |prite_yloop..l. |
00000f00  4a 4d 50 20 73 70 72 69  74 65 5f 65 78 69 74 20  |JMP sprite_exit |
00000f10  20 0d 07 76 06 20 3a 0d  07 80 18 20 2e 70 61 73  | ..v. :.... .pas|
00000f20  74 5f 6d 65 6d 6f 72 79  5f 62 6f 75 6e 64 20 0d  |t_memory_bound .|
00000f30  07 8a 17 20 4c 44 41 20  23 30 3a 53 54 41 20 6d  |... LDA #0:STA m|
00000f40  65 6d 6f 72 79 20 0d 07  94 09 20 50 4c 41 20 0d  |emory .... PLA .|
00000f50  07 9e 06 20 3a 0d 07 a8  12 20 2e 73 70 72 69 74  |... :.... .sprit|
00000f60  65 5f 65 78 69 74 20 0d  07 b2 10 20 50 4c 41 3a  |e_exit .... PLA:|
00000f70  53 54 41 20 59 31 20 0d  07 bc 15 20 50 4c 41 3a  |STA Y1 .... PLA:|
00000f80  54 41 58 3a 50 4c 41 3a  54 41 59 20 0d 07 c6 09  |TAX:PLA:TAY ....|
00000f90  20 72 74 73 20 0d 07 d0  06 20 3a 0d 07 da 0f 20  | rts .... :.... |
00000fa0  2e 70 6f 73 69 74 69 6f  6e 20 0d 07 e4 14 20 4c  |.position .... L|
00000fb0  44 41 20 23 30 3a 53 54  41 20 78 68 62 20 0d 07  |DA #0:STA xhb ..|
00000fc0  ee 1f 20 4c 44 41 20 58  31 3a 41 53 4c 20 41 3a  |.. LDA X1:ASL A:|
00000fd0  52 4f 4c 20 78 68 62 3a  41 53 4c 20 41 0d 07 f8  |ROL xhb:ASL A...|
00000fe0  22 20 52 4f 4c 20 78 68  62 3a 41 53 4c 20 41 3a  |" ROL xhb:ASL A:|
00000ff0  52 4f 4c 20 78 68 62 3a  53 54 41 20 78 6c 62 0d  |ROL xhb:STA xlb.|
00001000  08 02 20 20 4c 44 41 20  26 37 3a 43 4c 43 3a 41  |..  LDA &7:CLC:A|
00001010  44 43 20 78 68 62 3a 53  54 41 20 78 68 62 20 0d  |DC xhb:STA xhb .|
00001020  08 0c 14 20 4c 44 41 20  23 30 3a 53 54 41 20 79  |... LDA #0:STA y|
00001030  6c 62 20 0d 08 16 12 20  4c 44 41 20 59 31 3a 80  |lb .... LDA Y1:.|
00001040  20 23 26 46 38 0d 08 20  18 20 4c 53 52 20 41 3a  | #&F8.. . LSR A:|
00001050  4c 53 52 20 41 3a 53 54  41 20 79 68 62 0d 08 2a  |LSR A:STA yhb..*|
00001060  24 20 4c 53 52 20 41 3a  4c 53 52 20 41 3a 52 4f  |$ LSR A:LSR A:RO|
00001070  52 20 79 6c 62 3a 43 4c  43 3a 41 44 43 20 79 68  |R ylb:CLC:ADC yh|
00001080  62 0d 08 34 14 20 41 44  43 20 78 68 62 3a 53 54  |b..4. ADC xhb:ST|
00001090  41 20 79 68 62 0d 08 3e  24 20 4c 44 41 20 59 31  |A yhb..>$ LDA Y1|
000010a0  3a 80 20 23 37 3a 43 4c  43 3a 41 44 43 20 79 6c  |:. #7:CLC:ADC yl|
000010b0  62 3a 41 44 43 20 78 6c  62 0d 08 48 23 20 53 54  |b:ADC xlb..H# ST|
000010c0  41 20 79 6c 62 3a 4c 44  41 20 23 30 3a 41 44 43  |A ylb:LDA #0:ADC|
000010d0  20 79 68 62 3a 53 54 41  20 79 68 62 0d 08 52 09  | yhb:STA yhb..R.|
000010e0  20 72 74 73 20 0d 08 5c  06 20 3a 0d 08 66 0c 20  | rts ..\. :..f. |
000010f0  2e 73 74 72 69 6e 67 0d  08 70 0c 20 54 59 41 3a  |.string..p. TYA:|
00001100  50 48 41 0d 08 7a 0b 20  4c 44 59 20 23 30 0d 08  |PHA..z. LDY #0..|
00001110  84 11 20 2e 73 74 72 69  6e 67 5f 6c 6f 6f 70 0d  |.. .string_loop.|
00001120  08 8e 11 20 4c 44 41 20  28 6d 65 73 6c 29 2c 59  |... LDA (mesl),Y|
00001130  0d 08 98 1d 20 43 4d 50  20 23 26 46 46 3a 42 45  |.... CMP #&FF:BE|
00001140  51 20 73 74 72 69 6e 67  5f 65 78 69 74 0d 08 a2  |Q string_exit...|
00001150  0e 20 4a 53 52 20 26 46  46 45 33 0d 08 ac 08 20  |. JSR &FFE3.... |
00001160  49 4e 59 0d 08 b6 1d 20  43 50 59 20 23 26 46 46  |INY.... CPY #&FF|
00001170  3a 42 4e 45 20 73 74 72  69 6e 67 5f 6c 6f 6f 70  |:BNE string_loop|
00001180  0d 08 c0 11 20 2e 73 74  72 69 6e 67 5f 65 78 69  |.... .string_exi|
00001190  74 0d 08 ca 0c 20 50 4c  41 3a 54 41 59 0d 08 d4  |t.... PLA:TAY...|
000011a0  08 20 72 74 73 0d 08 de  06 20 3a 0d 08 e8 0d 20  |. rts.... :.... |
000011b0  2e 64 65 73 6b 74 6f 70  0d 08 f2 1b 20 4a 53 52  |.desktop.... JSR|
000011c0  20 64 65 73 6b 74 6f 70  5f 62 61 63 6b 67 72 6f  | desktop_backgro|
000011d0  75 6e 64 0d 08 fc 1a 20  4a 53 52 20 64 65 73 6b  |und.... JSR desk|
000011e0  74 6f 70 5f 69 63 6f 6e  5f 6c 69 6e 65 0d 09 06  |top_icon_line...|
000011f0  19 20 4a 53 52 20 73 65  74 5f 70 6f 69 6e 74 65  |. JSR set_pointe|
00001200  72 5f 73 69 7a 65 0d 09  10 21 20 4c 44 41 20 23  |r_size...! LDA #|
00001210  36 30 3a 53 54 41 20 58  31 3a 4c 44 41 20 23 36  |60:STA X1:LDA #6|
00001220  3a 53 54 41 20 59 31 0d  09 1a 14 20 4c 44 41 20  |:STA Y1.... LDA |
00001230  23 31 3a 53 54 41 20 69  63 6f 6e 0d 09 24 0f 20  |#1:STA icon..$. |
00001240  2e 64 65 73 6b 5f 6c 6f  6f 70 0d 09 2e 13 20 4a  |.desk_loop.... J|
00001250  53 52 20 70 6f 69 6e 74  65 72 5f 6f 6e 0d 09 38  |SR pointer_on..8|
00001260  14 20 4a 53 52 20 70 6f  69 6e 74 65 72 5f 6f 66  |. JSR pointer_of|
00001270  66 0d 09 42 1a 20 4a 53  52 20 70 6f 69 6e 74 65  |f..B. JSR pointe|
00001280  72 5f 64 69 72 65 63 74  69 6f 6e 0d 09 4c 24 20  |r_direction..L$ |
00001290  4c 44 41 20 69 63 6f 6e  3a 43 4d 50 20 23 26 46  |LDA icon:CMP #&F|
000012a0  46 3a 42 4e 45 20 64 65  73 6b 5f 6c 6f 6f 70 0d  |F:BNE desk_loop.|
000012b0  09 56 08 20 72 74 73 0d  09 60 06 20 3a 0d 09 6a  |.V. rts..`. :..j|
000012c0  19 20 2e 64 65 73 6b 74  6f 70 5f 62 61 63 6b 67  |. .desktop_backg|
000012d0  72 6f 75 6e 64 20 0d 09  74 16 20 4c 44 41 20 23  |round ..t. LDA #|
000012e0  31 37 30 3a 53 54 41 20  26 33 35 38 0d 09 7e 13  |170:STA &358..~.|
000012f0  20 4c 44 41 20 26 32 3a  53 54 41 20 73 74 6c 0d  | LDA &2:STA stl.|
00001300  09 88 1e 20 4c 44 41 20  26 33 3a 43 4c 43 3a 41  |... LDA &3:CLC:A|
00001310  44 43 20 23 31 3a 53 54  41 20 73 74 68 0d 09 92  |DC #1:STA sth...|
00001320  17 20 4c 44 41 20 23 30  3a 53 54 41 20 77 69 6e  |. LDA #0:STA win|
00001330  64 6f 77 73 0d 09 9c 1f  20 4c 44 41 20 23 73 63  |dows.... LDA #sc|
00001340  72 65 65 6e 20 83 20 32  35 36 3a 53 54 41 20 6d  |reen . 256:STA m|
00001350  65 73 6c 0d 09 a6 1f 20  4c 44 41 20 23 73 63 72  |esl.... LDA #scr|
00001360  65 65 6e 20 81 20 32 35  36 3a 53 54 41 20 6d 65  |een . 256:STA me|
00001370  73 68 0d 09 b0 0f 20 4a  53 52 20 73 74 72 69 6e  |sh.... JSR strin|
00001380  67 0d 09 ba 09 20 72 74  73 20 0d 09 c4 06 20 3a  |g.... rts .... :|
00001390  0d 09 ce 17 20 2e 64 65  73 6b 74 6f 70 5f 69 63  |.... .desktop_ic|
000013a0  6f 6e 5f 6c 69 6e 65 0d  09 d8 19 20 4c 44 41 20  |on_line.... LDA |
000013b0  23 30 3a 53 54 41 20 58  31 3a 53 54 41 20 59 31  |#0:STA X1:STA Y1|
000013c0  0d 09 e2 22 20 4c 44 41  20 23 38 30 3a 53 54 41  |..." LDA #80:STA|
000013d0  20 58 32 3a 4c 44 41 20  23 32 33 3a 53 54 41 20  | X2:LDA #23:STA |
000013e0  59 32 0d 09 ec 17 20 4c  44 41 20 23 32 35 35 3a  |Y2.... LDA #255:|
000013f0  53 54 41 20 63 6f 6c 6f  72 0d 09 f6 24 20 4c 44  |STA color...$ LD|
00001400  41 20 23 33 3a 53 54 41  20 70 61 73 73 3a 4a 53  |A #3:STA pass:JS|
00001410  52 20 73 70 72 69 74 65  5f 73 61 76 65 0d 0a 00  |R sprite_save...|
00001420  09 20 72 74 73 20 0d 0a  0a 06 20 3a 0d 0a 14 12  |. rts .... :....|
00001430  20 2e 70 6f 69 6e 74 65  72 5f 64 61 74 61 0d 0a  | .pointer_data..|
00001440  1e 13 20 45 51 55 44 20  26 30 30 37 38 30 30 36  |.. EQUD &0078006|
00001450  30 0d 0a 28 13 20 45 51  55 44 20 26 43 30 37 46  |0..(. EQUD &C07F|
00001460  30 30 37 45 0d 0a 32 13  20 45 51 55 44 20 26 45  |007E..2. EQUD &E|
00001470  30 37 46 46 30 37 46 0d  0a 3c 13 20 45 51 55 44  |07FF07F..<. EQUD|
00001480  20 26 43 30 36 33 38 30  37 46 0d 0a 46 13 20 45  | &C063807F..F. E|
00001490  51 55 44 20 26 46 30 30  30 45 30 30 31 0d 0a 50  |QUD &F000E001..P|
000014a0  13 20 45 51 55 44 20 26  33 43 30 30 37 38 30 30  |. EQUD &3C007800|
000014b0  0d 0a 5a 0f 20 45 51 55  57 20 26 31 38 30 30 0d  |..Z. EQUW &1800.|
000014c0  0a 64 06 20 3a 0d 0a 6e  0c 20 2e 73 63 72 65 65  |.d. :..n. .scree|
000014d0  6e 0d 0a 78 13 20 45 51  55 44 20 26 30 30 30 31  |n..x. EQUD &0001|
000014e0  31 37 30 43 0d 0a 82 13  20 45 51 55 44 20 26 30  |170C.... EQUD &0|
000014f0  30 30 30 30 30 30 30 0d  0a 8c 0f 20 45 51 55 57  |0000000.... EQUW|
00001500  20 26 30 30 30 30 0d 0a  96 0d 20 45 51 55 42 20  | &0000.... EQUB |
00001510  26 30 30 0d 0a a0 13 20  45 51 55 44 20 26 30 37  |&00.... EQUD &07|
00001520  30 39 30 30 31 37 0d 0a  aa 13 20 45 51 55 44 20  |090017.... EQUD |
00001530  26 30 30 30 30 30 30 30  30 0d 0a b4 0f 20 45 51  |&00000000.... EQ|
00001540  55 57 20 26 30 30 30 30  0d 0a be 13 20 45 51 55  |UW &0000.... EQU|
00001550  44 20 26 32 36 30 34 30  30 31 37 0d 0a c8 13 20  |D &26040017.... |
00001560  45 51 55 44 20 26 30 30  30 30 30 30 30 30 0d 0a  |EQUD &00000000..|
00001570  d2 0f 20 45 51 55 57 20  26 30 30 30 30 0d 0a dc  |.. EQUW &0000...|
00001580  13 20 45 51 55 44 20 26  31 46 30 37 30 30 31 37  |. EQUD &1F070017|
00001590  0d 0a e6 13 20 45 51 55  44 20 26 30 30 30 30 30  |.... EQUD &00000|
000015a0  30 30 30 0d 0a f0 0f 20  45 51 55 57 20 26 30 30  |000.... EQUW &00|
000015b0  30 30 0d 0a fa 0d 20 45  51 55 42 20 26 46 46 0d  |00.... EQUB &FF.|
000015c0  0b 04 06 20 3a 0d 0b 0e  0e 20 2e 63 6f 64 65 5f  |... :.... .code_|
000015d0  65 6e 64 0d 0b 18 06 20  3a 0d 0b 22 07 20 5d 20  |end.... :..". ] |
000015e0  0d 0b 2c 0c 20 ed 20 63  6f 64 65 20 0d 0b 36 0e  |..,. . code ..6.|
000015f0  20 d6 20 64 65 73 6b 74  6f 70 0d ff              | . desktop..|
000015fc