This is a list of additions to and bugs in the FIRST PRINTING of Brink/Spillman text. Most of the corrections should have been made in the second printing of the text. * pg vii, Chapter 4 title is CPU 'Structure' not 'Software' * pg 17 Algorithm 1.1 d sub 0 at end of the For statement should be 'do' * same in the last line d sub 1 should be d sub i * pg 34, in problem 12 '8-bit binary notion' should be '...notation'. * pg 44 in the second example ADD B,Ai; that should be Ri. * pg 51 In the example at the bottom of the page the first address should be '200' (not '100') * pg 56 in the example with the box the '0101' should be '0110' for register mode (as is mentioned in the text on the preceeding line) * pg 58 '*3' should be '#3' in the AVERAGE program * pg 61 The discussion of the immediate mode addressing does not mention that the data length is determined by the instruction length * pg 65 the MACRO program example at the bottom of the page should have 'R2, R3' instead of 'A2, A3' in the last instruction * pg 66 in the machine code comments in the second line the 'H' should be 'X' * pg 67 in the example at the top of the page the '$EXIT_$' should be '$EXIT_S' * pg 68 prob 5d change 'A0' to 'C0' * pg 69 prob 11: last line should end in '.' instead of ';' * pg 74: about 1/5 the way up, 'CLRB @ (R5)+' should be 'CLRB @(R5)+' * pg 86 in the last line 'RN' and '4N' should be 'Rn' and '4n'. * pg 88 the notation (N or Z) = 1 is explained for Table 3.2, which does not use it. The second sentence 'In the table ...' under Conditional Branch instructions can be deleted. * Table 3.2: BGEQU and BLSSU should be removed from codes 18 and 19. The following lines should be added to the table: BGEQU 1E C = 0 BRANCH ON GREATER THAN UNSIGNED BLSSU 1F C = 1 BRANCH ON LESS THAN UNSIGNED * pg 93 in Average program, the TSTW and BEQL lines should read Next: TSTW R3 ; Any data left? BEQL Done ; If R3=0 go to Done Observe the label on the first line and R3=0 not 3. * pg 95, Table 3.3, Byte 32 should have '0A' Hex, not '0B'. The comment is correct. In line 36, the Hex value 55 may be hard to read. * pg 96, The comment on the Begin line of the program should read ; If Hours>40 * pg 98, In exercise 4 the declaration of the variable X should read X: .LONG ^D10 In the text the ^D are transposed. * pg 105 the PSR in figure 4.1 needs connections in both directions to the decoder * pg.117 There is no step 13 in the example. Steps 14 to 20 should be 13 to 19 * pg 120, problem 1c 'Program status register' should read 'Process status register' * pg. 122 problem 16 The add instruction needs another operand. change it to ADDB2 @#address, R2 * pg 153 middle of the page in the first sentence of the paragraph beginning there-- 'reduced quotient' should read 'reduced dividend' * pg 159 last paragraph It is said here that the shift instructions do not affect the carry condition code. This is wrong, the carry bit is cleared by the ASH instructions. It is not affected by the ROTL. * pg 184 The figures were reversed. To fix, swap the captions under the figures * pg 190 figure 6.12. The MUX units should be decoders. * pg 204 figure 6.23 The s sub 2 input to MUX B should be s sub 0. * pg 217 listing on bottom of the page The variable declarations in the program segment should be .BLKL instead of .LONG * pg 234 last paragraph Should start out "The register MASK ..." instead of "ask". * pg 239 figure 7.7, middle column The CALLF should be CALLG. * The comment in the Done: line of Listing 7.7 should read 'Return from function' * pg 279 delete 'AddressTeam = R3' from the .MACRO CompareField line near the bottom of the page * pg 319, Listing 9.2, at label GetName: Some people may feel that PUSHAW would seem more appropriate here and in the next line even though the existing PUSHAL is technically correct. Any of the PUSHAx instructions would work just as well in this program. * pg 355 upper half page, center The hit ratio, h, is defined as a percentage. Therefore the miss ratio should be 100 - h (instead of 1 - h, which is valid for a fraction). The formula for "average memory access time" should also use 100-h. * pg 365 Exercise 2 The parenthentical remarks for parts a and b are reversed. The use of `bytes' in parts (a) and (b) is confusing since the memory is of words; replace `bytes' by `words' in these parts. * pg 366, Exercise 9 The address for the last entry in the page table should be 12A and not 130. * pg 528, The Code for decimal 36 is '$' and the code decimal 38 is '&' * pg 542, 'radixes' in second line should be 'radices' * pg 543, 'EXIT_S' in next to last line should be '$EXIT_S'