NEW AUTO 3,1 .LIST OFF .OP 65C02 .OR $2000 .TF bin/lsof *-------------------------------------- .INB inc/macros.i .INB inc/mli.i .INB inc/a2osx.i .INB inc/kernel.i *-------------------------------------- .DUMMY .OR ZPBIN ZS.START ZPFDPtr .BS 2 FILE.ID .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 .DA CS.END-CS.START CS .DA DS.END-DS.START DS .DA #16 SS .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.MSG.HEADER .DA MSG.HEADER L.MSG.BODY .DA MSG.REGDIR .DA MSG.SPECIAL 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.MSG.HEADER >SYSCALL PutS ldx #1 .1 stx FILE.ID lda hFDs-1,x beq .7 >SYSCALL GetMemPtr >STYA ZPFDPtr ldx FILE.ID lda hFDs.oCnt-1,x beq .7 ldy #0 lda (ZPFDPtr) cmp #S.FD.T.DIR+1 bcc .2 iny iny .2 >PUSHW L.MSG.BODY,y txa >PUSHA lda hFDs-1,x >PUSHA lda hFDs.oCnt-1,x >PUSHA lda (ZPFDPtr) tay >PUSHW L.FD.T,y jsr CS.RUN.GetName >PUSHYA >PUSHBI 7 >SYSCALL PrintF .7 ldx FILE.ID inx cpx #K.hFD.MAX+1 bne .1 lda #0 sec .9 rts *-------------------------------------- CS.RUN.GetName lda hFDs.hName-1,x bne .1 lda ZPFDPtr clc adc #S.FD.DEV tay lda ZPFDPtr+1 adc /S.FD.DEV rts .1 >SYSCALL GetMemPtr rts *-------------------------------------- CS.EVENT sec rts *-------------------------------------- CS.QUIT clc rts *-------------------------------------- CS.END MSG.HEADER .CZ "hFILE hFD Cnt Type Filepath" MSG.REGDIR .CZ "%3d %3d %3d %4s %s\r\n" MSG.SPECIAL .CZ "%3d %3d %3d %4s /dev/%s\r\n" FD.T.REG .CZ "REG" FD.T.DIR .CZ "DIR" FD.T.CDEV .CZ "CDEV" FD.T.BDEV .CZ "BDEV" FD.T.LNK .CZ "LNK" FD.T.DSOCK .CZ "DSCK" FD.T.SSOCK .CZ "SSCK" FD.T.PIPE .CZ "PIPE" *-------------------------------------- .DUMMY .OR 0 DS.START DS.END .ED *-------------------------------------- MAN SAVE usr/src/bin/lsof.s ASM