An Emidec program consists of a number of "stages". Each stage contains up to 64 instructions, each held in a 36-bit word. Any instruction is identified by its stage number and the instruction number within the stage - thus, R200 is the first instruction in stage 2.
When the program is started, it loads up the first stage; after that, the loading of subsequent stages must be done by the program itself.
Structure of an instruction...
0 permanent value of 0
1-7 modifiers
8-9 used by multiply/divide instructions
10 result of a collate instruction
11 permanent value of 1
12 permanent value of 1 in the a-address
13 permanent value of 1 in the b-address
14 permanent value of 1 in the c-address
15 permanent value of 16 in the c-address (ie 1 in digit 35)
16 console register - can have its value set by the program or set by the switches on the console
The coding sheet CLICK HERE for more on coding sheets
The "synthesis" program was what would later become known as a "compiler". A program in punch card form would be fed into the synthesis program, and converted into a binary version for running in the machine.
The 92 and 93 cards would first tell the synthesis program where the relative locations were for program stages (R and S addresses) and data sections (A, B, C etc). Armed with this information, the relative addresses could be turned into absolute decimal addresses and then converted to binary for storage.
So, the paper coded instruction "7 11 A0" (add 1 to register A0) would be converted to say "7 11 32" (assuming that a previous "92 A 32" instruction had told the synthesis program that section A starts at register 32), and then to a binary representation in a 36-bit word... 000000000000100000000000101100111000
The instructions from the coding sheet were punched (3 instructions per card) in this format...
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | ![]() |
Inside the Emidec, the instruction was stored in this format...
35 28 18 8 3 0
0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 0 0 1 1 1 0 0 0
| | | | |
C2-add C1-add b-address a-address function mod
Of course, all programs had to be fully documented with flowcharts - we had special A3 plain-paper pads for flowcharts, which were then stored, folded in two, in the program folder. We were issued with flowchart templates (didn't we have similar things for chemistry diagrams at school???).
CLICK HERE to view flowchart templates