====== OS9GEN ======
Header for : OS9gen
Module size: $393 #915
Module CRC : $0B0F06 (Good)
Hdr parity : $B8
Exec. off : $0138 #312
Data size : $0519 #1305
Edition : $04 #4
Ty/La At/Rv: $11 $81
Prog mod, 6809 Obj, re-ent, R/O
===== CODE =====
* Disassembly by Os9disasm of os9gen
mod L0393,L000d,$11,$81,L0138,D0519
* OS-9 system function equates
F$Fork equ $03
F$Wait equ $04
F$Exit equ $06
F$PrsNam equ $10
I$Create equ $83
I$Open equ $84
I$Delete equ $87
I$Seek equ $88
I$Read equ $89
I$Write equ $8a
I$ReadLn equ $8b
I$WritLn equ $8c
I$GetStt equ $8d
I$SetStt equ $8e
I$Close equ $8f
* class D external label equates
Dfffa equ $fffa
* OS9 data area definitions
D0000 rmb 2
D0002 rmb 1
D0003 rmb 1
D0004 rmb 1
D0005 rmb 1
D0006 rmb 1
D0007 rmb 1
D0008 rmb 1
D0009 rmb 1
D000a rmb 1
D000b rmb 2
D000d rmb 1
D000e rmb 18
D0020 rmb 15
D002f rmb 38
D0055 rmb 1220
D0519 equ .
L000d clra
comb
rts
asr 5,s
ldu 4,x
L0014 dec D0055
com $6520
bvc L005e
fcb $41
fcb $55
lsrb
rola
clra
fcb $4e
bvs L005d
bra L0074
comb
rts
asra
fcb $45
fcb $4e
bra L0068
ble L0092
fcb $65
ror $6e61
tst 5,s
fcb $3e
dec D0020
bgt L0067
fcb $72
fcb $65
fcb $61
lsr -13,s
bra L0068
com 29796
bra L00ae
jmp -16,s
fcb $75
lsr $2920
neg $6174
asl 14,s
fcb $61
tst 5,s
com $2075
jmp -12,s
rol 12,s
bra L00a1
clra
L005d rora
L005e bge L006a
bra L0082
bra L00d1
fcb $65
fcb $72
asr 9,s
L0067 equ *-1
L0068 jmp 7,s
L006a bra L00dc
fcb $61
lsr $6873
bra L00db
jmp -12,s
L0074 fcb $6f
bra L00c5
fcb $65
asr $204f
comb
rts
fcb $42
clr 15,s
lsr $2066
L0082 equ *-1
rol 12,s
fcb $65
bgt L0095
coma
fcb $61
jmp D0007,y
lsr $2066
rol 14,s
lsr Dfffa,y
L0092 equ *-1
bra L009f
L0094 equ *-1
L0095 fcb $45
fcb $72
fcb $72
clr -14,s
bra L0113
fcb $72
rol -12,s
L009f rol 14,s
L00a1 fcb $67
bra L010f
fcb $65
fcb $72
jmp 5,s
fcb $6c
bra L011f
fcb $72
fcb $61
com 11,s
L00ae equ *-1
tst D000a
L00b0 equ *-1
asrb
fcb $61
fcb $72
jmp 9,s
jmp 7,s
bra L00e7
bra L0122
rol 12,s
fcb $65
bvc L0134
bvs L00e3
clr -14,s
L00c5 bra L0132
fcb $65
fcb $72
jmp 5,s
inc 10,x
neg 29285
com $656e
L00d1 equ *-2
lsr $206f
fcb $6e
bra L014d
fcb $72
fcb $61
L00db com 11,s
L00dc equ *-1
bra L0112
pshs y
blt L0103
L00e3 lsr $6869
com $0a74
L00e7 equ *-2
fcb $72
fcb $61
com 11,s
bra L015d
clr -12,s
bra L0165
fcb $65
asr 29289
lsr 29797
jmp D000e,y
tst D000a
L00fd equ *-1
fcb $45
fcb $72
fcb $72
clr -14,s
L0103 bra L0132
bra L0156
comb
rts
fcb $62
clr 15,s
lsr $2066
L010f rol 12,s
fcb $65
L0112 bra L017a
L0113 equ *-1
fcb $72
fcb $61
asr 13,s
fcb $65
jmp -12,s
fcb $65
lsr 13,x
L011e fcb $52
L011f fcb $45
fcb $4e
fcb $41
L0122 tsta
fcb $45
bra L017a
L0125 equ *-1
fcb $65
tst -16,s
fcb $42
clr 15,s
lsr $20ff
L012f clra
comb
rts
L0132 fcb $42
clr 15,s
L0134 equ *-1
lsr $0dff
L0138 clrb
stb D0005
stu D0000
lda #$2f
cmpa ,x
lbne L035f
os9 F$PrsNam
lblo L035f
lda #$2f
L014d equ *-1
cmpa ,y
lbeq L035f
leay 49,u
L0156 equ *-1
L0157 sta ,y+
lda ,x+
decb
bpl L0157
L015d equ *-1
sty D002f
lda #$40
ldb #$20
L0165 std ,y++
leax 49,u
lda #3
os9 I$Open
sta D0003
lblo L035f
ldx D002f
leay >L0125,pcr
L017a equ *-1
lda #$2f
L017d sta ,x+
lda ,y+
bpl L017d
leay >L012f,pcr
L0187 lda ,y+
sta ,x+
bpl L0187
tfr x,d
leax 49,u
pshs x
subd ,s++
std D000d
lda #2
ldb #3
os9 I$Create
sta D0002
lblo L0370
ldx #0
stx D0006
ldu #12288
ldb #2
os9 I$SetStt
lblo L0370
ldu D0000
L01b8 clra
leax 81,u
ldy #$0400
os9 I$ReadLn
bcs L0210
lda ,x
ldb #$d3
cmpa #$0d
beq L0210
lda #1
os9 I$Open
bcs L01ff
sta D0004
L01d6 lda D0004
leax 81,u
ldy #$0400
os9 I$Read
bcs L01f4
tfr y,d
addd D0006
std D0006
lda D0002
os9 I$Write
bcc L01d6
lbra L0370
L01f4 cmpb #$d3
lbne L0370
os9 I$Close
bra L01b8
L01ff pshs b
leax 81,u
ldy #$0100
lda #2
os9 I$WritLn
L020d lbra L0370
L0210 cmpb #$d3
bne L020d
leax 15,u
ldb #0
lda D0002
os9 I$GetStt
lblo L0370
lda D0002
ldx #0
ldu D0006
ldb #2
os9 I$SetStt
lblo L0370
ldu D0000
os9 I$Close
lblo L035f
ldx 35,u
lda 37,u
clrb
tfr d,u
lda D0003
os9 I$Seek
ldu D0000
lblo L0370
leax 81,u
ldy #$0100
os9 I$Read
lblo L0370
ldd 105,u
lbne L0373
lda D0003
ldx #0
ldu #21
os9 I$Seek
ldu D0000
lblo L0370
leax 8,u
ldy #5
os9 I$Read
lblo L0370
ldd D000b
beq L02a7
ldx D002f
leay L012f,pcr
lda #$2f
L028d sta ,x+
lda ,y+
bpl L028d
leax 49,u
os9 I$Delete
ldx D002f
leay L0125,pcr
lda #$2f
L02a1 sta ,x+
lda ,y+
bpl L02a1
L02a7 lda #1
clrb
leax L011e,pcr
ldy D000d
leau 49,u
os9 F$Fork
lblo L0370
os9 F$Wait
lblo L0370
tstb
lbne L0370
ldu D0000
ldb 97,u
stb D0008
ldd 98,u
std D0009
ldd D0006
std D000b
ldx #0
ldu #21
lda D0003
os9 I$Seek
ldu D0000
lblo L0370
leax 8,u
ldy #5
os9 I$Write
lblo L0370
lbsr L037a
leax 81,u
ldy #$0100
os9 I$Read
lblo L0363
leax 81,u
lda 76,x
bita #$0f
bne L0389
ora #$0f
sta 76,x
tst 77,x
bne L0389
com 77,x
lda 78,x
bita #$e0
bne L0389
ora #$e0
sta 78,x
bsr L037a
leax 81,u
ldy #$0064
os9 I$Write
bcs L0363
pshs u
ldx #2
ldu #25600
os9 I$Seek
puls u
ldx #-4096
ldy #$0f00
os9 I$Write
bcs L0358
os9 I$Close
bcs L035f
clrb
bra L0370
L0358 leax L0094,pcr
clrb
bra L0363
L035f leax L0014,pcr
L0363 pshs b
lda #2
ldy #$0100
os9 I$WritLn
puls b
L0370 os9 F$Exit
L0373 leax L00fd,pcr
clrb
bra L0363
L037a pshs u
lda D0003
ldx #0
ldu #256
os9 I$Seek
puls u,pc
L0389 leax L00b0,pcr
clrb
bra L0363
emod
L0393 equ *
end
===== RTS =====
Return to [[:OS-9:]] or [[:Top:]]