PR#3
PREFIX /A2OSX.SRC
NEW
INC 1
AUTO 6
				.LIST OFF
				.OP	65C02
				.OR	$2000
				.TF /A2OSX.BOOT/BIN/LSDEV
*--------------------------------------
				.INB INC/MACROS.I
				.INB INC/A2OSX.I
*--------------------------------------
ZPPTR1			.EQ ZPBIN
ZPPTR2			.EQ ZPBIN+2
ZPPTR3			.EQ ZPBIN+4
*--------------------------------------
*			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		Code Length To Relocate
				.DA 0					Data Segment to Allocate
				.DA 0
				.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
				.DA 0
*--------------------------------------
CS.INIT			>LDYAI DevMgr.Table
				>STYA ZPPTR1
				stz DEV.ID

				>LDYA L.MSG0
				>SYSCALL SYS.PrintfYA

.2				lda (ZPPTR1)
				cmp #$D8
				bne .8
				
				ldy #S.DEV.JMP+1
				>PUSHB (ZPPTR1),y
				dey
				>PUSHB (ZPPTR1),y
				
				lda ZPPTR1
				clc
				adc #S.DEV.NAME
				tay
				lda ZPPTR1+1
				adc #0
				>PUSHYA
				
				ldy #S.DEV.F
				>PUSHB (ZPPTR1),y
				ldy #S.DEV.ID
				>PUSHB (ZPPTR1),y
				>LDYA L.MSG1
				>SYSCALL SYS.PrintfYA

				lda ZPPTR1
				clc
				adc #S.DEV
				sta ZPPTR1
				bcc .3
				inc ZPPTR1+1
				
.3				inc DEV.ID
				lda DEV.ID
				cmp #K.DEV.MAX
				bne .2

.8				lda #0					tell TSKMGR that all done ok, but 
.9				sec						we do not want to stay in memory
				rts
*--------------------------------------
CS.RUN
CS.EVENT		
CS.QUIT			clc
				rts
*--------------------------------------
CS.END			
MSG0			>CSTRING "ID  Flags    Name Address\n"
MSG1			>CSTRING "%03d %b %4S $%H\n"
DEV.ID			.BS 1
MAN
SAVE BIN/LSDEV.S
ASM
