Elliott 803 Simulator - Dowloading

If you want to experiment further with the 803 Simulator, I recommend that you download the system for use directly on your machine. There are two options: if you have, or are prepared to install, the Sun Java Run-Time System, which is freely available from Sun Microsystems, then you will be able to save any tapes created on your local hard disk for use at a later date. If this is not the case then you can still create your own tapes using a text editor such as WordPad (not Word which inserts lots of invisible control characters). You can then insert these into the system as described below, and they then appear in the filing cabinet.

How to Run the Simulator

The dowload provided here is a 'Zip' file, which needs to be unpacked before use. Where you put it is up to you - I am not a Windows person, so I am not qualified to advise you. I don't think it matters, as long as you can remember where it is. When it is unpacked, the files will be contained in a folder named 'sim803', so you can place this in 'My Documents' or wherever you like. If you have the Sun Java System, you need to invoke Jsim803 within that folder. Again, I am not familiar with Windows, under Linux I type 'cd sim803; java Jsim803'. If you don't have the Sun Java, you need to fire up Internet Explorer and click on 'File', 'Open', 'Browse', then locate the file sim803/index.html which will then produce the same display as you got when you accessed my web pages. Carry on from there.

Download the System

Click here to download the packaged version.

Customising your own system

Here's a brief description of how the tape store is organised.

All the tapes are stored in a sub-folder, named 'sim803/tapes'. If you look in there, you will find lots of files, each of these represents a tape in the filing cabinet.

There is another file called 'sim803/tapestore.cfg' which describes which tapes are included and the names of the boxes and drawers in the filing cabinet. If you look at it you will see it consists of lines, each of which contains a keyword and a name. The keywords are fiarly obvious: 'Drawer', 'Box' and 'Tape'. Boxes go in Drawers, and Tapes go in Boxes. The only ones that are critical are the Tape entries. These names must match the names of files in 'sim803/tapes'. The indentation is not critical, but I like to indent Boxes by one space, Tapes by two spaces. This makes the structure fairly readable. If you want to add a new tape to a box, just add an additional line with 'Tape' followed by the file name somewhere after the corresponding box. You can add extra boxes if you wish, but I don't recommend more than the present 4 drawers - the fifth will be off the bottom of the window when opened, and then you can't close it! You can change the names on boxes or drawers with impunity, they names are just displayed on the screen as you have typed them.

Preparing Tape Files

The format of the tape files is tricky. The 803 used 5-hole paper tapes and Elliott's own version of the Creed Telecode. If you have a Hex Editor you could probably decipher the encoding on some of the tapes, but things like the Algol Compiler tapes were binary anyway, so it is unlikely to make much sense. When I developed the simulator, I decided to include a facility to allow easier creation of source files and this is available here.

Look in the sub-folder 'sim803/tapes' where you will find a file called 'test.a60'. Open this using WordPad or your preferred equivalent. You should see:


; test program for trials
TEST PROGRAM'
BEGIN
  INTEGER I'
  PUNCH(3)'
  FOR I:=1 STEP 1 UNTIL 10 DO
    PRINT SAMELINE, DIGITS(6), I, I*I*I, ££L??'
  PRINT £END OF TEST£L??'
END'

This is 'normal' Ascii text. If you are familiar with Algol 60, you may think it looks a bit odd, but this is because of the Elliott character set restrictions. See the Elliott Algol Manual for more details, but the above example shows that you have to use the apostrophe "'" in place of the semicolon, which doesn't exist in the Elliott Telecode.

Two other characters that are odd are the string quotes - here Elliott's decided to use the pound '£' and question mark '?' in their place.

You will, of course, spot that the file begins with a semicolon! As this doesn't exist in the Elliott Telecode, I chose it as a marker to indicate that this file was not in Telecode, but in Ascii, and needs to be translated when the simulator reads it in. In fact the semicolon also acts as a comment character - any characters typed between the semicolon and the end of a line are discarded when the file is read. If you start up the simulator and pick up this tape - it's in the drawer marked 'User Programs' and in the box labelled 'Algol Test Programs', then switch to the Editor view and load the tape into the reader. Then press 'Auto' and the tape will be read and printed. You will see that the first line doesn't appear at all. It was discarded by the simulator when the file was read in.

So, you want to type in your favourite Algol 60 program? All you need do is type it into a file, change the characters listed in the manual that are 'different', and add a first line beginning with a semicolon. Save the file in the sub-folder called 'tapes' and then add an extra line in 'tapestore.cfg' to identify the file as a tape. Then restart the simulator - it only reads tapestore.cfg when it starts up - and look in the filing cabinet and it should be there.

And for the Lucky Ones

If you have the Sun Java System installed, and you create any files during a session, and wish to keep these, simply name the tapes, using the pencil provided, and put the tape into a named box. I haven't devised a method of creating new boxes on-line, but you can do so by editing the tapestore.cfg file. When you put the tape into a box for the first time, it should set a flag, and when you switch off the computer, the simulator will re-write tapestore.cfg and include the new tape(s).

Note that tapes which is discarded or left lying about are NOT automatically saved, but if they were already in the system, they will re-appear when you next start the simulator. There is no method provided to destroy a tape once it has entered the filestore, other than using the editor on tapestore.cfg to delete the appropriate lines. This is not to say that there aren't any bugs in the system that might do this inadvertently, so I would recommend that you keep a backup copy of tapestore.cfg in case a disaster strikes.

There is no code in the simulator to delete files, so this is very unlikely to happen. If a file disappears from the filing cabinet, even after restarting, you may need to edit it back into tapestore.cfg to reinstall it.

One further note: The present version saves new tapes in binary form. As the simulator has no way of telling whether a tape is binary or text, I have opted to use the binary form. The conversion from Elliott Binary to Ascii and back again is not unambiguous and could easily produce a tape which is different from the original. If this is a binary executable program, then this would be disastrous. I am considering various possible methods to get around this, but at present the binary form is used. Hence printable output files are not yet possible. One approach that could be possible is a means of 'exporting' the output from the printers. That must wait for a future release, though.

And in conclusion...

Have fun with the simulator. If you have problems, do let me know. I can't promise to be able to fix them, but will do my best!

Page created by Bill Purvis, last update 15th December, 2004