This page contains information about an RSX image that have been created for the PiDP-11.

Content

Information

The PiDP-11 is a miniature replica of the PDP-11/70 console, usually coupled with simh. The disk image documented on this page is actually usable with any PDP-11 emulation/simulation, but represents a version of RSX-11M-PLUS V4.6 with lots of patches applied. Most of these patches have not been made available in any other form, and many are not that easy to apply on your own, so this image represent an already patched and running system, which makes the whole problem already solved for the normal user.

In addition, the image contains an already installed DECnet, TCP/IP and RPM, making it easy to keep the system up to date for the different components, and easy to install any other layered products that the user wish to have available.

On initial booting of the image, a configuration dialog is performed, which sets the system up in a suitable way for the users specific network. This configuration address both machine name, DECnet, TCP/IP, possible Multinet connections and some basic system information like time zones.

If you have any questions about the information on this page, the system image discussed here, or about RSX in general, please contact me: Johnny Billquist, bqt@softjar.se.

Image content/configuration

The image have a generated RSX-11M-PLUS V4.6 system on it, with the following configuration:

Getting the image

The image is available via ftp from ftp://ftp.dfupdate.se/pub/pdp11/rsx/pidp/

There are two images available:

Both images are compressed with gzip.

pidp.dsk

The .dsk image is a ready to boot 1G disk image of RSX. Nothing more is required to use this disk image. However, it is not easy to use if you already have a running system which you want to upgrade to this image. It is also already setup with a 1G disk. If it is desired to have any other size of the disk, this image is also not that suitable.

pidp.tap

The .tap image is an e11 format tape image that is bootable. There is very little required in order to install from the tape image, and it will allow you to freely choose how large a file system you want to have. It is also more suitable for upgrading an existing system with this new version of the system, without affecting other things you might already have on your system.

HECnet PIDP.TAP

As an alternative, if you are already on HECnet with an RSX machine, you can also download MIM::KITS:PIDP.TAP, or ftp://kits@mim.stupi.net/PIDP.TAP, which is an RSX virtual tape image that can be used from inside RSX to update/install the PiDP image onto a system.

Configuration of simh

The configuration file for simh is nothing very special. An example, very simple config is shown below:
---8<---
set cpu 11/70
set cpu 4096
set cpu idle
set rq0 rauser=1024
set tq0 write
att -f tq0 e11 pidp.tap
att rq0 pidp.dsk
set clk 50
set dz lines=8
att dz 42,speed=*32
set xu ena
set xu type=delua
set xu mac=aa:00:04:00:ea:04
att xu en0
set xu throttle
---8<---
Using this configuration, you can then boot either tq0 or rq0, depending on if you want to boot from the disk or the tape. Note that here it is assumed you want rq0 to be a 1G disk. Just change the number after "rauser=" to whatever size you want the disk to be, in megabytes. (Note: RSX do not support disks larger than 8G. If you have a larger disk, RSX will only use the first 8G of it.)

Installing from tape

Next follows an exampe session on how to install to disk, in case you start from the tape image (user input in bold):
---8<---
sim> boot tq


RSX-11M/RSX-11M-PLUS STANDALONE COPY SYSTEM V4.8


RSX-11M/RSX-11M-PLUS Standalone Configuration and Disk Sizing Program

Valid switches are:
        /CSR=nnnnnn to change the default device CSR
        /VEC=nnn to change the default device vector
        /FOR=n to change the default magtape formatter number
        /DEV to list all default device CSR and vectors


Enter first device: MU0:

Enter second device: DU0:

Hit RETURN and enter date and time as 'TIM HH:MM MM/DD/YY'

>tim 22:45 4/13/23
>tim
22:45:02 13-APR-2023
>run bad
>
BAD>DU0:
BAD -- DU0: Total bad blocks= 0.
BAD>^Z

>run bru
>
BRU>/rew/bac:pidp/ini mu0: du0:
BRU - Starting Tape 1 on MU0:

BRU - End of Tape 1 on MU0:

BRU - Completed

BRU>^Z

>
Simulation stopped, PC: 001344 (CLRB (R1)+)
sim> 
---8<---

Booting the system

The first time the system is booted, it will enter a dialog where you get some questions to answer, which allows you to change the system name, enable/disable DECnet, select the DECnet node number (and thus also the MAC address), and configure TCP/IP. It also allows you to setup what timezone you are in, and what frequency your line clock is running at.

