among others, it explains the assembler language, together with the description of the
instruction set
Am 20.11.2017 um 20:20 schrieb Will Senn
<will.senn(a)gmail.com>:
All,
While it's fresh, I thought I'd share some resources I've found helpful in
learning about the venerable v6 as a relative newb...
Learning Unix V6 in the modern era is an interesting and enormously educational
experience. In the process of using it I have had to learn how to host it in a simulator
(SimH in my case, but there are others), install it, communicate with it, configure it,
build special files for it, attach devices to it, communicate with the devices attached to
it and to SimH, build a kernel, install the kernel, boot the kernel, work with a variety
of media intended to work with it, extend it, and so on. In addition, I have had to learn
a bit about the PDP-11 (as arguably the most convenient architecture for learning about
V6), about its architecture, its instruction set, its devices, its memory structure, and
so on.
None of this exploration would have been possible without the excellent work of Bob
Supnik, Mark Pizzolato, and co. on the SimH pdp-11 simulator, the Simh mailing list,
Warren Toomey and TUHS for making the bits available, the TUHS mailing list, PUPS,
Bitsavers, and a slew of readily available documentation and texts including these
notables:
Setting Up Unix 6th Edition from the V6 Programmer's Manual
The Unix V6 Programmer's Manual in its entirety
The SimH and SimH PDP-11 Manuals
A large number of blogs with SimH specific V6 installation logs
The V6 Source Code and man pages (don't forget to install man - the 1bsd version
works, and is superior)!
The DEC PDP-11/05-10-35-40 1973 Handbook (the 11/40 handbook is not as detailed with
respect to memory management)
Lions's Commentary on the Sixth Edition source code
Now that I'm over the beginner's hump, so to speak, I'm exploring things
differently and I thought I'd share some resources that I am currently finding useful
and interesting in my explorations...
To bone up on assembly language, Lions's commentary is exceptionally helpful in
explaining assembly as it is implemented in V6. The manual itself is really thin, and the
source is a bit cryptic, for the newcomer. Lions explains the idioms used in the main
source of V6. However, without a background in assembly language, Lions is pretty
meaningless, so I went looking for something that was PDP specific that would bridge the
gap and help me understand Lions's words. I found a number of texts that were really
good. Most require a working RT11 instance to actually try out the coding examples and do
the exercises (SimH and Bitsavers to the rescue):
Arthur Gill - Machine and Assembly Language Programming of the Pdp-11
Charles A. Kapps and Robert L. Stafford - Assembly Language for the PDP-11
Glenn H. MacEwan - Introduction to Computer Systems: Using the PDP-11 and Pascal
James F. Peters - The Digital Way: Macro-11 Assembler Programming (PDP-11)
Michael G. Schneider - The Principles of Computer Organization: With Assembly Language
Programming for the PDP-11
PDP-11 Processor Handbook (pretty much any edition)
Thomas A. Frank - Introduction to the PDP-11 and its Assembly Language
All of these are useable with a running RT11 instance. But, I think the Peters and Frank
books are the standouts. Peters because all of the exercises that I have tried (dozens)
have worked as printed and Frank because he is rigorous in his treatment of the subject
and builds up from digital logic all the way through program execution. Frank is an
excellent complement to Lions work because he explains the details that Lions assumes.
To learn about digital logic, and a special thanks to Warren for his work on Crazy Small
CPU, I have been introduced to logisim. It is a great playground for exploring digital
logic. I had no idea that a sketchpad for digital logic simulation was available and
accessible to the layperson. Logisim development stopped around 2014 and while there are a
number of successors out there, I am using logisim-evolution:
https://github.com/reds-heig/logisim-evolution
The rabbit trails never seem to end... in order to learn how to use logisim, I went
through the excellent tutorial and then went looking for a book of experiments in digital
logic and found:
digital computer lab workbook from 1969
http://bitsavers.trailing-edge.com/pdf/dec/handbooks/Digital_Computer_Lab_W…
digital equipment corporation computer lab teacher's guide from 1968
http://www.so-much-stuff.com/pdp8/pdf/ComputerLabTeachersGuide.pdf
These two are useable with very little modification as a source of digital logic
exercises that work great with logisim and are related to the architectural lineage of the
PDP-11.
These resources fit together nicely in my pursuit to better understand digital logic, the
pdp-11, assembly language, and unix v6. In sum:
Source code for v6 for what really is supposed to happen in v6 operation
Lions for understanding Unix V6 sources and for unix assembly language information
PDP-11 Hanbook for quick reference on PDP-11 assembly language instruction set
Frank for assembly language details and for details on digital logic and its relationship
to the PDP-11 architecture.
Logisim to test logic constructs
The digital lab workbook for practice with digital logic
Later,
Will
--
GPG Fingerprint: 68F4 B3BD 1730 555A 4462 7D45 3EAA 5B6D A982 BAAF
Wolfgang Helbig
Stauferstr. 22
71334 Waiblingen