[comp.sys.apple] Serial I/O Help

shubbell@pnet02.cts.com (Steve Hubbell) (06/29/89)

I am hoping someone on the network will be able to help me.  The program I am
writting under Merlin 8/16 is designed to run under GS/OS.  The program needs
to do I/O from both port 1 and port 2 at the same time (both will be modems). 
My problem is this:  the built in firmware is unaccessable under GS/OS or
ProDOS 16 and the text tool kit can't be used because it only supports a
input, output, and error device.

There may be a simple solution to this problem or if someone can pass on some
technical information on how to use the Zilog SCC directly, it would really
help me out.  Thanks in advance.


UUCP: {ames!elroy, <backbone>}!gryphon!pnet02!shubbell
INET: shubbell@pnet02.cts.com

shawn@pnet51.cts.com (Shawn Stanley) (07/01/89)

shubbell@pnet02.cts.com (Steve Hubbell) writes:
>I am hoping someone on the network will be able to help me.  The program I am
>writting under Merlin 8/16 is designed to run under GS/OS.  The program needs
>to do I/O from both port 1 and port 2 at the same time (both will be modems). 
>My problem is this:  the built in firmware is unaccessable under GS/OS or
>ProDOS 16 and the text tool kit can't be used because it only supports a
>input, output, and error device.
>
>There may be a simple solution to this problem or if someone can pass on some
>technical information on how to use the Zilog SCC directly, it would really
>help me out.  Thanks in advance.

First off, I suggest you pick up a copy of the Apple IIgs Firmware Reference
Manual.  It clues you in on the Pascal 1.1 firmware interface routines in
addition to the extended calls you can make.

However, you have already realized that you can't access these routines with
the Text Toolset.  That's not a big problem -- just use the Firmware Call tool
in the Misc. Toolset to make your firmware calls.

It's recommended that you use the GetPortStat extended call to determine
carrier detect, etc.  But if you need to subvert the available calls for any
reason, and keep in mind that I'm not condoning this, the hardware locations
are as follows:

$C038  SCC channel B command register
$C039  SCC channel A command register
$C03A  SCC channel B data register
$C03B  SCC channel A data register

There are "legal" ways to do just about everything with regard to the SCC
ports, as the Firmware Reference will point out.  Some may seem rather
cumbersome or awkward.  The reward is compatability and maybe easier future
development.

UUCP: {uunet!rosevax, amdahl!bungia, chinet, killer}!orbit!pnet51!shawn
INET: shawn@pnet51.cts.com