The questions should be pretty simple to understand and answer. The TCP/IP configuration already on the system is that it will use DHCP, only start up ntp, telnet server and ftp server, and nothing more. If this is enough, then you do not even need to reconfigure the TCP/IP part, but if you do choose to change the configuration, all questions will have as the default answer the current configuration, so it's easy to simply change the bits you want to change, and leave the rest as it is.

After the first boot, this configuration dialog will not be repeated, however, it is possible to run the configuration manually at any point in time.

Any change to the configuration done after the system have completed the booting will only take effect after the next boot.

The boot process will ask a few questions. All questions have a default answer, and a timeout, so that if left unattended, the system will boot up to normal operation with networking.

Note specifically that if no date/time is given, the system will start up with an incorrect time. However, during the start of the TCP/IP system, correct time will be set using NTP.

If there is a need for some special testing/troubleshooting, you can boot and not run through the network startup.

Operating the system once booted

Once the system have completed booting, the console is logged out, and you will need to log in. There are two accounts existing on the system image, and these are the same as after a normal RSX installation: You can create addition accounts, and change passwords on accounts as much as you want. There is no need to preserve the initial accounts.

One suggestion is to create a user with DCL as the command line interface. This CLI is much easier to use and understand than MCR, which is the CLI used for the two pre-created accounts.

When using DCL, if you are not familiar with RSX, it might be a good idea to give the command "SET TERMINAL/SERIAL" and "SET TERMINAL/CONTROL=C".

This will make your session work much more like you are probably used to. If this is not set by default on your terminal, you might want to consider putting these commands into your LOGIN.CMD file.

In case you just want to use DCL on your current session, no matter which account you logged into, and what CLI that account have by default, you can always switch your CLI at any time.

Of course, you can select other CLIs than DCL. Which CLIs exist can be seen with "CLI /SHOW".

Time zones/daylight savings time

When initially configured, you setup the time zone information for the system for both normal time and daylight savings time. You also specify if daylight savings time is currently on.

When daylight savings time changes, this needs to be told to the system. This can be done rather easily at any time:

If the TZ command script is invoked without any arguments, it goes into the configuration dialog. If you do this by mistake, just stop the script by entering ^Z. Nothing will be changed in your configuration until the scipt has run to completion.

Installing additional software - RPM

Initially, no other layered software is installed on the system except DECnet, TCP/IP and RPM. With RPM, you can then install any other software you want to have.

RPM have an initial configuration of using TCP/IP and communicating with Mim.Stupi.NET for the RPM repository. If you want to change this, you need to configure RPM: "@[RPM]RPM CONFIG"

To see what packages exist, try: "@[RPM]RPM LIST"

For more information, checkout the RPM documentation.

Getting on to HECnet

This system image already have all the bits installed that is required for connecting to HECnet. If you have the required information when running the configuration script, the information can be entered then and there, and the machine should automatically connect to HECnet.

However, in case you just want to change information later, the configured links can be found in the file LB:[IPNET]IPNET.CFG.

For more information on HECnet, see the HECnet page.

Once you are on HECnet, the first thing you want to do is getting your nodename database populated. There are tools available for this. The following section describes the steps you need to take to get a fully populated nodename database, and how to updated it later.

Here is an example output from running NNC:
---8<---
$ RUN LB:[5,54]NNCFSL



    To select a menu item, enter the letter to the left of 
    the item's description at the prompt. Your choices are: 

         A) Collect node names and addresses and build a node
             name database from them
         B) Reorganize an existing node name database
         C) Exit

    Enter your choice here [Default:C] > A



    To select a menu item, enter the letter to the left of 
    the item's description at the prompt. Your choices are: 

         A) Input node names and addresses from the terminal
         B) Collect node names and addresses from old CETAB.MAC
             files
         C) Collect node names and addresses from another node
         D) Build the node name data base and exit to the main
             menu
         E) Exit to the main menu without building the node
                   name data base

    Enter your choice here [Default:D] > C



    Enter the name of the node from which you want to
    collect node definitions. To return to the previous
    menu, enter CTRL-Z or press RETURN without entering
    a node name. (NOTICE: Depending on network activity,
    line speed, and the number of definitions being collected
    from the remote node, this operation could take up to
    several hours to complete.)

    Enter your choice here [Default:] > MIM



    Enter the name of the node from which you want to
    collect node definitions. To return to the previous
    menu, enter CTRL-Z or press RETURN without entering
    a node name. (NOTICE: Depending on network activity,
    line speed, and the number of definitions being collected
    from the remote node, this operation could take up to
    several hours to complete.)

    Enter your choice here [Default:] > 



    To select a menu item, enter the letter to the left of 
    the item's description at the prompt. Your choices are: 

         A) Input node names and addresses from the terminal
         B) Collect node names and addresses from old CETAB.MAC
             files
         C) Collect node names and addresses from another node
         D) Build the node name data base and exit to the main
             menu
         E) Exit to the main menu without building the node
                   name data base

    Enter your choice here [Default:D] > 

    1042. node definitions have been loaded into DU0:[005,054]NNS.DAT;253



    To select a menu item, enter the letter to the left of 
    the item's description at the prompt. Your choices are: 

         A) Collect node names and addresses and build a node
             name database from them
         B) Reorganize an existing node name database
         C) Exit

    Enter your choice here [Default:C] > 
