[TUHS] What It Takes to Read Lions in 2026

Will Senn via TUHS tuhs at tuhs.org
Wed Jul 29 03:14:41 AEST 2026


All,

As an experiment, I tracked what it takes a modernista to understand a 
small portion of page 28 of Lions (Getting Started) and thought I would 
share. Here's the relevant portion from the page:

---snip
0615: “reset” clears and initialises all the peripheral device control 
and status registers
The system will now be running in kernel mode with memory management 
disabled.

0619: KISA0 and KISD0 are the high core addresses of the first pair of 
kernel mode segmentation registers. The first six kernel descriptor 
registers are initialised to 077406,
which is the description of a full size, 4K word,read/write segment.

The first six kernel address registers are initialised to 0, 0200, 0400, 
0600, 01000 and 01200 respectively.

As a result the first six kernel segments are initialised (without any 
reference to the actual size of UNIX) to point to the first six 4K word 
segments of physical memory. Thus the “kernel to physical address” 
translation is trivial for kernel addresses in the range 0 to 0137777;
---snip

  These few lines discuss RESET, the initial PAR/PDR (KISA/KISD) setup, 
and the statement that "kernel to physical address translation is 
trivial." Following those references led me through the source, l.s and 
m40.s, the PDP-11/40 Processor Handbook, and the KT11-D Memory 
Management Option User Manual. My notes then ran on a bit (HB is the 
processor handbook, MM is the memory management option user manual):

---snip
613 - "clear" button must refer to the "start" button. when "start" is 
pressed and the system is halted, this "clears" the system. HB 8-3.

615 - 1) HB 4-76. 2) this is as a result of following 6.1 (Operator 
Actions) and issuing RESET from code.

619 - PAR/PDR registers are documented in the KT11-D memory management 
option user manual (MM) starting on page 3-11. Table 3-1 gives the 
PAR/PDR address assignments and figure 3-6 gives the PDR format. Table 
3-2 gives the decoding of the ACF bits of the PDR:

077406 - 0 1111111 0 0 00  0  11 0
          -   PLF   - W -- ED ACF -

This sets PLF to 0177, aka 127, so 128 blocks of 32 words, or 4096 
words, the full-size segment. W=0 means that the hardware has not yet 
recorded a write to the segment since its PAR or PDR was loaded. ED=0 
means the segment starts at 0 and extends upward, and ACF=11 (6) means 
that the segment is read or write. "the description of a full size, 4k 
word, read/write segment".

Six PAR/PDR pairs are initialized because six 4K-word segments account 
for the 24K words of physical memory expected in this configuration. The 
PARs receive 0000, 0200, 0400, 0600, 1000, and 1200.

A PAR value is expressed in units of 32 words, or 64 bytes. Thus an 
increment of 0200 octal represents 128 such units:

0200 × 32 words = 4096 words
                = 8192 bytes
                = 020000 bytes

Successive PAR values therefore map successive 4K-word physical segments 
beginning at 000000, 020000, 040000, and so on. The six mapped ranges are:

segment 0: 0000000–0017777
segment 1: 0020000–0037777
segment 2: 0040000–0057777
segment 3: 0060000–0077777
segment 4: 0100000–0117777
segment 5: 0120000–0137777

Together they span 0140000 (48K) bytes, so the last byte is 0137777. 
Because each kernel virtual segment maps onto the physical segment with 
the same base address, virtual and physical addresses are identical from 
0 through 0137777; this is the “trivial” translation Lions describes.
---snip

These notes are themselves compressed. "HB 4-76" really means "go spend 
ten minutes digging around in the Processor Handbook figuring out what 
Lions assumes you already know about clear aka reset."

Lions is great, but today's reader needs more of a leg up. I think it 
illustrates how much architectural knowledge his original audience could 
take for granted. Nearly fifty years later, recovering that context has 
become part of reading the book. So, reading through Lions in 2026 is an 
archaeological dig, really :). That said, if you're planning to read 
Lions with any depth, be sure to minimally have on hand:

* Lions Commentary

* Lions Source Code

* PDP-11/40 Processor Handbook

* KT11-D Memory Management Option User Manual

* Repeatable notes for setting up a working lab

Later,

Will



More information about the TUHS mailing list