Home » Archimedes archive » Acorn User » AU 1993-06.adf » !StarInfo_StarInfo » EightBit/CharDyn

EightBit/CharDyn

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 » Acorn User » AU 1993-06.adf » !StarInfo_StarInfo
Filename: EightBit/CharDyn
Read OK:
File size: 1B0D bytes
Load address: 0000
Exec address: 0000
Duplicates

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

File contents
   10REM     >CharDyn (Info1)
   20REM     Character Dynanimator Source
   30REM By  Andrew Bennett
   40REM For 8-bit machines
   50REM (c) BAU June 1993
   60:
   70MODE 7
   80PROCsetup
   90PROCassem
  100PROCcheck
  110PRINT "Saving 'CDcode'"
  120OSCLI"SAVE CDcode "+STR$~mem%+" +"+STR$~(theend-runanim)+" "+STR$~code%+" "+STR$~runanim
  130END
  140:
  150DEF PROCsetup
  160code%=&900:data%=&1100
  170maxprogs%=4
  180maxobjs%=32
  190zp1=&70:zp2=&72
  200osbyte=&FFF4:oswrch=&FFEE
  210DIM mem% &1000
  220ENDPROC
  230:
  240DEF PROCassem
  250PRINT "Assembling..."
  260FOR opt%=4 TO 6 STEP 2
  270P%=code%:O%=mem%
  280[OPT opt%
  290.runanim
  300STX zp1
  310STY zp1+1
  320LDY #0
  330LDA (zp1),Y
  340BEQ ra_exit
  350CMP #maxprogs%+1
  360BCS ra_exit
  370JSR setup_progs
  380JSR setup_objs
  390.ra_loop1
  400LDA #19
  410JSR osbyte
  420JSR draw_objs
  430JSR run_objs
  440JSR run_progs
  450LDA ob_act_root
  460BNE ra_loop1
  470LDA pr_root
  480BNE ra_loop1
  490.ra_exit
  500RTS
  510:
  520.setup_progs
  530TAX
  540LDA #0
  550.sp_loop1
  560STA pr_next-1,X
  570INY
  580LDA (zp1),Y
  590STA zp2
  600INY
  610LDA (zp1),Y
  620STA zp2+1
  630STY temp1
  640LDY #0
  650LDA (zp2),Y
  660STA pr_wait-1,X
  670INY
  680LDA (zp2),Y
  690STA pr_delay-1,X
  700INY
  710LDA (zp2),Y
  720STA pr_dir-1,X
  730INY
  740LDA (zp2),Y
  750STA pr_len-1,X
  760CLC
  770LDA zp2
  780ADC #4
  790STA pr_strlo-1,X
  800LDA zp2+1
  810ADC #0
  820STA pr_strhi-1,X
  830CLC
  840LDA pr_strlo-1,X
  850ADC pr_len-1,X
  860STA pr_routelo-1,X
  870LDA pr_strhi-1,X
  880ADC #0
  890STA pr_routehi-1,X
  900LDA #0
  910LDY pr_dir-1,X
  920BPL sp_dirok
  930LDA pr_len-1,X
  940SBC #0
  950.sp_dirok
  960STA pr_char-1,X
  970LDY temp1
  980TXA
  990DEX
 1000BNE sp_loop1
 1010STA pr_root
 1020RTS
 1030:
 1040.setup_objs
 1050LDA #0
 1060STA ob_act_root
 1070LDX #maxobjs%
 1080.so_loop1
 1090STA ob_next-1,X
 1100TXA
 1110DEX
 1120BNE so_loop1
 1130STA ob_del_root
 1140RTS
 1150:
 1160.draw_objs
 1170LDX ob_act_root
 1180BEQ dro_exit
 1190.dro_loop1
 1200STX temp1
 1210LDA ob_lastx-1,X
 1220CMP #&FF
 1230BEQ dro_notdel
 1240LDY ob_lasty-1,X
 1250JSR tab
 1260LDA #32
 1270JSR oswrch
 1280LDX temp1
 1290.dro_notdel
 1300LDA ob_y-1,X
 1310STA ob_lasty-1,X
 1320TAY
 1330LDA ob_x-1,X
 1340STA ob_lastx-1,X
 1350CMP #&FF
 1360BEQ dro_ignore
 1370JSR tab
 1380LDX temp1
 1390LDA ob_char-1,X
 1400JSR oswrch
 1410.dro_ignore
 1420LDY temp1
 1430LDX ob_next-1,Y
 1440BNE dro_loop1
 1450.dro_exit
 1460RTS
 1470:
 1480.tab
 1490TAX
 1500LDA #31
 1510JSR oswrch
 1520TXA
 1530JSR oswrch
 1540TYA
 1550JMP oswrch
 1560:
 1570.run_progs
 1580LDY #0
 1590LDX pr_root
 1600BEQ rp_exit
 1610.rp_loop1
 1620LDA pr_len-1,X
 1630BNE rp_notfin
 1640LDA pr_next-1,X
 1650STA pr_next-1,Y
 1660TAX
 1670BNE rp_loop1
 1680BEQ rp_exit
 1690.rp_notfin
 1700LDA pr_wait-1,X
 1710BNE rp_waiting
 1720LDA ob_del_root
 1730BEQ rp_nextiter
 1740STX temp1
 1750STY temp2
 1760LDY temp1
 1770JSR open_obj
 1780LDX temp1
 1790LDY temp2
 1800CLC
 1810LDA pr_char-1,X
 1820ADC pr_dir-1,X
 1830STA pr_char-1,X
 1840DEC pr_len-1,X
 1850LDA pr_delay-1,X
 1860STA pr_wait-1,X
 1870BEQ rp_loop1
 1880.rp_waiting
 1890DEC pr_wait-1,X
 1900.rp_nextiter
 1910TXA
 1920TAY
 1930LDX pr_next-1,Y
 1940BNE rp_loop1
 1950.rp_exit
 1960RTS
 1970:
 1980.open_obj
 1990TAX
 2000LDA ob_next-1,X
 2010STA ob_del_root
 2020LDA ob_act_root
 2030STA ob_next-1,X
 2040STX ob_act_root
 2050LDA #&FF
 2060STA ob_lastx-1,X
 2070LDA #0
 2080STA ob_rel-1,X
 2090LDA pr_routelo-1,Y
 2100STA ob_routelo-1,X
 2110LDA pr_routehi-1,Y
 2120STA ob_routehi-1,X
 2130LDA pr_strlo-1,Y
 2140STA zp1
 2150LDA pr_strhi-1,Y
 2160STA zp1+1
 2170LDA pr_char-1,Y
 2180STA ob_offset-1,X
 2190TAY
 2200LDA (zp1),Y
 2210STA ob_char-1,X
 2220LDY #0
 2230:
 2240.open_line
 2250STY temp3
 2260LDA ob_routelo-1,X
 2270STA zp1
 2280LDA ob_routehi-1,X
 2290STA zp1+1
 2300LDY #0
 2310LDA (zp1),Y
 2320CMP #&FF
 2330BNE ol_notshutd
 2340LDY temp3
 2350LDA ob_next-1,X
 2360STA ob_next-1,Y
 2370LDA ob_del_root
 2380STA ob_next-1,X
 2390STX ob_del_root
 2400LDX ob_next-1,Y
 2410SEC
 2420RTS
 2430.ol_notshutd
 2440JSR get_cos
 2450STA ob_x-1,X
 2460TYA
 2470STA ob_y-1,X
 2480LDY #2
 2490LDA (zp1),Y
 2500CMP #&FF
 2510BNE ol_notfin
 2520LDA #1
 2530STA ob_len-1,X
 2540BNE ol_exit
 2550.ol_notfin
 2560JSR get_cos
 2570STY temp4
 2580LDY #1
 2590SEC
 2600SBC ob_x-1,X
 2610BCS ol_gt1
 2620EOR #&FF
 2630ADC #1
 2640LDY #&FF
 2650.ol_gt1
 2660STA ob_dx-1,X
 2670TYA
 2680STA ob_s1-1,X
 2690LDA temp4
 2700LDY #1
 2710SEC
 2720SBC ob_y-1,X
 2730BCS ol_gt2
 2740EOR #&FF
 2750ADC #1
 2760LDY #&FF
 2770.ol_gt2
 2780STA ob_dy-1,X
 2790TYA
 2800STA ob_s2-1,X
 2810LDA ob_dx-1,X
 2820CMP ob_dy-1,X
 2830BCS ol_noswap
 2840LDY ob_dy-1,X
 2850STA ob_dy-1,X
 2860TYA
 2870STA ob_dx-1,X
 2880.ol_noswap
 2890STA ob_len-1,X
 2900LDA #0
 2910ROL A
 2920STA ob_int-1,X
 2930LDA ob_dx-1,X
 2940LSR A
 2950EOR #&FF
 2960SEC
 2970ADC ob_dy-1,X
 2980STA ob_err-1,X
 2990.ol_exit
 3000CLC
 3010LDA ob_routelo-1,X
 3020ADC #2
 3030STA ob_routelo-1,X
 3040LDA ob_routehi-1,X
 3050ADC #0
 3060STA ob_routehi-1,X
 3070LDY temp3
 3080LDA ob_len-1,X
 3090BNE ol_done
 3100JMP open_line
 3110.ol_done
 3120CLC
 3130RTS
 3140:
 3150.get_cos
 3160AND #&7F
 3170STA temp5
 3180LDA (zp1),Y
 3190ORA ob_rel-1,X
 3200STA ob_rel-1,X
 3210BPL gc_notoff
 3220LDA temp5
 3230CLC
 3240ADC ob_offset-1,X
 3250STA temp5
 3260.gc_notoff
 3270INY
 3280LDA (zp1),Y
 3290AND #&7F
 3300TAY
 3310LDA temp5
 3320RTS
 3330:
 3340.run_objs
 3350LDY #0
 3360LDX ob_act_root
 3370BEQ ro_exit
 3380.ro_loop1
 3390DEC ob_len-1,X
 3400BNE ro_notdone
 3410JSR open_line
 3420BCS ro_check
 3430BCC ro_nextobj
 3440.ro_notdone
 3450JSR step_point
 3460.ro_nextobj
 3470TXA
 3480TAY
 3490LDX ob_next-1,Y
 3500.ro_check
 3510BNE ro_loop1
 3520.ro_exit
 3530RTS
 3540:
 3550.step_point
 3560LDA ob_err-1,X
 3570BMI stp_nextbit
 3580SEC
 3590SBC ob_dx-1,X
 3600STA ob_err-1,X
 3610LDA ob_int-1,X
 3620BNE stp_int1
 3630CLC
 3640LDA ob_x-1,X
 3650ADC ob_s1-1,X
 3660STA ob_x-1,X
 3670JMP stp_nextbit
 3680.stp_int1
 3690CLC
 3700LDA ob_y-1,X
 3710ADC ob_s2-1,X
 3720STA ob_y-1,X
 3730.stp_nextbit
 3740CLC
 3750LDA ob_err-1,X
 3760ADC ob_dy-1,X
 3770STA ob_err-1,X
 3780LDA ob_int-1,X
 3790BNE stp_int2
 3800CLC
 3810LDA ob_y-1,X
 3820ADC ob_s2-1,X
 3830STA ob_y-1,X
 3840RTS
 3850.stp_int2
 3860CLC
 3870LDA ob_x-1,X
 3880ADC ob_s1-1,X
 3890STA ob_x-1,X
 3900RTS
 3910:
 3920.theend
 3930]
 3940P%=data%
 3950[OPT opt%
 3960.pr_root     EQUB 0
 3970.pr_next     OPT FNds(maxprogs%)
 3980.pr_wait     OPT FNds(maxprogs%)
 3990.pr_delay    OPT FNds(maxprogs%)
 4000.pr_dir      OPT FNds(maxprogs%)
 4010.pr_len      OPT FNds(maxprogs%)
 4020.pr_char     OPT FNds(maxprogs%)
 4030.pr_strlo    OPT FNds(maxprogs%)
 4040.pr_strhi    OPT FNds(maxprogs%)
 4050.pr_routelo  OPT FNds(maxprogs%)
 4060.pr_routehi  OPT FNds(maxprogs%)
 4070:
 4080.ob_del_root EQUB 0
 4090.ob_act_root EQUB 0
 4100.ob_next     OPT FNds(maxobjs%)
 4110.ob_lastx    OPT FNds(maxobjs%)
 4120.ob_lasty    OPT FNds(maxobjs%)
 4130.ob_x        OPT FNds(maxobjs%)
 4140.ob_y        OPT FNds(maxobjs%)
 4150.ob_char     OPT FNds(maxobjs%)
 4160.ob_err      OPT FNds(maxobjs%)
 4170.ob_dx       OPT FNds(maxobjs%)
 4180.ob_dy       OPT FNds(maxobjs%)
 4190.ob_s1       OPT FNds(maxobjs%)
 4200.ob_s2       OPT FNds(maxobjs%)
 4210.ob_int      OPT FNds(maxobjs%)
 4220.ob_len      OPT FNds(maxobjs%)
 4230.ob_rel      OPT FNds(maxobjs%)
 4240.ob_offset   OPT FNds(maxobjs%)
 4250.ob_routelo  OPT FNds(maxobjs%)
 4260.ob_routehi  OPT FNds(maxobjs%)
 4270:
 4280.temp1 EQUB 0
 4290.temp2 EQUB 0
 4300.temp3 EQUB 0
 4310.temp4 EQUB 0
 4320.temp5 EQUB 0
 4330]
 4340NEXT
 4350ENDPROC
 4360:
 4370DEF FNds(space%)
 4380P%=P%+space%:O%=O%+space%
 4390=opt%
 4400:
 4410DEF PROCcheck
 4420total%=0
 4430FOR a%=mem% TO mem%+theend-runanim-1
 4440total%=total%+?a%
 4450NEXT
 4460IF total%<>72204 PRINT"Checksum error":VDU7:END
 4470ENDPROC

