Name that late-'60s programming language or data representation format!
July 13, 2014 11:00 AM   Subscribe

Yesterday I picked up a piece of ceramic bric-à-brac promoting RCA's Electronic Data Processing division (active mid-1950s to 1971). It features ten different ways to represent data or algorithms, of which I recognize many, but not all. Can you name the rest? Bonus: Can you decode the ones with actual data?

Here's a zoomed-in image of the whole thing; warning, it's big!

From the outside to the inside, with "mysteries" bolded:
  • Blue: Say hello to our old friend News Gothic!
  • Red 1: Bitstream. Potentially decodable if it represents character data in ASCII or EBCDIC.
  • Red 2: Stream of 8-bit bytes (probably EBCDIC), which looks like it repeats every 80 characters or so. Almost certainly decodable.
  • Orange 1: Undetermined language. No luck googling the statements. The trailing-paren delimiter on the numeric values is probably key here.
  • Orange 2: Undetermined variable-width data representation format, which uses zeroes/blocks and tiny little numbers as placeholders. Very interested to know more about this one.
  • Yellow: 7-bit ASCII(?) paper tape format; also likely decodable.
  • Green 1: MICR E-13B characters.
  • Green 2: Looks like a sine function, in an undetermined language, represented as slanted characters in little cells over a horizontal line. The itself code is pretty generic but the representation may be typical of a specific language.
  • Green 3: Digits in OCR-A, which incidentally date this item to 1968-1971.
  • Blue 1: Undetermined language, with each character in a full-height cell.
  • Blue 2: Undetermined language, possibly assembly code?
I'm assuming that the item was meant for clients or an internal audience, and that therefore rather than being random junk that just looks like it came from a computer, the stuff on it consists of real-world examples that someone working in the field at the time would have recognized.
posted by Lazlo Nibble to Computers & Internet (10 answers total) 34 users marked this as a favorite
 
Here's the transcribed binary from red 1 if anyone is interested:

11110100
01001011
10000011
10001110
00110001
10011011
10100010
10011000
01110000
11110001
10000001
11110110
00000110
00011111
11010101
01000011
11100001
11110000
01100000
11110001
11000010
01110001
11000000
11001110
00010100
10001000
01101000
11000100

(just picked an arbitrary starting point)
posted by dilaudid at 11:28 AM on July 13, 2014


Yellow is definitely paper tape and appears to be repeating a short segment. Based on my papertape decoding notes, it might not be ASCII:
1000100 => 68 D
0011000 => 24 
1000001 => 65 A
0101011 => 43 +
0000011 => 3 
1100110 => 102 f
1110101 => 117 u
0111100 => 60 <
0110110 => 54 6
0111100 => 60 <
0111100 => 60 <
0111100 => 60 <
0000101 => 5 
1001100 => 76 L
0000101 => 5 
0111100 => 60 <
0110011 => 51 3
0100010 => 34 "
0101110 => 46 .
0111100 => 60 <
0111100 => 60 <
1010011 => 83 S
0010100 => 20 
1101010 => 106 j
1100000 => 96 `
1101111 => 111 o
0111100 => 60 <
1111110 => 126 ~
1111101 => 125 }
0111100 => 60 <
0111100 => 60 <
0111100 => 60 <
0111100 => 60 <
0111100 => 60 <
0111100 => 60 <
0111100 => 60 <

posted by autopilot at 11:39 AM on July 13, 2014


Orange 2 is each row off a punch card, laid out in sequence. (compare http://commons.wikimedia.org/wiki/File:Punched_card.jpg ) This is fascinating and I'm going to see what else I can find.
posted by wanderingmind at 1:01 PM on July 13, 2014


Green 2 is almost certainly Fortran (the ** is exponentiation in that language, so **2 means "squared"). It doesn't look like any sine approximation I've ever seen, though, and seems to have 5 or 6 variables - alpha, beta, gamma, omega, and then I and J as indices or arguments into whatever R is.

Fortran syntax uses parentheses for both function calls and array indexing, so R could be either - it's probably an array, given 'do something with the diagonal of a matrix' is a pretty common mathematical operation and the indices are R(I,I) and R(J,J). I and J are still open variables, though, so this is probably one line out of a much longer program, probably within a pair of nested for loops.
posted by wanderingmind at 1:55 PM on July 13, 2014


This reference guide To the RCA 501 mainframe may be useful. It describes the various encodings the system and its peripherals used.
posted by zsazsa at 1:59 PM on July 13, 2014 [1 favorite]


Thank you, zsazsa - page 17 of that has exactly the chart we needed to decode the "paper tape" one. It says:

)5_L(GV.W..."-".TCO..01KAP.<>.......
(where the periods are actually filled bullets, probably some kind of null character)

Rotating a few places, since the tape is a circle, we can make the parentheses match:

(GV.W..."-".TCO..01KAP.<>.......)5_L

It looks like some database row to me, although the meaning is still obtuse.
posted by wanderingmind at 2:21 PM on July 13, 2014


I should note that the V and the - have parity errors, according to that leftmost check bit. V could be 2, F, <, R, U, or X. - could be ), 9, M, %, *, or a period.
posted by wanderingmind at 2:26 PM on July 13, 2014


As far as I remember, RCA computers used EBCDIC, not ASCII, as their character encoding.
posted by blob at 2:27 PM on July 13, 2014


Red1 could be either 28*(8 bit characters) or 32*(7 bit characters).

Tried each of these with the various rotation offsets but could not find any textual message hiding away (as ASCII or EBCDIC) unfortunately.
posted by azlondon at 3:21 PM on July 13, 2014


Blue 1 looks like COBOL to me.
posted by ob1quixote at 11:01 PM on July 13, 2014


« Older Dogs that lick... a lot   |   When you're the nth choice... Newer »
This thread is closed to new comments.