====== DIR ====== Header for : Dir Module size: $298 #664 Module CRC : $B1658D (Good) Hdr parity : $B2 Exec. off : $0078 #120 Data size : $0174 #372 Edition : $03 #3 Ty/La At/Rv: $11 $81 Prog mod, 6809 Obj, re-ent, R/O ===== CODE ===== * Disassembly by Os9disasm of dir mod L0298,L000d,$11,$81,L0078,D0174 * OS-9 system function equates F$Exit equ $06 F$Time equ $15 I$Open equ $84 I$Seek equ $88 I$Read equ $89 I$WritLn equ $8c I$GetStt equ $8d * 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 2 D000a rmb 5 D000f rmb 17 D0020 rmb 12 D002c rmb 1 D002d rmb 1 D002e rmb 3 D0031 rmb 12 D003d rmb 6 D0043 rmb 10 D004d rmb 2 D004f rmb 1 D0050 rmb 8 D0058 rmb 2 D005a rmb 282 D0174 equ . L000d lsra rol [,-s] com D000a L0011 equ *-1 bra L0058 rol -14,s fcb $65 com -12,s clr -14,s rol $206f ror ,y+ L0020 bgt L002f L0022 dec D0043 fcb $52 fcb $45 fcb $41 lsrb fcb $45 lsra bra L007b fcb $4e bra L004f L002f bra L0080 asrb fcb $4e fcb $45 fcb $52 bra L0057 bra L0087 fcb $41 tsta fcb $45 dec D0020 bra L0081 lsrb lsrb fcb $52 bra L0065 bra L0067 bra L009c lsrb fcb $41 fcb $52 lsrb bra L006f L004f bra L0071 bra L0073 comb rola decb fcb $45 L0057 dec D003d L0058 equ *-1 mul mul mul mul mul mul mul mul mul mul mul mul L0065 mul mul L0067 mul mul mul mul mul mul mul mul L006f mul mul L0071 mul mul L0073 mul mul mul mul tst D0031 L0078 equ *-1 eorb #$5c L007b sty D0007 clr D0004 L0080 clr D0003 L0081 equ *-1 lbsr L026a lda ,-x L0087 cmpa #$0d bne L008f leax >L0020,pcr L008f stx D0000 lda #$81 ora D0004 os9 I$Open lblo L0193 L009c sta D0002 pshs x leay L0011,pcr lbsr L0207 ldx D0000 L00a9 lda ,x+ lbsr L01e1 cmpx ,s bcs L00a9 leas 2,s lbsr L026a lbsr L01df lbsr L01df leax 9,u os9 F$Time leax 12,u lbsr L023d lbsr L0212 tst D0003 beq L0111 lda D0002 ldb #0 leax 47,u os9 I$GetStt lblo L0193 ldx D004d ldx 4,x ldd 4,x leay d,x lda #$2f lbsr L01e1 lbsr L0207 lda #$40 lbsr L01e1 lbsr L01df leax 92,u stx D0007 lda #1 os9 I$Open lblo L0193 sta D0005 leax L0022,pcr ldy #$0056 lda #1 os9 I$WritLn L0111 lda D0002 ldx #0 pshs u ldu #64 os9 I$Seek puls u bra L0181 L0122 tst D000f beq L0181 tst D0003 bne L0142 leay 15,u lbsr L0207 L012f lbsr L01df ldb D0008 subb #$5c cmpb #$14 bhi L017e L013a subb #$0a bhi L013a bne L012f bra L0181 L0142 pshs u lda D002e clrb tfr d,u ldx D002c lda D0005 os9 I$Seek puls u bcs L0193 leax 79,u ldy #$000d os9 I$Read bcs L0193 lbsr L0228 ldd D0050 clr D0006 bsr L019e bsr L01df leay 15,u lbsr L0207 lbsr L0212 lbsr L01f4 bsr L01df bsr L01df bsr L0198 bsr L01aa L017e lbsr L0212 L0181 leax 15,u ldy #$0020 lda D0002 os9 I$Read bcc L0122 cmpb #$d3 bne L0193 clrb L0193 bsr L0212 os9 F$Exit L0198 lda D002c bsr L01c2 ldd D002d L019e bsr L01c4 tfr b,a bsr L01b8 inc D0006 bsr L01c6 bra L01df L01aa ldd D0058 bsr L01c2 tfr b,a bsr L01c4 bsr L01df ldd D005a bra L019e L01b8 pshs a lsra lsra lsra lsra bsr L01c8 puls a,pc L01c2 clr D0006 L01c4 bsr L01b8 L01c6 anda #$0f L01c8 tsta beq L01cd sta D0006 L01cd tst D0006 bne L01d5 lda #$20 bra L01e1 L01d5 adda #$30 cmpa #$39 bls L01e1 adda #7 bra L01e1 L01df lda #$20 L01e1 pshs x ldx D0007 sta ,x+ stx D0007 puls x,pc L01eb lsr -13,s fcb $65 asr 29285 asr 29439 L01f4 ldb D004f leax ===== RTS ===== Return to [[:OS-9:]] or [[:Top:]]