Here is the current standard for what getSystemAttribute returns with different arguments:
[-1000 ... -1] - command line args meaning full to the VM only (e.g., "-memory" on Unix systems) see VM Command Line Options
0 - full path and name of the VM
1 - full path and name of the image
[2 ... 1000] - command line args meaningful to the image (e.g., the name of a script file or an *.sqo file plus optional args)
Also, the following special getSystemAttribute indices have been proposed:
1001 - basic OS type: "unix", "Win32", "Mac OS",...
1002 - specific OS type: "linux-gnu" or whatever 'configure' provides as host_os on unix, "95" or "NT" on win32, "860" or whatever Mac OS version number the Gestalt provides, "4.02" or whatever value Wimp_Initialise provides on RiscOS.
1004 - interpreter version string as provided by the generated 'interp.c' file used to compile the VM.
1005 - window system name: "X11", "Quartz", "fbdev"
1006 - vm build identifier: any string which can be used to uniquely identify a particular VM build. For example, the Win32 VM currently generates a string of the form "Win32 built on Mar 26 2006 21:04:47 Compiler: 2.95.2 19991024 (release)"
Any attributes not set are to be returned as nil, so the primitive helper function in the platform code should fail the prim with primitiveFail();