Elliott 803 Emulator

I wrote an emulator for the Elliott 803 computer in Java a long time ago. Recently I attempted to run it and it failed, as it was written as a Java Applet, which is no longer supported. I had a variant which ran as a stand-alone program, but I disliked the appearance, as the various components, Operator keyboard, tape reader, etc. were displayed in tabbed panels, which meant you could only view one item at a time.

I have made a fairly major revision of the code, so that each of the components is displayed in a separate window (Java Frame), which can take up a fair bit of space, but with a modern display (1920x1080) I can fit in all the components, apart from the Tape editing station, without overlaps.

This is a work in progress (I said that last time, too) so there are some features that need to be implemented, or fixed, and I will probably need to issue further revisions.

The emulator is downloadable and if you are familiar with running Java programs should present no problems. I run it from a command window on Linux with the command:

       java -jar JSim803.jar
and I believe that this, or something close to this, can also be used on Windows. Having no experience with Macs, I would welcome any recommendations as to whether this is appropriate in that context.

When the emulator is started it creates a series of windows, which should mostly arrange themselves neatly on a large screen. If your your screen is smaller, then you will have to manipulate the window positions to find a workable layout. The main problem is the paper tape editing station (Editor) which currently sits on top of several other windows. As in real life, the tape editing facilities were usually in another room, I see this almost as a separate item, and except when I need to edit a tape, I minimize the windowto get it out of the way.

The following is a quick run through of the sequence needed to run a short Algol program.

  1. The first step is to power the machine on. The operators keyboard has four large button near the top right, labelled Battery On/Off and Computer On/Off. For those who have used areal 803, the procedure is probably etched into their memory: first switch on the Battery, then switch on the Computer. To power off, do it in the reverse order. When the Computer is on, their is a lamp at the top of the keyboard which comes on. There was no indication that the battery was on, but I thought it helpful to show that by making the lap area a light grey colour.
  2. Normally, to run an Algol program you first need to load the compiler tapes, which is a rather tedious procedure, fraught with risk of damaging the precious compiler tapes! The emulator is your friend here as it loads a store image of the compiler, so it can be run without needing to load the tapes. The ferrite core store of an 803 would normally retain the image after being shut down and restarted, but this was never guaranteed, and the compiler could have been overwritten by some other program prior to shutdown. We can take advantage of the helpful emulator which keeps an image of the compiler and loads it in whenever it is started.
  3. Assuming the compiler is in place, the next step is to fetch a program tape. There is a short test program in the filing cabinet, so go to that and click on the bottom drawer, labelled 'User Programs'. The draw will slide open to reveal a number of paper tape boxes. The box labelled 'User Algol Programs'. Click on the box label and it will open to reveal a blue circle (it's a very short program!) Click on the tape, and it will disappear from the box, and a message should appear in the message window, saying:
    	   Holding tape: test.a60
  4. Move now to the Tape Reader and click on the load bar, that's the long black bar across the front of the reader. The tape then appear loaded into the reader. If you are fussy, you should also switch on the reader, but it doesn't actually do anything, and the reader works fine with it switched off, unlike the original!
  5. Now go back to the keyboard, and press the following buttons: That represents the command to jump to location 7 which is the compiler restart address. Press the 'Read' button and the 'Operate' bar across the front of the keyboard, then the 'Normal' button and again the 'Operate' bar. This will cause the machine to jump to location 7 and start compiling the program. The Tape in the reader will be seen to move about and then halt. The Printer will then slowly type out the program title and a 'FREE STORE...' message.
  6. Finally, press red F1 button the pop up the F1:40 button. This is what the compiler is waiting for, and it will then run the program.
  7. To be tidy, you shouldnow put the program tape back into its box. Grab the tape by pressing the green button on the top right of the reader, then click on the tape box to return it to the box. Clicking on the box label should close the box, then click on one of the other drawers to close the drawer. You can omit the 'close the box' action as closing the drawer will do that anyway.

You can shut down the emulator by pressing Control+Q with the mouse in any of the windows.

The contents of the filing cabinet as installed is contined within the JSim803.jar file. If you wish to provide your own, then I suggest you unpack the .jar file in an other empty folder. This can be done with:

       jar xv <../JSim803.jar
This will unpack everything. I'd recommend deleting the .class files and the 'image' folder as any changes to them would upset the operation of the emulator. The folder 'tapes' contains all the files, and the file 'tapestore.cfg' defines the filing cabinet and contents.

When the emulator starts up if first looks for these in the current folder, falling back on those in the .jar file if they are not found.

I have not yet implemented the Plotter, and there was also a facility to examine store contents, but these await future improvements.

My real aim now, is to modify the emulator to deal with a 503. I have never operated, or even seen, a 503, but the instruction set is the same, apart from a couple of minor changes. Additional facilies include use of 8-hole tape, typewriter input, and a limited memory protection scheme.

Page created by Bill Purvis, last update 6th May, 2022