4 ' Use this BASIC program on the PC to convert the printable file 5 ' KERMIT.FIX to the executable file KERMIT.EXE. Before running this 6 ' program, if the file KERMIT.EXE already exists, rename it just in case. 7 ' Daphne Tzoar , December 1983 8 ' Columbia University Center for Computing Activities 9 ' 10 ON ERROR GOTO 430 30 OPEN "KERMIT.FIX" FOR INPUT AS #1 40 OPEN "KERMIT.EXE" FOR OUTPUT AS #2 50 OK$ = "ok" 70 X$=INPUT$(62,#1) 80 VALUE$ = LEFT$(X$,1) 'First char of input 90 VALUE = ASC(VALUE$) 100 IF VALUE = 64 OR VALUE = 192 GOTO 430 ' @ means we're done 110 IF VALUE >= 176 AND VALUE <= 191 THEN GOTO 140 ' Kill all illegal chars 120 IF VALUE >= 48 AND VALUE <= 63 THEN GOTO 140 130 X$ = MID$(X$,2) : GOTO 80 140 IF VALUE <> 174 GOTO 210 ' Not a dot (for read) - don't worry 150 TWO$ = MID$(X$,2,1) ' Look at char after the dot. 160 TWO = ASC(TWO$) 170 IF TWO >= 176 AND TWO <= 191 THEN GOTO 210 ' It's ok. 180 IF TWO >= 48 AND TWO <= 63 THEN GOTO 210 190 X$ = MID$(X$,3) ' Kill the char 200 GOTO 80 210 SIZ = LEN(X$) ' How much input was actual data 220 READIN = 64- SIZ 225 IF READIN = 0 GOTO 260 230 XTWO$=INPUT$(READIN,#1) ' Get rest of data 240 X$ = X$ + XTWO$ : X$ = LEFT$(X$,62) 260 GOSUB 290 270 PRINT#2,X$; ' Put data to the file. 280 GOTO 70 290 ' GET TWO CHARS, SUBTRACT SPACE (20 HEX) FROM EACH, AND COMBINE 300 ' TO ONE DIGIT. 310 FOR A = 1 TO 31 320 Y$ = MID$(X$,A,1) 330 Z$ = MID$(X$,A+1,1) 340 YNUM = ASC(Y$) : ZNUM = ASC(Z$) 350 IF YNUM > 127 THEN YNUM = YNUM - 128 ' Turn off hi bit if on 360 IF ZNUM > 127 THEN ZNUM = ZNUM - 128 370 YNUM = YNUM -48 : ZNUM = ZNUM -48 ' Subtract the space 380 XNUM = (16 * YNUM) +ZNUM 390 NEWCHR$ = CHR$(XNUM) 400 X$ = MID$(X$,1,A-1) + NEWCHR$ + MID$(X$,A+2) 410 NEXT A 420 RETURN 430 PRINT " [All done.]" 440 CLOSE #1,#2 ' Clean up. 450 END