Path: utzoo!utgpu!jarvis.csri.toronto.edu!rutgers!mephisto!gatech!kd4nc!rbdc!barry From: barry@rbdc (Barry Newberry) Newsgroups: comp.sys.apple Subject: Using Hardware to Control Serial Ports Summary: It's almost enough to drive you nuts. Message-ID: <1990Feb24.031856.26733@rbdc> Date: 24 Feb 90 03:18:56 GMT Reply-To: barry@rbdc.UUCP (Barry Newberry) Distribution: usa Organization: N.C. Home for Deranged Programmers Lines: 48 Warning : there is a high probability of maniacs in engineering dept. AAAAAIIIIGHHGHH !!!! (now that I have that out of my system ...) This is dedicated to those of you who had such a nasty time trying to use the IIgs serial ports via Hardware Addresses. Lately, I have spent time disassembling ProTERM and analyzing the code, because it is the best terminal program for the Apple II series (in my opinion). Serial I/O seems to be done with the hardware addresses, as opposed to the Pascal 1.1 protocol. The Super Serial Card is controlled by normal hardware I/O addressing (r/w $C08n,X where X=slotx16). However, the IIgs Serial Port is controlled by addresses $C038-C03B. These addresses DIRECTLY read and write to the SCC 8530 command and data registers. The standard rule for developers is "don't play with the registers." This wouldn't be so bad if there was a map for the standard hardware addresses. The SCC registers should only be used, when all (or at least most) commands and settings for the SCC are understood. This causes trouble when some things can only be done via the registers. Is this madness or genius ? The IIgs serial ports can be completely controlled via the SCC registers. (At least that's what I have been led to believe.) This means that the hardware addresses which are normally used for controlling a given slot are not needed for controlling the serial ports. This, in turn, leaves the serial port slots free for use by other cards, just select "Your Card" for the slot in the Control Panel. Remember when people were talking about being able to use slot 2 as a serial port and something else ? (possible genius, hmmm... ) On the bad side, the hardware addresses $C000-C07F are getting real crowded (in my opinion). There aren't many bytes left for additional softswitches. Then again, you could use a byte (softswitch) to chose between "old" IIgs I/O or "enhanced" IIgs I/O . ( "so, a LDA $C000 ... was that from the Main or the Alternate page ?") So, does anyone have the hardware address map for the Super Serial Card ? I know that $C084-C087, and $C08A have functions :-) ! Also, who do I write for info on the SCC 8530 registers ? P.S. : Thanks, J. B. -- ------------------------------------------------------------------------ Remember, until there is a cure for Assembly Language Brain Fry, there will always be the N.C. Home for Deranged Programmers. .......................................................................