====== 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:]]