User Tools

Site Tools


discovering_20how_20a_20program_20was_20run

Discovering how a program was run

by Jon Ripley, May 2006

In some cases it is important to know what environment your program is running in so you can make different choices to suit the environment.

There are three methods to run a BBC BASIC program:

  • From the BBC BASIC Editor (IDE)
  • An uncompiled program run using the interpreter
  • Running a compiled program


To determine the environment a program is running in use code similar to the following:

        SYS "GetCommandLine" TO cmd%
        CASE TRUE OF
          WHEN INSTR($$cmd%, "bbcwin.exe") > 0:PRINT "Run from editor"
          WHEN INSTR($$cmd%, "bbcwrun.exe") > 0:PRINT "Run by interpreter"
          OTHERWISE:PRINT "Program is compiled"
        ENDCASE

Here we read a pointer to the command line arguments used to start the program and PRINT a different response for each possible case. It is not possible to use the special variable @cmd$ as this contains insufficient information.

Refactoring this code into a function is simple:

        DEF FN_GetRunEnvironment
        LOCAL cmd%, ret%
        SYS "GetCommandLine" TO cmd%
        CASE TRUE OF
          WHEN INSTR($$cmd%, "bbcwin.exe") > 0:ret%=1
          WHEN INSTR($$cmd%, "bbcwrun.exe") > 0:ret%=2
          OTHERWISE:ret%=3
        ENDCASE
        =ret%

Here we create a function named FN_GetRunEnvironment which returns one of three possible values:

  • 1 - Program was run from the editor
  • 2 - Program was run using the interpreter
  • 3 - Program is compiled




by Richard Russell, November 2010

If you want to know whether a program is compiled or not, you can use this simple test:

        IF INSTR(@lib$,@tmp$) THEN PRINT "Program is compiled"
This website uses cookies. By using the website, you agree with storing cookies on your computer. Also you acknowledge that you have read and understand our Privacy Policy. If you do not agree leave the website.More information about cookies
discovering_20how_20a_20program_20was_20run.txt · Last modified: 2024/01/05 00:22 by 127.0.0.1