home *** CD-ROM | disk | FTP | other *** search
/ 8bitfiles.net/archives / archives.tar / archives / genie-commodore-file-library / Information / 2400.AND.UART.TXT < prev    next >
Encoding:
Text File  |  2019-04-13  |  20.6 KB  |  390 lines

  1.  ************
  2. Topic  17 Date: Thu Dec 19, 1985
  3. DEB [*Sysop/deb!*]
  4. Sub: 2400 baud and UartART
  5. 2400 baud on a C-64...?!
  6.  ------------
  7. CHARRINGTON
  8. Can anyone pass on some advice on the US Robotics Courier 300/1200/2400 modem?
  9. I have one on order...and could use some ideas as to what is a GOOD PD term pgm
  10. for it like Comm Term III etc.
  11.  ------------
  12. LAPTOPS
  13. I & a friend both have US Robotics Courier 2400 modems. I've  never had any
  14. trouble with it & I use many of the  arcane S register commands.  Its command
  15. set is much simpler than the Hayes 2400. (It doesn't let you program European
  16. guard tones, CCITT 1200bps, or synchronous operation.) I love the x6 fast
  17. dialing mode & the > to redial 10 times.  The US Robotics is the modem used by
  18. the 5 local 2400 bps BBSs that I know.
  19.  ------------
  20. DEB
  21. Weeel, Courtney, first item on the agenda to note is that a C64 will not *work*
  22. at 2400 baud.  Some of my favorite 1200 baud PD terminals include XMOBUF, Cand
  23. COMMTERM.  But Sixth Sense really spoiled me &`I rarely use  anythin but 6th
  24. or BobsTerm Pro anymore.
  25.  ------------
  26. CHARRINGTON
  27. Hi Deb! I picked up a US Robotics Courier & seems to work great..at 300 & 1200.
  28. Question: why won't the 64/128 work at 2400?  I had thought 9600 was the top
  29. end for data xfer.  Don't tell me I gotta buy an Amiga to get 2400?!?  There's
  30. a C64/128 BBS in Calif that is planning to go 2400 in about 2 weeks.  I thought
  31. the sysop said he got it all worked out.
  32.  ------------
  33. DEB
  34. Courtney...the C-64/128 is running as HARD & as FAST as it can at 1200. Unless
  35. someone completely re-writes the RS-232 drivers/kernal, 2400 baud is not
  36. possible.  So far, no one has written it that I know of.  It just *might* be
  37. possible on the c128 in the New Version of Sixth Sense that Rick Sterling is
  38. writing, I really know, but could ask.
  39. Let's hear it for CBM's Non-UART!!!
  40.  ------------
  41. CHARRINGTON
  42. Please don't be upset...but I up'd a small effort on my part that runs at
  43. 300/1200/2400 baud. It should show up in the C64 Telecommunications library in
  44. a couple of days. It's called 2400 term & it supports punter or xmodem at all
  45. 3 speeds. It does show a few line errors at 2400 when calling long distance,
  46. but it successfully downloaded a 73K program between Hawaii & California at
  47. 2400.  Maybe someone can improve upon it a bit.  It's pretty simple, but I was
  48. working more to get it completed than get it pretty.  Now!  Let's see if we can
  49. get to 4800 baud!!! Courtney
  50.  ------------
  51. LFRANKLIN [Mr.Wizard]
  52. Why doesn't someone come up with a little UART board for the 64/128 with an
  53. on-board baud-rate generator & rs232 level conerters preferably.  It  shouldn't
  54. be too difficult for a halfway decent hardware type.  Of course, it wouldn't
  55. help those with Commodore modems, but then again, the present hardware doesn't
  56. handle anything over 1200 anyway (at least not reliably) so commodore will
  57. probably never come out with a 2400 baud modem.  But is sure would be a help
  58. for those with those non-commodore modems!  If anybody is interested, I think
  59. I still have 1 or 2 prototyping boards for the expansion socket on the 64/128.
  60.  ------------
  61. CHARRINGTON
  62. I've done a bit more work on the 300/1200/2400 terminal prograam for the c64.
  63. It's been uploaded into the telecommunications DB under "300-2400 term".  Not
  64. Not completely full featured but looks a lot better than the original work.
  65.  ------------
  66. DEB
  67. Courtney...I'll make that term program available right now.  Thanks!  You
  68. ACTUALLY got 2400 baud on the 64 using the existing drivers???!
  69.  
  70. LF...YOU have a board that replaces the UART?  Do tell us more..!!!
  71.  ------------
  72. Message  10 Date: Thu Dec 19, 1985
  73. LFRANKLIN [Mr.Wizard]
  74. DEB...no, that's not what I said...what i said (or at least meant to say is
  75. that I have a couple of Prototyping boards for the C64 expansion jack in the
  76. back...these are perf boards with a card-edge connector to 1 side that plugs
  77. into the expansion connector on the back of the C64 or 128.  Hardware types
  78. can use these to create prototype boards from just looking at the Schematics of
  79. the 64, I am thinking that it should not be too difficult to create a UART
  80. board for the 64/128...of course, to talk to the board you'd have to talk
  81. directly to the hardware, or put in patches to the Kernal RS232 routines to
  82. talk to the UART..but this would be the only RELIABLE way I know of to get
  83. speeds above 1200 baud....any hardware types out there who want to try it, they
  84. are available from Boreas Products in Colorado Springs, Co for 15.95 (the board
  85. is 6.5 by 4.5 inches) or 12.95 (for a 4.5 by 4 inch version) &, for those who
  86. are interested, the plated thru holes have .100 (vert) by .300 (horz) inch
  87. spacing. Their number in Colorado is (303) 593-1274.  I'd try to build 1 myself
  88. but who has the time?
  89.  ------------
  90. Message  12 Date: Thu Dec 19, 1985
  91. DAFORMAN
  92. I don't know about the C64, but the C128 in FAST mode can do 2400 baud. UART
  93. boards for C64 and C128 already exist in all of the MIDI music interfaces. Midi
  94. is VERY fast, & the software UART in the computers doesn't have a chance of
  95. keeping up so all the MIDI interfaces include a real live hardware UART.  I
  96. don't know if it would be possible to  use a MIDI interface to work with a
  97. modem, but it is evidently no big problem to get very high baud rates on a c64
  98. or C128 by adding some hardware. Dean
  99.  ------------
  100. Message 15        Sun Jan 12, 1986
  101. FAFHRD [Fafhrd]
  102. Has anyone seen any Joystick modems for the 64?  I seem to recall the Atari
  103. being able to handle high bps via joystick port.  Any comments?  FAF
  104.  ------------
  105.  ------------
  106. BOBR [Bob Retelle]
  107. Actually, the real reason for the Atari modems which attaach to the joystick
  108. ports is to avoid having to buy the Atari interface module, which is somewhat
  109. like the US/ART board being discussed, but costs $100-$200...
  110.  
  111. With the interface module, speeds up to 19K  baud can be used.  The joyports
  112. are parallel, so the serial/parallel conversion has to be done in software, but
  113. that's no real problem.  Which all goes to say there probably wouldn't be much
  114. point in a modem which goes in via the joyports on the 64.  When you said
  115. 'joystick modem', I thought you were referring to the actual terminal software!
  116.  
  117. My favorite program lets me use a JOYSTICK to control the terminal, so I can
  118. just sit back and use the stick to CTRL S, CTRL Q, RETURN, CTRL O & whatever
  119. else... I only have to  use the keyboard to actually enter text.  & at 1200
  120. baud, it's like playing a video game to keep up with the screen!
  121.  ------------
  122. SPLITR [SpLiT]
  123. At one point CBM stated flatly that the C64 would not function at 1200bps,
  124. hackers proved them wrong.  They also said it would not work at 2400 bps, &
  125. again the programmers made it happen.  But beyond 2400bps is not possible with
  126. the hardware (or lack thereof) present.  Mainly because the c644 uses a
  127. Soft-U/ART.  What do you expect? But a hardware U/ART inerface is not only
  128. possible, not only been done (MIDI, as stated earlier), but I am designing a
  129. multi-port expansion for the C64.  This little baby is a computer in it's own
  130. right, & is expandible to 16 ports.  We all know the C64 is not multitasking,
  131. but a tricky programer can make it multiuser if only he could get more than 1
  132. stuck in the back of the thing.  Don't belive me?  Diversi-dial for the Apple
  133. ][  multiuser but not multitasking of course.  With this in place & with the
  134. software drivers I am writing, a multiuser RTC or CB or Multiuser game (any
  135. maybe a multiuser BBS also) can be rigged.  Since the expansion itself is a
  136. self contained computer, it handles all I/O (using smart software) & lets the
  137. C64 do what it wants until it requests  something from the expansion.  The
  138. system has RAM & EPROM (initilizing) and is capable of running the 6 U/ART
  139. system independent of the C64. At this time, most of it is on paper still.  The
  140. testing prototypes have proved it is possible.  My concern is that the system
  141. will be more expensive in the end than getting something that could do it
  142. already.   But in the interest of hacking out the C64, how can I resist?
  143. SpLiT/
  144.     /iNfInItY
  145.  ------------
  146. Message 19        Sat Jul 05, 1986
  147. LAPTOPS
  148. It says in different messages here that there IS 2400 baud code & then again
  149. that there ISN'T 2400-baud code. If any of you DEVELOPERS are interested, I've
  150. got 2400 baud code THAT WORKS.  Even in full-duplex (both ways at once), it
  151. works fine & doesn't slobber all over the machine.  The catch is that it's not
  152. free.  After all, this is the age of Reaganomics (you only get what you pay
  153. for), & I'm not a tenured professor.
  154. Paul Schick (608) 258 7065
  155.  ------------
  156. Message 20        Sat Jul 05, 1986
  157. SURVIVOR [S. Gutknecht]
  158.  There are some FREE 2400 baud terminal programs, they are not loaded with
  159. features, but they DO work.  ML is the secret.
  160.  
  161. Question:  what are the 2 open bytes for 2400 that are a TRUE 2400?^
  162.  ------------
  163. CHARRINGTON
  164. There is a 64 terminal program on GEnie that suppots 300/1200/2400.  I wrote
  165. it. It ain't fancy, but it works.  Maybe someone will add some bells & whistles
  166. on it. It's called '2400 term'  Courtney
  167.  ------------
  168. Message 22        Tue Jan 13, 1987
  169. PFOUNTZ [Greg]
  170. With the prices rapidly dropping on 2400 baud modems ( Ijust found 1 for $229),
  171. I feel we are going to see more & more c64 owners wanting to move up to 2400.
  172. I just reread the message thread in this topic (no messages posted since last
  173. summer) & last comment made was that it does work, but not as good as it
  174. should.  When sending "AT" commands to the modem, quite often the command will
  175. garble and/or not take.  Makes autodialing at 2400 a real chore.  Once online,
  176. communications is pretty good.  I have noticed about 25% retrys while
  177. receiving a file using XMODEM but zero errors while sending.  Guess this kind
  178. of confirms the 64 is overtaxed at 2400??  I realize that a C64 running at
  179. 1 meg will have a hard time buffering text at that speed & that a 25K or less
  180. capture buffer (common in most terms for the 64) will fill up in the blink of
  181. an eye.  All I am trying to do is get a stable 2400 baud (no garbage when
  182. sending the AT commands), then we can worry about keeping up with the flow.
  183.  
  184. Anyway, just thought I would ask again, has anyone made any more progress
  185. since Charrington's 300-2400 TERM??  I see the same errant characters when
  186. sending AT commands using 300-2400 TERM as I do with the term in my BBS running
  187. at 2400.  I am hoping to get the baud rate clean enough to make it a regular
  188. part of Color 64 BBS.  But I need to get a more stable 2400 baud.  Any
  189. information is appreciated.
  190.  
  191. Also, am interested in any hardware "UART" add-ons for the 64 that would help.
  192.  ------------
  193. Deb
  194. I have used both BTPro 128 & Sixth Sense 128 at 2400 baud..flawlessly.
  195. Will keep my eyes open, Greg, I agree with ya, its going to be more & more
  196. affordable soon, & I'm glad to know that someone is working on a fix for it
  197. now.
  198.  ------------
  199. Message 24        Wed Jan 14, 1987
  200. KEVIN-S. [KeS]
  201. Darn, I remember someone that was putting out an interface for the expansion
  202. port that was to include a "real" UART...back in the new products section of 1
  203. of the popular Commodore mags last spring maybe?  Of course, then you have to
  204. program something to look for it there.
  205.  ------------
  206. Message 28        Wed Dec 16, 1987
  207. S.PROCTOR1
  208. Greg: I don't know what you've tried with the 2400 baud, but I hve a few
  209. suggestions.  I found the VIC-20 appears to handle HS much better than the C64.
  210. I think the reasons are both the VIC generates 0 wait states, & the nested MNI.
  211. On the C64, I occasionally get garbage when typing & receiving data at once,
  212. like an echo, and most commonly during a wordwrap.  Usually I get 0 error
  213. transfers, with my C-64.  I've found 1 problem with this nested NMI, the RS232
  214. gets disabled if I hit RESTORE instead of RETURN, requiring a COLD START to
  215. restore this. It may help to rewrite the c64 routines to RAM, using no
  216. variables, ie. eliminate the variable stop-bits, data-bits, & parity. This will
  217. eliminate the constant checking of RAM, but may not add alot of time, I haven't
  218. looked into this too closely, yet. It wouldn't be hard to intall a UART in the
  219. C-64, but you will have to avoid the I/O lines, as many cartridges use them
  220. (between my TURBO LOAD&SAVE, & second SID, its fully addressed, not to mention
  221. IEEE and RAM use them.) This would mean multiplexing the high data lines with
  222. the chip-select of something, like a SID or CIA, it doesn't matter, as long as
  223. your routine knows where it is.  This will eliminate the mirrors, for those
  224. programs that insist on using them, to try 6 hide what its doing, for a simple
  225. protection scheme. I hope I have given you some ideas to work with.  I haven't
  226. worked too hard in this area, but with a BBS I'm working on I had to consider
  227. these problems, & possible solutions I could use in the future.  Steve Proctor
  228.  ------------
  229. Message 29        Thu Feb 23, 1989
  230. DEBS-GUEST
  231. I've developed both single-port & multiport UART boards for both the expansion
  232. port and the user port
  233.  
  234.   The real trick was getting 'true' 8-bit control with the user port.  With
  235. that done, as you suspect, the rest was pretty cut & dried.  You can check on
  236. the progress of those boards as a formal product with the boys at SOFTECH in
  237. Lexington, or author Bill Brier of Chicago.  Both Softech & Bill are working on
  238. different releases of the same devices.
  239.   The four-port device can support 4 ports SIMULTANEOUSLY, in full-duplex at
  240. speeds in excess of 2400 baud & can suppot a composite rate of over 11,000
  241. (thousand) baud.  The single-port version will do ROCK SOLID 17,800 baud...
  242. I use that 1 myself in IBM mainframe to CBM 64 interfacing.
  243.      Lloyd Sponenburgh
  244.  ************
  245. Topic 101       Sun Jan 22, 1989
  246. P.HALTON
  247. Sub: 1200 baud xmodem upload problems
  248.  
  249. another solution to 1200 xmodem
  250. uploading problems you don't have to
  251. adjust the baud rate factor
  252.  ------------
  253. Message 1         Sun Jan 22, 1989
  254. P.HALTON
  255. A few weeks ago I started using a 1200 baud modem (the commodore 1670).  I
  256. adjusted the baud rate factor & opened the modem channel with the settings
  257. open2,2,0,chr$(0)+chr$(0)+chr$(61)+chr$(1).  Everything worked great except
  258. when I tried to upload using XMODEM. I was told that it was a matter of fine
  259. tuning the BRF, but no matter what settings I tried, I couldn't get uploading
  260. to work.
  261.  
  262. I have discovered that the problem is not with brf.  The problem is caused by
  263. the number of stop bits appended to the end of each character frame.  More
  264. precisely, the lack of a sufficient number of stop bits.  Here is my reasoning.
  265.  
  266. When you send a byte to the modem it is stored in the UART transmit queue.  The
  267. UART then sends it to the modem bit serially preceded by 1 start (sync) bit, &
  268. followed by 1 or more stop (idle) bits.
  269.  
  270. The start or 'sync' bit has the opposite polarity of the stop bits, & is used
  271. by the modem to get in step (synchronize) with the UART.  This synchronization
  272. allows the modem to correctly receive the subsequent data bits.  Stop bits are
  273. appended to the data bits to insure that the next start bit will be seen by
  274. the modem.  The stop bits act as a  sort of 'line idle' state.
  275.  
  276. Unfortunately, at 1200 baud on the commodore's software UART, 1 stop bit does
  277. not seem to be enough to allow the UART & modem to stabilize in the idle state.
  278. Thus, the next 'sync' bit is not always seen by the modem synchronization goes
  279. right out the window.  This results in garbled information arriving at the
  280. modem from the UART.
  281.  
  282. This synchronization problem doesn't show up when typing characters at the
  283. keyboard,because, no matter how fast you type, the UART is always way ahead of
  284. you, & thus there is always alot of idle time between characters.
  285.  
  286. Uploading often fails because most terminal programs send XMODEM blocks to the
  287. UART transmitt queue in 1 qiocl blast.  There is no delay between characters of
  288. the block, & thus, the only idle time is provided by the single top bit at the
  289. end of each character frame.
  290.  
  291. If you are not able to modify the coding of your terminal software, the only
  292. suggestion I have is to try setting it for 2 stop bits, or more if possible.
  293. If you are writing your own terminal program though, try sending the XMODEM
  294. blocks byte by byte, allowing the transmitt queue to empty briefly between
  295. bytes.
  296.  
  297. The following code segment has the effect of appending an additional 10 or so
  298. stop bits to each character frame.  A little math will bear this out.
  299.  
  300.  ldx #2 ;modem file # 2
  301.  jsr chkout ;connect output channel to modem
  302.  lda #0
  303.  sta 162 ; clear low byte of software jiffy clock wait lda 162 ;let 1/60
  304. second elapse before sending a byte to the UART
  305.  cmp #1
  306.  bcc wait
  307.  
  308.  ldy #0
  309.  sty 162 ; reset timer for next byte
  310.  lda (251),y ;assumes that block is pointed to by 251, and is stored ;
  311. beginning at an even page boundary
  312.  
  313.  jsr chrout ; send to UART
  314.  inc 251 ; set pointer to next byte
  315.  dec bytecount ; assumes that 'bytecount' holds # of bytes left to send
  316.  bne wait
  317.  jsr clrchn ; reset default I/O channels
  318.  rts
  319.  
  320. At 1200 baud, the UART can transmit roughly 20 bits per sixtieth of a second.
  321. The above routine passes it 1 byte (10 bits with framing) per sixtieth of a
  322. second.  The remaining 10 bit capacity of this interval is idle.  This 10 bit
  323. idle time after each byte insures that the modem will 'see' the start bit of
  324. the next character frame, & properly synchronize with the UART.
  325.  
  326. The trade off here is that it will take roughly 2.4 seconds to get the entire
  327. XMODEM block into the transmit queue, cutting the upload speed in half to about
  328. 600 baud.  However, it is still a lot better than 300 baud, but just as
  329. reliable.
  330.  
  331. Even if this theory is right off the wall, it sounds pretty good to me.  More
  332. importantly, the introduction of brief delays between charaacters works.  I
  333. would welcome any discussion on the matter.
  334.  ------------
  335. C128.CPM [Bill]
  336. At 2400 baud, a 1K block takes about 1 second (guessing) to xmit, with a short
  337. ACK, then another block.  Your brief delay would slow this down too much.  You
  338. are compensating for the lack of a hardware UART.
  339.  ------------
  340. H.HERMAN1
  341.  PH,   The stuff you posted is really out of my league.  However, you keep
  342. referring to a UART, which is non-existant in both the 64 & 128.
  343.  I recall having read postings while Bob Lentini had his support BBS running,
  344. about how difficult he found writing code to compensate for the lack of the
  345. UART. At one time he mentioned that half the time he spent on writing BTP128
  346. was dealing with this prob.  He seems to have done very well, since I
  347. routinely up/download & post messages at 2400 baud wtih BTP128, without the
  348. need to add nulls, delay timing or even fool around with the hi/low trim
  349. settings.
  350.  
  351.  [BTP seems limited to 2400, but I have read postings by Fred Bowen that he
  352. has his 128 running a null-modem at 4800 baud, & I have seen postings by others
  353. that have achieved 9600.  9600 baud seems to be the absolute limit, however.
  354. So, even without a UART, some nice transmittal speeds can be accomplished thru
  355. code control.]
  356.      Now that I have said all this, watch some line noise come in & mess up
  357. this posting.....   :(
  358.  ------------
  359. WC.COLEMAN [GeoOp]
  360. 4800 baud is possible in fast mode if the term is pure ML (but it's a near
  361. thing)! 9600+ is possible for printer dumps & such where you are only going in
  362. one direction & little processing is involved.  -WC
  363.  ------------
  364. EMJAY
  365. I used 9600 baud to transfer between my TRS Model 100 & the C=128 using a null
  366. modem, CS-DOS for the C=128 & a CRC XMODEM term program with the TRS 100.
  367. CS-DOS is the only C=128 terminal program that I know that has settings for
  368. more than 2400 baud.  Am I mistaken??  I have no problems with these transfers.
  369. By the way, I use a Supra 2400 & it has never required any adjustment at all in
  370. any of the half dozen term programs that I use.  It worked straight out of the
  371. box & with no changes to any prior terminal programs other than the change for
  372. BT for a Hayes.
  373.  ------------
  374. C128.CPM [Bill]
  375. Yup!  CS-DOS is one of the few that can do 9600 Buad.  My Supra worked great,
  376. out of the box, as described above.
  377.  ------------
  378. P.HALTON
  379. Howe,  A uart, universal asynchronous receiver transmitter, is usually a
  380. hardware device which converts data from your terminal to a format that can be
  381. transmitted over a communications link.  At regular intervals, it sends 1 bit
  382. of each character to the modem which puts that bit out on the phone line using
  383. either frequency or phase shift keying depending on the modem.
  384.  
  385. The c64 doesn't have a hardware uart.  To cut costs, they simulated the
  386. functions of the uart in software.  That's the principle reason why they have
  387. so much trouble with timing sensitivity.
  388. But nontheless, it is there.  It's simply written in software.
  389. simply written in software.
  390.