GLINK232T - Turbo232 UART cartridge for Commodore 64/128

Submitted by GG on Tue, 01/15/2019 - 09:53
Project Status

glink232Both the commodore 64 and the 128 have a software UART implementation that limits the useful speed to 2400 bauds. To work around this limitation Dr. Evil Labs and later CMD produced the SwiftLink232 and Turbo232 cartridges based on the 6551 ACIA chip. Both of these have been out of production for a very long time. GLINK232T is a modern replacement for the CMD Turbo232 allowing the commodore 64/128 to communicate at speeds up to 230400 bauds.

Similarly to the Turbo232 and the Swiftlink, the card can be configured using jumpers at either the $DE00 or $DF00 I/O address and can use either the NMI or IRQ interrupt line (most native software use NMI, but CP/M uses IRQ).
The Turbo232 cartridge is backwards compatible with the Swiftlink. The card uses a 3.6864MHz oscillator (double the standard for a 6551) to match the baud rate table of the Swiftlink. The additional baud rates (203400, 115200 and 57600) are obtained by bypassing the 6551 baud rate generator and optionally dividing the oscillator output by 2 or 4.

Address Register Notes
$Dx00 Data 6551 register (same as Swiftlink)
$Dx01 Status 6551 register (same as Swiftlink)
$Dx02 Command 6551 register (same as Swiftlink)
$Dx03 Control 6551 register (same as Swiftlink), writing $x0 enables the ES register
$Dx04 - Not implemented
$Dx05 - Not implemented
$Dx06 - Not implemented
$Dx07 ES See description below for bit field

ES Register

GTERM
The Enhanced Speed (ES) register implements only bits 0-2. Bits 3-7 are unimplemented.
Bit 2 is read only. Its value will be 1 when the Control register lower 4 bits are all zero to signal the card is in ES mode and the higher baud rates are active. A value of 0 signals the standard Swiftlink baud rates.
Bits 0 and 1 select the enhanced speed baud rate. 00 selects 230400 baud, 01 selects 115200, and 10 selects 57600. 11 is undefined.
GTERM-115200.png
destermThe GLINK232T schematics is almost identical to the earlier GLINK232T-C00. The only difference is one additional footprint for the crystal oscillator. The 6551 ACIA (U1) is used to keep compatibility with the SwftLink and the Turbo232. MAX232 level translators (U4 and U5) are used to provide true RS-232 signal levels. The address decoder and the delayed phi2 clock required to meet the ACIA timing specifications have been integrated into the U3 16V8 PAL. The ES register is implemented into the second 16V8 PAL (U2).

BOM Options

The board can be configured as a swiftlink only by the following BOM options.

Component Swiftlink Turbo232
R4 0 ohm no stuff
R5 0 ohm no stuff
R6 0 ohm no stuff
R7 no stuff 0 ohm
U2 no stuff T232-reg.jed
U3 SL232-dec.jed T232-clk.jed

Testing

Speeds above 38400 are a challenge for the 8-bit commodores. At 115200 baud a 1-MHz 6502 has less than 90 clock cycles between input bytes. In these conditions is very difficult to perform any operation beside just receiving data.
Only specific hw/sw configurations work reliably when simultaneously displaying the output.

Computer Software Max Speed
C64 Novaterm 9.6c (Soft 80) 38400
C64 GTERM 0.18 (Soft 80) 115200
C128 DesTerm 3.02 (80-col) 115200

desterm

Filed under
Schematics