Difference between revisions of "Installing SITS on SIMH"

From Computer History Wiki
Jump to: navigation, search
(SIMH configuration.)
(Install system files: Must be a $L missing here.)
 
(14 intermediate revisions by the same user not shown)
Line 3: Line 3:
 
===Introduction===
 
===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 [[Incompatible Timesharing System|ITS]]' non-[[time-sharing]] DDT.  It can also handle a variety of media for reading and writing [[file]]s.
 
* RUG is a [[DDT]]-like memory resident [[debugger]], like [[Incompatible Timesharing System|ITS]]' non-[[time-sharing]] DDT.  It can also handle a variety of media for reading and writing [[file]]s.
* SALV is the disk salvager, same as in ITS.
+
* SALV is the disk salvager, same as in [[Incompatible Timesharing System|ITS]].
 
* SYSSPR is the system sphere, the first program run by SITS.
 
* SYSSPR is the system sphere, the first program run by SITS.
 
* DDT is the [[user interface]] [[command processor]], like DDT/HACTRN in ITS.
 
* DDT is the [[user interface]] [[command processor]], like DDT/HACTRN in ITS.
Line 14: Line 17:
 
<pre>
 
<pre>
 
set cpu 11/45
 
set cpu 11/45
set cpu 192k
+
set cpu 216k
  
set ke enabled
 
 
set pclk enabled
 
set pclk enabled
 
set ptr enabled
 
set ptr enabled
 
set ptp enabled
 
set ptp enabled
 
set dci enabled address=17774000 vector=300 lines=1
 
set dci enabled address=17774000 vector=300 lines=1
set vh enabled  address=17760020 vector=340 lines=16
+
set dh enabled  address=17760020 vector=340
 
set rk enabled  address=17777400 vector=220
 
set rk enabled  address=17777400 vector=220
 
set ng enabled  address=17764040 vector=270
 
set ng enabled  address=17764040 vector=270
Line 28: Line 30:
  
 
at -U dci 20001
 
at -U dci 20001
at -U vh 20002
+
at -U dh 20002
 
at rk0 rk0.dsk
 
at rk0 rk0.dsk
 
at rk1 rk1.dsk
 
at rk1 rk1.dsk
Line 35: Line 37:
 
</pre>
 
</pre>
  
At the time of writing, the TV and MB devices have not yet been merged into mainline SIMH.
+
Optionally, <code>set cpu idle</code> 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.
 +
<pre>
 +
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 
 +
</pre>
 +
 
 +
This shows how to save the BIN files to tape:
 +
<pre>
 +
: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
 +
</pre>
  
 
===Prepare media===
 
===Prepare media===
Line 53: Line 129:
  
 
PUNCH will valret at EDONE when finished.
 
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.
 +
<pre>
 +
*: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.
 +
*
 +
</pre>
  
 
===Format disks===
 
===Format disks===
Line 58: Line 153:
 
Boot the SALV paper tape.
 
Boot the SALV paper tape.
  
SALV will print a * prompt.  For each disk pack, type ''n''I to format the pack.
+
SALV will print a * prompt.  For each of the four disk packs, type ''n''I to format the pack.  Only the first needs to be a "Rug disk".
 
 
===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.  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.
 
 
 
===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!
 
 
 
===Transcripts===
 
 
 
This shows SALV used to format a disk.  Other disks are done similarly, but only the first needs to be a "Rug disk".
 
  
 
<pre>
 
<pre>
Line 94: Line 165:
  
 
Swap area 1:  1000-2000
 
Swap area 1:  1000-2000
 
 
Swap area 2:
 
Swap area 2:
  
Line 113: Line 183:
 
*</pre>
 
*</pre>
  
This shows how to read five programs from paper tapes and save them to disk.  Each HALT corresponds to a change of paper tape.  The files are written to the "." directory on disk 0.
+
===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.
  
 
<pre>
 
<pre>
Line 120: Line 198:
 
HALT instruction, PC: 140522 (DECB R3)
 
HALT instruction, PC: 140522 (DECB R3)
 
*$Y  0:  DAZZEL
 
*$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)
Line 144: Line 223:
 
*</pre>
 
*</pre>
  
This shows how to start SITS.
+
===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.
  
 
<pre>*$L  0:   
 
<pre>*$L  0:   
Line 164: Line 251:
  
 
SITS IS UP!</pre>
 
SITS IS UP!</pre>
 +
 +
See [[SITS tutorial]] for what to do next.
  
 
[[Category: SIMH Tutorials]]
 
[[Category: SIMH Tutorials]]

Latest revision as of 06:25, 8 September 2023

Brief notes on installing SITS on SIMH.

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.