File: errata-3rdEd-1stPrnt-content.txt This file is a list of content errors for the first printing of the third edition of "Computer Systems", Jones and Bartlett, 2005, ISBN 0-7637-3239-7. The file errata-3rdEd-1stPrnt-form.txt contains form and style errors. Last update: 24 August 2006 Inside front cover In the entry for "ADDSP" change "stak" to "stack" in "Add to stack pointer (SP)" Page viii, Figure P.2 Shift the line with circles "10", "11", and "12" to the left so that the circle "12" is aligned with circle "8" directly above it. Change the arrow from circle "5" to "10" to point from "5" to "12" instead. Center the graphic with the body text. Page xii, Preface, Third paragraph, last line Delete the "e" in "Harmes" as follows: "... and Douglas Harms, who suggested among other improvements ..." Page xxiii (Before the first chapter) Insert the following sidebar: Alan M. Turing ===================================================================== Alan M. Turing is one of the most enigmatic figures of twentieth century science. Born in London in 1912, he attended Sherborne, an exclusive boarding school, and then studied at King's College in Cambridge. His doctoral dissertation "On the Gaussian Error Function" earned him a fellowship at Cambridge in 1935. After leaving Cambridge, Turing crossed the Atlantic and studied at Princeton with mathematician Alonzo Church and computer scientist John von Neumann. In 1937, Turing wrote what is considered his most significant contribution to mathematical logic, "On Computable Numbers, with an Application to the Entscheidungsproblem [decidability problem]." In this work, he developed the theoretical universal computing machine that is now called the Turing machine. The Turing machine is an abstract mathematical conception of a computer that gives theoreticians the power to explore advanced questions in computability theory without being inhibited by the bounds of present technology. The simplicity of the Turing machines makes it possible to construct elegant mathematical proofs about what can and cannot be computed. At the onset of World War II in 1939, Turing returned to England, where he was hired by the Foreign Office and British Intelligence to work on breaking Germany's secret Enigma Code. The resulting machine, the Colossus (also nicknamed the Eastern Goddess), succeeded in breaking the code and enabled the British to keep up with Germany's military plans. For Turinig's contribution to the war effort, King George VI awarded him the Order of the British Empire. After the war, Turing worked at the National Physical Laboratory in London, where he directed the design, construction, and use of the Automatic Computing Engine (ACE), a large electronic digital computer. In 1948, he moved to the University of Manchester, where he was the assistant director of the Manchester Automatic Digital Machine (MADAM). During this period of his research the burning question in Turing's mind was Can machines think? In 1950, he published "Computing Machinery and Intelligence," an article that earned him the title of father of modern-day artificial intelligence. Turing proposed that computers could be capable of thought. In the article, he described the Turing test, a behavioral test that has an impartial person pose a series of questions to both a computer and a human. The questions would be given to a computer in one room or a human in another, without the questioner knowing to which room the conversation was directed. Turing proposed that we acknowledge the machine or program as intelligent if, after a number of blind trials in which there were conversations with both the machine and the human, the questioner could not clearly identify which conversant was the machine. In the early 1950's, homosexual relations were a felony in Britain. Turing was always frank about his sexual orientation, and he reported a homosexual affair to the police in 1952 after having been threatened with blackmail. He was convicted of gross indecency and was sentenced to a twelve-month period of hormone therapy. Turing died at his home in Wiltshire, England, on June 7, 1954, at the age of 42. A spoon and a half-eaten apple, both covered with potassium cyanide, were found near his body. His mother believed his death to be an accident. Others, including the official coroner's report, concluded it was suicide. Some suspect that Turing had contrived his death to look accidental for his mother's benefit. In recognition of Alan Turing's groundbreaking work in computer science, the Association for Computing Machinery instituted the annual A. M. Turing award beginning in 1966. The award is the highest technical honor in the computing profession, a kind of "Nobel Prize for computer science." The chapters in this book contain biographical sketches of people whose professional accomplishements contributed to the subjects of the chapters. Most of them are recipients of the Turing award. ===================================================================== Page 53, Figure 2.20(f) Shift the hash marks below the box containing "2" to the right, so that they stand alone as in part (b) of the figure. Page 75, Figure 2.37 Fix the caption letters as follows: Change the second "(b)" to "(d)". Change the "(d)" to "(e)". Change the "(e)" to "(f)". Change the "(f)" to "(g)". Change the "(g)" to "(h)". Page 81, Exercise 6 Insert "in Problem 2.15" as follows: For your solution to the Towers of Hanoi in Problem 2.15, draw ... Page 82, Problem 12 Change semicolon ";" to comma "," as follows: int rectArea (int len, int wid) { Page 82, Problem 13 Change semicolon ";" to comma "," in three places as follows: void rect (int& ar, int& per, int len, int wid) { Page 107, Example 3.20 Insert the RTL symbol for the XOR operator (the circle with the + symbol inside it from the table in Figure 3.17) between "a" and "b" in the equation. Page 143, Exercise 49(c) Delete a 1 as follows: 1 111 1001 Page 143, Exercise 49(f) Delete a 1 as follows: 0 111 0000 Page 145, Exercise 70 Insert "int" in two places as follows: "const int base = 6;" "const int numDigits = 4;" Page 159, last paragraph Change "FFF4" to "FFFA" as follows: "... which is shown as FFFA(hex) in ..." Page 160, Figure 4.17(b) Change "FFF4" to "FFFA" Page 160, the two lines above Example 4.8 On the first line, insert the AND RTL Symbol from Figure 3.17 between "r" and "Oprnd". On the second line, insert the OR RTL Symbol from Figure 3.17 between "r" and "Oprnd". Page 161, Figure 4.19 In the center of the figure, change "Add" to "And" as follows: "And index register" Page 162, Figure 4.22(a) and (b) Change "X" to "A" in both parts of the figure. Page 163, Figure 4.23(a) and (b) Change "X" to "A" in both parts of the figure. Page 164, Figure 4.26(a) Change "X" to "A". Page 185, Exercise 10 Change "800" to "31,000" as follows: "Suppose you need to process a list of 31,000 integers ..." Page 191, Figure 5.2 In the entry for "ADDSP" change "stak" to "stack" in "Add to stack pointer (SP)" Page 220, Figure 5.23 Change the caption to read: "The symbol table for a Pep/99 compiler." Page 223, Margin note Change "operatiion" to "operation" as follows: "The operation of .EQUATE" Page 227, Exercise 5.4(b) Change the addressing mode from "x" to "sf" as follows: "(b) STRO 0x000D,sf" Page 231, Problem 24 Insert subheading "Section 5.4" just above Problem 24. If necessary, reflow the last six lines of Problem 26 to the top of the next page. Page 258, The formula after the third paragraph that describes the CALL instruction Change "Opernd" to "Oprnd". Page 259, Figure 6.18, High-Order Language Delete one line in the printTri procedure as follows: void printTri () { cout << "*"; cout << "**"; cout << "***"; } Page 264, Figure 6.22(b) In the bottom box on the right labeled n, change "3" to "13". Page 267, Figure 6.24(b) In the box labeled retAddr, change "0043" to "0046". In the box labeled n, change "3" to "13". In the box labeled value, change "3" to "13". Page 268, set of three equations in third paragraph On the last of the three equations, insert a "less-than-or- equal" symbol in the gap between "0" and "k" and in the gap between "k" and "n". On the left, insert one mathematical curly brace that spans all three equations. Page 298, last line of second paragraph from bottom Delete the entire sentence, "It concludes with a description of the translation of boolean values." Page 298, last line, Page 299, first line Change "2.35" to "2.36" and "2.36" to "2.37" as follows: "... to the one in Figure 2.36, and Figure 2.37 shows the ..." Page 302, second paragraph Change "2.36" to "2.37" as follows: "It corresponds to Figure 2.37(h)." Page 306, Figure 6.44(b) Change the content of the box labeled "c" from "0078" to "0076". Change the content of the box labeled "a" from "0076" to "0078". Page 314, 8th line from the top Change "endIf" to "endFor" as follows: "004B 0A0063 BREQ endFor" Page 314, 16th line from the top Change "endIf" to "endFor" as follows: "0063 600006 endFor: ADDSP 6,i ;deallocate locals" Page 325, Problem 31 Change "Figure 2.23" to "Figure 2.24". Page 325, Problem 32 Change "Figure 2.30" to "Figure 2.31". Page 330, The C++ alphabet In line 5 of the alphabet, between "+," and "*," insert a hyphen in computer font as follows: "8, 9, +, -, *," Note that is is a hyphen, not an en dash. Page 330, The C++ alphabet Add seven characters to the alphabet in a new line. Replace the "}" at the end of the last line with a comma "," as in the preceding line. Add a new last line to read as follows: _, \, #, ?, ^, |, ~} where the first character is the ASCII underscore character. Set the characters before and after the commas in computer font. The final brace "}" should not be in computer font. Page 330, The Pep/8 assembly language alphabet A previously posted errata was incorrect. The Pep/8 alphabet does not include a "+" or a "-". The last line of the alphabet should read as follows: 4, 5, 6, 7, 8, 9, \, , ., ,, :, ;, ', "} with the characters before and after the commas set in computer font. The final brace "}" should not be in computer font. Page 330, The alphabet for real numbers Between "+," and ".}" insert a hyphen in computer font as follows: "{+, -, d}" Note that is is a hyphen, not an en dash. Page 335, Figure 7.2 Between "+," and "d}" insert a hyphen in computer font as follows: "8, 9, +, -, .}" Page 341, Figure 7.8 About midpage, insert an additional line "| ( )" with "(" and ")" in computer font as follows: --> | | ( ) --> ... Page 346, Figure 7.14 (Probable art cutoff.) Insert "digit" just below the bottom arrow from "A" to "B". Page 347, fourth paragraph There are two missing minus signs, which should be typeset as "en" dashes, as follows: "... can be +, -, or neither, the transition from I to F can be on +, -, or ..." Page 347, Example 7.6 There is a missing minus sign, which should be typeset as an "en" dash, as follows: "... (b) scan - and go to F, or (c) scan ..." Page 348, Figure 7.18 (Probable art cutoff.) Insert "empty transition" to caption of (b) as follows "(b) The equivalent FSM without an empty transition." Page 348, Figure 7.19 (Probable art cutoff.) Insert captions (a) and (b) as follows: "(a) The original FSM." "(b) The empty transition removed." Page 376, fourth paragraph Make "Empty" all caps as follows: "... be reached by input of token eT_EMPTY." Page 376, Figure 7.33, top left oval Make "Start" all caps as follows: "ePS_START" Page 379, Exercise 4(a) Insert a hyphen in computer font before the "d" as follows: "*(a) -d" Page 380, Exercise 6(e) Insert a hyphen in computer font before the "a" as follows: "(e) a + ( - a )" Page 380, Exercise 8 Change "+" to "1" and the word "and" following the "1" not in computer font as follows: "... are valid and 1 and 24 are valid s." Page 381, Exercise 9 Instert "int" in computer font in the first line of the program as follows: "int main()" Page 383, Exercise 20(a) Add a comma at the end of one line of computer code as follows: " ... eA_INDIRECT, eA_STACK_REL," Page 384, Figure 7.39 The arrow from the box labeled "eLS_INT1" to the box labeled "eLS_HEX1" should have an lowercase "x" and an uppercase "X" near its midpoint, above the arrowline: x X set in bold computer font consistent with the font in "1..9". There are three oval boxes labeled "eLS_IDENT". Change the second box label (that comes from eLS_DOT1) from "eLS_IDENT" to "eLS_DOT2". Change the third box label (that comes from eLS_ADDR1) from "eLS_IDENT" to "eLS_ADDR2". Page 384 Insert a semicolon in computer font at the end of the line as follows: "int decValue;" Page 391, Figure 8.1 Change "tempWord" to "wordTemp" as follows: ";Least significant byte of wordTemp" Page 394, A Pep/8 trap Insert a left angle bracket and a right angle bracket around "0..7" as follows: "Mem[Temp - 1] <-- IR<0..7>" The angle brackets are the same font and style as the ones that surround "4..7" in "Mem[Temp - 10]<4..7>" five lines lower. Page 398, Figure 8.7 Change "N7VC" to "NZVC" in two places. Page 407, Figure 8.13 Near the bottom of the page, add parens and delete "then" as follows: "if (overflow) {" Set "overflow" to italic, the same as "is a digit" is set two lines above. Page 422, Figure 8.22 Change the "AE" symbols to ellipses "..." in 8 places. Page 425, Figure 8.25 Under Process P2, the lines "critical section" and "remainder section" should be left aligned with "while" and "turn" as they are under Process P1. Page 428, Figure 8.28 Under Process P2, the lines "critical section" and "remainder section" should be left aligned with "while" and "enter2" as they are under Process P1. Page 431, Figure 8.30 Under Process P2, the lines wait (mutEx); critical section wignal (mutEx); remainder should all be left aligned as they are under Process P1. Page 437, Exercise 8 Insert a hyphen character in computer font in front of the "2" as follows: "*8. Do Exercise 7 with an input of -295." Page 437, Exercise 10 Insert a hyphen character in computer font in front of the "2" as follows: "10. Do Exercise 9 with an input of -2068." Page 438, Exercise 11 Delete the sentence that begins, "State the values in the same manner ..." and delete parts (f), (g), (h), (i), and (j). Page 438, Exercise 16 Change "DECO" to "DECI", change "0051" to "0016", and change "6.36" to "6.38" as follows: "The DECI instruction with stack-indexed deferred addressing at 0016 in Figure 6.38 executes for the ..." Page 442, Problem 28 In the first sentence change "HEXO" to "NOP" as follows: "Implement a new nonunary instruction in place of NOP called ..." Page 442, Problem 31 Change "BOOLOUT" to "BOOLO" as follows: "... in place of NOP called BOOLO, which means boolean output." Page 473, third line from the top Insert a "less than or equal" symbol in the gap between the two 2's. Page 473, fifth line from the top Insert a "less than or equal" symbol in the gap between the 1 and the 2. Page 483, Exercise 16(a) Change the second "1" to "0" as follows: "1 0 0 1 1 0 1 0 1 0 0 1". Page 492, The zero theorem Insert a raised dot between "x" and "0". Page 492, The absorption property In the first equation, insert a raised dot between "x" and "y". In the second equation, insert a raised dot between "x" and "(". Page 492, The consensus theorem In the first equation, insert a raised dot between "x" and "y", between "x'" and "z", between "y" and "z", between "x" and "y", and between "x'" and "z". In the second equation, insert a raised dot between ")" and "(" in three places. Page 528, first line at the top Replace the word "network" with the word "circuit". Page 529, First paragraph below heading "Adder/Subtracter" Change "To subtract A from B you could ..." to "To subtract B from A you could ...". Page 531, Figure 10.55 In the table heading, change "Zone" to "Zout" and "Cont" to "Cout". Page 531, Figure 10.55 Under column "Function", fourth line of table, change "A minus B" to "A plus B plus 1", where B means "B" with a bar on top of it. Page 536, Figure 10.60 Under column "Result", third line of table, change "A minus B" to "A plus B plus 1", where B means "B" with a bar on top of it. Page 539, Exercise 12 Delete "and c" as follows: " ... diagram with a and b overlapping regions." Page 543, Exercise 47 Delete the asterisk "*" before (a). Page 556, Figure 11.16(b) In the second line of the table in the column labeled Q(t+1) change "0" to "1" so that the entire line reads as follows: 0 0 1 1 Page 558, Figure 11.20 The table in part (b) should be the same size as the table in Figure 11.23(b). The (b) caption should be centered as it is in Figure 11.23. The table should be right aligned with the body text and the top of the main "Figure 11.20" caption should be aligned with the top of the table as it is in Figure 11.23. In part (a), the arrow shaft going into "Ck" should be bent down as it is in Figure 11.23(a). Page 558, Figure 11.20(b) Under the column Q(t+1) change a "1" to "0" and a "0" to "1" so that the numbers read from top down as follows: 0 0 1 1 Page 559, Figure 11.21(a) Under the column Q(t+1) change a "0" to "1" and a "1" to "0" so that the numbers read from top down as follows: 0 1 1 0 Page 563, Figure 11.28 In the row starting with 1100 (the fourth row from the bottom) change a "0" to "1" under the column labeled TB(t) so that the entire row reads as follows: 1100 0 01 10 Page 573, Figure 11.40 In the caption to the figure on the right, change "(a)" to "(b)". Page 583, Figure 11.49 In the second box from the left labeled "32x8 bit RAM", the vertical lines from the AND gate above it connect to horizontal lines A5 and A7. The line that is connected to A5 should connect to A6 instead. Page 594, Figure 12.2 Remove the small line segment of the line labeled "MARCk" that runs through BBus. It should pass under BBus in the same way that it passes under ABus to its left. Page 594, Figure 12.2 The box labeled MDR should be shaded and the box labeled MDRMux should not be shaded. Page 598, Figure 12.5 On line 5., change semicolon ";" to comma "," between "CMux=1" and "C=8". Page 614, Figure 12.9 Remove three small line segments in the fat data arrows as follows: Remove the line segment from the tail of the bent arrow from "Bus" to "MDR0Mux". Remove the line segment from the tail of the bent arrow from "CBus" to "MDR0Mux". Remove the line segment from the tail of the bent arrow from "CBus" to "MDR1Mux". Page 617, second paragraph from bottom, last sentence Change "Com-mingled" to "Co-mingled". Page 626, Example 12.4 Insert a hyphen "-" in one place, and change "+" to "-" in another place, and change "=" to "gets" as follows: "addi $sp,$sp,-4 # $sp gets $sp - 4" Page 626, Example 12.4 Insert a "0" in the first group in the line of 1's and 0's, and change a sequence of 0's to 1's as follows: "001000 11101 11101 1111111111111100" Page 627, Example 12.5, top of the page Insert "$s2," as follows: "ori $s2,$s2,0x8001" Page 631, Figure 12.29 Insert an extra box labeled "48" between the box labeled "32" and the box labeled "64". The arrow from the box labeled "48" should point to the "Cache" box labeled "3". The box labeled "128 should not have two arrows coming from it. "48" box should point to "3" box. "64" box should point to "4" box. "80" box should point to "5" box. "96" box should point to "6" box. "112" box should point to "7" box. "128" box should point to "0" box. Page 633, Figure 12.30(b) Change "32" to "128" in two places. Page 634, second paragraph Change "32" to "128" as follows: "The bank of 128 multiplexers is simpler ..." Page 652, Exercise 12.5(e) Change "xf" to "sx" as follows: "(e) STBYTEA there,sx" Page 652, Exercise 12.5(m) Change "RETn" to "RET4". Page 652, Exercise 8. Change "full" to "half" as follows: "... diagram using half adders to implement ..." Page 655, Exercise 30 Change "Wd" to "WB" in first column, sixth row of the table. Page A5, Figure A.8 In the entry for "ADDSP" change "stak" to "stack" in "Add to stack pointer (SP)" Page A11, Chapter 3, Solution to Exercise 22 Parts (g) and (h) are missing. Add the following line: (g) 101 0100 (h) 001 0101 Page A12, Chapter 4, Solution to Exercise 3 for instruction D623D0 (a) opcode = 1101 (e) aaa = 110 (f) Stack-indexed Page A13, Chapter 5, Solution to Exercise 1(a) Insert "0" as follows: "ORX 0xEF2A, n" Page A13, Chapter 5, Solution to Exercise 10 Change "=" to "-" (hyphen, computer font) as follows: "-57" Change "7" to "i" as follows: "Hi" Page A13, Chapter 5 Insert the solution to Exercise 12(a) between the solution to Exercise 10 and Exercise 13 as follows: 12. (a) Object code is 38 00 6D 50 00 0A 38 6D 6D 50 00 0A 50 00 26 00 Output: 109 28013 & The digits 38 00 ... 00 should be set in computer font as in the solution to Exercise 13. The word "Output:" should not be in computer font. The text "109", "28013", and "&" must be on separate lines, in computer font, and aligned left. Page A13, Chapter 5, Solution to Exercise 15 Change "39" to "51" in two places. Page A16, Chapter 7, Solution to Exercise 8(a) Insert "=" between "" and "" on the 4th line. Draw a vertical line above "=" to join the intersection of the two other lines. Page A18, Chapter 9, Solution to Exercise 4(a) Change "8" to "6" as follows: "... or 4,096 bytes." Page A18, Chapter 9, Solution to Exercise 16(a) Change "0" to "1" as follows: " ... code word is 1 1 0 1 1 0 1 0 1 0 0 1" Page A25, Chapter 11, Solution to Exercise 13 Insert six overbars as follows: "(a) DA = A X1bar + Abar X1 + A B X2bar + B X1 X2" " DB = Bbar X1bar + B X1 X2 + Abar B X1" where, for example, X1bar means X1 with a horizontal bar above it like the horizontal bars over the symbols in the captions of Figure 11.4 (page 568). Page A25, Chapter 11, Solution to Exercise 13 In addition to the equations for DA and DB, insert the equation for Y as follows: "Y = Abar X2 + A X1 X2" where Abar means A with a horizontal bar above it like the horizontal bars over the symbols in the captions of Figure 11.4 (page 568). Page A25, Chapter 11, Solution to Exercise 15 Insert ten overbars as follows: "(a) JA = Bbar Cbar Xbar + B C X KA = Bbar Cbar Xbar + B C X" " JB = Cbar Xbar + C X KB = Cbar Xbar + C X" " JC = 1 KC = 1" where, for example, Bbar means B with a horizontal bar above it like the horizontal bars over the symbols in the captions of Figure 11.4 (page 568). Page A25, Chapter 12, Solution to Exercise 5(a) add the sentence: "For the RTL specification see STBYTEr, Figure A.11, page A8." with "STBYTEr" set in computer font. Page A26, Chapter 12, Solution to Exercise 5(a) Remove the stray "bar" characters that are superimposed on lines 3 - 6. (These are apparently the missing overbars on page A25, solutions to Exercises 13, 15.) Page A26, Chapter 12, Solution to Exercise 5(a) On Line 12, change "CMux=0" to "CMux=1" and change the comma "," between "MDRMux=1" and "MDRCk" to a semicolon ";" so that the line reads as follows: "12. A=1, AMux=1, ALU=0, CMux=1, MDRMux=1; MDRCk"