CUSTOM DRIVERS
If you are writing your own drivers the following locations are used
to access the card CY = NO where N = slot#)
Printer Status — $CØSl,Y (READ)
Output Latch
Strobe Low
Strobe High
The following routine gives an example of how to output a character
using these locations:
PHA
LDY lØ
PAPER? LDA $CØ8l,Y
AND Ø4
BNE PAPER?
SLCT?
LDA $CØ8l,Y
AND Ø2
BEQ SLCT?
BUSY?
LDA $CØSl,Y
AND Ø8
BNE BUSY?
OUTPUT?
PLA
STA $CØ81,Y
STA $CØ82,Y
STA SCØ84,Y
RTS
- $CØ8l,Y (WRITE)
— $CØ82,Y (WRITE)
— $CØ84,Y (WRITE)
; SAVE OUTPUT CHARACTER ON STACK
; SET UP Y-REGISTER FOR SLOT #1
; CHECK STATUS FOR PAPER
; CHECK SIT 2
; IF SET THEN NO PAPER, RECHECK
; CHECK STATUS FOR PRINTER SELECT
; CHECK BIT 1
; IF ZERO THEN NOT SELECTED
; CHECK STATUS FOR PRINTER BUSY
; CHECK BIT 3
; IF SET THEN PRINTER IS BUSY
; REGET OUTPUT CHARACTER
; STORE TO OUTPUT LATCH
; PULL STROBE LINE LOW
; RESET STROBE LINE HIGH
; RETURN FROM SUBROUTINE
—10—