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 and TCP/IP.

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.

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.

Next follows an exampe session on how to install to disk, in case you start from the tape image:

---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.

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.

The time is, howeer, set based on the assumption that you are in central europe (as that is where I am). If you want another time offset, you can change it via the configuration of TCP/IP.

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

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.

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.

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 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]: ^Z
>@ 
>
---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: