PART 2: Secrets of NeoDesk 4 - by Al Fasoldt
Getting Started
16 July, 2019 by
PART 2: Secrets of NeoDesk 4 - by Al Fasoldt
| No comments yet


Get a load of this 

NeoDesk's main software module is a file named NEODESK.EXE. Ordinarily, the ST, TT and Falcon cannot run executable files ending in "EXE," but Gribnif apparently chose this non-standard filename extension (in the Atari world, at least) to make sure that another, much smaller, module named NEOLOAD.PRG would have to be run first. When NEOLOAD.PRG is run, it launches NEODESK.EXE.

Why did Gribnif adopt this unusual way of launching NeoDesk 4? The answer lies in two other functions of Neoload. In addition to serving as the launcher for the main NeoDesk software, Neoload monitors the status of the Atari's operating system in order to report on system memory registers whenever the OS crashes, and it holds off running NEODESK.EXE until all desk accessories have finished loading.

The system-monitor function of Neoload is not, by itself, unusual. Other system monitors are available, including one that is very similar to the monitoring function of Neoload. The information that it lists on the screen after a crash is primarily useful to a software developer, although Neoload has a secondary function of providing a graceful recovery from minor system crashes. (However, you should always save your work and reboot after any system crash, even one that has been intercepted by NeoDesk 4's system monitor, because memory locations may have been corrupted, and there is no way to restore them otherwise.)

It is the third function that matters most. This function operates only when NEOLOAD.PRG is run from the AUTO folder when the computer boots up, and can be the source of confusion over how NeoDesk 4 works. If you are auto-running NeoDesk 4 without placing a copy of Neoload in the AUTO folder -- in other words, if you merely install NEOLOAD.PRG file in the NEODESK4 folder as the GEM auto-boot application in TOS 1.04 or above -- Neoload may launch NEODESK.EXE too soon, before the computer's desk accessories finish loading. If this happens, NeoDesk 4 or some of the desk accessories can lock up or behave erratically.

To prevent this, you must place a separate copy of NEOLOAD.PRG in the AUTO folder of your boot disk. (It can be placed last or near the end of the list of files in the AUTO folder; the placement doesn't matter much. Just keep in mind that the computer's operating system runs programs in the AUTO folder not in the order they are normally listed in a file-list display, but in the physical order they are listed on the disk. NeoDesk can show you the actual order of files and folders if you choose the "No Sort" option in its file-display menu, and it will let your change the order in that same menu.) Special code in Neoload delays the running of NEODESK.EXE until after all desk accessories have been initialized. The process goes like this: First, the copy of NEOLOAD.PRG in the AUTO folder installs itself in memory; then when the operating system tries to auto-run the other copy of NEOLOAD.PRG (the one in the NEODESK folder), the Neoload that is in memory intercepts the second running of Neoload, and instead runs NEODESK.EXE itself after the accessories have been installed

NEOLOAD.PRG is actually run only once in each session (the time between boot-up and shutdown), no matter how many times you may quit NeoDesk and load it again. You can easily see this for yourself. Try running NeoDesk the regular way (from the AUTO folder using Neoload as described above, or by running NEOLOAD.PRG from the Atari desktop) and then copy the NEODESK.EXE file to a second file named NEODESK.PRG. If you quit NeoDesk, you can double-click on NEODESK.PRG from the GEM desktop and re-run NeoDesk. The copy of NEOLOAD that is still in memory provides a hidden launcher for the program, even when the name has been changed. 

Memory is made of this

NeoDesk 4 can run on small-memory STs if its memory use is constrained through a dialog that allows the user to specify how much RAM NeoDesk should take up. On systems that do not employ a multitasking environment, even more memory can be retained for running programs if NeoDesk is configured to unload its own desktop code each time a program is executed. (This is done from the "File preferences" menu.) On such a system with a fast hard drive, NeoDesk 4 will reload fairly quickly after each program ends, but users with older, slower hard drives and those who have only one or two floppy drives are likely to find this process distressingly slow. In such situations it may be better to leave NeoDesk set to remain in memory except when running large programs. NeoDesk 4's "Install Application" dialog and its NeoDesk Program Information (NPI) files both provide a way of specifying how NeoDesk 4 should behave for each application, and they should be suitably adjusted for programs that need all available memory.

However, configuring NeoDesk 4 to unload its code when executing programs is pointless in a multitasking environment. NeoDesk would unload its code and run the program and then immediately load its code again. (After all, "multitasking" means NeoDesk itself and other applications are running at the same time.) Users of Geneva can maximize available memory by cutting down on the number of desk accessories that are loaded on bootup. Accessories run in this normal fashion always take up memory, whether they are being accessed or not. Because Geneva (and NeoDesk, when running under Geneva) are able to treat desk accessories as freely loadable programs, you can free up considerable RAM by placing the icons for your desk accessories on the desktop or in a group window and running them only when they are needed. 

Sign in to leave a comment