Steve, remember that digital electronics ( I.E. integrated circuits like uarts) weren’t
around during the early days of data transmission. It was all analog back then, coils,
capacitors, and resistors, so then ideas regarding fast transmission had to wait for the
technology to evolve. Then as ic’s became available, what you could do with them sparked
new ideas. Example: data compression within the modem using a microprocessor, thus getting
higher overall throughput than the theoretical maximum of just the modulation rate.
Sent from my iPhone
On Jan 31, 2025, at 10:55, Steve Lewis via cctalk
<cctalk(a)classiccmp.org> wrote:
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 <lewissa78(a)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(a)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.
>>
>>
>>