* [TUHS] Some resources for V6/PDP/SIMH newbs like me
@ 2017-11-20 19:20 Will Senn
2018-01-09 18:05 ` Wolfgang Helbig
0 siblings, 1 reply; 8+ messages in thread
From: Will Senn @ 2017-11-20 19:20 UTC (permalink / raw)
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_Workbook_1969.pdf
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
^ permalink raw reply [flat|nested] 8+ messages in thread
* [TUHS] Some resources for V6/PDP/SIMH newbs like me
2017-11-20 19:20 [TUHS] Some resources for V6/PDP/SIMH newbs like me Will Senn
@ 2018-01-09 18:05 ` Wolfgang Helbig
2018-01-14 19:56 ` Will Senn
0 siblings, 1 reply; 8+ messages in thread
From: Wolfgang Helbig @ 2018-01-09 18:05 UTC (permalink / raw)
Hi, Will
may I point to chapter 1.0 of my operating system lecture notes at:
http://doc.cat-v.org/unix/v6/operating-systems-lecture-notes/script/
among others, it explains the assembler language, together with the description of the instruction set
http://doc.cat-v.org/unix/v6/operating-systems-lecture-notes/pdp11/doc/cpu
and finally the Unix Assembler Reference Manual(1) at
http://doc.cat-v.org/unix/v6/operating-systems-lecture-notes/v6/doc/index.html
might help.
Greetings,
Wolfgang
> Am 20.11.2017 um 20:20 schrieb Will Senn <will.senn at 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_Workbook_1969.pdf
>
> 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
^ permalink raw reply [flat|nested] 8+ messages in thread
* [TUHS] Some resources for V6/PDP/SIMH newbs like me
2018-01-09 18:05 ` Wolfgang Helbig
@ 2018-01-14 19:56 ` Will Senn
0 siblings, 0 replies; 8+ messages in thread
From: Will Senn @ 2018-01-14 19:56 UTC (permalink / raw)
On 1/9/18 12:05 PM, Wolfgang Helbig wrote:
> Hi, Will
>
> may I point to chapter 1.0 of my operating system lecture notes at:
> http://doc.cat-v.org/unix/v6/operating-systems-lecture-notes/script/
>
> among others, it explains the assembler language, together with the description of the instruction set
>
> http://doc.cat-v.org/unix/v6/operating-systems-lecture-notes/pdp11/doc/cpu
>
> and finally the Unix Assembler Reference Manual(1) at
> http://doc.cat-v.org/unix/v6/operating-systems-lecture-notes/v6/doc/index.html
>
> might help.
>
> Greetings,
> Wolfgang
Wolfgang,
Your notes are great references. When I first started learning about v6,
yours was the first truly helpful site that I came across. In addition
to the enormously useful UPM and notes above, I really appreciate your
PDP 11 devices note:
http://doc.cat-v.org/unix/v6/operating-systems-lecture-notes/pdp11/doc/devs
Later,
Will
^ permalink raw reply [flat|nested] 8+ messages in thread
* [TUHS] Some resources for V6/PDP/SIMH newbs like me
2017-11-20 23:08 Noel Chiappa
@ 2017-11-21 0:00 ` Ron Natalie
0 siblings, 0 replies; 8+ messages in thread
From: Ron Natalie @ 2017-11-21 0:00 UTC (permalink / raw)
( always wondered early on (having started on the real DEC assemblers) if
the default UNIX erase-kill characters were an attempt to discourage use of
assembler :)
^ permalink raw reply [flat|nested] 8+ messages in thread
* [TUHS] Some resources for V6/PDP/SIMH newbs like me
@ 2017-11-20 23:08 Noel Chiappa
2017-11-21 0:00 ` Ron Natalie
0 siblings, 1 reply; 8+ messages in thread
From: Noel Chiappa @ 2017-11-20 23:08 UTC (permalink / raw)
> From: Will Senn
> (e) UNIX assembler uses the characters $ and "*" where the DEC
> assemblers use "#" and "@" respectively.
Amusing: the "UNIX Assembler Reference Manual" says:
The syntax of the address forms is identical to that in DEC assemblers,
except that "*" has been substituted for "@" and "$" for "#"; the
UNIX typing conventions make "@" and "#" rather inconvenient.
What's amusing is that in almost 40 years, it had never dawned on me that
_that_ was why they'd made the @->*, etc change! "Duhhhh" indeed!
Interesting side note: the UNIX erase/kill characters are described as being
the same as Multics', but since Bell pulled out of the Multics project fairly
early, I wonder if they'd used it long enough to get '@' and '#' hardwired
into their fingers. So I recently has the thought 'Multics was a follow-on to
CTSS, maybe CTSS used the same characters, and that's how they got burned in'.
So I looked in the "CTSS Programmer's Guide" (2nd edition), and no, according
to it (pg. AC.2.02), the erase and kill characters on CTSS were '"' and
'?'. So, so much for that theory!
> (l) The names "_edata" and "_end" are loader pseudo variables which
> define the size of the data segment, and the data segment plus the bss
> segment respectively.
That one threw me, too, when I first started looking at the kernel!
I don't recall if I found documentation about it, or just worked it out: it is
in the UPM, although not in ld(1) like one might expect (at least, not in the
V6 UPM; although in V7:
http://minnie.tuhs.org/cgi-bin/utree.pl?file=V7/usr/man/man1/ld.1
it is there), but in end(3):
http://minnie.tuhs.org/cgi-bin/utree.pl?file=V6/usr/man/man3/end.3
Noel
^ permalink raw reply [flat|nested] 8+ messages in thread
* [TUHS] Some resources for V6/PDP/SIMH newbs like me
@ 2017-11-20 20:01 Noel Chiappa
0 siblings, 0 replies; 8+ messages in thread
From: Noel Chiappa @ 2017-11-20 20:01 UTC (permalink / raw)
> From: Will Senn
> he is addressing an aspect that was not addressed in either of the
> manual's entries and is very helpful for making the translation between
> PDP-11 Macro Assembler and unix as.
I'm curious - what aspect was that?
Noel
^ permalink raw reply [flat|nested] 8+ messages in thread
* [TUHS] Some resources for V6/PDP/SIMH newbs like me
2017-11-20 19:31 Noel Chiappa
@ 2017-11-20 19:45 ` Will Senn
0 siblings, 0 replies; 8+ messages in thread
From: Will Senn @ 2017-11-20 19:45 UTC (permalink / raw)
On 11/20/2017 01:31 PM, Noel Chiappa wrote:
> > From: Will Senn <will.senn at gmail.com>
>
> > 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
>
> Err, which manual are you referring to there? Not the "UNIX Assembler
> Reference Manual":
>
> http://minnie.tuhs.org/cgi-bin/utree.pl?file=V6/usr/doc/as/as
>
> I would assume, but the 'as(I)' page in the UPM?
>
> Noel
The UNIX Assembler Reference Manual winds up as 10 printed pages, the
as(I) page is, well, as you put it, 1 page, printed. Both are a bit thin
by my reckoning. :). That said, Lions words about assembly are pretty
few, too. But, he is addressing an aspect that was not addressed in
either of the manual's entries and is very helpful for making the
translation between PDP-11 Macro Assembler and unix as.
Will
^ permalink raw reply [flat|nested] 8+ messages in thread
* [TUHS] Some resources for V6/PDP/SIMH newbs like me
@ 2017-11-20 19:31 Noel Chiappa
2017-11-20 19:45 ` Will Senn
0 siblings, 1 reply; 8+ messages in thread
From: Noel Chiappa @ 2017-11-20 19:31 UTC (permalink / raw)
> From: Will Senn <will.senn at gmail.com>
> 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
Err, which manual are you referring to there? Not the "UNIX Assembler
Reference Manual":
http://minnie.tuhs.org/cgi-bin/utree.pl?file=V6/usr/doc/as/as
I would assume, but the 'as(I)' page in the UPM?
Noel
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2018-01-14 19:56 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-11-20 19:20 [TUHS] Some resources for V6/PDP/SIMH newbs like me Will Senn
2018-01-09 18:05 ` Wolfgang Helbig
2018-01-14 19:56 ` Will Senn
2017-11-20 19:31 Noel Chiappa
2017-11-20 19:45 ` Will Senn
2017-11-20 20:01 Noel Chiappa
2017-11-20 23:08 Noel Chiappa
2017-11-21 0:00 ` Ron Natalie
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).