A project log for STUPID Computer

A 12-bit TTL-based Microprogrammed Computer

steve-tonerSteve Toner 03/03/2023 at 06:480 Comments

VAPID: Vector Adorned Programmed Instruction Decoder

Added a new output device: 3 channels of D/A conversion using a Burr Brown DAC7624.  This chip provides four 12-bit D/A converters, but I'm only using 3 and only using 10 bits to make the interfacing simple.

The implementation is a bit of a kludge, as the original STUPID computer was designed with only a single I/O device so there is no clean way to specify which I/O device to use.  The solution used here (for output only) is to have the high bits of the AC (which holds the value to be output) specify the device.  Four 8-bit devices and 3 10-bit devices are supported.  If the high-order 4 bits are all zero, the TTY is indicated.  This makes the mod backward-compatible with existing code, as only  8 bits are used when outputting to the terminal and the high bits are always zero.  They didn't absolutely have to be in the original implementation, but no existing code uses the high bits for anything.  One additional instruction, OUTPUT,  is defined as the existing PUTC instruction waits for the UART to be idle before sending the byte.  The new instruction sends the data directly without checking whether the device is ready for it, so any necessary checking must be done under program control.  But again, for backward-compatibility, the PUTC instruction is retained (just don't try to use it if any of the high bits of the AC are set...)