[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: IIGS 115,200 Baud Serial Port - How?
On Dec 29, 11:15 pm, Hugh Hood <hughh...@earthlink.net> wrote:
> David,
>
> First, thanks for the input.
You're quite welcome. I'm happy to share what little I've managed to
absorb from all that others have tried to impart to me.
> 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.
Um, no. The SCC data sheets clearly talk about what the chip is
capable of. LocalTalk is one system that took advantage of it.
ADTPro is another. The rub is keeping all players happy at the same
time. And, so, you mentioned David Empson. He is of course exactly
correct when he talks about the 19200 baud limit (when using the
firmware support in the IIgs for the serial ports). If you want to
"play nice" within the IIgs ecosystem which includes LocalTalk,
interrupts, and all that... there are limits as to what you can expect
to get out of the serial port. But ADTPro takes liberties and makes
assumptions that are not at all compatible with what Apple Computer,
Inc. intended for that ecosystem. ADTPro assumes it's the only game
in town, and gets to go home with all the marbles. The BBS code I
mentioned earlier plays much nicer than ADTPro in that ecosystem, but
still can't go as fast as the chip allows. You can't have everything
in a 2.8MHz system.
> 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.
Yes, true - but again, it's playing much nicer than I am. >:-)
> 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>
It's been a while to remember all the particulars. And you're making
me look at the code. But there's something different that happens
when you shift into 32x mode. I branch over to GOFAST: you no longer
set the BRG (Baud Rate Generator) but instead set clocking
differently. It's a whole different ball game. My datasheet is at
home, and I'm physically elsewhere just now, so I'm going to have to
ask you to look up SCC write registers 4 and 11 (decimal) and related
stuff (see section 3.5, "Clock selection") to remember how you set the
baud rate once you're in 32x mode. It's different than the standard
16x BRG.
For those following at home - here's one source of Zilog's SCC book:
http://www-clips.imag.fr/projet-systeme/Z85230/contents.html
> 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:
Yeah, it's different when going fast... sorry I can't remember enough
right now to be more specific. But at 32x, you *disable* the BRG.
That much I do remember. Looking at the code, I just hit WR4 with #
%10000100, and I hit WR11 with #%00000000. I skip WR11, 12 and 13 in
this scenario (noting that the time constants only get you to 56kbps
with the BRG...).
> So, can ProTERM be patched to communicate at 115,200 baud through the SCC,
> or not?
I bet it can. But it's going to take some slightly different
registers to tweak.
> 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.
I've been there before with the SCC. Don't worry, it'll come back to
you. :-)