Contributor: JOHN HOWARD { Sadly, the 3d.zip file was corrupt again. Please use my programs here and generate a DATA.HEX include file. Your post had lines that were uneven and obviously missing data. An include file made by ZIP2HEX will be even and verifiable. HEX2ZIP will create the original binary file renamed BINARY.ZIP. I noticed your zip file was less than 20k and its source code contents were over 100k. The include file will always be four times the size of the zip due to formatting with commas and dollar symbols. A smarter version should use LONGINTS instead of BYTES to gain a 60% savings. { These programs can be added to SWAG } PROGRAM Hex2Zip; { Converts hex data file less than 64k in size into binary equivalent } { 1994 Freeware v1.2 Hex-to-Binary file convertor by John Howard } {$i DATA.HEX} (* layout of DATA.HEX include file is CONST { Size is equal to FILESIZE(BINARY) } HEX_DATA : ARRAY[1..Size] OF BYTE = ( { i.e. hex data such as $00,$A2,$FF,.. } ); *) VAR BINARY : FILE; BEGIN ASSIGN(BINARY,'BINARY.ZIP'); REWRITE(BINARY,1); BLOCKWRITE(BINARY,HEX_DATA,SIZEOF(HEX_DATA)); CLOSE(BINARY); WRITELN('Data was converted to your file called BINARY.ZIP'); END. PROGRAM Zip2Hex; { Converts binary file less than 64k in size into hex data file equivalent } { 1994 Freeware v1.2 Binary-to-Hex data convertor by John Howard } FUNCTION HexByte(B : Byte) : String; CONST HexDigits : ARRAY[0..15] OF Char = '0123456789ABCDEF'; VAR Temp : String; BEGIN Temp[0] := #2; Temp[1] := HexDigits[B SHR 4]; Temp[2] := HexDigits[B AND $F]; HexByte := Temp; END; VAR BINARY : FILE; HEXFILE : TEXT; Hex_Byte : BYTE; Size : LONGINT; i : WORD; BEGIN IF ParamStr(1) = '?' THEN BEGIN WRITELN('Howard International, P.O. Box 34633, NKC, MO 64116 USA'); WRITELN('1994 Freeware v1.2 Binary-to-Hex data convertor'); WRITELN('Syntax: zip2hex.exe [filename]'); WRITELN('Filename is optional, the default is BINARY.ZIP'); Halt; END; IF ParamCount = 0 THEN ASSIGN(BINARY,'BINARY.ZIP') ELSE ASSIGN(BINARY,ParamStr(1)); RESET(BINARY,1); ASSIGN(HEXFILE,'DATA.HEX'); REWRITE(HEXFILE); Size := FILESIZE(BINARY); WRITELN(HEXFILE, 'CONST HEX_DATA : ARRAY[1..', Size,'] OF BYTE = ('); BLOCKREAD(BINARY,Hex_Byte,SIZEOF(Hex_Byte)); WRITE(HEXFILE, ' $'); WRITE(HEXFILE,HEXBYTE(Hex_Byte)); FOR i := 2 TO Size DO BEGIN BLOCKREAD(BINARY,Hex_Byte,SIZEOF(Hex_Byte)); WRITE(HEXFILE, ',$'); WRITE(HEXFILE,HEXBYTE(Hex_Byte)); IF (i MOD 16 = 0) THEN WRITELN(HEXFILE); END; WRITELN(HEXFILE, ');'); CLOSE(HEXFILE); CLOSE(BINARY); WRITELN('Your BINARY ZIP was converted to DATA.HEX include file.'); END.