Node:Modifying the Startup Sequence, Previous:Running Image Files, Up:Image Files



Modifying the Startup Sequence

You can add your own initialization to the startup sequence through the deferred word 'cold. 'cold is invoked just before the image-specific command line processing (i.e., loading files and evaluating (-e) strings) starts.

A sequence for adding your initialization usually looks like this:

:noname
    Defers 'cold \ do other initialization stuff (e.g., rehashing wordlists)
    ... \ your stuff
; IS 'cold

You can make a turnkey image by letting 'cold execute a word (your turnkey application) that never returns; instead, it exits Gforth via bye or throw.

You can access the (image-specific) command-line arguments through the variables argc and argv. arg provides convenient access to argv.

If 'cold exits normally, Gforth processes the command-line arguments as files to be loaded and strings to be evaluated. Therefore, 'cold should remove the arguments it has used in this case.

'cold       --         gforth       ``tick-cold''

argc       -- addr         gforth       ``argc''
Variable - the number of command-line arguments (including the command name).
argv       -- addr         gforth       ``argv''
Variable - a pointer to a vector of pointers to the command-line arguments (including the command-name). Each argument is represented as a C-style string.
arg       n -- addr count         gforth       ``arg''
Return the string for the nth command-line argument.