mirror of
https://github.com/DoctorWkt/unix-jun72.git
synced 2026-02-17 05:07:57 +00:00
according to what seemed right by reading the code. Documented all of the changes in notes.txt. Mostly accepting the hand written corrections in the pdf file.
243 lines
8.2 KiB
Plaintext
243 lines
8.2 KiB
Plaintext
Original Source:
|
|
http://www.bitsavers.org/pdf/bellLabs/unix/PreliminaryUnixImplementationDocument_Jun72.pdf
|
|
|
|
|
|
------
|
|
I started with the pdf, using Preview in mac I selected regions and
|
|
copied and created new doc, saved it as jpeg and then used
|
|
the online OCR program: http://asv.aso.ecei.tohoku.ac.jp/tesseract/
|
|
I then manually edited each file.
|
|
|
|
The files are named according to the page index in the pdf and the
|
|
section and page given in the page footer. Page headers and footers
|
|
were not captured.
|
|
------------------
|
|
|
|
e00-01 to e00-10 (10) - u0 -
|
|
assigned: tim newsham, complete
|
|
reviewed:
|
|
e01-01 to e01-10 (10) - u1 -
|
|
assigned: Hellwig Geisse
|
|
reviewed:
|
|
(reviewed e01-01 to e01-06 - tim newsham)
|
|
e02-01 to e02-10 (10) - u2 -
|
|
assigned: Brantley Coile, complete
|
|
reviewed: tim newsham
|
|
e03-01 to e03-04 (4) - u3 -
|
|
assigned: Tim Bradshaw,
|
|
(Brad Parker, complete)
|
|
reviewed:
|
|
e04-01 to e04-07 (7) - u4 -
|
|
assigned: Alex Garbutt,
|
|
(Brad Parker, complete)
|
|
reviewed:
|
|
e05-01 to e05-06 (6) - u5 -
|
|
assigned: Ralph Logan, complete
|
|
reviewed: johan beiser
|
|
e06-01 to e06-06 (6) - u6 -
|
|
assigned: johan beisser, complete
|
|
reviewed:
|
|
e07-01 to e07-08 (8) - u7 -
|
|
assigned: Naoki Hamada, complete
|
|
reviewed:
|
|
e08-01 to e08-09 (9) - u8 -
|
|
assigned: Christian David,
|
|
(Brad Parker, complete)
|
|
reviewed:
|
|
e09-01 to e09-08 (8) - u9 -
|
|
assigned: tim newsham, complete
|
|
reviewed: Ralph Logan
|
|
e10-01 to e10-02 (2) - ux -
|
|
assigned: tim newsham, complete
|
|
reviewed:
|
|
e11-01 to e11-07 (7) - sh
|
|
we have a binary for the sh already I think. this may be optional
|
|
assigned: johan beisser, complete
|
|
reviewed:
|
|
e12-01 to e12-04 (4) - init
|
|
we have a binary for init already
|
|
assigned:
|
|
reviewed:
|
|
|
|
|
|
|
|
------------------
|
|
e00-01
|
|
- I used spaces to line up the comment columns, not tabs. I
|
|
picked the column distance arbitrarily.
|
|
- the bottom section looks like it could be tabbed but my tabstops
|
|
didnt line up with the values given so I used spaces
|
|
|
|
e00-02
|
|
- I used tabs for the start of each asm command but not for the
|
|
separation between mnemonic and arguments since these didnt line up.
|
|
with my tab stops.
|
|
|
|
e00-03
|
|
- left "dis addresses" typo in per original
|
|
|
|
e00-05
|
|
- cant tell if the "O" in quotes after 1: is a O or a 0.
|
|
- left mispelled "mormally" in comment
|
|
- left "file/etc/init" without space.
|
|
|
|
e00-06
|
|
- left mis-spacing on 5: move r5,r1.
|
|
|
|
e00-10
|
|
- left "/ect/init" typo
|
|
|
|
------
|
|
e01-06
|
|
- "r2, p pid-2(r1)" has written correction "p.ppid". Using written
|
|
correction.
|
|
- "mov $sysret1,(sp)" has written correction for "-(sp)". Using
|
|
|
|
--------------------
|
|
e02-05
|
|
- label "1:" is overstruck with "/" in the listing. leaving the
|
|
label in place. Should be reviewed for semantic meaning.
|
|
- the struck label is referenced below as "1b" right before
|
|
"nig:" on e02-06. I believe removing the label would cause
|
|
an extra comparison to occur but not change he semantics of
|
|
the loop.
|
|
e02-09
|
|
- extra label "sysquit:" handwritten after "sysintr:". Leaving
|
|
the extra label out.
|
|
- adding it back in. this label is referenced in the syscall
|
|
table (u1.s) but not defined elsewhere.
|
|
e02-10
|
|
- comment says "cdev has device =" it probably means "#" and could
|
|
have just been a weak print of "#", but leaving as "=".
|
|
|
|
--------------------
|
|
|
|
e03-*
|
|
- I used spaces to line up columns, not tabs.
|
|
|
|
--------------------
|
|
|
|
e04-*
|
|
- I used spaces to line up columns, not tabs.
|
|
|
|
e04-06
|
|
- comment seems to have "not equal" character in it (equals + slash);
|
|
since my keyboard won't do that, I substituted "<>"
|
|
|
|
--------------------
|
|
I noticed that "inode" and "i-node" were used interchangably, which could possibly
|
|
indicate two different people commenting the code. I left each as the original.
|
|
|
|
e05-01
|
|
- line 9 has a crossed out term, so i used the correction "r2"
|
|
|
|
e05-02
|
|
- line 48 comment says "panic / found no tres storage" - left it as "tres"
|
|
no idea whether it is supposed to be "tree", "free", or "tres"
|
|
- reviewed, looks clearly "free", fixed.
|
|
|
|
e05-04
|
|
- some of the latter parts of the code have comments "/ ?", left as is
|
|
|
|
e05-05
|
|
- looks like some of the comments contain a "does not equal symbol" manually
|
|
created by typing =<backspace>/. I symbolized it with "=/".
|
|
--------------------
|
|
e06:
|
|
- Used tabs between sections of code instead of spaces.
|
|
For example:
|
|
bpn rtty0 / comment
|
|
|
|
This may need some review later. I'll go over it again this afternoon.
|
|
--------------------
|
|
I used spaces in all occasions because I did not fully understand
|
|
where to put tabs. We can convert them easily by a small program
|
|
if the rule is specified, so I leave them there.
|
|
|
|
e07-01
|
|
- left "cmp r0,$4" as is. There is a write in correction
|
|
for "r1" for "r0".
|
|
- reviewed this, r1 has the character at this point and $4 is
|
|
control-D. The write-in looks correct.
|
|
- left "to" as is after ttych: There is a write in correction
|
|
for "from" instead of "to".
|
|
|
|
e07-04
|
|
- left "asr r0" as is. There is a write in correction
|
|
for "r2" for "r0".
|
|
- changed it to "r2". The comments clearly say "r2". The
|
|
value comes from a call to "get" right before the call to
|
|
this code ("put"), a page earlier inside the getc function.
|
|
"r2" was previously multipled by 2 in get, so this divide
|
|
by 2 makese sense to undo that.
|
|
|
|
e07-07
|
|
- printout has: "mov $240.*$ps" but this is invalid syntax and
|
|
there are other occurances where the "." is a comma. I'm
|
|
changing this to be valid assembly -timnewsham.
|
|
|
|
e07-08
|
|
- There is a handwritten addendum "super block" after the line
|
|
"jsr r0, ppoke" which clarifies the comment.
|
|
--------------------
|
|
|
|
e08-*
|
|
- I used spaces to line up columns, not tabs.
|
|
|
|
--------------------
|
|
e09-01
|
|
- I'm using tabs between opcode and operands now
|
|
- left "bic $!77,r1" although written comment says "? !177"
|
|
- changing to "$!177". This is masking off the high bit of
|
|
the received ascii character. shortly after this it compares
|
|
with $177 (delete) so clearly its not supposed to mask off
|
|
both hight bits ($!77). Also later in the other e09 pages
|
|
similar operations are performed.
|
|
e09-02
|
|
- left "movb tty+38r0),r1" as is. There's a write in
|
|
correction for "(" instead of "8". This concerns me as it
|
|
means there are probably some errors in this listing as
|
|
the paren is most likely the right character here.
|
|
- fixed this to allow assembly to work.
|
|
e09-03
|
|
- hard to tell due to hand written correction, but I believe
|
|
the line before "rts r0" reads "mov (sp)+,r0"
|
|
- this makes sense since r0 is pushed onto the stack at the
|
|
start of the function.
|
|
- comment "ASC11" (one instead of I) left as is.
|
|
e09-04
|
|
- text comment says a label was lost! leaving it out for now.
|
|
- adding it back. This looks like a switch table starting
|
|
at the missing label (or actually one instruction before
|
|
the label, weird that they wrote it this way).
|
|
- correction "if count >=0" obscures original text in comment.
|
|
no choice but to use new text.
|
|
- "ASC11" sic
|
|
e09-05
|
|
- 5th to last "byte" line 2nd column is uneadable. pattern suggests
|
|
the value "000"
|
|
|
|
--------------------
|
|
e10-01
|
|
e10-02
|
|
- I used tabs for the first tab stop and spaced out to the next step.
|
|
- Per discussions with Brantley Coile it appears that the origianl
|
|
source probably used tabs, and that the printout has a tab stop
|
|
after 8 characters and another after 7 characters. The spaces
|
|
between opcode and operands are probably due to a tab, as can be
|
|
seen in later assembly code we have in machine readable form.
|
|
-------------------
|
|
e11-01
|
|
- I'm using a whole bunch of guesswork on some of these. Keystrokes
|
|
are highly faded, and have to be guessed. The OCR utterly failed.
|
|
e11-02
|
|
- Line 15 has manual corrections, making it difficult to read what
|
|
was added or subtracted.
|
|
e11-03
|
|
e11-04
|
|
- First lines are horribly mangled. Guessed.
|
|
- Line 7 has a typo, preserved
|
|
- Line 8 has what resembles a "|", not sure if this is a screwup or
|
|
not. Preserved, and assuming it's a "|".
|
|
- line 21/22: I have no idea.
|