Assignments are due at class time (8:30 AM) on the due date unless otherwise indicated. Assignments handed in after 8:30 AM on the due date will have 25% deducted from their scores. Assignments handed in the day after the due date will lose 50%. Assignments handed in after that may or may not be graded, depending on the grader's schedule, but will receive no credit in any case.
To submit programming assignments, use HSP.
Assigned Tuesday 9/17/02, due Monday, 9/23/02. Meeting the PDP8/E
Assigned 9/17/02, due Friday, 9/27/02. Write a multiplication subroutine for the PDP8. When the subroutine is called via a JMS call, memory locations 0174 and 0175 should contain the 12-bit two's complement factors to be multiplied. After the subroutine is done, location 0176 should contain the high-order word and 0177 the low-order word of the product. Your multiplication routine should take both overflow and sign into account.
Assigned 9/17/01, due Wednesday 10/02/02. Write a function for the PDP8 that uses recursion to compute the Nth triangular number. Your main program will get N from the switch register and call a recursive function with N as its parameter. The recursive function, upon return to the main program, will have left the Nth triangular number (T(N) = 1 + 2 + ... + N) in the AC. Don't start this until we talk about it in class.
Assigned 9/17/02, due Friday 10/04/02. Write a PDP8 program that clears as much memory as possible, using no more than 100 (base ten) lines of code. If your program clears all memory, including the program itself, you will earn an A+. Clearing all but one location is worth an A, all but two is worth an A-, etc. Note, by the way, that if you clear all memory, your program will not halt by itself. (What will it do?)
Assigned Friday 10/4/02, due on paper at class time, Wednesday 10/9/02. Do problems 1-8, 13, 18, 21-24, and 44 from Chapter 2.
Assigned Wednesday 10/23/02, due on paper at class time Monday 10/28/02. Do problems 4, 6, 7, and 10 from Appendix B, and problems 1, 7, 10, and 17 from Chapter 3 of Patterson and Hennessy.
Also, design and draw a 1-bit 4-function ALU with the following specifications. The unit should have five input lines: (1) A, a data line, (2) B, another data line, (3) Cin, the carry-in for addition, and (4-5) S0 and S1, a pair of control lines that determine the operation performed by the ALU. There should be two output lines--the result R, and the carry-out Cout. R should depend on the input as follows:
S1 S0 R ============================ 0 0 A 0 1 A + B + Cin (where + is addition rather than OR) 1 0 A AND B 1 1 NOT A
Cout should be the carry-out if the operation is addition (that is, S1 = 0 and S0 = 1), and 0 otherwise. Note that R is a single bit, so the result R of the addition operation is the right-most bit of the sum of A, B, and Cin.
Assigned Wednesday, 10/23/02, due on paper at class time Friday, 11/01/02. Do problems 1-6, 14, 15, and 25-28 from Chapter 4.
Also, imagine using the third version of the multiplication hardware (see Figure 4.31 on page 257) to multiply 1011011 by 11011. Show the contents of the Product register after iterations 1, 2, 3, 4, 5, 6, and 32.
Finally, draw a gate diagram for a 3-bit carry lookahead adder.
These are approximate dates, specified at the beginning of the term. Use your judgment about when these readings are likely to fit into the class as the term goes on.