Home Boards Poly-88 8813 Emulator Links Contact

Poly-88 Emulation

This page describes the details of running the Poly Emulator in Poly-88 mode. If you have not already seen it, you should start with the main Emulator page.

To emulate the Poly-88, you will need these files:


and one or more of the cassette image files, *.cas. All of these are available on the main Emulator page.

After installing these, run the emulator with the -88 option, which starts it in Poly-88 mode:

pm -88

You can also enter this mode by including the following line in your polydev.dat configuration file:

poly88 on

In either case, this makes a few changes to the emulator’s operation:

  • Screen memory starts at F800 hex (instead of 1800)
  • The 4.0 Monitor ROM is loaded into the first 1K of memory (instead of loading the 3K ROMs which boot an 8813 from disk)
  • It emulates the USART’s ability to load Poly “tapes” stored in CAS files (see below)

You can also load the Tiny Basic ROMs into the 2nd and 3rd sockets of CPU memory. To do this, start the program using the command: pm -88 –tbasic    Then press Control-C to enter BASIC.

When the emulator starts in '88 mode, you will be greeted with a block cursor, nothing more. At this point you can:

  • Press Control-Z to enter the Front Panel mode, or
  • Press B or P to load a program from a cassette image file.
Poly 88 startup screen

Loading and running CAS files

To load a tape, press P or B. This originally specified whether to load Polyphase or Byte standard tape format. For PM, either works file. Then type the name of the file you are loading, and press Enter. This name needs to match the name stored in the CAS file, which may or may not match the name of the CAS file. For simplicity let’s assume they’re the same. So, to load BASIC from tape, you would type BASIC and press Enter. (Note: type the name of the file in UPPER CASE, since that's how it's stored in the CAS file headers.)

Now, the bottom of the screen will prompt you for the name of the CAS file to load. Type basic (the .cas extension is optional) and press Enter. PM will load the tape records and display the record numbers as they’re loaded. If it displays a name other than the one you entered, this means you specified the wrong CAS file. (This would be like loading the wrong cassette when using a real cassette player.)

cassette loading screen of the Poly Emulator

If there is a checksum error, the loader will display ? and stop loading. It will also do this if it can't find the file "on cassette" (in the CAS file) which you requested, due to a typing mistake. If you see the ? you can press B or P to try again.

After the last record is loaded, and if you’re running on a slow system (or in DOSbox), you may notice a pause before it starts executing the program.

Load BASIC, then a BASIC program

You can load the BASIC interpreter from "tape" using the steps listed above. Once you're in BASIC, you can type the LOAD command, followed by the name of a CAS file to load. Again, type the file name in upper case. For example, to load the HANGMAN game:

CAS file format

Files ending in .CAS are cassette tape images, derived from Dwight Elvey’s .IMG files. The .CAS files have all the bytes needed to be read by the Poly ROM’s tape loader, and probably match what was on the original Poly tape. Here is the format:

31 bytes of E6 hex (the “sync” bytes before/between tape blocks)
One byte of 01 hex (the SOH character preceding each record header)
The record header, which includes:
        8 bytes of file name (space filled if needed)
        Record number (2 bytes, LS first, starts at 0000)
        Record length (1 bytes, 00 implies 256 bytes)
        Load address (2 bytes, LS first)
        Record type (1 byte, see below)
        Record checksum (such that all of the above, starting with file name, add to zero modulo 256)

The record header is immediately followed by data bytes, if any (up to 256) and a checksum which covers only those bytes. The record types are:

00 – absolute (typical data for executable files)
01 – comment
02 – end
03 – start address for executables
04 – data (used by Assembler?)
05 – BASIC program file
06 – end (used by Assembler?)

To create a .CAS file from a .IMG file, use the IMGDUMP program. For example:

imgdump –cas basic

Would convert BASIC.IMG to BASIC.CAS. The imgdump program is available for download on the main Emulator page.