$ SCP STOP
SCP-I-1: The node name server was successfully stopped.
$ SCP START
SCP-I-1: The node name server was successfully started.
$ 
---8<---
In addition to this initial bootstrap of the node name database,
you can create a batch file to do all of these steps automatically.
You can just copy the next section and put it in a file named
"NNC.BAT", and then you can SUBMIT NNC to update your
node name database at any time.
---8< NNC.BAT ---
$job
$run lb:[5,54]nncfsl
a
c
mim



$scp stop
$scp start
$eoj
---8<---

Updating your running system with this image

Updating an existing system with this disk image can be fairly straight forward, assuming you are happy with the basic content and configuration of the image. The following section assumes that you are logged into a privileged account, your system disk is DU0: and the tape with the PIDP RSX image is mounted on MU0:, and shows an example of how to do the update:
---8<---
>mou mu:/for
>bru /noini/ufd/new/bac:pidp mu: du:
BRU - Starting Tape 1 on MU0:

BRU - End of Tape 1 on MU0:

BRU - Completed

>set /def=[1,54]
>pip rsx11m.sys/nv/co/bl:2050.=rsx11m.tsk
>ins $vmr
>vmr @sysvmr

Loading Executive data space
Data space loading completed
VMR -- *DIAG*-Installed tasks or commons may no longer fit in partition
SET /TOP=SYSPAR:-*
VMR -- *DIAG*-Loadable driver larger than 4K
LOA TT:
VMR -- *DIAG*-Installed tasks or commons may no longer fit in partition
SET /TOP=DRVPAR:-*
SECPOL 117734 00200400 01000000  SEC POOL
SYSPAR 117670 01200400 00205400  MAIN
       117624 01200400 00115300  RO COM !DIR11M!
       117434 01315700 00005200  TASK   [...LDR]
       117230 01323100 00033300  TASK   [MCR...]
       117024 01356400 00010500  TASK   [TKTN  ]
       116620 01367100 00003200  TASK   [SHF...]
       116414 01372300 00013500  TASK   [RCT...]
DRVPAR 116334 01406000 00147300  MAIN
       116270 01406000 00006700  RO COM !TTEXT !
       116204 01414700 00020700  RO COM !TTCOM !
       116120 01435600 00035000  DRIVER (TT:)
       115320 01472600 00003500  DRIVER (DL:)
       115254 01476300 00005100  RO COM !PUCOM !
       114454 01503400 00014000  DRIVER (DU:)
       114120 01517400 00011500  DRIVER (MU:)
       113730 01531100 00000100  DRIVER (NL:)
       113664 01531200 00017400  DRIVER (VF:)
       113620 01550600 00000300  DRIVER (CO:)
       113554 01551100 00002500  DRIVER (VT:)
       113510 01553600 00001500  DRIVER (RD:)
