[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Hi-speed serial interfacing from A2
Steve,
Here's something to get you started. I worked on this in comp.sys.apple2
from December 2008 to April 2009 with fantastic assistance from David
Empson, David Schmidt and David Wilson. Search google groups on
comp.sys.apple2 to pull it all up.
Also, I apologize for the 'shotgun' answer, but I'm putting in 7-day weeks
at work right now and am just worthless when I get home at night. Nuthin'
left in the mental tank, if you know what I mean. I 'steal' a few minutes to
look at the apple 2 groups while at work, and thought I could help a little
bit.
This is the macro I wrote for ProTERM 3.1 to enable 115,200 baud support
from the IIGS's built-in SSC serial port. It is posted on Tony's site, but I
know _one_ of my comments to the code there is incorrect. (I'll fix it,
Tony).
I also wrote a ProTERM 3.1 macro for 115,200 baud support from the Super
Serial Card, but I never got a response for my request for testers so I
never released it.
Anyway, mainly look at the comments to determine what is required to do the
comm to extract what you need. You may even want to activate the macro from
within ProTERM and 'Visit the Monitor' to get the assembly listing, as well.
Also, check out all the posts leading up to the macro to get a feel for what
is needed, as well as taking Brendan's suggestion of checking out David
Schmidt's ADTPro source code.
FWIW, ProTERM 3.1 on a 7/32 Zipped IIGS does great at 115,200 for Zmodem
Transfers. It has trouble, though, keeping the screen properly updated at
that speed.
FWIW2, Lancaster's bare metal serial driver was 57,600 baud, and, as you
said, it used the game paddle port. I've got it _somewhere_. How's that for
'outside the box'?
Hugh...
==========================================================================
ProTERM 3.1 High-Speed 115,200 Baud SCC Serial Port Macros
by Hugh Hood / April 29, 2009 (one comment corrected July 17, 2010
==========================================================================
*
*
OPTION-h (lc): Restores available baud rates to ProTERM defaults.
*
@@h
BP 0
IF (ANd !(EQual (MEm 2385), 57), !(EQual (MEm 2385), 56)), {NOte
"This macro is only for use with the Zilog 8530^m"+
"SCC Serial Ports built into the Apple IIGS." EXit}
NOte "This macro restores the available baud rates to the ProTERM
defaults.^m^m"+
" To invoke a fixed 115,200 rate, use the <Option><Shift><H>
macro.^m^m"+
" Press ESCAPE to cancel."
IF $w, {EXit}
* If they cancel <ESC> exit *
IF $d, {KEy "^["} * Leave Editor *
IF (EQual (MEm 2385), 57), {MEm 2398,"D0"}
* Source clock from Baud Rate
Generator for Printer Port -
Channel B / $C039 SCC WR 11 *
IF (EQual (MEm 2385), 56), {MEm 2398,"50"}
* Source clock from Baud Rate
Generator for Modem Port -
Channel A / $C038 SCC WR 11 *
MEm 2388,"01"
* Enable Baud Rate Generator
SCC WR 14 *
MEm 2512,"4745444C4F4D"
* Set 16x Clock Mode Multiplier
*
MEm
9162,"3131302020333030202031323030203234303020343830302039363030203139323030
33383430303537363030"
* Set Baud Rate List to
Default Rates *
DO "online:parameters","[ok]"
* Bump ProTERM to accept
changed values *
JSr 2355
* Bump Zilog SCC to accept
changed values *
EXit
*
OPTION-H (uc) : Changes baud to a fixed, 115,200 rate.
*
@@H
BP 0
IF (ANd !(EQual (MEm 2385), 57), !(EQual (MEm 2385), 56)), {NOte
"This macro is only for use with the Zilog 8530^m"+
"SCC Serial Ports built into the Apple IIGS." EXit}
NOte " This macro changes the baud to a fixed 115,200 rate.^m^m"+
"To restore default settings, use the <Option><h> macro.^m^m"+
" Press ESCAPE to cancel."
IF $w, {EXit}
* If they cancel <ESC> exit *
IF $d, {KEy "^["} * Leave Editor *
IF (EQual (MEm 2385), 57), {MEm 2398,"80"}
* Source clock from RTxC Pin
for Printer Port -
Channel B / $C039 SCC WR 11 *
IF (EQual (MEm 2385), 56), {MEm 2398,"00"}
* Source clock from RTxC Pin
for Modem Port -
Channel A / $C038 SCC WR 11 *
MEm 2388,"00"
* Disable Baud Rate Generator
SCC WR 14 *
MEm 2512,"8785848C8F8D"
* Set 32x Clock Mode Multiplier
*
MEm
9162,"3131352E323131352E323131352E323131352E323131352E323131352E323131352E32
3131352E323131352E32"
* Set Baud Rate List to
115,200 Baud Rate *
DO "online:parameters","[ok]"
* Bump ProTERM to accept
changed values *
JSr 2355
* Bump Zilog SCC to accept
changed values *
EXit
*
==========================================================================
*
in article 58OdnUYYxaV5T9zRnZ2dnUVZ_tCdnZ2d@giganews.com, Steven Hirsch at
snhirsch@gmail.com wrote on 7/17/10 10:57 AM:
> I just _know_ there was discussion of this subject within the last year or so,
> but )&(^ Google doesn't turn up anything. I'm interested in writing a
> filesystem driver to support an A2 as client on a DriveWire server. This is a
> simple protocol developed for the Tandy CoCo, but it's generic enough to be
> adapted for almost any small box.
>
> The CoCo can bit-bang serial communications at 115k baud, so I'm hopeful that
> something like this is possible for some flavor of Apple 2. There was some
> talk of folks achieving hi-speed serial I/O on bus cards (Super Serial card?),
> but cannot find the thread.
>
> Also, some years back Don Lancaster had some sort of bit-banging serial driver
> that used the game paddle connector to talk with a laser printer. Can't find
> any detail on that either, just some peripheral mention of it on the "Ask the
> Guru" website.
>
> What is the overall picture in terms of max serial rate for the various
> machines - slot-based card, //c, IIGS?
>
> Pointers to the pertinent message threads would be great. I have the world's
> worst luck using Google for things like this. No doubt the first person
> reading this will find it immediately and make me feel quite stupid.
>
> Steve