💾 Archived View for mirrors.apple2.org.za › archive › apple.cabi.net › FAQs.and.INFO › CPUandMore › … captured on 2023-01-29 at 07:44:53.

View Raw

More Information

-=-=-=-=-=-=-

Path: news.weeg.uiowa.edu!news.uiowa.edu!hobbes.physics.uiowa.edu!zaphod.mps.ohio-state.edu!swrinde!news.dell.com!math.utexas.edu!ut-emx!ccwf.cc.utexas.edu
From: foegelle@ccwf.cc.utexas.edu (Michael Foegelle)
Newsgroups: comp.sys.apple2
Subject: Re: SSC - //e - High Speed Modem - ProTERM question
Message-ID: <79953@ut-emx.uucp>
Date: 17 Sep 92 17:10:48 GMT
References: <3310@carroll1.cc.edu>
Sender: news@ut-emx.uucp
Organization: The University of Texas at Austin, Austin TX
Lines: 49

In article <3310@carroll1.cc.edu> acct069@carroll1.cc.edu (Ron) writes:
>I've been having a little bit of trouble with my set up, and am wondering
>if anyone else is having the same problems.  I've been in contact with the
>author of ProTERM v3.0 about this, and would like to comfirm that this
>isn't just my problem before persuing it further.
>
>I'm looking for people that are running a high speed modem ( >9600 ) and a
>Super Serial Card with ProTERM v3.0.
>
>What I'd like to know is if you are having trouble with Zmodem sends to a
>remote system at a transfer rate faster than 9600 bps.  (Hardware flow
>control is needed for this operation)
>
>The problem I'm seeing is that I get errors in the transfer when the CTS
>light flashes.
>
>Greg Schaefer explains the problem as a 6551 problem.  He says that when
>the CTS line goes low, the 6551 chip stops transmitting data, even if it's
>in the middle of a character!

There are two different types of the 6551 ACIA, a 6551 and a 6551A.  The 
difference is in the way they handle the CTS.  The 6551 stops sending 
immediately, even if in the middle of a character, while the 6551A sends the
whole data byte and then stops.  (I believe the 6551 resends the aborted 
character after CTS resumes.)  A 6551A (or 65C51A) only runs about $6 or so
from most electronics dealers, so it's no big deal to go buy one and pull the
offending 6551 and replace it with a 6551A.  I also discovered that some 6551's
tend to for some reason drop CTS internally when you drop RTS.  That means if
your program is telling the modem not to send anything because it's too busy to
receive, then the program can't send anything OUT to the modem either!  I'm
using a 65c51A from GE/Harris/RCA (all the same semiconductor company now) 
which solves all these problems for me.  


>
>Anyone else having trouble?
>-- 
>Ron                      | Lightning Systems, INC. | Apple // Forever!
>acct069@carroll1.cc.edu  | (414) 363-4282  62megs  | Van Halen Rules! 
>carroll1!acct069@uwm.edu | 14.4k HST/V.32bis       | Bill & Ted are cool!

Michael Foegelle
-- 
-------------------------------------------------------------------------------
   Michael Foegelle  |                    |   foegelle@ccwf.cc.utexas.edu
     ____________    |     You want it    |   foegelle@utaphy.ph.utexas.edu
                     |                    |   GEnie:   M.FOEGELLE2
    University of    |        WHEN?       |   Wunderland BBS  (512) 472-0544
   Texas at Austin   |                    |   14.4kbaud, v.32/bis:  Sysop
Newsgroups: comp.sys.apple2.programmer
Path: blue.weeg.uiowa.edu!news.uiowa.edu!hobbes.physics.uiowa.edu!math.ohio-state.edu!howland.reston.ans.net!gatech!newsxfer.itd.umich.edu!nntp.cs.ubc.ca!unixg.ubc.ca!quartz.ucs.ualberta.ca!acs.ucalgary.ca!cpsc.ucalgary.ca!debug!griffin!dockery
From: dockery@griffin.cuc.ab.ca (Sean Dockery)
Subject: Re: Need info re accessing serial card
Message-ID: <Cttr07.3vz@griffin.cuc.ab.ca>
Organization: Griffin Software Development
References: <312eat$ls0@nic-nac.csu.net> <CtLMtG.246@actrix.gen.nz> <31cfcr$orr@kodak.rdcs.Kodak.COM>
Date: Sun, 31 Jul 1994 21:43:18 GMT
Lines: 145

scott@image.Kodak.COM wrote the following article:

| or disable the interrupts.  I am not familiar with the ACIA used on the
| SSC, although I have programmed the 6850 ACIA several times, which
| allows the CPU to tell it to enable/disable all types of interrupts,
| rather than just the transmit/receive interrupts.  If I leave the
| SSC interrupt switch turned on, and I turn the modem power on/off
| while running non-interrupt-aware software, the computer crashes.  The
| CCS 7710 serial card used the 6850 ACIA and so it didn't have this problem,
| but unfortunately it uses DIP switches to set the bit rate.
| 
| Does anyone know of a different serial card which both allows software
| control of the bit rate AND software control of interrupt enable/disable?

