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: Organization: Griffin Software Development References: <312eat$ls0@nic-nac.csu.net> <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?