Running Algol68-R under George3
This description is intended for those who have run George3 on
a real system.
There is also
an unmodified section of the Leeds University 1906A Users Manual.
The sections on subsystems and on Macros available
are specific to the Leeds University system, and do not apply.
However, most of the information in §1 to §5 is relevant
to any George3 system.
There is also reference to George4.
This was the virtual memory version of George, and had the same use interface
while using paged memory management.
For running MOP you will need a Java runtime system.
If you do not have Java on your machine, you can get it from
Sun's javasoft website.
Filestore
The filestore is from increment 7 and is a near descendent of the official issue system.
There is a dump tape 11000 that can be restored onto just 2 simulated EDS60s.
These instructions tell how to achieve this.
General System Organisation
Under the current directory there must be a directory called data.
In this directory are files emulating the basic peripherals and the disk drives.
Magnetic tapes are held in the tape library which by default is emulated
by the contents of a directory called tapes.
However, this directory can be redefined, so that the tape
images can be read directly from any directory.
A special file data/config.sys defines the
configuration of peripherals.
It is headed by a comment that describes its format.
Conventionally, the disk drives start at unit 40, which holds the GEORGE3
exofile.
There may be parts of the system that assume this.
Instructions for running George3 from this ZIP file
These instructions are written for running on a Win32 system.
However, they also work for UNIX systems, so long as an appropriately
compiled version of g3exec is used.
The reader may have to replace a backslash by / in a few cases.
In what follows, dedicated PC users my be surprised by the frequent
UNIX-style use of forward slash.
Starting George and restoring the filestore
- Unzip the zip file, preserving the path names.
This will create a sub-directory called a68demo.
- Create a command window.
- Do cd a68demo.
- Add the bin directory to the path
e.g.: path %path%;bin
- Create a telnet window to use for the operator's console,
e.g. by use of the telnet command.
It seems that the telnet has undergone "improvement" in
releases of the Windows more recent than mine, and I've yet to
succeed in turning off local echo on a Windows XP system.
Hyperterm works fine for this purpose.
- Start the George3 executive emulator by typing:
g3exec-vc -c DA GEORGE3
This emulates the command DA GEORGE3 on the operator's console of an ICL 1900.
The system's response will end with the line:
Waiting for a console telnet connection
- Switch to the telnet window and connect to port 1900 on localhost.
The system's response will be of the form:
George 3 operators console: connected
(which comes from the emulator)
LOADED
SCF SYSTEM NOT RUNNING
RESIDENCE 4 REDUCED BY 1K WORDS
- You should now be asked the question:
RESTORE?
to which you should answer: 7
- The system will invite you to mount the appropriate tape.
- Press control-B.
This is gives access to the facility for emulating operator actions.
The system will respond with:
Operator action:-
- Respond with:
M25,11000
The console should now show:
Operator action:- M25,11000 O.K. Mounted - read only
Any ex-operator of George3 should now be in familiar territory.
The users :MANAGER and :SYSTEM have been set low security
not what you would expect on a real system.
There is a card reader (file data/CR04) which contains various
input commands and two speciman Algol68 jobs.
In order to run it, just engage the card reader
press control-B, and reply with e4.
The output appears on the lineprinter, which you will find in file data/LP10.
You will be asked to mount tape 11000 with a write permit ring.
Again use control-B, but the command to mount the tape this time should be:
M25,11000,W
However, the Algol68 jobs will fail because George's installation parameters are
not suitably set.
The initial deck of cards contained a macro to remedy this.
Press TAB which simulates the ICL1900 INPUT button,
and type INSTPARS.
This runs a macro which sets the correct installation parameters.
You can now engage the card reader again, and this time the Algol68 jobs will run correctly.
When you have seen enough, just press F5,
and type POST.
When you want to start George up again, do the same, until you get the query
RESTORE?
when you should answer: N
MOP
The system has a separate 7903 emulator, which needs to run in another window.
If you have run up the system as described above, it will have
complained that the 7903 (unit 57) is inoperable.
The 7903 emulator is a Java program in ICL7903.class.
For those whose machines do not have Java installed,
you can install it from
Sun's java website.
Java 2 standard edition is what you need. Actually you only need the Java run-time system.
- Create another command window and set the current directory to a68demo.
- Start the 7903 with 10 teletypes by typing:
java -classpath bin ICL7903 10 0
- It will respond with
Listening for IPB connection
Listening for TTY connections
This screen needs no further attention.
You can just leave it running.
If you restart George there is no need to restart the 7903.
To stop the 7903 emulation, just do a control-C on this screen.
MOP teletype terminals are just telnet windows, using whatever telnet emulator you please.
You connect to the 7903 by making a telnet call to the usual telnet port (i.e. 23).
On the machine running the emulator this is easily done by telnet localhost,
but you can also call across the net to the machine running the 7903 emulator,
and have mop jobs running on multiple keyboards.
Just in case you have forgotten (or never knew), the operator command to start MOP is:
MOP ON,57
Emulating the operator's console and the operator
The ICL 1900 had a panel of buttons to the right of the keyboard.
These are emulated as follows:
INPUT | tab |
CANCEL | escape |
F5 | control-A |
In addition, there are a few facilities for emulating the actions
of operators.
These are all accessed via control-B, as in the mag tape loading above.
The full set of facilities is:
Engage a device | E3 | to engage unit 3 |
Define the tape library directory | Ldir |
to define the tape library is living in directory dir |
Mount a mag tape without WPR | M25,23456 | to mount tape 23456 on unit 25 |
Mount a mag tape with WPR | M25,23456,W | to mount tape 23456 on unit 25 with write-permit |
Mount a brand new mag tape with WPR | M25,23456,N | to mount a new tape 23456 on unit 25 with write-permit |
Set 7903 inoperable | I57 | to set the 7903 inoperable |
Set debug level | D3 | to set debug level 3, not for general use |
As a true emulation, the operator's console does not support lower case letters.
In some environments this may lead to problems with defining the tape library.
Lineprinter
The lineprinter is on unit 10, and this is emulated by the file data/LP10.
The file is readable while it is being written, so you can send printer output
and then look at it with a text editor, e.g. wordpad.
Output is appended to this file, so you need to erase it from time to time.
Card reader
There is a card reader on unit 3, and this is emulated by the file data/CR03.
The file is released when the card reader disengages, and is read from the beginning
each time that you engage the card reader.
You can prepare jobs with any text editor and then run them
by engaging the reader.
The same applies to use of the input command.
There is a second card reader on unit 4, emulated by the file data/CR04.
Magnetic Tape
The tape library is in directory tapes.
There is a single dump tape holding increments 4 to 7.
There are 4 tape decks, numbered 22, 23, 24 and 25.
Disc Drives
Each disc drive is emulated by a file in the directory data.
Thus a disc drive on unit 40 is emulated by the file data/U40.
The allocation algorithm of the George3 filestore is such that as soon
as a disc is used for filestore, its size expands to 60 Mbytes.
The configuration loaded from the ZIP file produces 5 disc drives,
units 40, 41, 42, 43 and 44.
Each contains a single exofile of 60 Mbytes, whose names are respectively
GEORGE3, FS3, FS5, FS6, FS7.
The filestore configuration in the file data/CR03 that is read by the
loader/allocator only uses the first 3 of these.
If you want to add in more discs to your filestore, just modify this to include
residences FS6 and FS7.
What doesn't work
The implementation of the 7903 emulation does not implement
the MOP terminal time out.
While recognising that this was always an infuriating aspect of the system,
it should really be there for verisimilitude.
Perhaps it should be included optionally via a parameter to the 7903 emulator.
The handling of errors in the parameters to g3exec
is not right, and often leads to illegal instructions.
The simulated command to the George3 exec must be in upper case.
Note that there is no unit number in the simulated command.
The unit is the first disc specified in config.sys,
which is 40 with the configuration supplied.
It has never been tested with any other value for the lowest numbered disc.
On some systems the time is surprising, although the date
is correct.
George3 appears to be Y2k compliant.
© David Holdsworth & Delwyn Holroyd 2003
All rights reserved until such time as we sort out an appropriate
public licence.
Updates
If you wish to be notified when new versions are available, and/or
when bugs get fixed, please e-mail:
D.Holdsworth@leeds.ac.uk
It would also help us to know whether you successfully got George to
work on your machine, and what difficulties you encountered on the way.