10 REM BINHEX - HEX TO BINARY/BINARY TO HEX FILE CONVERTER 20 REM Orignially by Tim Mann 30 CLS:PRINT:PRINT"Binhex - HEX to binary/Binary to HEX File converter":PRINT 40 GOSUB 1000 50 PRINT"Type 1 to convert a binary file to hex" 60 PRINT" 2 to convert a hex file to binary" 70 PRINT:INPUT D 80 PRINT 90 IF D<>1 AND D<>2 THEN GOTO 50 100 ON D GOTO 400,200 110 GOTO 50 200 LINE INPUT "Hex file name: ";HF$ 210 LINE INPUT "Binary file name: ";BF$ 220 OPEN"I",1,HF$ 230 OPEN"O",2,BF$ 240 IF EOF(1) THEN 310 250 LINE INPUT#1,D$ 260 IF D$="" OR D$="OK" THEN GOTO 240 270 FOR I=1 TO LEN(D$) STEP 2 280 DN=FND2(MID$(D$,I,2)):SU=SU+DN 290 PRINT#2,CHR$(DN); 300 NEXT I:GOTO 240 310 IF SU>255 THEN CS=SU-INT(SU/256)*256 ELSE CS=SU 320 CS$=FNH2$(CS) 330 CLOSE:PRINT:PRINT"Done - Checksum = *";CS$:SU=0 340 GOTO 50 400 LINE INPUT "Binary file name: ";BF$ 410 LINE INPUT "Hex file name: ";HF$ 420 OPEN"RO",1,BF$,1 430 OPEN"O",2,HF$ 440 FIELD 1,1 AS F$ 450 FOR I=1 TO 30 460 IF EOF(1) THEN GOTO 530 470 GET 1 480 DN=ASC(F$):SU=SU+DN 490 PRINT#2,FNH2$(DN); 500 NEXT I 510 PRINT#2,"" 520 GOTO 450 530 PRINT#2,"" 540 CLOSE 550 IF SU>255 THEN CS=SU-INT(SU/256)*256 ELSE CS=SU 560 CS$=FNH2$(CS) 570 PRINT:PRINT"Done - Checksum = *";CS$:SU=0 580 GOTO 50 1000 DEF FNH1$(X)=MID$("0123456789ABCDEF",(X AND 15)+1,1) 1010 DEF FNH2$(X)=FNH1$(FIX(X/16))+FNH1$(X) 1020 DEF FND1(X$)=INSTR("123456789ABCDEF",LEFT$(X$,1)) 1030 DEF FND2(X$)=FND1(RIGHT$(X$,1))+16*FND1(RIGHT$(X$,2)) 1040 RETURN