�     >CharDyn (Info1)
&�     Character Dynanimator Source
� By  Andrew Bennett
(� For 8-bit machines
2� (c) BAU June 1993
<:
F� 7
P
�setup
Z
�assem
d
�check
n� "Saving 'CDcode'"
xL�"SAVE CDcode "+�~mem%+" +"+�~(theend-runanim)+" "+�~code%+" "+�~runanim
��
�:
�� �setup
�code%=&900:data%=&1100
�maxprogs%=4
�maxobjs%=32
�zp1=&70:zp2=&72
�osbyte=&FFF4:oswrch=&FFEE
�� mem% &1000
��
�:
�� �assem
�� "Assembling..."
� opt%=4 � 6 � 2
P%=code%:O%=mem%

[OPT opt%
".runanim
,STX zp1
6
STY zp1+1
@
LDY #0
JLDA (zp1),Y
TBEQ ra_exit
^CMP #maxprogs%+1
hBCS ra_exit
rJSR setup_progs
|JSR setup_objs
�
.ra_loop1
�LDA #19
�JSR osbyte
�JSR draw_objs
�JSR run_objs
�JSR run_progs
�LDA ob_act_root
�BNE ra_loop1
�LDA pr_root
�BNE ra_loop1
�.ra_exit
�RTS
�:
.setup_progs
TAX

LDA #0
&
.sp_loop1
0STA pr_next-1,X
:INY
DLDA (zp1),Y
NSTA zp2
XINY
bLDA (zp1),Y
l
STA zp2+1
v
STY temp1
�
LDY #0
�LDA (zp2),Y
�STA pr_wait-1,X
�INY
�LDA (zp2),Y
�STA pr_delay-1,X
�INY
�LDA (zp2),Y
�STA pr_dir-1,X
�INY
�LDA (zp2),Y
�STA pr_len-1,X
�CLC
LDA zp2

ADC #4
STA pr_strlo-1,X
 
LDA zp2+1
*
ADC #0
4STA pr_strhi-1,X
>CLC
HLDA pr_strlo-1,X
RADC pr_len-1,X
\STA pr_routelo-1,X
fLDA pr_strhi-1,X
p
ADC #0
zSTA pr_routehi-1,X
�
LDA #0
�LDY pr_dir-1,X
�BPL sp_dirok
�LDA pr_len-1,X
�
SBC #0
�
.sp_dirok
�STA pr_char-1,X
�
LDY temp1
�TXA
�DEX
�BNE sp_loop1
�STA pr_root
�RTS
:
.setup_objs

LDA #0
$STA ob_act_root
.LDX #maxobjs%
8
.so_loop1
BSTA ob_next-1,X
LTXA
VDEX
`BNE so_loop1
jSTA ob_del_root
tRTS
~:
�.draw_objs
�LDX ob_act_root
�BEQ dro_exit
�.dro_loop1
�
STX temp1
�LDA ob_lastx-1,X
�CMP #&FF
�BEQ dro_notdel
�LDY ob_lasty-1,X
�JSR tab
�LDA #32
�JSR oswrch

LDX temp1

.dro_notdel
LDA ob_y-1,X
STA ob_lasty-1,X
(TAY
2LDA ob_x-1,X
<STA ob_lastx-1,X
FCMP #&FF
PBEQ dro_ignore
ZJSR tab
d
LDX temp1
nLDA ob_char-1,X
xJSR oswrch
�.dro_ignore
�
LDY temp1
�LDX ob_next-1,Y
�BNE dro_loop1
�
.dro_exit
�RTS
�:
�.tab
�TAX
�LDA #31
�JSR oswrch
�TXA
�JSR oswrch
TYA
JMP oswrch
:
".run_progs
,
LDY #0
6LDX pr_root
@BEQ rp_exit
J
.rp_loop1
TLDA pr_len-1,X
^BNE rp_notfin
hLDA pr_next-1,X
rSTA pr_next-1,Y
|TAX
�BNE rp_loop1
�BEQ rp_exit
�.rp_notfin
�LDA pr_wait-1,X
�BNE rp_waiting
�LDA ob_del_root
�BEQ rp_nextiter
�
STX temp1
�
STY temp2
�
LDY temp1
�JSR open_obj
�
LDX temp1
�
LDY temp2
CLC
LDA pr_char-1,X
ADC pr_dir-1,X
&STA pr_char-1,X
0DEC pr_len-1,X
:LDA pr_delay-1,X
DSTA pr_wait-1,X
NBEQ rp_loop1
X.rp_waiting
bDEC pr_wait-1,X
l.rp_nextiter
vTXA
�TAY
�LDX pr_next-1,Y
�BNE rp_loop1
�.rp_exit
�RTS
�:
�
.open_obj
�TAX
�LDA ob_next-1,X
�STA ob_del_root
�LDA ob_act_root
�STA ob_next-1,X
�STX ob_act_root
LDA #&FF
STA ob_lastx-1,X

LDA #0
 STA ob_rel-1,X
*LDA pr_routelo-1,Y
4STA ob_routelo-1,X
>LDA pr_routehi-1,Y
HSTA ob_routehi-1,X
RLDA pr_strlo-1,Y
\STA zp1
fLDA pr_strhi-1,Y
p
STA zp1+1
zLDA pr_char-1,Y
�STA ob_offset-1,X
�TAY
�LDA (zp1),Y
�STA ob_char-1,X
�
LDY #0
�:
�.open_line
�
STY temp3
�LDA ob_routelo-1,X
�STA zp1
�LDA ob_routehi-1,X
�
STA zp1+1
�
LDY #0
	LDA (zp1),Y
	CMP #&FF
	BNE ol_notshutd
	$
LDY temp3
	.LDA ob_next-1,X
	8STA ob_next-1,Y
	BLDA ob_del_root
	LSTA ob_next-1,X
	VSTX ob_del_root
	`LDX ob_next-1,Y
	jSEC
	tRTS
	~.ol_notshutd
	�JSR get_cos
	�STA ob_x-1,X
	�TYA
	�STA ob_y-1,X
	�
LDY #2
	�LDA (zp1),Y
	�CMP #&FF
	�BNE ol_notfin
	�
LDA #1
	�STA ob_len-1,X
	�BNE ol_exit
	�.ol_notfin
JSR get_cos


STY temp4

LDY #1
SEC
(SBC ob_x-1,X
2BCS ol_gt1
<
� #&FF
F
ADC #1
PLDY #&FF
Z.ol_gt1
dSTA ob_dx-1,X
nTYA
xSTA ob_s1-1,X
�
LDA temp4
�
LDY #1
�SEC
�SBC ob_y-1,X
�BCS ol_gt2
�
� #&FF
�
ADC #1
�LDY #&FF
�.ol_gt2
�STA ob_dy-1,X
�TYA
�STA ob_s2-1,X
�LDA ob_dx-1,X
CMP ob_dy-1,X
BCS ol_noswap
LDY ob_dy-1,X
"STA ob_dy-1,X
,TYA
6STA ob_dx-1,X
@.ol_noswap
JSTA ob_len-1,X
T
LDA #0
^	ROL A
hSTA ob_int-1,X
rLDA ob_dx-1,X
|	LSR A
�
� #&FF
�SEC
�ADC ob_dy-1,X
�STA ob_err-1,X
�.ol_exit
�CLC
�LDA ob_routelo-1,X
�
ADC #2
�STA ob_routelo-1,X
�LDA ob_routehi-1,X
�
ADC #0
�STA ob_routehi-1,X
�
LDY temp3
LDA ob_len-1,X
BNE ol_done
JMP open_line
&.ol_done
0CLC
:RTS
D:
N.get_cos
X
� #&7F
b
STA temp5
lLDA (zp1),Y
v�A ob_rel-1,X
�STA ob_rel-1,X
�BPL gc_notoff
�
LDA temp5
�CLC
�ADC ob_offset-1,X
�
STA temp5
�.gc_notoff
�INY
�LDA (zp1),Y
�
� #&7F
�TAY
�
LDA temp5
�RTS

:


.run_objs


LDY #0

 LDX ob_act_root

*BEQ ro_exit

4
.ro_loop1

>DEC ob_len-1,X

HBNE ro_notdone

RJSR open_line

\BCS ro_check

fBCC ro_nextobj

p.ro_notdone

zJSR step_point

�.ro_nextobj

�TXA

�TAY

�LDX ob_next-1,Y

�
.ro_check

�BNE ro_loop1

�.ro_exit

�RTS

�:

�.step_point

�LDA ob_err-1,X

�BMI stp_nextbit

�SEC
SBC ob_dx-1,X
STA ob_err-1,X
LDA ob_int-1,X
$BNE stp_int1
.CLC
8LDA ob_x-1,X
BADC ob_s1-1,X
LSTA ob_x-1,X
VJMP stp_nextbit
`
.stp_int1
jCLC
tLDA ob_y-1,X
~ADC ob_s2-1,X
�STA ob_y-1,X
�.stp_nextbit
�CLC
�LDA ob_err-1,X
�ADC ob_dy-1,X
�STA ob_err-1,X
�LDA ob_int-1,X
�BNE stp_int2
�CLC
�LDA ob_y-1,X
�ADC ob_s2-1,X
�STA ob_y-1,X
RTS


.stp_int2
CLC
LDA ob_x-1,X
(ADC ob_s1-1,X
2STA ob_x-1,X
<RTS
F:
P.theend
Z]
dP%=data%
n
[OPT opt%
x.pr_root     EQUB 0
�#.pr_next     OPT �ds(maxprogs%)
�#.pr_wait     OPT �ds(maxprogs%)
�#.pr_delay    OPT �ds(maxprogs%)
�#.pr_dir      OPT �ds(maxprogs%)
�#.pr_len      OPT �ds(maxprogs%)
�#.pr_char     OPT �ds(maxprogs%)
�#.pr_strlo    OPT �ds(maxprogs%)
�#.pr_strhi    OPT �ds(maxprogs%)
�#.pr_routelo  OPT �ds(maxprogs%)
�#.pr_routehi  OPT �ds(maxprogs%)
�:
�.ob_del_root EQUB 0
�.ob_act_root EQUB 0
".ob_next     OPT �ds(maxobjs%)
".ob_lastx    OPT �ds(maxobjs%)
".ob_lasty    OPT �ds(maxobjs%)
"".ob_x        OPT �ds(maxobjs%)
,".ob_y        OPT �ds(maxobjs%)
6".ob_char     OPT �ds(maxobjs%)
@".ob_err      OPT �ds(maxobjs%)
J".ob_dx       OPT �ds(maxobjs%)
T".ob_dy       OPT �ds(maxobjs%)
^".ob_s1       OPT �ds(maxobjs%)
h".ob_s2       OPT �ds(maxobjs%)
r".ob_int      OPT �ds(maxobjs%)
|".ob_len      OPT �ds(maxobjs%)
�".ob_rel      OPT �ds(maxobjs%)
�".ob_offset   OPT �ds(maxobjs%)
�".ob_routelo  OPT �ds(maxobjs%)
�".ob_routehi  OPT �ds(maxobjs%)
�:
�.temp1 EQUB 0
�.temp2 EQUB 0
�.temp3 EQUB 0
�.temp4 EQUB 0
�.temp5 EQUB 0
�]
��
��
:
� �ds(space%)
P%=P%+space%:O%=O%+space%
&	=opt%
0:
:� �check
Dtotal%=0
N%� a%=mem% � mem%+theend-runanim-1
Xtotal%=total%+?a%
b�
l*� total%<>72204 �"Checksum error":�7:�
v�
�
00000000  0d 00 0a 1a f4 20 20 20  20 20 3e 43 68 61 72 44  |.....     >CharD|
00000010  79 6e 20 28 49 6e 66 6f  31 29 0d 00 14 26 f4 20  |yn (Info1)...&. |
00000020  20 20 20 20 43 68 61 72  61 63 74 65 72 20 44 79  |    Character Dy|
00000030  6e 61 6e 69 6d 61 74 6f  72 20 53 6f 75 72 63 65  |nanimator Source|
00000040  0d 00 1e 18 f4 20 42 79  20 20 41 6e 64 72 65 77  |..... By  Andrew|
00000050  20 42 65 6e 6e 65 74 74  0d 00 28 18 f4 20 46 6f  | Bennett..(.. Fo|
00000060  72 20 38 2d 62 69 74 20  6d 61 63 68 69 6e 65 73  |r 8-bit machines|
00000070  0d 00 32 17 f4 20 28 63  29 20 42 41 55 20 4a 75  |..2.. (c) BAU Ju|
00000080  6e 65 20 31 39 39 33 0d  00 3c 05 3a 0d 00 46 07  |ne 1993..<.:..F.|
00000090  eb 20 37 0d 00 50 0a f2  73 65 74 75 70 0d 00 5a  |. 7..P..setup..Z|
000000a0  0a f2 61 73 73 65 6d 0d  00 64 0a f2 63 68 65 63  |..assem..d..chec|
000000b0  6b 0d 00 6e 17 f1 20 22  53 61 76 69 6e 67 20 27  |k..n.. "Saving '|
000000c0  43 44 63 6f 64 65 27 22  0d 00 78 4c ff 22 53 41  |CDcode'"..xL."SA|
000000d0  56 45 20 43 44 63 6f 64  65 20 22 2b c3 7e 6d 65  |VE CDcode "+.~me|
000000e0  6d 25 2b 22 20 2b 22 2b  c3 7e 28 74 68 65 65 6e  |m%+" +"+.~(theen|
000000f0  64 2d 72 75 6e 61 6e 69  6d 29 2b 22 20 22 2b c3  |d-runanim)+" "+.|
00000100  7e 63 6f 64 65 25 2b 22  20 22 2b c3 7e 72 75 6e  |~code%+" "+.~run|
00000110  61 6e 69 6d 0d 00 82 05  e0 0d 00 8c 05 3a 0d 00  |anim.........:..|
00000120  96 0c dd 20 f2 73 65 74  75 70 0d 00 a0 1a 63 6f  |... .setup....co|
00000130  64 65 25 3d 26 39 30 30  3a 64 61 74 61 25 3d 26  |de%=&900:data%=&|
00000140  31 31 30 30 0d 00 aa 0f  6d 61 78 70 72 6f 67 73  |1100....maxprogs|
00000150  25 3d 34 0d 00 b4 0f 6d  61 78 6f 62 6a 73 25 3d  |%=4....maxobjs%=|
00000160  33 32 0d 00 be 13 7a 70  31 3d 26 37 30 3a 7a 70  |32....zp1=&70:zp|
00000170  32 3d 26 37 32 0d 00 c8  1d 6f 73 62 79 74 65 3d  |2=&72....osbyte=|
00000180  26 46 46 46 34 3a 6f 73  77 72 63 68 3d 26 46 46  |&FFF4:oswrch=&FF|
00000190  45 45 0d 00 d2 10 de 20  6d 65 6d 25 20 26 31 30  |EE..... mem% &10|
000001a0  30 30 0d 00 dc 05 e1 0d  00 e6 05 3a 0d 00 f0 0c  |00.........:....|
000001b0  dd 20 f2 61 73 73 65 6d  0d 00 fa 15 f1 20 22 41  |. .assem..... "A|
000001c0  73 73 65 6d 62 6c 69 6e  67 2e 2e 2e 22 0d 01 04  |ssembling..."...|
000001d0  14 e3 20 6f 70 74 25 3d  34 20 b8 20 36 20 88 20  |.. opt%=4 . 6 . |
000001e0  32 0d 01 0e 14 50 25 3d  63 6f 64 65 25 3a 4f 25  |2....P%=code%:O%|
000001f0  3d 6d 65 6d 25 0d 01 18  0d 5b 4f 50 54 20 6f 70  |=mem%....[OPT op|
00000200  74 25 0d 01 22 0c 2e 72  75 6e 61 6e 69 6d 0d 01  |t%.."..runanim..|
00000210  2c 0b 53 54 58 20 7a 70  31 0d 01 36 0d 53 54 59  |,.STX zp1..6.STY|
00000220  20 7a 70 31 2b 31 0d 01  40 0a 4c 44 59 20 23 30  | zp1+1..@.LDY #0|
00000230  0d 01 4a 0f 4c 44 41 20  28 7a 70 31 29 2c 59 0d  |..J.LDA (zp1),Y.|
00000240  01 54 0f 42 45 51 20 72  61 5f 65 78 69 74 0d 01  |.T.BEQ ra_exit..|
00000250  5e 14 43 4d 50 20 23 6d  61 78 70 72 6f 67 73 25  |^.CMP #maxprogs%|
00000260  2b 31 0d 01 68 0f 42 43  53 20 72 61 5f 65 78 69  |+1..h.BCS ra_exi|
00000270  74 0d 01 72 13 4a 53 52  20 73 65 74 75 70 5f 70  |t..r.JSR setup_p|
00000280  72 6f 67 73 0d 01 7c 12  4a 53 52 20 73 65 74 75  |rogs..|.JSR setu|
00000290  70 5f 6f 62 6a 73 0d 01  86 0d 2e 72 61 5f 6c 6f  |p_objs.....ra_lo|
000002a0  6f 70 31 0d 01 90 0b 4c  44 41 20 23 31 39 0d 01  |op1....LDA #19..|
000002b0  9a 0e 4a 53 52 20 6f 73  62 79 74 65 0d 01 a4 11  |..JSR osbyte....|
000002c0  4a 53 52 20 64 72 61 77  5f 6f 62 6a 73 0d 01 ae  |JSR draw_objs...|
000002d0  10 4a 53 52 20 72 75 6e  5f 6f 62 6a 73 0d 01 b8  |.JSR run_objs...|
000002e0  11 4a 53 52 20 72 75 6e  5f 70 72 6f 67 73 0d 01  |.JSR run_progs..|
000002f0  c2 13 4c 44 41 20 6f 62  5f 61 63 74 5f 72 6f 6f  |..LDA ob_act_roo|
00000300  74 0d 01 cc 10 42 4e 45  20 72 61 5f 6c 6f 6f 70  |t....BNE ra_loop|
00000310  31 0d 01 d6 0f 4c 44 41  20 70 72 5f 72 6f 6f 74  |1....LDA pr_root|
00000320  0d 01 e0 10 42 4e 45 20  72 61 5f 6c 6f 6f 70 31  |....BNE ra_loop1|
00000330  0d 01 ea 0c 2e 72 61 5f  65 78 69 74 0d 01 f4 07  |.....ra_exit....|
00000340  52 54 53 0d 01 fe 05 3a  0d 02 08 10 2e 73 65 74  |RTS....:.....set|
00000350  75 70 5f 70 72 6f 67 73  0d 02 12 07 54 41 58 0d  |up_progs....TAX.|
00000360  02 1c 0a 4c 44 41 20 23  30 0d 02 26 0d 2e 73 70  |...LDA #0..&..sp|
00000370  5f 6c 6f 6f 70 31 0d 02  30 13 53 54 41 20 70 72  |_loop1..0.STA pr|
00000380  5f 6e 65 78 74 2d 31 2c  58 0d 02 3a 07 49 4e 59  |_next-1,X..:.INY|
00000390  0d 02 44 0f 4c 44 41 20  28 7a 70 31 29 2c 59 0d  |..D.LDA (zp1),Y.|
000003a0  02 4e 0b 53 54 41 20 7a  70 32 0d 02 58 07 49 4e  |.N.STA zp2..X.IN|
000003b0  59 0d 02 62 0f 4c 44 41  20 28 7a 70 31 29 2c 59  |Y..b.LDA (zp1),Y|
000003c0  0d 02 6c 0d 53 54 41 20  7a 70 32 2b 31 0d 02 76  |..l.STA zp2+1..v|
000003d0  0d 53 54 59 20 74 65 6d  70 31 0d 02 80 0a 4c 44  |.STY temp1....LD|
000003e0  59 20 23 30 0d 02 8a 0f  4c 44 41 20 28 7a 70 32  |Y #0....LDA (zp2|
000003f0  29 2c 59 0d 02 94 13 53  54 41 20 70 72 5f 77 61  |),Y....STA pr_wa|
00000400  69 74 2d 31 2c 58 0d 02  9e 07 49 4e 59 0d 02 a8  |it-1,X....INY...|
00000410  0f 4c 44 41 20 28 7a 70  32 29 2c 59 0d 02 b2 14  |.LDA (zp2),Y....|
00000420  53 54 41 20 70 72 5f 64  65 6c 61 79 2d 31 2c 58  |STA pr_delay-1,X|
00000430  0d 02 bc 07 49 4e 59 0d  02 c6 0f 4c 44 41 20 28  |....INY....LDA (|
00000440  7a 70 32 29 2c 59 0d 02  d0 12 53 54 41 20 70 72  |zp2),Y....STA pr|
00000450  5f 64 69 72 2d 31 2c 58  0d 02 da 07 49 4e 59 0d  |_dir-1,X....INY.|
00000460  02 e4 0f 4c 44 41 20 28  7a 70 32 29 2c 59 0d 02  |...LDA (zp2),Y..|
00000470  ee 12 53 54 41 20 70 72  5f 6c 65 6e 2d 31 2c 58  |..STA pr_len-1,X|
00000480  0d 02 f8 07 43 4c 43 0d  03 02 0b 4c 44 41 20 7a  |....CLC....LDA z|
00000490  70 32 0d 03 0c 0a 41 44  43 20 23 34 0d 03 16 14  |p2....ADC #4....|
000004a0  53 54 41 20 70 72 5f 73  74 72 6c 6f 2d 31 2c 58  |STA pr_strlo-1,X|
000004b0  0d 03 20 0d 4c 44 41 20  7a 70 32 2b 31 0d 03 2a  |.. .LDA zp2+1..*|
000004c0  0a 41 44 43 20 23 30 0d  03 34 14 53 54 41 20 70  |.ADC #0..4.STA p|
000004d0  72 5f 73 74 72 68 69 2d  31 2c 58 0d 03 3e 07 43  |r_strhi-1,X..>.C|
000004e0  4c 43 0d 03 48 14 4c 44  41 20 70 72 5f 73 74 72  |LC..H.LDA pr_str|
000004f0  6c 6f 2d 31 2c 58 0d 03  52 12 41 44 43 20 70 72  |lo-1,X..R.ADC pr|
00000500  5f 6c 65 6e 2d 31 2c 58  0d 03 5c 16 53 54 41 20  |_len-1,X..\.STA |
00000510  70 72 5f 72 6f 75 74 65  6c 6f 2d 31 2c 58 0d 03  |pr_routelo-1,X..|
00000520  66 14 4c 44 41 20 70 72  5f 73 74 72 68 69 2d 31  |f.LDA pr_strhi-1|
00000530  2c 58 0d 03 70 0a 41 44  43 20 23 30 0d 03 7a 16  |,X..p.ADC #0..z.|
00000540  53 54 41 20 70 72 5f 72  6f 75 74 65 68 69 2d 31  |STA pr_routehi-1|
00000550  2c 58 0d 03 84 0a 4c 44  41 20 23 30 0d 03 8e 12  |,X....LDA #0....|
00000560  4c 44 59 20 70 72 5f 64  69 72 2d 31 2c 58 0d 03  |LDY pr_dir-1,X..|
00000570  98 10 42 50 4c 20 73 70  5f 64 69 72 6f 6b 0d 03  |..BPL sp_dirok..|
00000580  a2 12 4c 44 41 20 70 72  5f 6c 65 6e 2d 31 2c 58  |..LDA pr_len-1,X|
00000590  0d 03 ac 0a 53 42 43 20  23 30 0d 03 b6 0d 2e 73  |....SBC #0.....s|
000005a0  70 5f 64 69 72 6f 6b 0d  03 c0 13 53 54 41 20 70  |p_dirok....STA p|
000005b0  72 5f 63 68 61 72 2d 31  2c 58 0d 03 ca 0d 4c 44  |r_char-1,X....LD|
000005c0  59 20 74 65 6d 70 31 0d  03 d4 07 54 58 41 0d 03  |Y temp1....TXA..|
000005d0  de 07 44 45 58 0d 03 e8  10 42 4e 45 20 73 70 5f  |..DEX....BNE sp_|
000005e0  6c 6f 6f 70 31 0d 03 f2  0f 53 54 41 20 70 72 5f  |loop1....STA pr_|
000005f0  72 6f 6f 74 0d 03 fc 07  52 54 53 0d 04 06 05 3a  |root....RTS....:|
00000600  0d 04 10 0f 2e 73 65 74  75 70 5f 6f 62 6a 73 0d  |.....setup_objs.|
00000610  04 1a 0a 4c 44 41 20 23  30 0d 04 24 13 53 54 41  |...LDA #0..$.STA|
00000620  20 6f 62 5f 61 63 74 5f  72 6f 6f 74 0d 04 2e 11  | ob_act_root....|
00000630  4c 44 58 20 23 6d 61 78  6f 62 6a 73 25 0d 04 38  |LDX #maxobjs%..8|
00000640  0d 2e 73 6f 5f 6c 6f 6f  70 31 0d 04 42 13 53 54  |..so_loop1..B.ST|
00000650  41 20 6f 62 5f 6e 65 78  74 2d 31 2c 58 0d 04 4c  |A ob_next-1,X..L|
00000660  07 54 58 41 0d 04 56 07  44 45 58 0d 04 60 10 42  |.TXA..V.DEX..`.B|
00000670  4e 45 20 73 6f 5f 6c 6f  6f 70 31 0d 04 6a 13 53  |NE so_loop1..j.S|
00000680  54 41 20 6f 62 5f 64 65  6c 5f 72 6f 6f 74 0d 04  |TA ob_del_root..|
00000690  74 07 52 54 53 0d 04 7e  05 3a 0d 04 88 0e 2e 64  |t.RTS..~.:.....d|
000006a0  72 61 77 5f 6f 62 6a 73  0d 04 92 13 4c 44 58 20  |raw_objs....LDX |
000006b0  6f 62 5f 61 63 74 5f 72  6f 6f 74 0d 04 9c 10 42  |ob_act_root....B|
000006c0  45 51 20 64 72 6f 5f 65  78 69 74 0d 04 a6 0e 2e  |EQ dro_exit.....|
000006d0  64 72 6f 5f 6c 6f 6f 70  31 0d 04 b0 0d 53 54 58  |dro_loop1....STX|
000006e0  20 74 65 6d 70 31 0d 04  ba 14 4c 44 41 20 6f 62  | temp1....LDA ob|
000006f0  5f 6c 61 73 74 78 2d 31  2c 58 0d 04 c4 0c 43 4d  |_lastx-1,X....CM|
00000700  50 20 23 26 46 46 0d 04  ce 12 42 45 51 20 64 72  |P #&FF....BEQ dr|
00000710  6f 5f 6e 6f 74 64 65 6c  0d 04 d8 14 4c 44 59 20  |o_notdel....LDY |
00000720  6f 62 5f 6c 61 73 74 79  2d 31 2c 58 0d 04 e2 0b  |ob_lasty-1,X....|
00000730  4a 53 52 20 74 61 62 0d  04 ec 0b 4c 44 41 20 23  |JSR tab....LDA #|
00000740  33 32 0d 04 f6 0e 4a 53  52 20 6f 73 77 72 63 68  |32....JSR oswrch|
00000750  0d 05 00 0d 4c 44 58 20  74 65 6d 70 31 0d 05 0a  |....LDX temp1...|
00000760  0f 2e 64 72 6f 5f 6e 6f  74 64 65 6c 0d 05 14 10  |..dro_notdel....|
00000770  4c 44 41 20 6f 62 5f 79  2d 31 2c 58 0d 05 1e 14  |LDA ob_y-1,X....|
00000780  53 54 41 20 6f 62 5f 6c  61 73 74 79 2d 31 2c 58  |STA ob_lasty-1,X|
00000790  0d 05 28 07 54 41 59 0d  05 32 10 4c 44 41 20 6f  |..(.TAY..2.LDA o|
000007a0  62 5f 78 2d 31 2c 58 0d  05 3c 14 53 54 41 20 6f  |b_x-1,X..<.STA o|
000007b0  62 5f 6c 61 73 74 78 2d  31 2c 58 0d 05 46 0c 43  |b_lastx-1,X..F.C|
000007c0  4d 50 20 23 26 46 46 0d  05 50 12 42 45 51 20 64  |MP #&FF..P.BEQ d|
000007d0  72 6f 5f 69 67 6e 6f 72  65 0d 05 5a 0b 4a 53 52  |ro_ignore..Z.JSR|
000007e0  20 74 61 62 0d 05 64 0d  4c 44 58 20 74 65 6d 70  | tab..d.LDX temp|
000007f0  31 0d 05 6e 13 4c 44 41  20 6f 62 5f 63 68 61 72  |1..n.LDA ob_char|
00000800  2d 31 2c 58 0d 05 78 0e  4a 53 52 20 6f 73 77 72  |-1,X..x.JSR oswr|
00000810  63 68 0d 05 82 0f 2e 64  72 6f 5f 69 67 6e 6f 72  |ch.....dro_ignor|
00000820  65 0d 05 8c 0d 4c 44 59  20 74 65 6d 70 31 0d 05  |e....LDY temp1..|
00000830  96 13 4c 44 58 20 6f 62  5f 6e 65 78 74 2d 31 2c  |..LDX ob_next-1,|
00000840  59 0d 05 a0 11 42 4e 45  20 64 72 6f 5f 6c 6f 6f  |Y....BNE dro_loo|
00000850  70 31 0d 05 aa 0d 2e 64  72 6f 5f 65 78 69 74 0d  |p1.....dro_exit.|
00000860  05 b4 07 52 54 53 0d 05  be 05 3a 0d 05 c8 08 2e  |...RTS....:.....|
00000870  74 61 62 0d 05 d2 07 54  41 58 0d 05 dc 0b 4c 44  |tab....TAX....LD|
00000880  41 20 23 33 31 0d 05 e6  0e 4a 53 52 20 6f 73 77  |A #31....JSR osw|
00000890  72 63 68 0d 05 f0 07 54  58 41 0d 05 fa 0e 4a 53  |rch....TXA....JS|
000008a0  52 20 6f 73 77 72 63 68  0d 06 04 07 54 59 41 0d  |R oswrch....TYA.|
000008b0  06 0e 0e 4a 4d 50 20 6f  73 77 72 63 68 0d 06 18  |...JMP oswrch...|
000008c0  05 3a 0d 06 22 0e 2e 72  75 6e 5f 70 72 6f 67 73  |.:.."..run_progs|
000008d0  0d 06 2c 0a 4c 44 59 20  23 30 0d 06 36 0f 4c 44  |..,.LDY #0..6.LD|
000008e0  58 20 70 72 5f 72 6f 6f  74 0d 06 40 0f 42 45 51  |X pr_root..@.BEQ|
000008f0  20 72 70 5f 65 78 69 74  0d 06 4a 0d 2e 72 70 5f  | rp_exit..J..rp_|
00000900  6c 6f 6f 70 31 0d 06 54  12 4c 44 41 20 70 72 5f  |loop1..T.LDA pr_|
00000910  6c 65 6e 2d 31 2c 58 0d  06 5e 11 42 4e 45 20 72  |len-1,X..^.BNE r|
00000920  70 5f 6e 6f 74 66 69 6e  0d 06 68 13 4c 44 41 20  |p_notfin..h.LDA |
00000930  70 72 5f 6e 65 78 74 2d  31 2c 58 0d 06 72 13 53  |pr_next-1,X..r.S|
00000940  54 41 20 70 72 5f 6e 65  78 74 2d 31 2c 59 0d 06  |TA pr_next-1,Y..|
00000950  7c 07 54 41 58 0d 06 86  10 42 4e 45 20 72 70 5f  ||.TAX....BNE rp_|
00000960  6c 6f 6f 70 31 0d 06 90  0f 42 45 51 20 72 70 5f  |loop1....BEQ rp_|
00000970  65 78 69 74 0d 06 9a 0e  2e 72 70 5f 6e 6f 74 66  |exit.....rp_notf|
00000980  69 6e 0d 06 a4 13 4c 44  41 20 70 72 5f 77 61 69  |in....LDA pr_wai|
00000990  74 2d 31 2c 58 0d 06 ae  12 42 4e 45 20 72 70 5f  |t-1,X....BNE rp_|
000009a0  77 61 69 74 69 6e 67 0d  06 b8 13 4c 44 41 20 6f  |waiting....LDA o|
000009b0  62 5f 64 65 6c 5f 72 6f  6f 74 0d 06 c2 13 42 45  |b_del_root....BE|
000009c0  51 20 72 70 5f 6e 65 78  74 69 74 65 72 0d 06 cc  |Q rp_nextiter...|
000009d0  0d 53 54 58 20 74 65 6d  70 31 0d 06 d6 0d 53 54  |.STX temp1....ST|
000009e0  59 20 74 65 6d 70 32 0d  06 e0 0d 4c 44 59 20 74  |Y temp2....LDY t|
000009f0  65 6d 70 31 0d 06 ea 10  4a 53 52 20 6f 70 65 6e  |emp1....JSR open|
00000a00  5f 6f 62 6a 0d 06 f4 0d  4c 44 58 20 74 65 6d 70  |_obj....LDX temp|
00000a10  31 0d 06 fe 0d 4c 44 59  20 74 65 6d 70 32 0d 07  |1....LDY temp2..|
00000a20  08 07 43 4c 43 0d 07 12  13 4c 44 41 20 70 72 5f  |..CLC....LDA pr_|
00000a30  63 68 61 72 2d 31 2c 58  0d 07 1c 12 41 44 43 20  |char-1,X....ADC |
00000a40  70 72 5f 64 69 72 2d 31  2c 58 0d 07 26 13 53 54  |pr_dir-1,X..&.ST|
00000a50  41 20 70 72 5f 63 68 61  72 2d 31 2c 58 0d 07 30  |A pr_char-1,X..0|
00000a60  12 44 45 43 20 70 72 5f  6c 65 6e 2d 31 2c 58 0d  |.DEC pr_len-1,X.|
00000a70  07 3a 14 4c 44 41 20 70  72 5f 64 65 6c 61 79 2d  |.:.LDA pr_delay-|
00000a80  31 2c 58 0d 07 44 13 53  54 41 20 70 72 5f 77 61  |1,X..D.STA pr_wa|
00000a90  69 74 2d 31 2c 58 0d 07  4e 10 42 45 51 20 72 70  |it-1,X..N.BEQ rp|
00000aa0  5f 6c 6f 6f 70 31 0d 07  58 0f 2e 72 70 5f 77 61  |_loop1..X..rp_wa|
00000ab0  69 74 69 6e 67 0d 07 62  13 44 45 43 20 70 72 5f  |iting..b.DEC pr_|
00000ac0  77 61 69 74 2d 31 2c 58  0d 07 6c 10 2e 72 70 5f  |wait-1,X..l..rp_|
00000ad0  6e 65 78 74 69 74 65 72  0d 07 76 07 54 58 41 0d  |nextiter..v.TXA.|
00000ae0  07 80 07 54 41 59 0d 07  8a 13 4c 44 58 20 70 72  |...TAY....LDX pr|
00000af0  5f 6e 65 78 74 2d 31 2c  59 0d 07 94 10 42 4e 45  |_next-1,Y....BNE|
00000b00  20 72 70 5f 6c 6f 6f 70  31 0d 07 9e 0c 2e 72 70  | rp_loop1.....rp|
00000b10  5f 65 78 69 74 0d 07 a8  07 52 54 53 0d 07 b2 05  |_exit....RTS....|
00000b20  3a 0d 07 bc 0d 2e 6f 70  65 6e 5f 6f 62 6a 0d 07  |:.....open_obj..|
00000b30  c6 07 54 41 58 0d 07 d0  13 4c 44 41 20 6f 62 5f  |..TAX....LDA ob_|
00000b40  6e 65 78 74 2d 31 2c 58  0d 07 da 13 53 54 41 20  |next-1,X....STA |
00000b50  6f 62 5f 64 65 6c 5f 72  6f 6f 74 0d 07 e4 13 4c  |ob_del_root....L|
00000b60  44 41 20 6f 62 5f 61 63  74 5f 72 6f 6f 74 0d 07  |DA ob_act_root..|
00000b70  ee 13 53 54 41 20 6f 62  5f 6e 65 78 74 2d 31 2c  |..STA ob_next-1,|
00000b80  58 0d 07 f8 13 53 54 58  20 6f 62 5f 61 63 74 5f  |X....STX ob_act_|
00000b90  72 6f 6f 74 0d 08 02 0c  4c 44 41 20 23 26 46 46  |root....LDA #&FF|
00000ba0  0d 08 0c 14 53 54 41 20  6f 62 5f 6c 61 73 74 78  |....STA ob_lastx|
00000bb0  2d 31 2c 58 0d 08 16 0a  4c 44 41 20 23 30 0d 08  |-1,X....LDA #0..|
00000bc0  20 12 53 54 41 20 6f 62  5f 72 65 6c 2d 31 2c 58  | .STA ob_rel-1,X|
00000bd0  0d 08 2a 16 4c 44 41 20  70 72 5f 72 6f 75 74 65  |..*.LDA pr_route|
00000be0  6c 6f 2d 31 2c 59 0d 08  34 16 53 54 41 20 6f 62  |lo-1,Y..4.STA ob|
00000bf0  5f 72 6f 75 74 65 6c 6f  2d 31 2c 58 0d 08 3e 16  |_routelo-1,X..>.|
00000c00  4c 44 41 20 70 72 5f 72  6f 75 74 65 68 69 2d 31  |LDA pr_routehi-1|
00000c10  2c 59 0d 08 48 16 53 54  41 20 6f 62 5f 72 6f 75  |,Y..H.STA ob_rou|
00000c20  74 65 68 69 2d 31 2c 58  0d 08 52 14 4c 44 41 20  |tehi-1,X..R.LDA |
00000c30  70 72 5f 73 74 72 6c 6f  2d 31 2c 59 0d 08 5c 0b  |pr_strlo-1,Y..\.|
00000c40  53 54 41 20 7a 70 31 0d  08 66 14 4c 44 41 20 70  |STA zp1..f.LDA p|
00000c50  72 5f 73 74 72 68 69 2d  31 2c 59 0d 08 70 0d 53  |r_strhi-1,Y..p.S|
00000c60  54 41 20 7a 70 31 2b 31  0d 08 7a 13 4c 44 41 20  |TA zp1+1..z.LDA |
00000c70  70 72 5f 63 68 61 72 2d  31 2c 59 0d 08 84 15 53  |pr_char-1,Y....S|
00000c80  54 41 20 6f 62 5f 6f 66  66 73 65 74 2d 31 2c 58  |TA ob_offset-1,X|
00000c90  0d 08 8e 07 54 41 59 0d  08 98 0f 4c 44 41 20 28  |....TAY....LDA (|
00000ca0  7a 70 31 29 2c 59 0d 08  a2 13 53 54 41 20 6f 62  |zp1),Y....STA ob|
00000cb0  5f 63 68 61 72 2d 31 2c  58 0d 08 ac 0a 4c 44 59  |_char-1,X....LDY|
00000cc0  20 23 30 0d 08 b6 05 3a  0d 08 c0 0e 2e 6f 70 65  | #0....:.....ope|
00000cd0  6e 5f 6c 69 6e 65 0d 08  ca 0d 53 54 59 20 74 65  |n_line....STY te|
00000ce0  6d 70 33 0d 08 d4 16 4c  44 41 20 6f 62 5f 72 6f  |mp3....LDA ob_ro|
00000cf0  75 74 65 6c 6f 2d 31 2c  58 0d 08 de 0b 53 54 41  |utelo-1,X....STA|
00000d00  20 7a 70 31 0d 08 e8 16  4c 44 41 20 6f 62 5f 72  | zp1....LDA ob_r|
00000d10  6f 75 74 65 68 69 2d 31  2c 58 0d 08 f2 0d 53 54  |outehi-1,X....ST|
00000d20  41 20 7a 70 31 2b 31 0d  08 fc 0a 4c 44 59 20 23  |A zp1+1....LDY #|
00000d30  30 0d 09 06 0f 4c 44 41  20 28 7a 70 31 29 2c 59  |0....LDA (zp1),Y|
00000d40  0d 09 10 0c 43 4d 50 20  23 26 46 46 0d 09 1a 13  |....CMP #&FF....|
00000d50  42 4e 45 20 6f 6c 5f 6e  6f 74 73 68 75 74 64 0d  |BNE ol_notshutd.|
00000d60  09 24 0d 4c 44 59 20 74  65 6d 70 33 0d 09 2e 13  |.$.LDY temp3....|
00000d70  4c 44 41 20 6f 62 5f 6e  65 78 74 2d 31 2c 58 0d  |LDA ob_next-1,X.|
00000d80  09 38 13 53 54 41 20 6f  62 5f 6e 65 78 74 2d 31  |.8.STA ob_next-1|
00000d90  2c 59 0d 09 42 13 4c 44  41 20 6f 62 5f 64 65 6c  |,Y..B.LDA ob_del|
00000da0  5f 72 6f 6f 74 0d 09 4c  13 53 54 41 20 6f 62 5f  |_root..L.STA ob_|
00000db0  6e 65 78 74 2d 31 2c 58  0d 09 56 13 53 54 58 20  |next-1,X..V.STX |
00000dc0  6f 62 5f 64 65 6c 5f 72  6f 6f 74 0d 09 60 13 4c  |ob_del_root..`.L|
00000dd0  44 58 20 6f 62 5f 6e 65  78 74 2d 31 2c 59 0d 09  |DX ob_next-1,Y..|
00000de0  6a 07 53 45 43 0d 09 74  07 52 54 53 0d 09 7e 10  |j.SEC..t.RTS..~.|
00000df0  2e 6f 6c 5f 6e 6f 74 73  68 75 74 64 0d 09 88 0f  |.ol_notshutd....|
00000e00  4a 53 52 20 67 65 74 5f  63 6f 73 0d 09 92 10 53  |JSR get_cos....S|
00000e10  54 41 20 6f 62 5f 78 2d  31 2c 58 0d 09 9c 07 54  |TA ob_x-1,X....T|
00000e20  59 41 0d 09 a6 10 53 54  41 20 6f 62 5f 79 2d 31  |YA....STA ob_y-1|
00000e30  2c 58 0d 09 b0 0a 4c 44  59 20 23 32 0d 09 ba 0f  |,X....LDY #2....|
00000e40  4c 44 41 20 28 7a 70 31  29 2c 59 0d 09 c4 0c 43  |LDA (zp1),Y....C|
00000e50  4d 50 20 23 26 46 46 0d  09 ce 11 42 4e 45 20 6f  |MP #&FF....BNE o|
00000e60  6c 5f 6e 6f 74 66 69 6e  0d 09 d8 0a 4c 44 41 20  |l_notfin....LDA |
00000e70  23 31 0d 09 e2 12 53 54  41 20 6f 62 5f 6c 65 6e  |#1....STA ob_len|
00000e80  2d 31 2c 58 0d 09 ec 0f  42 4e 45 20 6f 6c 5f 65  |-1,X....BNE ol_e|
00000e90  78 69 74 0d 09 f6 0e 2e  6f 6c 5f 6e 6f 74 66 69  |xit.....ol_notfi|
00000ea0  6e 0d 0a 00 0f 4a 53 52  20 67 65 74 5f 63 6f 73  |n....JSR get_cos|
00000eb0  0d 0a 0a 0d 53 54 59 20  74 65 6d 70 34 0d 0a 14  |....STY temp4...|
00000ec0  0a 4c 44 59 20 23 31 0d  0a 1e 07 53 45 43 0d 0a  |.LDY #1....SEC..|
00000ed0  28 10 53 42 43 20 6f 62  5f 78 2d 31 2c 58 0d 0a  |(.SBC ob_x-1,X..|
00000ee0  32 0e 42 43 53 20 6f 6c  5f 67 74 31 0d 0a 3c 0a  |2.BCS ol_gt1..<.|
00000ef0  82 20 23 26 46 46 0d 0a  46 0a 41 44 43 20 23 31  |. #&FF..F.ADC #1|
00000f00  0d 0a 50 0c 4c 44 59 20  23 26 46 46 0d 0a 5a 0b  |..P.LDY #&FF..Z.|
00000f10  2e 6f 6c 5f 67 74 31 0d  0a 64 11 53 54 41 20 6f  |.ol_gt1..d.STA o|
00000f20  62 5f 64 78 2d 31 2c 58  0d 0a 6e 07 54 59 41 0d  |b_dx-1,X..n.TYA.|
00000f30  0a 78 11 53 54 41 20 6f  62 5f 73 31 2d 31 2c 58  |.x.STA ob_s1-1,X|
00000f40  0d 0a 82 0d 4c 44 41 20  74 65 6d 70 34 0d 0a 8c  |....LDA temp4...|
00000f50  0a 4c 44 59 20 23 31 0d  0a 96 07 53 45 43 0d 0a  |.LDY #1....SEC..|
00000f60  a0 10 53 42 43 20 6f 62  5f 79 2d 31 2c 58 0d 0a  |..SBC ob_y-1,X..|
00000f70  aa 0e 42 43 53 20 6f 6c  5f 67 74 32 0d 0a b4 0a  |..BCS ol_gt2....|
00000f80  82 20 23 26 46 46 0d 0a  be 0a 41 44 43 20 23 31  |. #&FF....ADC #1|
00000f90  0d 0a c8 0c 4c 44 59 20  23 26 46 46 0d 0a d2 0b  |....LDY #&FF....|
00000fa0  2e 6f 6c 5f 67 74 32 0d  0a dc 11 53 54 41 20 6f  |.ol_gt2....STA o|
00000fb0  62 5f 64 79 2d 31 2c 58  0d 0a e6 07 54 59 41 0d  |b_dy-1,X....TYA.|
00000fc0  0a f0 11 53 54 41 20 6f  62 5f 73 32 2d 31 2c 58  |...STA ob_s2-1,X|
00000fd0  0d 0a fa 11 4c 44 41 20  6f 62 5f 64 78 2d 31 2c  |....LDA ob_dx-1,|
00000fe0  58 0d 0b 04 11 43 4d 50  20 6f 62 5f 64 79 2d 31  |X....CMP ob_dy-1|
00000ff0  2c 58 0d 0b 0e 11 42 43  53 20 6f 6c 5f 6e 6f 73  |,X....BCS ol_nos|
00001000  77 61 70 0d 0b 18 11 4c  44 59 20 6f 62 5f 64 79  |wap....LDY ob_dy|
00001010  2d 31 2c 58 0d 0b 22 11  53 54 41 20 6f 62 5f 64  |-1,X..".STA ob_d|
00001020  79 2d 31 2c 58 0d 0b 2c  07 54 59 41 0d 0b 36 11  |y-1,X..,.TYA..6.|
00001030  53 54 41 20 6f 62 5f 64  78 2d 31 2c 58 0d 0b 40  |STA ob_dx-1,X..@|
00001040  0e 2e 6f 6c 5f 6e 6f 73  77 61 70 0d 0b 4a 12 53  |..ol_noswap..J.S|
00001050  54 41 20 6f 62 5f 6c 65  6e 2d 31 2c 58 0d 0b 54  |TA ob_len-1,X..T|
00001060  0a 4c 44 41 20 23 30 0d  0b 5e 09 52 4f 4c 20 41  |.LDA #0..^.ROL A|
00001070  0d 0b 68 12 53 54 41 20  6f 62 5f 69 6e 74 2d 31  |..h.STA ob_int-1|
00001080  2c 58 0d 0b 72 11 4c 44  41 20 6f 62 5f 64 78 2d  |,X..r.LDA ob_dx-|
00001090  31 2c 58 0d 0b 7c 09 4c  53 52 20 41 0d 0b 86 0a  |1,X..|.LSR A....|
000010a0  82 20 23 26 46 46 0d 0b  90 07 53 45 43 0d 0b 9a  |. #&FF....SEC...|
000010b0  11 41 44 43 20 6f 62 5f  64 79 2d 31 2c 58 0d 0b  |.ADC ob_dy-1,X..|
000010c0  a4 12 53 54 41 20 6f 62  5f 65 72 72 2d 31 2c 58  |..STA ob_err-1,X|
000010d0  0d 0b ae 0c 2e 6f 6c 5f  65 78 69 74 0d 0b b8 07  |.....ol_exit....|
000010e0  43 4c 43 0d 0b c2 16 4c  44 41 20 6f 62 5f 72 6f  |CLC....LDA ob_ro|
000010f0  75 74 65 6c 6f 2d 31 2c  58 0d 0b cc 0a 41 44 43  |utelo-1,X....ADC|
00001100  20 23 32 0d 0b d6 16 53  54 41 20 6f 62 5f 72 6f  | #2....STA ob_ro|
00001110  75 74 65 6c 6f 2d 31 2c  58 0d 0b e0 16 4c 44 41  |utelo-1,X....LDA|
00001120  20 6f 62 5f 72 6f 75 74  65 68 69 2d 31 2c 58 0d  | ob_routehi-1,X.|
00001130  0b ea 0a 41 44 43 20 23  30 0d 0b f4 16 53 54 41  |...ADC #0....STA|
00001140  20 6f 62 5f 72 6f 75 74  65 68 69 2d 31 2c 58 0d  | ob_routehi-1,X.|
00001150  0b fe 0d 4c 44 59 20 74  65 6d 70 33 0d 0c 08 12  |...LDY temp3....|
00001160  4c 44 41 20 6f 62 5f 6c  65 6e 2d 31 2c 58 0d 0c  |LDA ob_len-1,X..|
00001170  12 0f 42 4e 45 20 6f 6c  5f 64 6f 6e 65 0d 0c 1c  |..BNE ol_done...|
00001180  11 4a 4d 50 20 6f 70 65  6e 5f 6c 69 6e 65 0d 0c  |.JMP open_line..|
00001190  26 0c 2e 6f 6c 5f 64 6f  6e 65 0d 0c 30 07 43 4c  |&..ol_done..0.CL|
000011a0  43 0d 0c 3a 07 52 54 53  0d 0c 44 05 3a 0d 0c 4e  |C..:.RTS..D.:..N|
000011b0  0c 2e 67 65 74 5f 63 6f  73 0d 0c 58 0a 80 20 23  |..get_cos..X.. #|
000011c0  26 37 46 0d 0c 62 0d 53  54 41 20 74 65 6d 70 35  |&7F..b.STA temp5|
000011d0  0d 0c 6c 0f 4c 44 41 20  28 7a 70 31 29 2c 59 0d  |..l.LDA (zp1),Y.|
000011e0  0c 76 11 84 41 20 6f 62  5f 72 65 6c 2d 31 2c 58  |.v..A ob_rel-1,X|
000011f0  0d 0c 80 12 53 54 41 20  6f 62 5f 72 65 6c 2d 31  |....STA ob_rel-1|
00001200  2c 58 0d 0c 8a 11 42 50  4c 20 67 63 5f 6e 6f 74  |,X....BPL gc_not|
00001210  6f 66 66 0d 0c 94 0d 4c  44 41 20 74 65 6d 70 35  |off....LDA temp5|
00001220  0d 0c 9e 07 43 4c 43 0d  0c a8 15 41 44 43 20 6f  |....CLC....ADC o|
00001230  62 5f 6f 66 66 73 65 74  2d 31 2c 58 0d 0c b2 0d  |b_offset-1,X....|
00001240  53 54 41 20 74 65 6d 70  35 0d 0c bc 0e 2e 67 63  |STA temp5.....gc|
00001250  5f 6e 6f 74 6f 66 66 0d  0c c6 07 49 4e 59 0d 0c  |_notoff....INY..|
00001260  d0 0f 4c 44 41 20 28 7a  70 31 29 2c 59 0d 0c da  |..LDA (zp1),Y...|
00001270  0a 80 20 23 26 37 46 0d  0c e4 07 54 41 59 0d 0c  |.. #&7F....TAY..|
00001280  ee 0d 4c 44 41 20 74 65  6d 70 35 0d 0c f8 07 52  |..LDA temp5....R|
00001290  54 53 0d 0d 02 05 3a 0d  0d 0c 0d 2e 72 75 6e 5f  |TS....:.....run_|
000012a0  6f 62 6a 73 0d 0d 16 0a  4c 44 59 20 23 30 0d 0d  |objs....LDY #0..|
000012b0  20 13 4c 44 58 20 6f 62  5f 61 63 74 5f 72 6f 6f  | .LDX ob_act_roo|
000012c0  74 0d 0d 2a 0f 42 45 51  20 72 6f 5f 65 78 69 74  |t..*.BEQ ro_exit|
000012d0  0d 0d 34 0d 2e 72 6f 5f  6c 6f 6f 70 31 0d 0d 3e  |..4..ro_loop1..>|
000012e0  12 44 45 43 20 6f 62 5f  6c 65 6e 2d 31 2c 58 0d  |.DEC ob_len-1,X.|
000012f0  0d 48 12 42 4e 45 20 72  6f 5f 6e 6f 74 64 6f 6e  |.H.BNE ro_notdon|
00001300  65 0d 0d 52 11 4a 53 52  20 6f 70 65 6e 5f 6c 69  |e..R.JSR open_li|
00001310  6e 65 0d 0d 5c 10 42 43  53 20 72 6f 5f 63 68 65  |ne..\.BCS ro_che|
00001320  63 6b 0d 0d 66 12 42 43  43 20 72 6f 5f 6e 65 78  |ck..f.BCC ro_nex|
00001330  74 6f 62 6a 0d 0d 70 0f  2e 72 6f 5f 6e 6f 74 64  |tobj..p..ro_notd|
00001340  6f 6e 65 0d 0d 7a 12 4a  53 52 20 73 74 65 70 5f  |one..z.JSR step_|
00001350  70 6f 69 6e 74 0d 0d 84  0f 2e 72 6f 5f 6e 65 78  |point.....ro_nex|
00001360  74 6f 62 6a 0d 0d 8e 07  54 58 41 0d 0d 98 07 54  |tobj....TXA....T|
00001370  41 59 0d 0d a2 13 4c 44  58 20 6f 62 5f 6e 65 78  |AY....LDX ob_nex|
00001380  74 2d 31 2c 59 0d 0d ac  0d 2e 72 6f 5f 63 68 65  |t-1,Y.....ro_che|
00001390  63 6b 0d 0d b6 10 42 4e  45 20 72 6f 5f 6c 6f 6f  |ck....BNE ro_loo|
000013a0  70 31 0d 0d c0 0c 2e 72  6f 5f 65 78 69 74 0d 0d  |p1.....ro_exit..|
000013b0  ca 07 52 54 53 0d 0d d4  05 3a 0d 0d de 0f 2e 73  |..RTS....:.....s|
000013c0  74 65 70 5f 70 6f 69 6e  74 0d 0d e8 12 4c 44 41  |tep_point....LDA|
000013d0  20 6f 62 5f 65 72 72 2d  31 2c 58 0d 0d f2 13 42  | ob_err-1,X....B|
000013e0  4d 49 20 73 74 70 5f 6e  65 78 74 62 69 74 0d 0d  |MI stp_nextbit..|
000013f0  fc 07 53 45 43 0d 0e 06  11 53 42 43 20 6f 62 5f  |..SEC....SBC ob_|
00001400  64 78 2d 31 2c 58 0d 0e  10 12 53 54 41 20 6f 62  |dx-1,X....STA ob|
00001410  5f 65 72 72 2d 31 2c 58  0d 0e 1a 12 4c 44 41 20  |_err-1,X....LDA |
00001420  6f 62 5f 69 6e 74 2d 31  2c 58 0d 0e 24 10 42 4e  |ob_int-1,X..$.BN|
00001430  45 20 73 74 70 5f 69 6e  74 31 0d 0e 2e 07 43 4c  |E stp_int1....CL|
00001440  43 0d 0e 38 10 4c 44 41  20 6f 62 5f 78 2d 31 2c  |C..8.LDA ob_x-1,|
00001450  58 0d 0e 42 11 41 44 43  20 6f 62 5f 73 31 2d 31  |X..B.ADC ob_s1-1|
00001460  2c 58 0d 0e 4c 10 53 54  41 20 6f 62 5f 78 2d 31  |,X..L.STA ob_x-1|
00001470  2c 58 0d 0e 56 13 4a 4d  50 20 73 74 70 5f 6e 65  |,X..V.JMP stp_ne|
00001480  78 74 62 69 74 0d 0e 60  0d 2e 73 74 70 5f 69 6e  |xtbit..`..stp_in|
00001490  74 31 0d 0e 6a 07 43 4c  43 0d 0e 74 10 4c 44 41  |t1..j.CLC..t.LDA|
000014a0  20 6f 62 5f 79 2d 31 2c  58 0d 0e 7e 11 41 44 43  | ob_y-1,X..~.ADC|
000014b0  20 6f 62 5f 73 32 2d 31  2c 58 0d 0e 88 10 53 54  | ob_s2-1,X....ST|
000014c0  41 20 6f 62 5f 79 2d 31  2c 58 0d 0e 92 10 2e 73  |A ob_y-1,X.....s|
000014d0  74 70 5f 6e 65 78 74 62  69 74 0d 0e 9c 07 43 4c  |tp_nextbit....CL|
000014e0  43 0d 0e a6 12 4c 44 41  20 6f 62 5f 65 72 72 2d  |C....LDA ob_err-|
000014f0  31 2c 58 0d 0e b0 11 41  44 43 20 6f 62 5f 64 79  |1,X....ADC ob_dy|
00001500  2d 31 2c 58 0d 0e ba 12  53 54 41 20 6f 62 5f 65  |-1,X....STA ob_e|
00001510  72 72 2d 31 2c 58 0d 0e  c4 12 4c 44 41 20 6f 62  |rr-1,X....LDA ob|
00001520  5f 69 6e 74 2d 31 2c 58  0d 0e ce 10 42 4e 45 20  |_int-1,X....BNE |
00001530  73 74 70 5f 69 6e 74 32  0d 0e d8 07 43 4c 43 0d  |stp_int2....CLC.|
00001540  0e e2 10 4c 44 41 20 6f  62 5f 79 2d 31 2c 58 0d  |...LDA ob_y-1,X.|
00001550  0e ec 11 41 44 43 20 6f  62 5f 73 32 2d 31 2c 58  |...ADC ob_s2-1,X|
00001560  0d 0e f6 10 53 54 41 20  6f 62 5f 79 2d 31 2c 58  |....STA ob_y-1,X|
00001570  0d 0f 00 07 52 54 53 0d  0f 0a 0d 2e 73 74 70 5f  |....RTS.....stp_|
00001580  69 6e 74 32 0d 0f 14 07  43 4c 43 0d 0f 1e 10 4c  |int2....CLC....L|
00001590  44 41 20 6f 62 5f 78 2d  31 2c 58 0d 0f 28 11 41  |DA ob_x-1,X..(.A|
000015a0  44 43 20 6f 62 5f 73 31  2d 31 2c 58 0d 0f 32 10  |DC ob_s1-1,X..2.|
000015b0  53 54 41 20 6f 62 5f 78  2d 31 2c 58 0d 0f 3c 07  |STA ob_x-1,X..<.|
000015c0  52 54 53 0d 0f 46 05 3a  0d 0f 50 0b 2e 74 68 65  |RTS..F.:..P..the|
000015d0  65 6e 64 0d 0f 5a 05 5d  0d 0f 64 0c 50 25 3d 64  |end..Z.]..d.P%=d|
000015e0  61 74 61 25 0d 0f 6e 0d  5b 4f 50 54 20 6f 70 74  |ata%..n.[OPT opt|
000015f0  25 0d 0f 78 17 2e 70 72  5f 72 6f 6f 74 20 20 20  |%..x..pr_root   |
00001600  20 20 45 51 55 42 20 30  0d 0f 82 23 2e 70 72 5f  |  EQUB 0...#.pr_|
00001610  6e 65 78 74 20 20 20 20  20 4f 50 54 20 a4 64 73  |next     OPT .ds|
00001620  28 6d 61 78 70 72 6f 67  73 25 29 0d 0f 8c 23 2e  |(maxprogs%)...#.|
00001630  70 72 5f 77 61 69 74 20  20 20 20 20 4f 50 54 20  |pr_wait     OPT |
00001640  a4 64 73 28 6d 61 78 70  72 6f 67 73 25 29 0d 0f  |.ds(maxprogs%)..|
00001650  96 23 2e 70 72 5f 64 65  6c 61 79 20 20 20 20 4f  |.#.pr_delay    O|
00001660  50 54 20 a4 64 73 28 6d  61 78 70 72 6f 67 73 25  |PT .ds(maxprogs%|
00001670  29 0d 0f a0 23 2e 70 72  5f 64 69 72 20 20 20 20  |)...#.pr_dir    |
00001680  20 20 4f 50 54 20 a4 64  73 28 6d 61 78 70 72 6f  |  OPT .ds(maxpro|
00001690  67 73 25 29 0d 0f aa 23  2e 70 72 5f 6c 65 6e 20  |gs%)...#.pr_len |
000016a0  20 20 20 20 20 4f 50 54  20 a4 64 73 28 6d 61 78  |     OPT .ds(max|
000016b0  70 72 6f 67 73 25 29 0d  0f b4 23 2e 70 72 5f 63  |progs%)...#.pr_c|
000016c0  68 61 72 20 20 20 20 20  4f 50 54 20 a4 64 73 28  |har     OPT .ds(|
000016d0  6d 61 78 70 72 6f 67 73  25 29 0d 0f be 23 2e 70  |maxprogs%)...#.p|
000016e0  72 5f 73 74 72 6c 6f 20  20 20 20 4f 50 54 20 a4  |r_strlo    OPT .|
000016f0  64 73 28 6d 61 78 70 72  6f 67 73 25 29 0d 0f c8  |ds(maxprogs%)...|
00001700  23 2e 70 72 5f 73 74 72  68 69 20 20 20 20 4f 50  |#.pr_strhi    OP|
00001710  54 20 a4 64 73 28 6d 61  78 70 72 6f 67 73 25 29  |T .ds(maxprogs%)|
00001720  0d 0f d2 23 2e 70 72 5f  72 6f 75 74 65 6c 6f 20  |...#.pr_routelo |
00001730  20 4f 50 54 20 a4 64 73  28 6d 61 78 70 72 6f 67  | OPT .ds(maxprog|
00001740  73 25 29 0d 0f dc 23 2e  70 72 5f 72 6f 75 74 65  |s%)...#.pr_route|
00001750  68 69 20 20 4f 50 54 20  a4 64 73 28 6d 61 78 70  |hi  OPT .ds(maxp|
00001760  72 6f 67 73 25 29 0d 0f  e6 05 3a 0d 0f f0 17 2e  |rogs%)....:.....|
00001770  6f 62 5f 64 65 6c 5f 72  6f 6f 74 20 45 51 55 42  |ob_del_root EQUB|
00001780  20 30 0d 0f fa 17 2e 6f  62 5f 61 63 74 5f 72 6f  | 0.....ob_act_ro|
00001790  6f 74 20 45 51 55 42 20  30 0d 10 04 22 2e 6f 62  |ot EQUB 0...".ob|
000017a0  5f 6e 65 78 74 20 20 20  20 20 4f 50 54 20 a4 64  |_next     OPT .d|
000017b0  73 28 6d 61 78 6f 62 6a  73 25 29 0d 10 0e 22 2e  |s(maxobjs%)...".|
000017c0  6f 62 5f 6c 61 73 74 78  20 20 20 20 4f 50 54 20  |ob_lastx    OPT |
000017d0  a4 64 73 28 6d 61 78 6f  62 6a 73 25 29 0d 10 18  |.ds(maxobjs%)...|
000017e0  22 2e 6f 62 5f 6c 61 73  74 79 20 20 20 20 4f 50  |".ob_lasty    OP|
000017f0  54 20 a4 64 73 28 6d 61  78 6f 62 6a 73 25 29 0d  |T .ds(maxobjs%).|
00001800  10 22 22 2e 6f 62 5f 78  20 20 20 20 20 20 20 20  |."".ob_x        |
00001810  4f 50 54 20 a4 64 73 28  6d 61 78 6f 62 6a 73 25  |OPT .ds(maxobjs%|
00001820  29 0d 10 2c 22 2e 6f 62  5f 79 20 20 20 20 20 20  |)..,".ob_y      |
00001830  20 20 4f 50 54 20 a4 64  73 28 6d 61 78 6f 62 6a  |  OPT .ds(maxobj|
00001840  73 25 29 0d 10 36 22 2e  6f 62 5f 63 68 61 72 20  |s%)..6".ob_char |
00001850  20 20 20 20 4f 50 54 20  a4 64 73 28 6d 61 78 6f  |    OPT .ds(maxo|
00001860  62 6a 73 25 29 0d 10 40  22 2e 6f 62 5f 65 72 72  |bjs%)..@".ob_err|
00001870  20 20 20 20 20 20 4f 50  54 20 a4 64 73 28 6d 61  |      OPT .ds(ma|
00001880  78 6f 62 6a 73 25 29 0d  10 4a 22 2e 6f 62 5f 64  |xobjs%)..J".ob_d|
00001890  78 20 20 20 20 20 20 20  4f 50 54 20 a4 64 73 28  |x       OPT .ds(|
000018a0  6d 61 78 6f 62 6a 73 25  29 0d 10 54 22 2e 6f 62  |maxobjs%)..T".ob|
000018b0  5f 64 79 20 20 20 20 20  20 20 4f 50 54 20 a4 64  |_dy       OPT .d|
000018c0  73 28 6d 61 78 6f 62 6a  73 25 29 0d 10 5e 22 2e  |s(maxobjs%)..^".|
000018d0  6f 62 5f 73 31 20 20 20  20 20 20 20 4f 50 54 20  |ob_s1       OPT |
000018e0  a4 64 73 28 6d 61 78 6f  62 6a 73 25 29 0d 10 68  |.ds(maxobjs%)..h|
000018f0  22 2e 6f 62 5f 73 32 20  20 20 20 20 20 20 4f 50  |".ob_s2       OP|
00001900  54 20 a4 64 73 28 6d 61  78 6f 62 6a 73 25 29 0d  |T .ds(maxobjs%).|
00001910  10 72 22 2e 6f 62 5f 69  6e 74 20 20 20 20 20 20  |.r".ob_int      |
00001920  4f 50 54 20 a4 64 73 28  6d 61 78 6f 62 6a 73 25  |OPT .ds(maxobjs%|
00001930  29 0d 10 7c 22 2e 6f 62  5f 6c 65 6e 20 20 20 20  |)..|".ob_len    |
00001940  20 20 4f 50 54 20 a4 64  73 28 6d 61 78 6f 62 6a  |  OPT .ds(maxobj|
00001950  73 25 29 0d 10 86 22 2e  6f 62 5f 72 65 6c 20 20  |s%)...".ob_rel  |
00001960  20 20 20 20 4f 50 54 20  a4 64 73 28 6d 61 78 6f  |    OPT .ds(maxo|
00001970  62 6a 73 25 29 0d 10 90  22 2e 6f 62 5f 6f 66 66  |bjs%)...".ob_off|
00001980  73 65 74 20 20 20 4f 50  54 20 a4 64 73 28 6d 61  |set   OPT .ds(ma|
00001990  78 6f 62 6a 73 25 29 0d  10 9a 22 2e 6f 62 5f 72  |xobjs%)...".ob_r|
000019a0  6f 75 74 65 6c 6f 20 20  4f 50 54 20 a4 64 73 28  |outelo  OPT .ds(|
000019b0  6d 61 78 6f 62 6a 73 25  29 0d 10 a4 22 2e 6f 62  |maxobjs%)...".ob|
000019c0  5f 72 6f 75 74 65 68 69  20 20 4f 50 54 20 a4 64  |_routehi  OPT .d|
000019d0  73 28 6d 61 78 6f 62 6a  73 25 29 0d 10 ae 05 3a  |s(maxobjs%)....:|
000019e0  0d 10 b8 11 2e 74 65 6d  70 31 20 45 51 55 42 20  |.....temp1 EQUB |
000019f0  30 0d 10 c2 11 2e 74 65  6d 70 32 20 45 51 55 42  |0.....temp2 EQUB|
00001a00  20 30 0d 10 cc 11 2e 74  65 6d 70 33 20 45 51 55  | 0.....temp3 EQU|
00001a10  42 20 30 0d 10 d6 11 2e  74 65 6d 70 34 20 45 51  |B 0.....temp4 EQ|
00001a20  55 42 20 30 0d 10 e0 11  2e 74 65 6d 70 35 20 45  |UB 0.....temp5 E|
00001a30  51 55 42 20 30 0d 10 ea  05 5d 0d 10 f4 05 ed 0d  |QUB 0....]......|
00001a40  10 fe 05 e1 0d 11 08 05  3a 0d 11 12 11 dd 20 a4  |........:..... .|
00001a50  64 73 28 73 70 61 63 65  25 29 0d 11 1c 1d 50 25  |ds(space%)....P%|
00001a60  3d 50 25 2b 73 70 61 63  65 25 3a 4f 25 3d 4f 25  |=P%+space%:O%=O%|
00001a70  2b 73 70 61 63 65 25 0d  11 26 09 3d 6f 70 74 25  |+space%..&.=opt%|
00001a80  0d 11 30 05 3a 0d 11 3a  0c dd 20 f2 63 68 65 63  |..0.:..:.. .chec|
00001a90  6b 0d 11 44 0c 74 6f 74  61 6c 25 3d 30 0d 11 4e  |k..D.total%=0..N|
00001aa0  25 e3 20 61 25 3d 6d 65  6d 25 20 b8 20 6d 65 6d  |%. a%=mem% . mem|
00001ab0  25 2b 74 68 65 65 6e 64  2d 72 75 6e 61 6e 69 6d  |%+theend-runanim|
00001ac0  2d 31 0d 11 58 15 74 6f  74 61 6c 25 3d 74 6f 74  |-1..X.total%=tot|
00001ad0  61 6c 25 2b 3f 61 25 0d  11 62 05 ed 0d 11 6c 2a  |al%+?a%..b....l*|
00001ae0  e7 20 74 6f 74 61 6c 25  3c 3e 37 32 32 30 34 20  |. total%<>72204 |
00001af0  f1 22 43 68 65 63 6b 73  75 6d 20 65 72 72 6f 72  |."Checksum error|
00001b00  22 3a ef 37 3a e0 0d 11  76 05 e1 0d ff           |":.7:...v....|
00001b0d