DECLARE FUNCTION GetBootDriveLetter! () DECLARE SUB SwapDisk () 'Main Program Code Start: CLS PRINT "This is a sample." DO: LOOP UNTIL INKEY$ <> "" 'Program Complete, Clear Then Run Program In A: Drive COLOR 7, 0 CLS SwapDisk 'Boot Drive Empty, Ask For A Disk PRINT "Please insert a System or Program Disk in the disk drive you booted from." PRINT "Press Enter to continue, or Esc to cancel." Exitloop: DO X$ = INKEY$ LOOP UNTIL X$ <> "" SELECT CASE X$ CASE CHR$(13) SwapDisk CASE CHR$(27) GOTO Start CASE ELSE END SELECT GOTO Exitloop FUNCTION GetBootDriveLetter DEF SEG = 0 IF PEEK(&H4F0) = 21 THEN GetBootDriveLetter = PEEK(&H4F1) END IF END FUNCTION SUB SwapDisk ON LOCAL ERROR GOTO NoSwapDisk D$ = CHR$(GetBootDriveLetter) IF D$ = CHR$(0) THEN D$ = "A" F = FREEFILE OPEN D$ + ":\config.sys" FOR INPUT AS #F DO LINE INPUT #F, CMD$ IF UCASE$(LEFT$(CMD$, 6)) = "SHELL=" THEN CMD$ = RIGHT$(CMD$, LEN(CMD$) - 6) IF UCASE$(CMD$) <> "SAMPLE.EXE" THEN 'Use CHAIN if your version of BASIC does not support RUN 'DO NOT USE SHELL! RUN D$ + ":\" + CMD$ ELSE BEEP END IF END IF LOOP UNTIL EOF(F) CLOSE #F NoSwapDisk: RESUME ExitSwapDisk ExitSwapDisk: END SUB