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 @MAIN
EDIT: Made a bit clearer...