To: Michael J. Mahon Michael J. Mahon wrote:
BluPhoenyx wrote:To: Michael J. Mahon Michael J. Mahon wrote:aiiadict@gmail.com wrote:On Apr 23, 8:52 pm, "Michael J. Mahon" <mjma...@aol.com> wrote:Yes, but I'd like it as an extension of BASIC.SYSTEM, since my fingers have already memorized its commands, and my Applesoft programs depend on it. ;-) I'm guessing that such an extension could fit in just one page of high memory...So catch command line input with your command processor, if it doesn't match any of YOUR available commands, run it through the basic.system processor (basic.system will RTS back to your pre-processor, which then RTS back to prodos command line blinker... if it is a match to one of YOUR commands: 1)check if it is already resident in RAM. If it is, execute it 2)if not in RAM, load from disk, keep a flag that says YOURcommand#x is loaded, and execute... that would be nice... if you weren't using 5.25 disks, you could put the command processor + loaded commands into the disk II driver space at $d000It would also be good to automatically *unload* a command if there is a demand for RAM. Since there's no good hook for determining when, say, an Applesoft program wants to use high memory, it's probably best to write the handler to deal with all commands as "overlays" with no continuing claim on RAM.Or, a small kernel which can adjust himem: and load the utility, which must be relocatable, wherever. This could actually work fairly quickly if the 'modules' were in /ram or a very fast disk.There are already such commands, such as those in ProCMD, that allocate space and relocate themselves, then install themselves into the BASIC.SYSTEM command chain. (The only downside is that they load at a predetermined spot, usually right in the middle of any program you have in memory, so they generally have to be installed at the beginning of a session.)
That's not what I said. Only a kernel is loaded. The kernel then loads the actual modules when one invokes the command. When the command were finished it would unload and release the ram used. Adjusting himem allows for variable sized modules. Modules would be loaded on demand but this would require the kernel to have some info about the modules. There may be a speed hit in programs with a lot of variables though.
Still, just one method of doing such a thing. Cheers, Mike T. --- Synchronet 3.14a-Win32 NewsLink 1.85 A2Central.com - Your total source for Apple II computing.