86 lines
3.3 KiB
Plaintext
86 lines
3.3 KiB
Plaintext
|
From: aty@ucselx.sdsu.edu (young a t)
|
|||
|
Newsgroups: alt.folklore.computers
|
|||
|
Subject: apocryphal opcode mnemonics,long
|
|||
|
Date: 23 Apr 90 04:59:46 GMT
|
|||
|
|
|||
|
CRN is clearly a parody of the IBM 7090's CRQ instruction, the nearest thing
|
|||
|
to a Rube Goldberg machine ever constructed. To quote from IBM publication
|
|||
|
A22-6528-4 (March 1962), with acronyms expanded for modern readers:
|
|||
|
|
|||
|
"CRQ -- Convert by Replacement from the MQ
|
|||
|
....
|
|||
|
This instruction treats the contents of the MQ register as six 6-bit
|
|||
|
quantities and replaces the first C of these quantities by values from
|
|||
|
tables in core storage.
|
|||
|
....
|
|||
|
The instruction is executed in the following steps:
|
|||
|
|
|||
|
1. The address part replaces the address field of the Storage Register.
|
|||
|
|
|||
|
2. The count field C is placed in the shift register.
|
|||
|
|
|||
|
3. The contents of the shift register are tested. If the register
|
|||
|
contains 0, step 4a follows. If the register is not 0, step 4b follows.
|
|||
|
|
|||
|
4a. If position 20 of this instruction contains a 1, the address
|
|||
|
field of the Storage Register replaces Index Register A and the computer
|
|||
|
proceeds to the next sequential instruction. If position 20 contrins a 0,
|
|||
|
the computer proceeds directly to the next sequential instruction.
|
|||
|
|
|||
|
4b. The address bits of the Storage Register are added to the
|
|||
|
signed contents of the MQ register to form an address (X). The contents
|
|||
|
of X then replace the contents of the Storage Register.
|
|||
|
|
|||
|
5. The contents of the MQ are shifted left six places. Bits shifted
|
|||
|
out of its sign bit are lost. Positions vacated are filled with zeros.
|
|||
|
|
|||
|
6. The sign and highest 5 bits of the storage register replace the
|
|||
|
lowest 6 bits of the MQ.
|
|||
|
|
|||
|
7. The contents of the shift register are decreased by one, and the
|
|||
|
computer returns to step 3."
|
|||
|
|
|||
|
|
|||
|
This wasn't far from converting to Roman numerals. It was intended to do
|
|||
|
arithmetic directly on BCD numbers without converting them to binary.
|
|||
|
The complexity of this and other instructions led to claims by other
|
|||
|
computer manufacturers that their machines executed programs faster because
|
|||
|
they had simpler instruction sets. Similar claims are being made today
|
|||
|
under the "RISC vs. CISC" argument -- so what else is new?
|
|||
|
|
|||
|
I first met HCF in a list of "Proposed System/360 Instructions" about 1969
|
|||
|
or '70, posted on a wall near a computer at JPL. The list follows:
|
|||
|
|
|||
|
BH Branch and Hang
|
|||
|
IIB Ignore Inquiry and Branch
|
|||
|
TDB Transfer and Drop Bits
|
|||
|
DO Divide and Overflow
|
|||
|
SRZ Subtract and Reset to Zero
|
|||
|
PI Punch Invalid [note use of punched cards.]
|
|||
|
SSJ Select Stacker and Jam
|
|||
|
FSRA Forms Skip and Run Away [predecessor of Launch Paper?]
|
|||
|
RASC Read and Shred Card
|
|||
|
SRSD Seek Record and Scar Disc [disks were new then.]
|
|||
|
BST Backspace and Stretch Tape
|
|||
|
RIRG Read Inter-Record Gap
|
|||
|
UER Update and Erase Record
|
|||
|
EM Emulate 407 [407 = card-deck lister.]
|
|||
|
SPSW Scramble Program Status Word
|
|||
|
EIOC Execute Invalid Op Code
|
|||
|
EROS Erase Read-Only Storage
|
|||
|
PBC Print and Break Chain [chain-type line printers were current]
|
|||
|
CM Circulate Memory
|
|||
|
MLR Move and Lose Record
|
|||
|
CRN Convert to Roman Numerals [see above.]
|
|||
|
DMPK Destroy Memory Protect Key
|
|||
|
DC Divide and Conquer
|
|||
|
EPI Execute Programmer Immediate
|
|||
|
LCC Load and Clear Core
|
|||
|
HCF Halt and Catch Fire
|
|||
|
|
|||
|
|
|||
|
As I recall, the 360's were introduced late, supposedly because IBM had
|
|||
|
trouble getting bugs out of the instruction set....
|
|||
|
|
|||
|
|
|||
|
|