ITS: More disk space?

98 views
Skip to first unread message

Steven A. Falco

unread,
Jun 11, 2024, 5:33:56 PMJun 11
to PiDP-10
I'd like to have more disk space available under ITS. There are currently four RP03 drives, with about 400 blocks free on each drive, but I'm trying to assemble ITS with a listing (/L switch to midas), and the resulting listing file exceeds the available space.

Has anyone tried adding more disks or perhaps regenerating the system for bigger drives (such as RP06)?

Alternatively, is there a way to use network storage? I wouldn't expect NFS :-), but I wonder if ITS had a similar concept that might help.

Also, can packs be mounted / unmounted? I'd imagine that hackers back in the day would want to be able to do that, perhaps to mount a scratch pack, but I haven't found any hints about that. If I could mount a scratch pack, that might give me enough space for my experiment. But given how ITS uses the M.F.D top-level directory, maybe there is no such concept as mount/unmount in ITS?

Steve

Tim Radde

unread,
Jun 11, 2024, 6:34:48 PMJun 11
to PiDP-10
Could you simply add some RP06s to the Simh .ini file.  This would allow you to not have to regen the system, but you could direct your output to one of the RP06 drives? I think the RP06 was usable on the 10s?

Eric Swenson

unread,
Jun 11, 2024, 7:33:58 PMJun 11
to Tim Radde, PiDP-10
I don’t think it is possible to do what Tim suggests.  I think a KA ITS system uses RP03s, and you cannot mix disk types in ITS.  You can, however, add more RP03s.  

However, when you do this, you actually have to format the new pack with a salvager that knows about the additional drive, and you must rebuild ITS to expect more drives.  I did write up an INFO topic on the subject — however, I wrote it up for the KLH10 simulator, not the pdp10-ka simulator.  Here is the topic, with some notes, in read, as to the differences for pdp10-ka.  I haven’t tested these with KA ITS though, so you may have to tweak them a bit.

This info topic is in the pdp-10/its repository under doc/info/tips.2.

I HIGHLY recommend you make a copy of your existing rp03.N files in case you mess something up.  Then you can just repeat the process after restoring your old disks.

Please let me know if you find a mistake in these instructions.  We should update the doc/info/tips.N file in the source tree if there are errors.
——

File: TIPS,  Node: Adding an additional disk, Next: Build new version of SALV or NSALV, Up: TOP

* Menu:

* Build new version of SALV or NSALV::
* Build new version of ITS::
* Build new version of DSKDMP (optional)::
* Shut down ITS::
* Update emulator configuration for new disks::
* Boot SALV or NSALV::
* Format new disk pack::
* Copy user directories from first disk to new disk(s)::
* Create new bootable ITS::
* Boot new ITS::

File: TIPS,  Node: Build new version of SALV or NSALV, Up: Adding an additional disk, Next: Build new version of ITS

1. Edit the file KSHACK;NSALV > or SYSTEM;SALV >. Use this for KA.
2. Update NDRIVE to specify the total number of drives desired.
   For RP06 and RP07 drives, the number of drives equals the number of packs.
   For a 1-pack system (default), NDRIVE==1. If you are adding a second drive, change this to NDRIVE==2.
3. Update NUNITS to specify the total number of pasks desired.
   For RP06 and RP07 drives, the number of drives equals the number of packs. 
   For a 1-pack system (default), NUNITS==1. If you are adding a second pack, change this to NUNITS==2.
4. Update LASTPK to specify the 0-based number of the last pack
   For a 1-pack system (default), LASTPK==0.  If you are adding a second disk/pack, change this to LASTPK==1.
5. Back up active version of NSALV or SALV:
   a. For NSALV:
     :RENAME .;nsalv bin,nsalv obin
   b. For SALV:
     :RENAME .;salv bin,salv obin
5. Assemble a new NSALV or SALV:
   a. For NSALV:
     :MIDAS dsk0:.;_kshack;nsalv
   b. For SALV:
     :MIDAS dsk0:.;_system;salv

