@markarayner I used to write programs with toggle switches, but I only had 16 address lines, 8 data lines, and a "Deposit" switch to deal with. Oh, and the address lines would auto-increment for me, so really it was flipping 8 switches and hitting "Deposit". Then set the addr lines to the start of my program, and hit "Run".
I did this up through the end of the 90's, on a *very* high-tech, expensive, and widely known US DoD project...