All the while I can write b=true and the Hardware Simulator has no problem with that. I understand why functionality in b[0..x]=.. behaves the way it does but hey, no shortcut to connect 1 pin to every pin in 16-pin bus?
For the sake of learning (and Fun) I am trying to minimize the amount of gates that goes into the design, so I'll just keep the ugly line of code that I cobbled together.
Optimizing for "part" count is indeed fun and educational, but it can easily be a false optimization.
For instance, the ALU's 'zr' can be generated with just 2 parts: an Add16 and a Mux. Since the Add16 is the biggest and slowest part in the ALU, adding another Add16 nearly doubles the size and halves the speed of the ALU!
For your ugly line of code, here's a hint:
Multiplexors are amazingly versatile parts. A mux with N select bits can implement any function of N variables, and about half of all functions of N+1 variables. For example, here's Or(a, b):
Mux(sel=a, a=b, b=true, out=out)