Topic: Application Package Format
I've created an application package format for SE Basic IV 4.2. I'm considering creating a dot command version that would enable programs that don't depend on the ROM to run on esxDOS as well. Applications are stored as a collection of files and folders within a folder in a top-level folder called PROGRAMS. Application names can be any length and contain any valid FAT32 filename character (including space). In SE Basic, applications are launched with RUN "appname". The dot command equivalent would be .run appname. The application name is truncated to derive the folder and binary filenames and spaces are converted to underscores. The package format is as follows:
PROGRAMS
|----------- MY_APP_N.AME
|----------- PRG
|----------- MY_APP_N.PRG
RSC
|----------- RESOURCE.BIN
The RUN command sets the SP to $6000, loads the binary (PRG file) at $6000, changes the path to the resource (RSC) folder and calls $6000. If the binary fails to load it restores the stack and falls back to BASIC. This means the binary can be up to 40K in length. The binary is then responsible for loading its own resources. The method for passing parameters to the app is to define a variable in BASIC.
This approach has a number of advantages over the single executable file method. For example, with multi-lingual software, only the selected language resources need to be loaded. It is also easy to customize the app without the need to recompile it.