Construction notes for a minimalist microcomputer based on the HD6303 IC.
This board was published on Seed Studio in September 2017, by a user called Barta. The actual author is unknown (its not me), but I'll add proper attribution when I discover it.
I have reverse engineered the schematic and assembled the board. Any errors are attributable to me.
The integrated circuit runs in multipexed address/data bus mode, as a microcomputer with a full 64k of accessible memory. The 32K x 8 EPROM contains the Lilbug monitor program and will eventually contain a 6800 FIG forth. The 32K x 8 RAM chip uses a skinny DIP package and it's hiding under the EPROM, soldered directly to the PCB.
The board exposes an 8-bit parallel IO port on an edge connector. Another 3 bits (these set the mode) and some control signals are exposed on another edge connector.
The 4.9152 MHz crystal is one of those annoying odd frequencies required to obtain a standard baudrate.
A common USB to serial module is used. The pinout of these modules is not stardardised, so the module is connected via ribbon cable.
Power to the board is supplied via the edge connection through a 5V regulated wall wart. This is a temporary measure during construction, as power during normal operation is derived from the USB-TTL UART configured to provide 5V.
The monitor program originates with Motorola and its called Lilbug. Its quite small and adaptable via additional commands.
Lilbug is loaded into the memory space at $F800 to $FFFF.
The manual is readily findable on the web and it includes the source code. For example: Bitsavers However this is a scan in the form of a PDF document and not in a form that can be assembled.
An assembly listing can be found at Vintage Chips in Japan, as part of a document package for another HD6303-based computer, the sbc6303. Seen here in Japanese and English translation.
The document package is also linked to directly from Seeed Studio.
An alternate assembly listing (not used) is found on Github.
The afrementioned document package includes as assembler output the hex and S-record files. The hex file was used directly to program an EPROM.
Programming the EPROM is performed using a universal EPROM programmer, the TL866 II plus. This is connected to a PC-style disktop computer via USB.
The associated software is called Xgpro.
The hex file is transferred to a PC-style disktop computer and the contents of the hex file loaded into Xgpro. The destination of the hex file content in the computer memory map is recorded in the hex file, so that becomes the file starting address for the load. The destination address is relative to the address range of the EPROM to be programmed.
The successful load can be verified by examining the end of the file buffer and identifying the welcome message and the HD6303 vector block.
Programming the EPROM is then straight forward, though disabling the ID check helps.
The micromputer to USB dongle pin association is as follows:
Microcmputer (4 pins) | USB dongle (6 pins) |
---|---|
5V | 5 V |
GND | GND |
Rx | Tx |
Tx | Rx |
The monitor assembly code has been edited and reassembled (not by me) to provide 9600 baud by default, instead of the default 300 baud. Note that some USB dongles provide power, but not signals. Use one of the latter.
On a Macintosh or other unix-like desktop computer, the terminal can be used to identify the USB dongle.
ls -al /dev/tty*
This produces a result that looks like this:
/dev/tty.usbserial-AB0LZ57U
This only produces a result if the USB dongle is plugged into a USB socket on the desktop computer. Then the connection to the "HD6303 Single Board Computer" can be established by issuing a command like:
screen /dev/tty.usbserial-AB0LZ57U 9600
Pressing the reset button on the SBC should produce a welcome message. Issuing a Lilbug command such as
D F800 F900
produces this result:
Lilbug on the Macintosh does not understand form-feed or backspace/delete.