As with other Assembly Languages, each line of ARGUS was copied on to one card and related to one word in memory, except that one ARGUS command, RESERVE, could reserve any specified number of words in the position specified.
With a few exceptions Machine Language words were coded in the same order as the ARGUS lines.
At any given time the machine could theoretically run one Operating System and 7 application programs, each with exclusive use of 32 registers.
Other lines of ARGUS could refer to that name and their words would be assigned the correct memory address.
The first 12 bits specified the operation, with ancillary information including the offset address of any mask for the command.
A segment was allowed up to 16 masks and they had to be in consecutive words, beginning at an address whose last four bits were all 0.
The command field had 4 bits to hold the offset address of the named mask.
In ARGUS: Z,R0,3 means read from or write to register R0 directly and then increase it by 3.
In ARGUS: X0,35 or 0,35 means use Index Register 0, increase that number by 35 (decimal) and read from or write to that location in main memory.
It meant the field would be ignored by the processor, thereby nullifying part of the usual action of the command.
Direct and Indirect addressing were applicable to both general purpose and index registers.
In operation, the Sequence Counter always contained the full address of the command that was running.
The Cosequence Counter and History performed the same functions for any command that had X, at the beginning of its ARGUS location.
It is converted to binary and positioned in the operation section of the machine language command.
[citation needed] Address C MUST be Indirect with an increment of one or more so that each individual transfer operates on a different word.
As for MT this is a decimal number that ends up in binary in the operation section of the machine command.
[citation needed] This command was frequently used in applications, especially for “blanking” out areas of text.
Otherwise JUMP to C.[citation needed] For a loop with a counter, LA is safer than NA.
OCT The punched letter or number is translated into a three bit octal code.
HEX The punched letter or number is translated into a four bit hexadecimal code.
For OCT, HEX and DEC, the leftmost 4 bits are used to denote the sign of the number.
Then Address C will contain: ABCDEFGD In Machine Language all shifts were represented as Binary right.
This was done during at an early stage of assembly before the ARGUS was translated to machine code.
There were quite a few macros in the standard library (held on its own tape) and customers could add more.
These commands were also available in simulation form if the hardware did not include the adaptor but this was not recommended for regular use.
In its absence, ARGUS would supply a machine language simulation of true floating point operation.
Input and Output device addresses at machine level were two octal digits 0-7.
To amend an existing tape, you could use RF to find the first record that you didn't want, then RB to reach the space before it, then WF to write over it and onwards.
It was normal to use two buffers for each device so that reading or writing could run in parallel with processing.
For normal application work all peripheral commands, except perhaps RW, would be placed in a subroutine.