#include #include // // Fl Flexowriter code to ASCII // The documentation says that numerics are part of the lower case set, which doesn't // seem to match how tapes are punched // "pi" "sqr" and "omega" are currently ignored // // pi sqr // 00 01 02 03 04 05 06 07 10 11 12 13 14 15 16 17 char uc[] = { 0, 0, 0, 'L', '[', 'N', 'O', '&', '*', 'R', 0, 0, 0, 0, 0, 0, // ohm // 20 21 22 23 24 25 26 27 30 31 32 33 34 35 36 37 ' ', 'J', 'K', '=', 'M', ']', 0, 'P', 'Q', '(', 0, '"', 0 , 0 , '?', '_', // 40 41 42 43 44 45 46 47 50 51 52 53 54 55 56 57 ')', 'A', 'B', 'T', 'D', 'V', 'W', 'G', 'H', 'Z', 0 , '.', 0 , 0, '\n', 0, // 60 61 62 63 64 65 66 67 70 71 72 73 74 75 76 77 ':', 92, 'S', 'C', 'U', 'E', 'F', 'X', 'Y', 'I', 0 , ',', 0 , 0, '\t', 0 }; // 00 01 02 03 04 05 06 07 10 11 12 13 14 15 16 17 char lc[] = { 0, '1', '2', 'l', '4', 'n', 'o', '7', '8', 'r', 0, 0, 0, 0, 0, 0, // 20 21 22 23 24 25 26 27 30 31 32 33 34 35 36 37 ' ', 'j', 'k', '3', 'm', '5', '6', 'p', 'q', '9', 0 ,'\'', 0 , 0 , '+', '-', // 40 41 42 43 44 45 46 47 50 51 52 53 54 55 56 57 '0', 'a', 'b', 't', 'd', 'v', 'w', 'g', 'h', 'z', 0 , '.', 0 , 0, '\n', 0, // 60 61 62 63 64 65 66 67 70 71 72 73 74 75 76 77 ';', '$', 's', 'c', 'u', 'e', 'f', 'x', 'y', 'i', 0 , ',', 0 , 0, '\t', 0 }; int main(){ unsigned char in, c, out; int caseflag = 0; //default is LC while(1){ c = getchar(); if(feof(stdin)){putchar('\n'); exit(0);} if(c == 072){ caseflag = 1; continue;} if(c == 074){ caseflag = 0; continue;} if(caseflag) c = uc[c]; else c = lc[c]; if(c == 0) continue; putchar(c); } }