Udo Munk has just released the latest version of his z80pack emulator, version 1.17, which now includes John Kichury’s FrontPanel library. As well as being a superb emulator to run CP/M on, it now gives you a great graphical representation of the Altair 8800 and IMSAI 8080 with fully functional switches and flashing lights. If you’ve ever wondered what it would be like to use one of these machines, why not give it a try?

Installing z80pack

The following installation instructions are only for the Altair 8800 and IMSAI 8080 systems. For installation instructions of the complete system, why not have a look at my previous article: Setting up z80pack to create an emulated CP/M system.

  • First download the source (z80pack-x.y.tgz, currently z80pack-1.17.tgz) for z80pack from its ftp site. The following installation instructions are taken from the z80pack site. More information can be found there, in particular, information on installing z80pack on non Linux/Unix systems.

  • Unpack the source archive in your home directory:

$ tar xzvf z80pack-x.y.tgz
  • Change the directory it is extracted to, to make this article easier to explain. There is no need for you to do this.
$ mv z80pack-1.17 z80pack
  • Compile the FrontPanel library:
    $ cd ~/z80pack/frontpanel
    $ make
  • Copy the front panel library to /usr/lib
$ cp libfrontpanel.so /usr/lib/
  • Compile the Altair 8800 emulator:
    $ cd ~/z80pack/altairsim/srcsim
    $ make
    $ make clean
  • Compile the IMSAI 8080 emulator:
    $ cd ~/z80pack/imsaisim/srcsim
    $ make
    $ make clean
  • I don’t like the 3D version of the IMSAI, so I changed it to 2D:
    $ cd ~/z80pack/imsaisim
    $ rm conf
    $ ln -s conf_2d conf

Getting Altair and IMSAI documentation

The z80pack ftp site has some documentation for the Altair and IMSAI machines which has been scanned in from the originals. For the Altair there is the Altair 8800 Operator’s Manual and for the IMSAI there is the IMSAI 8080 User’s Manual. There is also some other relevant documentation and files in the altair and imsai ftp directories.

Running a test program on the IMSAI 8080

To start the IMSAI 8080 emulator:

$ cd ~/z80pack/imsaisim
$ imsaisim

The IMSAI 8080 front panel:

The example program we are going to use is taken from the IMSAI 8080 User’s Manual mentioned above and can be found from page 19. The program takes input from the PROGRAMMED INPUT switches at the bottom left of the unit and outputs it to the PROGRAMMED OUTPUT at the top left.

AddressHexBinary
0DB1101 1011IN - Input into Accumulator
1FF1111 1111Address of Programmed I/O Port to get input from
22F0010 1111CMA - Complement Data in Accumulator
3D31101 0011OUT - Output Data from Accumulator
4FF1111 1111Address of Programmed I/O Port to put output to
5C31100 0011JMP - Jump
6000000 0000Low Address of beginning of program
7000000 0000High Address of beginning of program

To enter the program follow these instructions:

  1. Turn the machine on by moving the PWR ON / PWR OFF switch to PWR ON. This switch is located at the far-right of the unit.
  2. The machine is now at address 0. To input the first line of the program move the middle set of switches so that positions 7,6,4,3,1,0 are down. This corresponds to binary: 1101 1011 from Address 0 of the program.
  3. Press the DEPOSIT / DEPOSIT NEXT switch into the DEPOST position. This puts the data from the switches set above into memory at the current address, which is currently 0.
  4. Set the middle group of switches so that it corresponds to the binary in the next line of the program.
  5. Press the DEPOST / DEPOSIT NEXT switch into the DEPOSIT NEXT position. This increments the current address, and there it puts the data from the switches just set.
  6. Repeat lines 4 and 5 until the program has been entered.

The program can now be run by moving the RUN / STOP switch into the RUN position. If you now move any of the PROGRAMMED INPUT switches, you will see them represented in the lights of the PROGRAMMED OUTPUT. Congratulations, you may have just run your first program on the IMSAI 8080.

Where Now?

There is plenty of information in the manuals I have mentioned, and these should be your first port of call. The Altair 8800 Operator’s Manual has a similar example to the one given for the IMSAI, and begins on page 33. You may also be interested in my next article: Writing My First Program to Toggle in to the IMSAI 8080. Have fun, and I hope your mouse finger doesn’t get sore clicking all those switches!