GEN    113444 01555300 15222500  MAIN
...LDR 12.01  117500  SYSPAR 248. 00005200 LB0:-00522631 FIXED
TKTN   07.01  117070  SYSPAR 248. 00010500 LB0:-00554221 FIXED
F11MSG 15.00  111240  GEN    200. 00006300 LB0:-00542504
MTAACP 17.00  110644  GEN    200. 00016200 LB0:-00547167
SHE... 06.01  110374  GEN    200. 00014500 LB0:-00552637
MCR... 08.00  117274  SYSPAR 160. 00033300 LB0:-00546144 FIXED
F11ACP 07.00D 113230  GEN    149. 00041000 LB0:-00541223
ERRLOG 05.03  112670  GEN    148. 00056300 LB0:-00541070
PMT... 02.02  112230  GEN    148. 00007500 LB0:-00550100
COT... 02.04  111364  GEN    145. 00014300 LB0:-00535324
HRC... 05.00  110770  GEN    140. 00042500 LB0:-00543270
PMD... 07.05  110520  GEN    140. 00017600 LB0:-00550050
SYSLOG 04.04  111760  GEN    130. 00024500 LB0:-00553077
SHF... 07.01  116664  SYSPAR 105. 00003200 LB0:-00552656 FIXED
RCT... 06.02  116460  SYSPAR 100. 00013500 LB0:-00550544 FIXED
UML... 02.01  111634  GEN    100. 00023500 LB0:-00554262
FXR... 03.02  111114  GEN    100. 00003300 LB0:-00542476
BAP0   04.11  113014  GEN     80. 00050300 LB0:-00533001
QMG... 06.04  112104  GEN     75. 00037300 LB0:-00550503
LP0    07.04  112450  GEN     70. 00020300 LB0:-00545462
ACNT   06.10  111510  GEN     50. 00057300 LB0:-00532367
SHUTUP 04.04  110250  GEN     50. 00016500 LB0:-00552663
...RMD 05.00  002042+ GEN    225. 00042000 LB0:-00550566
...DCL 06.01  002016+ GEN    160. 00062500 LB0:-00535631
...DMO 04.02  002020+ GEN    160. 00017400 LB0:-00536605
...MCR 08.36  002034+ GEN    160. 00040300 LB0:-00546201
...MOU 26.06  002036+ GEN    160. 00045600 LB0:-00547076
...CA. 01.00  002072+ GEN    150. 00026200 LB0:-00553126
...INS 17.00  002032+ GEN    100. 00053300 LB0:-00544155
...SAV 11.00  002066+ GEN    100. 00070500 LB0:-00523100
...UFD 07.03  002074+ GEN    100. 00023700 LB0:-00554234
...VCP V04.10 002076+ GEN     90. 00020300 LB0:-00554431
...ACS 04.00  002050+ GEN     70. 00006200 LB0:-00532622
...ACC 05.00  002010+ GEN     65. 00032100 LB0:-00532130
...SHA 06.01  002070+ GEN     65. 00032200 LB0:-00552464
...AT. 10.0   002024+ GEN     64. 00056500 LB0:-00543541
...INI 24.00  002026+ GEN     60. 00037300 LB0:-00544061
...HOM 24.00  002030+ GEN     60. 00037300 LB0:-00544061
...BRO 09.10  002012+ GEN     50. 00041600 LB0:-00533130
...BYE 06.05  002014+ GEN     50. 00022000 LB0:-00533435
...HEL 06.10  002022+ GEN     50. 00031600 LB0:-00542634
...PIP 22.00  002040+ GEN     50. 00027500 LB0:-00547574
...UNL 05.04  002044+ GEN     50. 00021500 LB0:-00554357
...ACD 03.00  002046+ GEN     50. 00042600 LB0:-00532221
...BOO 03.10  002052+ GEN     50. 00047300 LB0:-00532727
...CON 05.00  002054+ GEN     50. 00135600 LB0:-00535122
...ELI 04.04  002056+ GEN     50. 00032600 LB0:-00541033
...LOA 05.03  002060+ GEN     50. 00040100 LB0:-00545265
...MAG 03.00  002062+ GEN     50. 00037300 LB0:-00546102
...PSW 03.03  002064+ GEN     50. 00017600 LB0:-00550166
YLA     OFL     CPA     CSR=177560      VEC=60  PRI=5
YZA     OFL     CPA     CSR=160100      VEC=300 PRI=5
DLA     OFL     CPA     CSR=174400      VEC=160 PRI=5
DUA     OFL     CPA     CSR=172150      VEC=154 PRI=5
MUA     OFL     CPA     CSR=174500      VEC=260 PRI=5
VF0:                    OFL     DRIVER
VF1:                    OFL     DRIVER
CO0:                    OFL     DRIVER
TT0:    YLA0:           OFL     DRIVER
TT1:    YZA0:           OFL     DRIVER
TT2:    YZA1:           OFL     DRIVER
TT3:    YZA2:           OFL     DRIVER
TT4:    YZA3:           OFL     DRIVER
TT5:    YZA4:           OFL     DRIVER
TT6:    YZA5:           OFL     DRIVER
TT7:    YZA6:           OFL     DRIVER
TT10:   YZA7:           OFL     DRIVER
VT0:                    OFL     DRIVER
RD0:                    ONL     DRIVER
DL0:    DLA0:           OFL     DRIVER
DL1:    DLA1:           OFL     DRIVER
DL2:    DLA2:           OFL     DRIVER
DL3:    DLA3:           OFL     DRIVER
DU0:    DUA0:           OFL     DRIVER
DU1:    DUA1:           OFL     DRIVER
DU2:    DUA2:           OFL     DRIVER
DU3:    DUA3:           OFL     DRIVER
MU0:    MUA0:           OFL     DRIVER
NL0:                    OFL     DRIVER
POOL=1200:13280.:13280.:2004
>boo rsx11m
XDT: 87  

