High Speed Serial Interface: Handshake Modification (11/96)



Most printers cannot run faster than 300 baud with the High Speed Serial Interface card because it has no printer busy line. This modification uses the existing data input line to sense if the printer is busy and inhibit output if necessary. This modification will work with cassette, DOS 3.2, or DOS 3.3.


Before making any wiring changes, determine which wire your printer uses to indicate a printer busy or buffer full condition. Your printer's manual should contain this information; failing that, contact the manufacturer.


Examples
--------

IDS 125/225 pin 4
HEATH H-14 pin 4
TI-810 pin 11
SPINTERM pin 19
COMPRINT pin 20


Wiring Change
-------------
The cable is the preferred place to do the wiring change, but it can also be done to the Serial Card or the printer. Disconnect the wire between pin 2 of the printer and pin 2 on the Serial Card. Then connect the wire with the printer busy signal to the wire for pin 2 on the Serial Card.


Software Patch
--------------
To make the software patch, determine which slot the interface will be placed in and type in the software patch below. The patch is customized for this slot number and will not work in a different configuration. The patch forces the computer to access the printer busy signal and wait if it is on.

For the slot number, enter the patch using the values from this table for the words in the <> brackets.

SLOT 1 2 3 4 5 6 7
DATA 90 A0 B0 C0 D0 E0 F0
CODE C1 C2 C3 C4 C5 C6 C7

Enter the monitor with CALL -155 and type in the following:

3B0:A9 <SLOT>
:20 95 FE
:A9 00
:20 ED FD
:A9 C5
:85 36
:A9 03
:85 37
:4C EA 03
:2C <DATA> C0
:30 FB
:4C 07 <CODE>
:00 00 00

To check your typing, type "3B0L" and compare your listing to the one below for slot 1.

03B0- A9 01 LDA #$01
03B2- 20 95 FE JSR $FE95
03B5- A9 00 LDA #$00
03B7- 20 ED FD JSR $FDED
03BA- A9 C5 LDA #$C5
03BC- 85 36 STA $36
03BE- A9 03 LDA #$03
03C0- 85 37 STA $37
03C2- 4C EA 03 JMP $03EA
03C5- 2C 90 C0 BIT $C090
03C8- 30 FB BMI $03C5
03CA- 4C 07 C1 JMP $C107
03CB- 00 BRK
03CC- 00 BRK
03CD- 00 BRK

Now return to BASIC with "3D0G".

To save the patch to disk, type "BSAVE PATCH, A$3B0, L$20".

The first time you use the printer you must load the patch into memory and initialize the interface. From immediate mode, type:

BLOAD PATCH CALL 944.

This may also be done from within a program by entering:

"100 PRINT D$;"BLOAD PATCH": CALL 944", assuming D$ is a CTRL-D.

If you need to turn off the printer, type "PR#0", or in a program enter "200 PRINT D$;"PR#0"

Then to reconnect the printer, all that is required is "CALL 954", or from a program "300 CALL 954".

If the printer does not print after the CALL 944, it is probably sending the opposite polarity busy signal. The patch can be changed to recognize the opposite polarity signal with by using "POKE 968,16".

If this doesn't work, have the printer checked.

The modification allows the speed, column width, and other variables to be changed with the POKEs listed in the card manual.


Article Change History:
19 Nov 1996 - Reviewed for technical accuracy, revised formatting.
Published Date: Feb 18, 2012