Dr. Patt In the data path diagram diagram shown in the book the wire carrying the value in Base Register (SR1 for the LDR, STR and JSRR/JMPR) branches into two. One signal is added to the offset and goes into the MARMUX. The other goes straight into the PCMUX. Shouldn't it first be added to the offset then put in the PCMUX. Like this it has to be pass through the PCMUX onto the global bus and then into the PCMUX using the line used by the TRAP vector because in this case only the RET instruction uses the line going into the PCMUX. Also what is the difference between a logical variable and a Boolean variable. Thank You <> Not clear what you are asking. Let me say some things and see if I cover your concern. If I don't, ask the question again. The data path design is correct as it is. It could also be changed somewhat and still be correct. That is the nature of design problems -- more than one correct solution. Yes, the output of the adder could be the 2nd from the left input to PCMUX and that would work. But if I did that, I would lose the direct path from R7 to the PC which is needed on an RET instruction. However, I could get R7 into PC without this path by using a very circuitous route that does exist: From R7 through the ALU, such that the ALU simply outputs R7 (it is called PASS SR1), onto the bus, off the bus into the 2nd from right input to PCMUX. So, we could do it your way. My way, I get JSRR by having the output of the adder input MARMUX, onto the bus, off the bus and into the 2nd from right input to PCMUX. Your way, you get JSRR directly from the adder output to the 2nd from left input to PCMUX. So, I guess either way. Re: logical variable, Boolean variable. If you are talking to a mathematician, there is a very important distinction. If you have time some time, I can show you the difference. But for the other 5 billion people in the world, the two are synonymous. A logical variable can take on either of two values, 0 or 1. A Boolean variable can take on one of k values, where k depends on the particular Boolean algebra that we are working with. The most common one, by far, k=2. ...which is why most people think logical variable and Boolean variable are identical. But there are other choices for k: 4,8,16,32, etc., in which case logical variable is not the same as Boolean variable. It takes a little discussion to show what it means to have a Boolean algebra where each variable can take on one of 2^n values (n>1). OK?