[comp.sys.apple] CCS7710 - Apple //e interaction

CMDNESPG@UIAMVS.BITNET ("Steven E. Nelson") (04/04/88)

  >
  >2441 (of 2504) MAIL_RELAY Mar. 30, 1988 at 19:35 CT (1026 characters)
  >
  >Received: by NDSUVM1 (Mailer X1.25) id 7020; Wed, 30 Mar 88 19:35:27 CST
  >Date:         Tue, 29 Mar 88 21:05:07 GMT
  >Reply-To:     Info-Apple@BRL.ARPA
  >Sender:       INFO-APP Info-Apple List <INFO-APP@NDSUVM1>
  >Comments:     Warning -- original Sender: tag was info-apple-request@BRL.ARPA
  >From:         Ted Medin <medin@cod.nosc.MIL>
  >Subject:      Help with ccs 7710 serial card
  >Comments: To: info-apple@BRL.ARPA
  >To:           WCC Participate Redistribution <WAPPLEPB@UIAMVS>
  >
  >
  > We have been having trouble with a ccs 7710 serial card on a //e.
  >Every other line the first character of the line gets duplicated.
  >Were runing at 1200 baud and the same card & kermit work fine on a
  >//+. We have tried changing most everything so were fairly sure its
  >not hardware. Since the card is ancient and was probably produced
  >before the //e existed doesn any one have any light to shed on our
  >problem. Our current thinking is the 7710 is hardware incompatable
  >with the //e. BTW the driver for the 7710 is interupt driven.
  >Any ideas anyone?
  >
  >

Ted,
     I doubt your CCS7710 is incompatible.  You didn't say, but I'll
assume that your using 80-col display.  The Apple isn't even able
to keep up at 1200 baud in 40 col mode without interrupts.  Scrolling
up 24*40 chars takes longer than 8.3 millisec which is the rate chars
are arriving at 1200 baud (if I did my math right).  On an Apple //e
in 80 col mode, you have two 40 col screens to scroll - one in main
memory and one in aux memory.  Using interrupts, all is fine for the
scrolling of the 40 col in main memory, BUT Apple software engineers
foolishly disable interrupts for the entire scroll in aux memory -
yes, you are essentially running like a 40 col II+///e without
interrupts enabled.  1200 baud is too fast a data rate.

     Now good terminal software has to overcome this problem by handling
the screen I/O better.  My personal approach is to check if scrolling
is about to occur if I write this char, if so, scroll the screen
myself so Apples firmware doesn't.  In my scrolling routine, I
disable interrupts only for one row at time,reenable interrupts while
I prepare to scroll another row, then disable and scroll, reenable, etc.
Maybe clumsy, but it works.  Of course, one could write one's own
screen routines and not use the firmware at all - more powerful, but
a lot of extra work.

     In short, I think your CCS card and //e are fine.  The duplicating
or dropping of chars at beginning of line is a symptom of missing
chars because interrupts are not used, or disabled for too long a time.