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.MSG0			.DA MSG0
L.MSG1			.DA MSG1
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 #2

.1				stx FILE.ID

				lda Nod.Table.hFD-2,x
				beq .7

				>PUSHW L.MSG1
				
				txa
				>PUSHA
				lda Nod.Table.hFD-2,x
				>PUSHA

				>SYSCALL GetMemPtr
				>STYA ZPFDPtr
				
				lda (ZPFDPtr)
				tax
				>PUSHW L.FD.T,x

				ldx FILE.ID
				lda Nod.Table.hName-2,x
				>SYSCALL GetMemPtr
				>PUSHYA

				>PUSHBI 6
				
				>SYSCALL PrintF
				
.7				ldx FILE.ID
				inx
				inx
				cpx #K.NOD.MAX*2+2
				bne .1

				lda #0
				sec
.9				rts
*--------------------------------------
CS.EVENT		sec
				rts
*--------------------------------------
CS.QUIT			clc
				rts
*--------------------------------------
CS.END
MSG0			.AZ "hFILE hFD Type  Filepath"
MSG1			.AZ "%3d   %3d %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
DS.END  		.ED
*--------------------------------------
MAN
SAVE usr/src/bin/lsof.s
ASM
