$Revision: 1.8 $ $Date: 2003/07/20 19:38:11 $Copyright © 2001,2003 Mirian Crzig Lennox
ITS supports four different disk types: the RM03, the RM80, the RP06 and the RP07. Although these disk types are very different at the hardware level, from the simulator's point of view they differ only in capacity and geometry. This document uses the RP06 as an example; however, the procedure is similar for any of the other three disk types.
Materials you will need to install ITS:
The symbol « is used to indicate where a carriage return should be typed; this is necessary because ITS programs are not consistent about requiring a carriage return or not, and in cases where a carriage return is not expected by the program, the carriage return will be taken as input to the following query, which is likely to be incorrect.
The constructs ESC-g and ^C, where g and C represent any letter of the alphabet, have their usual meanings: ESC-g means to type the Escape key and then the letter g and ^C means to hold down the Control key and type the letter C.
set cpu its set tim y2k at tu0 minsys.tape at tu1 salv.rp06.tape at tu2 dskdmp.rp06.tape set rp0 rp06 at rp0 rp0.dskThis is the configuration file that the PDP-10 simulator will use; it contains commands which will be executed when pdp10 starts. The various lines are explained below:
set cpu its
set tim y2k
at tu0 minsys.tape
at tu1 salv.rp06.tape
at tu2 dskdmp.rp06.tape
set rp0 rp06
at rp0 rp0.dsk
$ pdp10 init« PDP-10 simulator V3.0-0 RP: creating new file sim>The
sim>is the front-end console prompt. Typing
helpto it gives a list and short description of the commands it understands. To prepare the initial disk image, you need to boot the Salvager tape:
sim> b tu1« ITS MTBOOT.176The Salvager doesn't have a prompt or any command-line interface at all; at this point you are talking to Exec-DDT. In order to call Salvager functions, you need to use DDT to call them. Note that $ is the character printed by DDT when the Escape key is typed, so when you see $, type the Escape key, not a dollar sign. Also, DDT prints a single quote ' whenever it recognizes a symbol for the first time; when you see a ' in the sample output below, you are not expected to type this character.
First, you need to “mark” (format) the disk, so type
MARK$G' Format pack on unit #0 Are you sure you want to format pack on drive # 0 (Y or N) y Pack no?0« Pack 0., Drive #0 is serial #17. Begin formatting 815. cylinders....Hardware formatting complete. Verify pack? (Y or N) n«Be sure you answer in the negative when asked to verify the pack. For technical reasons beyond the scope of this document, verification does not work (and isn't necessary anyway, since our simulated disk won't have any hardware errors).
You will then be asked for some filesystem parameters:
Swapping Alloc? 3000« Pack #0. ID?foobar« DDT
Of course, you can choose any name of six characters or less for the Pack ID in place of “foobar” above.
The disk is now formatted, and the Salvager returns you to DDT.
Important note: If you are using SIMH V3.0-0 only, you will need to reboot the Salvager tape at this point. This is because of a bug in the “read header” function in the RP device. The bug is fixed in V3.0-1 and later, so only users of V3.0-0 need to perform this step:
^E Simulation stopped, PC: 773131 (POPJ 1,0) sim> b tu1« ITS MTBOOT.176
TRAN$G onto unit #0 Copy from unit #5 onto unit #0, OK (Y or N) y“Unit #5” is just the Salvager's name for the tape drive. It has no real significance. Once you type y, a flood of filenames should scroll by as the MINSYS files are loaded. Each filename should be followed by OK to show that the file loaded without error. (The elipsis (...) indicates where the sample output has been trimmed for brevity.) When all the files have been transferred, EOT will be printed, followed by the DDT prompt:
Tape #0 .;@ DDT OK .;ITS RM03 OK .;ITS RM80 OK .;ITS RP06 OK .;ITS RP07 OK .;SALV RM03 OK .;SALV RM80 OK .;SALV RP06 OK ... SYS2;TS FTP OK DEVICE;TCP SYN025 OK SYS;SYSTEM MAIL OK EOT DDT
^E Simulation stopped, PC: 773035 (JRST 0,773034) sim> b tu2« ITS MTBOOT.176 $G DSKDMPDSKDMP knows how to read an ITS filesystem and load files into memory (and write files back to disk). By default, filenames are expected to be in the . directory and to have @ as the first filename (the convention for standalone executable files).
Load a copy of standalone (Exec) DDT from .; @ DDT like so:
l$ddt«Then load a copy of the ITS binary which is appropriate for the disk type you are using (
.; ITS RP06in our case). We use the
Tcommand which gives the file's symbols to DDT, and then starts DDT:
t$its rp06«Now you are back in DDT, but you still need to go back to DSKDMP, so type ESC-u.
$U DSKDMPNow merge in a copy of the Salvager binary appropriate for your disk type (RP06):
m$salv rp06«And finally, dump the whole thing out as .; @ ITS as so:
d$its«You can list the . directory with the F command:
f$ #00 @ ITS #00 RAM RAM #00 BT RP07 #00 BT RP06 #00 BT RM80 #00 BT RM03 #00 DSKDMP RP07 #00 DSKDMP RP06 #00 DSKDMP RM80 #00 DSKDMP RM03 #00 SALV RP07 #00 SALV RP06 #00 SALV RM80 #00 SALV RM03 #00 ITS RP07 #00 ITS RP06 #00 ITS RM80 #00 ITS RM03 #00 @ DDTYou should notice that the first filename in the listing is now @ ITS which is the file you just built.
its« $G Salvager 255If all goes well, you should soon start seeing bootup messages from ITS:
DB ITS 1633 IN OPERATION DB ITS 1633 SYSTEM JOB USING THIS CONSOLE. THE KS-10 CLOCK HAS BEEN RESET, IF THE TIME CANNOT BE DETERMINED FROM THE NETWORK, YOU MAY HAVE TO :PDSET YEAR, PDTIME OFFSET, NOT ON DISK. PLEASE SETLOC APPROPRIATELY. LOGIN TARAKA 0 TOP LEVEL INTERRUPT 40 DETACHED JOB # 2, USR:TARAKA DRAGONNow ITS is in full timesharing mode and waiting for you to log in on the console. Type ^Z to get its attention:
^Z DB ITS.1633. DDT.1546. TTY 0 You're all alone, Fair share = 99% (ITS does not know the date, so messages cannot be reviewed right now.)
:pdset« (Please Log In) ___002 PDSET IOTLSR PDSET.114 Please don't use this program unless you know how. You are certain to break something if you happen to hit the wrong key. Type Control-Z to exit, or ? for a reminder of the commands.The “Please Log In” message is a harmless reminder that you haven't told ITS your login name yet. It can be ignored for now.
First tell PDSET the correct century, since it will assume it is in the 1900s by default. Then tell it the date and time in YYMMDD and HHMMSS format. Any line which is messed up can be re-entered. When you are satisfied that it is correct, type !. (exclamation point, and then period).
For example, on July 20, 2003 at 3:02PM, you would type:
20C 030720D 150200T !. 113375/ 0 770201,,513056 ___002 113374/ 0 3723 ___002 IT IS NOW 3:02:00 PM EDT, SUNDAY, JUL 20,2003Additionally, you may see some lines from TARAKA informing you that it is copying the ITS image.
TARAKA DMPCPY . _DMPCP OUTPUT WRITE 15:02:02 TARAKA DMPCPY . @ ITS DELRNM 15:02:02This is a normal function which TARAKA performs, and no cause for alarm. In any case, type q to leave the PDSET program.
Q :KILL *
:ksfedr« (Please Log In) ERROR: File not found: PK0000: .; .FEFS. PK0000 !create« ___002 KSFEDR . .FEFS. PK0000 WRITE 15:06:01 FE filesystem DSK: .; .FEFS. PK0000 on pack #0. Directory address: 6600000004 !write« Are you sure you want to scribble in the FE filesystem? yes« Which file? bt« Input from (Default DSK: ___004; BT BIN): .;bt rp06« !quit« :KILL *The above sequence creats a front-end filesystem on your disk, and write the RP06-specific bootstrap to it from the MINSYS installation. If this were a real KS10, you would also need to write a microcode file, but the simulated KS10 doesn't need it.
Make a note of the number after “Directory address” (6600000004 in the sample above). You will need it in stage 2.
Note that you must affirm your desire to scribble in the FE filesystem with the full word “yes”; a simple “y” is not sufficient. Note also the .; (dot and semicolon) before bt rp06 in the input filename.
Now use the LOCK program to take the system down, as so:
:lock« (Please Log In) LOCK.154 _5kill DO YOU REALLY WANT THE SYSTEM TO GO DOWN? y ___002 LOCK SYS DOWN MAIL WRITE 15:18:41 PLEASE ENTER A BRIEF MESSAGE TO USERS, ENDED BY ^CSince you're the only one on the system, you can just type ^C. ITS will then complete the shutdown process (it takes about a minute):
DB ITS going down in 5:00 CULPRIT = ___002 LOCK 15:19:06 _ DB ITS 1633 NOT IN OPERATION 15:19:06 PFTHMG DRAGON CHANNA _DRGN_ TIMES WRITE 15:19:06 PFTHMG DRAGON CHANNA LOGOUT TIMES DELRNM 15:19:06 SHUTDOWN COMPLETE PI LEVEL 7 BUGDDT. TYPE <ALTMODE>P TO CONTINUE. YOU ARE NOW IN DDT. BUGPC/ CAIA COFFI4+1 $Q-2/ JRST COFFI7
^E Simulation stopped, PC: 773034 (PUSHJ 1,773130) sim> b tu1« ITS MTBOOT.176Use the FESET utility in Salvager to make the disk bootable:
FESET$G' Set the FE filesystem directory pointer on the pack on unit #0 Directory address: 6600000004« DDTThe directory address is the one you got from KSFEDR in stage 1. Now type ^E to get back to the simulator front-end console and type quit to leave the simulator altogether:
^E Simulation stopped, PC: 773130 (SKIPN 5,32) sim> quit« Goodbye $Now copy the configuration file, init, that you made at the beginning of this procedure, to the new name boot. Edit boot with a text editor and remove the following three lines:
at tu0 minsys.tape at tu1 salv.rp06.tape at tu2 dskdmp.rp06.tapesince the tape images aren't needed anymore. Then add this line to the bottom of the file:
b rp0This tells the simulator to immediately boot from disk unit 0 when it is started.
$ pdp10 boot« PDP-10 simulator V3.0-0 DSKDMPAs before, load the standalone .; @ ITS from disk and start it with ESC-g as so:
its« $G Salvager 255 .TEMP. has no files, User File Directory DELETED DB ITS 1633 IN OPERATION DB ITS 1633 SYSTEM JOB USING THIS CONSOLE. THE KS-10 CLOCK HAS BEEN RESET, IF THE TIME CANNOT BE DETERMINED FROM THE NETWORK, YOU MAY HAVE TO :PDSET LOGIN TARAKA 0 TOP LEVEL INTERRUPT 40 DETACHED JOB # 2, USR:TARAKA DRAGONLogin with ^Z and use PDSET as previously described to set the current time.
At this point, you have a minimal multiuser ITS system.