Installing SITS on SIMH
Brief notes on installing SITS on SIMH.
Contents
Introduction
SITS is cross-assembled from ITS, using the PALX assembler. These are the major components:
- SITS is the kernel.
- RUG is a DDT-like memory resident debugger, like ITS' non-time-sharing DDT. It can also handle a variety of media for reading and writing files.
- SALV is the disk salvager, same as in ITS.
- SYSSPR is the system sphere, the first program run by SITS.
- DDT is the user interface command processor, like DDT/HACTRN in ITS.
- INQUIR handles a user database, like on ITS.
- FNT is a system program which loads fonts for use on the TV displays.
SIMH configuration
set cpu 11/45 set cpu 216k set pclk enabled set ptr enabled set ptp enabled set dci enabled address=17774000 vector=300 lines=1 set dh enabled address=17760020 vector=340 set rk enabled address=17777400 vector=220 set ng enabled address=17764040 vector=270 set tv enabled address=17764100 set mb enabled address=17770000 vector=374 at -U dci 20001 at -U dh 20002 at rk0 rk0.dsk at rk1 rk1.dsk at rk2 rk2.dsk at rk3 rk3.dsk
Optionally, set cpu idle
may be used to reduce host CPU usage.
Assembling from source code
Login to ITS and assemble — at a minimum — RUG, SALV, SITS, SYSSPR, DDT, and FNT. RUG is the file AR in the RUG directory. All the other programs are in the SITS directory. Then take the BIN files and punch them to paper tape, or save them to magnetic tape.
This is a transcript of logging in, and then assembling RUG and SITS. The rest of the programs are processed just like SITS.
KA ITS.1651. DDT.1548. TTY 41 You're all alone, Fair share = 99% user$u *:cwd rug *:palx ar PALX 280 0=>GUY45, 1=>LOGO45, 2=>TV20, 3=>FREDKIN 11/40, 4=>OTHER COMPUTER=1 RUG FOR THE LOGO 11/45 TEN11=1 F.HD=0 DM11=0 KL11=0 M.HD=1 FPTR=1 FPP=1 M1145=1 M1140=0 M40FPU=0 HCOR=160000 CSTBL=30000 FILE DUMP=1 LINE ADDRESS=174000 DC SPEED=31 RUGEND=151134 1.6 Words Average Instruction Length 0 Seconds Runtime :KILL *:cwd sits *:palx sits PALX 280 SYSTEM END = 135614 24. K 1.6 Words Average Instruction Length 2 Seconds Runtime :KILL
This shows how to save the BIN files to tape:
:dump DUMP .447 _rewind _dump FILE=rug; ar bin FILE=sits; salv bin FILE=sits bin FILE=sysspr bin FILE=ddt bin FILE=fnt bin FILE= TAPE NO=0 _quit :KILL
Prepare media
Have these absolute loader paper tapes ready:
- SALV
- RUG
Run RUG; PUNCH on ITS to read these PALX binaries and punch out paper tapes:
- SALV BIN
- SITS BIN
- SYSSPR BIN
- DDT BIN
- FNT BIN
PUNCH will divide the output in a series of tapes. It will valret in NEWBLK; continue with $P when a new tape has been mounted.
PUNCH will valret at EDONE when finished.
This transcript shows how to start PUNCH in the RUG directory, and then punch out SITS BIN in the RUG format. The first .VAL messages is when PUNCH stops for the user to mount a new paper tape. This is optional. The last .VAL is when PUNCH is done, and can be killed.
*:cwd rug *punch^K! * SITS;SITS BIN .VAL 0; 523>>MOVEI 3,144 3/ -1 $p .VAL 0; 523>>MOVEI 3,144 3/ -1 $p .VAL 0; 523>>MOVEI 3,144 3/ -1 $p .VAL 0; 523>>MOVEI 3,144 3/ -1 $p .VAL 0; 523>>MOVEI 3,144 3/ -1 $p .VAL 0; 523>>MOVEI 3,144 3/ -1 $p .VAL 0; 523>>MOVEI 3,144 3/ -1 $p .VAL 0; 523>>MOVEI 3,144 3/ -1 $p .VAL 0; 543>>SETZM 605 605/ -1 $^X. *
Format disks
Boot the SALV paper tape.
SALV will print a * prompt. For each of the four disk packs, type nI to format the pack. Only the first needs to be a "Rug disk".
SALV 174 *0Init sure?Y FFormat?N Rug disk?Y Reserved for syms file: 144-200 Swap area 1: 1000-2000 Swap area 2: Reserved: 0 Reserved: 4-23 Reserved: 54-143 Reserved: 201-217 Reserved: Writing block 000050 Writing block 000047 Disk name: SITS0 Writing block 000046 Writing block 000045 *
Install system files
Boot the RUG paper tape.
RUG will print a * prompt. First, type $^D to copy RUG to disk.
Load SALV, SITS, SYSSPR, DDT, and FNT from paper tape, and save them to disk. For each program type $L P: to load from tape. RUG will halt when it's time to mount the next tape, and return to the * prompt after the last tape. Type $Y to save the program to disk. The files are written to the "." directory on disk 0. Save SALV as the name DAZZEL. This is the default name for loading a file from RUG.
RUG can also load from a serial line with $L T: or over the Rubin 10-11 interface with $L M:, but this requires running ITS on the other end.
*$^D *$L P: HALT instruction, PC: 140522 (DECB R3) *$Y 0: DAZZEL *$L P: HALT instruction, PC: 140522 (DECB R3) HALT instruction, PC: 140522 (DECB R3) HALT instruction, PC: 140522 (DECB R3) HALT instruction, PC: 140522 (DECB R3) HALT instruction, PC: 140522 (DECB R3) HALT instruction, PC: 147604 (DECB R3) HALT instruction, PC: 147604 (DECB R3) HALT instruction, PC: 147604 (DECB R3) *$Y 0: SITS *$L P: HALT instruction, PC: 147604 (DECB R3) *$Y 0: SYSSPR *$L P: HALT instruction, PC: 140522 (DECB R3) HALT instruction, PC: 140522 (DECB R3) HALT instruction, PC: 140522 (DECB R3) HALT instruction, PC: 147604 (DECB R3) HALT instruction, PC: 147604 (DECB R3) *$Y 0: DDT *$L P: HALT instruction, PC: 140522 (DECB R3) *$Y 0: FNT *
Start SITS
Boot the RUG paper tape. (If RUG is already in memory, start it from 157000.) When started, RUG will print a * prompt.
Type $L 0: and enter. This will load SALV. Now type $G to start, getting SALV's * prompt.
Type G to check all disks. When done, SALV will go back to RUG through a special entry point which loads and starts SITS.
SITS starts the system sphere which prints SITS IS UP! You can now type ^Z on a teletype or DO IT on a TV keyboard to log in.
*$L 0: *$G SALV 174 *G Checking disk SITS0 Disk SITS0 refreshed 1713 blocks free out of 2436 Checking disk SITS1 Disk SITS1 refreshed 1919 blocks free out of 2436 Checking disk SITS2 Disk SITS2 refreshed 1919 blocks free out of 2436 Checking disk SITS3 Disk SITS3 refreshed 1919 blocks free out of 2436 SITS IS UP!
See SITS tutorial for what to do next.