File: TIPS,  Node: Build new version of ITS, Previous: Build new version of SALV or NSALV, Up: Adding an additional disk, Next: Build new version of DSKDMP (optional)

1. Edit the file SYSTEM; CONFIG >.
2. Update the value of NQS to reflect number of packs.
   For a 1-pack system (default), NQS==1.  If you are adding a second pack, change this to NQS==2.
3. Back up active ITS binary:
   :RENAME .;its bin,oits bin
4. Assemble a new ITS:
   :MIDAS dsk0:.;_system;its

File: TIPS,  Node: Build new version of DSKDMP (optional), Previous: Build new version of ITS, Up: Adding an additional disk, Next: Shut down ITS

This step is optional, however recommended. It is quite possible that you may need to perform operations
from DSKDMP on the new drive. Your existing DSKDMP may only know about your current number of drives,
and therefore not be able to manipulate your new drive.  If this is the case you should update DSKDMP
to know about the new drive and reassble it.

1.  Edit the file SYSTEM; DSKDMP >.
2.  Make sure that the value of NDSK is equal or greater than the total number of disks you have defined in ITS.
3.  Back up active DSKDMP binary:
    :RENAME .;dskdmp bin,dskdmp obin
3.  Reassemble DSKDMP:
    :MIDAS DSK0:.;_SYSTEM;DSKDMP

File: TIPS,  Node: Shut down ITS, Previous: Build new version of DSKDMP (optional), Up: Adding an additional disk, Next: Update emulator configuration for new disks

1. Logout all users except on system console.
2. On system console, invoke LOCK to shut the system down
   LOCK^K
   5DOWN
   y
   ^C

3. Wait until ITS has shut down.

File: TIPS,  Node: Update emulator configuration for new disks, Previous: Shut down ITS, Up: Adding an additional disk, Next: Boot SALV or NSALV

This procedure is different for the various emulators used to boot ITS. For KLH10, update the dskdmp.ini file to
add a new line similar to this one:

  devdef dskN rh0.N rp type=rp06 format=dbd9 path=rpN.dsk iodly=0

where the value N is replaced with the the disk number.  For example, the default system contains a single line like this:

  devdef dsk0 rh0.0 rp type=rp06 format=dbd9 path=rp0.dsk iodly=0

If you are adding a single new disk, the resulting lines should look like this:

  devdef dsk0 rh0.0 rp type=rp06 format=dbd9 path=rp0.dsk iodly=0
  devdef dsk1 rh0.1 rp type=rp06 format=dbd9 path=rp1.dsk iodly=0

For KA, you’ll add them following this pattern:

at dpa0 ./rp03.2
at dpa1 ./rp03.3
at dpa2 ./rp03.0
at dpa3 ./rp03.1
at dpa4 ./rp03.4
at dpa5 ./rp03.5


File: TIPS,  Node: Boot SALV or NSALV, Previous: Update emulator configuration for new disks, Up: Adding an additional disk, Next: Format new disk pack

1. Boot the old (or new) version of DSKDMP.
2. Invoke NSALV or SALV.
   a. For NSALV:
      l$ddt
      t$nsalv bin
   b. For SALV:
      l$ddt
      t$salv bin

File: TIPS,  Node: Format new disk pack, Previous: Boot SALV or NSALV, Up: Adding an additional disk, Next: Copy user directories from first disk to new disk(s)

1.  Make sure you are in DDT with NSALV or SALV loaded.
2.  Format the new pack:

    MARK$G
    Format pack on unit #1 (make sure you use the next unit number, not existing ones!!!!)
    Are you sure you want to format pack on drive # 1 (Y or N) y
    Pack no ?1 (use appropriate pack number)
    Pack 1., Drive #1 is serial #2.
    Begin formatting 815. cylinders....Hardware formatting complete.
    Verify pack? (Y or N) n

    Swapping Alloc? 3000
    Pack #1. ID?DISK2 (don’t reuse an existing one)

    DDT
    
