PR#3 PREFIX /A2OSX.BUILD NEW INC 1 AUTO 6 .LIST OFF .OP 65C02 .OR $2000 .TF DRV/PPIC.DRV *-------------------------------------- .INB INC/MACROS.I .INB INC/A2OSX.I .INB INC/ZP.I *-------------------------------------- ZPTmpPtr1 .EQ ZPDRV *-------------------------------------- SIG.05 .EQ $48 SIG.07 .EQ $48 *-------------------------------------- * Main DRV entry point * input : * X = CMD * 0 : OPEN * 2 : GETEVENT * 4 : SELECT * 6 : RELEASE * 8 : OUT * 10 : CLOSE *-------------------------------------- * CLD $D8 * JMP (*,x) $7C * #JMPTABLE * /JMPTABLE *-------------------------------------- CS.START cld jmp (.1,x) .1 .DA OPEN .DA GETEVENT .DA SELECT .DA RELEASE .DA OUT .DA CLOSE .DA 0 end or relocation .DA CS.END-CS.START *-------------------------------------- OPEN stz ZPTmpPtr1 lda #$C1 sta ZPTmpPtr1+1 .1 ldy #5 lda (ZPTmpPtr1),y cmp #SIG.05 bne .2 ldy #7 lda (ZPTmpPtr1),y cmp #SIG.07 beq .3 .2 inc ZPTmpPtr1+1 lda ZPTmpPtr1+1 cmp #$C8 bne .1 beq .99 .3 lda ZPTmpPtr1+1 and #$0F sta DEVSLOT ora #$30 sta DEVNAME+4 lda #S.DEV.F.CHAR+S.DEV.F.OUT sta (DEVMGR.DEVPTR) ldy #S.DEV.NAME ldx #0 .7 lda DEVNAME,x sta (DEVMGR.DEVPTR),y cpx DEVNAME beq .8 inx iny bne .7 .8 clc rts .99 lda #DEVMGR.ERRNOHW sec rts *-------------------------------------- GETEVENT lda #0 sec rts *-------------------------------------- SELECT RELEASE *-------------------------------------- OUT clc rts *-------------------------------------- CLOSE clc rts *-------------------------------------- CS.END DEVNAME >PSTRING "LPT0" DEVSLOT .BS 1 *-------------------------------------- MAN SAVE DRV/PPIC.DRV.S ASM