In the late 70's a new phenomenon arrived the video game and with it came a
new challenge to programmers. Programming and debugging these systems was
undoubtedly a specialist job. There were no hard-drives everything was in silicon
in EEProms or rewritable rom chips.
There were no keyboards and everything had to be programmed in assembler with specialist
equipment and a logic probe. There was no strinct division between hardware and
software to program these bareboard systems required hardware knowledge and was
the domain of hardware engineers. Most of the time the listings were unavailable
an proprietary information as such programming these systems was laborious and required
patience sifting through millions of lines of assembler and hex.
As if this was not enough most of the time the video games had custom processors
making the task even more laborious. Due to the revolutionary aspect of this technology
there were no training courses, books or documentation, consequently it was upto
the engineer to put himself into the unenviable position of sink-or-swim and learn
how the system worked before attempting to delve into the program itself. This required
significant understanding of hardware at a discrete component low level understanding
that a partiular binary input would yield a certain binary output.
The arrival of gaming machines produced a more standardized approach to programming
as the majority of these machines relied upon common processors such as the Texas
Instruments central processors which virtually skipped 8 and 16bit processing and
went straight to 32bit mainly due to the input output requirements, What is not
common knowledge is that 32 bit processing was alive and kicking in the 80's
and the forefront of technology. Similar to the video games there was no documentation,
training or manuals available, programming was again left upto to invidual engineer's
ingenuity.