3.  Check the drive:

    CHKR$G
    
    Salvager 262

    Active unit numbers? 01 (use 012345, or whatever is appropriate for your system — list all drives starting with 0 up to the Nth one)
    Unit #1. ID is DISK2, Pack #1 (hardware says 0.)
    
    Unit #0. ID is FOOBAR, Pack #0 (hardware says 58562.)

    Use MFD from unit: 0
    Directories out of phase.
    Unit #0, Pack 0. Ascending dir number is 212
    Unit #1, Pack 1. Ascending dir number is 0
    Verify that the proper packs are mounted.
    If you aren't sure, get help.  If they are proper,
    and one is just coming on-line after being off for
    a while, you will have to UCOP to it.
    Read all blocks of all files? (Y or N) 
    Get user dirs from unit: 0

    Write out changes in MFD (y or N) y

    DDT

File: TIPS,  Node: Copy user directories from first disk to new disk(s), Previous: Format new disk pack, Up: Adding an additional disk, Next: Create new bootable ITS

Make sure are in DDT with NSALV or SALV loaded in memory.

Copy user directories from unit 0 to unit 1. (Replace with your new unit number)
    
    UCOP$G

    Copy directories
    From unit #0
    
    only unit #1(Replace with your new unit number)
    Copy from unit #0 onto unit #1, OK (Y or N) y

Note that no DDT prompt is provided at the end of UCOP. Just wait about 10 seconds.  You can tell if you are back to DDT
by typing a DDT command. For example:

   0/

That should display the contents of location 0.
File: TIPS,  Node: Create new bootable ITS, Previous: Copy user directories from first disk to new disk(s), Up: Adding an additional disk

1. Make sure you are in DSKDMP.  If you are at DDT, type:

  $U

2. Load DDT and ITS into memory:

  l$ddt
  t$its bin

3. Reenter DSKDMP.

  $U

4. Merge in NSALV or SALV
   a. For NSALV:
      m$nsalv bin
   b. For SALV:
      m$salv bin

5. Dump out its

   d$nits

6. Start ITS

   g$

7.  If ITS doesn't start, reenter DSKDMP:

   $U

8. And load and start the new ITS:

   nits
   $g


File: TIPS, Node: Boot new ITS, Previous: Create new bootable ITS, Up: Adding an additional disk

1. Make sure you are in DSKDMP. If you are at DDT, type:

   $U

2. Load and run ITS.

   nits


-- 
You received this message because you are subscribed to the Google Groups "PiDP-10" group.
To unsubscribe from this group and stop receiving emails from it, send an email to pidp-10+u...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/pidp-10/33a1f270-b78d-4c60-8776-c2889dbb34b0n%40googlegroups.com.

Tim Radde

unread,
Jun 11, 2024, 8:26:26 PMJun 11
to Eric Swenson, PiDP-10
Having never used ITS it was just a thought.  Would TOPS-10 be able to use RP06s?  That's what was running on the KA-10 at Penn State.  I remember the drives were behind
the machine and would be swapped later in the day after the day users finished.  We were not allowed to do much during the day as it was used by many of the different collegiate users for payroll? or some official stuff.  I was never sure.  Around 4pm or maybe 5pm they'd power down the current disks and load the ones we used as regular users for classwork and such.  I do not remember if they were RP03s or maybe RP04s?

Clem Cole

unread,
Jun 11, 2024, 9:13:41 PMJun 11
to Tim Radde, Eric Swenson, PiDP-10
On Tue, Jun 11, 2024 at 8:26 PM Tim Radde <timr...@gmail.com> wrote:
Having never used ITS it was just a thought.  Would TOPS-10 be able to use RP06s? 
Yes 

Richard C

unread,
Jun 11, 2024, 9:51:42 PMJun 11
to PiDP-10
Problem with ITS is that there is only one file system.

For TOPS10 6.03 and above you can use RP06 devices (7.02 and above is only RP06 I believe). My load scripts will allow you to load onto a RP06 system.

With Tops10 it is also possible to create a second structure (DSKC), and give yourself more room. You have hook this up on DPBx. Structures on TOPS 10 can span several disks.

Rich

Eric Swenson

unread,
Jun 11, 2024, 10:13:07 PMJun 11
to Steven A. Falco, PiDP-10
You can’t mount/unmount disk packs while ITS is running.

ITS supports external/network disk-like devices that support the MLDEV protocol. I think also the LISPM FILE protocol.

So, for example, if you have two ITS systems connected by Internet or Chaosnet networks, you can read/write from/to the other machine using a file name like:

OT:dir;fn1 fn2

Where OT is the two or three-character machine name. You need links in the DEVICE directory for JOBDEV OT, linked to SYS;ATSIGN MLDEV.

You also need to make ITS aware of the other machine as well as have host table entries the other system on each system.

I’ve used this trick when I was running low on disk space on ES. I moved large files to EX and then later expanded the disks on ES and then moved the files back.

— Eric (KC6EJS)

> On Jun 11, 2024, at 14:33, Steven A. Falco <steve...@gmail.com> wrote:
>
> I'd like to have more disk space available under ITS. There are currently four RP03 drives, with about 400 blocks free on each drive, but I'm trying to assemble ITS with a listing (/L switch to midas), and the resulting listing file exceeds the available space.
> --
> You received this message because you are subscribed to the Google Groups "PiDP-10" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to pidp-10+u...@googlegroups.com.
> To view this discussion on the web visit https://groups.google.com/d/msgid/pidp-10/d61563b8-c398-4491-8985-45e1fb0db7b3%40gmail.com.

Steven A. Falco

unread,
Jun 12, 2024, 9:38:52 AMJun 12
to pid...@googlegroups.com
Thanks to everyone for all the suggestions!

I'll try the approach of adding drives. It doesn't sound too difficult. If that doesn't do it, then I'll play with having a separate networked file store, but that sounds trickier.

Steve
>> On Tuesday, June 11, 2024 at 4:33:56 PM UTC-5 steve...@gmail.com <http://gmail.com/>wrote:
>>
>> I'd like to have more disk space available under ITS. There are currently four RP03 drives, with about 400 blocks free on each drive, but I'm trying to assemble ITS with a listing (/L switch to midas), and the resulting listing file exceeds the available space.
>>
>> Has anyone tried adding more disks or perhaps regenerating the system for bigger drives (such as RP06)?
>>
>> Alternatively, is there a way to use network storage? I wouldn't expect NFS :-), but I wonder if ITS had a similar concept that might help.
>>
>> Also, can packs be mounted / unmounted? I'd imagine that hackers back in the day would want to be able to do that, perhaps to mount a scratch pack, but I haven't found any hints about that. If I could mount a scratch pack, that might give me enough space for my experiment. But given how ITS uses the M.F.D top-level directory, maybe there is no such concept as mount/unmount in ITS?
>>
>> Steve
>>
>>
>> --
>> You received this message because you are subscribed to the Google Groups "PiDP-10" group.
>> To unsubscribe from this group and stop receiving emails from it, send an email topidp-10+...@googlegroups.com <mailto:pidp-10+u...@googlegroups.com>.
>> To view this discussion on the web visithttps://groups.google.com/d/msgid/pidp-10/33a1f270-b78d-4c60-8776-c2889dbb34b0n%40googlegroups.com <https://groups.google.com/d/msgid/pidp-10/33a1f270-b78d-4c60-8776-c2889dbb34b0n%40googlegroups.com?utm_medium=email&utm_source=footer>.
>
> --
> You received this message because you are subscribed to the Google Groups "PiDP-10" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to pidp-10+u...@googlegroups.com <mailto:pidp-10+u...@googlegroups.com>.
> To view this discussion on the web visit https://groups.google.com/d/msgid/pidp-10/E215D943-1B07-4857-AB36-C39B658AE477%40swenson.org <https://groups.google.com/d/msgid/pidp-10/E215D943-1B07-4857-AB36-C39B658AE477%40swenson.org?utm_medium=email&utm_source=footer>.

