[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: IIGS 115,200 Baud Serial Port - How?
David,
First, thanks for the input.
Second, accept my congratulations on getting 115,200 out of the IIGS ports.
I'd say that rate has been pretty much been considered 'unobtainable', aside
from the references to Localtalk running around 230K baud.
Third, please pardon my 'Lt. Colombo' style questions on how the heck you
did it.
OK, I've looked once again at the SCC manual and the source code you
referenced. The Apple II source code pretty much assumes a 57,600 max rate.
Of course, the SCC manual offers much more promise, and your ADTPro source
calls on upping the 16x clock rate multiplier to 32x to get the 115,200
baud.
I'm pained to admit that I can not get communications to work when I jack
the multiplier to 32x. Can you pull back the wizard's curtain and reveal
something else? <g>
For those patching along at home, ProTERM 3.1's PT3.Code0 file contains all
the relevant info.
The first table corresponds to ProTERM's table of values for writing to the
SCC's write register #4 (concerning data bits, parity, stop bits and clock
multiplier), as follows:
Memory Byte Hex Binary Function
$09D0 $2751 $47 01000111 7E1 (16x multiplier)
$09D1 $2752 $45 01000101 7O1 (16x multiplier)
$09D2 $2753 $44 01000100 8N1 (16x multiplier)
$09D3 $2754 $4C 01001100 8N2 (16x multiplier)
$09D4 $2755 $4F 01001111 7E2 (16x multiplier)
$09D5 $2766 $4D 01001101 7O2 (16x multiplier)
I changed these to:
Memory Byte Hex Binary Function
$09D0 $2751 $87 10000111 7E1 (32x multiplier)
$09D1 $2752 $85 10000101 7O1 (32x multiplier)
$09D2 $2753 $84 10000100 8N1 (32x multiplier)
$09D3 $2754 $8C 10001100 8N2 (32x multiplier)
$09D4 $2755 $8F 10001111 7E2 (32x multiplier)
$09D5 $2766 $8D 10001101 7O2 (32x multiplier)
The second table corresponds to ProTERM's table of values for writing to the
SCC's write register #12 (concerning the lower byte of the baud rate
generator time constant), as follows:
Memory Byte Hex Function
$24EB $15 110 Baud (Low Byte Time Constant)
$24EC $7E 300 Baud (Low Byte Time Constant)
$24ED $5E 1200 Baud (Low Byte Time Constant)
$24EE $2E 2400 Baud (Low Byte Time Constant)
$24EF $16 4800 Baud (Low Byte Time Constant)
$24F0 $0A 9600 Baud (Low Byte Time Constant)
$24F1 $0A 19200 Baud (Low Byte Time Constant)
$24F2 $01 38400 Baud (Low Byte Time Constant)
$24F3 $00 57600 Baud (Low Byte Time Constant)
I changed these to:
Memory Byte Hex Function
$24EB $EE 2400 (Low Byte Time Constant)
$24EC $76 4800 (Low Byte Time Constant)
$24ED $4E 7200 (Low Byte Time Constant)
$24EE $3A 9600 (Low Byte Time Constant)
$24EF $1C 19200 (Low Byte Time Constant)
$24F0 $12 28800 (Low Byte Time Constant)
$24F1 $0D 38400 (Low Byte Time Constant)
$24F2 $08 57600 (Low Byte Time Constant)
$24F3 $03 115200 (Low Byte Time Constant)
For those who have yet to glaze over, the Time Constant calculates as:
Clock Frequency [3.6864 MHz]
------------------------------- - 2
2 x (Clock multiplier) x (Baud)
So, can ProTERM be patched to communicate at 115,200 baud through the SCC,
or not?
Surely some young (or old), fresh, sharp minds will solve this and will lead
me from the wilderness before I lose what's left of my sanity.
Hugh Hood