[comp.sys.cbm] Rs-232 standard?

aliu@sal57.usc.edu (Alejandro Liu) (01/26/89)

This posting is because of all those messages regarding communications
that I have seen here.  I would like to know the following:
How does the Rs-232 standard is implemented in the Commodore?
What is the Rs-232 standard?
What's the difference between the Standard Rs232 and Commodores Rs232
(Besides the obvious voltage levels)?
Also, I while searching for information about the Commodore
implementation of the Rs232, I came across a comment saying that
Commodore wanted to keep the Configuration register compatible with
the UART chip.  What is this UART?

Any help would be appreciated



 
                    aliu@nunki.usc.edu (Alejandro Liu) 
(Simple .signature, $CHEAP$) 

fred@cbmvax.UUCP (Fred Bowen) (01/27/89)

In article <2471@nunki.usc.edu> aliu@nunki.usc.edu (Lord Bane) writes:
>How does the Rs-232 standard is implemented in the Commodore?
>What is the Rs-232 standard?
>What's the difference between the Standard Rs232 and Commodores Rs232
>(Besides the obvious voltage levels)?
>Commodore wanted to keep the Configuration register compatible with
>the UART chip.  What is this UART?

The C64/128 kernel implements the RS-232 interface via software, via the
user (parallel) user port.  The rest of the typical RS-232 lines (RTS, CTS,
DTR, DSR) are implemented only if the channel is configured for x-line (as
opposed to 3-line) mode.  The C64/128 Programmer's Reference Manuals describe
this in detail.  The "UART" emulated is a 6551.
--
-- 
Fred Bowen			uucp:	{uunet|rutgers|pyramid}!cbmvax!fred
				arpa:	cbmvax!fred@uunet.uu.net
				tele:	215 431-9100

Commodore Electronics, Ltd.,  1200 Wilson Drive,  West Chester,  PA,  19380

jgreco@csd4.milw.wisc.edu (Joe Greco) (01/27/89)

In comp.sys.cbm article <2471@nunki.usc.edu>, aliu@nunki.usc.edu (Lord Bane) wrote:
>How does the Rs-232 standard is implemented in the Commodore?

RS232 is marginally implemented on the 64/128(/VIC...)  It was an
attempt to cheaply provide a means to connect a 300 baud modem or
maybe a printer, and it succeeded at that.  However, it begins to fail
at higher speeds, and the X-Line handshake isn't all that hot if you
really want to be picky.

>What is the Rs-232 standard?

RS232 and standard in the same sentence.  RS232 is something that
computer hobbyists use in place of the Rubik's Cube (sp?)....  :-)

>Also, I while searching for information about the Commodore
>implementation of the Rs232, I came across a comment saying that
>Commodore wanted to keep the Configuration register compatible with
>the UART chip.  What is this UART?

That would be the 6500 class UART chip, the "6551 ACIA."  It's only
similar....  the general layout of the command and control registers
would remind one of the C64.  However, all the interesting goodies on
the 6551 were not implemented on the 64.
--
jgreco@csd4.milw.wisc.edu		Joe Greco at FidoNet 1:154/200
USnail: 9905 W Montana Ave			     PunterNet Node 30 or 31
	West Allis, WI  53227-3329	"These aren't anybody's opinions."
