An PDP-1 hack probably deliberately omitted (e.g., from http://inwap.com/pdp10/hbaker/hakmem/hacks.html), but perhaps worth preserving: It was an 18 bit, 4K (!) machine with a 6 bit character code (FIO-DEC), and most of the printouts were three characters. E.g., in the assembler, usw = undefined symbol in word mce = macro capacity exceeded, and in Samson's music compiler, mts = measure too short agm = argument greedily masticates To type out the three characters in the AC, lio asa /load IO rcl 6s /rotate combined left 6 bits tyo asa, sas asa /skip if AC same as . jmp .-3 This was safe because the 6-bit order code for sas (not indirect) was an illegal FIO-DEC character (which actually jammed the Soroban typewriter?). Also, a most regrettable typo ruins a spectacular mate in 3: http://www.inwap.com/pdp10/hbaker/hakmem/games.html ITEM 70: A neat chess problem, swiped from "Chess for Fun and Chess for Blood", by Edward Lasker: white: pawns at QN3 and KN7, knight at QN4, bishop at KB7, king at QB2; (NO, the B should be KB8!) black: pawn at QN3, king at QR6. White mates in three moves.
Cool! Thanks for the typo in ITEM 70. I'll fix it in my copy at http://home.pipeline.com/~hbaker1/hakmem/games.html. I have no control over the copy at inwap.com. Regarding the various PDP-1 and other assembly hacks: Why do we find them interesting? The "overloading" of two different functions to get something for nothing? The utilization of one function for another completely unexpected function? The execution of data as function or vice versa? I've noticed that the ability to "hack" modern order codes is extremely limited. What is it about early order codes that made them more hackable? Some hacks that I've done include the use of the (barely) programmable "Channel Command Words" in 360 I/O instructions to do the overflow searching for a disk-based hash table. This falls under the category of (mis?) using an existing feature for something never intended by the original designer. A lot of hacks seem to involve executing data as program or vice versa. Unfortunately, most of these have been taken over by truly evil people, and have therefore been made illegal (sometimes even jail-type illegal!). I understand that there exist proteins that are encoded from DNA read in two different ways by starting _within_ a codon. This is analogous to misreading a computer memory by shifting every word by a fixed amount before interpreting it. I don't recall any machine language hacks which involve this type of cleverness. At 06:06 PM 6/4/2007, R. William Gosper wrote:
An PDP-1 hack probably deliberately omitted (e.g., from http://inwap.com/pdp10/hbaker/hakmem/hacks.html), but perhaps worth preserving: It was an 18 bit, 4K (!) machine with a 6 bit character code (FIO-DEC), and most of the printouts were three characters. E.g., in the assembler, usw = undefined symbol in word mce = macro capacity exceeded, and in Samson's music compiler, mts = measure too short agm = argument greedily masticates
To type out the three characters in the AC,
lio asa /load IO rcl 6s /rotate combined left 6 bits tyo asa, sas asa /skip if AC same as . jmp .-3
This was safe because the 6-bit order code for sas (not indirect) was an illegal FIO-DEC character (which actually jammed the Soroban typewriter?).
Also, a most regrettable typo ruins a spectacular mate in 3: http://www.inwap.com/pdp10/hbaker/hakmem/games.html ITEM 70: A neat chess problem, swiped from "Chess for Fun and Chess for Blood", by Edward Lasker:
white: pawns at QN3 and KN7, knight at QN4, bishop at KB7, king at QB2;
(NO, the B should be KB8!)
black: pawn at QN3, king at QR6. White mates in three moves.
participants (2)
-
Henry Baker -
R. William Gosper