I looked at the PIC manual, and there's a source code listing for both the ROMs but neither one bothers to look at the ACK, they just seem to write to C0x0 and assume it gets read.
I guess the apple was slow enough that it wasn't a problem but theoretically that could cause dropped characters.
This really surprised me that there's no real flow control as it wouldn't have been hard to add.
I wrote a little crap BASIC program to write data directly to the parallel card via I/O locations, it's slow enough that it doesn't go too fast for the printer.
1 GOTO 90
2 POKE PO,C : ? C,PEEK(PI),PEEK(PI) : RETURN : REM PRINT CHAR AND SHOW THE ACK STATUS
90 C = PEEK(49152+256) : REM READ FROM C100 TO ACTIVATE AUTOSTROBE
100 PO = 49152 + 9*16 : PI = PO+4 : REM C090 FOR OUTPUT C094 FOR ACK INPUT
105 FOR J = 1 TO 24
106 C=64+J : GOSUB 2 : Z$=STR$(J) :GOSUB 3000
110 C = 27:GOSUB 2 : C = ASC("L") : GOSUB 2 : REM ESC L TO ACTIVATE GRAPHICS
111 C = 127:GOSUB 2
112 C = 0 : GOSUB 2
120 FOR I=0 TO 127 : C = I : GOSUB 2 :NEXT
150 C=13:GOSUB 2:C=10:GOSUB 2
3000 FOR Z = 1 TO LEN(Z$) : C=ASC(MID$(Z$,Z,1)): GOSUB 2 : NEXT : RETURN
Another thing that was totaly puzzling me was why the LF wasn't working right, it seemed like I had to hit it twice, and then I noticed that it had PORT_TOGGLE set. Man, that was really baffling to me. I guess it pays to read the code 8-)
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Form Feed") PORT_CODE(KEYCODE_7_PAD) //PORT_TOGGLE
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Line Feed") PORT_CODE(KEYCODE_9_PAD) //PORT_TOGGLE