BOOTSCREEN ~~~~~~~~~~ Startup screen program for Amigas with Workbench release 37 (2.04) or higher. Copyright ©1994 by Joseph Luk. All rights reserved. ----------------------------------------------------------- MAIN DOCUMENTATION $VER: 2.00 (2/5/94) UNREGISTERED VERSION Introduction ~~~~~~~~~~~~ Some time ago, I downloaded a cute little utility called "BootPic" (no 'K' at the end). This addessed the fact that under OS 2.0 and greater, you are treated to a blank screen until the Workbench comes up -- very boring and annoying in that you can't confirm whether or not you're going through a normal boot sequence. Correcting the problem, "BootPic" displayed a mock "Windows" startup screen until the Workbench came up. The only problem was that this screen was hard-coded in the program, and the extra-tall PAL screen and incorrect version number couldn't be corrected. The author said that he would probably not add IFF support in the future. Enter BootScreen. My program is smaller, loads an IFF picture, and also supports AGA 24-bit palettes. Features ~~~~~~~~ * Highly user-friendly. Package provides Install scripts for operations beyond installation. Configuration is standardized and extremely easy to use. * Takes advantage of advanced hardware and software (full AGA support). * Highly efficient boot-time operation for maximum speed. Requirements ~~~~~~~~~~~~ * Amiga with Workbench 2.04 (V37 intuition and graphics library) or better installed. * Hard disk highly recommended. Running the program ~~~~~~~~~~~~~~~~~~~ Several extremely friendly install scripts are provided. They are for Commodore's standard Installer program, which comes on your system disks. You must have the Installer in one of the path directories (C: is the recommended location). The scripts provide extensive on-line help which I spent much time writing, and it would be to your advantage to read the help texts. For first-time installations, simply run the "Install" script. Don't worry about what will happen if you don't like the program, since the "Remove" script will quickly and easily get rid of all the things "Install" has set up. If you are upgrading from an older version of BootScreen, run the "Upgrade" script. It will remove old files so that you can perform the regular installation. The "Remove" script completely undoes all changes made by "Install", except by default it does not remove iff.library. I recommend that you keep this library installed anyway, since many programs use it. Go ahead and fire up the Install script! When you've got that done, the only noticable change in your system will be a new Preferences editor in the Prefs drawer: BootScreen. Editor Usage ~~~~~~~~~~~~ The BootScreen Preferences Editor supports the standard interface that all the other editors use. The one exception is that it does not currently support preset files, but the settings aren't very complex so there's little need for them. Most of the menu choices should be familiar to anyone who has used the standard system Preferences editors. To specify which picture you want to display at startup, either type the name in the string gadget, or click on the "GetFile" gadget to its left. That will bring up a standard system requester and allow you to select the picture. The other gadgets' functions are as follows: MONITOR Under Workbench 3.0 and above, many people use the "mode promotion" feature. This does not become active until midway through the startup, meaning at the beginning, screens will always be displayed in the default mode, NTSC in America and PAL in Europe. However, when mode promotion becomes active, screens that have not been specifically opened in NTSC or PAL get promoted. It is easy to see the effect this produces by selecting a DEFAULT monitor, saving, and re-booting. If you have mode promotion turned on, midway through the startup the screen will re-sync to the higher mode. You can avoid this by selecing the appropriate default monitor (NTSC or PAL). Then, your startup screen will not be promoted because it is actually requesting a specific monitor. I personally keep Monitor set on DEFAULT because I don't mind the re-syncing, and feel that the scan-doubled image looks a lot better. It's a personal preference, and I left the choice up to you. The Monitor setting has no noticable effect under Workbench 2.x, which does not support mode promotion. CENTER PICTURE? This tells BootScreen to automatically center the picture on the display. It allows you to save file space and boot time by using brushes rather than full pictures for your startup screens. If BootScreen's centering is not to your liking, you can always disable it and center your graphic manually within your paint program. SAVE Sáves the current configuration. Note that the configuration is saved into the icon's ToolTypes. I figured that you've probably got a cluttered enough hard disk already, and another confiuration file is only going to be a pain. The only downside to the method of using the icon as a config file is that you must not delete the icon, and you cannot use the ToolTypes for your own stuff (e.g., "Icon by" texts or parenthesized comments). TEST Displays the picture. If screen centering is on, some of the Workbench may be shown in the back. This is normal; in actual use, the picture will be centered on its own background. Click in the picture to finish viewing. CANCEL Quits without saving changes. That's all you need to know to use BootScreen! Once again, please note that BootScreen 2.00 is now ShareWare, and you are required by law to send in a donation of at least $5 if you use the program beyond the one-month trial period. I'm not trying to make money off you, I'm trying to recoup the expenses of coding up this project. And I'm trying to meet minor expenses; I'm a high school student who stayed up a little later each night after homework to work on this project. Cheap groveling: please reward me for my efforts. The remainder of this document will be devoted to technical articles about how the BootScreen system works, and what changes you are and are not allowed to make. Trust me, you can live a happy, full life without reading it. :> The Files ~~~~~~~~~ There is a large array of programs in this archive, most of which are custom-coded for the Install scripts. Only three programs actually comprise the BootScreen system: bin/c/BootScreen Main BootScreen program. This what is loaded at boot-time and displays the picture. bin/c/BootScreenClose This is the so-called "close daemon" which performs the task of closing down the startup screen when it is no longer needed. bin/Prefs/BootScreen Preferences editor. Why So Many? ~~~~~~~~~~~~ This is the question that's probably burning in your mind: "Why the heck is he using a 'close daemon'?" I could easily compile BootScreen to automatically stay resident until it needs to close its screen, but I didn't. Why? The main reason is that I wanted to fully optimize your boot time. If I used the method of staying resident (equivalent to the old way BootScreen was run, with RUN >NIL:), the program would immediately quit and the startup-sequence would continue onto the next command. That sounds great, but there is a problem. While BootScreen is loading its IFF picture, the startup-sequence would be loading the next command. This simultaneous tug-of-war for the disk drive causes DOS to shuffle the head back and forth supplying the startup-sequence and BootScreen with little bits of the files they want at a time. As a consequence, most of the time is simply wasted with the head moving from place to place, rather than reading data. Not only that, it really causes unncessecary wear and tear on your hard disk head servos. Enter the solution. Instead of returning control to the startup-sequence immediately, BootScreen loads the IFF picture, then it launches a seperate program responsible for closing the screen. Only after that is finished, does it allow the startup-sequence to continue. The speed gains may be negligible for small pictures, but if you try displaying a HAM8 picture you'll immediately see the advantage -- as well as hear it; hard disk heads make noise when they seek! The only real disadvantage with this setup is that you've got an extra program on your hard disk. I believe this is not a problem, but you must remember never to run the BootScreenClose daemon yourself. At the current time, its only function is to get a lock on the frontmost screen, and wait until it is shoved to the back, at which time it closes it. Needless to say, this can cause disastrous results if you try it on your Workbench screen. BootScreen will automatically run the close daemon on its own, so you will never have to (and should never) touch it. Ideally, I'd like to make the close daemon internal to BootScreen, so that the danger of accidental execution won't exist. However, I tried for several agonizing weeks to get my program to spawn a new task and then quit, without having its cleanup code deallocate the task. There's probably some way to do it, and I'd appreciate any hints anyone can give me in that direction (here's a hint from me, cback.o is not a solution). Mode Selection ~~~~~~~~~~~~~~ As mentioned before, the only monitor available when you boot up is your default montor, NTSC for American machines and PAL for European ones. This means that trying to open a screen at boot-time that is for another monitor, such as Super72 or DblNTSC, will always fail. To avoid this problem, BootScreen automatically thows away the upper 16 bits of the picture's DisplayID -- the monitor specification, and replaces it with NTSC, PAL, or nothing, depending on your selection of the MONITOR gadget. I mentioned this just so you'll understand why sometimes your pictures come out distorted or in the wrong resolution. Saving the pictures in NTSC or PAL will help ensure that the resolution that they're displayed in at boot time will be the same as the one they're saved in. The Install Procedure ~~~~~~~~~~~~~~~~~~~~~ Wouldn't it be nice if all programs had three Install scripts for Install, Remove (UnInstall), and Upgrade? Anyway, I wrote several programs which handle the task of kneading s:startup-sequence for various purposes. I'm sure they could be more easily written in ARexx, so if anyone's interested, let me know! Final Words ~~~~~~~~~~~ I hate to keep banging you over the head with this, but this is my first ShareWare release and I'd like for it to be a rewarding experience.. Contacting Me ~~~~~~~~~~~~~ Joseph Luk Internet: jluk@ctp.org GEnie: J.LUK S-mail: P.O. Box 884401, San Francisco, CA 94188-4401 U.S.A. REGISTRATION ~~~~~~~~~~~~ When you register, you will receive a disk containing the latest version of BootScreen, and it will be a custom registered version just for you. I don't feel that specially compiled versions for 020 or higher are necessary, since the routines aren't particularly time-intensive, and the marjority of execution time is spent opening or displaying the picture, which are functions in iff.library. Also on the disk will be as many sample pictures as will fit, more than enough for your startup screen needs! The registration levels are as follows: $5 Basic registration. This is a small amount of money!!! This covers the registered version of the disk and U.S. postage ONLY. For International orders, add $5 U.S. to any order. $10 Uprgade registration. Will get you upgrade notices in the mail for one year and significant discounts on upgrades. Will also get you my personal approval as well as notices for other products by myself. :> $11+ If you choose to send additional cash or other gifts (even a postcard will be cherished), we can arrange specific rewards. I might even consider that 020 version. :> To register, fill out the following form and mail it to me, along with a check or money order made out for the amount you wish to donate. BOOTSCREEN 2.00 REGISTRATION Date _________________ Full name ________________________________________________________________ Address __________________________________________________________________ __________________________________________________________________ __________________________________________________________________ Telephone # ______________________ E-mail address(es) _______________________________________________________ _______________________________________________________ Amount _____________________ -- Mail to: Joseph Luk P.O. Box 884401 San Francisco, CA 94188-4401 U.S.A. THANK YOU!!!!