gregg@mrevox.UUCP (Victor Gregg) (11/02/87)
OK campers, here it is, the tedious programming project of the month #173..... assume that a IBM-MVS user transfers an EBCDIC file to a PC, and gives the floppy to YOU. you know that the floppy contains a valuable piece of source code (a real gem, i hope) but your PC is brain-damaged (it can only read ASCII). Your mission, should you decide to accept it, is to write a 'filter' program to convert E-to-A. Submissions will be judged on style, portability, and efficiency (in that order), but we will really only use the first one that works. All prizes will be awarded, and the decision of the judges will be final, deadline is as soon as we get a working version. Please don't send mail, I only read netnews :) Good luck, and congradulations on having the patience to read this drivel. -- __________________________________________________________________________ Victor S. Gregg _ _ _ _ _ _ Bell Communication Research, Inc. | | | | | | / \ | \ | 444 Hoes Lane (1C-206) |_/ |_ | | | | | |_/ |_ Piscataway, NJ 08854 | \ | | | | | | |\ | (201) 699-4596 |_| |_ |_ |_ |_ \_/ | \ |_ -------------------------------------------------------------------------- Standard Disclaimer: My opinion, N O T my employers!! --------------------------------------------------------------------------
stephen@obed.UUCP (11/10/87)
In article <293@mrevox.UUCP>, gregg@mrevox.UUCP (Victor Gregg) writes: > assume that a IBM-MVS user transfers an EBCDIC file > to a PC, and gives the floppy to YOU. > Your mission, should you decide to accept it, is > ----- > Victor S. Gregg _ _ _ _ _ _ > Bell Communication Research, Inc. | | | | | | / \ | \ | under unix: dd conv=ascii < thatfile >output Under MESS-DOS: # move to a unix system, cut at the dotted line and stuff thru /bin/sh # then compile and run under IT. # ----------------- CUT HERE ----------------- # # file ab.c sed -e 's/^\<//' -e '/<$/s/\<$//' << "++ENDFILE++" > ab.c <static char ebcasc[256]={ <0x00, 0x01, 0x02, 0x03, 0x00, 0x09, 0x00, 0x7f, <0x00, 0x00, 0x00, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, <0x10, 0x11, 0x12, 0x13, 0x00, 0x0a, 0x08, 0x00, <0x18, 0x19, 0x00, 0x00, 0x1c, 0x1d, 0x1e, 0x1f, <0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x17, 0x1b, <0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x06, 0x07, <0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x00, 0x04, <0x00, 0x00, 0x00, 0x00, 0x14, 0x15, 0x00, 0x1a, <0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, <0x00, 0x00, 0x00, 0x2e, 0x3c, 0x28, 0x2b, 0x7c, <0x26, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, <0x00, 0x00, 0x21, 0x24, 0x2a, 0x29, 0x3b, 0x7e, <0x2d, 0x2f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, <0x00, 0x00, 0x7c, 0x2c, 0x25, 0x5f, 0x3e, 0x3f, <0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, <0x00, 0x60, 0x3a, 0x23, 0x40, 0x27, 0x3d, 0x22, <0x00, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, <0x68, 0x69, 0x00, 0x7b, 0x00, 0x00, 0x00, 0x00, <0x00, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, <0x71, 0x72, 0x60, 0x7d, 0x00, 0x00, 0x00, 0x00, <0x00, 0x7e, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, <0x79, 0x7a, 0x5e, 0x00, 0x00, 0x5b, 0x00, 0x00, <0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, <0x00, 0x00, 0x5c, 0x00, 0x00, 0x5d, 0x00, 0x00, <0x7b, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, <0x48, 0x49, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, <0x7d, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, <0x51, 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, <0x5c, 0x00, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, <0x59, 0x5a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, <0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, <0x38, 0x39, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; <main(){ <unsigned char line[1024]; <char oline[1024]; <int got,i,j,sent; < while( (got=read(0,line,1024)) >0){ < for(i=0; i<got ; i++) oline[i]=ebcasc[(unsigned)line[i]]; < for(i=0; i<got && (sent=write(1,oline+i,got-i)) >0; i+=sent); < }; <}; ++ENDFILE++