were for the displacement(s) or address(es) for operands, or the details for some commands. An example: a simple command, Conditional Jump, a special type of conditional branch (forward only, up to 256 bytes) suitable mainly for jumping over short blocks of code: Op code byte= F2 (this is in hexadecimal, Hex F is binary 1111, Hex 2 (0010) defines the op); Q byte= 00000001 specifies that we "jump" if the condition register has the "equal" bit on; Operand= 00011000: if the condition is met we jump forward 24 bytes. Indicators were binary switches used to control program flow. Over 100 of these were available to the programmer. By using the instruction formats explained above, many of the indicator-oriented operations could be fit into just 3 bytes. For example, a line of RPG might test an indicator for "On": 3 bytes for a "Test Bits On" op; then 3 bytes for a Jump, as previously described, and useful to the RPG compiler. Saving the odd byte here and there was good when you had only 64K to play with—and, on the S/3 itself, that had to include the operating system (which grew to about 20K on the model 10 with the introduction of the "Communication Control Program", CCP). Operation Control Language A simple job control language called Operation Control Language (OCL) was superficially similar to the Job Control Language (JCL). Operator control commands Operator control commands (OCCs) were used to communicate with the system. Languages The System/3 supported RPG II, Fortran IV, COBOL, and Assembler. RPG II compiler The System/3 came standard with a RPG II compiler. In a card-only system, the RPG II compiler was supplied as two phases. The first phase would be booted from one input hopper of the MFCU, and the source would then be read following the compiler. An intermediate form was punched on cards, which were then read by the second phase of the compiler. An executable program deck was then punched. This executable could then be booted ("IPL'ed", for "Initial Program Load") to perform the processing desired. This process could require more than an hour for a significant-sized program. Problems with System/3 The System/3 had no provision for halting a process once it had started to run. For instance, if a compile failed because of an error on the very first page, the user had to wait for a sometimes voluminous compile listing to