mirror of
https://github.com/DoctorWkt/unix-jun72.git
synced 2026-02-18 13:37:56 +00:00
- move various notes files into notes directory.
This commit is contained in:
269
notes/notes.txt
Normal file
269
notes/notes.txt
Normal file
@@ -0,0 +1,269 @@
|
||||
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
|
||||
|
||||
- (Brad Parker) removed commented out 3 lines at "4;4". The comment
|
||||
appears to be written in and is wrong (I think it might just be a
|
||||
stroke of the pen rather than a correction)
|
||||
|
||||
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-04
|
||||
- This instruction doesnt make sense: "dec r0 / r0=33.,...,1 "
|
||||
r0 is used as the jsr link register. However, r1 has the
|
||||
value of 34 prior to this. Changed both occurances of "r0" to
|
||||
"r1" in this code.
|
||||
|
||||
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
|
||||
- changed this to "/etc/init". There is no "/ect" directory
|
||||
on the rf0 drive at the point the cold init is run and
|
||||
the cold init program doesnt make any new directories, so
|
||||
this is likely just a typo in the original printout.
|
||||
|
||||
------
|
||||
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.
|
||||
|
||||
e08-02
|
||||
- the bread function is missing a branch when copying data from
|
||||
kernel memory (r5) to user memory (r2). I added a branch:
|
||||
1: / r5 points to beginning of data in I/O buffer, r2 points to beginning
|
||||
/ of users data
|
||||
movb (r5)+,(r2)+ / move data from the I/O buffer
|
||||
dec r3 / to the user's area in core starting at u.base
|
||||
bne 1b
|
||||
^^^^^^^^^^^
|
||||
tst u.count / done
|
||||
beq 1f / yes, return
|
||||
without this it only copies one byte to userland.
|
||||
|
||||
--------------------
|
||||
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.
|
||||
Reference in New Issue
Block a user