re: on UARTS.. Didn't it basically standardize the process of that task of converting a byte to bits and vice versa, in a fashion specified by RS232? And do so at the above-300-baud rates, since that task was too stressful for 1MHz processors to pull off on its own (in addition to whatever else it was doing, like flashing a cursor on a CRT?)? And the buffer just gave grace time for if one of the systems got overly busy? (like when scrolling said CRT)?
Might a UART be an early example of an ASIC? On Fri, Jan 31, 2025 at 12:44 PM Steve Lewis <lewiss...@gmail.com> wrote: > Neat stuff. So what got me started (this year) dealing with RS232 is > trying to figure out a means for doing file-stream data exchange with the > Commander X16 (which is using a dual 16550 modern-make UART and ~14MHz > clock). It doesn't have a native terminal software yet with something like > YModem implemented. Which I've found YModem faster over "wireless serial > connection" (serial adapted to WiFi, so varied data rates over time) and > ZModem being faster over wired (null modem) connections (apparently since > ZModem has particular ACK-timeout requirements, which favors a reliable > data exchange rate). > > So while some protocol gets developed for that system, I experimented with > other actual vintage system trying to "talk to" a modern PC (where "modern > PC" is a 3GHz i7 laptop). For the actual task of transferring files, there > are many other better options, but I still wanted to "push the envelope" of > what classic RS232 could do on these systems. > > And it was interesting that even modern-PC to modern-PC, it only handled > 460Kbps. But it causes two "opposite" questions: > 1) How is it even doing over 115.2Kbps? (is that still "RS232"?) > 2) Why is it so slow even on modern systems? > > The answer to the first question is the "magic" of those modern-make > USB-serial dongles. I don't fully understand if they're running at 3MHz > (since in thier manual I see references to higher clock rates, like > 48MHz). But maybe also answer like this: going back to the early teletypes > days (pre-Bell 101 era), two systems can talk at "whatever-speed" just as > long as they both agree on and achieve that speed (a limit that also > involves the cabling between them). > > In this case, as long as the UARTs can be throttled to within-1%-ish clock > speed of each other. But it's still the same RS232 principles even at > these super-speeds? (specialized chips, doing the 2-of-3 hits finding start > bits, etc, with higher clocks like 12, 15, 20MHz, I see SIIG offering UARTS > with 25 and 30MHz clocks). It seems to me that an S-100 system with a > ~5MHz serial clock, or a later ISA card with a 7.3727 clock with a 16550, > those could be clock divided to support over 115200. But it just ended up > that the 1.8432MHz configuration was the most mass-produced and available, > because that is what was sufficient for phone lines of the 1980s? (i.e. > what the IBM PC did) > > > So I tested a bunch of (relatively modern, post-UART) vintage systems: > 4.77MHz PC w/ 1.8MHz/8250, 12MHz 286 (with Unknown), 386/486, and a Pentium > all null-modem connected to a modern-make PC - just to verify how fast they > should be pushed (download) a data stream. None of them (not even the > Pentium) could be clocked past 115.2K on this serial line. (I know the > host system isn't dictating the speed, but whatever integrated UART is > available-- then the software that controls that UART to clock divide to > "commonly defined baud rates"). > > - As IBM's own PC manual states, it can't be pushed past 9600 reliably > (you can, but it starts dropping characters). So despite a UART that can > technically achieve 115200, that system can't handle it (settling on a > YModem data exchange rate of about 0.9 KBps). > > - The 286 mustered about 2.3 KBps (that is, the sustained download speed > using a very good implemented-in-assembler terminal with YModem, receiving > data from a modern make 3GHz PC USB/serial adapter). This was using a > 57600 baud connection, so I'm not sure why the 286 couldn't do a little > better on throughput. I assume a limitation of its raw speed (12MHz) to > compute CRC checks, and then the combined memory/hard drive speed to write > received data to disk. Again, the UART could handle up to 115200, but the > system could not. > > - The 486 handled a nice 11.3KBps download at 115200 (null modem, same > modern-make laptop and terminal program as above). So the combined > performance of its memory, write to disk, and raw 50MHz CPU, it could > "out-perform" its UART (or at least match it). > > - The Pentium was slightly slower, 11.1KBps - but probably because it was > also running a GUI (WinXP) at the same time or maybe just due to having a > slightly different UART clock (being a laptop, I don't know what specific > clock it had. Still, you'd think an IBM ThinkPad would have a fancy ~7MHz > clock with 16550 and be able to do better than 115.2K, but nope (at least > not with the IBM drivers I could get). Then again, by late 1990s there > were many other better solutions for transfering files between systems and > "serial ports" on consumer laptops just had to be good enough for the > modems/phone lines of their day) > > - Modern make laptop to modern make (two fancy i7's talking over > USB/serial adapters) achieved 45KBps (bytes per second) across a 460K baud > connection (ZOC, ZModem). And yes, it's a ridiculous way to transfer a > file between two nearby systems these days. It's neat to see RS232 pushed > that far, but on the other hand, that's really slow for a modern PC. > > > So that leads to the next question, why was only up to 460K stable? At > 921K everything was misinterpreted. It could be the cables (and I do have > shorter ones coming, and will test). Those FTDI USB devices (or MAX232) do > have a published programming manual, so we could try various clock rates > that might net somewhere in between 460K and 921K baud. But thinking > through it a bit: USB is 4 wires (2-data), and that device is "emulating" > a flow-controlled RS232 connection. So then what protocol is USB using to > get its super speeds? Something-NOT-RS232. We can read all about that - > but I don't want to get too sidetracked on USB-isms. But it opens a > question, could we exchange data faster across traditional "serial port" if > we used something different than YModem? (it's just that most vintage > systems have an existing KERMIT, X/YModem implementation, and there are > other more practical ways to exchange files across modern systems, no one > has really looked into improved protocols across RS232? like... dual > channel across the RI line? ha!) But whatever that faster protocol is, > those vintage systems might not have the MHz horsepower (or memory capacity > or speed) to pull it off? > > > And, on the question of "why UART?" Well - hmm, history shows computers > exchanged data across long distances prior to the 1970 consumer UART > (TR1402A). Flow control makes that connection fairly reliable, and you see > those control flow lines listed on the Bell 103 (I tend to think the Bell > 101 was kind of maybe a prototype of proof of concept, so far I'm not > seeing anything that used it; SAGE identified a specific need, so that Bell > 101 maybe motivated thought on what such a thing could be used for). I've > also read CRC was also becoming a thing in early 1960s (which helped verify > blocks of data, prior to that error correction was just the parity bit). > > I have to drive for awhile today, I'll ponder on the essence of when/why > UARTs became an essential part of these systems. Does a UART become > important when two systems are vastly mixed performance? > > But for other fodder, I'm reading over the async card for the IBM 5110. > Page 12 of this IBM 5110 doc has a block diagram of IBMs version of > "asynchronous card" - > SY31-0552-3_IBM_5110_System_Logic_Manual_197902.pdf > <http://www.bitsavers.org/pdf/ibm/5110/diagrams/SY31-0552-3_IBM_5110_System_Logic_Manual_197902.pdf> > And its manual (from 1978) has some interesting paragraphs (plus how that > system was apparently obsessed with showing text-mode graphs of the error > rates; line quality is apparently still very rough by late 1970's): > SY31-0557-0_5110asyncComm_Jan1978.pdf > <http://www.bitsavers.org/pdf/ibm/5110/SY31-0557-0_5110asyncComm_Jan1978.pdf> > > > -SteveL > > > > > > > > > > > > On Fri, Jan 31, 2025 at 10:20 AM Frank Leonhardt via cctalk < > cctalk@classiccmp.org> wrote: > >> >> On 31/01/2025 15:23, ben via cctalk wrote: >> > On 2025-01-31 7:06 a.m., Frank Leonhardt via cctalk wrote: >> > >> > I wanted to get a REAL computer for a long time, since the 70's and >> > now I have >> > nice 18 bit home-brew design, using 2 1508 CPLD's and 6 74LS219's for >> > the ALU and a 1508 for the control logic. >> > >> > Back then you could get TTY's and other HARD copy output devices >> > and paper tape I/O. >> > >> > Now that have my 1977 computer (It uses 68A50 ACIA's) is there low >> > cost paper tape punch/reader emulator for just a plain 1200 baud >> > serial port? All I have working now is just a serial boot strap and >> > some ram. >> >> I've still got a few actual teletypes. Be careful what you wish for. I >> was going to suggest searching eBay for an ASR33 but I checked and there >> aren't any. >> >> My 1970's computer had a switch on the one ACIA between a Teletype and a >> a CUTS cassette interface. The latter stored at 30cps. An advantage to >> the CUTS is that you can't get paper tape easily AFAK (This list is >> probably the place to ask). >> >> I'm not sure how an emulator would look TBH. It wouldn't have the charm >> of the original, but I do see your point. What were you thinking? Hard >> copy or VDU? I see you can still buy matrix printers which, with the >> appropriate driver, could be persuaded to do one character a time. I see >> on Amazon they now cost a lot more than laser printers! >> >> And store "paper tape" as files on a USB stick? Or you could use a >> cassette, although they're getting hard to find. The FSK circuitry is >> pretty straightforward (copy it from an OSI 600 board >> https://osiweb.org/manuals/600revB.pdf Sheet 7). >> >> And I don't know where you'd find such an awful keyboard - although you >> could make one yourself out of 53 key switches. The final touch would be >> a powerful subwoofer to make the whole house shake when you pressed a key. >> >> I'd be up for working on one. >> >> If you wanted a purely software emulation then any glass TTY program >> that was able to record and play back from disk would do the job. >> >> I also checked and you can still get electric typewriters. Brother does >> one with a daisywheel; Silver Reed has a much cheaper dot matrix. I >> don't know, but I suspect some of them still have computer interfaces. >> >> > So when did serial printers show up? >> >> For home computers, from memory.... >> >> The big one was the Epson FX-80. They tended to have parallel interfaces >> - cheaper than serial! You could buy a serial board to fit in to them >> (I've got one knocking around). >> >> A Teletype is, of course, a serial printer. And it was all I could >> afford. £50 at the time, whereas a matrix printer was £200. >> >> A few years later people were chucking out teletypes, so I picked up a >> few more for spares. >> >> >> Regards, Frank. >> >> >>