The Univac Solid State Computer 90, some instructions.


                                     The Operators console on the CPU.

The shift instructions:

The instruction:   32 0N00 C  shifted the contents of rA and rX  N places to the right. 
(rA & rX): 0000000200 & 0000010003 would become 
(rA & rX): 0030000000 & 2000000010 after the execution of 32 0300 0455.

In this shift to the right (as dividing by 10) rA and rX were connected to each other, 
which caused the digits that were shifted out rA to appear in rX and those from rX into rA.

37 0N00 C   would shift the content of  rA to the left N by places (like multiplying by 10) 
and would bring zeros into the LSD (the least significant digit)  of rA. 
Digits that shifted out on the left-side (the most significant) were ignored.

The shift-instructions were used to edit numbers to be printed or as a fast multiplication or division by 10. 
They were also used in floating point arithmetics.

The goto instruction:

On execution of: 00 0012 0000 the USSC continued with (M), at address 0012 in this example. The 00 instruction was used in calculated-jumps or in table-organized-jumps. The jump-instruction used the M part for the address to continue, therefor this instruction could be indexed. For example: - 00 0400 0000, + 04 0600 000 and - 04 0800 0000 were indexed jumps.

The stop instruction:

A stop-instruction could look like: 67 0900 2800 67 was the Instruction-Code which halted the USSC. When stopped, the USSC displayed this stop instruction on the console. (During execution all instructions were displayed, but in a run they succeeded each other too fast to be recognized.) When an operator then read 67 3399 3250 this would mean: “ The USSC stopped at an error-condition identified by the number 3399". The operator then restarted the USSC by pressing the C-button and RUN and the program then continued with 3250. The stop instruction was also used to allow operators to make a choice in program-branching. By pressing the M - or the C -button (‘next address’) the operator could choose to continue with the instruction in (M) or in (C). Often numbers in M like 3399 or 9999 were used to indicate normal-endings of a program, since their patterns were easy to recognize on the biquinary display.

Logic-instructions

The IC's 20 and 35 were described as superimpose and extract. Nowadays we would describe them as an logical OR- and an AND-function. 20 M C (rA) OR (m) -> rA 35 M C (rA) AND (m) -> rA

The translate instructions

The machine worked with four bit (numerical) code only, the machine code (MC). For Apha/numeric purposes like for printing and for punching names, there was an six-bit code available. This code, named Remington Rand-code (RR), was stored in two words, in two addresses or in two registers (rA & rX). When numbers had to be printed, they had to be converted from MC to RR. This was done with instruction 17: 17 - C = MC in (rA) -> RR in (rA & rX) When numbers were entered on punch-cards, often they were coded in RR. To calculate with these numbers they had to be translated from RR to MC. This translation was executed with 12: 12 - C = RR in (rA & rX) -> MC in (rA) When a number was going to be printed, all numeric zeroes were translated to printable zeroes. There was an instruction to get rid of the leading zeroes and the leading commas: 62. 62 - C = in RR (rA & rX) it replaced the characters 0001 0000 (0) or 1101 0010 (,) by 0000 0000 (space).

Comparisons

The simplest way to check a number for end of loop was the use of the addition, by adding the complementary number of the last value to be processed, the computer would detect an overflow on the end of the loop and would then branch to C+1. To enhance the understanding of your program by other programmers, it was better to use the comparison-instructions: 82 tested on equality and 87 tested on greater then, both compared (rA) and (rL). 82 M C = continuation with (M) if (rA) and (rL) were equal, in (C) if they were not equal. 87 M C = continuation with (M) if (rA) was greater, in (C) if (rA) was equal or smaller then (rL) Note that: 87 > =< (rA) : (rL) could also be written as: 87 < >= (rL) : (rA).

Menu:
.Home .CPU .Instructions .Instr.list .Software .Punchcards .Contact