NEW AUTO 3,1 .LIST OFF .OP 65C02 .OR $2000 .TF bin/lsdev *-------------------------------------- .INB inc/macros.i .INB inc/mli.i .INB inc/a2osx.i .INB inc/kernel.i *-------------------------------------- .DUMMY .OR ZPBIN ZS.START ZPFDPtr .BS 2 Index .BS 1 ZS.END .ED *-------------------------------------- * File Header (16 Bytes) *-------------------------------------- CS.START cld jmp (.1,x) .DA #$61 6502,Level 1 (65c02) .DA #1 BIN Layout Version 1 .DA #0 S.PS.F.EVENT .DA #0 .DA CS.END-CS.START Code Size (without Constants) .DA DS.END-DS.START Data SegmentSize .DA #64 Stack Size .DA #ZS.END-ZS.START Zero Page Size .DA 0 *-------------------------------------- * Relocation Table *-------------------------------------- .1 .DA CS.INIT .DA CS.RUN .DA CS.EVENT .DA CS.QUIT L.MSG0 .DA MSG0 L.MSG.DEV .DA MSG.DEV L.MSG.DEV.ERR .DA MSG.DEV.ERR L.MSG.DEV.DIB .DA MSG.DEV.DIB L.MSG.DEV.C .DA MSG.DEV.C L.MSG.DEV.B .DA MSG.DEV.B L.MSG.PIPE .DA MSG.PIPE L.NO.PATH .DA NO.PATH J.FD .DA DumpFD.REG .DA DumpFD.DIR .DA DumpFD.CDEV .DA DumpFD.CDEV .DA DumpFD.LNK .DA DumpFD.DSOCK .DA DumpFD.SSOCK .DA DumpFD.PIPE L.FD.T .DA FD.T.REG .DA FD.T.DIR .DA FD.T.CDEV .DA FD.T.BDEV .DA FD.T.LNK .DA FD.T.DSOCK .DA FD.T.SSOCK .DA FD.T.PIPE .DA 0 *-------------------------------------- CS.INIT clc rts *-------------------------------------- CS.RUN >LDYA L.MSG0 >SYSCALL PutS ldx #0 .1 stx Index lda hFDs,x beq .7 >SYSCALL GetMemPtr >STYA ZPFDPtr jsr DumpFD bcs .9 ldx Index .7 inx cpx #K.hFD.MAX bne .1 lda #0 sec .9 rts *-------------------------------------- DumpFD lda (ZPFDPtr) tax jmp (J.FD,x) *-------------------------------------- DumpFD.REG DumpFD.DIR clc rts *-------------------------------------- DumpFD.CDEV DumpFD.BDEV >PUSHW L.MSG.DEV jsr DumpFD.T lda ZPFDPtr clc adc #S.FD.DEV tay lda ZPFDPtr+1 adc /S.FD.DEV >PUSHYA ldy #S.FD.DEV.DRVPTR+1 >PUSHB (ZPFDPtr),y dey >PUSHB (ZPFDPtr),y >PUSHBI 7 >SYSCALL PrintF bcs .9 ldy #DEV.DIB+S.DIB-1 ldx #S.DIB-1 .1 lda BLANK.DIB,x sta (pData),y dey dex bpl .1 ldx Index >PUSHB hFDs,x >PUSHEA.G DEV.DIB >SYSCALL GetDevStatus bcc DumpFD.DevDIB pha >PUSHW L.MSG.DEV.ERR pla >PUSHA >PUSHBI 1 >SYSCALL PrintF .9 rts *-------------------------------------- DumpFD.DevDIB >PUSHW L.MSG.DEV.DIB >LDA.G DEV.DIB+S.DIB.S ldy #DEV.SFLAGS+7 ldx #7 .1 lsr pha lda #'-' bcc .2 lda MSG.SFLAGS,x .2 sta (pData),y pla dey dex bpl .1 >PUSHEA.G DEV.SFLAGS >PUSHB.G DEV.DIB+S.DIB.T >PUSHB.G DEV.DIB+S.DIB.ST >PUSHEA.G DEV.DIB+S.DIB.IDS >PUSHB.G DEV.DIB+S.DIB.VERSION >PUSHB.G DEV.DIB+S.DIB.VERSION+1 >PUSHBI 8 >SYSCALL PrintF bcs .9 >LDA.G DEV.DIB+S.DIB.S bpl .4 char device... >PUSHW L.MSG.DEV.B >PUSHBI 0 >PUSHB.G DEV.DIB+S.DIB.SIZE+2 >PUSHB.G DEV.DIB+S.DIB.SIZE+1 >PUSHB.G DEV.DIB+S.DIB.SIZE >PUSHBI 4 bra .8 .4 >PUSHW L.MSG.DEV.C >PUSHBI 0 .8 >SYSCALL PrintF .9 rts *-------------------------------------- DumpFD.LNK DumpFD.DSOCK DumpFD.SSOCK clc rts *-------------------------------------- DumpFD.PIPE >PUSHW L.MSG.PIPE jsr DumpFD.T jsr DumpFD.Name >PUSHBI 5 >SYSCALL PrintF clc rts *-------------------------------------- DumpFD.T ldx Index >PUSHB hFDs,x lda (ZPFDPtr) S.FD.T tax >PUSHW L.FD.T,x rts *-------------------------------------- DumpFD.Name ldx Index lda hFDs.hName,x beq .1 >SYSCALL GetMemPtr >PUSHYA rts .1 >PUSHYA L.NO.PATH rts *-------------------------------------- CS.EVENT sec rts *-------------------------------------- CS.QUIT clc rts *-------------------------------------- CS.END MSG0 .AZ "hFD Type Name Addr Status Typ/Sub IDString Version Size (BLK)" MSG.DEV .AZ "%3d %5s %12s %H " MSG.DEV.ERR .AZ "Device Error : $%h\r\n" MSG.DEV.DIB .AZ "%s $%h/$%h %16S %03d.%03d " MSG.DEV.B .AZ "%10u\r\n" MSG.DEV.C .AZ "n/a\r\n" MSG.PIPE .AZ "%3d %5s %s\r\n" *-------------------------------------- MSG.SFLAGS .AS "bwrlneio" NO.PATH .AZ "(no path)" *-------------------------------------- FD.T.REG .AZ "REG" FD.T.DIR .AZ "DIR" FD.T.CDEV .AZ "CDEV" FD.T.BDEV .AZ "BDEV" FD.T.LNK .AZ "LNK" FD.T.DSOCK .AZ "DSOCK" FD.T.SSOCK .AZ "SSOCK" FD.T.PIPE .AZ "PIPE" *-------------------------------------- BLANK.DIB .DA #0 #S.DIB.S.BLOCK+S.DIB.S.WRITE+S.DIB.S.READ .BS 3 >PSTR "(No IDS String!)" .DA #0 #S.DIB.T.PRODOS .DA #0 .DA 0 K.VER *-------------------------------------- .DUMMY .OR 0 DS.START DEV.DIB .BS S.DIB DEV.SFLAGS .BS 9 DS.END .ED *-------------------------------------- MAN SAVE usr/src/bin/lsdev.s ASM