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
OUT 1,A
HLT

The example code required for this to work on the IMSAI is below
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 )
0100 0001 ( 41 Hex )
1101 0011 ( D3 Hex )
0000 0001 ( 01 Hex )
0111 0110 ( 76 Hex )

I have used for years this site to find ASCII codes https://www.asciitable.com/
I have used also this site for a quick lookup for Z80 opcodes https://clrhome.org/table/

IMPORTANT NOTE REGARDING https://clrhome.org/table/

A Z80 will run ANY program written for a 8080 CPU but not the other way around
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