Voice:	414/321-6184			Data: 414/321-9287 (Happy Hacker's BBS)

izot@f171.n221.z1.FIDONET.ORG (Geoffrey Welsh) (01/28/89)

 > From: aliu@sal57.usc.edu (Alejandro Liu)
 > Message-ID: <2471@nunki.usc.edu>
 >
 > How does the Rs-232 standard is implemented in the Commodore?
 
   Fred (Bowen) covered that well enough.
 
 > What is the Rs-232 standard?
 
   Formally known as the EIA (Electronics Industry of America) Recommended 
Standard (RS) number 232C, it specifies a 25-pin "D"-shaped connector and 
gives approximate meaning to most of its lines, and specifies signal voltages 
to be used on those lines.
 
   In the real world, connecting two devices via an RS-232C cable depends on 
how each device implements the approximate meaning implied by the names give 
to the lines.
 
   As Fred said, one can usually get away with three lines: transmit data, 
receive data, and ground (needed for electrical reference, but useful for 
shielding). However, modems (especially the high-speed variety) and printers 
need the other lines to provide control and information.
 
 > Also, I while searching for information about the Commodore
 > implementation of the Rs232, I came across a comment saying that
 > Commodore wanted to keep the Configuration register compatible with
 > the UART chip.  What is this UART?
 
   UART = Universal Asynchronous Receiver/Transmitter. Actually, Joe Greco is 
correct in pointing out that the ROMs emulate the 6551 ACIA (Asynchronous 
Comminucations Interface Adapter - technically it's not a UART because it is 
NOT "universal", principally because it can work only at specific speeds while 
true UARTs can be set to any speed by a divider register). The 6551 emulation 
is close but not exact, and the code generates correct timing only at speeds 
under 800 bits per second (C64). Although a kludge documented by Steve Punter 
(I posted the article in this newsgroup a few weeks back, I think) allows 
passable 1200 bps and precarious 2400 bps, higher speeds and reliability 
require carefully written and optimized software drivers.
 
   I'm actually very saddened that Commodore decided not to include a real 
6551 in the C64. Although the designers had no way of knowing how many C64s 
would end up connected to modems, the C64 was at the forefront of bringing 
modems into the home, and having a 6551 and less demanding serial disk timing 
would have done much to enhance the C64's position as "the communicating home 
computer".
 
===========================================================================
Internet:  Geoffrey.Welsh@f171.n221.z1.fidonet.org | 66 Mooregate Crescent
Usenet:    watmath!isishq!izot                     | Suite 602
FidoNet:   Geoffrey Welsh on 1:221/171             | Kitchener, Ontario
PunterNet: 7/Geoffrey Welsh                        | N2M 5E6 CANADA
BBS:       (519) 742-8939 24h 7d 300/1200/2400bps  | (519) 741-9553
===========================================================================
|  "I don't need a disclaimer. No one pays any attention to what I say."  |
===========================================================================
 


--  
 Geoffrey Welsh - via FidoNet node 1:221/162
     UUCP: ...!watmath!isishq!171!izot
 Internet: izot@f171.n221.z1.FIDONET.ORG

jgreco@csd4.milw.wisc.edu (Joe Greco) (02/01/89)

In comp.sys.cbm article <1445.23E5B7E7@isishq.FIDONET.ORG>, izot@f171.n221.z1.FIDONET.ORG (Geoffrey Welsh) wrote:
>under 800 bits per second (C64). Although a kludge documented by Steve Punter 
>(I posted the article in this newsgroup a few weeks back, I think) allows 
>passable 1200 bps and precarious 2400 bps, higher speeds and reliability 
>require carefully written and optimized software drivers.

Who IS the actual author of the "1200 kludge"?  According to other
knowledgeable local sources, it's NOT Steve, and this is an item that
I have heard repeatedly.

Software stinks for higher than 1200 baud operation.  Too much CPU
overhead.  :-)

>   I'm actually very saddened that Commodore decided not to include a real 
>6551 in the C64. Although the designers had no way of knowing how many C64s 
>would end up connected to modems, the C64 was at the forefront of bringing 
>modems into the home, and having a 6551 and less demanding serial disk timing 
>would have done much to enhance the C64's position as "the communicating home 
>computer".

I'm sure YOU realize that the C64 was also intended to be
"inexpensive" ... but I will include the following for everyone else's
benefit.  First, I have heard that there was some problem obtaining
6551's when the 64 was originally designed (they were quite
expensive).  Second, making the User Port an ACIA port would have
lessened it's flexibility (it couldn't have been used as a parallel
port).  Third, nobody ever imagined that people using the 64 (/VIC/et
al) would ever be rich enough to afford more than a 300 baud modem.  I
still remember a time when the 1600 cost as much as the VIC itself.
:-)  Therefore the software fudge was adequate (ROM is cheap).
Fourth, nobody ever really imagined that anybody would ever CARE about
telecom.  (gee, a fellow student just WROTE me a nice long man entry,
ah the fun of UNIX).

All of which kinda make sense, unless one wants to do 9600 on the 64!

:-)
--
jgreco@csd4.milw.wisc.edu		Joe Greco at FidoNet 1:154/200
USnail: 9905 W Montana Ave			     PunterNet Node 30 or 31
	West Allis, WI  53227-3329	"These aren't anybody's opinions."
Voice:	414/321-6184			Data: 414/321-9287 (Happy Hacker's BBS)