[D:/TECS/projects/student/05]
% HardwareSimulator CPU.tst
In HDL file D:\TECS\projects\student\05\CPU.hdl, Line 80, b(16) and pos(1) have different bus widths: load CPU.hdl
[D:/TECS/projects/student/05]
Mux8Way16(a=false, b=pos, c=zr, d=notng, e=ng, f=notzr, g=notpos, h=true, sel[0]=instruction[0], sel[1]=instruction[1
], sel[2]=instruction[2], out=prePCload);
The problem is that Mux8Way16 wants 16-bit data for a-h and out. You can change them all to a[0],...,out[0] which will make it happily ignore the other 15 bits, or make a 1-bit Mux8Way chip.
It also doesn't like [1<newline>] in that same line, but that just may be a line wrap added by my browser.
Good News! -- fix that line and your CPU passes.
I made both Mux4Way and Mux8Way because I have used multiplexors in lots of designs over the years and missed having them.
Please edit your post to remove the working HDL.
--Mark