====== ATTR ======
Header for : Attr
Module size: $285 #645
Module CRC : $E280B3 (Good)
Hdr parity : $AF
Exec. off : $00BB #187
Data size : $0244 #580
Edition : $08 #8
Ty/La At/Rv: $11 $81
Prog mod, 6809 Obj, re-ent, R/O
===== CODE =====
* Disassembly by Os9disasm of attr
mod L0285,L000d,$11,$81,L00bb,D0244
* OS-9 system function equates
F$Exit equ $06
F$ID equ $0c
I$Open equ $84
I$Seek equ $88
I$Read equ $89
I$Write equ $8a
I$WritLn equ $8c
I$GetStt equ $8d
I$Close equ $8f
* class D external label equates
Dffff equ $ffff
* OS9 data area definitions
D0000 rmb 1
D0001 rmb 1
D0002 rmb 2
D0004 rmb 2
D0006 rmb 1
D0007 rmb 3
D000a rmb 75
D0055 rmb 81
D00a6 rmb 414
D0244 equ .
L000d fcb $41
lsr 29938
asl D000a
L0012 equ *-1
fcb $55
com $653a
bra L005a
lsr 29810
bra L005a
neg $6174
asl 14,s
fcb $61
tst 5,s
fcb $3e
bra L00a4
fcb $5b
blt L0089
cwai #$6f
neg 29811
fcb $3e
tst $0a20
clr -16,s
lsr 29498
bra L0069
fcb $64
bra L00b2
bra L00b3
bra L00ba
bra L00aa
bra L00b7
fcb $72
bra L00ba
asr $2070
fcb $65
bra L007d
fcb $61
tst D000a
L0052 equ *-1
rolb
clr -11,s
bra L00bc
fcb $6f
bra L00c9
L005a equ *-1
clr -12,s
bra L00ce
asr $6e20
lsr $6861
lsr $2066
rol 12,s
L0069 equ *-1
fcb $65
bgt L007a
L006d dec D0055
com $6520
tsta
fcb $61
fcb $6b
lsr 9,s
fcb $72
bra L00ee
L007a fcb $6f
bra L00e0
L007d fcb $72
fcb $65
fcb $61
lsr $6520
fcb $61
bra L00ea
rol -14,s
fcb $65
L0089 com -12,s
clr -14,s
rol $0d0a
L008f equ *-1
fcb $45
fcb $52
fcb $52
clra
fcb $52
rti
bra L010c
asl 5,s
bra L0100
rol -14,s
fcb $65
com -12,s
clr -14,s
rol $2069
L00a4 equ *-2
com $206e
clr -12,s
L00aa equ *-1
bra L0112
tst -16,s
lsr 30989
L00b2 lsr -13,s
L00b3 equ *-1
fcb $65
asr 29285
L00b7 equ *-1
asr 29439
L00ba equ *-1
L00bb stx D0002
L00bc equ *-1
clr D0007
com D0007
clra
os9 I$Open
bcc L00d9
ldx D0002
L00c9 lda #$81
os9 I$Open
L00ce bcc L00d9
ldx D0002
lda #$80
os9 I$Open
bcs L0114
L00d9 sta D0000
stx D0004
leax 8,u
ldb #0
L00e0 equ *-1
os9 I$GetStt
bcs L0114
clrb
lda ,x
cmpa #1
L00ea equ *-1
lbne L01ac
L00ee equ *-1
ldx D0002
leay 72,u
lda ,x+
cmpa #$2f
bne L0106
L00fa sta ,y+
lda ,x+
cmpa #$2e
L0100 bcs L0106
cmpa #$2f
bne L00fa
L0106 lda #$40
ldb #$20
std ,y++
L010c leax 72,u
lda #3
os9 I$Open
L0112 equ *-2
L0114 lblo L01ac
sta D0001
lda D0000
clr 31,u
pshs u
ldx 28,u
ldu 30,u
lda D0001
os9 I$Seek
puls u
bcs L01ac
leax 104,u
ldy #$0010
os9 I$Read
bcs L01ac
os9 F$ID
cmpy #0
beq L014b
cmpy 105,u
bne L01c1
L014b ldx D0004
lbsr L021d
bcs L018b
L0152 lbsr L021d
bcc L0152
clrb
lda ,x
cmpa #$0d
bne L01ac
pshs u
ldx 28,u
ldu 30,u
lda D0001
os9 I$Seek
puls u
bcs L01ac
leax 104,u
ldy #1
os9 I$Write
bcs L01ac
os9 I$Close
bcs L01ac
lda D0000
os9 I$Close
bcs L01ac
ldb D0007
beq L01be
L018b ldb 104,u
leax L00b2,pcr
leay 120,u
lda ,x+
L0197 lslb
bcs L019c
lda #$2d
L019c sta ,y+
lda ,x+
bpl L0197
lda #$0d
sta ,y+
leax 120,u
clrb
bra L01b0
L01ac leax L0012,pcr
L01b0 pshs b
lda #2
ldy #$0100
os9 I$WritLn
comb
puls b
L01be os9 F$Exit
L01c1 clrb
leax L0052,pcr
bra L01b0
L01c8 leax L006d,pcr
clrb
bra L01b0
L01cf pshs x,y,u
lda D0000
ldx #0
ldu #64
os9 I$Seek
ldu 4,s
bcs L01be
L01e0 leax 40,u
ldy #$0020
os9 I$Read
bcs L01f7
tst ,x
beq L01e0
leax L008f,pcr
clrb
bra L01b0
L01f7 puls x,y,u
cmpb #$d3
bne L01ac
rts
L01fe stu $41ff
suba #$44
stu $4053
stu $0152
stu $0257
stu $0445
stu $0850
fcb $52
stu 4176
asrb
stu $2050
fcb $45
stu >$000f
L021d equ *-1
ror D00a6
L021f equ *-1
suba #$81
bra L024b
orb $812c
beq L021f
cmpa #$2d
bne L0231
com D0006
lda ,x+
L0231 leax -1,x
leay >L01fe,pcr
L0237 ldb ,y+
pshs x,y
beq L027f
L023d lda ,x+
eora ,y+
anda #$df
beq L023d
lda Dffff,y
bmi L0251
puls x,y
L024b lda ,y+
bpl L024b
bra L0237
L0251 lda ,-x
cmpa #$30
bcc L027f
cmpb #255
beq L0278
bitb #$80
beq L0268
tst D0006
lbeq L01c8
lbsr L01cf
L0268 puls d,y
lda 104,u
eora D0006
ora Dffff,y
eora D0006
sta 104,u
clrb
rts
L0278 eorb D0006
stb D0007
clrb
puls d,y,pc
L027f coma
puls x,y,pc
emod
L0285 equ *
end
===== RTS =====
Return to [[:OS-9:]] or [[:Top:]]