CAREY SCHUG wrote:
> I'm going to suggest that the 1620 had the most HCF instructions of any 
> commercially
> produced computer, ever.  And the most intentionally used on a daily basis.
<snip>

> 1. you could press "insert" on the typewriter and enter a program starting at
> location zero which was executed when you hit return.  If you wanted to clear 
> memory, you
> typed in 12 digits "310000900010" (transmit record) which meant copy the
> character at location 9 to location 10, then 10 to 11, etc until it found the 
> special
> character "record mark", which it would never find as you typed in a zero at 
> the
> starting address.  watch the address lights till it looped and hit reset.

Note that, as written, your instruction doesn't clear memory, it shifts memory 
to the left by one digit every complete cycle through memory, because the 
destination address is lower than the source address. What you need to do a 
"forward smear," where the source address is lower than the destination 
address, so that the destination digits become source digits as the addresses 
increase, e.g., 310000300002. 

That would only work on a 1620 Model 1, however. It wouldn't work on a Model 2. 
Both models fetched two digits from memory at a time, but for many instructions 
(including TR and TF) the Model 2 would stash the digit at the odd address and 
use it during the odd-address fetch cycle, saving a redundant fetch from the 
same digit pair in memory. Therefore, the source and destination addresses had 
to differ by at least 2 -- this will work on the Model 2: 310000400002.

But nobody bothered with that on the Model 2, because it had a hardware memory 
clear mechanism. Simultaneously pressing MODIFY (which wasn't present on the 
Model 1) and CHECK RESET on the console would turn on the CLR MEM control gate. 
Then pressing START would clear all of memory once and halt.

<snip>
> 2. remember that record mark? if you ever executed an instruction with a 
> record mark in
> the address, you got a MAR check red light, a hard reset was required to 
> escape.  probably
> if in the op code also.  And some hard stop for any invalid op code, but 
> these may have
> been in the category below.

Shouldn't these be considered good error-trapping features and not in the same 
league as HCF?  An RM had the 8 and 2  bits set, so it wasn't a valid decimal 
digit, and couldn't be used in an address. An RM in the Q field of an immediate 
instruction was okay, though.

> 3. there were other errors, but you could press start to continue and there 
> was a toggle
> switch to ignore at least some of them, like a parity error in memory.

You could press START to continue after a memory parity error or an I/O parity 
error, but not after a MAR CHECK.

The PROGRAM/STOP toggle switches (there were four of them, for DISK, MEMORY, 
I/O, and arithmetic OVERFLOW) did not cause the errors to be ignored, they just 
controlled whether the CPU halted when exceptions occurred. In all cases, 
internal flags (termed "indicators") were set, which could be interrogated by 
the BI and BNI instructions. The MEMORY switch had no effect on a MAR CHECK -- 
the CPU always did a hard stop on those and required a RESET.

<snip>

Paul

Reply via email to