[comp.sys.cbm] 1200 baud programming

ccastmr@pyr.gatech.EDU (Mark Reed) (10/02/88)

I have written several telecommunications programs for my C-128 (in BASIC and
machine language).  The problem is that 1200 baud does not function properly.
Random characters show up on an otherwise clear line... other programs 
work fine at 1200 baud.  Are the values given in the Programmer's Reference
Guide incorrect?  If so, what are the correct settings?  If not, any other
ideas?

Thanks in advance,

Mark Reed
ccastmr@pyr.gatech.edu

Geoffrey.Welsh@isishq.FIDONET.ORG (Geoffrey Welsh) (10/04/88)

 > From: ccastmr@pyr.gatech.EDU (Mark Reed)
 > Date: 2 Oct 88 06:29:33 GMT
 > Message-ID: <6487@pyr.gatech.EDU>
 >
 > I have written several telecommunications programs for
 > my C-128 (in BASIC and
 > machine language).  The problem is that 1200 baud does
 > not function properly.
 > Random characters show up on an otherwise clear line...
 > other programs
 > machine language).  The problem is that 1200 baud does
 > not function properly.
 > Random characters show up on an otherwise clear line...
 > other programs
 > work fine at 1200 baud.  Are the values given in the Programmer's
 > Reference
 > Guide incorrect?  If so, what are the correct settings?
 >  If not, any other
 > ideas?
 
   It's not so much that the numbers given are wrong... they're on 

the nose (theoretically). The problem is that the drivers Commodore 
uses are simply too inefficient to function properly at that speed 
(this is the result of Commodore having to duck a bug in the 6526 CIA; 

still, it could have been done better).
 
   Steve Punter (author of WordPro, BBS64, and the "Punter" protocols) 

released a kludge years back that consisted of tuning the send & receive 
timer values separately. He found that adjusting the receive timer 
by a factor of .966 at 1200 bps (about .90 at 2400) helped clear things 
up - as long as you weren't sending & receiving at the same time.
 
   About a year and a half ago, I published (in the Toronto BBS community) 

a completely new driver for the C64 that handles 4800 bps half duplex 
(only 3600 full duplex). The design was similar to the drivers used 

in PaperClip II and III's telecom overlay, and the code was adapted 
by Chris Smeets for use in his 9600 bps terminal for the C128.
 
   So the solution lies, not in using the correct divisor numbers, 

but in either kludging or (preferrably) re-writing the drivers.
 
   If there is any interest, I will post to this newsgroup the original 

document by Steve Punter outlining his approach.
 
   Geoff ( watmath!isishq!izot )
{


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