XDT>g
RSX-11M-PLUS V4.6   BL87  


>
 sav


RSX-11M-PLUS V4.6  BL87   1920.KW  System:"PIDP  "
>RED DU:=SY:
>RED DU:=LB:
>RED DU:=SP:
>MOU DU0:"RSX11MPBL87"
>@DU:[1,2]STARTUP
>* Please enter time and date (HH:MM DD-MMM-YYYY) [S T:1M]: ^Z
>@ 
>sav /wb
DMO -- System disk being dismounted
DMO -- SYSTEM  dismounted from DU0:    *** Final dismount initiated ***
00:00:12  *** DU0:  -- Dismount complete
>


RSX-11M-PLUS V4.6  BL87   1920.KW  System:"PIDP  "
>RED DU:=SY:
>RED DU:=LB:
>RED DU:=SP:
>MOU DU0:"RSX11MPBL87"
>@DU:[1,2]STARTUP
>* Please enter time and date (HH:MM DD-MMM-YYYY) [S T:1M]: 

---8<---
What happens in this example is that first the contents of the tape is restored to your existing system, with all files restored with new versions, so that they are picked in preference of any existing files with the same names that already exists on the system.

Next, a new system image is created from the compiled kernel. This image needs to be large enough to contain the memory dump of the running system, and be contiguous.

After that, VMR is used to prepare the image for use, which means setting up and installing partitions, device drivers, tasks and other parameters. Once this has been done, the system image is in a good enough state to be booted.

At the first boot of a new system image, you get to the kernel debugger. All that is required here is that the execution is allowed to start, so just the simple 'G' command is required. After that, the system is up and running.

At this point, you have a runnig system. However, you do not want to get into the kernel debugger every time you boot the image. So you save the current memory state back to the system image at this point, so that any new boot will get back to this exact point. It is also good to do the plain SAV command here, without any addtional switches, as that confirms that the system is working correctly even after a reboot. If anything would fail here, you will still be booting the old system if a boot scratch to the disk is done.

Once it has been confirmed that your new system image boots fine, you save it again, but this time adding the switch "/WB", which means writing the boot block. That means that future boots from this disk will now boot to this system image.

You can have several bootable images on a disk. Each one can be booted by just giving the filename of the system image as an argument to the BOOT command in RSX. However, there can only be one hardware bootable system image, which is pointed out by the boot block.

At this point, you have your new system image, and all updated tasks, networking and so on installed.

On a final note - if you already had programs installed using RPM in the past, then it is recommended that you delete [RPM]INSTALLED.LST; as this is a file that was installed during this upgrade, and it does not reflect what packages you already have installed. If this is not done, no big harm is done, but RPM will not think that those packages are installed anymore, and will not apply any updates to them until you install them again, even though they are already installed.

Generating your own system based on this image

In case you want a different configuration of your system, the existing binaries in the distrubution will not be sufficient for you. You will instead need to generate your own system.

This is a more complex task, but rest assured that all the sources and libraries for the patched versions of all components of RSX have been included in the distribution.

For generating your own system, it is recommended that you read the appropriate RSX manuals on the topic.

This text should be expanded on, but the general outlines for generating your own system is:

Additional information and suggestions

Hopefully you now have your RSX-11M-PLUS system up and running. You may then ask yourself, where do I go from here, what can I do with this, or how does xxx work?

First of all, there is a lot of manuals available for RSX. See the manuals page to start. There you will find documentation both on RSX itself, and a lot of layered products, and networking.

There are a few things people often want to do/know, so here is a short list of answers/pointers for those: