Having secured a copy of Tom Pittman's Tiny BASIC on paper tape
(autographed by the man himself!), I'm in the process of adding a
teletype simulator to the COSMAC Elf simulator. It's a bit strange
because the 1802 code does bit-banged serial i/o, and my simulated
teletype has to do bit-banged serial i/o back at it. At least
initially, rather than hack all the 1802 code to run at a faster baud
rate, I'm simulating 110 baud with my "teletype", so most of the time
the emulated 1802 and the emulated teletype sit there waiting for each
other to send data. It's _almost_ working, but I'm getting some odd
results that I think may stem from an incomplete understanding of the
way the ASR-33 and others of that vintage send and receive data. I'm
testing with some code in an article about interfacing the Elf to a
Teletype, so I'm pretty sure the Elf code is correct. I'm using 110
bits per second, no parity, 8 data bits, one low (logic 0) start bit,
and one high (logic 1) stop bit. It seems to like the data
low-order-bit first, but I have nothing that confirms that how it should
work. I'm also working from the assumption that the data bits, the stop
bit, and the start bit are all the same length. Also, I'm assuming that
the "110 bits per second" includes the time for the stop and start bits,
but I'm not sure of that either. It seems to be transferring
characters; I get consistent hex values for each character I send to the
Elf, but they seem to usually be either shifted left or right by one
bit, or they have the high bit set when it shouldn't be. It feels like
I've either added extra bits or am missing some in there somewhere. Can
someone who knows this information for sure clear these things up for
me?
-Bill Richman (bill_r(a)inetnebr.com)
http://incolor.inetnebr.com/bill_r - Home of the COSMAC Elf Microcomputer
Simulator, Fun with Molten Metal, Orphaned Robots, and Technological Oddities.