PR#3
PREFIX /A2OSX.SRC
NEW
INC 1
AUTO 6
				.LIST OFF
				.OP	65C02
				.OR	$2000
				.TF /A2OSX.BOOT/SBIN/INSDRV
*--------------------------------------
				.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.DOEVENT		
				.DA	CS.QUIT
L.MSG.HELP		.DA MSG.HELP
L.MSG.LOAD		.DA MSG.LOAD
				.DA 0
*--------------------------------------
CS.INIT			>SYSCALL SYS.GetArgC
				cmp #1
				bne .1
				
				>LDYA L.MSG.HELP
				>SYSCALL SYS.PrintFYA
				lda #0					tell TSKMGR that all done ok, but
				sec						we do not want to stay in memory
				rts
				
.1				lda #1					get PTR to ARG[1] (Driver name)
				>SYSCALL SYS.GetArgA
				>PUSHYA

				>LDYA L.MSG.LOAD
				>SYSCALL SYS.PrintFYA
				
				lda #1					get PTR to ARG[1] (Driver name)
				>SYSCALL SYS.GetArgA
				
				>SYSCALL SYS.LoadDrvYA	YA = PTR to ARG[1...n]
				bcs .99

				lda #0					success, but....
				sec						we do not want to stay in memory
.99				rts
*--------------------------------------
CS.RUN
CS.DOEVENT
CS.QUIT			clc
				rts
*--------------------------------------
CS.END			
MSG.HELP		>CSTRING "Usage: insdrv file.drv <args>\n"
MSG.LOAD		>CSTRING "INSDRV:Loading %S...\n"
*--------------------------------------
MAN
SAVE SBIN/INSDRV.S
ASM
