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 .CZ "Usage: insdrv file.drv " MSG.LOAD .CZ "INSDRV:Loading %s...\r\n" *-------------------------------------- MAN SAVE usr/src/sbin/insdrv.s ASM