I always thought that the DIP switch on the SSC was similar to the power
bar concept for your computer:  It doesn't prevent you enabling interrupts
through software when it is OFF (power bar OFF, computer ON), but it also
doesn't force you to enable interrupts when it is ON (power bar ON,
computer OFF).  Someone please correct me if this is not the case.

Hmmm...  I don't see the problem why everyone is so concerned about
unlikely (or impossible) interrupts.  Consider:

The 6551 is only generating interrupts during the following situations when
both receipt and transmission interrupts are enabled:

	o receipt register full
	o transmission register full
	o DCD state change
	o DSR state change

The first two can be explicitly disabled on the 6551 through software.

The third one will only occur if you are online and your host hangs up on
you, or if you have your modem set to auto-answer and someone phones in
with a modem carrier.

The last one won't ever occur if you are not transmitting.

Remember the following two quirks about the 6551 as well:

	o You cannot send if you have the DTR signal set to false.
	o You cannot receive if the DCD signal is false.

For those with the expertise to understand how to program ACIA's, here is a
little informatin about the 6551 specifically on a Super Serial Card or
inside an Apple //c and Apple //c Plus taken from Leventhal, 6502 Assembly
Language Programming, McGraw Hill, ISBN 0-07-881216-X:

CTRLREG ($C08B + $n0) (read/write)

7	- stop bits
		0 = 1 stop bit
		1 = 2 stop bits, or
		    1 stop bit if word length = 8 bits and parity, or
		    1.5 stop bits if word length = 5 bits and no parity
65	- word length (data byte size)
		0 0 = 8
		0 1 = 7
		1 0 = 6
		1 1 = 5
4	- receiver clock source
		0 = external receiver clock
		1 = internaal baud rate generator
3210	- internal baud rate generator
		0 0 0 0 = external receiver clock x 16
		0 0 0 1 = 50 bps
		0 0 1 0 = 75 bps
		0 0 1 1 = 109.92 bps
		0 1 0 0 = 134.58 bps
		0 1 0 1 = 150 bps
		0 1 1 0 = 300 bps
		0 1 1 1 = 600 bps
		1 0 0 0 = 1200 bps
		1 0 0 1 = 1800 bps
		1 0 1 0 = 2400 bps
		1 0 1 1 = 3600 bps
		1 1 0 0 = 4800 bps
		1 1 0 1 = 7200 bps
		1 1 1 0 = 9600 bps
		1 1 1 1 = 19200 bps

CMNDREG ($C08A + $n0) (read/write)

765	- parity generator
		- - 0 = parity disabled, parity check disabled
		0 0 1 = odd parity
		0 1 1 = even parity
		1 0 1 = mark parity, parity check disabled
		1 1 1 = space parity, parity check disabled
4	- normal/echo mode for receiver
		0 = normal
		1 = echo all received characters
32	- transmitter controls (RTS signal)
		0 0 = transmit IRQ disabled, RTS high
		0 1 = transmit IRQ enabled, RTS low
		1 0 = transmit IRQ disabled, RTS low
		1 1 = transmit IRQ disabled, RTS low, send break
1	- receive IRQ enable
		0 = enabled
		1 = disabled
0	- data terminal ready
		0 = disable receiver/transmitter (DTR high)
		1 = enable receiver/transmitter (DTR low)

STATREG ($C089 + $n0) (read/write -- write causes master reset)

7	- IRQ pending status
		0 = no interrupt
		1 = interrupt has occurred
6	- data ready (DSR)
		0 = DSR low (ready)
		1 = DSR high (not ready)
5	- carrier detect (DCD)
		0 = DCD low (detected)
		1 = DCD high (not detected)
4	- transmission register empty
		0 = not empty
		1 = empty
3	- receipt register full
		0 = not full
		1 = full
2	- overrun error (two receives since last IRQ servicing)
		0 = no overrun
		1 = overrun
1	- framing error (word length mismatch)
		0 = no framing error
		1 = framing error detected
0	- parity error (NOTE: mark and space parity are not checked)
		0 = no parity error
		1 = parity error detected

RDREG ($C088 + $n0) (read only)

TDREG ($C088 + $n0) (write only)

The addresses are the base mapping to the I/O registers on an Apple II
added to the slot in which the card resides multiplied by sixteen.

| Kevin Scott
| scott@image.kodak.com
-- 
Sean Dockery                        |  Tickle us, do we not laugh?
Griffin Software Development Group  |  Prick us, do we not bleed?
dockery@griffin.cuc.ab.ca           |  Wrong us, shall we not revenge?