* Disassembly by Os9disasm of shell
mod L04fa,L000d,$11,$81,L003d,D02b5
* OS-9 system function equates
F$Link equ $00
F$Load equ $01
F$UnLink equ $02
F$Fork equ $03
F$Wait equ $04
F$Chain equ $05
F$Exit equ $06
F$Send equ $08
F$Icpt equ $09
F$Sleep equ $0a
F$SPrior equ $0d
F$PErr equ $0f
F$PrsNam equ $10
I$Dup equ $82
I$Create equ $83
I$Open equ $84
I$ChgDir equ $86
I$Read equ $89
I$ReadLn equ $8b
I$WritLn equ $8c
I$Close equ $8f
* class D external label equates
Dffff equ $ffff
* OS9 data area definitions
D0000 rmb 1
D0001 rmb 1
D0002 rmb 1
D0003 rmb 1
D0004 rmb 1
D0005 rmb 1
D0006 rmb 2
D0008 rmb 2
D000a rmb 2
D000c rmb 1
D000d rmb 1
D000e rmb 1
D000f rmb 1
D0010 rmb 1
D0011 rmb 1
D0012 rmb 15
D0021 rmb 5
D0026 rmb 2
D0028 rmb 5
D002d rmb 7
D0034 rmb 15
D0043 rmb 8
D004b rmb 19
D005e rmb 47
D008d rmb 46
D00bb rmb 506
D02b5 equ .
L000d comb
asl 5,s
inc <L0027,pcr
L0013 sync
negb
fcb $61
com $6361
inc [,--u]
bcs L006f
fcb $75
jmp ,--u
bhi L0074
fcb $75
jmp ,-u
neg D0000
L0027 neg D0000
neg D0000
neg D0000
neg D000a
L002e equ *-1
comb
asl 5,s
inc 12,s
tst D000a
L0035 equ *-1
L0036 clra
comb
rts
abx
L003a stb D000e
rti
L003d leas -5,s
pshs d,x,y
ldb #$24
lbsr L00c9
leax <L003a,pcr
os9 F$Icpt
puls d,x
std D0006
beq L005b
lbsr L0131
bcs L00bc
tst D000c
bne L00bb
L005b lds ,s++
leax <L002e,pcr
tst D000f
bne L0074
bsr L00bf
L0067 leax <L0035,pcr
ldy #5
L006e tst D000f
L006f equ *-1
bne L0074
bsr L00c3
L0074 clra
leax 37,u
ldy #$00c8
os9 I$ReadLn
bcc L008e
cmpb #$d3
beq L00b2
L0085 tst D0011
bne L00bc
os9 F$PErr
bra L0067
L008e cmpy #1
bhi L009e
leax >L0036,pcr
ldy #4
bra L006e
L009e tst D0010
beq L00a4
bsr L00bf
L00a4 lbsr L0131
bcc L0067
tstb
bne L0085
bra L0067
L00ae fcb $65
clr 6,s
tst D000d
L00b2 equ *-1
clr D0026
fcb $05
leax <L00ae,pcr
bsr L00bf
L00bb clrb
L00bc os9 F$Exit
L00bf ldy #$0050
L00c3 lda #2
os9 I$WritLn
rts
L00c9 clr b,u
L00cb decb
bpl L00c9
rts
L00cf fcb $01
sta $aa02
adca #$d7
fcb $01
subd D0043
asla
andb #1
ora #$43
asla
eorb D0001
clrb
fcb $45
eorb D0003
adcb D004b
rola
inca
ldd #$0195
eorb D0001
lda D002d
eorb D0001
jmp -12287
jmp $2dd0
fcb $01
clr -11263
suba #$2d
andb D0003
orb -13,u
fcb $45
lsrb
negb
sbcb D0001
lsr D00bb
neg D0000
L010a com D005e
cmpa 2,x
beq L00cb
fcb $02
mul
lda 2,x
orcc #$8d
L0116 fcb $01
eora 16062
fcb $01
stx [<L011f,pcr]
eora -16895
L011f equ *-2
stu ,--y
neg D0000
L0125 tst D0028
bvs L0128
L0128 equ *-1
L0129 tst D0021
bls L0153
rti
cwai #$3e
stu $c60e
L0131 equ *-2
bsr L00c9
L0135 clr D0003
clr D000e
leay <L00cf,pcr
lbsr L01c3
bcs L0192
cmpa #$0d
beq L0192
sta D000c
cmpa #$28
bne L016f
leay L000d,pcr
sty D0004
leax 1,x
L0153 equ *-1
stx D0008
L0156 inc D000d
L0158 leay <L0125,pcr
bsr L01db
cmpa #$28
beq L0156
cmpa #$29
bne L018a
dec D000d
bne L0158
lda #$0d
sta -1,x
bra L0173
L016f bsr L0195
bcs L0192
L0173 leay <L0129,pcr
bsr L01db
tfr x,d
subd D0008
std D0006
leax -1,x
leay <L010a,pcr
bsr L01c3
bcs L0192
ldy D0004
L018a lbne L02be
cmpa #$0d
bne L0135
L0192 lbra L028f
L0195 stx D0004
bsr L01a8
bcs L01a7
L019b bsr L01a8
bcc L019b
leay L0116,pcr
bsr L01c3
stx D0008
L01a7 rts
L01a8 os9 F$PrsNam
bcc L01b9
lda ,x+
cmpa #$2e
bne L01bd
cmpa ,x+
beq L01bb
leay -1,x
L01b9 leax ,y
L01bb clra
rts
L01bd comb
leax -1,x
ldb #$d7
rts
L01c3 bsr L01e9
pshs y
bsr L020c
bcs L01d4
ldd ,y
jsr d,y
puls y
bcc L01c3
rts
L01d4 clra
lda ,x
puls y,pc
L01d9 puls y
L01db pshs y
lda ,x+
L01df tst ,y
bmi L01d9
cmpa ,y+
bne L01df
puls y,pc
L01e9 pshs x
lda ,x+
cmpa #$20
beq L01ff
cmpa #$2c
beq L01ff
leax L0129,pcr
L01f9 cmpa ,x+
bhi L01f9
puls x,pc
L01ff leas 2,s
lda #$20
L0203 cmpa ,x+
beq L0203
leax -1,x
andcc #254
rts
L020c pshs x,y
leay D0002,y
L0210 ldx ,s
L0212 lda ,x+
cmpa #$61
bcs L021a
suba #$20
L021a eora ,y+
asla
bne L022e
bcc L0212
lda Dffff,y
cmpa #$c1
bcs L022b
bsr L01e9
bcs L022e
L022b clra
puls d,y,pc
L022e leay Dffff,y
L0230 lda ,y+
bpl L0230
sty 2,s
ldd ,y++
bne L0210
comb
puls x,y,pc
lbsr L0195
clra
bsr L0260
bsr L025f
bsr L025f
bsr L0286
leax 1,x
tfr x,d
subd D0008
std D0006
leas 255,u
lbsr L0394
os9 F$Chain
os9 F$Exit
L025f inca
L0260 pshs a
bra L02ab
lda #$84
bra L026a
lda #$83
L026a os9 I$ChgDir
rts
clra
bra L0273
lda #1
L0273 sta D000f
rts
lda #1
bra L027b
clra
L027b sta D0010
rts
lda #1
bra L0283
clra
L0283 sta D0011
rts
L0286 lda #$0d
L0288 cmpa ,x+
bne L0288
cmpa ,-x
rts
L028f pshs cc,d
clra
L0292 bsr L029d
inca
cmpa #2
bls L0292
ror ,s+
puls d,pc
L029d pshs a
tst a,u
beq L02b6
os9 I$Close
lda a,u
os9 I$Dup
L02ab ldb ,s
lda b,u
beq L02b6
clr b,u
os9 I$Close
L02b6 puls a,pc
L02b8 asrb
asla
fcb $41
lsrb
swi
tst D008d
L02be equ *-1
fcb $cf
leax <L02b8,pcr
lbsr L00bf
clrb
coma
rts
L02c9 ldd #1
bra L02e3
ldd #$020d
stb -2,x
bra L02d7
lda #1
L02d7 ldb #2
bra L02e3
L02db tst a,u
bne L02be
pshs d
bra L02ed
L02e3 tst a,u
bne L02be
pshs d
ldb #$0d
stb -1,x
L02ed os9 I$Dup
bcs L030d
ldb ,s
sta b,u
lda ,s
os9 I$Close
lda 1,s
bita #2
bne L0306
os9 I$Open
bra L030b
L0306 ldb #$0b
os9 I$Create
L030b stb 1,s
L030d puls d,pc
ldb #$0d
stb -1,x
ldb D0003
bne L02be
lbsr L04ca
eora #$4b
anda #$df
bne L0328
leax 1,x
lda #4
mul
tsta
bne L02be
L0328 stb D0003
lbra L01e9
leax -1,x
lbsr L03c7
bra L0337
lbsr L03c3
L0337 bcs L034a
lbsr L028f
bsr L035c
L033e bcs L034a
lbsr L01e9
cmpa #$0d
bne L0349
leas 4,s
L0349 clrb
L034a lbra L028f
lbsr L03c3
bcs L034a
bsr L034a
ldb #$26
lbsr L0495
bra L033e
clra
L035c pshs a
L035e os9 F$Wait
tst D000e
beq L0376
ldb D000e
cmpb #2
bne L038e
lda ,s
beq L038e
os9 F$Send
clr ,s
bra L035e
L0376 bcs L0392
cmpa ,s
beq L038e
tst ,s
beq L0383
tstb
beq L035e
L0383 pshs b
bsr L034a
ldb #$2d
lbsr L0495
puls b
L038e tstb
beq L0392
coma
L0392 puls a,pc
L0394 lda #$11
ldb D0003
ldx D0004
ldy D0006
ldu D0008
rts
L03a0 lda #4
os9 I$Open
bcs L03fe
leax 19,u
ldy #$000d
os9 I$Read
pshs cc,b
os9 I$Close
puls cc,b
lblo L045f
lda 6,x
ldy 11,x
bra L03d7
L03c3 lda #$0d
sta -1,x
L03c7 pshs x,y,u
clra
ldx D0004
os9 F$Link
bcs L03a0
ldy 11,u
os9 F$UnLink
L03d7 cmpa #$11
beq L0425
sty D000a
leax L0013,pcr
L03e2 tst ,x
beq L045d
cmpa ,x+
beq L03f0
L03ea tst ,x+
bpl L03ea
bra L03e2
L03f0 ldd D0008
subd D0004
addd D0006
std D0006
ldd D0004
std D0008
bra L0423
L03fe ldx D0006
leax 5,x
stx D0006
ldx D0004
ldu 4,s
lbsr L02c9
bcs L045f
ldu D0008
ldd #22560
std ,--u
ldd #20512
std ,--u
ldb #$2d
stb ,-u
stu D0008
leax L000d,pcr
L0423 stx D0004
L0425 ldx D0004
lda #$11
os9 F$Link
bcc L0433
os9 F$Load
bcs L045f
L0433 pshs u
tst D0003
bne L0442
ldd 11,u
addd D000a
addd #$00ff
sta D0003
L0442 lbsr L0394
os9 F$Fork
puls u
pshs cc,b
bcs L0454
ldx #1
os9 F$Sleep
L0454 clr D0004
clr D0005
os9 F$UnLink
puls cc,b,x,y,u,pc
L045d ldb #$ea
L045f coma
puls x,y,u,pc
L0462 ble L04d4
rol -16,s
fcb $65
tst D0034
fcb $10
leax <L0462,pcr
ldd #$0103
lbsr L02db
puls x
bcs L04c9
lbsr L03c3
bcs L04c9
lda ,u
bne L0487
os9 I$Dup
bcs L04c9
sta ,u
L0487 clra
os9 I$Close
lda #1
os9 I$Dup
lda #1
lbra L029d
L0495 pshs d,x,y
pshs b,x,y
leax 1,s
ldb #$2f
L049d incb
suba #$64
bcc L049d
stb ,x+
ldb #$3a
L04a6 decb
adda #$0a
bcc L04a6
stb ,x+
adda #$30
ldb #$0d
std ,x
leax ,s
lbsr L00bf
leas 5,s
puls d,x,y,pc
bsr L04ca
cmpb #2
bcs L04e5
tfr b,a
ldb #0
os9 F$Send
L04c9 rts
L04ca clrb
L04cb lda ,x+
suba #$30
cmpa #9
bhi L04dc
pshs a
L04d4 equ *-1
lda #$0a
mul
addb ,s+
bcc L04cb
L04dc lda ,-x
bcs L04e3
tstb
bne L04c9
L04e3 leas 2,s
L04e5 lbra L02be
bsr L04ca
stb D0012
lbsr L01e9
bsr L04ca
lda D0012
os9 F$SPrior
rts
emod
L04fa equ *
end