All of NASCOM’s computers at this time were programmed in machine-specific low-level languages, collectively called assembly languages. Writing code in these languages required a separate line of text for each instruction in the resulting program, and each instruction was very limited. An example of an assembly language instruction is:
L1 LR R5,COUNTER
This represents an instruction at a location in memory denoted by ‘L1’, and the instruction loads a register (a storage area that can be acted on directly by the processor), ‘R5’, from a memory location denoted by the symbol ‘COUNTER’. A program that does anything useful contains thousands of such instructions. A program called an assembler translates these symbolic instructions into actual machine instructions, one-for-one.
A Meta (or Macro) Assembler, such as MASM, can be programmed to generate different types of instructions for different types of computers, such as the 494 and the 3760. In addition, it can be set up to generate multiple instructions from a single symbolic line of text. It often happens that certain patterns of instructions are used over and over again, with slight changes.
Another approach to programming uses high-level languages, such as FORTRAN or COBOL. These languages are typically useful for scientific or commercial applications, but don’t generate code efficient enough for very demanding tasks, such as handling communication circuits.
I proposed a set of MASM macros that would implement control sequences similar to high-level languages, allowing IF-THEN-ELSE statements and LOOPs to be expressed easily. With help from two other programers, we implemented these control structures. Once they were adopted by the NASCOM team, reliability of the code and programmers’ productivity were improved.
I found this effort rewarding for a couple of reasons. First, it was a real contribution to the efficiency of our team. Second, it was an application of lessons I had learned in studying computer science at school, and totally unanticipated by most of the programmers on our team; really ‘outside the box’. This initiative further improved my reputation in Sperry.
Previous: Learning and enhancing 3760/CPx
Next: Operating System