.LM 8;RM 72;CE 3 FUNNELWEB Vn 4.40 LOADERS ------------------------- .FI The FUNNELWEB system includes special auxiliary loader files LL, SL, and User List files UL and ML, which greatly enhance the normal E/A module functions. LOW MEMORY LOADER LL ~~~~~~~~~~~~~~~~~ ~~ Some well known utilities for the TI-99/4a, such as the Editor and Assembler occupy low memory and use high memory for extra code, but mostly as a single large data storage area. The only way that TI provided for users to load such files in object format was the Minimem module, and now Low-loader provides this function for general use, with automatic recognition by the FSAVE program (see FWDOC/UTIL). When LOW-LOADER is selected from the Load Environment screen, the LL file is loaded from the boot disk/directory. This provides an alternate set of E/A utilities just below the FUNNELWEB program in high memory. Low memory is now used as the first block for loading relocatable object files (only 8K is available in this block and 17K in the high block). All E/A REFs are recognized, but E/A program utilities REFed this way will not be available to program file loads of FSAVEd versions. The predefined REF/DEF table starts at >E200 and ends at >E138, and new entries build down from there. If low memory is used from >2000 up then the normal E/A (>2002) or XB XML (>2000) target locations are no longer available, so LL sets PAD (>8300) as the XML address for GPL returns by selecting a >F0 XML in console GROM. SCRIPT FILE MAKE/LOADER SL ~~~~~~~~~~~~~~~~~~~~~~~ ~~ In Vn 4.40 of FUNNELWEB the functions of Script-Load have been extended to include a full Assembler MAKE facility as well as multi-file object loader scripting. SL recognizes a list of up to 15 object files specified in a DV/80 script file. Just how it handles this list depends on how the auxiliary loader file SL is invoked. If Script-Load is called as an loader option as configured in the Central Menus or in User Lists, or else manually from the DiskReview file loader, it will fetch the nominated Script file, read the object files to be loaded, and proceed to load them. Any set of relocatable object files loadable by E/A will load without restriction. The normal caveats on absolute files still apply, but with an additional restriction that AORGed code may not be loaded into PAD or above >FFD7 (only silly protection schemes ever did this anyway). The virtue of the Scripted load approach is that it removes the tedium of entering a whole set of object file names, and also allows the RUN link-name to be activated automatically. When SL is loaded as Option 5 SCRIPTLOADER it will prompt for entry of a Script file name, but after this has been entered some further options are available. The first query is MAKE Assembly ? N with N as default for immediate . If the default is chosen the object load function proceeds as from external access. If however is pressed before the Assembly MAKE is invoked and a further query asks if the Loader should be automatically entered after successful assembly. The same Script file is used for both MAKE and LOAD functions. The MAKE function is especially intended to reduce the tedium in SAVEing program files in complex assembler or c99 projects. If an error occurs during assembly you are returned to the FUNNELWEB main menu. File SCRIPT included as an example in the FUNNELWEB Vn 4.40 package is the actual Script file used for complete re-assembly and program file preparation for the 80-col DiskReview. A full discussion of the details of Script construction follows. A Script file is prepared as a normal Dis/Var 80 text file with the Programmer's Editor, or any other way. The overall structure is reminiscent of an assembly source file, except that there are no labels. Your instructions are carried by directives, which may be followed on the same line by data such as file names where appropriate. Comment lines in a Script start with an asterisk in the first column and blank lines are ignored. Comments may also follow entries except as noted. This largely follows TI Assembler conventions. Details of the MAKE and/or LOAD process are controlled by these directives, which are all pre-defined words of 4 upper-case characters. These fall into several classes, some illustrated in SCRIPT. All files specified must be Dis/Fix 80 object files. At present no control is provided in MAKE for LIST device entry or for assembly options other than the FUNNELWEB default of RC. These can be added if demand is apparent. (a) File specification .LM +3;RM -3 FILE "DSKn.xx" .. Followed by a filename complete with pathname (up to the maximum length allowed for a floppy disk name), all in quotes, single or double, FILE specifies one of the files to be loaded. No spaces are allowed between the quotes. BOOT "filename" .. Followed by a file or child path name without any load pathname. This instructs the ScriptLoader to supply the FUNNELWEB boot pathname and to append this file/path name. If the Hard Disk path is OFF the drive number where SL was found is used as "x" in "DSKx.filename". UTIL "filename" .. As for BOOT except that the currently defined Utility pathname is used. .LM -3;RM +3 (b) Loader control .LM +3;RM -3 AUTO .. If AUTOmatic running is specified the link name specified after the LAST directive will be used to autostart the programs. The default, with no AUTO or ALLM directive, stops for editing of the link name. IAOF .. I(nternal) A(utostart) OFf cancels internal autostarting of object files (like Option 8). LWLD .. LoWLoaDer sets up the load conditions as for Low-Loader (Option 6 of the Loaders screen). File LL is loaded from the boot disk after the Script file has been read but before object file loading begins. It should be issued at the start of a Script and over-rides ALLM. LAST .. Indicates the end of the script to be parsed by SL. If it is followed on its line by text, the first 6 characters will be read as a link name for RUNning the programs. If the end of the script is reached before a LAST directive is found, an error is issued. This allows a single DV/80 file to do double duty as a full document file and a ScriptLoad file. .LM -3;RM +3 (c) Memory Control .LM +3;RM -3 ALLM .. ALL M(emory) sets the LFHM memory pointer to the standard E/A value >FFD7. Once set it cannot be revoked. It also sets AUTO and a link name must be specified on LAST or an error will be called. This is because the FUNNELWEB object loader code can no longer be assumed to be uncorrupted. Returns are adjusted to be to the title screen for this same reason. .LM -3;RM +3 (d) Assembler MAKE directives .LM +3;RM -3 ASSM .. Object file names following this directive are checked to see if they end with /O (or ;O for c99 users), in which case the last character is changed to S and the name displayed for passing to the Assembler in its source file version. The Assembler will produce an object file in the form specified, following the normal FUNNELWEB convention. If a object file name does not end this way, it will be displayed with a preceding asterisk but not re-assembled. ASSM is the default condition for the MAKE pass. STOP .. Object filenames following this directive are totally ignored by MAKE. ASSM after STOP gets attention by MAKE again, and these directives give complete control over the files to be assembled. Loader and Memory control directives are ignored by MAKE, and the LOAD pass ignores ASSM and STOP. .LM -3;RM +3 Error handling in the Load process is now as complete as for the other object loaders, with additional features. When an Undefined REFerence error occurs, up to 20 undefined REFs are displayed. Also from an error display will execute a cartridge ROM program if available - very convenient if you have DEBUG or SBUG II available there. USER LIST FILES UL ~~~~~~~~~~~~~~~ ~~ User List files are a package of loader interface and filename data in a fully position independent executable program file. User lists are configured as part of the system configuration CF/CG operation. Unlike the XB user list which is part of the LOAD file and stored along with other data in SYSCON files, as many user list files as desired may exist in the system under different names and each is configured separately. One user list may call others allowing a tree of choices as large as your disk system will permit. Any type of file may be specified in a User List, including Script-Load files which allow object files to be fully automatic in loading and running. The configuration process using CF/CG allows a filename only to be specified on the Boot or Utility paths, or else a a full filename in form "DSKn.filename" or general path/file name to that length. You may also call for a pause and reminder before loading. Normally entry #8 on the Word Processor side of the Central Menu is reserved for a User List file named UL. This will be a little "sticky" in that it will not always need to be reloaded from disk when reselected. User List files may be called from any Central Menu entry, and if so these should be configured as "Other" to avoid overwriting the main UL. User Lists should be loaded only from the boot disk path under a 2- character filename, and if a load from a UL fails, you should cancel immediate reload by from the central Menu Screen. MULTI LIST FILES ML ~~~~~~~~~~~~~~~~ ~~ FUNNELWEB Vn 4.40 takes advantage of the new FW program services to allow an expanded User List facility in the form of Multi-List files. A Multi-List program file treats a nominated set of User Lists as data objects. A ML file loads the nominated UL type files and presents their contents in vertical columns on the screen. The standard 40-column version allows 3 User Lists to be displayed at one time, and the 80-col version allows up to 6 User Lists to be displayed at once. The primary restriction is that the User Lists read in as data by any Multi-List must all be locatable on the FUNNELWEB boot disk/path. The programs called by these User Lists can be anywhere and can include new Multi-Lists, or User Lists. Choice of the program to be loaded is by cursor driven selection and or un, which then transfers control to the loader code in the particular User List to work on its own data. If hange is pressed then the 2 letter User List names may be edited and the new set will then be loaded. In the 40-col version only, pressing ext automatically swaps the current set of 3 User Lists for an alternative set of 3. If a name is blank, that column will be bypassed, and also if the nominated UL is not found. At present there is no provision for saving edited data, and this must be set up with DiskReview's sector editor. Call up the first sector of the Multi-List program for ASCII editing, and starting at byte >08 (after the 3 word header and the initial JMP instruction), there are six 2-character filenames to be entered. If you don't have six candidates, leave the remainder as spaces. Either of the 40- or 80-col Multi-Lists may be called UL and substituted for the User List of that name, and any call of a Multi-List will overwrite the current Central Menu User List. Remember then to rename the existing UL and to edit the load list in the Multi-List. Unlike the User Lists, Multi-List files are not position independent and always reside at the system's UL reserved position at >E9B0 in >218 bytes or less. The limited size also accounts for their fairly spartan appearance. Multi-Lists may also be loaded from any path under any name, and always cancel automatic reload on 8 USER LIST when a loader selection is made. Calling one Multi-List as a data object (as distinct from a program to be loaded from one of the ULs) from another will give an obvious nonsense display in that column. Հ