Open Cabalist opened 7 years ago
It is also worth noting that there are other very different fonts that were made available
Such as:
I am thinking a Compatibility table is in the future with Model and Printwheels...
Wow -- thanks for the updated information (wait a minute...did you outbid me on an eBay listing for those wheels?? -- it looks like that listing included Letter Gothic, so probably not).
I'm surprised Courier doesn't have curly braces (did they really need § and ¶ ?). I was sure there would be modified letters (the Arabic wheel shows that there are completely different wheels). Alas.
I'm still flummoxed by the encoding (i.e., why 'a' is 0x1, b is 0x59, etc.). I wonder if it has to do with the frequency of letters in English -- having x, q, v, z, and w near each other is suspect, as is having i, t, o, and e next to each other. If we could only track down an engineer who originally worked on the Wheelwriter design...
Oh! The Encoding is actually really simple and I meant to point it out in the original post. a is the first letter on the wheel, n is the second, etc. There are 96 symbols on each wheel. Haha.
On the chart above the sequence is the order they appear and it exactly matches the hex values you found. :)
I've got 5 wheels if you would like me to send you one I totally can.
I have been on Craigslist pretty extensively in the PNW for the last few weeks trying to find these things. :)
Ah -- so interesting. I just looked at the wheel on mine and I see what you mean. I have a feeling that the code itself is related to letter frequency, because the top keys are aeoti (to the left) and rmcsb (to the right) -- pretty common letters.
No worries about the wheel -- I will get one soon. Thanks, though!
Here are some updated examples of asciiTrans with formatting. asciiTrans is kind of a misnomer as this has non-ascii symbols and is missing ascii symbols. Maybe symbolTrans instead?
Sequential Order
int asciiTrans[96] =
// a n r m c s d h
{0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,
// l f k , V - G U
0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0x10,
// F B Z H P ) R L
0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18,
// S N C T D E I A
0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F, 0x20,
// J O ( M . Y , /
0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28,
// W 9 K 3 X 1 2 0
0x29, 0x2A, 0x2B, 0x2C, 0x2D, 0x2E, 0x2F, 0x30,
// 5 4 6 8 7 * $ #
0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38,
// % ¢ + ± @ Q & ]
0x39, 0x3A, 0x3B, 0x3C, 0x3D, 0x3E, 0x3F, 0x40,
// [ ² ³ ° § ¶ ½ ¼
0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48,
// ! ? " ' = : _ ;
0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F, 0x50,
// x q v z w j . y
0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58,
// b g u p i t o e
0x59, 0x5A, 0x5B, 0x5C, 0x5D, 0x5E, 0x5F, 0x60}
Symbol order with grouping
int asciiTrans[96] =
// A B C D E F G H
{0x20, 0x12, 0x1B, 0x1D, 0x1E, 0x11, 0x0F, 0x14,
// I J K L M N O P
0x1F, 0x21, 0x2B, 0x18, 0x24, 0x1A, 0x22, 0x15,
// Q R S T U V W X
0x3E, 0x17, 0x19, 0x1C, 0x10, 0x0D, 0x29, 0x2D,
// Y Z
0x26, 0x13,
// a b c d e f g h
0x01, 0x59, 0x05, 0x07, 0x60, 0x0A, 0x5A, 0x08,
// i j k l m n o p
0x5D, 0x56, 0x0B, 0x09, 0x04, 0x02, 0x5F, 0x5C,
// q r s t u v w x
0x52, 0x03, 0x06, 0x5E, 0x5B, 0x53, 0x55, 0x51,
// y z
0x58, 0x54,
// 0 1 2 3 4 5 6 7
0x30, 0x2E, 0x2F, 0x2C, 0x32, 0x31, 0x33, 0x35,
// 8 9
0x34, 0x2A,
// ! " # $ % & ' (
0x49, 0x4B, 0x38, 0x37, 0x39, 0x3F, 0x4C, 0x23,
// ) * + , , - . .
0x16, 0x36, 0x3B, 0x27, 0x0C, 0x0E, 0x57, 0x25,
// / : ; = ? @ [ ]
0x28, 0x4E, 0x50, 0x4D, 0x4A, 0x3D, 0x41, 0x40,
// _ ¢ § ° ± ² ³ ¶
0x4F, 0x3A, 0x45, 0x44, 0x3C, 0x42, 0x43, 0x46,
// ¼ ½
0x48, 0x47}
Symbol order without grouping:
int asciiTrans[96] =
// A B C D E F G H
{0x20, 0x12, 0x1B, 0x1D, 0x1E, 0x11, 0x0F, 0x14,
// I J K L M N O P
0x1F, 0x21, 0x2B, 0x18, 0x24, 0x1A, 0x22, 0x15,
// Q R S T U V W X
0x3E, 0x17, 0x19, 0x1C, 0x10, 0x0D, 0x29, 0x2D,
// Y Z a b c d e f
0x26, 0x13, 0x01, 0x59, 0x05, 0x07, 0x60, 0x0A,
// g h i j k l m n
0x5A, 0x08, 0x5D, 0x56, 0x0B, 0x09, 0x04, 0x02,
// o p q r s t u v
0x5F, 0x5C, 0x52, 0x03, 0x06, 0x5E, 0x5B, 0x53,
// w x y z 0 1 2 3
0x55, 0x51, 0x58, 0x54, 0x30, 0x2E, 0x2F, 0x2C,
// 4 5 6 7 8 9 ! "
0x32, 0x31, 0x33, 0x35, 0x34, 0x2A, 0x49, 0x4B,
// # $ % & ' ( ) *
0x38, 0x37, 0x39, 0x3F, 0x4C, 0x23, 0x16, 0x36,
// + , , - . . / :
0x3B, 0x27, 0x0C, 0x0E, 0x57, 0x25, 0x28, 0x4E,
// ; = ? @ [ ] _ ¢
0x50, 0x4D, 0x4A, 0x3D, 0x41, 0x40, 0x4F, 0x3A,
// § ° ± ² ³ ¶ ¼ ½
0x45, 0x44, 0x3C, 0x42, 0x43, 0x46, 0x48, 0x47}
nice work!
I just received an OCR-A wheel, and interestingly, there are some differences. Funnily enough, there are curly braces, but you use the parentheses keys, so there aren't any parentheses! At least I haven't found them yet. :/
There aren't any square brackets, either, nor an exclamation point, nor an underscore. So, my idea to print code with the typewriter seems slim at this point.
According to https://typewriters.com/supplies/genuine-ibm-printwheel/ there are "ASCII" printwheels. I have yet to actually find one available anywhere, but they seem to have existed at some point (e.g. Courier 10 ASCII DP, Letter Gothic ASCII, Prestige Elite 12 ASCII)
I did finally score a Courier 10 DP, 1353909, which has the full ASCII character set. See: https://github.com/RussellSenior/ww5teletype/blob/master/doc/printwheel-map-with-option-board-codes.txt
And @Cabalist, fyi, I'm just across the river from you in Portland.
I've managed to get my hands on 5 different font wheels. I went through and compared all of them and found some omissions and errors in the
asciiTrans
section of the Arduino code.All font wheels have the same characters and sadly there are no curly braces to be found. Quine will not be possible in C 😉
This is the COMPLETE font table for these fonts. I went through the wheels by hand and looked at every letter. There may be different WAYS of typing to discover but there aren't different THINGS to type.
Elite (1353861) Title (1353952) Delegate (1353843) Courier 10 (1353511) Prestige Elite (1353502)
My summary follows: