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 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 #16 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 lda #1 >STA.G Table.Index jsr DumpDev bcs .9 lda #2 >STA.G Table.Index 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 >LDA.G Table.Index .1 tax lda Dev.Table-1,x sta ZPFDPtr lda Dev.Table,x sta ZPFDPtr+1 beq .8 jsr DumpDevFD bcs .9 >PUSHEA.G DEV.DIB >LDA.G Table.Index >SYSCALL GetDevStatus bcc .6 >PUSHA >PUSHBI 1 >LDYA L.MSG2.ERR >SYSCALL printf bcs .9 bra .7 .6 jsr DumpDevDIB .7 >INC.G Table.Index >INC.G Table.Index cmp #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.G Table.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 >LDA.G Table.Index .1 tax lda Nod.Table.hPath-2,x beq .7 >SYSCALL GetMemPtr >PUSHYA >LDA.G Table.Index tax lda Nod.Table.hFD-2,x >SYSCALL GetMemPtr >STYA ZPFDPtr lda (ZPFDPtr) tax >PUSHW L.FD.T,x >LDA.G Table.Index tax lda Nod.Table.hFD-2,x >PUSHA txa >PUSHA >PUSHBI 6 >LDYA L.MSG4 >SYSCALL printf .7 >INC.G Table.Index cmp #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" *-------------------------------------- .DUMMY .OR 0 DS.START Table.Index .BS 1 DEV.DIB .BS S.DIB DEV.SFLAGS .BS 9 DS.END .ED *-------------------------------------- MAN SAVE USR/SRC/BIN/LSDEV.S ASM