My IMSAI 8080 - Shall we play a game ? |
Purchased from Ebay USA Oct 2019 ( Shipped to Australia ) Released in late 1975 incorporating the Intel 8080 CPU. Read all about it on Wikipedia Build up / repair story to follow. Stay Tuned ! Last update 18th August 2021 |
LETS START WITH THE BASICS I have a one working memory card configured with a starting address of 0000h ( write up to follow soon )I have one IMSAI MIO card installed that is it! The first challenge I face is all those jumpers on the MIO card To make life easier for myself I figured I would focus on the RS232 port and get it sending data to my modern PC The image below outlines the jumpers I have installed to support the following configuration The board is I/O mapped so when writing assembly code for the Intel 8080 or Z80 You will need to use the OUT command to send DATA and the IN command to read DATA In my hardware configuration ( image below ) the DATA port has been configured for I/O Port 1 The BAUD Rate is set to 9600 with 8 data bits 1 stop bit and NO Parity For complete hardware configuration settings dive into the MIO user manual CLICK HERE So if we want to output one upper case A character to the serial port we will need to write the following code
LD A,41 Now we only have switches so the binary codes are as follows A zero "0" means switch down on the front panel and a one "1" indicates the switch is flipped up
0011 1110 ( 3E Hex ) I have used also this site for a quick lookup for Z80 opcodes https://clrhome.org/table/
IMPORTANT NOTE REGARDING https://clrhome.org/table/ The Z80 has additional commands that are not supported by the 8080 You will need to check what type of CPU board you have in your machine. When I purchased mine it did have a Z80 CPU card but I purchased an origional IMSAI 8080 card. I need to find a better 8080 opcode "cheat sheet" website so be warned ! All my code examples here will work on both Z80 and 8080 Next up I will show you be how to read data from your PC and more importantly how to check status registers This way you woll know if data is available to be read from the UART Also if the USART is ready to transmit data. Essentally the Z80 can run much faster than 9600 baud ( 9600 bits per second ) Even a slow 1 MHZ ( 1,000,000 clock speed ) CPU can cause troubles if you simple try for write directly to the USART when its only capable of transmitting @ 9600 baud. See you soon |