Steven A. Falco

unread,
Jun 12, 2024, 5:41:11 PMJun 12
to pid...@googlegroups.com
On 6/11/24 07:33 PM, Eric Swenson wrote:
> I don’t think it is possible to do what Tim suggests.  I think a KA ITS system uses RP03s, and you cannot mix disk types in ITS.  You can, however, add more RP03s.
>
> However, when you do this, you actually have to format the new pack with a salvager that knows about the additional drive, and you must rebuild ITS to expect more drives.  I did write up an INFO topic on the subject — however, I wrote it up for the KLH10 simulator, not the pdp10-ka simulator.  Here is the topic, with some notes, in read, as to the differences for pdp10-ka.  I haven’t tested these with KA ITS though, so you may have to tweak them a bit.
>
> This info topic is in the pdp-10/its repository under doc/info/tips.2.
>
> I HIGHLY recommend you make a copy of your existing rp03.N files in case you mess something up.  Then you can just repeat the process after restoring your old disks.
>
> Please let me know if you find a mistake in these instructions.  We should update the doc/info/tips.N file in the source tree if there are errors.

Your instructions are excellent. I now have eight drives on my system, and lots of free space:
^F
KA .
FREE BLOCKS #2=462 #3=476 #0=465 #1=399 #4=8451 #5=8425 #6=8396 #7=6823

I needed a few tries to figure out the correct answers to some of the questions that the tools ask. I referred to the build logs that I got when I rebuilt the https://github.com/PDP-10/its project, which gave me enough hints.

One gotcha though - for some reason, "@ NITS" initially showed up on dsk0, but as soon as I booted the system, it moved to one of the new drives. At that point I could no longer start the system, because DSKDMP gave me a "pack not mounted" error. And trying to do L$0$ gave me a "file not found" error. I worked around that by starting from scratch and executing:

:move @ nits, dsk0:

which put it back in the correct place.

I've been typing up notes for myself in case I need to revisit this someday. I attached a copy of what I have so far, in case they would be helpful to others.

One thing I haven't figured out is what an underscore means on the midas command line. In other words, how do I parse something like ":midas dsk0:.;_system;salv"?

I get that dsk0: is a drive and .; is apparently the destination directory, but what does _system; mean? It looks like a directory too, and I guess that the _ refers to the source directory, but if someone could confirm that, I'd appreciate it. Or is _ simply a separator between the destination and source?

Steve

more.disks

Eric Swenson

unread,
Jun 12, 2024, 6:15:44 PMJun 12
to Steven A. Falco, PiDP-10
We should update my INFO;TIPS > document in the pdp-10/its repo.

What I do, when I create either the BIN or @ files in the “.” directory is to specify the full filename, including device.  For example:

:MIDAS dsk0:.;nits bin_system;its

The underscore in the MIDAS command line separates the target from the source.  The syntax is generally:

:MIDAS <switches> <target filename>_<source filename>

So if you use this command line:

:MIDAS dsk0:.;nits bin_system;its

The source is SYSTEM; ITS > and the target is DSK0:.;NITS BIN

In other sources, the source to assemble is SYSTEM;ITS >.

— Eric

--
You received this message because you are subscribed to the Google Groups "PiDP-10" group.
To unsubscribe from this group and stop receiving emails from it, send an email to pidp-10+u...@googlegroups.com.

Steve Falco

unread,
Jun 12, 2024, 8:47:26 PMJun 12
to er...@swenson.org, pid...@googlegroups.com

Got it. Thanks.

I'll look at adding some text to the tips file and submit that as a PR.

Steve

Reply all
Reply to author
Forward
0 new messages