Using the latest z80pack, version 1.17, to emulate an Altair 8800 or IMSAI 8080 using the new graphical FrontPanel

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 another article: Emulating a CP/M System With z80pack.

  • 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!

Creative Commons License
Using the latest z80pack, version 1.17, to emulate an Altair 8800 or IMSAI 8080 using the new graphical FrontPanel by Lawrence Woodman is licensed under a Creative Commons Attribution 4.0 International License.

Share This Post

Feedback/Discuss

Related Articles

Writing my First Program to Toggle in to the IMSAI 8080

I have long been fascinated with entering programs into computers by methods not involving a standard keyboard and monitor. This interest was peeked by my last article: Using the latest z80pack, versi...   Read More

Transferring Files to and from CP/M .D71 Disk Images Using ctools

Using Vice to emulate a Commodore 128 running CP/M works very well, but it isn't easy to get CP/M files directly onto and off a .D64/.D71 disk image. The easiest way to do this under Linux is to use c...   Read More

Emulating a CP/M System With z80pack

z80pack is great for creating an emulated CP/M system. It can either be used to create a general CP/M system or can emulate a specific system such as an IMSAI or ALTAIR including a graphical front-pan...   Read More

Connecting to a Remote Serial Port over TCP/IP

Most modern machines don't have a serial port as standard; you could use a USB to serial lead, however, if you have another machine available that does have a serial port you can access it remotely ove...   Read More

xAce is Back in Active Development and Looking For Contributors

xAce is a great Jupiter Ace emulator and is in fact the one that I use the most, however it hasn't been actively developed since 1997 and therefore has some shortcomings. I am keen to improve the emul...   Read More