Two commands provide this feature:
Install application <>INS
It will ask user to enter an .app filename. It contains all the data required to install in RAM the binary files of the application. Those files have to be in the same directory. Binary files have the extension .ap0 to .ap7. Each binary file is up to 16K. Maximum size of an installation is 128K at once, this large size is helpful for an application suite with several applications sharing same code. An easy way to perform installation is just to mark the .app file from the Filer and enter Index (using the inter-application Mailbox feature).
The binary files are the same as a ROM slot card application. It can be a full bank or not. Each file hold up to 16K (a 32K application requires 2 binary files, etc...). Bank 63 ($3F) is held in the file with extension .ap0, bank 62 in .ap1 etc, up to file .ap7 which contains bank 56 ($38). It is recommended to specify the pointer to the first application DOR, however, leaving the pointer to zero requires a valid ROM Front DOR at the end of .ap0 file. The patch option has not been implemented. Creating .app files can be easily performed with 'appmaker.bas' tool provided by Garry, refer to 'toolkit.txt' for help.
Remove Application <>RMV
This protected command shortcut removes the selected application. Before removal, the user has to kill all running processes of the application in 'Suspended Activities'. When a suite of applications have been installed, they are uninstalled at once by selecting the first application. This command free memory and handles allocated.
The previous Installer application has been a major step for Z88 users. It was designed for OZ 3.0 and 4.0. Unfortunately, it is not compatible with latest OZ system variables reorganization. This re-implementation has been done for a deeper integration with OZ in respect of memory allocation tables. The previous implementation was limited to external RAM slot. Now, the :APP.- device uses all available memory including internal memory. All informations for uninstallation are stored in handles, .apu files are not needed anymore. Remove command respects running processes of remaining installed applications and can refresh their static handle, feature that was not possible in previous implementation.
It is based on explicit memory allocation. When the .app file has been parsed, OS_Fma finds memory area according desired length and offset. Those areas are allocated by OS_Axm and binaries are copied to them with OS_Mv (file to memory). Memory handle, number of installed applications, first application DOR are stored in an installation handle (OZ 4.6 and newer). Each installation leaves two handles open: the memory handle (type 3) and the installation handle (type 7). It ends by chaining the application DORs to the previous installed or to the application front device :APP.-.
It is performed by getting DOR from selected application, finding its corresponding installation handle with OS_Fn. Commands FN_GH (find handle), FN_NH (find next handle) parse the handle list to find it (OZ 4.6 and newer). Then DORs are unchained from the current linked list of installed applications, memory freed by OS_MCl. Installation handle is freed by OS_Fn with FN_FH (free handle). Before removal, existing processes are checked by DC_Pol with A7 bit set option (OZ 4.6 and newer). The following processes are updated with the new application static handles because the static handle of the removed application will be used by another one if other application are installed. This update is performed by OS_Uash (OZ 4.6 and newer).
Application Static Handles
It is the number given by OS_Poll specific to an application. Index refers to an application by this number generally specified in IX. For information, the first 128 are referring to the card slot application (slot 0: 0-31, slot 1: 32-63, slot 2: 64-95, slot 3:96-127), the last 128 are devoted to installed applications (128-255). Thus a maximum of 128 applications can be installed on the system.