The PROGRAM$ should be added to the "PRG1:" with a +.
IF CHKFILE(PROGRAM$)==TRUE THEN EXEC "PRG1:"+PROGRAM$ ELSE PRINT "File not found... Please check if specified file exists or check if it isnt corrupted.":GOTO @MAINYou should also do other checks, such as PROGRAM$'s length being between 1 and 14 (or 32 if used in SB4) and that it contains valid chars to prevent further crashes:
IF LEN(PROGRAM$)<1 || LEN(PROGRAM$)>14 THEN ?"Invalid program name length." ENDIF FLAG=0 FOR I=0 TO LEN(PROGRAM$)-1 IF INSTR("0123456789@_-.ABCDEFGHIJKLMNOPQRSTUVWXYZ",PROGRAM$[I])==-1 THEN FLAG=1BREAK NEXT I IF FLAG THEN ?"Did you mistype the name or did you type in lowercase?":GOTO @MAINEDIT: Made a bit clearer...