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....
|
||
|
||
|
||
|