 ttl Parallel Printer Test
 pag
 abs

*
* This is a standalone program used to test
* the parallel printer hardware port on the
* SWTPc PPI system.
*
* This version of the program works with an
* MP-L2 parallel card in slot 7
*

LINESIZE equ 72
CR equ $0D
LF equ $0A

 org $8070
PPR_PORT rmb 0

* -- PIA structure
 org $0
A_data    rmb 1
A_control rmb 1
B_data    rmb 1
B_control rmb 1
          rmb 10
Latch     rmb 1 Direction latch

 org $8C00
col rmb 1 current print column
 rmb 512
stack rmb 0

 org $FFFE
 fdb ppr_test -- RESET vector

 org $F000

*
* Parallel printer test
*
ppr_test
 lds #stack
 clr col
 jsr ppr_init
10 lda #$20
20 jsr ppr_out
 ldb col
 incb
 stb col
 cmpb #LINESIZE
 bne 30f
 pshs a save current character
 lda #CR
 jsr ppr_out
 lda #LF
 jsr ppr_out
 clr col
 puls a
30 inca
 cmpa #$7E
 bne 20b
 bra 10b

*
* Initialize the PPR port
*
ppr_init pshs d,x,y,u
 ldy #PPR_PORT
 clra reset port
 sta A_control,y
 sta B_control,y
 lda #$FF
 sta B_data,y set direction = OUT
 lda #$0F
 sta Latch,y set on-board latch
 lda #$2F
 sta B_control,y set handshake mode
 puls d,x,y,u,pc return

*
* Send one character to the ppr port
* -- Non-interrupt driven
*   (A) - character to send
*
ppr_out pshs d,x,y,u
 ldy #PPR_PORT
 sta B_data,y set character
10 lda B_control,y wait for handshake
 bmi 20f
 mul
 bra 10b
20 lda B_data,y "dummy" read to clear bit
25 lda B_control,y
 bmi 25b
 puls d,x,y,u,pc return
