/*======================================================================* * DOSshell program to convert an ASCII file to ATASCII format. * *======================================================================*/ #version $50 #reserve 6 #copyright "Clean_i.cmd Writting By Stephen J. Carden Copyright 1995" #address $7000 #include runtime.h #include bbs_pro.h #define MAXBUFF 8192 #define DISK2 2 #define DISK4 4 char buffer [MAXBUFF]; main() { heading(); if (length (parm1) == 0) { echose("Usage: Clean_i filename.ext"); return; } convert_file(); } heading() { cr_lf(); echose("BBS Express! Pro Clean_i v5.0"); echose(" Atascii inverse Stripper"); cr_lf(); } convert_file() { byte rc1, rc2; int x, bytesin, bytesout; MIOsuspend(); if (open (DISK2, parm1, 4, 0) != OK) { /* open input file? */ MIOresume(); echose("Unable to open input file!"); return; } if (open (DISK4, parm1, 12, 0) != OK) { /* bind to both channels */ close (DISK2); MIOresume(); echose("Unable to bind output channel!"); return; } MIOresume(); echos ("Stripping..."); MIOsuspend(); do { bytesin = blockread (DISK2, buffer, sizeof(buffer)); if (IOresult (DISK2) == OK || IOresult (DISK2) == 136) { for (x=0; x < bytesin; ++x) case (buffer [x]) { 0: buffer [x] = ' '; 2: buffer [x] = ' '; 6: buffer [x] = ' '; 7: buffer [x] = ' '; 8: buffer [x] = ' '; 9: buffer [x] = ' '; 10: buffer [x] = ' '; 11: buffer [x] = ' '; 12: buffer [x] = ' '; 13: buffer [x] = ' '; 14: buffer [x] = ' '; 15: buffer [x] = ' '; 16: buffer [x] = ' '; 20: buffer [x] = ' '; 21: buffer [x] = ' '; 22: buffer [x] = ' '; 25: buffer [x] = ' '; 27: buffer [x] = ' '; 28: buffer [x] = ' '; 29: buffer [x] = ' '; 30: buffer [x] = ' '; 31: buffer [x] = ' '; 96: buffer [x] = ' '; 123: buffer [x] = ' '; 124: buffer [x] = 124; 125: buffer [x] = ' '; 126: buffer [x] = ' '; 127: buffer [x] = ' '; 128: buffer [x] = ' '; 129: buffer [x] = 1; 130: buffer [x] = ' '; 131: buffer [x] = 3; 132: buffer [x] = 4; 133: buffer [x] = 5; 134: buffer [x] = ' '; 135: buffer [x] = ' '; 136: buffer [x] = ' '; 137: buffer [x] = ' '; 138: buffer [x] = ' '; 139: buffer [x] = ' '; 140: buffer [x] = ' '; 141: buffer [x] = ' '; 142: buffer [x] = ' '; 143: buffer [x] = ' '; 144: buffer [x] = ' '; 145: buffer [x] = 17; 146: buffer [x] = 18; 147: buffer [x] = 19; 148: buffer [x] = ' '; 149: buffer [x] = ' '; 150: buffer [x] = ' '; 151: buffer [x] = 23; 152: buffer [x] = 24; 153: buffer [x] = ' '; 154: buffer [x] = 26; 156: buffer [x] = ' '; 157: buffer [x] = ' '; 158: buffer [x] = ' '; 159: buffer [x] = ' '; 160: buffer [x] = ' '; 161: buffer [x] = '!'; 162: buffer [x] = '"'; 163: buffer [x] = '#'; 164: buffer [x] = '$'; 165: buffer [x] = '%'; 166: buffer [x] = '&'; 167: buffer [x] = 39; 168: buffer [x] = '('; 169: buffer [x] = ')'; 170: buffer [x] = '*'; 171: buffer [x] = '+'; 172: buffer [x] = ','; 173: buffer [x] = '-'; 174: buffer [x] = '.'; 175: buffer [x] = '/'; 176: buffer [x] = '0'; 177: buffer [x] = '1'; 178: buffer [x] = '2'; 179: buffer [x] = '3'; 180: buffer [x] = '4'; 181: buffer [x] = '5'; 182: buffer [x] = '6'; 183: buffer [x] = '7'; 184: buffer [x] = '8'; 185: buffer [x] = '9'; 186: buffer [x] = ':'; 187: buffer [x] = ';'; 188: buffer [x] = '<'; 189: buffer [x] = '='; 190: buffer [x] = '>'; 191: buffer [x] = '?'; 192: buffer [x] = '@'; 193: buffer [x] = 'A'; 194: buffer [x] = 'B'; 195: buffer [x] = 'C'; 196: buffer [x] = 'D'; 197: buffer [x] = 'E'; 198: buffer [x] = 'F'; 199: buffer [x] = 'G'; 200: buffer [x] = 'H'; 201: buffer [x] = 'I'; 202: buffer [x] = 'J'; 203: buffer [x] = 'K'; 204: buffer [x] = 'L'; 205: buffer [x] = 'M'; 206: buffer [x] = 'N'; 207: buffer [x] = 'O'; 208: buffer [x] = 'P'; 209: buffer [x] = 'Q'; 210: buffer [x] = 'R'; 211: buffer [x] = 'S'; 212: buffer [x] = 'T'; 213: buffer [x] = 'U'; 214: buffer [x] = 'V'; 215: buffer [x] = 'W'; 216: buffer [x] = 'X'; 217: buffer [x] = 'Y'; 218: buffer [x] = 'Z'; 219: buffer [x] = '['; 220: buffer [x] = '\'; 221: buffer [x] = ']'; 222: buffer [x] = '^'; 223: buffer [x] = '_'; 224: buffer [x] = ' '; 225: buffer [x] = 'a'; 226: buffer [x] = 'b'; 227: buffer [x] = 'c'; 228: buffer [x] = 'd'; 229: buffer [x] = 'e'; 230: buffer [x] = 'f'; 231: buffer [x] = 'g'; 232: buffer [x] = 'h'; 233: buffer [x] = 'i'; 234: buffer [x] = 'j'; 235: buffer [x] = 'k'; 236: buffer [x] = 'l'; 237: buffer [x] = 'm'; 238: buffer [x] = 'n'; 239: buffer [x] = 'o'; 240: buffer [x] = 'p'; 241: buffer [x] = 'q'; 242: buffer [x] = 'r'; 243: buffer [x] = 's'; 244: buffer [x] = 't'; 245: buffer [x] = 'u'; 246: buffer [x] = 'v'; 247: buffer [x] = 'w'; 248: buffer [x] = 'x'; 249: buffer [x] = 'y'; 250: buffer [x] = 'z'; 251: buffer [x] = ' '; 252: buffer [x] = '|'; 253: buffer [x] = ' '; 254: buffer [x] = ' '; 255: buffer [x] = ' '; } blockwrite (DISK4, buffer, bytesin); } } while (IOresult (DISK2) == OK && IOresult (DISK4) == OK); rc1 = IOresult (DISK2); rc2 = IOresult (DISK4); close (DISK2); close (DISK4); MIOresume(); cr_lf(); cr_lf(); if (rc1 != 136) echose ("Error reading file!"); else if (rc2 != OK) echose ("Error writing file!"); else echose ("File converted!"); }