Subject: apocryphal opcode mnemonics,long
From: [email-masked] (young a t)
Date: 23 Apr 90 04:59:46 GMT
Newsgroups: alt.folklore.computers

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