NEW PREFIX AUTO 4,1 .LIST OFF .OP 65C02 .OR $2000 .TF 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 .DA 0 .DA CS.END-CS.START Code Length To Relocate .DA 0 Data Segment to Allocate .DA #64 SS .DA #6 ZP .DA 0 *-------------------------------------- * Relocation Table *-------------------------------------- .1 .DA CS.INIT .DA CS.RUN .DA CS.DOEVENT .DA CS.QUIT L.MSG.USAGE .DA MSG.USAGE L.MSG.LOAD .DA MSG.LOAD .DA 0 *-------------------------------------- CS.RUN ldy #S.PS.ARGC lda (pPs),y cmp #1 bcc .9 >PUSHW L.MSG.LOAD lda #1 get PTR to ARG[1] (Driver name) >SYSCALL ArgV >PUSHYA >PUSHBI 2 >SYSCALL printf bcs .99 lda #1 get PTR to ARG[1] (Driver name) >SYSCALL ArgV >SYSCALL LoadDrv YA = PTR to ARG[1...n] bcs .99 lda #0 success, but.... sec we do not want to stay in memory rts .9 >LDYA L.MSG.USAGE >SYSCALL puts lda #E.SYN tell TSKMGR that all done ok, but sec we do not want to stay in memory .99 rts *-------------------------------------- CS.INIT *-------------------------------------- CS.QUIT clc rts *-------------------------------------- CS.DOEVENT sec rts *-------------------------------------- CS.END MSG.USAGE .AZ "Usage: insdrv file.drv " MSG.LOAD .AZ "INSDRV:Loading %s...\r\n" *-------------------------------------- MAN SAVE USR/SRC/SBIN/INSDRV.S ASM