Classic Computers: The Tandy Color Computer

A Dumb Terminal Emulator for the Color Computer 1 and 2

Last update 12/13/02

Background and Goals

To best explain the purpose of this program, I should really start from the beginning. When I started in on this project, I had 3 Color Computers in my collection of old hardware, an origional 4k CoCo 1, and two CoCo 2s. In addition I had a couple "TRS-80" cassette recorders (CCR-81s), one ROM cartridge, and aside from a few cables, that's it! I liked the idea of taking one of the old machines and making it into a terminal emulator, both for the fun of doing it, and just to make some use of the computer. In other words, the goal wasn't to pick the nicest platform but rather to do something a little different. I really wanted to stick with a basic console for this project, which ruled out the TI as it needs an external serial board. The Atari doesn't need much hardware for serial I/O, but I would need some kind of storage. I suppose the focus of the project could have been making a terminal emulator in a cartridge, but I wanted to stick with something simple, and I have other interesting plans for the Atari. Anyway, I had initally decided to use the Commodore VIC-20. I did find reference to a terminal emulator for it, one that used graphics-mode text to get something like 40x24 on it's display. After finding it on an FTP site, though, I discovered it would require an 8k RAM upgrade to run. This, in combination with the VIC's small screen and less-than-ideal keyboard layout made me realize that maybe the VIC-20 wasn't the best choice. Next in line was the CoCo, it has the power supply and serial port built in, but would require a TV (vs. a monitor) and some special code to make the best use of the limited number of keys. In addition, I recieved permission to use code from Comm4 on Color Computer stuff which made the project much easier, in fact, some of the more difficult code was already done! BTW, I chose the name Term9609 because the speed is fixed to 9600 baud and it runs on the 6809

limitations: Unlike some of the other machines of the day, the CoCo was really intended as a low end beginner's computer, and really lacks some features that would be nice to have for this project. None the less, I think it really is a well designed computer for it's day and it's price range and it should still get the job done with the right code. First off, I wanted at least 4800 baud and enough vt100 compatibility to run most software. 2400 baud or slower wouldn't be enough to make the project worth while; I'm starting with 9600 baud as I think I can handle things fast enough to make this work. The built in serial port has no UART, and I don't own an RS-232 pack, so all the serial I/O has to be done by the 6809 CPU directly. Because of the complexity of the code, I don't feal that an adjustable baud rate is realistic, in fact, if I really wanted to do this, I would just make each baud rate a totally different program. This would keep the code space down. I feal that a fixed speed is fine anyway, as I can always configure my modem/server to talk at any speed. Likewise this program only supports 8n1. Similarly, uploads and downloads aren't going to be supported, as I can do them with seperate code as well, and this would greatly increase the complexity of the code. Because the CoCo's serial port isn't buffered and has to be constantly monitored by the CPU, it would be extreemly difficult to have true bydirectional I/O. The CoCo serial port doesn't have the needed pins for hardware flow control, and because I can't monitor incoming data while transmitting data, software flow control is required. Further, the only time the serial port can be ignored is when a stop bit is being recieved. This is because the stop bit always has the same value, and is always sent after the 8th data bit is recieved. Because of this, all screen updates and keyboard scans are done is this short window of time. Features will be limited to those that will fit into those clock cycles.

Downloads

Sorry, no functional code is available yet.


Back To Main Page