Mercurial > hg > Members > kono > nitros9-code
changeset 988:cf18a377dd4b
Disassembly and comments first pass. Module compiles to original crc. Was coded in C and seems to be a lot of unnecessary code in it
author | pwz |
---|---|
date | Thu, 20 Feb 2003 22:09:21 +0000 |
parents | 30f5cce9eb76 |
children | 979b7f290efc |
files | 3rdparty/packages/sierra/objs/tocgen.asm |
diffstat | 1 files changed, 3200 insertions(+), 674 deletions(-) [+] |
line wrap: on
line diff
--- a/3rdparty/packages/sierra/objs/tocgen.asm Mon Feb 17 22:56:25 2003 +0000 +++ b/3rdparty/packages/sierra/objs/tocgen.asm Thu Feb 20 22:09:21 2003 +0000 @@ -1,677 +1,3200 @@ +******************************************************************** +******************************************************************** +* TOCGEN - Kings Quest III Table of Contents module +* +* $Id$ +* +* Ed. Comments Who YY/MM/DD +* ------------------------------------------------------------------ +* 1 Disassembly of original distribution PWZ 03/01/31 +* added comments from the C-modules from +* dev system disk. This code recompiles to +* duplicate of the original module. +* +* +* +* Module header for original tocgen +* +* +* Header for : tocgen +* Module size: $1678 #5752 +* Module CRC : $FD7921 (Good) +* Hdr parity : $46 +* Exec. off : $001D #29 +* Data size : $054F #1359 +* Edition : $01 #1 +* Ty/La At/Rv: $11 $81 +* Prog mod, 6809 Obj, re-ent, R/O +* +******************************************************************** +*** +*** +*** See +*** Section 1 - The C Compiler system +*** Section 2 - Characteristics of Compiled Programs +*** of the Microware C compiler user's guide +*** for interesting info +*** Review the cstart.a +*** +******************************************************************** +* +* Definitions from compiler user guide +* labels defined in the linkage editor +* used to establish the end addresses of the respective sections +* etext - executable text +* edata - initialized data +* end - uninitialized data +* +* where is btext defined ??? + -L0000 fcb $87,$CD,$16,$78,$00,$0D,$11,$81 .M.x.... -L0008 fcb $46,$00,$1D,$05,$4F,$74,$6F,$63 F...Otoc -L0010 fcb $67,$65,$EE,$01,$A6,$A0,$A7,$C0 gen.& '@ -L0018 fcb $30,$1F,$26,$F8,$39,$34,$20,$34 0.&x94 4 -L0020 fcb $40,$4F,$5F,$A7,$C0,$5A,$26,$FB @O_'@Z&. -L0028 fcb $AE,$E4,$33,$84,$30,$89,$01,$CF .d3.0..O -L0030 fcb $34,$10,$31,$8D,$14,$CB,$AE,$A1 4.1..K.! -L0038 fcb $27,$04,$8D,$D8,$EE,$62,$33,$C9 '..Xnb3I -L0040 fcb $00,$01,$AE,$A1,$27,$03,$8D,$CC ...!'..L -L0048 fcb $4F,$11,$A3,$E4,$27,$04,$A7,$C0 O.#d'.'@ -L0050 fcb $20,$F7,$EE,$62,$EC,$A1,$27,$07 wnbl!'. -L0058 fcb $30,$8D,$FF,$A4,$17,$01,$03,$EC 0..$...l -L0060 fcb $A1,$27,$05,$30,$C4,$17,$00,$FA !'.0D..z -L0068 fcb $32,$64,$35,$10,$AF,$C9,$01,$A3 2d5./I.# -L0070 fcb $10,$AF,$C9,$01,$63,$CC,$00,$01 ./I.cL.. -L0078 fcb $ED,$C9,$01,$9F,$31,$C9,$01,$65 mI..1I.e -L0080 fcb $30,$E4,$A6,$80,$E6,$C9,$01,$A0 0d&.fI. -L0088 fcb $C1,$1D,$27,$54,$81,$0D,$27,$50 A.'T..'P -L0090 fcb $81,$20,$27,$04,$81,$2C,$26,$04 . '..,&. -L0098 fcb $A6,$80,$20,$F0,$81,$22,$27,$04 &. p."'. -L00A0 fcb $81,$27,$26,$1E,$AF,$A1,$6C,$C9 .'&./!lI -L00A8 fcb $01,$A0,$34,$02,$A6,$80,$81,$0D . 4.&... -L00B0 fcb $27,$04,$A1,$E4,$26,$F6,$35,$04 '.!d&v5. -L00B8 fcb $6F,$1F,$81,$0D,$27,$22,$A6,$80 o...'"&. -L00C0 fcb $20,$C2,$30,$1F,$AF,$A1,$30,$01 B0./!0. -L00C8 fcb $6C,$C9,$01,$A0,$81,$0D,$27,$0C lI. ..'. -L00D0 fcb $81,$20,$27,$08,$81,$2C,$27,$04 . '..,'. -L00D8 fcb $A6,$80,$20,$F0,$6F,$1F,$20,$A4 &. po. $ -L00E0 fcb $30,$C9,$01,$63,$34,$10,$EC,$C9 0I.c4.lI -L00E8 fcb $01,$9F,$34,$06,$31,$C4,$8D,$0A ..4.1D.. -L00F0 fcb $17,$00,$89,$6F,$E2,$6F,$E2,$17 ...obob. -L00F8 fcb $13,$FB,$30,$A9,$01,$CF,$AF,$A9 ..0).O/) -L0100 fcb $01,$AD,$10,$EF,$A9,$01,$A1,$10 .-.o).!. -L0108 fcb $EF,$A9,$01,$AF,$CC,$FF,$82,$30 o)./L..0 -L0110 fcb $EB,$AC,$A9,$01,$AF,$24,$0A,$AC k,)./$., -L0118 fcb $A9,$01,$AD,$25,$1E,$AF,$A9,$01 ).-%./). -L0120 fcb $AF,$39,$2A,$2A,$2A,$2A,$20,$53 /9**** S -L0128 fcb $54,$41,$43,$4B,$20,$4F,$56,$45 TACK OVE -L0130 fcb $52,$46,$4C,$4F,$57,$20,$2A,$2A RFLOW ** -L0138 fcb $2A,$2A,$0D,$30,$8C,$E4,$C6,$CF **.0.dFO -L0140 fcb $34,$04,$86,$02,$10,$8E,$00,$64 4......d -L0148 fcb $10,$3F,$8C,$6F,$E2,$17,$13,$AB .?.ob..+ -L0150 fcb $EC,$A9,$01,$A1,$A3,$A9,$01,$AF l).!#)./ -L0158 fcb $39,$EC,$A9,$01,$AF,$A3,$A9,$01 9l)./#). -L0160 fcb $AD,$39,$34,$10,$30,$AB,$30,$8B -94.0+0. -L0168 fcb $34,$10,$EC,$A1,$30,$CB,$EC,$84 4.l!0Kl. -L0170 fcb $E3,$62,$ED,$84,$10,$AC,$E4,$26 cbm..,d& -L0178 fcb $F1,$32,$64,$39,$34,$40,$CC,$FD q2d94@L. -L0180 fcb $57,$17,$FF,$8B,$32,$E9,$FD,$A3 W...2i.# -L0188 fcb $EC,$E9,$02,$61,$10,$83,$00,$02 li.a.... -L0190 fcb $27,$1A,$EC,$F9,$02,$63,$34,$06 '.ly.c4. -L0198 fcb $30,$8D,$03,$19,$34,$10,$17,$06 0...4... -L01A0 fcb $4E,$32,$64,$4F,$5F,$34,$06,$17 N2dO_4.. -L01A8 fcb $13,$4B,$32,$62,$30,$8D,$03,$18 .K2b0... -L01B0 fcb $34,$10,$AE,$E9,$02,$65,$EC,$02 4..i.el. -L01B8 fcb $34,$06,$17,$05,$12,$32,$64,$ED 4....2dm -L01C0 fcb $E9,$02,$5B,$26,$1C,$AE,$E9,$02 i.[&..i. -L01C8 fcb $63,$EC,$02,$34,$06,$30,$8D,$02 cl.4.0.. -L01D0 fcb $F9,$34,$10,$17,$06,$19,$32,$64 y4....2d -L01D8 fcb $4F,$5F,$34,$06,$17,$13,$16,$32 O_4....2 -L01E0 fcb $62,$4F,$5F,$ED,$E9,$00,$82,$58 bO_mi..X -L01E8 fcb $49,$30,$E4,$30,$8B,$4F,$5F,$ED I0d0.O_m -L01F0 fcb $84,$30,$E9,$00,$84,$AF,$E9,$02 .0i../i. -L01F8 fcb $55,$16,$01,$9A,$EC,$E9,$02,$57 U...li.W -L0200 fcb $C3,$00,$01,$ED,$E9,$02,$57,$E6 C..mi.Wf -L0208 fcb $F9,$02,$57,$C1,$0D,$27,$10,$E6 y.WA.'.f -L0210 fcb $F9,$02,$57,$C1,$64,$27,$08,$E6 y.WAd'.f -L0218 fcb $F9,$02,$57,$C1,$44,$26,$DD,$E6 y.WAD&]f -L0220 fcb $F9,$02,$57,$C1,$0D,$27,$20,$EC y.WA.' l -L0228 fcb $E9,$02,$57,$C3,$00,$01,$ED,$E9 i.WC..mi -L0230 fcb $02,$57,$34,$06,$17,$0F,$8B,$32 .W4....2 -L0238 fcb $62,$AE,$E9,$02,$55,$30,$01,$AF b.i.U0./ -L0240 fcb $E9,$02,$55,$E7,$1F,$20,$27,$30 i.Ug. '0 -L0248 fcb $E9,$02,$04,$34,$10,$30,$8D,$02 i..4.0.. -L0250 fcb $95,$34,$10,$17,$05,$99,$32,$64 .4....2d -L0258 fcb $4F,$5F,$34,$06,$17,$12,$96,$32 O_4....2 -L0260 fcb $62,$20,$0B,$EC,$E9,$02,$57,$C3 b .li.WC -L0268 fcb $00,$01,$ED,$E9,$02,$57,$E6,$F9 ..mi.Wfy -L0270 fcb $02,$57,$C1,$0D,$27,$10,$E6,$F9 .WA.'.fy -L0278 fcb $02,$57,$C1,$73,$27,$08,$E6,$F9 .WAs'.fy -L0280 fcb $02,$57,$C1,$53,$26,$DD,$E6,$F9 .WAS&]fy -L0288 fcb $02,$57,$C1,$0D,$27,$40,$EC,$E9 .WA.'@li -L0290 fcb $02,$57,$C3,$00,$01,$ED,$E9,$02 .WC..mi. -L0298 fcb $57,$34,$06,$17,$0F,$24,$32,$62 W4...$2b -L02A0 fcb $E7,$E9,$02,$5A,$C1,$01,$27,$08 gi.ZA.'. -L02A8 fcb $E6,$E9,$02,$5A,$C1,$02,$26,$12 fi.ZA.&. -L02B0 fcb $E6,$E9,$02,$5A,$AE,$E9,$02,$55 fi.Z.i.U -L02B8 fcb $30,$01,$AF,$E9,$02,$55,$E7,$1F 0./i.Ug. -L02C0 fcb $20,$26,$30,$E9,$02,$04,$34,$10 &0i..4. -L02C8 fcb $30,$8D,$02,$32,$20,$0A,$30,$E9 0..2 .0i -L02D0 fcb $02,$04,$34,$10,$30,$8D,$02,$3E ..4.0..> -L02D8 fcb $34,$10,$17,$05,$12,$32,$64,$4F 4....2dO -L02E0 fcb $5F,$34,$06,$17,$12,$0F,$32,$62 _4....2b -L02E8 fcb $4F,$5F,$E7,$E9,$02,$59,$20,$52 O_gi.Y R -L02F0 fcb $EC,$E9,$02,$57,$C3,$00,$01,$ED li.WC..m -L02F8 fcb $E9,$02,$57,$E6,$F9,$02,$57,$C1 i.Wfy.WA -L0300 fcb $0D,$27,$10,$E6,$F9,$02,$57,$C1 .'.fy.WA -L0308 fcb $76,$27,$08,$E6,$F9,$02,$57,$C1 v'.fy.WA -L0310 fcb $56,$26,$DD,$E6,$F9,$02,$57,$C1 V&]fy.WA -L0318 fcb $0D,$27,$2F,$EC,$E9,$02,$57,$C3 .'/li.WC -L0320 fcb $00,$01,$ED,$E9,$02,$57,$34,$06 ..mi.W4. -L0328 fcb $17,$0E,$97,$32,$62,$AE,$E9,$02 ...2b.i. -L0330 fcb $55,$30,$01,$AF,$E9,$02,$55,$E7 U0./i.Ug -L0338 fcb $1F,$CC,$00,$01,$E7,$E9,$02,$59 .L..gi.Y -L0340 fcb $20,$00,$E6,$F9,$02,$57,$C1,$0D .fy.WA. -L0348 fcb $26,$B1,$E6,$E9,$02,$59,$26,$1A &1fi.Y&. -L0350 fcb $30,$E9,$02,$04,$34,$10,$30,$8D 0i..4.0. -L0358 fcb $01,$D4,$34,$10,$17,$04,$90,$32 .T4....2 -L0360 fcb $64,$4F,$5F,$34,$06,$17,$11,$8D dO_4.... -L0368 fcb $32,$62,$AE,$E9,$02,$55,$E6,$1F 2b.i.Uf. -L0370 fcb $1D,$CA,$80,$E7,$1F,$EC,$E9,$00 .J.g.li. -L0378 fcb $82,$C3,$00,$01,$ED,$E9,$00,$82 .C..mi.. -L0380 fcb $58,$49,$30,$E4,$30,$8B,$34,$10 XI0d0.4. -L0388 fcb $30,$E9,$00,$86,$34,$10,$EC,$E9 0i..4.li -L0390 fcb $02,$59,$A3,$E1,$ED,$F1,$EC,$E9 .Y#amqli -L0398 fcb $02,$5B,$34,$06,$CC,$00,$51,$34 .[4.L.Q4 -L03A0 fcb $06,$30,$E9,$02,$08,$34,$10,$17 .0i..4.. -L03A8 fcb $03,$B2,$32,$66,$ED,$E9,$02,$57 .22fmi.W -L03B0 fcb $10,$26,$FE,$53,$4F,$5F,$20,$1F .&.SO_ . -L03B8 fcb $EC,$E9,$00,$80,$58,$49,$30,$E4 li..XI0d -L03C0 fcb $30,$8B,$EC,$84,$34,$16,$EC,$E9 0.l.4.li -L03C8 fcb $00,$86,$58,$49,$E3,$E1,$ED,$F1 ..XIcamq -L03D0 fcb $EC,$E9,$00,$80,$C3,$00,$01,$ED li..C..m -L03D8 fcb $E9,$00,$80,$EC,$E9,$00,$80,$10 i..li... -L03E0 fcb $A3,$E9,$00,$82,$25,$D2,$EC,$E9 #i..%Rli -L03E8 fcb $02,$5B,$34,$06,$17,$09,$F5,$32 .[4...u2 -L03F0 fcb $62,$30,$8D,$01,$53,$34,$10,$30 b0..S4.0 -L03F8 fcb $A9,$00,$01,$34,$10,$17,$02,$CF )..4...O -L0400 fcb $32,$64,$ED,$E9,$02,$5B,$26,$1A 2dmi.[&. -L0408 fcb $30,$A9,$00,$01,$34,$10,$30,$8D 0)..4.0. -L0410 fcb $01,$38,$34,$10,$17,$03,$D8,$32 .84...X2 -L0418 fcb $64,$4F,$5F,$34,$06,$17,$10,$D5 dO_4...U -L0420 fcb $32,$62,$EC,$E9,$02,$5B,$34,$06 2bli.[4. -L0428 fcb $EC,$E9,$00,$84,$34,$06,$17,$08 li..4... -L0430 fcb $C2,$32,$64,$10,$83,$FF,$FF,$27 B2d....' -L0438 fcb $48,$EC,$E9,$02,$5B,$34,$06,$CC Hli.[4.L -L0440 fcb $00,$01,$34,$06,$EC,$E9,$00,$86 ..4.li.. -L0448 fcb $58,$49,$34,$06,$30,$66,$34,$10 XI4.0f4. -L0450 fcb $17,$03,$52,$32,$68,$ED,$7E,$27 ..R2hm~' -L0458 fcb $28,$EC,$E9,$02,$5B,$34,$06,$CC (li.[4.L -L0460 fcb $00,$01,$34,$06,$30,$E9,$00,$88 ..4.0i.. -L0468 fcb $34,$10,$EC,$E9,$02,$5B,$A3,$E1 4.li.[#a -L0470 fcb $34,$06,$30,$E9,$00,$8A,$34,$10 4.0i..4. -L0478 fcb $17,$03,$2A,$32,$68,$ED,$7E,$26 ..*2hm~& -L0480 fcb $1A,$30,$A9,$00,$01,$34,$10,$30 .0)..4.0 -L0488 fcb $8D,$00,$DB,$34,$10,$17,$03,$5F ..[4..._ -L0490 fcb $32,$64,$4F,$5F,$34,$06,$17,$10 2dO_4... -L0498 fcb $5C,$32,$62,$EC,$E9,$02,$5B,$34 \2bli.[4 -L04A0 fcb $06,$17,$09,$40,$32,$62,$4F,$5F ...@2bO_ -L04A8 fcb $34,$06,$17,$10,$48,$32,$62,$32 4...H2b2 -L04B0 fcb $E9,$02,$5D,$35,$C0,$55,$73,$61 i.]5@Usa -L04B8 fcb $67,$65,$3A,$20,$25,$73,$20,$70 ge: %s p -L04C0 fcb $61,$74,$68,$6C,$69,$73,$74,$00 athlist. -L04C8 fcb $72,$00,$43,$61,$6E,$27,$74,$20 r.Can't -L04D0 fcb $6F,$70,$65,$6E,$20,$25,$73,$20 open %s -L04D8 fcb $66,$6F,$72,$20,$72,$65,$61,$64 for read -L04E0 fcb $69,$6E,$67,$2E,$0D,$00,$44,$69 ing...Di -L04E8 fcb $73,$6B,$20,$6E,$75,$6D,$62,$65 sk numbe -L04F0 fcb $72,$20,$6D,$69,$73,$73,$69,$6E r missin -L04F8 fcb $67,$3A,$0D,$25,$73,$00,$49,$6E g:.%s.In -L0500 fcb $76,$61,$6C,$69,$64,$20,$73,$69 valid si -L0508 fcb $64,$65,$20,$6E,$75,$6D,$62,$65 de numbe -L0510 fcb $72,$3A,$0D,$25,$73,$00,$53,$69 r:.%s.Si -L0518 fcb $64,$65,$20,$6E,$75,$6D,$62,$65 de numbe -L0520 fcb $72,$20,$6D,$69,$73,$73,$69,$6E r missin -L0528 fcb $67,$3A,$0D,$25,$73,$00,$56,$6F g:.%s.Vo -L0530 fcb $6C,$75,$6D,$65,$20,$6E,$75,$6D lume num -L0538 fcb $62,$65,$72,$20,$6D,$69,$73,$73 ber miss -L0540 fcb $69,$6E,$67,$3A,$0D,$25,$73,$00 ing:.%s. -L0548 fcb $77,$00,$43,$61,$6E,$27,$74,$20 w.Can't -L0550 fcb $6F,$70,$65,$6E,$20,$25,$73,$20 open %s -L0558 fcb $66,$6F,$72,$20,$77,$72,$69,$74 for writ -L0560 fcb $69,$6E,$67,$2E,$0D,$00,$45,$72 ing...Er -L0568 fcb $72,$6F,$72,$20,$77,$72,$69,$74 ror writ -L0570 fcb $69,$6E,$67,$20,$25,$73,$2E,$0D ing %s.. -L0578 fcb $00,$34,$40,$33,$A9,$00,$12,$EC .4@3)..l -L0580 fcb $46,$4F,$C4,$03,$10,$27,$00,$68 FOD..'.h -L0588 fcb $33,$4D,$34,$40,$30,$A9,$00,$E2 3M4@0).b -L0590 fcb $AC,$E1,$22,$EB,$CC,$00,$C8,$ED ,a"kL.Hm -L0598 fcb $A9,$01,$B1,$16,$00,$56,$35,$C0 ).1..V5@ -L05A0 fcb $34,$40,$EE,$68,$26,$04,$8D,$D1 4@nh&..Q -L05A8 fcb $1F,$03,$EF,$7E,$27,$46,$EC,$64 ..o~'Fld -L05B0 fcb $ED,$48,$AE,$66,$E6,$01,$C1,$2B mH.ff.A+ -L05B8 fcb $27,$08,$AE,$66,$E6,$02,$C1,$2B '..ff.A+ -L05C0 fcb $26,$06,$EC,$46,$CA,$03,$20,$1E &.lFJ. . -L05C8 fcb $EC,$46,$34,$06,$E6,$F8,$08,$C1 lF4.fx.A -L05D0 fcb $72,$27,$07,$E6,$F8,$08,$C1,$64 r'.fx.Ad -L05D8 fcb $26,$05,$CC,$00,$01,$20,$03,$CC &.L.. .L -L05E0 fcb $00,$02,$AA,$E0,$EA,$E0,$ED,$46 ..*`j`mF -L05E8 fcb $EC,$42,$E3,$4B,$ED,$44,$ED,$C4 lBcKmDmD -L05F0 fcb $1F,$30,$35,$C0,$4F,$5F,$35,$C0 .05@O_5@ -L05F8 fcb $34,$40,$EE,$64,$32,$7C,$4F,$5F 4@nd2|O_ -L0600 fcb $ED,$E4,$AE,$6A,$E6,$01,$1D,$1F md.jf... -L0608 fcb $01,$20,$1E,$AE,$6A,$E6,$02,$C1 . ..jf.A -L0610 fcb $2B,$26,$05,$CC,$00,$07,$20,$08 +&.L.. . -L0618 fcb $CC,$00,$04,$20,$03,$CC,$00,$03 L.. .L.. -L0620 fcb $ED,$E4,$20,$15,$30,$64,$16,$00 md .0d.. -L0628 fcb $68,$AF,$7E,$27,$0C,$8C,$00,$78 h/~'...x -L0630 fcb $27,$D9,$8C,$00,$2B,$27,$E6,$20 'Y..+'f -L0638 fcb $EB,$E6,$F8,$0A,$1D,$1F,$01,$16 kfx..... -L0640 fcb $00,$5C,$EC,$E4,$CA,$01,$20,$3C .\ldJ. < -L0648 fcb $EC,$E4,$CA,$02,$34,$06,$34,$40 ldJ.4.4@ -L0650 fcb $17,$0C,$D3,$32,$64,$ED,$62,$10 ..S2dmb. -L0658 fcb $83,$FF,$FF,$27,$16,$CC,$00,$02 ...'.L.. -L0660 fcb $34,$06,$4F,$5F,$34,$06,$34,$06 4.O_4.4. -L0668 fcb $EC,$68,$34,$06,$17,$0D,$8D,$32 lh4....2 -L0670 fcb $68,$20,$45,$EC,$E4,$CA,$02,$34 h EldJ.4 -L0678 fcb $06,$34,$40,$17,$0C,$C9,$20,$0B .4@..I . -L0680 fcb $EC,$E4,$CA,$81,$34,$06,$34,$40 ldJ.4.4@ -L0688 fcb $17,$0C,$9B,$32,$64,$ED,$62,$20 ...2dmb -L0690 fcb $27,$32,$1C,$CC,$00,$CB,$ED,$A9 '2.L.Km) -L0698 fcb $01,$B1,$4F,$5F,$20,$1C,$8C,$00 .1O_ ... -L06A0 fcb $72,$10,$27,$FF,$9D,$8C,$00,$61 r.'....a -L06A8 fcb $10,$27,$FF,$9C,$8C,$00,$77,$27 .'....w' -L06B0 fcb $C2,$8C,$00,$64,$27,$CA,$20,$DB B..d'J [ -L06B8 fcb $EC,$62,$32,$64,$35,$C0,$34,$40 lb2d5@4@ -L06C0 fcb $4F,$5F,$34,$06,$EC,$68,$34,$06 O_4.lh4. -L06C8 fcb $EC,$68,$34,$06,$16,$00,$4B,$34 lh4...K4 -L06D0 fcb $40,$EC,$66,$34,$06,$EC,$66,$34 @lf4.lf4 -L06D8 fcb $06,$17,$FF,$1C,$32,$64,$1F,$03 ....2d.. -L06E0 fcb $11,$83,$FF,$FF,$26,$04,$4F,$5F ....&.O_ -L06E8 fcb $20,$35,$4F,$5F,$20,$24,$34,$40 5O_ $4@ -L06F0 fcb $EC,$68,$34,$06,$17,$06,$ED,$32 lh4...m2 -L06F8 fcb $62,$EC,$66,$34,$06,$EC,$66,$34 blf4.lf4 -L0700 fcb $06,$17,$FE,$F4,$32,$64,$1F,$03 ...t2d.. -L0708 fcb $EF,$7E,$2C,$04,$4F,$5F,$20,$0F o~,.O_ . -L0710 fcb $EC,$68,$34,$06,$EC,$68,$34,$06 lh4.lh4. -L0718 fcb $34,$40,$17,$FE,$83,$32,$66,$35 4@...2f5 -L0720 fcb $C0,$34,$46,$EE,$66,$20,$04,$EC @4Fnf .l -L0728 fcb $E4,$E7,$C0,$30,$A9,$00,$12,$34 dg@0)..4 -L0730 fcb $10,$17,$07,$DA,$32,$62,$ED,$E4 ...Z2bmd -L0738 fcb $10,$83,$00,$0D,$27,$08,$EC,$E4 ....'.ld -L0740 fcb $10,$83,$FF,$FF,$26,$E1,$EC,$E4 ....&ald -L0748 fcb $10,$83,$FF,$FF,$26,$04,$4F,$5F ....&.O_ -L0750 fcb $20,$06,$4F,$5F,$E7,$C4,$EC,$66 .O_gDlf -L0758 fcb $32,$62,$35,$C0,$34,$40,$EE,$66 2b5@4@nf -L0760 fcb $32,$7C,$EC,$68,$ED,$E4,$20,$0E 2|lhmd . -L0768 fcb $EC,$62,$AE,$E4,$30,$01,$AF,$E4 lb.d0./d -L0770 fcb $E7,$1F,$C1,$0D,$27,$19,$1F,$30 g.A.'..0 -L0778 fcb $33,$5F,$ED,$7E,$2F,$11,$EC,$6C 3_m~/.ll -L0780 fcb $34,$06,$17,$07,$89,$32,$62,$ED 4....2bm -L0788 fcb $62,$10,$83,$FF,$FF,$26,$D9,$4F b....&YO -L0790 fcb $5F,$E7,$F4,$EC,$62,$10,$83,$FF _gtlb... -L0798 fcb $FF,$26,$04,$4F,$5F,$20,$02,$EC .&.O_ .l -L07A0 fcb $68,$32,$64,$35,$C0,$34,$40,$EE h2d5@4@n -L07A8 fcb $64,$32,$7C,$4F,$5F,$20,$31,$4F d2|O_ 1O -L07B0 fcb $5F,$ED,$E4,$20,$17,$EC,$6E,$34 _md .ln4 -L07B8 fcb $06,$E6,$C0,$1D,$34,$06,$17,$05 .f@.4... -L07C0 fcb $32,$32,$64,$AE,$6E,$EC,$06,$4F 22d.nl.O -L07C8 fcb $C4,$20,$26,$1D,$EC,$E4,$C3,$00 D &.ldC. -L07D0 fcb $01,$ED,$E4,$83,$00,$01,$10,$A3 .md....# -L07D8 fcb $6A,$2D,$DA,$EC,$62,$C3,$00,$01 j-ZlbC.. -L07E0 fcb $ED,$62,$EC,$62,$10,$A3,$6C,$2D mblb.#l- -L07E8 fcb $C6,$EC,$62,$32,$64,$35,$C0,$34 Flb2d5@4 -L07F0 fcb $40,$30,$A9,$00,$1F,$AF,$A9,$01 @0)../). -L07F8 fcb $B3,$30,$66,$34,$10,$EC,$66,$20 30f4.lf -L0800 fcb $0E,$34,$40,$EC,$64,$ED,$A9,$01 .4@ldm). -L0808 fcb $B3,$30,$68,$34,$10,$EC,$68,$34 30h4.lh4 -L0810 fcb $06,$30,$8D,$04,$B2,$34,$10,$8D .0..24.. -L0818 fcb $28,$32,$66,$35,$C0,$34,$40,$EC (2f5@4@l -L0820 fcb $64,$ED,$A9,$01,$B3,$30,$68,$34 dm).30h4 -L0828 fcb $10,$EC,$68,$34,$06,$30,$8D,$04 .lh4.0.. -L0830 fcb $A9,$34,$10,$8D,$0C,$32,$66,$4F )4...2fO -L0838 fcb $5F,$E7,$B9,$01,$B3,$EC,$64,$35 _g9.3ld5 -L0840 fcb $C0,$34,$40,$EE,$66,$32,$75,$20 @4@nf2u -L0848 fcb $10,$E6,$68,$10,$27,$02,$3B,$E6 .fh.'.;f -L0850 fcb $68,$1D,$34,$06,$AD,$F8,$11,$32 h.4.-x.2 -L0858 fcb $62,$E6,$C0,$E7,$68,$C1,$25,$26 bf@ghA%& -L0860 fcb $E8,$E6,$C0,$E7,$68,$4F,$5F,$ED hf@ghO_m -L0868 fcb $62,$ED,$66,$E6,$68,$C1,$2D,$26 bmffhA-& -L0870 fcb $0D,$CC,$00,$01,$ED,$A9,$01,$C9 .L..m).I -L0878 fcb $E6,$C0,$E7,$68,$20,$06,$4F,$5F f@gh .O_ -L0880 fcb $ED,$A9,$01,$C9,$E6,$68,$C1,$30 m).IfhA0 -L0888 fcb $26,$05,$CC,$00,$30,$20,$03,$CC &.L.0 .L -L0890 fcb $00,$20,$ED,$A9,$01,$CB,$20,$1A . m).K . -L0898 fcb $EC,$66,$34,$06,$CC,$00,$0A,$17 lf4.L... -L08A0 fcb $09,$93,$34,$06,$E6,$6A,$1D,$C3 ..4.fj.C -L08A8 fcb $FF,$D0,$E3,$E1,$ED,$66,$E6,$C0 .Pcamff@ -L08B0 fcb $E7,$68,$E6,$68,$1D,$30,$A9,$00 ghfh.0). -L08B8 fcb $E3,$30,$8B,$E6,$84,$4F,$C4,$08 c0.f.OD. -L08C0 fcb $26,$D6,$E6,$68,$C1,$2E,$26,$33 &VfhA.&3 -L08C8 fcb $CC,$00,$01,$ED,$64,$20,$16,$EC L..md .l -L08D0 fcb $62,$34,$06,$CC,$00,$0A,$17,$09 b4.L.... -L08D8 fcb $5C,$34,$06,$E6,$6A,$1D,$C3,$FF \4.fj.C. -L08E0 fcb $D0,$E3,$E1,$ED,$62,$E6,$C0,$E7 Pcambf@g -L08E8 fcb $68,$E6,$68,$1D,$30,$A9,$00,$E3 hfh.0).c -L08F0 fcb $30,$8B,$E6,$84,$4F,$C4,$08,$26 0.f.OD.& -L08F8 fcb $D6,$20,$04,$4F,$5F,$ED,$64,$E6 V .O_mdf -L0900 fcb $68,$1D,$1F,$01,$16,$01,$26,$EC h.....&l -L0908 fcb $66,$34,$06,$AE,$E8,$15,$30,$02 f4..h.0. -L0910 fcb $AF,$E8,$15,$EC,$1E,$34,$06,$17 /h.l.4.. -L0918 fcb $01,$74,$20,$13,$EC,$66,$34,$06 .t .lf4. -L0920 fcb $AE,$E8,$15,$30,$02,$AF,$E8,$15 .h.0./h. -L0928 fcb $EC,$1E,$34,$06,$17,$02,$1C,$ED l.4....m -L0930 fcb $E4,$16,$00,$DF,$EC,$66,$34,$06 d.._lf4. -L0938 fcb $E6,$6A,$1D,$30,$A9,$00,$E3,$30 fj.0).c0 -L0940 fcb $8B,$E6,$84,$4F,$C4,$02,$34,$06 .f.OD.4. -L0948 fcb $AE,$E8,$17,$30,$02,$AF,$E8,$17 .h.0./h. -L0950 fcb $EC,$1E,$34,$06,$17,$02,$3C,$16 l.4...<. -L0958 fcb $00,$B5,$EC,$66,$34,$06,$AE,$E8 .5lf4..h -L0960 fcb $15,$30,$02,$AF,$E8,$15,$EC,$1E .0./h.l. -L0968 fcb $34,$06,$30,$A9,$01,$B5,$34,$10 4.0).54. -L0970 fcb $17,$01,$5F,$16,$00,$99,$EC,$64 .._...ld -L0978 fcb $26,$05,$CC,$00,$06,$ED,$62,$EC &.L..mbl -L0980 fcb $66,$34,$06,$30,$E8,$15,$34,$10 f4.0h.4. -L0988 fcb $EC,$66,$34,$06,$E6,$6E,$1D,$34 lf4.fn.4 -L0990 fcb $06,$17,$07,$9C,$32,$66,$16,$00 ....2f.. -L0998 fcb $78,$AE,$E8,$13,$30,$02,$AF,$E8 x.h.0./h -L09A0 fcb $13,$EC,$1E,$16,$00,$7D,$AE,$E8 .l...}.h -L09A8 fcb $13,$30,$02,$AF,$E8,$13,$EC,$1E .0./h.l. -L09B0 fcb $ED,$69,$EC,$64,$27,$38,$EC,$69 mild'8li -L09B8 fcb $ED,$64,$20,$0C,$E6,$F8,$09,$27 md .fx.' -L09C0 fcb $13,$EC,$69,$C3,$00,$01,$ED,$69 .liC..mi -L09C8 fcb $EC,$62,$C3,$FF,$FF,$ED,$62,$83 lbC..mb. -L09D0 fcb $FF,$FF,$26,$E8,$EC,$66,$34,$06 ..&hlf4. -L09D8 fcb $EC,$6B,$A3,$66,$34,$06,$EC,$68 lk#f4.lh -L09E0 fcb $34,$06,$EC,$E8,$15,$34,$06,$17 4.lh.4.. -L09E8 fcb $02,$14,$32,$68,$20,$2F,$EC,$66 ..2h /lf -L09F0 fcb $34,$06,$EC,$6B,$20,$1B,$E6,$C0 4.lk .f@ -L09F8 fcb $E7,$68,$20,$02,$32,$15,$EC,$66 gh .2.lf -L0A00 fcb $34,$06,$30,$E8,$15,$34,$10,$E6 4.0h.4.f -L0A08 fcb $6C,$1D,$34,$06,$17,$06,$E3,$32 l.4...c2 -L0A10 fcb $64,$34,$06,$EC,$E8,$13,$34,$06 d4.lh.4. -L0A18 fcb $17,$02,$45,$32,$66,$16,$FE,$39 ..E2f..9 -L0A20 fcb $E6,$68,$1D,$34,$06,$AD,$F8,$11 fh.4.-x. -L0A28 fcb $32,$62,$16,$FE,$2C,$8C,$00,$64 2b..,..d -L0A30 fcb $10,$27,$FE,$D3,$8C,$00,$6F,$10 .'.S..o. -L0A38 fcb $27,$FE,$E1,$8C,$00,$78,$10,$27 '.a..x.' -L0A40 fcb $FE,$F2,$8C,$00,$58,$10,$27,$FE .r..X.'. -L0A48 fcb $EB,$8C,$00,$75,$10,$27,$FF,$0A k..u.'.. -L0A50 fcb $8C,$00,$66,$10,$27,$FF,$1F,$8C ..f.'... -L0A58 fcb $00,$65,$10,$27,$FF,$18,$8C,$00 .e.'.... -L0A60 fcb $67,$10,$27,$FF,$11,$8C,$00,$45 g.'....E -L0A68 fcb $10,$27,$FF,$0A,$8C,$00,$47,$10 .'....G. -L0A70 fcb $27,$FF,$03,$8C,$00,$63,$10,$27 '....c.' -L0A78 fcb $FF,$1F,$8C,$00,$73,$10,$27,$FF ....s.'. -L0A80 fcb $25,$8C,$00,$6C,$10,$27,$FF,$6E %..l.'.n -L0A88 fcb $20,$96,$32,$6B,$35,$C0,$34,$46 .2k5@4F -L0A90 fcb $30,$A9,$01,$B5,$AF,$E4,$EC,$66 0).5/dlf -L0A98 fcb $2C,$29,$EC,$66,$40,$50,$82,$00 ,)lf@P.. -L0AA0 fcb $ED,$66,$2C,$14,$30,$8D,$02,$44 mf,.0..D -L0AA8 fcb $34,$10,$30,$A9,$01,$B5,$34,$10 4.0).54. -L0AB0 fcb $17,$06,$99,$32,$64,$16,$00,$D7 ...2d..W -L0AB8 fcb $CC,$00,$2D,$AE,$E4,$30,$01,$AF L.-.d0./ -L0AC0 fcb $E4,$E7,$1F,$EC,$66,$34,$06,$EC dg.lf4.l -L0AC8 fcb $62,$34,$06,$8D,$05,$32,$64,$16 b4...2d. -L0AD0 fcb $00,$B7,$34,$76,$EE,$6A,$4F,$5F .74vnjO_ -L0AD8 fcb $ED,$62,$4F,$5F,$ED,$E4,$20,$0F mbO_md . -L0AE0 fcb $EC,$E4,$C3,$00,$01,$ED,$E4,$EC ldC..mdl -L0AE8 fcb $6C,$A3,$A9,$00,$05,$ED,$6C,$EC l#)..mll -L0AF0 fcb $6C,$2D,$ED,$30,$A9,$00,$05,$AF l-m0)../ -L0AF8 fcb $64,$20,$36,$EC,$E4,$C3,$00,$01 d 6ldC.. -L0B00 fcb $ED,$E4,$EC,$6C,$A3,$F8,$04,$ED mdll#x.m -L0B08 fcb $6C,$2C,$F0,$EC,$6C,$E3,$F8,$04 l,pllcx. -L0B10 fcb $ED,$6C,$EC,$E4,$27,$05,$CC,$00 mlld'.L. -L0B18 fcb $01,$ED,$62,$EC,$62,$27,$07,$EC .mblb'.l -L0B20 fcb $E4,$C3,$00,$30,$E7,$C0,$4F,$5F dC.0g@O_ -L0B28 fcb $ED,$E4,$EC,$64,$C3,$00,$02,$ED mdldC..m -L0B30 fcb $64,$EC,$64,$10,$A3,$A9,$00,$0D dld.#).. -L0B38 fcb $26,$C8,$EC,$6C,$C3,$00,$30,$E7 &HllC.0g -L0B40 fcb $C0,$4F,$5F,$E7,$C4,$EC,$6A,$32 @O_gDlj2 -L0B48 fcb $66,$35,$C0,$34,$46,$30,$A9,$01 f5@4F0). -L0B50 fcb $B5,$AF,$E4,$33,$A9,$01,$BF,$EC 5/d3).?l -L0B58 fcb $66,$4F,$C4,$07,$C3,$00,$30,$E7 fOD.C.0g -L0B60 fcb $C0,$EC,$66,$44,$56,$44,$56,$44 @lfDVDVD -L0B68 fcb $56,$ED,$66,$26,$EA,$20,$0A,$E6 Vmf&j .f -L0B70 fcb $C4,$AE,$E4,$30,$01,$AF,$E4,$E7 D.d0./dg -L0B78 fcb $1F,$33,$5F,$34,$40,$30,$A9,$01 .3_4@0). -L0B80 fcb $BF,$AC,$E1,$23,$EA,$4F,$5F,$E7 ?,a#jO_g -L0B88 fcb $F4,$30,$A9,$01,$B5,$1F,$10,$32 t0).5..2 -L0B90 fcb $62,$35,$C0,$34,$56,$30,$A9,$01 b5@4V0). -L0B98 fcb $B5,$AF,$62,$33,$A9,$01,$BF,$EC 5/b3).?l -L0BA0 fcb $68,$4F,$C4,$0F,$ED,$E4,$34,$06 hOD.md4. -L0BA8 fcb $EC,$62,$10,$83,$00,$09,$2F,$11 lb..../. -L0BB0 fcb $EC,$6C,$27,$05,$CC,$00,$41,$20 ll'.L.A -L0BB8 fcb $03,$CC,$00,$61,$C3,$FF,$F6,$20 .L.aC.v -L0BC0 fcb $03,$CC,$00,$30,$E3,$E1,$E7,$C0 .L.0cag@ -L0BC8 fcb $EC,$68,$44,$56,$44,$56,$44,$56 lhDVDVDV -L0BD0 fcb $44,$56,$84,$0F,$ED,$68,$26,$C7 DV..mh&G -L0BD8 fcb $20,$0A,$E6,$C4,$AE,$62,$30,$01 .fD.b0. -L0BE0 fcb $AF,$62,$E7,$1F,$33,$5F,$34,$40 /bg.3_4@ -L0BE8 fcb $30,$A9,$01,$BF,$AC,$E1,$23,$EA 0).?,a#j -L0BF0 fcb $4F,$5F,$E7,$F8,$02,$30,$A9,$01 O_gx.0). -L0BF8 fcb $B5,$1F,$10,$16,$00,$D8,$34,$40 5....X4@ -L0C00 fcb $EE,$66,$EC,$6A,$A3,$68,$ED,$6A nflj#hmj -L0C08 fcb $EC,$A9,$01,$C9,$26,$25,$20,$0B l).I&% . -L0C10 fcb $EC,$A9,$01,$CB,$34,$06,$AD,$F8 l).K4.-x -L0C18 fcb $06,$32,$62,$EC,$6A,$C3,$FF,$FF .2bljC.. -L0C20 fcb $ED,$6A,$83,$FF,$FF,$2E,$E9,$20 mj....i -L0C28 fcb $0A,$E6,$C0,$1D,$34,$06,$AD,$F8 .f@.4.-x -L0C30 fcb $06,$32,$62,$EC,$68,$C3,$FF,$FF .2blhC.. -L0C38 fcb $ED,$68,$83,$FF,$FF,$26,$EA,$EC mh...&jl -L0C40 fcb $A9,$01,$C9,$27,$19,$20,$0B,$EC ).I'. .l -L0C48 fcb $A9,$01,$CB,$34,$06,$AD,$F8,$06 ).K4.-x. -L0C50 fcb $32,$62,$EC,$6A,$C3,$FF,$FF,$ED 2bljC..m -L0C58 fcb $6A,$83,$FF,$FF,$2E,$E9,$35,$C0 j....i5@ -L0C60 fcb $34,$40,$EE,$66,$EC,$68,$34,$06 4@nflh4. -L0C68 fcb $34,$40,$17,$04,$CE,$32,$62,$40 4@..N2b@ -L0C70 fcb $50,$82,$00,$E3,$E1,$ED,$68,$EC P..camhl -L0C78 fcb $A9,$01,$C9,$26,$25,$20,$0B,$EC ).I&% .l -L0C80 fcb $A9,$01,$CB,$34,$06,$AD,$F8,$06 ).K4.-x. -L0C88 fcb $32,$62,$EC,$68,$C3,$FF,$FF,$ED 2blhC..m -L0C90 fcb $68,$83,$FF,$FF,$2E,$E9,$20,$0A h....i . -L0C98 fcb $E6,$C0,$1D,$34,$06,$AD,$F8,$06 f@.4.-x. -L0CA0 fcb $32,$62,$E6,$C4,$26,$F2,$EC,$A9 2bfD&rl) -L0CA8 fcb $01,$C9,$27,$19,$20,$0B,$EC,$A9 .I'. .l) -L0CB0 fcb $01,$CB,$34,$06,$AD,$F8,$06,$32 .K4.-x.2 -L0CB8 fcb $62,$EC,$68,$C3,$FF,$FF,$ED,$68 blhC..mh -L0CC0 fcb $83,$FF,$FF,$2E,$E9,$35,$C0,$34 ....i5@4 -L0CC8 fcb $40,$EC,$A9,$01,$B3,$34,$06,$EC @l).34.l -L0CD0 fcb $66,$34,$06,$17,$00,$1D,$32,$64 f4....2d -L0CD8 fcb $35,$C0,$34,$40,$EC,$64,$AE,$A9 5@4@ld.) -L0CE0 fcb $01,$B3,$30,$01,$AF,$A9,$01,$B3 .30./).3 -L0CE8 fcb $E7,$1F,$35,$C0,$2D,$33,$32,$37 g.5@-327 -L0CF0 fcb $36,$38,$00,$34,$40,$EE,$66,$EC 68.4@nfl -L0CF8 fcb $46,$84,$80,$C4,$22,$10,$83,$80 F..D"... -L0D00 fcb $02,$27,$14,$EC,$46,$4F,$C4,$22 .'.lFOD" -L0D08 fcb $10,$83,$00,$02,$10,$26,$01,$1F .....&.. -L0D10 fcb $34,$40,$17,$03,$4D,$32,$62,$EC 4@..M2bl -L0D18 fcb $46,$4F,$C4,$04,$27,$35,$CC,$00 FOD.'5L. -L0D20 fcb $01,$34,$06,$30,$67,$34,$10,$EC .4.0g4.l -L0D28 fcb $48,$34,$06,$EC,$46,$4F,$C4,$40 H4.lFOD@ -L0D30 fcb $27,$06,$30,$8D,$06,$B6,$20,$04 '.0..6 . -L0D38 fcb $30,$8D,$06,$97,$1F,$10,$1F,$01 0....... -L0D40 fcb $AD,$84,$32,$66,$10,$83,$FF,$FF -.2f.... -L0D48 fcb $26,$4A,$EC,$46,$CA,$20,$ED,$46 &JlFJ mF -L0D50 fcb $16,$00,$DC,$EC,$46,$84,$01,$5F ..\lF.._ -L0D58 fcb $ED,$7E,$26,$07,$34,$40,$17,$00 m~&.4@.. -L0D60 fcb $EB,$32,$62,$EC,$C4,$C3,$00,$01 k2blDC.. -L0D68 fcb $ED,$C4,$83,$00,$01,$1F,$01,$EC mD.....l -L0D70 fcb $64,$E7,$84,$EC,$C4,$10,$A3,$44 dg.lD.#D -L0D78 fcb $24,$0F,$EC,$46,$4F,$C4,$40,$27 $.lFOD@' -L0D80 fcb $13,$EC,$64,$10,$83,$00,$0D,$26 .ld....& -L0D88 fcb $0B,$34,$40,$17,$00,$BE,$ED,$E1 .4@..>ma -L0D90 fcb $10,$26,$00,$9B,$EC,$64,$35,$C0 .&..ld5@ -L0D98 fcb $34,$40,$EE,$64,$EC,$66,$34,$06 4@ndlf4. -L0DA0 fcb $34,$40,$CC,$00,$08,$17,$04,$EC 4@L....l -L0DA8 fcb $34,$06,$17,$FF,$46,$32,$64,$EC 4...F2dl -L0DB0 fcb $66,$34,$06,$34,$40,$17,$FF,$3B f4.4@..; -L0DB8 fcb $16,$01,$4B,$34,$46,$33,$A9,$00 ..K4F3). -L0DC0 fcb $12,$4F,$5F,$ED,$E4,$20,$0A,$1F .O_md .. -L0DC8 fcb $30,$33,$4D,$34,$06,$8D,$15,$32 03M4...2 -L0DD0 fcb $62,$EC,$E4,$C3,$00,$01,$ED,$E4 bldC..md -L0DD8 fcb $83,$00,$01,$10,$83,$00,$10,$2D .......- -L0DE0 fcb $E6,$16,$00,$64,$34,$40,$EE,$64 f..d4@nd -L0DE8 fcb $32,$7E,$11,$83,$00,$00,$27,$04 2~....'. -L0DF0 fcb $EC,$46,$26,$06,$CC,$FF,$FF,$16 lF&.L... -L0DF8 fcb $00,$4E,$EC,$46,$4F,$C4,$02,$27 .NlFOD.' -L0E00 fcb $08,$34,$40,$8D,$19,$32,$62,$20 .4@..2b -L0E08 fcb $02,$4F,$5F,$ED,$E4,$EC,$48,$34 .O_mdlH4 -L0E10 fcb $06,$17,$05,$21,$32,$62,$4F,$5F ...!2bO_ -L0E18 fcb $ED,$46,$EC,$E4,$20,$2A,$34,$40 mFld *4@ -L0E20 fcb $EE,$64,$27,$0B,$EC,$46,$4F,$C4 nd'.lFOD -L0E28 fcb $22,$10,$83,$00,$02,$27,$05,$CC "....'.L -L0E30 fcb $FF,$FF,$35,$C0,$EC,$46,$84,$80 ..5@lF.. -L0E38 fcb $5F,$ED,$7E,$26,$07,$34,$40,$17 _m~&.4@. -L0E40 fcb $02,$20,$32,$62,$34,$40,$8D,$04 . 2b4@.. -L0E48 fcb $32,$62,$35,$C0,$34,$40,$EE,$64 2b5@4@nd -L0E50 fcb $32,$7C,$EC,$46,$84,$01,$5F,$ED 2|lF.._m -L0E58 fcb $7E,$26,$23,$EC,$C4,$10,$A3,$44 ~&#lD.#D -L0E60 fcb $27,$1C,$4F,$5F,$34,$06,$34,$40 '.O_4.4@ -L0E68 fcb $17,$00,$9F,$32,$62,$EC,$02,$34 ...2bl.4 -L0E70 fcb $06,$EC,$84,$34,$06,$EC,$48,$34 .l.4.lH4 -L0E78 fcb $06,$17,$05,$80,$32,$68,$EC,$C4 ....2hlD -L0E80 fcb $A3,$42,$ED,$62,$10,$27,$00,$6E #Bmb.'.n -L0E88 fcb $EC,$46,$84,$01,$5F,$ED,$7E,$10 lF.._m~. -L0E90 fcb $27,$00,$63,$EC,$46,$4F,$C4,$40 '.clFOD@ -L0E98 fcb $27,$33,$EC,$42,$20,$27,$EC,$62 '3lB 'lb -L0EA0 fcb $34,$06,$EC,$C4,$34,$06,$EC,$48 4.lD4.lH -L0EA8 fcb $34,$06,$17,$05,$3F,$32,$66,$ED 4...?2fm -L0EB0 fcb $E4,$10,$83,$FF,$FF,$26,$04,$30 d....&.0 -L0EB8 fcb $64,$20,$2A,$EC,$62,$A3,$E4,$ED d *lb#dm -L0EC0 fcb $62,$EC,$C4,$E3,$E4,$ED,$C4,$EC blDcdmDl -L0EC8 fcb $62,$26,$D3,$20,$29,$EC,$62,$34 b&S )lb4 -L0ED0 fcb $06,$EC,$42,$34,$06,$EC,$48,$34 .lB4.lH4 -L0ED8 fcb $06,$17,$04,$F7,$32,$66,$10,$A3 ...w2f.# -L0EE0 fcb $62,$27,$13,$20,$02,$32,$1C,$EC b'. .2.l -L0EE8 fcb $46,$CA,$20,$ED,$46,$EC,$44,$ED FJ mFlDm -L0EF0 fcb $C4,$CC,$FF,$FF,$20,$10,$EC,$46 DL.. .lF -L0EF8 fcb $8A,$01,$ED,$46,$EC,$42,$ED,$C4 ..mFlBmD -L0F00 fcb $E3,$4B,$ED,$44,$4F,$5F,$32,$64 cKmDO_2d -L0F08 fcb $35,$C0,$34,$40,$35,$C0,$34,$40 5@4@5@4@ -L0F10 fcb $EE,$64,$27,$46,$EC,$46,$84,$01 nd'FlF.. -L0F18 fcb $5F,$ED,$7E,$26,$3D,$EC,$C4,$10 _m~&=lD. -L0F20 fcb $A3,$44,$24,$12,$EC,$C4,$C3,$00 #D$.lDC. -L0F28 fcb $01,$ED,$C4,$83,$00,$01,$1F,$01 .mD..... -L0F30 fcb $E6,$84,$4F,$16,$01,$2A,$34,$40 f.O..*4@ -L0F38 fcb $17,$00,$6E,$16,$01,$20,$34,$40 ..n.. 4@ -L0F40 fcb $EE,$66,$27,$16,$EC,$46,$4F,$C4 nf'.lFOD -L0F48 fcb $01,$27,$0F,$EC,$64,$10,$83,$FF .'.ld... -L0F50 fcb $FF,$27,$07,$EC,$C4,$10,$A3,$42 .'.lD.#B -L0F58 fcb $22,$05,$CC,$FF,$FF,$35,$C0,$EC ".L..5@l -L0F60 fcb $C4,$C3,$FF,$FF,$ED,$C4,$1F,$01 DC..mD.. -L0F68 fcb $EC,$64,$E7,$84,$EC,$64,$35,$C0 ldg.ld5@ -L0F70 fcb $34,$40,$EE,$64,$32,$7C,$34,$40 4@nd2|4@ -L0F78 fcb $17,$FF,$93,$32,$62,$ED,$62,$10 ...2bmb. -L0F80 fcb $83,$FF,$FF,$27,$0F,$34,$40,$17 ...'.4@. -L0F88 fcb $FF,$84,$32,$62,$ED,$E4,$10,$83 ..2bmd.. -L0F90 fcb $FF,$FF,$26,$05,$CC,$FF,$FF,$20 ..&.L.. -L0F98 fcb $0C,$EC,$62,$34,$06,$CC,$00,$08 .lb4.L.. -L0FA0 fcb $17,$03,$08,$E3,$E4,$32,$64,$35 ...cd2d5 -L0FA8 fcb $C0,$34,$40,$EE,$64,$32,$7E,$EC @4@nd2~l -L0FB0 fcb $46,$84,$80,$C4,$31,$10,$83,$80 F..D1... -L0FB8 fcb $01,$27,$14,$EC,$46,$4F,$C4,$31 .'.lFOD1 -L0FC0 fcb $10,$83,$00,$01,$10,$26,$00,$80 .....&.. -L0FC8 fcb $34,$40,$17,$00,$95,$32,$62,$30 4@...2b0 -L0FD0 fcb $A9,$00,$12,$34,$10,$11,$A3,$E1 )..4..#a -L0FD8 fcb $26,$12,$EC,$46,$4F,$C4,$40,$27 &.lFOD@' -L0FE0 fcb $0B,$30,$A9,$00,$1F,$34,$10,$17 .0)..4.. -L0FE8 fcb $FE,$34,$32,$62,$EC,$46,$4F,$C4 .42blFOD -L0FF0 fcb $08,$27,$25,$EC,$4B,$34,$06,$EC .'%lK4.l -L0FF8 fcb $42,$34,$06,$EC,$48,$34,$06,$EC B4.lH4.l -L1000 fcb $46,$4F,$C4,$40,$27,$06,$30,$8D FOD@'.0. -L1008 fcb $03,$B9,$20,$04,$30,$8D,$03,$92 .9 .0... -L1010 fcb $1F,$10,$1F,$01,$AD,$84,$20,$12 ....-. . -L1018 fcb $CC,$00,$01,$34,$06,$30,$4A,$AF L..4.0J/ -L1020 fcb $42,$34,$10,$EC,$48,$34,$06,$17 B4.lH4.. -L1028 fcb $03,$78,$32,$66,$ED,$E4,$EC,$E4 .x2fmdld -L1030 fcb $2E,$1B,$EC,$46,$34,$06,$EC,$62 ..lF4.lb -L1038 fcb $27,$05,$CC,$00,$20,$20,$03,$CC '.L. .L -L1040 fcb $00,$10,$AA,$E0,$EA,$E0,$ED,$46 ..*`j`mF -L1048 fcb $CC,$FF,$FF,$20,$11,$EC,$42,$C3 L.. .lBC -L1050 fcb $00,$01,$ED,$C4,$EC,$42,$E3,$E4 ..mDlBcd -L1058 fcb $ED,$44,$E6,$D8,$02,$4F,$32,$62 mDfX.O2b -L1060 fcb $35,$C0,$34,$40,$EE,$64,$EC,$46 5@4@ndlF -L1068 fcb $4F,$C4,$C0,$26,$2D,$32,$E8,$E0 OD@&-2h` -L1070 fcb $30,$E4,$34,$10,$EC,$48,$34,$06 0d4.lH4. -L1078 fcb $4F,$5F,$34,$06,$17,$02,$38,$32 O_4...82 -L1080 fcb $66,$EC,$46,$34,$06,$E6,$62,$26 flF4.fb& -L1088 fcb $05,$CC,$00,$40,$20,$03,$CC,$00 .L.@ .L. -L1090 fcb $80,$AA,$E0,$EA,$E0,$ED,$46,$32 .*`j`mF2 -L1098 fcb $E8,$20,$EC,$46,$8A,$80,$ED,$46 h lF..mF -L10A0 fcb $4F,$C4,$0C,$27,$02,$35,$C0,$EC OD.'.5@l -L10A8 fcb $4B,$26,$11,$EC,$46,$4F,$C4,$40 K&.lFOD@ -L10B0 fcb $27,$05,$CC,$00,$80,$20,$03,$CC '.L.. .L -L10B8 fcb $01,$00,$ED,$4B,$EC,$42,$26,$11 ..mKlB&. -L10C0 fcb $EC,$4B,$34,$06,$17,$03,$F3,$32 lK4...s2 -L10C8 fcb $62,$ED,$42,$10,$83,$FF,$FF,$27 bmB....' -L10D0 fcb $08,$EC,$46,$CA,$08,$ED,$46,$20 .lFJ.mF -L10D8 fcb $0F,$EC,$46,$CA,$04,$ED,$46,$30 .lFJ.mF0 -L10E0 fcb $4A,$AF,$42,$CC,$00,$01,$ED,$4B J/BL..mK -L10E8 fcb $EC,$42,$E3,$4B,$ED,$44,$ED,$C4 lBcKmDmD -L10F0 fcb $35,$C0,$34,$40,$E6,$65,$1D,$1F 5@4@fe.. -L10F8 fcb $01,$20,$1D,$EC,$F8,$06,$C3,$00 . .lx.C. -L1100 fcb $04,$ED,$F8,$06,$30,$8D,$00,$27 .mx.0..' -L1108 fcb $20,$0A,$E6,$65,$E7,$A9,$00,$10 .feg).. -L1110 fcb $30,$A9,$00,$0F,$1F,$10,$35,$C0 0)....5@ -L1118 fcb $8C,$00,$64,$27,$DE,$8C,$00,$6F ..d'^..o -L1120 fcb $10,$27,$FF,$D7,$8C,$00,$78,$10 .'.W..x. -L1128 fcb $27,$FF,$D0,$20,$DD,$35,$C0,$00 '.P ]5@. -L1130 fcb $34,$40,$30,$8D,$00,$04,$1F,$10 4@0..... -L1138 fcb $35,$C0,$00,$34,$40,$EE,$64,$E6 5@.4@ndf -L1140 fcb $C0,$26,$FC,$1F,$30,$A3,$64,$C3 @&..0#dC -L1148 fcb $FF,$FF,$35,$C0,$34,$40,$EE,$66 ..5@4@nf -L1150 fcb $32,$7E,$EC,$66,$ED,$E4,$E6,$C0 2~lfmdf@ -L1158 fcb $AE,$E4,$30,$01,$AF,$E4,$E7,$1F .d0./dg. -L1160 fcb $26,$F4,$20,$27,$34,$40,$EE,$66 &t '4@nf -L1168 fcb $32,$7E,$EC,$66,$ED,$E4,$AE,$E4 2~lfmd.d -L1170 fcb $30,$01,$AF,$E4,$E6,$1F,$26,$F6 0./df.&v -L1178 fcb $EC,$E4,$C3,$FF,$FF,$ED,$E4,$E6 ldC..mdf -L1180 fcb $C0,$AE,$E4,$30,$01,$AF,$E4,$E7 @.d0./dg -L1188 fcb $1F,$26,$F4,$EC,$66,$32,$62,$35 .&tlf2b5 -L1190 fcb $C0,$34,$40,$EE,$64,$20,$10,$AE @4@nd .. -L1198 fcb $66,$30,$01,$AF,$66,$E6,$1F,$26 f0./ff.& -L11A0 fcb $04,$4F,$5F,$35,$C0,$33,$41,$E6 .O_5@3Af -L11A8 fcb $C4,$1D,$34,$06,$E6,$F8,$08,$1D D.4.fx.. -L11B0 fcb $10,$A3,$E1,$27,$E2,$E6,$F8,$06 .#a'bfx. -L11B8 fcb $1D,$34,$06,$E6,$C4,$1D,$A3,$E1 .4.fD.#a -L11C0 fcb $35,$C0,$34,$40,$EE,$64,$32,$7B 5@4@nd2{ -L11C8 fcb $4F,$5F,$ED,$61,$E6,$C0,$E7,$E4 O_maf@gd -L11D0 fcb $C1,$20,$27,$F8,$E6,$E4,$C1,$09 A 'xfdA. -L11D8 fcb $10,$27,$FF,$F0,$E6,$E4,$C1,$2D .'.pfdA- -L11E0 fcb $26,$05,$CC,$00,$01,$20,$02,$4F &.L.. .O -L11E8 fcb $5F,$ED,$63,$E6,$E4,$C1,$2D,$27 _mcfdA-' -L11F0 fcb $1E,$E6,$E4,$C1,$2B,$26,$1C,$20 .fdA+&. -L11F8 fcb $16,$EC,$61,$34,$06,$CC,$00,$0A .la4.L.. -L1200 fcb $17,$00,$32,$34,$06,$E6,$62,$1D ..24.fb. -L1208 fcb $E3,$E1,$C3,$FF,$D0,$ED,$61,$E6 caC.Pmaf -L1210 fcb $C0,$E7,$E4,$E6,$E4,$1D,$30,$A9 @gdfd.0) -L1218 fcb $00,$E3,$30,$8B,$E6,$84,$4F,$C4 .c0.f.OD -L1220 fcb $08,$26,$D6,$EC,$63,$27,$08,$EC .&Vlc'.l -L1228 fcb $61,$40,$50,$82,$00,$20,$02,$EC a@P.. .l -L1230 fcb $61,$32,$65,$35,$C0,$4D,$26,$12 a2e5@M&. -L1238 fcb $6D,$62,$26,$0E,$A6,$63,$3D,$AE mb&.&c=. -L1240 fcb $E4,$AF,$62,$8E,$00,$00,$ED,$E4 d/b...md -L1248 fcb $35,$86,$34,$06,$CC,$00,$00,$34 5.4.L..4 -L1250 fcb $06,$34,$06,$A6,$65,$E6,$69,$3D .4.&efi= -L1258 fcb $ED,$62,$A6,$65,$E6,$68,$3D,$E3 mb&efh=c -L1260 fcb $61,$ED,$61,$24,$02,$6C,$E4,$A6 ama$.ld& -L1268 fcb $64,$E6,$69,$3D,$E3,$61,$ED,$61 dfi=cama -L1270 fcb $24,$02,$6C,$E4,$A6,$64,$E6,$68 $.ld&dfh -L1278 fcb $3D,$E3,$E4,$ED,$E4,$AE,$66,$AF =cdmd.f/ -L1280 fcb $68,$AE,$E4,$EC,$62,$32,$68,$39 h.dlb2h9 -L1288 fcb $5D,$27,$13,$67,$62,$66,$63,$5A ]'.gbfcZ -L1290 fcb $26,$F9,$20,$0A,$5D,$27,$07,$64 &y .]'.d -L1298 fcb $62,$66,$63,$5A,$26,$F9,$EC,$62 bfcZ&ylb -L12A0 fcb $34,$06,$EC,$62,$ED,$64,$EC,$E4 4.lbmdld -L12A8 fcb $32,$64,$39,$5D,$27,$F0,$68,$63 2d9]'phc -L12B0 fcb $69,$62,$5A,$26,$F9,$20,$E7,$A6 ibZ&y g& -L12B8 fcb $65,$E6,$63,$27,$2D,$C1,$01,$27 efc'-A.' -L12C0 fcb $2B,$C1,$06,$27,$27,$C1,$02,$27 +A.''A.' -L12C8 fcb $09,$C1,$05,$27,$05,$C6,$D0,$16 .A.'.FP. -L12D0 fcb $02,$15,$34,$40,$10,$3F,$8D,$24 ..4@.?.$ -L12D8 fcb $05,$35,$40,$16,$02,$09,$AF,$F8 .5@.../x -L12E0 fcb $08,$AE,$68,$EF,$02,$35,$40,$4F ..ho.5@O -L12E8 fcb $5F,$39,$AE,$66,$10,$3F,$8D,$16 _9.f.?.. -L12F0 fcb $01,$FE,$A6,$65,$E6,$63,$27,$09 ..&efc'. -L12F8 fcb $C1,$02,$27,$0D,$C6,$D0,$16,$01 A.'.FP.. -L1300 fcb $E6,$AE,$66,$10,$3F,$8E,$16,$01 f.f.?... -L1308 fcb $E7,$34,$40,$AE,$68,$EE,$6A,$10 g4@.hnj. -L1310 fcb $3F,$8E,$35,$40,$16,$01,$D9,$AE ?.5@..Y. -L1318 fcb $62,$A6,$65,$10,$3F,$84,$25,$03 b&e.?.%. -L1320 fcb $10,$3F,$8F,$16,$01,$CA,$AE,$62 .?...J.b -L1328 fcb $A6,$65,$10,$3F,$84,$10,$25,$01 &e.?..%. -L1330 fcb $B6,$1F,$89,$4F,$39,$A6,$63,$10 6..O9&c. -L1338 fcb $3F,$8F,$16,$01,$B3,$AE,$62,$E6 ?...3.bf -L1340 fcb $65,$10,$3F,$85,$16,$01,$A9,$AE e.?...). -L1348 fcb $62,$A6,$65,$1F,$89,$C4,$24,$CA b&e..D$J -L1350 fcb $0B,$10,$3F,$83,$25,$04,$1F,$89 ..?.%... -L1358 fcb $4F,$39,$C1,$DA,$10,$26,$01,$87 O9AZ.&.. -L1360 fcb $A6,$65,$85,$80,$10,$26,$01,$7F &e...&. -L1368 fcb $84,$07,$AE,$62,$10,$3F,$84,$10 ...b.?.. -L1370 fcb $25,$01,$74,$34,$42,$8E,$00,$00 %.t4B... -L1378 fcb $33,$84,$C6,$02,$10,$3F,$8E,$35 3.F..?.5 -L1380 fcb $42,$24,$D3,$34,$04,$10,$3F,$8F B$S4..?. -L1388 fcb $35,$04,$16,$01,$5A,$AE,$62,$10 5...Z.b. -L1390 fcb $3F,$87,$16,$01,$5B,$A6,$63,$10 ?...[&c. -L1398 fcb $3F,$82,$10,$25,$01,$49,$1F,$89 ?..%.I.. -L13A0 fcb $4F,$39,$34,$20,$AE,$66,$A6,$65 O94 .f&e -L13A8 fcb $10,$AE,$68,$34,$20,$10,$3F,$89 ..h4 .?. -L13B0 fcb $24,$0D,$C1,$D3,$26,$04,$4F,$5F $.AS&.O_ -L13B8 fcb $35,$B0,$35,$30,$16,$01,$28,$1F 5050..(. -L13C0 fcb $20,$35,$B0,$34,$20,$A6,$65,$AE 504 &e. -L13C8 fcb $66,$10,$AE,$68,$34,$20,$10,$3F f..h4 .? -L13D0 fcb $8B,$20,$DD,$34,$20,$10,$AE,$68 . ]4 ..h -L13D8 fcb $27,$0E,$A6,$65,$AE,$66,$10,$3F '.&e.f.? -L13E0 fcb $8A,$24,$05,$35,$20,$16,$00,$FF .$.5 ... -L13E8 fcb $1F,$20,$35,$A0,$34,$20,$10,$AE . 5 4 .. -L13F0 fcb $68,$27,$F5,$A6,$65,$AE,$66,$10 h'u&e.f. -L13F8 fcb $3F,$8C,$20,$E5,$34,$40,$EC,$6A ?. e4@lj -L1400 fcb $26,$08,$CE,$00,$00,$8E,$00,$00 &.N..... -L1408 fcb $20,$34,$10,$83,$00,$01,$27,$25 4....'% -L1410 fcb $10,$83,$00,$02,$27,$14,$C6,$F7 ....'.Fw -L1418 fcb $4F,$ED,$A9,$01,$B1,$CC,$FF,$FF Om).1L.. -L1420 fcb $30,$A9,$01,$A5,$ED,$84,$ED,$02 0).%m.m. -L1428 fcb $35,$C0,$A6,$65,$C6,$02,$10,$3F 5@&eF..? -L1430 fcb $8D,$25,$E5,$20,$09,$A6,$65,$C6 .%e .&eF -L1438 fcb $05,$10,$3F,$8D,$25,$DA,$1F,$30 ..?.%Z.0 -L1440 fcb $E3,$68,$ED,$A9,$01,$A7,$1F,$03 chm).'.. -L1448 fcb $1F,$10,$E9,$67,$A9,$66,$2B,$C8 ..ig)f+H -L1450 fcb $1F,$01,$ED,$A9,$01,$A5,$A6,$65 ..m).%&e -L1458 fcb $10,$3F,$88,$25,$BB,$30,$A9,$01 .?.%;0). -L1460 fcb $A5,$35,$C0,$EC,$A9,$01,$A3,$34 %5@l).#4 -L1468 fcb $06,$EC,$64,$10,$A3,$A9,$01,$CD .ld.#).M -L1470 fcb $25,$25,$E3,$A9,$01,$A3,$34,$20 %%c).#4 -L1478 fcb $A3,$E4,$10,$3F,$07,$1F,$20,$35 #d.?.. 5 -L1480 fcb $20,$24,$06,$CC,$FF,$FF,$32,$62 $.L..2b -L1488 fcb $39,$ED,$A9,$01,$A3,$E3,$A9,$01 9m).#c). -L1490 fcb $CD,$A3,$E4,$ED,$A9,$01,$CD,$32 M#dm).M2 -L1498 fcb $62,$EC,$A9,$01,$CD,$34,$06,$A3 bl).M4.# -L14A0 fcb $64,$ED,$A9,$01,$CD,$EC,$A9,$01 dm).Ml). -L14A8 fcb $A3,$A3,$E1,$34,$06,$4F,$AE,$E4 ##a4.O.d -L14B0 fcb $A7,$80,$AC,$A9,$01,$A3,$25,$F8 '.,).#%x -L14B8 fcb $35,$86,$EC,$62,$E3,$A9,$01,$AD 5.lbc).- -L14C0 fcb $25,$21,$10,$A3,$A9,$01,$AF,$24 %!.#)./$ -L14C8 fcb $1A,$34,$06,$AE,$A9,$01,$AD,$4F .4..).-O -L14D0 fcb $AC,$E4,$24,$04,$A7,$80,$20,$F8 ,d$.'. x -L14D8 fcb $EC,$A9,$01,$AD,$35,$10,$AF,$A9 l).-5./) -L14E0 fcb $01,$AD,$39,$CC,$FF,$FF,$39,$4F .-9L..9O -L14E8 fcb $ED,$A9,$01,$B1,$CC,$FF,$FF,$39 m).1L..9 -L14F0 fcb $25,$F5,$4F,$5F,$39,$17,$00,$08 %uO_9... -L14F8 fcb $17,$F8,$C0,$EC,$62,$10,$3F,$06 .x@lb.?. -L1500 fcb $39,$00,$01,$00,$01,$62,$74,$4F 9....btO + + + nam tocgen + ttl program module + +* Disassembled 03/01/07 13:59:26 by Disasm v1.6 (C) 1988 by RML + + ifp1 + use os9defs + endc + +* Params +MAXARGS equ 30 allow for 30 arguments +nfiles equ 2 stdin and stdout at least +Stk equ nfiles*256+128+256 stdin,stdout,stderr and fudge + +* These are probably defined in scfdefs +C$CR equ $0D +C$SPC equ $20 +C$COMA equ $2C +C$DQUt equ $22 +C$SQUT equ $27 + + +* These should be defined somewhere +stdin equ 0 +stdout equ 1 +stderr equ 2 + +* These should be defined somewhere +pmode equ $0b r/w for owner, r for others +EPEXEC. equ %00100100 mask for public and owner executes + + + +* OS9 Header info + +tylg set Prgrm+Objct +atrv set ReEnt+rev +rev set $01 + mod eom,name,tylg,atrv,start,size + + +******************************************************************** +* From cstart.a +* MAXARGS equ 30 allow for 30 arguments +* +* +* rob the first dp byte so nothing gets assigned +* here. No valid pointer can point to byte zero. +* +* vsect dp +* __$$ fcb 0 +* endsect +* +* pushzero is a rma macro not supported by asm used in cstart.a +* pushzero macro +* clr ,-s clear a byte on the stack +* endm + +******************************************************************** +btext equ . +u0000 rmb 1 I think this is the __$$ fcb 0 vsect. +dpsiz rmb 1 +u0002 rmb 2 +u0004 rmb 2 +u0006 rmb 2 +u0008 rmb 2 +u000A rmb 1 +u000B rmb 2 + +u000D rmb 2 +u000F rmb 2 +u0011 rmb 1 +u0012 rmb 2 +u0014 rmb 335 + +*u0020 rmb 5 +*u0025 rmb 2 +*u0027 rmb 30 +*u0043 rmb 2 +*u0045 rmb 31 +*u0064 rmb 132 +*u00E8 rmb 123 + + + +* if I understand how the vsects work in rma +* the following should be true +* the following are globally known +* vsect (from cstart.a) +* pwz the did fall into place :-) + +argv rmb 2*MAXARGS pointers to args +argc rmb 2 +_sttop rmb 2 + +memend rmb 2 end of memory ($01a3) +_flacc: rmb 8 floating point & longs accumulator ($01A5) +_mtop: rmb 2 current non-stack memory top +_stbot: rmb 2 current stack bottom limit +errno: rmb 2 global error holder ($01b1) + +varnum1 rmb 2 ($01b3) +varnum2 rmb 10 ($01b5) +varnum3 rmb 10 ($01bf) +varnum4 rmb 2 ($01c9) +varnum5 rmb 2 ($01cb) +spare rmb 2 from mem.a ($01CD) +end equ . End of unitialized data ($01CF) + + +stack rmb Stk +size equ . + +name equ * + fcs /tocgen/ module name + fcb $01 edition byte + +******************************************************************** +* Start of code from cstart.a file. +* +* The movebytes routine +* +* move bytes (Y=From addr, U=To addr, X=Count) +* + + +movebytes lda ,y+ get a byte + sta ,u+ put a byte + leax -1,x dec the count + bne movebytes and round again + rts + +_cstart +start equ * _cstart code + pshs y save top of mem + pshs u save the data beginning address + +* +* This code segment initializes the first 256 +* (possible) direct page bytes +* + + clra set up to clear + clrb 256 bytes +csta05 sta ,u+ clear dp bytes + decb + bne csta05 + +* +* This code segment sets up to move the +* initialized data from the code section +* to the data area. +* + + +csta10 ldx ,s get the beginning of data address + leau ,x (tfr x,u) + leax end,x get the end of bss address +** leax >$01CF,x absolute address of the operand ?? + pshs x save it + leay >etext,pcr point to dp-data count word + +* +* now move the initialized direct-page +* data into position. +* + + ldx ,y++ get count of dp-data to be moved + beq csta15 bra if none (L003E old label) + bsr movebytes move dp data into position (L0014) + +* +* now move the initialized non direct-page +* data into position. +* + + + ldu $02,s get beginning address again +csta15 leau >dpsiz,u point to where non-dp should start + ldx ,y++ get count of non-dp data to be moved + beq clrbss (L0049 old label) + bsr movebytes move non-dp data into position + +* +* clear the bss area - starts where the transferred data finishs +* now clear out the rest of the uninitialized data area. +* + + clra +clrbss cmpu ,s reached the end ?? + beq reldt if so branch to relocate + sta ,u+ if not end clear it + bra clrbss and then go again (L0049 old tag) + +* +* The linker cannot know the final absolute +* addresses of any data in the data area that +* refers to other data or code. The next section +* of code will add the base of the text area to +* data pointers pointing to text (data-text references) +* and add the base of the data area to data pointers +* pointing to other data (data-data references). +* The linker leaves a list of the offsets at the end +* object code module. + +* +* now relocate the data-text references +* + +reldt ldu $02,s restore to data bottom + ldd ,y++ get the data text ref count + beq reldd (old tag L005F) + +****************************************************************** +* this is interesting +* from the cstart.a code this line is as follows +* +* this guy points back to line L0000 but where is it +* at offset zero of course` +* +* +* leax >L0000,pcr point to text ??? line from disassembly + + leax btext,pcr point to text. ---- line from cstart.a + lbsr patch patch them in (L0162 old tag) + +* +* and now the data-data refs. +* +reldd ldd ,y++ get the count of the data refs + beq restack branch if none (L0068 old tag) + leax ,u u was already pointing there + lbsr patch patch them in (L0162 old tag) + +****************************************************************** +* +* this restack is slightly diff from the root.a version in the +* c-compiler code. +* restack leas 4,s return scratch +* leay 0,u tfr u,y (base addr of data to y) +* puls u high end of allocated data area +* leax 0,s point to parameters + + +restack leas $04,s reset stack + puls x restore 'memend' + stx >memend,u + +****************************************************************** +* +* process the params +* the stack pointer is back where it started so is +* pointing at the params +* +* the objective is to insert null chars at the end of each argument +* and fill in the argv vector with pointers to them + +* first store the program name address +* (an extra name inserted here for just this purpose +* - undocumented as yet) + + sty >argv,u + ldd #$0001 at least one arg + std >argc,u + leay >argv+2,u point y at second slot + leax ,s point x at params + lda ,x+ initialize + +aloop ldb >argc+1,u + cmpb #MAXARGS-1 about to overflow ?? + beq final branch out + +aloop10 cmpa #C$CR is it the EOL? + beq final yep - reached end of the list + cmpa #C$SPC is it a space + beq aloop20 yep go for the next one + cmpa #C$COMA is it a comma ? + bne aloop30 no - then a word has started + +aloop20 lda ,x+ yes it's a comma bump to next char + bra aloop10 and loop again + +aloop30 cmpa #C$DQUT a quoted string (") + beq aloop40 yep - go process it + cmpa #C$SQUT a quoted string (') + bne aloop60 not quotes double or single move on + +aloop40 stx ,y++ save the address in vector + inc >argc+1,u bump up the arg count + pshs a save the delim char + +qloop lda ,x+ get the next char + cmpa #C$CR EOL? + beq aloop50 go clean up + cmpa ,s is it a delim char + bne qloop no then lop to the next + +aloop50 puls b clean up stack + clr -$01,x + cmpa #C$CR + beq final + lda ,x+ + bra aloop + +aloop60 leax -$01,x point at first char + stx ,y++ put address in vector + leax $01,x bump it back + inc >argc+1,u bump up the arg count + +* at least one none space character has been seen +aloop70 cmpa #C$CR Have + beq loopend we + cmpa #C$SPC reached + beq loopend the end + cmpa #C$COMA comma? + beq loopend look some more + lda ,x+ + bra aloop70 + +loopend clr -$01,x + bra aloop + +*` +* Now put the pointers on the stack +* +final leax >argv,u get the address of the arg vector + pshs x goes on the stack first + ldd >argc,u get the arg count + + pshs b,a +* pshs d push it on the stack + + leay 0,u C progs. assume data and bss offset from y +* see note above in restack +* +* end of argv and argc processing +* +***************************************************** +* +* Registers at this point: +* +* X = Pointer to parameter area +* U = Pointer to top of data allocated +* by the linker. +* Y = Pointer to bottom of data area +* DP = Same as high byte of Y-reg +* +* The linker has adjusted +* all non-direct-page data references to reflect +* the data memory as we have set up here. The +* data-index register choice here is arbitrary, +* but must be used consistently. To maintain +* compatability with code produced by the C compiler, +* the Y register is used here as the data pointer. + + +******************************************************* +* +* go set up variables for stack size and such +* + bsr _fixtop set various variables + +******************************************************* +* +* go to the main event +* + lbsr main call our program + +* clean up and bit and out we go + + clr ,-s pushzero clear a byte on the stack + clr ,-s pushzero clear a byte on the stack + lbsr exit and a dummy return address +* should never return here + + +******************************************************** +* +* +* + +_fixtop leax end,y get the initial memeory end +* (unitilaized data "bss"address) + stx _mtop,y its the current memory top + sts _sttop,y this is really two bytes short + sts _stbot,y + ldd #-126 give ourselfs some breathing space + +* stx >$01AD,y ---- disassembly +* sts >$01A1,y ---- disassembly +* sts >$01AF,y ---- disassembly +* ldd #$FF82 ---- disassembly + +_stkchec: +_stkcheck: + leax d,s calculate the requested size + cmpx _stbot,y is it lower than already reserved? +* bcc stk10 ---- disassembly + bhs stk10 no -return + cmpx _mtop,y is it lower than possible? +* bcs ftserr ---- disassembly + blo fsterr yes - can't cope + stx _stbot,y no - reserve it +stk10 rts + +* Stackover flow string +fixserr fcc %**** STACK OVERFLOW ****% + fcb $0D + +* Stackover flow error processing +* entry: +* a -> path to write +* b -> mem full error +* x -> address of data to be written +* y -> maximum #of bytes message length +* s -> b pushed to preserve the mem full error +* since the I$WritLn returns it error code in b +* exit: +* u - unchanged +* y - number of bytes written +* s-> popped back to prior to entry +* +* error: (I$writLn) +* CC -> Carry set +* b -> error code +* + +fsterr leax <fixserr,pcr load x wit address of error strin + ldb #E$MEMFUL load b with the error code number + +erexit pshs b stack the error number + lda #stderr set path to standard error output + ldy #$0064 set size more than needed + os9 I$WritLn write it +* pop the error code back + clr ,-s pushzero clear MSB of status + lbsr _exit and out +* no return here + +* stacksize() +* returns the extent of stack requested +* can be used by programmer for guidance +* in sizing memory at compile time + +stacksiz: + ldd _sttop,y top of stack on entry + subd _stbot,y subtract current reserved limit + rts + + +* freemem() +* returns the current size of the free memory area +* + +freemem: + ldd _stbot,y + subd _mtop,y + rts + + + +* patch - adjust initialised data which refer to memory locations. +* entry: +* y -> list of offsets in the data area to be patched +* u -> base of data +* x -> base of either text or data area as appropriate +* d = count of offsets in the list +* +* exit: +* u - unchanged +* y - past the last entry in the list +* x and d mangled + +patch pshs x save the base + leax d,y half way up the list + leax d,x top of list + pshs x save it as place to stop + +* we do not come to this routine with +* a zero count (check!) so a test at the loop top +* is unnecessary + +patch10 ldd ,y++ get the offset + leax d,u point to location + ldd 0,x get the relative reference + addd 2,s add in the base + std 0,x store the absolute reference + cmpy 0,s reached the top? + bne patch10 no - round again + + leas 4,s reset the stack + rts and return + + + + +main pshs u + ldd #$FD57 + lbsr _stkcheck: check for sufficient stack available: + + leas >-$025D,s + ldd >$0261,s + cmpd #$0002 looks like we check for two args + beq gotargs if good number go + ldd [>$0263,s] + pshs b,a + leax >usemsg,pcr load address of usage message + pshs x push it on the stack + + lbsr L07EF + leas $04,s clean up stack + clra clear the exit codes + clrb from d + pshs b,a push it on the stack + lbsr exit + + + leas $02,s + +gotargs leax >L04C8,pcr Load address data after usage message + pshs x + ldx >$0265,s + ldd $02,x + pshs b,a + lbsr L06CF + leas $04,s + std >$025B,s + bne L01E1 + ldx >$0263,s + ldd $02,x + pshs b,a + leax >cntread,pcr Load address can't open for reading message + pshs x + lbsr L07EF + leas $04,s + clra + clrb + pshs b,a + lbsr exit + + leas $02,s +L01E1 clra + clrb + std >$0082,s + lslb + rola + leax ,s + leax d,x + clra + clrb + std ,x + leax >$0084,s + stx >$0255,s + lbra L0396 + +L01FC ldd >$0257,s + addd #$0001 + std >$0257,s +L0207 ldb [>$0257,s] + cmpb #C$CR + beq L021F + ldb [>$0257,s] + cmpb #$64 'd + beq L021F + ldb [>$0257,s] + cmpb #$44 'D + bne L01FC +L021F ldb [>$0257,s] + cmpb #C$CR + beq L0247 + ldd >$0257,s + addd #$0001 + std >$0257,s + pshs b,a + lbsr L11C2 + leas $02,s + ldx >$0255,s + leax $01,x + stx >$0255,s + stb -$01,x + bra L026E + +L0247 leax >$0204,s + pshs x + leax >dsknmsg,pcr Load address of disk number ?? mising + pshs x + lbsr L07EF + leas $04,s + clra + clrb + pshs b,a + lbsr exit + leas $02,s + bra L026E +L0263 ldd >$0257,s + addd #$0001 + std >$0257,s +L026E ldb [>$0257,s] + cmpb #C$CR + beq L0286 + ldb [>$0257,s] + cmpb #$73 's + beq L0286 + ldb [>$0257,s] + cmpb #$53 'S + bne L0263 +L0286 ldb [>$0257,s] + cmpb #C$CR + beq L02CE + ldd >$0257,s + addd #$0001 + std >$0257,s + pshs b,a + lbsr L11C2 + leas $02,s + stb >$025A,s + cmpb #$01 + beq L02B0 + ldb >$025A,s + cmpb #$02 + bne L02C2 +L02B0 ldb >$025A,s + ldx >$0255,s + leax $01,x + stx >$0255,s + stb -$01,x + bra L02E8 +L02C2 leax >$0204,s + pshs x + leax >invside,pcr load address of the invalid side message + bra L02D8 +L02CE leax >$0204,s + pshs x + leax >snmiss,pcr load address of side number missing mesg +L02D8 pshs x + lbsr L07EF + leas $04,s + clra + clrb + pshs b,a + lbsr exit + leas $02,s +L02E8 clra + clrb + stb >$0259,s + bra L0342 +L02F0 ldd >$0257,s + addd #$0001 + std >$0257,s +L02FB ldb [>$0257,s] + cmpb #C$CR + beq L0313 + ldb [>$0257,s] + cmpb #$76 's + beq L0313 + ldb [>$0257,s] + cmpb #$56 'S + bne L02F0 +L0313 ldb [>$0257,s] + cmpb #C$CR + beq L034A + ldd >$0257,s + addd #$0001 + std >$0257,s + pshs b,a + lbsr L11C2 + leas $02,s + ldx >$0255,s + leax $01,x + stx >$0255,s + stb -$01,x + ldd #$0001 + stb >$0259,s + bra L0342 +L0342 ldb [>$0257,s] + cmpb #C$CR + bne L02FB +L034A ldb >$0259,s + bne L036A + leax >$0204,s + pshs x + leax >vnmiss,pcr load address of volume missing mesg + pshs x + lbsr L07EF + leas $04,s + clra + clrb + pshs b,a + lbsr exit head out + + leas $02,s +L036A ldx >$0255,s + ldb -$01,x + sex + orb #$80 + stb -$01,x + ldd >$0082,s + addd #$0001 + std >$0082,s + lslb + rola + leax ,s + leax d,x + pshs x + leax >$0086,s + pshs x + ldd >$0259,s + subd ,s++ + std [,s++] +L0396 ldd >$025B,s + pshs b,a + ldd #$0051 + pshs b,a + leax >$0208,s + pshs x + lbsr L075C + leas $06,s + std >$0257,s + lbne L0207 + clra + clrb + bra L03D7 +L03B8 ldd >$0080,s + lslb + rola + leax ,s + leax d,x + ldd ,x + pshs x,b,a + ldd >$0086,s + lslb + rola + addd ,s++ + std [,s++] + ldd >$0080,s + addd #$0001 +L03D7 std >$0080,s + ldd >$0080,s + cmpd >$0082,s + bcs L03B8 + ldd >$025B,s + pshs b,a + lbsr L0DE4 + leas $02,s + leax >L0548,pcr + pshs x + leax >dpsiz,y + pshs x + lbsr L06CF + leas $04,s + std >$025B,s + bne L0422 + + leax >dpsiz,y + pshs x + leax >cntwrit,pcr load address of can't write mesg + pshs x + lbsr L07EF + leas $04,s + clra + clrb + pshs b,a + lbsr exit + + leas $02,s +L0422 ldd >$025B,s + pshs b,a + ldd >$0084,s + pshs b,a + lbsr egg2 + leas $04,s + cmpd #$FFFF + beq L0481 + ldd >$025B,s + pshs b,a + ldd #$0001 + pshs b,a + ldd >$0086,s + lslb + rola + pshs b,a + leax $06,s + pshs x + lbsr L07A5 + leas $08,s + std -$02,s + beq L0481 + ldd >$025B,s + pshs b,a + ldd #$0001 + pshs b,a + leax >$0088,s + pshs x + ldd >$025B,s + subd ,s++ + pshs b,a + leax >$008A,s + pshs x + lbsr L07A5 + leas $08,s + std -$02,s + bne L049B +L0481 leax >dpsiz,y + pshs x + leax errwrit,pcr load address of error writing mesg + pshs x + lbsr L07EF + leas $04,s + clra + clrb + pshs b,a + lbsr exit + + leas $02,s +L049B ldd >$025B,s + pshs b,a + lbsr L0DE4 + leas $02,s + clra + clrb + pshs b,a + lbsr exit + leas $02,s + leas >$025D,s + puls pc,u + +usemsg fcc /Usage: %s pathlist/ c-string + fcb $00 null terminator c-string + + +L04C8 fcb $72,$00 what am I + +cntread fcc /Can't open %s for reading./ c-string + fcb C$CR,$00 cr and null term + +dsknmsg fcc /Disk number missing:/ c-string + fcb C$CR with a cr embedded + fcc /%s/ c-string + fcb $00 null terminator c-string + +invside fcc /Invalid side number:/ + fcb C$CR + fcc /%s/ + fcb $00 + +snmiss fcc /Side number missing:/ + fcb C$CR + fcc /%s/ + fcb $00 + +vnmiss fcc /Volume number missing:/ + fcb C$CR + fcc /%s/ + fcb $00 + +L0548 fcb $77,$00 what am i + +cntwrit fcc /Can't open %s for writing./ + fcb C$CR,$00 + + +errwrit fcc /Error writing %s./ + fcb C$CR + fcb $00 + + +* the null actually terminates the above string +*L0578 fcb $00 same code frag as egg2 calls into +*L0579 fcb $34 +* neg <u0034 dis assembled as "3440" disassembled as +* nega + +egg1 pshs u *** pshs u incorrectly decoded + +L057B leau >u0012,y +L057F ldd u0006,u + clra + andb #$03 + lbeq L05F0 + leau u000D,u + pshs u + leax >$00E2,y + cmpx ,s++ + bhi L057F + ldd #E$PthFul $00C8 + std >errno,y 01b1 + lbra L05F4 + puls pc,u + +L05A0 pshs u + ldu $08,s + bne L05AA + bsr egg1 *** pshs u incorrectly decoded + tfr d,u +L05AA stu -$02,s + beq L05F4 + ldd $04,s + std u0008,u + ldx $06,s + ldb $01,x + cmpb #$2B '+ ????? + beq L05C2 + ldx $06,s + ldb $02,x + cmpb #$2B '+ ?????? + bne L05C8 +L05C2 ldd u0006,u + orb #$03 + bra L05E6 +L05C8 ldd u0006,u + pshs b,a + ldb [<$08,s] + cmpb #$72 'r + beq L05DA + ldb [<$08,s] + cmpb #$64 'd + bne L05DF +L05DA ldd #$0001 + bra L05E2 +L05DF ldd #$0002 +L05E2 ora ,s+ +L05E4 orb ,s+ +L05E6 std u0006,u + ldd u0002,u + addd u000B,u + std u0004,u + std ,u +L05F0 tfr u,d + puls pc,u + +L05F4 clra + clrb + puls pc,u + +L05F8 pshs u + ldu $04,s + leas -$04,s + clra + clrb + std ,s + ldx $0A,s + ldb $01,x + sex + tfr d,x + bra L0629 +L060B ldx $0A,s + ldb $02,x + cmpb #$2B '+ + bne L0618 + ldd #$0007 + bra L0620 +L0618 ldd #$0004 + bra L0620 +L061D ldd #$0003 +L0620 std ,s + bra L0639 +L0624 leax $04,s + lbra L0691 +L0629 stx -$02,s + beq L0639 + cmpx #$0078 + beq L060B + cmpx #$002B + beq L061D + bra L0624 +L0639 ldb [<$0A,s] + sex + tfr d,x + lbra L069E +L0642 ldd ,s + orb #$01 + bra L0684 +L0648 ldd ,s + orb #$02 + pshs b,a + pshs u + lbsr open: + leas $04,s + std $02,s + cmpd #$FFFF + beq L0673 + ldd #$0002 + pshs b,a + clra + clrb + pshs b,a + pshs b,a + ldd $08,s + pshs b,a + lbsr lseek: + leas $08,s + bra L06B8 +L0673 ldd ,s + orb #$02 + pshs b,a + pshs u + lbsr creat: + bra L068B +L0680 ldd ,s + orb #$81 +L0684 pshs b,a + pshs u + lbsr open: +L068B leas $04,s + std $02,s + bra L06B8 +L0691 leas -$04,x +L0693 ldd #$00CB + std >errno,y 01b1 + clra + clrb + bra L06BA +L069E cmpx #$0072 + lbeq L0642 + cmpx #$0061 + lbeq L0648 + cmpx #$0077 + beq L0673 + cmpx #$0064 + beq L0680 + bra L0693 +L06B8 ldd $02,s +L06BA leas $04,s + puls pc,u + pshs u + clra + clrb + pshs b,a + ldd $08,s + pshs b,a + ldd $08,s + pshs b,a + lbra L071A +L06CF pshs u + ldd $06,s + pshs b,a + ldd $06,s + pshs b,a + lbsr L05F8 + leas $04,s + tfr d,u + cmpu #$FFFF + bne L06EA + clra + clrb + bra L071F +L06EA clra + clrb + bra L0712 + pshs u + ldd $08,s + pshs b,a + lbsr L0DE4 + leas $02,s + ldd $06,s + pshs b,a + ldd $06,s + pshs b,a + lbsr L05F8 + leas $04,s + tfr d,u + stu -$02,s + bge L0710 + clra + clrb + bra L071F +L0710 ldd $08,s +L0712 pshs b,a + ldd $08,s + pshs b,a + pshs u +L071A lbsr L05A0 + leas $06,s +L071F puls pc,u + pshs u,b,a + ldu $06,s + bra L072B +L0727 ldd ,s + stb ,u+ +L072B leax >u0012,y + pshs x + lbsr L0F0E + leas $02,s + std ,s + cmpd #$000D + beq L0746 + ldd ,s + cmpd #$FFFF + bne L0727 +L0746 ldd ,s + cmpd #$FFFF + bne L0752 + clra + clrb + bra L0758 +L0752 clra + clrb + stb ,u + ldd $06,s +L0758 leas $02,s + puls pc,u + +L075C pshs u + ldu $06,s + leas -$04,s + ldd $08,s + std ,s + bra L0776 +L0768 ldd $02,s + ldx ,s + leax $01,x + stx ,s + stb -$01,x + cmpb #C$CR + beq L078F +L0776 tfr u,d + leau -dpsiz,u + std -$02,s + ble L078F + ldd $0C,s + pshs b,a + lbsr L0F0E + leas $02,s + std $02,s + cmpd #$FFFF + bne L0768 +L078F clra + clrb + stb [,s] + ldd $02,s + cmpd #$FFFF + bne L079F + clra + clrb + bra L07A1 +L079F ldd $08,s +L07A1 leas $04,s + puls pc,u + +L07A5 pshs u + ldu $04,s + leas -$04,s + clra + clrb + bra L07E0 +L07AF clra + clrb + std ,s + bra L07CC +L07B5 ldd $0E,s + pshs b,a + ldb ,u+ + sex + pshs b,a + lbsr egg2 + leas $04,s + ldx $0E,s + ldd $06,x + clra + andb #C$SPC + bne L07E9 +L07CC ldd ,s + addd #$0001 + std ,s + subd #$0001 + cmpd $0A,s + blt L07B5 + ldd $02,s + addd #$0001 +L07E0 std $02,s + ldd $02,s + cmpd $0C,s + blt L07AF +L07E9 ldd $02,s + leas $04,s + puls pc,u + +L07EF pshs u + leax >$001F,y + stx >varnum1,y $01B3,y + leax $06,s + pshs x + ldd $06,s + bra L080F + pshs u + ldd $04,s + std >varnum1,y + leax $08,s + pshs x + ldd $08,s +L080F pshs b,a + leax >L0CC7,pcr + pshs x + bsr L0841 + leas $06,s + puls pc,u + pshs u + ldd $04,s + std >varnum1,y + leax $08,s + pshs x + ldd $08,s + pshs b,a + leax >L0CDA,pcr + pshs x + bsr L0841 + leas $06,s + clra + clrb + stb [>varnum1,y] + ldd $04,s + puls pc,u +L0841 pshs u + ldu $06,s + leas -$0B,s + bra L0859 +L0849 ldb $08,s + lbeq L0A8A + ldb $08,s + sex + pshs b,a + jsr [<$11,s] + leas $02,s +L0859 ldb ,u+ + stb $08,s + cmpb #$25 '% + bne L0849 + ldb ,u+ + stb $08,s + clra + clrb + std $02,s + std $06,s + ldb $08,s + cmpb #$2D '- + bne L087E + ldd #$0001 + std >varnum4,y + ldb ,u+ + stb $08,s + bra L0884 +L087E clra + clrb + std >varnum4,y +L0884 ldb $08,s + cmpb #$30 '0 + bne L088F + ldd #$0030 + bra L0892 +L088F ldd #$0020 +L0892 std >varnum5,y + bra L08B2 +L0898 ldd $06,s + pshs b,a + ldd #$000A + lbsr L1235 + pshs b,a + ldb $0A,s + sex + addd #$FFD0 + addd ,s++ + std $06,s + ldb ,u+ + stb $08,s +L08B2 ldb $08,s + sex + leax >$00E3,y + leax d,x + ldb ,x + clra + andb #$08 + bne L0898 + ldb $08,s + cmpb #$2E '. period + bne L08FB + ldd #$0001 + std $04,s + bra L08E5 +L08CF ldd $02,s + pshs b,a + ldd #$000A + lbsr L1235 + pshs b,a + ldb $0A,s + sex + addd #$FFD0 + addd ,s++ + std $02,s +L08E5 ldb ,u+ + stb $08,s + ldb $08,s + sex + leax >$00E3,y + leax d,x + ldb ,x + clra + andb #$08 + bne L08CF + bra L08FF +L08FB clra + clrb + std $04,s +L08FF ldb $08,s + sex + tfr d,x + lbra L0A2D +L0907 ldd $06,s + pshs b,a + ldx <$15,s + leax $02,x + stx <$15,s + ldd -$02,x + pshs b,a + lbsr L0A8E + bra L092F +L091C ldd $06,s + pshs b,a + ldx <$15,s + leax $02,x + stx <$15,s + ldd -$02,x + pshs b,a + lbsr L0B4B +L092F std ,s + lbra L0A13 +L0934 ldd $06,s + pshs b,a + ldb $0A,s + sex + leax >$00E3,y + leax d,x + ldb ,x + clra + andb #$02 + pshs b,a + ldx <$17,s + leax $02,x + stx <$17,s + ldd -$02,x + pshs b,a + lbsr L0B93 + lbra L0A0F +L095A ldd $06,s + pshs b,a + ldx <$15,s + leax $02,x + stx <$15,s + ldd -$02,x + pshs b,a + leax >varnum2,y + pshs x + lbsr L0AD2 + lbra L0A0F +L0976 ldd $04,s + bne L097F + ldd #$0006 + std $02,s +L097F ldd $06,s + pshs b,a + leax <$15,s + pshs x + ldd $06,s + pshs b,a + ldb $0E,s + sex + pshs b,a + lbsr egg3 + leas $06,s + lbra L0A11 +L0999 ldx <$13,s + leax $02,x + stx <$13,s + ldd -$02,x + lbra L0A23 +L09A6 ldx <$13,s + leax $02,x + stx <$13,s + ldd -$02,x + std $09,s + ldd $04,s + beq L09EE + ldd $09,s + std $04,s + bra L09C8 +L09BC ldb [<$09,s] + beq L09D4 + ldd $09,s + addd #$0001 + std $09,s +L09C8 ldd $02,s + addd #$FFFF + std $02,s + subd #$FFFF + bne L09BC +L09D4 ldd $06,s + pshs b,a + ldd $0B,s + subd $06,s + pshs b,a + ldd $08,s + pshs b,a + ldd <$15,s + pshs b,a + lbsr L0BFE + leas $08,s + bra L0A1D +L09EE ldd $06,s + pshs b,a + ldd $0B,s + bra L0A11 +L09F6 ldb ,u+ + stb $08,s + bra L09FE + leas -$0B,x +L09FE ldd $06,s + pshs b,a + leax <$15,s + pshs x + ldb $0C,s + sex + pshs b,a + lbsr L10F2 +L0A0F leas $04,s +L0A11 pshs b,a +L0A13 ldd <$13,s + pshs b,a + lbsr L0C60 + leas $06,s +L0A1D lbra L0859 + +L0A20 ldb $08,s + sex +L0A23 pshs b,a + jsr [<$11,s] + leas $02,s + lbra L0859 + +L0A2D cmpx #$0064 'd + lbeq L0907 + cmpx #$006F 'o + lbeq L091C + cmpx #$0078 'x + lbeq L0934 + cmpx #$0058 'X + lbeq L0934 + cmpx #$0075 'u + lbeq L095A + cmpx #$0066 'f + lbeq L0976 + cmpx #$0065 'e + lbeq L0976 + cmpx #$0067 'g + lbeq L0976 + cmpx #$0045 'E + lbeq L0976 + cmpx #$0047 'G + lbeq L0976 + cmpx #$0063 'c + lbeq L0999 + cmpx #$0073 's + lbeq L09A6 + cmpx #$006C 'l + lbeq L09F6 + bra L0A20 + +L0A8A leas $0B,s + puls pc,u +L0A8E pshs u,b,a + leax >varnum2,y + stx ,s + ldd $06,s + bge L0AC3 + ldd $06,s + nega + negb + sbca #$00 + std $06,s + bge L0AB8 + leax >L0CEC,pcr + pshs x + leax >varnum2,y + pshs x + lbsr L114C + leas $04,s + lbra L0B8F +L0AB8 ldd #$002D + ldx ,s + leax $01,x + stx ,s + stb -$01,x +L0AC3 ldd $06,s + pshs b,a + ldd $02,s + pshs b,a + bsr L0AD2 + leas $04,s + lbra L0B89 +L0AD2 pshs u,y,x,b,a + ldu $0A,s + clra + clrb + std $02,s + clra + clrb + std ,s + bra L0AEF +L0AE0 ldd ,s + addd #$0001 + std ,s + ldd $0C,s + subd >$0005,y + std $0C,s +L0AEF ldd $0C,s + blt L0AE0 + leax >$0005,y + stx $04,s + bra L0B31 +L0AFB ldd ,s + addd #$0001 + std ,s +L0B02 ldd $0C,s + subd [<$04,s] + std $0C,s + bge L0AFB + ldd $0C,s + addd [<$04,s] + std $0C,s + ldd ,s + beq L0B1B + ldd #$0001 + std $02,s +L0B1B ldd $02,s + beq L0B26 + ldd ,s + addd #$0030 + stb ,u+ +L0B26 clra + clrb + std ,s + ldd $04,s + addd #$0002 + std $04,s +L0B31 ldd $04,s + cmpd >$000D,y + bne L0B02 + ldd $0C,s + addd #$0030 + stb ,u+ + clra + clrb + stb ,u + ldd $0A,s + leas $06,s + puls pc,u +L0B4B pshs u,b,a + leax >varnum2,y + stx ,s + leau >varnum3,y +L0B57 ldd $06,s + clra + andb #$07 + addd #$0030 + stb ,u+ + ldd $06,s + lsra + rorb + lsra + rorb + lsra + rorb + std $06,s + bne L0B57 + bra L0B79 +L0B6F ldb ,u + ldx ,s + leax $01,x + stx ,s + stb -$01,x +L0B79 leau -dpsiz,u + pshs u + leax >varnum3,y + cmpx ,s++ + bls L0B6F + clra + clrb + stb [,s] +L0B89 leax >varnum2,y + tfr x,d +L0B8F leas $02,s + puls pc,u +L0B93 pshs u,x,b,a + leax >varnum2,y + stx $02,s + leau >varnum3,y +L0B9F ldd $08,s + clra + andb #$0F + std ,s + pshs b,a + ldd $02,s + cmpd #$0009 + ble L0BC1 + ldd $0C,s + beq L0BB9 + ldd #$0041 + bra L0BBC +L0BB9 ldd #$0061 +L0BBC addd #$FFF6 + bra L0BC4 +L0BC1 ldd #$0030 +L0BC4 addd ,s++ + stb ,u+ + ldd $08,s + lsra + rorb + lsra + rorb + lsra + rorb + lsra + rorb + anda #$0F + std $08,s + bne L0B9F + bra L0BE4 +L0BDA ldb ,u + ldx $02,s + leax $01,x + stx $02,s + stb -$01,x +L0BE4 leau -dpsiz,u + pshs u + leax >varnum3,y + cmpx ,s++ + bls L0BDA + clra + clrb + stb [<$02,s] + leax >varnum2,y + tfr x,d + lbra L0CD6 +L0BFE pshs u + ldu $06,s + ldd $0A,s + subd $08,s + std $0A,s + ldd >varnum4,y + bne L0C33 + bra L0C1B +L0C10 ldd >varnum5,y + pshs b,a + jsr [<$06,s] + leas $02,s +L0C1B ldd $0A,s + addd #$FFFF + std $0A,s + subd #$FFFF + bgt L0C10 + bra L0C33 +L0C29 ldb ,u+ + sex + pshs b,a + jsr [<$06,s] + leas $02,s +L0C33 ldd $08,s + addd #$FFFF + std $08,s + subd #$FFFF + bne L0C29 + ldd >varnum4,y + beq L0C5E + bra L0C52 +L0C47 ldd >varnum5,y + pshs b,a + jsr [<$06,s] + leas $02,s +L0C52 ldd $0A,s + addd #$FFFF + std $0A,s + subd #$FFFF + bgt L0C47 +L0C5E puls pc,u +L0C60 pshs u + ldu $06,s + ldd $08,s + pshs b,a + pshs u + lbsr egg4 + leas $02,s + nega + negb + sbca #$00 + addd ,s++ + std $08,s + ldd >varnum4,y + bne L0CA2 + bra L0C8A +L0C7F ldd >varnum5,y + pshs b,a + jsr [<$06,s] + leas $02,s +L0C8A ldd $08,s + addd #$FFFF + std $08,s + subd #$FFFF + bgt L0C7F + bra L0CA2 +L0C98 ldb ,u+ + sex + pshs b,a + jsr [<$06,s] + leas $02,s +L0CA2 ldb ,u + bne L0C98 + ldd >varnum4,y + beq L0CC5 + bra L0CB9 +L0CAE ldd >varnum5,y + pshs b,a + jsr [<$06,s] + leas $02,s +L0CB9 ldd $08,s + addd #$FFFF + std $08,s + subd #$FFFF + bgt L0CAE +L0CC5 puls pc,u + +L0CC7 pshs u + ldd >varnum1,y + pshs b,a + ldd $06,s + pshs b,a + lbsr egg2 +L0CD6 leas $04,s + puls pc,u +L0CDA pshs u + ldd $04,s + ldx >varnum1,y + leax $01,x + stx >varnum1,y + stb -$01,x + puls pc,u +L0CEC blt L0D21 + leas -$09,y + pshu y,x,dp + +* neg <u0034 branch to middle of instruct? +* +*L0CF2 fcb $00 +*L0CF3 fcb $34 +* +* nega + + fcb $00 what function in life do I have +egg2 pshs u disassembled as neg <u0034 then neg + ldu $06,s + ldd u0006,u + anda #$80 + andb #$22 + cmpd #$8002 + beq L0D17 + ldd u0006,u + clra + andb #$22 + cmpd #$0002 + lbne L0E2F + pshs u + lbsr L1062 + leas $02,s +L0D17 ldd u0006,u + clra + andb #$04 + beq L0D53 + ldd #$0001 +L0D21 pshs b,a + leax $07,s + pshs x + ldd u0008,u + pshs b,a + ldd u0006,u + clra + andb #$40 + beq L0D38 + leax >L13EC,pcr writeln: ?? + bra L0D3C +L0D38 leax >L13D3,pcr write: ?? +L0D3C tfr x,d + tfr d,x + jsr ,x + leas $06,s + cmpd #$FFFF + bne L0D94 + ldd u0006,u + orb #C$SPC + std u0006,u + lbra L0E2F +L0D53 ldd u0006,u + anda #$01 + clrb + std -$02,s + bne L0D63 + pshs u + lbsr L0E4C + leas $02,s +L0D63 ldd ,u + addd #$0001 + std ,u + subd #$0001 + tfr d,x + ldd $04,s + stb ,x + ldd ,u + cmpd u0004,u + bcc L0D89 + ldd u0006,u + clra + andb #$40 + beq L0D94 + ldd $04,s + cmpd #$000D + bne L0D94 +L0D89 pshs u + lbsr L0E4C + std ,s++ + lbne L0E2F +L0D94 ldd $04,s + puls pc,u + pshs u + ldu $04,s + ldd $06,s + pshs b,a + pshs u + ldd #$0008 + lbsr L1294 + pshs b,a + lbsr egg2 + leas $04,s + ldd $06,s + pshs b,a + pshs u + lbsr egg2 + lbra L0F06 +L0DBB pshs u,b,a + leau >u0012,y + clra + clrb + std ,s + bra L0DD1 +L0DC7 tfr u,d + leau u000D,u + pshs b,a + bsr L0DE4 + leas $02,s +L0DD1 ldd ,s + addd #$0001 + std ,s + subd #$0001 + cmpd #$0010 + blt L0DC7 + lbra L0E48 +L0DE4 pshs u + ldu $04,s + leas -$02,s + cmpu #$0000 + beq L0DF4 + ldd u0006,u + bne L0DFA +L0DF4 ldd #$FFFF + lbra L0E48 +L0DFA ldd u0006,u + clra + andb #$02 + beq L0E09 + pshs u + bsr L0E1E + leas $02,s + bra L0E0B +L0E09 clra + clrb +L0E0B std ,s + ldd u0008,u + pshs b,a + lbsr close: + leas $02,s + clra + clrb + std u0006,u + ldd ,s + bra L0E48 +L0E1E pshs u + ldu $04,s + beq L0E2F + ldd u0006,u + clra + andb #$22 + cmpd #$0002 + beq L0E34 +L0E2F ldd #$FFFF + puls pc,u + +L0E34 ldd u0006,u + anda #$80 + clrb + std -$02,s + bne L0E44 + pshs u + lbsr L1062 + leas $02,s +L0E44 pshs u + bsr L0E4C +L0E48 leas $02,s + puls pc,u return + +L0E4C pshs u + ldu $04,s + leas -$04,s + ldd u0006,u + anda #$01 + clrb + std -$02,s + bne L0E7E + ldd ,u + cmpd u0004,u + beq L0E7E + clra + clrb + pshs b,a + pshs u + lbsr L0F0A + leas $02,s + ldd $02,x + pshs b,a + ldd ,x + pshs b,a + ldd u0008,u + pshs b,a + lbsr lseek: + leas $08,s +L0E7E ldd ,u + subd u0002,u + std $02,s + lbeq L0EF6 + ldd u0006,u + anda #$01 + clrb + std -$02,s + lbeq L0EF6 + ldd u0006,u + clra + andb #$40 + beq L0ECD + ldd u0002,u + bra L0EC5 +L0E9E ldd $02,s + pshs b,a + ldd ,u + pshs b,a + ldd u0008,u + pshs b,a + lbsr writeln + leas $06,s + std ,s + cmpd #$FFFF + bne L0EBB + leax $04,s + bra L0EE5 +L0EBB ldd $02,s + subd ,s + std $02,s + ldd ,u + addd ,s +L0EC5 std ,u + ldd $02,s + bne L0E9E + bra L0EF6 +L0ECD ldd $02,s + pshs b,a + ldd u0002,u + pshs b,a + ldd u0008,u + pshs b,a + lbsr write: was L13D3 + leas $06,s + cmpd $02,s + beq L0EF6 + bra L0EE7 +L0EE5 leas -$04,x +L0EE7 ldd u0006,u + orb #C$SPC + std u0006,u + ldd u0004,u + std ,u + ldd #$FFFF + bra L0F06 +L0EF6 ldd u0006,u + ora #$01 + std u0006,u + ldd u0002,u + std ,u + addd u000B,u + std u0004,u + clra + clrb +L0F06 leas $04,s + puls pc,u +L0F0A pshs u + puls pc,u +L0F0E pshs u + ldu $04,s + beq L0F5A + ldd u0006,u + anda #$01 + clrb + std -$02,s + bne L0F5A + ldd ,u + cmpd u0004,u + bcc L0F36 + ldd ,u + addd #$0001 + std ,u + subd #$0001 + tfr d,x + ldb ,x + clra + lbra L1060 +L0F36 pshs u + lbsr L0FA9 + lbra L105E + pshs u + ldu $06,s + beq L0F5A + ldd u0006,u + clra + andb #$01 + beq L0F5A + ldd $04,s + cmpd #$FFFF + beq L0F5A + ldd ,u + cmpd u0002,u + bhi L0F5F +L0F5A ldd #$FFFF + puls pc,u +L0F5F ldd ,u + addd #$FFFF + std ,u + tfr d,x + ldd $04,s + stb ,x + ldd $04,s + puls pc,u + pshs u + ldu $04,s + leas -$04,s + pshs u + lbsr L0F0E + leas $02,s + std $02,s + cmpd #$FFFF + beq L0F94 + pshs u + lbsr L0F0E + leas $02,s + std ,s + cmpd #$FFFF + bne L0F99 +L0F94 ldd #$FFFF + bra L0FA5 +L0F99 ldd $02,s + pshs b,a + ldd #$0008 + lbsr L12AB + addd ,s +L0FA5 leas $04,s + puls pc,u +L0FA9 pshs u + ldu $04,s + leas -$02,s + ldd u0006,u + anda #$80 + andb #$31 + cmpd #$8001 + beq L0FCF + ldd u0006,u + clra + andb #$31 + cmpd #$0001 + lbne L1048 + pshs u + lbsr L1062 + leas $02,s +L0FCF leax >u0012,y + pshs x + cmpu ,s++ + bne L0FEC + ldd u0006,u + clra + andb #$40 + beq L0FEC + leax >$001F,y + pshs x + lbsr L0E1E + leas $02,s +L0FEC ldd u0006,u + clra + andb #$08 + beq L1018 + ldd u000B,u + pshs b,a + ldd u0002,u + pshs b,a + ldd u0008,u + pshs b,a + ldd u0006,u + clra + andb #$40 + beq L100C + leax >L13C3,pcr readln: + bra L1010 +L100C leax >L13A2,pcr compiler dosent like "read:" label +L1010 tfr x,d + tfr d,x + jsr ,x + bra L102A +L1018 ldd #$0001 + pshs b,a + leax u000A,u + stx u0002,u + pshs x + ldd u0008,u + pshs b,a + lbsr read: + +L102A leas $06,s + std ,s + ldd ,s + bgt L104D + ldd u0006,u + pshs b,a + ldd $02,s + beq L103F + ldd #$0020 + bra L1042 +L103F ldd #$0010 +L1042 ora ,s+ + orb ,s+ + std u0006,u +L1048 ldd #$FFFF + bra L105E +L104D ldd u0002,u + addd #$0001 + std ,u + ldd u0002,u + addd ,s + std u0004,u + ldb [<u0002,u] + clra +L105E leas $02,s +L1060 puls pc,u +L1062 pshs u + ldu $04,s + ldd u0006,u + clra + andb #$C0 + bne L109A + leas <-$20,s + leax ,s + pshs x + ldd u0008,u + pshs b,a + clra + clrb + pshs b,a + lbsr getstat: + leas $06,s + ldd u0006,u + pshs b,a + ldb $02,s + bne L108E + ldd #$0040 + bra L1091 +L108E ldd #$0080 +L1091 ora ,s+ + orb ,s+ + std u0006,u + leas <$20,s +L109A ldd u0006,u + ora #$80 + std u0006,u + clra + andb #$0C + beq L10A7 + puls pc,u + +L10A7 ldd u000B,u + bne L10BC + ldd u0006,u + clra + andb #$40 + beq L10B7 + ldd #$0080 + bra L10BA +L10B7 ldd #$0100 +L10BA std u000B,u +L10BC ldd u0002,u + bne L10D1 + ldd u000B,u + pshs b,a + lbsr ibrk L14BA + leas $02,s + std u0002,u + cmpd #$FFFF + beq L10D9 +L10D1 ldd u0006,u + orb #$08 + std u0006,u + bra L10E8 +L10D9 ldd u0006,u + orb #$04 + std u0006,u + leax u000A,u + stx u0002,u + ldd #$0001 + std u000B,u +L10E8 ldd u0002,u + addd u000B,u + std u0004,u + std ,u + puls pc,u + +L10F2 pshs u + ldb $05,s + sex + tfr d,x + bra L1118 +L10FB ldd [<$06,s] + addd #$0004 + std [<$06,s] + leax >L112F,pcr + bra L1114 +L110A ldb $05,s + stb >$0010,y + leax >$000F,y +L1114 tfr x,d + puls pc,u +L1118 cmpx #$0064 'd + beq L10FB + cmpx #$006F 'o + lbeq L10FB + cmpx #$0078 'x + lbeq L10FB + bra L110A + puls pc,u + +*L112F neg <u0034 branch in here ? +*L112F fcb $00 +*L1130 fcb $34 +* nega + +L112F fcb $00 used above +egg3 pshs u disassembled as neg <u0034 then neg + + leax >L113A,pcr + tfr x,d + puls pc,u +* +* L113A neg <u0034 same story here except somebody jumps +* to the front byte too +* + +L113A fcb $00 what do i do? +egg4 pshs u disassembled as neg <u0034 then neg + ldu $04,s +L113F ldb ,u+ + bne L113F + tfr u,d + subd $04,s + addd #$FFFF + puls pc,u + +L114C pshs u + ldu $06,s + leas -$02,s + ldd $06,s + std ,s +L1156 ldb ,u+ + ldx ,s + leax $01,x + stx ,s + stb -$01,x + bne L1156 + bra L118B + + pshs u + ldu $06,s + leas -$02,s + ldd $06,s + std ,s +L116E ldx ,s + leax $01,x + stx ,s + ldb -$01,x + bne L116E + ldd ,s + addd #$FFFF + std ,s + +L117F ldb ,u+ + ldx ,s + leax $01,x + stx ,s + stb -$01,x + bne L117F + +L118B ldd $06,s + leas $02,s + puls pc,u return + + pshs u + ldu $04,s + bra L11A7 +L1197 ldx $06,s + leax $01,x + stx $06,s + ldb -$01,x + bne L11A5 + clra + clrb + puls pc,u return + +L11A5 leau dpsiz,u +L11A7 ldb ,u + sex + pshs b,a + ldb [<$08,s] + sex + cmpd ,s++ + beq L1197 + ldb [<$06,s] + sex + pshs b,a + ldb ,u + sex + subd ,s++ + puls pc,u return + +L11C2 pshs u + ldu $04,s + leas -$05,s + clra + clrb + std $01,s +L11CC ldb ,u+ + stb ,s + cmpb #C$SPC + beq L11CC + ldb ,s + cmpb #$09 + lbeq L11CC + ldb ,s + cmpb #$2D '- + bne L11E7 + ldd #$0001 + bra L11E9 +L11E7 clra + clrb +L11E9 std $03,s + ldb ,s + cmpb #$2D '- + beq L120F + ldb ,s + cmpb #$2B '+ + bne L1213 + bra L120F +L11F9 ldd $01,s + pshs b,a + ldd #$000A + lbsr L1235 + pshs b,a + ldb $02,s + sex + addd ,s++ + addd #$FFD0 + std $01,s +L120F ldb ,u+ + stb ,s +L1213 ldb ,s + sex + leax >$00E3,y + leax d,x + ldb ,x + clra + andb #$08 + bne L11F9 + ldd $03,s + beq L122F + ldd $01,s + nega + negb + sbca #$00 + bra L1231 +L122F ldd $01,s +L1231 leas $05,s + puls pc,u return + +L1235 tsta + bne L124A + tst $02,s + bne L124A + lda $03,s + mul + ldx ,s + stx $02,s + ldx #$0000 + std ,s + puls pc,b,a return + +L124A pshs b,a + ldd #$0000 + pshs b,a + pshs b,a + lda $05,s + ldb $09,s + mul + std $02,s + lda $05,s + ldb $08,s + mul + addd $01,s + std $01,s + bcc L1267 + inc ,s +L1267 lda $04,s + ldb $09,s + mul + addd $01,s + std $01,s + bcc L1274 + inc ,s +L1274 lda $04,s + ldb $08,s + mul + addd ,s + std ,s + ldx $06,s + stx $08,s + ldx ,s + ldd $02,s + leas $08,s + rts + + + tstb + beq L129E + +L128B asr $02,s + ror $03,s + decb + bne L128B + bra L129E + +L1294 tstb + beq L129E + +L1297 lsr $02,s + ror $03,s + decb + bne L1297 + + +L129E ldd $02,s + pshs b,a + ldd $02,s + std $04,s + ldd ,s + leas $04,s + rts + + + +L12AB tstb + beq L129E +L12AE lsl $03,s + rol $02,s + decb + bne L12AE + bra L129E + + +************************************************* +* +* Found in stat.a c-compiler sources +* getstat code (code,path,buffer) +* +*** See +*** Section 3 - C System Calls page 3-16 +*** of the Microware C compiler user's guide +*** for interesting info on "Code" meanings +* + +* Get status - Returns the status of a file or device +* Wildcard call exit status differs based on cal code +* entry: +* a -> path number +* b -> function code +* +* exit: +* exit status differs based on cal code +* +* error: +* CC -> Carry set on error (usually) +* b -> error code +* + +getstat: lda $05,s get the path number + ldb $03,s get the code + beq getst30 code is 0 ? Buffer (SS.Opt) + cmpb #SS.Ready + beq getst40 data available scf dev + cmpb #SS.EOF + beq getst40 EOF & error check + cmpb #SS.Size + beq getst10 + cmpb #SS.Pos file position + beq getst10 + + +* can't do other codes + ldb #E$UnkSvc load error unknow service code + lbra _os9err: head for error routine + + +* Code 2 +* entry: +* a -> path number +* b -> function code 2 (SS.Size) +* +* exit: +* x -> most significant 16 bits of the current file size +* u -> least significant 16 bits of the current file size +* +* error: +* CC -> Carry set on error +* b -> error code (if any) +* +* Code 5 +* entry: +* a -> path number +* b -> function code 5 (SS.Pos) +* +* exit: +* x -> most significant 16 bits of the current file position +* u -> least significant 16 bits of the current file position +* +* error: +* CC -> Carry set on error +* b -> error code (if any) +* + +getst10 pshs u stack u since getstt modifies it + os9 I$GetStt + bcc getst20 successful ?? go store info + puls u otherwise pop our u + lbra _os9err: head for error procesing + +getst20 stx [<$08,s] store MSW + ldx $08,s get address of destination + stu $02,x store LSW + puls u restore register variable + clra clear d + clrb + rts return to caller + +* Code 0 - 32 bytes into buffer +* entry: +* a -> path number +* b -> function code 2 (SS.opt) +* x -> address to receive the status packet +* +* exit: +* none +* +* error: +* CC -> Carry set on error +* b -> error code (if any) +* + +getst30 ldx $06,s load address to receive status packet + + +* Code 6 - End of file +* entry: +* a -> path number +* b -> function code 6 (SS.eof) +* +* exit: +* If there is NO end of file +* CC -> carry clear +* b -> $00 (zeroed) +* +* If there IS an end of file +* CC -> carry set +* b -> $D3 (E$EOF) +* +* error: +* CC -> Carry set on error +* b -> error code (if any) +* + +getst40 os9 I$GetStt make the cal + lbra _sysret + +***************************************************** +* +* Found in stat.a c-compiler sources +* setstat(code,failname,buffer) +* setstat(code,failname,size) +* +*** See +*** Section 3 - C System Calls page 3-37 +*** of the Microware C compiler user's guide +*** for interesting info on "Code" meanings +* +* Set status - Returns the status of a file or device +* Wildcard call exit status differs based on cal code +* entry: +* a -> path number +* b -> function code +* +* exit: +* exit status differs based on cal code +* +* error: +* CC -> Carry set on error (usually) +* b -> error code +* +* +* setstat(code,path,buffer) or +* setstat(code,path,offset) + +setsat: + lda $05,s get the path number + ldb $03,s get the code + beq setst10 code is 0 + cmpb #SS.Size code is 2 + beq setst20 +* No other codes permitted + ldb #E$UnkSvc unknow service code + lbra _os9err: + +* Code 0 +* entry: +* a -> path number +* b -> function code 0 (SS.opt) +* x -> address to receive the status packet +* +* exit: +* none +* +* error: +* CC -> Carry set on error +* b -> error code (if any) +* + +setst10 ldx $06,s x gets the address of the status packet + os9 I$SetStt + lbra _sysret + +* Code 2 +* entry: +* a -> path number +* b -> function code 2 (SS.Size) +* +* exit: +* x -> most significant 16 bits of the desired file size +* u -> least significant 16 bits of the desired file size +* +* error: +* CC -> Carry set on error +* b -> error code (if any) +* + +setst20 pshs u stack the u since setstat modifies it + ldx $08,s get MSW + ldu $0A,s get LSW + os9 I$SetStt make the call + puls u bring back the orig u + lbra _sysret return +* +* end of getstat & setstat +* +* +***************************************************** +* +* Found in access.a c-compiler sources +* access(fname,perm) +* +*** See +*** Section 3 - C System Calls page 3-4 +*** of the Microware C compiler user's guide +*** for interesting info +* + +* Open Path - Opens a path to the an existing file or device +* as specified by the path list +* entry: +* a -> access mode (D S PE PW PR E W R) +* x -> address of the path list +* +* exit: +* a -> path number +* x -> address of the last btye of the path list + 1 +* +* error: +* CC -> Carry set on error +* b -> error code (if any) +* +* Close Path - Terminates I/O path +* (performs an impledd I$Detach call) +* entry: +* a -> path number +* +* error: +* CC -> Carry set on error +* b -> error code (if any) + + +* access test +access: + ldx $02,s get address of path list + lda $05,s get access mode (permissions) + os9 I$Open attempt to open + bcs access10 didn't open ? no need to + os9 I$Close Close it +access10 lbra _sysret return + + +* open a path +open: ldx $02,s get address of the path list + lda $05,s get access mode permisions + os9 I$Open attempt the opoen + lbcs _os9err: didn't open go to error handler + tfr a,b path is open put a in b + clra clear a + rts return + +* close a path +close: lda $03,s get path number + os9 I$Close go close it + lbra _sysret return + +* mknod (name,mode) +* Make Directory - Creates an initializes a dircectory +* +* entry: +* b -> directory attributes +* x -> address of the path list +* +* exit: +* x -> address of the last btye of the path list + 1 +* +* error: +* CC -> Carry set on error +* b -> error code (if any) + +mknod: ldx $02,s get address of the path list + ldb $05,s get access mode permission + os9 I$MakDir make the call + lbra _sysret return + + + +* create (fname,mode) +* Create File - Creates and opens a disk file +* +* entry: +* a -> access mode (write or update) +* b -> file attributes +* x -> address of the path list +* +* exit: +* a -> path number +* x -> address of the last btye of the path list + 1; +* trailing blanks are skipped. +* +* error: +* CC -> Carry set on error +* b -> error code (if any) + +creat: ldx $02,s get address of the path list + lda $05,s get access modes + tfr a,b proto attr + andb #EPEXEC. save exec bits public and owner + orb #pmode now add the default modes + os9 I$Create go make the file + bcs creat10 failed creation ? +ccret tfr a,b move path to b + clra clear a + rts return + +creat10 cmpb #E$CEF already there ? + lbne _os9err: no a different error bail out + +* is it a directory although we want a file instead? + lda $05,s get the mode + bita #$80 trying to create a directrory? + lbne _os9err: yes - bail out + +* if already there attempt to open with proper access rights + anda #$07 access mode bits + ldx $02,s get the name again + os9 I$Open try and open it + lbcs _os9err: still fails - bail out + + +* Set Stat Code 2 (SS.SIZE) +* entry: +* a -> path number +* b -> function code 2 (SS.Size) +* +* exit: +* x -> most significant 16 bits of the desired file size +* u -> least significant 16 bits of the desired file size +* +* error: +* CC -> Carry set on error +* b -> error code (if any) +* + pshs u,a we got it open Yippee + ldx #$0000 set file size + leau ,x to zero + ldb #SS.Size set function code +* path number of open file is in a from I$Iopen + os9 I$SetStt make the call + puls u,a pop u and a back + bcc ccret contine as we have created the file + + pshs b set stat fail ? save error code + os9 I$Close call close on file + puls b pop the setstat error code + lbra _os9err: head for error handler + + +* unlink(fname) +* Delete File - Deletes a specified disk file +* entry: +* x -> address of the path list +* +* exit: +* x -> address of the last btye of the path list + 1; +* trailing blanks are skipped. +* +* error: +* CC -> Carry set on error +* b -> error code (if any) +* + +unlink: ldx $02,s get address of the path list + os9 I$Delete make the call + lbra _sysret return + +* dup(fildes) +* Duplicate Path - Returns a synonymous path number +* entry: +* a -> old path number (number of path to duplicate) +* +* exit: +* a -> new path number if NO error +* +* error: +* CC -> Carry set on error +* b -> error code (if any) +* + +dup: lda $03,s get path number + os9 I$Dup make the call + lbcs _os9err: didn't dup go to error handler + tfr a,b move the new path num into b + clra clear a + rts return + +* +* end of access code +***************************************************** +* +* Found in io.a c-compiler sources +* +*** See +*** Section 3 - C System Calls +*** of the Microware C compiler user's guide +*** for interesting info +* +* Read - Reads n bytes from the specified path +* entry: +* a -> path number +* x -> address in which to stor the data +* y -> is the number of bytes to read +* +* exit: +* y -> number of bytes read +* +* error: +* CC -> Carry set on error +* b -> error code (if any) + + +read: +L13A2 pshs y stack current y + ldx $06,s get address to store at + lda $05,s get path number + ldy $08,s get number of bytes to read + pshs y stack the number of to read also + os9 I$Read make the call + + +read1 bcc rdexit no problem if carry clear + cmpb #E$EOF is it end of file ?? + bne read10 nope then head for error handler + clra was the end of the file + clrb then clear a & b + puls pc,y,x pop the stacked values (cheap rts) + +read10 puls y,x + lbra _os9err: +rdexit tfr y,d + puls pc,y,x + + + + +* Read Line with Editing - Reads text line with editting +* entry: +* a -> path number +* x -> address in which to stor the data +* y -> is the max number of bytes to read +* +* exit: +* y -> number of bytes read +* +* error: +* CC -> Carry set on error +* b -> error code (if any) + +readln: +L13C3 pshs y save data pointer + lda $05,s get the path number + ldx $06,s get the buffer address + ldy $08,s get the number to read + pshs y save request for later + os9 I$ReadLn read it + bra read1 always go back test for eof + +write: +L13D3 pshs y save data pointer + ldy $08,s get count + beq write10 + lda $05,s get file number + ldx $06,s get buffer address + os9 I$Write write it + +write1 bcc write10 good write head out + puls y error in writing ? get data pointer + lbra _os9err: head for error handler + +write10 tfr y,d good write + puls pc,y return + +writeln: +L13EC pshs y save data pointer + ldy $08,s get the count + beq write10 count zero ?? go to return + lda $05,s something to write get path number + ldx $06,s get buffer address + os9 I$WritLn write it + bra write1 goto return + +* lseek(fd, offset, type) +lseek: pshs u save the register variable + ldd 10,s get type +* ldd $0A,s get type + bne lseek10 + ldu #$0000 + ldx #$0000 + bra doseek + +lseek10 cmpd #$0001 from here? + beq here + cmpd #$0002 from the end? + beq frmend +* otherwise it was passed a bad type +* ldb #$F7 + ldb #E$SEEK + +lserr clra seek error routine + std >errno,y was $01b1 + ldd #-1 $FFFF + leax >_flacc,y $01a5 + std ,x + std $02,x + puls pc,u return + +* from the end +frmend lda $05,s get the path number + ldb #SS.size $02 file size code + os9 I$GetStt get the file size + bcs lserr if error go to error code + + bra doseek if not seek to position + +here lda $05,s get path number + ldb #SS.pos $05 file position + os9 I$GetStt get the postion + bcs lserr if error go to error code + +doseek tfr u,d work on the LSW first + addd $08,s + std _flacc+2,y + tfr d,u + tfr x,d + adcb $07,s + adca $06,s + bmi lserr seek is before the beginning of the file + tfr d,x + std _flacc,y + + lda $05,s get the path number + os9 I$Seek + bcs lserr if error go to error code + + leax _flacc,y + puls pc,u return + +sbrk: ldd memend,y get hi bound +* ldd >$01a3,y disassembly +* pshs b,a disassembly + pshs d save it + ldd $04,s get required size + cmpd spare,y any spare left +* bcs L1497 disassembly + blo sbrk20 + +* have to get some from the system + addd memend,y add current size + pshs y save data pointer + subd ,s adjust for base + os9 F$Mem re-size memory + tfr y,d save the high bound + puls y restore the data paointer + bcc sbrk10 branch if NO error + ldd #-1 return error code + leas $02,s junk scratch + rts + +sbrk10 std memend,y save new memory address + addd spare,y add in spare bytes ($01CD) + subd ,s less old base + std spare,y is new spare value ($01CD) + +* now spare is big enough +sbrk20 leas $02,s junk scratch L1497 + ldd spare,y get spare count + pshs d +* pshs b,a + subd $04,s less size + std spare,y update value + ldd memend,y get hi bound + subd ,s++ base of free memeory + pshs d save it +* pshs b,a + + clra + ldx ,s +sbrk30 sta ,x+ clear new memory + cmpx memend,y + bcs sbrk30 +* puls pc,b,a + puls pc,d return + +* get memory within data allocation +ibrk: ldd $02,s get the size + addd _mtop,y add in the current top + bcs ibrk20 if it wraps round - error + cmpd _stbot,y overlap stack + bcc ibrk20 yes error +* pshs b,a + pshs d no save top + ldx _mtop,y reset to the bottom + + clra +sbloop cmpx ,s reached the end + bcc ibrk10 yes - done + sta ,x+ nope clear and bump + bra sbloop + +ibrk10 ldd _mtop,y return value + puls x restore new top + stx _mtop,y save for next time + rts + + +ibrk20 ldd #-1 return memory full + rts + +***************************** +* stat.a code +* + +_os9err: clra + std >errno,y indicate in system error indicator + ldd #-1 error condition + +* std >$01B1,y +* ldd #$FFFF + rts + + +_sysret: bcs _os9err + clra clear "d" + clrb to return 0 + rts + + +* normal exit - buffers flushed if there are any +exit lbsr L1500 + + lbsr L0DBB What do I do ??? + + + +* abnormal exit - no buffer flushing +* the argument to either exit entry is taken to be the +* F$EXIT status + +_exit ldd $02,s get the exit status + os9 F$Exit toodle-loo + +L1500 rts + +******************************************************************** +* end of executable text + +etext equ * +L1501 fcb $00,$01,$00,$01,$62,$74,$4F ....btO L1508 fcb $43,$00,$27,$10,$03,$E8,$00,$64 C.'..h.d L1510 fcb $00,$0A,$00,$0D,$6C,$78,$00,$00 ....lx.. L1518 fcb $00,$00,$00,$00,$00,$00,$01,$00 ........ @@ -717,4 +3240,7 @@ L1658 fcb $04,$04,$04,$04,$04,$04,$04,$04 ........ L1660 fcb $04,$04,$04,$20,$20,$20,$20,$01 ... . L1668 fcb $00,$00,$00,$01,$00,$0D,$74,$6F ......to -L1670 fcb $63,$67,$65,$6E,$00,$FD,$79,$21 cgen..y! +L1670 fcb $63,$67,$65,$6E,$00 cgen. + emod +eom equ * + end