Thread View: net.micro.cbm
1 messages
1 total messages
Started by Fred Walter
Fri, 07 Nov 1986 00:37
program to convert from c-power/pet ascii to unix ascii (and back)
Author: Fred Walter
Date: Fri, 07 Nov 1986 00:37
Date: Fri, 07 Nov 1986 00:37
195 lines
5120 bytes
5120 bytes
This is a short C program that takes c-power/pet ascii on stdin and converts
it to unix ascii on stdout (use -p as the first argument to convert the
other way).
It needs just a straight vanilla compile (ie. "cc cnv.c -o cnv" will do).
It is useful when your transfer program (say xmodem on proterm-128)
doesn't do the conversion for you.
If you have any comments, I can be reached at :
UUCP : {allegra|clyde|linus|decvax|utzoo|ihnp4}!watmath!grwalter
CSNET : grwalter%watmath@waterloo.csnet
ARPA : grwalter%watmath%waterloo.csnet@csnet-relay.arpa
---------yes-virginia-there-is-a-cut-line--------------------------------------
/*
* cnv.c
*
* by g. r. walter (grwalter@watmath) 861106
*
* take from stdin a petascii file and convert it to unixascii to sdtout
* (using 10 as the end-of-line indicator)
*
* if the -p option is used then
* take from stdin a unixascii file and convert it to petascii to sdtout
* (using 13 as the end-of-line indicator)
*
* note : this file is meant to be viewed/editted using tabs every 4 spaces
*
* credits : the conversion tables were originally made up by brian hilchie
* and they really are for the c-power petascii
*
*/
#include <stdio.h>
char tounixascii[256] = {
0, 1, 2, 3,
4, 5, 6, 7,
8, 9, 10, 11,
12, 10, 14, 15,
16, 17, 18, 19,
20, 21, 22, 23,
24, 25, 26, 27,
28, 29, 30, 31,
' ', '!', '"', '#',
'$', '%', '&', '\'',
'(', ')', '*', '+',
',', '-', '.', '/',
'0', '1', '2', '3',
'4', '5', '6', '7',
'8', '9', ':', ';',
'<', '=', '>', '?',
'@', 'a', 'b', 'c',
'd', 'e', 'f', 'g',
'h', 'i', 'j', 'k',
'l', 'm', 'n', 'o',
'p', 'q', 'r', 's',
't', 'u', 'v', 'w',
'x', 'y', 'z', '[',
'\\', ']', '^', '_',
'`', 'a', 'b', 'c',
'd', 'e', 'f', 'g',
'h', 'i', 'j', 'k',
'l', 'm', 'n', 'o',
'p', 'q', 'r', 's',
't', 'u', 'v', 'w',
'x', 'y', 'z', '{',
'|', '}', '~', 127,
128, 129, 130, 131,
132, 133, 134, 135,
136, 137, 138, 139,
140, 141, 142, 143,
144, 145, 146, 147,
148, 149, 150, 151,
152, 153, 154, 155,
156, 157, 158, 159,
160, 161, 162, 163,
'_', 165, 166, 167,
168, 169, 170, 171,
172, 173, 174, '~',
176, 177, 178, 179,
180, 181, 182, 183,
184, 185, 186, 187,
188, 189, 190, 191,
192, 'A', 'B', 'C',
'D', 'E', 'F', 'G',
'H', 'I', 'J', 'K',
'L', 'M', 'N', 'O',
'P', 'Q', 'R', 'S',
'T', 'U', 'V', 'W',
'X', 'Y', 'Z', '{',
220, '}', 222, '|',
224, 225, 226, 227,
228, 229, 230, 231,
232, 233, 234, 235,
236, 237, 238, 239,
240, 241, 242, 243,
244, 245, 246, 247,
248, 249, 250, 251,
252, 253, 254, 255
};
char topetascii[256] = {
0, 1, 2, 3,
4, 5, 6, 7,
8, 9, 13, 11,
12, 13, 14, 15,
16, 17, 18, 19,
20, 21, 22, 23,
24, 25, 26, 27,
28, 29, 30, 31,
' ', '!', '"', '#',
'$', '%', '&', '\'',
'(', ')', '*', '+',
',', '-', '.', '/',
'0', '1', '2', '3',
'4', '5', '6', '7',
'8', '9', ':', ';',
'<', '=', '>', '?',
'@', 193, 194, 195,
196, 197, 198, 199,
200, 201, 202, 203,
204, 205, 206, 207,
208, 209, 210, 211,
212, 213, 214, 215,
216, 217, 218, '[',
'\\', ']', '^', 164,
'`', 'A', 'B', 'C',
'D', 'E', 'F', 'G',
'H', 'I', 'J', 'K',
'L', 'M', 'N', 'O',
'P', 'Q', 'R', 'S',
'T', 'U', 'V', 'W',
'X', 'Y', 'Z', 219,
223, 221, 175, 127,
128, 129, 130, 131,
132, 133, 134, 135,
136, 137, 138, 139,
140, 141, 142, 143,
144, 145, 146, 147,
148, 149, 150, 151,
152, 153, 154, 155,
156, 157, 158, 159,
160, 161, 162, 163,
164, 165, 166, 167,
168, 169, 170, 171,
172, 173, 174, 175,
176, 177, 178, 179,
180, 181, 182, 183,
184, 185, 186, 187,
188, 189, 190, 191,
192, 193, 194, 195,
196, 197, 198, 199,
200, 201, 202, 203,
204, 205, 206, 207,
208, 209, 210, 211,
212, 213, 214, 215,
216, 217, 218, 219,
220, 221, 222, 223,
224, 225, 226, 227,
228, 229, 230, 231,
232, 233, 234, 235,
236, 237, 238, 239,
240, 241, 242, 243,
244, 245, 246, 247,
248, 249, 250, 251,
252, 253, 254, 255
};
int
main(argc, argv)
int argc;
char **argv;
{
int c, direction, trans;
/* see what direction the conversion must go */
direction = 0; /* assume default is tounixascii */
if (argc > 1)
if ((argv[1][0] == '-') && (argv[1][1] == 'p'))
direction = 1;
c = getchar();
while (c != EOF) {
if (direction == 0)
trans = tounixascii[c];
else
trans = topetascii[c];
(void)printf("%c", trans);
c = getchar();
}
}
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads