NEW PREFIX AUTO 4,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.MSG1 .DA MSG1 L.MSG2.ERR .DA MSG2.ERR L.MSG2 .DA MSG2 L.MSG2.C .DA MSG2.C L.MSG2.B .DA MSG2.B L.MSG3 .DA MSG3 L.MSG4 .DA MSG4 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 jsr DumpDev bcs .9 jsr DumpNod bcs .9 .8 lda #0 tell TSKMGR that all done ok, but sec we do not want to stay in memory .9 rts *-------------------------------------- DumpDev >LDYA L.MSG0 >SYSCALL puts ldx #1 stx Index .1 lda Dev.Table-1,x sta ZPFDPtr lda Dev.Table,x sta ZPFDPtr+1 beq .8 jsr DumpDevFD bcs .9 ldy #DEV.DIB+S.DIB-1 ldx #S.DIB-1 .2 lda BLANK.DIB,x sta (pData),y dey dex bpl .2 >PUSHEA.G DEV.DIB lda Index >SYSCALL GetDevStatus bcc .6 >PUSHA >PUSHBI 1 >LDYA L.MSG2.ERR >SYSCALL printf bcs .9 bra .7 .6 jsr DumpDevDIB .7 inc Index inc index ldx Index cpx #K.DEV.MAX*2+1 bne .1 .8 clc .9 rts *-------------------------------------- DumpDevFD ldy #S.FD.DEV.DRVPTR+1 >PUSHB (ZPFDPtr),y dey >PUSHB (ZPFDPtr),y lda ZPFDPtr clc adc #S.FD.DEV tay lda ZPFDPtr+1 adc /S.FD.DEV >PUSHYA >PUSHB (ZPFDPtr) S.FD.T >PUSHB Index >PUSHBI 6 >LDYA L.MSG1 >SYSCALL printf rts *-------------------------------------- DumpDevDIB >PUSHB.G DEV.DIB+S.DIB.VERSION+1 >PUSHB.G DEV.DIB+S.DIB.VERSION >PUSHEA.G DEV.DIB+S.DIB.IDS >PUSHB.G DEV.DIB+S.DIB.ST >PUSHB.G DEV.DIB+S.DIB.T >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 >PUSHBI 8 >LDYA L.MSG2 >SYSCALL printf bcs .9 >LDA.G DEV.DIB+S.DIB.S bpl .4 char device... >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 >LDYA L.MSG2.B bra .8 .4 >PUSHBI 0 >LDYA L.MSG2.C .8 >SYSCALL printf .9 rts *-------------------------------------- DumpNod >LDYA L.MSG3 >SYSCALL puts ldx #2 stx Index .1 lda Nod.Table.hPath-2,x beq .7 >SYSCALL GetMemPtr >PUSHYA ldx Index lda Nod.Table.hFD-2,x >SYSCALL GetMemPtr >STYA ZPFDPtr lda (ZPFDPtr) tax >PUSHW L.FD.T,x ldx Index lda Nod.Table.hFD-2,x >PUSHA txa >PUSHA >PUSHBI 6 >LDYA L.MSG4 >SYSCALL printf .7 inc index ldx index cpx #K.NOD.MAX+2 bne .1 clc .9 rts *-------------------------------------- CS.EVENT sec rts *-------------------------------------- CS.QUIT clc rts *-------------------------------------- CS.END MSG0 .AZ "hDev Tp Name Addr. Status Typ/Sub IDString Version Size (BLK)" MSG1 .AZ "%03d %h %12s $%H " MSG2.ERR .AZ "Device Error : $%h\r\n" MSG2 .AZ "%s $%h/$%h %16S %03d.%03d " MSG2.B .AZ "%10u\r\n" MSG2.C .AZ "n/a\r\n" MSG.SFLAGS .AS "BWRLNEIO" *-------------------------------------- MSG3 .AZ "hNod hFD Type Filepath" MSG4 .AZ "%03d $%h %5s %s\r\n" 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