* P COMMAND FOR SK*DOS * SUBSTITUTES PRINTER DRIVER FOR NORMAL OUTCH OUTPUT * COPYRIGHT (C) 1984 BY PETER A. STARK * DOS EQUATES SPOOLF EQU $CCFC PSTRNG EQU $CD1E WARMST EQU $CD03 OUTCH EQU $CD0F RENTER EQU $CD06 SPORT EQU $E000 SERIAL PORT ADDRESS * PROGRAM ORG $C100 START BRA START1 FCB 1 VERSION 1 START1 TST SPOOLF TEST SPOOLING FLAG BNE NGSPOO NO GOOD IF SPOOLING JSR PRINIT INITIALIZE PRINTER LDX #PROUT POINT TO PRINTER ROUTINE STX OUTCH+1 PUT INTO OUTCH VECTOR JMP RENTER RETURN TO SK*DOS * ERROR PROCESSING NGSPOO LDX #SPOMSG PRINT "NOT ALLOWED ..." JSR PSTRNG JMP WARMST AND QUIT SPOMSG FCC 'NOT ALLOWED WHILE SPOOLING',4 * SERIAL PRINTER ROUTINES * INITIALIZE ACIA ORG $CCC0 PRINIT LDA #$13 STA SPORT INITIALIZE ACIA LDA #$15 8 DATA BITS, 1 STOP, 16X CLOCK STA SPORT RTS * CHECK PRINTER STATUS ORG $CCD8 PRCHEK PSHS A LDA SPORT ACIA STATUS REGISTER ASRA ASRA MOVE TDRE BIT INTO CARRY PULS A,PC RESTORE A AND RETURN * OUTPUT CHARACTER FROM A TO PRINTER ORG $CCE4 PROUT BSR PRCHEK CHECK IF READY BCC PROUT REPEAT IF NOT READY STA SPORT+1 THEN OUTPUT CHARACTER RTS AND RETURN END START