pdp11-70
PAR
ERR
ADRS
ERR
RUN
PAUSE
MASTER
USER
SUPER
KERNEL
DATA
16
18
22
 
  USER D
  USER I
  SUPER D
  SUPER I
  KERNEL D
  KERNEL I
  CONS PHY  
  PROG PHY
rotary button
ADDRESS  
lock
PARITY
HIGH
LOW
DATA  
  DATA PATHS  
  U ADDRS
  BUS REG  
  DISPLAY
  REGISTER
rotary button
21
20
19
18
17
16
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0

LOAD
ADRS
EXAM
DEP
CONT

ENABLE
HALT

S INST
S BUS
START
DEL to Ctrl/H

PDP 11/70 Emulator v1.4   September 2016

This emulator came about because years ago I was a programmer for RSTS/E on a PDP 11/45 and had admired the console idle loop light pattern - but I couldn't quite remember how it looked. Given the lack of availability of real systems it became time to write an emulator!

I was going to start with a PDP 11/45 emulator but the extra memory of a PDP 11/70 became far too attractive (a whole 4MB!). It took some time before I finally produced a PDP 11/45 version.

I have met my core objective - I can now see the RSTS/E console light pattern that I was looking for, and found that newer versions (eg v9.6) have a different pattern. Also I have now seen some of the light patterns for other OSes. RSX and BSD 2.11 have their own different patterns and Unix V5 operates with absolute minimum light movement (I'm assuming it operates mostly in WAIT mode).

Note: The boot code in this emulator is a custom PDP 11 program running with it's own set of light patterns. It operates by mapping a WAIT instruction to different addresses within Supervisor mode, and is invoked by the LIGHTS command. The source for this program can be found in the RT11 operating environment as BOOT.MAC

If you plan to run the emulator repeatedly or for a project, consider downloading the emulator to your own machine or server. This will significantly speed any of the emulator disk accesses and response times. All files and emulator OS disks can be found in the top level folder of http://skn.noip.me/pdp11/ or in the single zip file http://skn.noip.me/pdp11/pdp11.zip

Note: If you are running a local copy of the emulator you may have to allow local file access. For chrome this is done using the -allow-file-access-from-files option. Under windows start chrome using the file name of the chrome application with this option:
  "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" -allow-file-access-from-files
On a Mac use:
  open -a "Google Chrome" --args --allow-file-access-from-files

There are many PDP emulators out there and I have never seen what I consider to be a complete list. Some of the really interesting ones can be found by googling terms such as "vhdl pdp 11". However the gold standard seems to be SIMH at Trailing Edge. I believe that the first PDP 11 emulator would be SIM-11 written in FORTRAN before the first PDP 11/20 hardware was even built - see How the PDP-11 Was Born. There is more PDP 11 history at www.hampage.hu.

Of course if you want your own PDP 11/70 front panel you might consider one of these.

Happy emulating!

Paul Nankervis

List of guest OS's:

DiskOSComment
RK0Unix V5 Boot using: unix then login as root
RK1RT11 v4.0 The lightest/fastest OS here
RK2XXDP Diagnostic OS and utilities
RK3RT-11 3B Distribution for RT-11 Version 3B
RK4RT-11 V5.4F Distribution for RT-11 Version 5.4F
RL0BSD 2.9 Boot using: rl(0,0)rlunix   CTRL/D to get to multiuser
RL1RSX 11M v3.2 Login as 1,2 with password SYSTEM
RL2RSTS/E v7.0 Option: <LF> Suboption: <LF> ... Login as 1,2 with password system
RL3XXDP Larger version of diagnostics - including PDP 11/70 utilities
RP0ULTRIX-11 V3.1 CTRL/D to enter multiuser mode. Login as root with no password
RP1BSD 2.11 Will autoboot and enter multiuser mode. Login as root with no password
RP2RSX 11M v4.6 Starts logged in as 1,2 - accounts 1,2 and 200,1 have no password
RP3RSTS/E v9.6 Answer boot questions and login as 1,2 with password SYSTEM

Note: Disks are shown in approximately order size. The RK05 disks at the top are small and not too bad to use across a network. The RP06 disks at the bottom can be rather slow.

Youtube video 1

Youtube video 2

Example boot of Unix V5

BOOT> boot rk0
@unix

login: root
# date
Fri Mar 21 12:09:02 EST 1975
# chdir /etc
# pwd
../etc
# ls -al
total 40
drwxr-xr-x  2 bin       240 Mar 21 12:07 .
drwxr-xr-x  9 bin       160 Jan 29 16:14 ..
-rwxr--r--  1 bin       474 Nov 26 18:13 getty
-rwxr-xr-x  1 bin      1446 Nov 26 18:13 glob
-rwxr--r--  1 bin      1972 Nov 26 18:13 init
-rwxr-xr-x  1 bin       814 Nov 26 18:13 lpd
-rwxr--r--  1 bin      4136 Nov 26 18:13 mkfs
-rwxr--r--  1 bin      1800 Nov 26 18:13 mknod
-rwsr-xr-x  1 root     2078 Nov 26 18:13 mount
-rw-r--r--  1 bin        49 Nov 26 18:13 passwd
-rw-r--r--  1 bin        70 Nov 26 18:13 rc
-rw-r--r--  1 bin        56 Nov 26 18:13 ttys
-rwsr-xr-x  1 root     1990 Nov 26 18:13 umount
-rwxr-xr-x  1 bin        32 Nov 26 18:13 update
-rw-r--r--  1 root      144 Mar 21 12:09 utmp
# cat /etc/passwd
root::0:1::/:
daemon::1:1::/bin:
bin::3:1::/bin:
# cal 10 1981
      Oct 1981
 S  M Tu  W Th  F  S
             1  2  3
 4  5  6  7  8  9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
# ls -al /bin
total 339
drwxr-xr-x  2 bin       944 Nov 26 18:13 .
drwxr-xr-x  9 bin       160 Jan 29 16:14 ..
-rwxr-xr-x  1 bin      1514 Nov 26 18:13 ar
-rwxr-xr-x  1 bin      7308 Nov 26 18:13 as
-rwxr-xr-x  1 bin      6042 Nov 26 18:13 bas
-rwxr-xr-x  1 bin       152 Nov 26 18:13 cat
-rwxr-xr-x  1 bin      5668 Nov 26 18:13 cc
...

Example boot of RT11 v4.0

BOOT> boot rk1
RT-11SJ  V04.00C

.D 56=5015

.TYPE V4USER.TXT
Welcome to RT-11 Version 4. RT-11 V04 provides new hardware support
and some major enhancements over Version 3B
...
.D 56=0

.MAC BOOT
ERRORS DETECTED:  0

.LINK BOOT

.DIR BOOT

BOOT  .MAC    16                 BOOT  .OBJ     4
BOOT  .SAV     4
 3 Files, 24 Blocks
 2851 Free blocks

.DIR

SWAP  .SYS    25  01-Feb-82      RT11BL.SYS    65  01-Feb-82
RT11SJ.SYS    67  01-Feb-82      RT11FB.SYS    80  01-Feb-82
TT    .SYS     2  01-Feb-82      DT    .SYS     3  01-Feb-82
DP    .SYS     3  01-Feb-82      DX    .SYS     3  01-Feb-82
...

.R ADVENT

WELCOME TO ADVENTURE!!  WOULD YOU LIKE INSTRUCTIONS?

YES
SOMEWHERE NEARBY IS COLOSSAL CAVE, WHERE OTHERS HAVE FOUND FORTUNES IN
TREASURE AND GOLD, THOUGH IT IS RUMORED THAT SOME WHO ENTER ARE NEVER 
SEEN AGAIN.  MAGIC IS SAID TO WORK IN THE CAVE.  I WILL BE YOUR EYES
AND HANDS.  DIRECT ME WITH COMMANDS OF 1 OR 2 WORDS.  I SHOULD WARN 
YOU THAT I LOOK AT ONLY THE FIRST FOUR LETTERS OF EACH WORD, SO YOU'LL
HAVE TO ENTER "NORTHEAST" AS "NE" TO DISTINGUISH IT FROM "NORTH". 
(SHOULD YOU GET STUCK, TYPE "HELP" FOR SOME GENERAL HINTS.  FOR INFOR-
MATION ON HOW TO END YOUR ADVENTURE, ETC., TYPE "INFO".)
      - - - 
THIS PROGRAM WAS ORIGINALLY DEVELOPED BY WILLIE CROWTHER.  MOST OF THE
FEATURES OF THE CURRENT PROGRAM WERE ADDED BY DON WOODS (DON @ SU-AI).
THE CURRENT VERSION WAS DONE BY MIKE WESTON.

YOU ARE STANDING AT THE END OF A ROAD BEFORE A SMALL BRICK BUILDING.
AROUND YOU IS A FOREST.  A SMALL STREAM FLOWS OUT OF THE BUILDING AND 
DOWN A GULLY. 

EAST
YOU ARE INSIDE A BUILDING, A WELL HOUSE FOR A LARGE SPRING. 

THERE ARE SOME KEYS ON THE GROUND HERE. 

THERE IS A SHINY BRASS LAMP NEARBY. 

THERE IS FOOD HERE. 

THERE IS A BOTTLE OF WATER HERE.

TAKE FOOD
OK
...

Example boot of XXDP

BOOT> boot rk2

CHMDKB1 XXDP+ DK MONITOR
BOOTED VIA UNIT 2
28K UNIBUS SYSTEM

ENTER DATE (DD-MMM-YY): <CR>

RESTART ADDR: 152010
THIS IS XXDP+.  TYPE "H" OR "H/L" FOR HELP.

.D

ENTRY# FILNAM.EXT        DATE          LENGTH  START

    1  HDDKB0.SYS       2-JAN-70          2    000112
    2  HMDKB1.SYS       2-JAN-70         17    000113
    3  HDDKB1.SYS       2-JAN-70          2    000114
    4  HSAAC4.SYS       8-DEC-82         24    000115
....

Example boot of BSD 2.9

BOOT> boot rl0
:boot

70Boot
: rl(0,0)rlunix

CONFIGURE SYSTEM:
xp 0 csr 176700 vector 254 attached
rk 0 csr 177400 vector 220 attached
hk ? csr 177440 vector 210 skipped:  No CSR
rl 0 csr 174400 vector 160 attached
rp ? csr 176700 vector 254 interrupt vector already in use
ht 0 csr 172440 vector 224 skipped:  No CSR
tm 0 csr 172520 vector 224 skipped:  No CSR
...
Erase=^?, kill=^U, intr=^C
# ls -al
total 546
drwxr-xr-x11 root     daemon       512 Mar  7 09:00 .
drwxr-xr-x11 root     daemon       512 Mar  7 09:00 ..
-rw-rw-r-- 1 root     daemon       164 Sep 29 09:20 .cshrc
-rw-rw-r-- 1 root     daemon       266 Mar  7 08:43 .login
-rw-rw-r-- 1 root     superuse       2 Jul 26 16:00 .msgsrc
-rw-rw-r-- 1 root     daemon       116 Mar 30 00:59 .profile
-rw-r--r-- 1 root     superuse      56 Nov 20 16:03 2.9stamp
-rw-rw-r-- 1 root     superuse     450 Mar 30 00:50 READ_ME
drwxrwxr-x 2 bin      bin         1632 Nov 20 16:04 bin
-rwxrwxr-x 1 root     superuse   23572 Mar  7 09:05 boot
...
# cat /etc/passwd
root::0:2:The Man:/:/bin/csh
toor::0:2:The Man:/:
daemon:***:1:1:The devil himself:/:
sys:***:2:1::/:
bin:***:3:1::/:
uucp::4:1:UNIX-to-UNIX Copy:/usr/spool/uucppublic:/usr/lib/uucp/uucico
notes:***:5:1:Notesfiles maintainer:/usr/spool/notes:
anon:***:6:1:Notesfiles anonymous user:/usr/spool/notes:
news:***:7:1:News maintainer:/usr/spool/news:
wnj:ZDjXDBwXle2gc:8:2:Bill Joy,457E,7780:/a/guest/wnj:/bin/csh
dmr:AiInt5qKdjmHs:9:2:Dennis Ritchie:/a/guest/dmr:
ken:sq5UDrPlKj1nA:10:2:& Thompson:/a/guest/ken:
mike:KnKNwMkyCt8ZI:11:2:mike karels:/a/guest/mike:/bin/csh
carl:S2KiTfS3pH3kg:12:2:& Smith,508-21E,6258:/a/guest/carl:/bin/csh
joshua::999:2:&:/usr/games:/usr/games/wargames
# CTRL/D
Wed Dec 31 16:04:16 PST 1969
/etc/fstab: No such file or directory
/usr/sys: No such file or directory
init: /dev/tty07: cannot open
...

Berkeley Unix 2.9BSD

:login: root

Welcome to the 2.9BSD (Berkeley) UNIX system.

tty: Command not found.
# ls -al /bin
total 1182
-rwxrwxr-x 1 bin      bin         8692 Dec 31 16:59 #
drwxrwxr-x 2 bin      bin         1632 Nov 20 16:04 .
drwxr-xr-x11 root     daemon       512 Mar  7 09:00 ..
-rwxrwxr-x 2 bin      bin         2917 Dec 31 16:59 [
-rwxrwxr-x 1 bin      bin        30340 Mar 24 08:27 adb
-rwxrwxr-x 1 bin      bin         9844 Dec 31 16:58 ar
-rwxrwxr-t 1 bin      bin         5626 Sep 30 17:39 as
-rwxrwxr-x 1 bin      bin         4508 Jan 18 08:22 cat
-rwxrwxr-t 1 bin      bin         7314 Oct  9 04:04 cc
-rwxrwxr-x 1 bin      bin         5096 Dec 31 16:59 chgrp
-rwxrwxr-x 1 bin      bin         3364 Dec 31 16:59 chmod
...

Example boot of RSX 11M v3.2

BOOT> boot rl1

  RSX-11M V3.2 BL26   1912K  MAPPED
>RED DL1:=SY:
>RED DL1:=LB:
>MOU DL1:RSXM26
>@DL1:[1,2]STARTUP
>* Enter date and time ( dd-mmm-yy hh:mm ) [S]: 31-OCT-81 12:00
>TIM 31-OCT-81 12:00
...
>HEL 1,2
PASSWORD: system

        RSX-11M BL26   MULTI-USER SYSTEM

GOOD AFTERNOON
31-OCT-81 12:01 LOGGED ON TERMINAL TT0:

Welcome to RSX-11M V3.2 timesharing

>PIP /LI

DIRECTORY DL1:[1,2]
31-OCT-81 12:01

BOOT.MAC;1          15.        31-OCT-81 12:42
SYE.HLP;1           8.         26-MAY-79 13:52
EDTCOM.MSG;1        16.        26-MAY-79 13:52
...

Example boot of RSTS/E v7.0

BOOT> boot rl2

RSTS V7.0-07 Vixen (DL2)

Option: <LF>

You currently have: JOB MAX = 63, SWAP MAX = 31K.

Default memory allocation table specifies some existing memory
as being nonexistent.


Table will be reset by RSTS.

  Memory allocation table:

     0K: 00000000 - 00203777 (  33K) : EXEC
    33K: 00204000 - 00303777 (  16K) : RTS (BASIC)
    49K: 00304000 - 16737777 (1863K) : USER
  1912K: 16740000 - End              : NXM

  Table suboption? <LF>

You currently have crash dump enabled.
CRASH.SYS file of 50 blocks is not available
Crash dump automatically disabled

DD-MMM-YY? 31-OCT-81
12:00 PM? 12:00
INIT    V7.0-07A        RSTS V7.0-07 Vixen

Command File Name? <CR>
DETACHING...
...
HELLO 1,2
Password: system
Job 1 is detached under this account
Job number to attach to? <CR>
1 other user is logged in under this account

WELCOME TO RSTS/E V7.0 TIME SHARING

Ready

PRINT "Hello world",PI*4
Hello world     12.5664

Ready

DIR
 Name .Ext    Size   Prot    Date       SY:[1,2]
CREATE.LOG       3   < 60> 31-Oct-81
LOGIN .SAV      13   <232> 23-Sep-79
LOGOUT.SAV      11   <232> 23-Sep-79
PIP   .SAV      50   <232> 23-Sep-79
...

Ready

SYSTAT

RSTS V7.0-07 Vixen status at 31-Oct-81, 12:01 PM Up: 1:53

Job    Who    Where    What    Size    State    Run-Time  Pri/RB   RTS
 1    [SELF]  Det     ERRCPY   5/31K   SR            7.5    0/6   BASIC
 2    [SELF]  KB0     SYSTAT  11/31K   RN Lck        9.0   -8/6   BASIC

Busy Devices: None

Disk Structure:
Disk    Open    Free    Cluster Errors  Name    Comments
DL2       2     5568       2      0     VIXEN   Pub, DLW

Small   Large   Jobs    Hung TTY's      Errors
478       0      2/8        0              0

Run-Time Systems:
 Name   Ext       Size  Users   Comments
BASIC   BAC     16(16)K   2     Perm, Addr:33, KBM, CSZ
RT11    SAV      4(28)K   0     Temp, Addr:65, KBM, CSZ, EMT:255
TECO    TEC      8(24)K   0     Non-Res

Resident Libraries: None

Message Receivers:
 Name   Job     Msgs    Max     Senders
ERRLOG   1       0      40      Priv

Ready

RUN $UTILTY
UTILTY  V7.0-07E        RSTS V7.0-07 Vixen
#HELP

UTILTY  System Utility Program

UTILTY Commands        Meaning

LOGINS                 Enable logins.

NO LOGINS              Disable logins.

SET LOGINS n           Limit LOGINs to n jobs.

FORCE KBn:  TEXT       Force TEXT to a keyboard (n=KB number).  If "ALL"
                       is  used  in place of KBn:, all KB's are used.  A
                       control character may be  forced  by  placing  an
                       (UPARROW)  as  the first character of TEXT.  If ^
...

Example boot of XXDP

BOOT> boot rl3

CHMDLD0 XXDP+ DL MONITOR
BOOTED VIA UNIT 3
28K UNIBUS SYSTEM

ENTER DATE (DD-MMM-YY): <CR>

RESTART ADDR: 152010
THIS IS XXDP+.  TYPE "H" OR "H/L" FOR HELP.

.D

ENTRY# FILNAM.EXT        DATE          LENGTH  START

    1  MMDP  .SAV       3-MAR-83C        17    000310
    2  MTDP  .SAV       3-MAR-83C        17    000331
    3  HSAAD0.SYS       3-MAR-83         24    000352
    4  HSABC0.SYS       3-MAR-83         28    000402
    5  HSACC0.SYS       3-MAR-83         27    000436
    6  HSADB0.SYS       3-MAR-83         25    000471
    7  HUDIB0.SYS       3-MAR-83          5    000522
    8  HELP  .TXT       3-MAR-83         14    000527
...
.R EKBA??
EKBAD0.BIC
AA
CEKBAD0 11/70 CPU #1

END PASS
END PASS
END PASS
restart through switches

.R EKBE??
EKBEE1.BIC

CEKBEE0 11/70 MEM MGMT

CPU UNDER TEST FOUND TO BE A KB11-CM

END PASS #     1  TOTAL ERRORS SINCE LAST REPORT      0
END PASS #     2  TOTAL ERRORS SINCE LAST REPORT      0
END PASS #     3  TOTAL ERRORS SINCE LAST REPORT      0
END PASS #     4  TOTAL ERRORS SINCE LAST REPORT      0
END PASS #     5  TOTAL ERRORS SINCE LAST REPORT      0
....

Example boot of ULTRIX-11 System V3.1

BOOT> boot rp0

Sizing Memory...

Boot: hp(0,0)unix    (CTRL/C will abort auto-boot)

Load device (? for help, <RETURN> if none) < ht tm ts tk rx rl rc > ? <CR>

hp(0,0)unix: 14784+17024+8192+8000+8064+8000+8064+8128+8000+7808+7936+7936+7680+7360+1344

ULTRIX-11 Kernel V3.1

realmem = 3915776
buffers = 25600
clists  = 1600
usermem = 3756608
maxumem = 212992
erase = delete, kill = ^U, intr = ^C
# CTRL/D

Restricted rights:

        Use, duplication, or disclosure is subject
        to restrictions stated in your contract with
        Digital Equipment Corporation.

*UNIX is a trademark of AT&T Bell Laboratories.

Mounted /dev/hp01 on /usr
Mounted /dev/hp04 on /user1

Sat Oct 31 12:06:33 GMT-0:00 1981

ERROR LOG has - 1 of 200 blocks used

ULTRIX-11 System V3.1 (vixen)

login: root

Welcome to the ULTRIX-11 System

erase = delete, kill = ^U, intr = ^C
vixen# uname -a
ULTRIX-11 vixen 3 0 PDP-11/70
vixen# ps -xl

   F S UID   PID  PPID CPU PRI NICE   ADDR  SZ  WCHAN TTY TIME CMD
   3 S   0     0     0 205   0   20   3756   4  73326 ?   0:10 swapper
   1 S   0     1     0   0  30   20   4770  13 114226 ?   0:00 /etc/init
1101 S   0     2     1   0   5    0   6162  22 112272 ?   0:00 /etc/elc
   1 S   0    41     1   0  30   20   6433  16 114352 co  0:00 -sh
   1 R   0    49    41   6  50   20  10370  28        co  0:00 ps -xl
 201 S   0    33     1   0  40   20   5251   7 140000 ?   0:00 /etc/update
 201 S   0    37     1   0  40   20   7017  13 140000 ?   0:00 /etc/cron
vixen# w
 12:06pm  up  1 user,  load average: 0.00, 0.00, 0.00
User     tty       login@  idle   JCPU   PCPU  what
root     console  12:06pm            1         w
vixen# mount
hp01 on /usr
hp04 on /user1
vixen# df
Filesystem    total    kbytes  kbytes  percent
   node       kbytes    used    free   used    Mounted on
/dev/hp00       4606    3077    1529    67%    /
/dev/hp01       9629    3594    6035    37%    /usr
/dev/hp04     148244       2  148242     0%    /user1
vixen# set
HOME=/
IFS=

PATH=:/usr/ucb:/bin:/usr/bin:/etc
PS1=vixen#
PS2=>
SHELL=/bin/sh
TERM=dw3
TZ=GMT0
USER=root
vixen# cat /.profile
PS1=`hostname`'# '
echo "erase = delete, kill = ^U, intr = ^C"
if test `tty` = /dev/console
then
        stty dec prterase
else
        stty crt tabs
fi
PATH=:/usr/ucb:/bin:/usr/bin:/etc
export PATH
vixen# ls /etc
accton       fpsim        init         msf          protocols    termcap
arp          fsdb         ipatch       mtab         rawfs        tss
catman       fstab        labelit      networks     rc           ttys
cron         getty        log          newfs        rdate        ttytype
cshprofile   gettytab     lpdrestart   nu           remote       tzname
dcopy        group        lpset        nu.cf        route        umount
ddate        hosts        mkfs         nulib        rx2fmt       update
dmesg        hosts.equiv  mknod        passwd       services     utmp
elc          ifconfig     motd         printcap     syslog.conf  vipw
eli          inetd.conf   mount        profile      syslog.pid   volcopy
vixen#

Example boot of BSD 2.11

BOOT> boot rp1

70Boot from xp(0,1,0) at 0176700
Press <CR> to boot, or any other key to abort: 0
: xp(0,1,0)unix
Boot: bootdev=05010 bootcsr=0176700

2.11 BSD UNIX #2: Oct 31 04:05:24 PST 1981
    root@Sat:/usr/src/sys/VIXEN

phys mem  = 3915776
avail mem = 3684480
user mem  = 307200

hk ? csr 177440 vector 210 skipped:  No CSR.
ht ? csr 172440 vector 224 skipped:  No CSR.
ra ? csr 172150 vector 154 skipped:  No CSR.
rl 0 csr 174400 vector 160 attached
tm ? csr 172520 vector 224 skipped:  No CSR.
tms ? csr 174500 vector 260 skipped:  No CSR.
ts ? csr 172520 vector 224 skipped:  No CSR.
xp 0 csr 176700 vector 254 attached
Automatic reboot in progress...
Sat Oct 31 04:28:59 PST 1981
Sat Oct 31 04:28:59 PST 1981
checking quotas: done.
Assuming non-networking system ...
checking for core dump...
preserving editor files
clearing /tmp
standard daemons: update cron accounting.
starting lpd
starting local daemons: sendmail.
Sat Oct 31 04:29:02 PST 1981

2.11 BSD UNIX (vixen.2bsd.com) (console)

login: root
erase, kill ^U, intr ^C
# uname
2.11BSD
# ps -al
  F S   UID   PID  PPID CPU PRI NICE  ADDR  SZ WCHAN    TTY TIME COMMAND
  1 R     0    80    75   3  50   0  21600  59          co  0:00 ps -al
# cat /etc/passwd
root:*:0:1:The Man:/:/bin/sh
daemon:*:1:1:The devil himself:/:/bin/sh
sys:*:4:2:Operating System:/tmp:nologin
operator:*:2:5:System &:/usr/guest/operator:/bin/csh
bin:*:3:20:Binaries Commands and Source:/:/bin/csh
nobody:*:32767:31:Nobody:/nonexistent:/bin/sh
uucp:*:66:1:UNIX-to-UNIX Copy:/usr/spool/uucppublic:/usr/sbin/uucico
ingres:*:39:74:INGRES Owner:/usr/ingres:/bin/csh
# ls -al /sys/conf
total 147
drwxr-xr-x  5 root          512 Mar 31 13:55 .
drwxr-xr-x 23 root          512 Mar 31 15:45 ..
-r--r--r--  1 root          238 Dec 27  1986 :comm-to-bss
...
# cat > hello.c
#include <stdio.h>
main()
{
    printf("Hello world\n");
}
CTRL/D
# cc hello.c
# ls -al hello* a.out
-rwxr-x--x  1 root         5335 Mar 31 15:52 a.out
-rw-r-----  1 root           59 Mar 31 15:52 hello.c
# ./a.out
Hello world
# cd /sys/conf
# ed VIXEN
10271
/NPTY/
NPTY            0               # pseudo-terminals - GENERIC sys needs NONE
s/0/2/
.
NPTY            2               # pseudo-terminals - GENERIC sys needs NONE
w
10271
q
# ./config VIXEN
Creating ../VIXEN.
Copying standard files to ../VIXEN.
Setting configuration options for VIXEN.
Creating device header files.
Creating Makefile for VIXEN.
# cd /sys/VIXEN
# make
make -f Make.sys I=/usr/include H=../h M=../machine AS="/bin/as -V" .....
cc -O -DKERNEL -DVIXEN -DFPSIM -DSOFUB_MAP -I. -I../h -S ../sys/init_main.c
/bin/sed -f SPLFIX init_main.s | /bin/as -V -u -o init_main.o
rm -f init_main.s
cc -O -DKERNEL -DVIXEN -DFPSIM -DSOFUB_MAP -I. -I../h -S ../sys/init_sysent.c
/bin/sed -f SPLFIX init_sysent.s | /bin/as -V -u -o init_sysent.o
rm -f init_sysent.s
cc -O -DKERNEL -DVIXEN -DFPSIM -DSOFUB_MAP -I. -I../h -S ../sys/kern_acct.c
/bin/sed -f SPLFIX kern_acct.s | /bin/as -V -u -o kern_acct.o
rm -f kern_acct.s
cc -O -DKERNEL -DVIXEN -DFPSIM -DSOFUB_MAP -I. -I../h -S ../sys/kern_clock.c
/bin/sed -f SPLFIX kern_clock.s | /bin/as -V -u -o kern_clock.o
rm -f kern_clock.s
...
size unix
text    data    bss     dec     hex
50624   7792    23708   82124   140cc   total text: 118272
        overlays: 7680,7360,7680,7488,7488,7744,5632,6144,7680,2752
Compacting symbol table
symcompact unix
symcompact: 209 symbols removed
Compacting strings table
strcompact unix
rearranging symbols
symorder ../pdp/symbols.sort unix
./checksys unix
System will occupy 210528 bytes of memory (including buffers and clists).

               end {0075414}          nbuf {0017116}           buf {0044360}
             nproc {0017104}          proc {0061314}         ntext {0017106}
              text {0074354}         nfile {0017112}          file {0071720}
            ninode {0017110}         inode {0017200}      ncallout {0017114}
           callout {0035764}     ucb_clist {0017122}        nclist {0017120}
          ram_size {0000000}       xitdesc {0017176}      quotdesc {0000000}
         namecache {0036504}       _iosize {0010004}          nlog {0016156}
# make install
install -c -o root -g kmem -m 744 unix /unix
#

Example boot of RSX 11M 4.6

BOOT> boot rp2

  RSX-11M V4.6 BL56   1912.K MAPPED
>RED DB1:=SY:
>RED DB1:=LB:
>MOU DB1:RSXM56
>@DB1:[1,2]STARTUP
>* PLEASE ENTER TIME AND DATE (HR:MN DD-MMM-YY) [S]: <CR>
>TIM
00:00:11 29-APR-74
>* ENTER LINE WIDTH OF THIS TERMINAL [D D:132.]: <CR>
>SET /BUF=TI:132.
>ACS SY:/BLKS=1024.
>;
>; This system startup command file (LB:[1,2]STARTUP.CMD) contains a
>; template of commands to initialize the queue print spooler and queue
....
>INS LB:[1,54]INI.TSK
>INS LB:[1,54]MAC.TSK
>@ <EOF>
>BYE
Have a nice day
29-APR-74 00:00 TT0:  logged off VIXEN
>HELLO 200,1
Password: <CR>

RSX-11M BL56   [1,54] System     VIXEN
29-APR-74 00:00 Logged on Terminal TT0:

Good Morning

>@LOGIN.CMD
        <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
        |                                               |
        |     Hello.                                    |
        |                                               |
        |      You are now logged in on the             |
        |      RSX-11M Operating System.                |
        |                                               |
        |      This is the USER account.  Nothing       |
        |      that you do in this account can do       |
        |      any harm either to the system, or to     |
        |      this account.                            |
        |                                               |
        |      Use this account with the terminal       |
        |      warm-up session described in the book    |
        |      Introduction to RSX-11M.                 |
        |                                               |
        |      Take it easy.                            |
        |                                               |
        >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

>@ <EOF>
>DIR

Directory DB1:[200,1]
29-APR-74 00:00

GSA.MAC;1           19.        03-JAN-90 17:07
SEARCH.MAC;1        10.        03-JAN-90 17:07
RENAME.MAC;1        12.        03-JAN-90 17:07
....

Example boot of RSTS V9.6

BOOT> boot rp3

RSTS V9.6-11 VIXEN  (DB3) INIT V9.6-11

Today's date? 31-OCT-86

Current time? 10:02

Start timesharing? <Yes> <CR>

Cannot use extra 12K of buffers.  Reduced to 11K.

Size of monitor has changed from 73K to 72K.

Default memory allocation table shows LESS
memory than INIT detects on this machine.

Adjusting memory table.

  Memory allocation table:

     0K: 00000000 - 00437777 (  72K) : EXEC
    72K: 00440000 - 15163777 (1621K) : USER
  1693K: 15164000 - 16737777 ( 219K) : XBUF

Memory available to RSTS/E is 1912K words.

31-Oct-86 10:02 AM

11 devices disabled

Proceed with system startup? <YES> <CR>

 Beginning RSTS/E system startup...
31-Oct-86 10:02 AM   Installing monitor overlays
31-Oct-86 10:02 AM   Mounting disks
31-Oct-86 10:02 AM   Assigning logical names
31-Oct-86 10:02 AM   Starting error logging
31-Oct-86 10:02 AM   Setting system characteristics
31-Oct-86 10:02 AM   Installing run-time systems and libraries
31-Oct-86 10:02 AM   Setting terminal characteristics
31-Oct-86 10:02 AM   Defining system commands
31-Oct-86 10:02 AM   Setting printer characteristics
31-Oct-86 10:02 AM   Starting spoolers

*** From [1,2] on KB0: at 10:02 AM 31-Oct-86
** RSTS/E is on the air...

I1,2
Password: SYSTEM

Jobs detached under this account:
   Job  What  Size  State   Run-time   RTS
    1  ERRCPY 5K    SR           0.8  ...RSX
    3  PBS... 19K   SL           0.0  ...RSX
Job number to attach to? <CR>
Last logged in on 31-Oct-86, 10:02 AM detached.
2 other users are logged in under this account

$ systat

RSTS V9.6-11 RSTS/E V9.6 status at 31-Oct-86, 10:02 AM Up: 19

Job    Who    Where     What    Size    State    Run-Time  Pri/RB   RTS
 1     1,2    Det      ERRCPY   5/32K   SR            0.8    0/6    ...RSX
 2     1,2    KB0      SYSTAT  16/32K   RN Lck        0.1   -8/6    ...RSX
 3     1,2    Det      PBS...  19/32K   SL            0.0   -8/6    ...RSX

Busy Devices: None

Disk Structure:
Dsk  Open    Size      Free    Clu   Err Name      Level  Comments
DB3    18  340664  295280  86%   8     0 VIXEN      1.2   Pub, DLW

General  FIP                    Hung
Buffers  Buffers  Jobs/Jobmax   TTY's   Errors
  743      461       3/32         0        0

Run-Time Systems:
 Name   Typ   Dev    Size    Users  Comments
...RSX  TSK          0(32)K    3    Monitor, KBM
DCL     COM   DB3:   24(8)K    0    Temp, Addr:72, DF KBM
RT11    SAV   DB3:   4(28)K    0    Non-Res, KBM, CSZ, EMT:255
BASIC   BAC   DB3:  16(16)K    0    Non-Res, KBM, CSZ
TECO    TEC   DB3:  10(20)K    0    Non-Res, KBM

Resident Libraries:
 Name  Prot        Acct      Size  Users  Comments
CSPLIB < 42>  DB3:[  0,1  ]    8K    2    Temp, Addr:101
EDT    < 42>  DB3:[  0,11 ]   39K    0    Non-Res
RMSRES < 42>  DB3:[  0,10 ]    4K    1    Temp, Addr:1689
RMSLBA < 42>  DB3:[  0,10 ]    4K    1    Temp, Addr:140
RMSLBB < 42>  DB3:[  0,10 ]    3K    1    Temp, Addr:133
RMSLBC < 42>  DB3:[  0,10 ]    3K    1    Non-Res
RMSLBD < 42>  DB3:[  0,10 ]    2K    1    Temp, Addr:144
RMSLBE < 42>  DB3:[  0,10 ]    3K    1    Temp, Addr:126
RMSLBF < 42>  DB3:[  0,10 ]    4K    1    Temp, Addr:129
DAPRES < 42>  DB3:[  0,10 ]   10K    0    Non-Res, Addr:1679

Message Receivers:
Rcvrid   Job    Rib  Obj   Msgs/Max   Links/InMax/OutMax  Access
ERRLOG    1      0    1       0/40          0/0/0          Prv
QM$CMD    3      1    3       0/20          0/0/255        Prv
QM$SRV    3      2    4       0/30          0/0/255        Prv
QM$URP    3      3    5       0/10          0/0/255        Lcl
PR$03A    3     17   65       0/5           0/0/255        Prv
PR$03B    3     25   65       0/5           0/0/255        Prv
BA$03A    3     41   66       0/5           0/0/255        Prv
BA$03B    3     49   66       0/5           0/0/255        Prv
BA$03C    3     57   66       0/5           0/0/255        Prv
$ set ter/width:80
$ dir

 Name .Typ    Size    Prot     Name .Typ    Size    Prot    SY:[1,2]
INSTAL.LOG      78   < 60>    UTLMGR.TSK     276C  <232>
DSKINT.TSK     110C  <232>    ONLCLN.TSK     109C  <232>
ACTMGR.TSK     274C  <232>    SHUTUP.TSK      68C  <232>
SILUS .SAV      40C  <104>    PIP   .SAV      61C  <232>
MACRO .SAV      63C  <104>    CREF  .SAV       6C  <104>
LINK  .SAV      57C  <104>    LIBR  .SAV      22C  <104>
ERR   .STB       3   < 40>    ONLPAT.SAV      70C  <104>
COMMON.MAC      38   < 40>    KERNEL.MAC     159   < 60>
DCLUTL.TSK      25C  <232>    VER096.SYS       0   < 60>
CONFIG.MAC       5   < 60>    GLOBAL.COM       1   < 60>
SYSGEN.COM      17   < 60>    SYSLIB.OBJ       7   < 40>
LOGIN .TSK      41C  <232>    LOGOUT.TSK      21C  <232>
DIRECT.TSK      57C  <232>    SYSTAT.TSK      62C  <232>
FILCOM.TSK      48C  <104>    ATPK  .TSK      29C  <232>
SAVRES.SAV     209C  <124>    TERMGR.TSK     129C  <232>
LATMGR.TSK      93C  <232>    REORDR.TSK      77C  <232>
DCLAUX.TSK      50C  <232>    MAKSIL.TSK      52C  <104>
TKB   .TSK     219C  <104>    STK   .TSK     219C  <104>
MAC   .TSK     100C  <104>    PRELIN.TSK      44C  <232>
RSX   .096       0   < 60>    SWITCH.TSK      10C  <232>
SYSMAC.SML      46   < 40>    PAT   .SAV      11C  <104>
LBR   .TSK      65C  <104>    PAT   .TSK      55C  <104>
CRF   .TSK      47C  <104>    UTILTY.TSK       5C  <124>
BUILD .TSK       5C  <124>    CSPCOM.TSK       5C  <124>
AUTOED.TSK       5C  <124>    CPATCH.TSK       5C  <124>
QUE   .TSK       5C  <232>    PLEASE.TSK       5C  <232>
BPLGEN.COM       3   < 60>    SRTUTL.MAP     226   < 60>
START .LOG      16   < 60>

Total of 3453 blocks in 55 files in SY:[1,2]

$ help

You can obtain on-line information about any DCL command or qualifier, as
well as many other general topics.  For more complete details about a
topic, refer to the appropriate RSTS manual or guide.

The RSTS/E System User's Guide contains descriptions of the DCL commands
and qualifiers that you use in file, system, and programming operations.

The RSTS/E System Manager's Guide contains descriptions of the DCL
commands and qualifiers used in system management operations.

See the RSTS/E Quick Reference Guide for the syntax of all DCL commands
and qualifiers on RSTS/E.

For instructions on how to use this HELP facility, type HELP HELP from
DCL, or type HELP in response to the HELP Topic?  prompt.

Additional help is available on:

@               Accounts        Advanced        ALLOCATE        APPEND
ASSIGN          ATTACH          BACKUP          BASIC           BROADCAST
BYE             CCL             CLOSE           COBOL           COPY
CREATE          Dates           DCL             DEALLOCATE      DEASSIGN
DEFINE          DELETE          DETACH          DIBOL           DIFFERENCES
DIRECTORY       DISMOUNT        DUMP            EDIT            Entries
EOD             EXIT            Expressions     Files           FORCE
Forms           FORTRAN         Functions       GOSUB           GOTO
HANGUP          HELP            IF              INITIALIZE      INQUIRE
INSTALL         Keys            Labels          LINK            LOAD
LOGIN           LOGOUT          MACRO           MAIL            MERGE
MOUNT           ON              OPEN            Operators       Passwords
PRINT           Privileges      Programs        Queues          Quotas
READ            REMOVE          RENAME          REQUEST         RESTORE
RETURN          RT11            RSX             RUN             Runtime Systems
Servers         SET             SHOW            SORT            START
STOP            SUBMIT          Symbols         Times           TYPE
UNLOAD          WRITE

Topic? <CR>
$ edt test.txt
Input file does not exist
[EOB]
*i
            hello world
            CTRL/Z
[EOB]
*exit
TEST  .TXT 1 line
$ dir/full test.txt

 Name .Typ    Size    Prot  Access      Date     Time   Clu  RTS    Pos
SY:[1,2]
TEST  .TXT       1   < 60> 31-Oct-86 31-Oct-86 10:02 AM   8 ...RSX   215

Total of 1 block in 1 file in SY:[1,2]

$

Bugs?

Plenty! Especially in the places where I haven't managed to figure out what a real PDP 11/70 should do. :-( Core PDP 11/70 stuff is well documented but some lesser used system functions require reverse engineering to understand.

If you have something you want me to look at let me know and I'll prioritise. However always happy to accept fixes!

home