RMS Boot v1.2 Docs RMS_BOOT.ACC is a read-only control panel (ROCP), plus an auto-prompting time-date entry facility. Its origin dates back to my TD2X.ACC, and the current version is the result of feedback from users who wanted additional features. It is shareware; please see the notice at the end of these docs. The rationale behind an ROCP TOS does not automatically set various parameters when you power-up or reset your ST. In addition, the 520ST and the 1040ST do not include a battery-powered clock. The solution which Atari provides is CONTROL.ACC, working in conjunction with a DESKTOP.INF file. It initializes parameters at power-up and reset, and when selected from the Desk menu, it allows you to view/set the system clock. You can also change parameters loaded in from DESKTOP.INF. CONTROL.ACC has several shortcomings. It uses over 20K of RAM, and it does not automatically prompt you to enter the time and the date. Moreover, most of the time you only use it as an ROCP; you seldom change the parameters. Why set the system clock? When a file is saved to disk by the ST, it has a time-date stamp attached to it. At power-up, the default is 12:00 AM on the date of creation of the TOS version in your ST. Having the actual time and date appear on a file can be a convenience. Furthermore, hard drive back-up programs may allow you the option to back up only from a certain date forward. If your files don't have the correct time-date stamp, they will not be backed up. Using RMS_BOOT.ACC When you power-up or reset your ST, you will be greeted with a dialog box. At the top is the title and the version number of the accessory, with a copyright notice below it. Immediately below that is a display of the free RAM available. If you are now using a special accessory just to display the free RAM, then you can discard it. This will free up an accessory slot; it will also save you several KB of RAM. Next is the time-date box. Entering the time and the date follows standard GEM procedures. The up-arrow and the down-arrow keys will toggle you between the time field and the date field. The left-arrow and the right-arrow keys will move you one character in the indicated direction. The [Delete] key will erase the character under the cursor, and move the characters to the right of the cursor one space to the left. The [Backspace] key will move the cursor one space to the left, delete the character under its new position, and move the characters to the right of the cursor one space to the left. The [Esc] key will erase all the characters in the field and place the cursor at the start of the field. Time entry is in AM-PM format. (The colon and the "M" are defaults; do not enter them.) Date entry is in USA-standard mm/dd/yy format. (The slash bars are defaults; you do not need to enter them.) Leading zeros are required. Due to a bug in TOS, I have limited the year entry to 85 through 99. "The Better MouseTrap" When mousing-around on the desktop or inside an application, we've all encountered the frustration of accidentally moving the mouse into the menu bar. An unwanted menu drops down, and we have to move the mouse outside the menu and click on the left button to get it to disappear. Back in the Fall 1986 issue of "START", Daniel L. Moore and David Small introduced a solution. "MouseTrap", a program which ran in the AUTO folder, made it necessary for the user to depress the right mouse button in order to enter the menu bar. The program had several shortcomings which I have corrected with "The Better MouseTrap". Below the time-date is a box which allows you to install or to remove the mousetrap at will. It does not use any absolute low-RAM addresses, so it is compatible with all versions of TOS. It also does not interfere with an application's setting of a new mouse interrupt routine. When the mousetrap is enabled, press and hold down the right mouse button when you enter the menu bar. Then release the right mouse button; otherwise, when you traverse the menu headings, the menus will not drop down. Marching bravely forward The button marked "ENTER" terminates the dialog box. Just click the left mouse button in it, or press the [Return] or the [Enter] key. RMS_BOOT.ACC now checks for an illegal entry in the time and the date fields. (Yes, it even checks for 02/29/XX in non leap- years.) An illegal entry will cause the dialog box to be displayed again so that you can correct your mistake. This is where things get interesting. An alert box asks if you want to change all the parameters, the color palette only, or none at all. The default is "Cancel"; just click in it, or press [Return] or [Enter]. If you choose "All", another alert box appears to warn you that you may lose your work session or crash your ST if you are using your printer or your modem. If you choose "Cancel", then you will return to the original alert box. If you choose "Continue", then you will see the familiar GEM file selector. The default path is the root directory of the drive from which RMS_BOOT.ACC was loaded. (This is just one of several reasons that RMS_BOOT.ACC should be in the root directory of your boot drive. See notes on MultiDesk, below.) The default filename is "DESKTOP.INF". Clicking on "Cancel" gives you one final chance to bail out; you will return to the original alert box. Using standard GEM procedures, select the file that you want. If you choose a file which is not in DESKTOP.INF format, then you will be notified by an alert box, and you will be returned to the file selector. Once you select a legitimate DESKTOP.INF-format file, RMS_BOOT will read it from disk and set all parameters according to the values in the file. An off-color story If you choose "Colors" from the original alert box, or if you have already set new parameters, then you will see another alert box. As before, "Cancel" is the default. "From disk" takes you to the file selector. As always, selecting "Cancel" gives you another chance to bail out; you will be returned to the original alert box. The same error-checking as above will be applied to the file that you selected. Once you select a legitimate file, RMS_BOOT will load it; however, only the color palette will be set. The "Default" selection will set the color palette to Atari's palette provided in the DESKTOP.INF file which came with my ST. It is not the same as that in the disassembly in ABACUS' "Internals". Any changes that you make to the parameters and/or to the color palette are automatically copied to the system desktop buffer. The next time that you save the desktop, they will be saved in the DESKTOP.INF file to the root directory of your boot drive. At this point, RMS_BOOT returns control of your ST to you. It can be re-invoked at any time from the desktop or from within any GEM application which allows accessories. The ROCP itself RMS_BOOT.ACC sets the following parameters: 1) The baud rate and the flow control for the serial (aka modem aka RS-232) port, 2) The various parameters for the parallel (aka printer aka Centronics) port, 3) The color palette, 4) The keyboard attack rate (the delay between a keypress and the start of keyboard repeat), 5) The keyboard repeat rate, 6) The mouse double-click rate, 7) Keyclick on/off, and 8) Bell on/off. Comments and caveats RMS_BOOT.ACC is compatible with all versions of TOS 1.0 (ST TOS), TOS 1.2 (Mega TOS), and TOS 1.4 (Rainbow TOS), whether in ROM or loaded from disk. (With one exception -- the May 1985 version of TOS 1.0 on disk.) It is not intended for use with TOS 1.6 (STe TOS); it does not support the extended color palette of the STe. TOS 1.4 introduced a new file selector. In addition to many bug fixes, it now sports 16 drive buttons. It is no longer necessary to use the keyboard to enter a new drive number in the "Directory" line. Furthermore, there is an additional call to invoke the file selector. A programmer may choose to have his own text replace the "FILE SELECTOR" which normally appears at the top of the box. RMS_BOOT.ACC takes advantage of this new call. If you click on "All" in the "Load new parameters:" alert box, then you will be prompted with "Load parameters from disk:". Likewise, "Load color palette from disk:" will prompt you when you click on "From disk" in the "Load new color palette:" alert box. If you have TOS 1.0 or 1.2, then the standard file selector will appear, with "ITEM SELECTOR" at the top. RMS_BOOT.ACC checks the TOS version to ensure compatibility. I have also tested it with several custom file selector programs; no conflicts have arisen. In fact, I've taken it a step farther. Charles F. Johnson's excellent shareware file selector, "Little Green Selector", allows programmers to pass strings to it. These strings replace the normal: ---------------- | Little Green | | Selector | ---------------- in the upper right-hand corner of his selector. So if you use Charles' program with TOS 1.0 or TOS 1.2, then RMS_BOOT.ACC will prompt you with: ---------------- | Load new | | parameters: | ---------------- or: ---------------- | Load new | | palette: | ---------------- at the appropriate times. And with TOS 1.4, the same prompts which appear in the standard file selector will be displayed in the Little Green Selector. When RMS_BOOT.ACC executes, it steals the system mouse handler vector for use with its mousetrap. It plays by all the rules of good programming practice. Installing and removing the mousetrap involves a special technique of self-modifying code; this makes it compatible with virtually any GEM program. You can repeatedly invoke RMS_BOOT.ACC from the Desk menu of any well-behaved GEM application, install or remove the mousetrap, or change all parameters or the color palette only, without any problems. Unfortunately, my favorite spreadsheet, "Analyze! v2.03", is not a well-behaved program. If you invoke RMS_BOOT.ACC from Analyze!'s Desk menu, then it will lock up, and you will have to reset your ST (and lose any work that you've already done). You should not run RMS Boot from within CodeHead Software's "MultiDesk". If you configure MULTDESK.ACC to automatically load and execute RMS_BOOT.ACC, then the two programs will behave predictably together. However, if you subsequently unload RMS_BOOT.ACC, then you no longer have access to it. In addition, after unloading it, loading in another accessory -- or even reloading RMS_BOOT.ACC -- will overwrite the mousetrap code, and your ST will lock up or crash. Likewise, if you run RMS_BOOT.ACC from MULTDESK.PRG, then when you terminate MultiDesk and load another application, the same thing will happen. In other words, RMS Boot and MultiDesk are not inherently incompatible with one another. They can be simultaneously coresident in RAM, without any negative interaction whatsoever. It is the use of MultiDesk's powerful ability to load and unload accessories which leads to the conflict between the two programs. The bottom line is this: As its name implies, RMS_BOOT.ACC is meant to execute every time that you boot -- that is, power-up or reset -- your ST. It is also meant to remain resident in RAM, so that you can invoke it at any time from the Desk menu of a GEM application -- including, of course, the desktop. So to get the most from it, please copy it to the root directory of your boot drive -- where it belongs. Good sense dictates that there are times that the mousetrap should be removed before running some TOS programs. Using GFA BASIC's menu system, for example, would be a royal pain if the mousetrap were installed. By the way, time-date entry always sets the seconds to zero. Repeatedly resetting your ST or selecting RMS_BOOT.ACC from the Desk menu will gradually cause your ST's clock to lose minutes unless you re-enter the time. RMS Boot v1.21 Upgrade notes For RMS Boot v1.21, I optimized a couple of sections of code to save a few bytes of memory and to speed execution by several microseconds. No big deal; by themselves, these changes don't justify release of a new version. The real reason for the upgrade is to distribute this addendum to the original docs. Some programs use the right mouse button for their own purposes. "Hotwire", for instance, responds to a quick single- click of the right button to kick it into action and display its menu. And "Flash" uses a right button press to toggle between its TOS terminal screen and its GEM program screen. At first thought, it would seem obvious that RMS Boot's moustrap, when installed, would be incompatible with such programs. This is not the case, however; you just have to "fool" them into ignoring the right mouse button. Codehead's John Eidsvoog was kind enough to clue me in to how Hotwire is invoked. If you press the right mouse button, and then you release it within about 1/3 of a second, Hotwire takes over. If you hold the button down longer than that, though, Hotwire ignores it. To enter the menu bar when both Hotwire and my mousetrap are installed, press the right button, move the mouse arrow into the menu bar, and hold the button down for about half a second. (It sounds like more effort than it really is. In actual practice, for most users this mouse action would take that long anyway.) Flash presents a different challenge: it responds when you first press the right mouse button. If you want to use the GEM screen's menus, then you have to "sneak" the mouse into the menu bar before Flash gets a chance to respond to the right button.. The trick is to move the arrow up to the bottom of the menu bar directly below a menu title. While continuing to move your mouse, press the right button. The mouse will enter the menu bar, and a menu will immediately drop down. You can then release the button and move the mouse arrow to eny menu title that you want. GEM's menuing system will work normally, and as long as a menu is displayed, Flash will ignore the right mouse button. This solution for Flash works equally well for Hotwire, too -- just be sure to hold the right button down for about half a second. In fact, after a few times, this mouse motion becomes automatic. I quickly got into the habit of entering the menu bar this way all the time. This is the reason that I didn't notice the problems until they were pointed out to me. Thanks to Norm Weinress for bringing these anomalies to my attention. Conclusion RMS Boot was written in 100% assembly language. It occupies only 4K of disk space and less than 5K of RAM. It uses an imbedded, hard-coded resource; there is no separate .RSC file. (This thanks to a terrific program by John Eidsvoog, which he may some day decide to release.) RMS Boot is copyright 1991 by Maloney and Red Menace! Software. It may be distributed freely, provided that this text file accompanies it. It may not be sold for profit, nor may it be included with a commercial software package without the express written permission of the author. As I stated at the beginning, RMS Boot is shareware. For those unfamiliar with the concept, shareware is "try-before-you- buy" software. Unlike commercial software, if you test shareware and find it not to your liking, then you haven't wasted your money. On the other hand, if you want to continue to use it, then you are expected to pay for it. The cost is usually nominal; it does not begin to reward the programmer for his efforts. If RMS Boot meets with your approval, then please send a check for $15.00 (in U.S. funds), payable to "Maloney" to: Maloney 6245 Kester #40 Van Nuys, CA 91411 U.S.A. Thank you for your support!