Runner -- A Desktop Alternative OVERVIEW What is Runner / Shareware / Related Programs / What's Next? Copyright (C) 1993 by Dave Thorson Version 1.61 November 18, 1993 Legalese: Runner may be distributed freely as long as all original files are included, unchanged. Dave Thorson is not responsible for any damages (lost files, loss of time, etc.) caused directly or indirectly by this software. Users of this software assume all responsibility for risk. This program is Shareware and is NOT released to the Public Domain; Copyright ownership remains with Dave Thorson. The companion programs Mini-Run, Regions, Rpicsel and any other "protected" programs are NOT shareware once you update them using RUNR_REG.PRG and the serial number / security code you receive by sending in the registration fee of $10 US or more -- they must NOT be distributed to others once updated. Note: in most .HLP files, $$ is used to mark the start of a new section. Use this as a search string to find things quickly. $$ Intro Runner is a quick, easy-to-use alternative to the standard Atari desktop, developed for hard drive users with at least one megabyte of memory, however it may still be of use for floppy drive users and 520K systems (see section on Mini-Run below). Runner has been tested on a 1040ST with TOS 1.0 and hard drive with ICD host adaptor, but should work on other systems as well (please contact me at the address below with any bug reports, especially for STe systems -- Thank You!) Runner WILL NOT work yet on a TT system, and expect similar problems on the Atari Falcon system. If anyone would loan me a Falcon for say, a few months, including the newest version of GFA BASIC, I'll do what I can to make Runner work there also! Runner lets you manage your programs more effectively by placing them in one or more menus; simply click on a program in a menu to run it. You can also assign up to twenty QuickKeys to run your most-used software with a single keypress, and install applications to run by selecting their data files. No more messy folders to wade through! Runner is much quicker than the desktop, and programs can be placed in menus regardless of what drive or folder they live in. You can group similar programs together in the same menu, such as all games or all graphics programs or all word processing software. Menus can contain programs or other menus, and you decide how you want to set them up. Runner also provides quick access to a file selector (if you use Universal Item Selector you may never need the desktop again!), lets you view files or run programs not in your menus and access desk accessories. Several customization options let you create a personalized computing environment, such as using a background picture (Degas Elite color-cycling supported, of course). All these features and more are described later, but first.... $$ Shareware Stuff I am releasing Runner as Shareware to test the market for such programs. Runner is NOT "Public Domain" and I reserve all rights to the program and this documentation. You are free to take Runner for a test drive on your own computer, and see if you find it to be of value. Whether you keep it or not, feel free to give copies of Runner to your friends, but be sure to include original copies of ALL files (do NOT give them MINI_RUN.TTP, REGIONS.TTP, RPICSEL.PRG or any other programs after they are updated by the RUNR_REG.PRG program!). I save on distribution and marketing costs, and you don't get stuck buying a program that doesn't work out as you expected after seeing it for only a few minutes in a store. Since Runner is a copyrighted, professional program that took a LOT of my time to develop and document, you are expected to purchase it if you want to keep it (just like all those programs on the wall at your local dealer)! If you decide to keep Runner, please send a donation of $10 to $15 to: Dave Thorson 4040 East Flower Phoenix, Arizona 85018 USA Be sure to include a return address if you need a reply, and tell me what program you're registering so I can keep my records straight. If you enclose a disk I'll fill it with the latest version of everything, or additional pictures if you want. Tell me what version of Runner you have so I know what send you. Let me know if you are limited to a single-sided disk drive, and if you object to receiving ARC'ed files (if you don't know what ARC is, tell me, and you'll not get any ARC'ed files). I could charge more (like the "going rate" for ST software of $40 per package), but through shareware you can save on marketing and distribution costs as well! Shareware can make all of us come out ahead, but only if donations are sent. Without them, shareware developers like myself will have no incentive to develop more software, and you will stop seeing nifty applications, utilities and games come your way. $$ * * * Mini-Run: Extra Shareware Incentive * * * Mini-Run, as included in the shareware version, has a very long delay to discourage you from using it but allowing you to see how it works. When you register for $10 US or more, you'll get a serial number and security code that will let you update MINI_RUN.TTP to remove the delay using RUNR_REG.PRG. Runner by itself is even better than before, but Mini-Run may entice those who USE Runner to contribute for shareware (this tactic seems to be working -- * THANK YOU * to all who have registered so far!). Mini-Run can be called from Runner to run programs needing all the memory they can get. Runner exits and loads Mini-Run, which in turn loads the desired program (passing along any parameters or filenames sent from Runner). When the program exits, Mini- Run exits and reloads Runner in its place. Mini-Run can free up almost 68K bytes for another program over what Runner allows (almost 100K if a background picture is loaded in Runner). It consumes only 29K of memory and about 8K of disk space. Mini-Run is a very short program so it loads quickly, adding only a second or so of delay from a hard disk. Of course, Runner itself is reloaded when your program exits (Mini-Run then loads Runner as it removes itself), adding a bit to the delay time. Even with these delays the process of running a program through Mini-Run is still far quicker (and certainly more convenient) than exiting to the desktop to run a large program, and returning to Runner after it's done. Using Mini-Run is also helpful for clearing out garbage left behind by some programs, such as the rows of buttons Word Writer fails to remove from memory.... Please note that Mini-Run is not a mini version of Runner; it does not provide any menus or options; it only runs a program as directed by Runner. In my configuration I get the following memory values. Values for older versions of Runner are also shown as a comparison in case you're upgrading from that version. Memory availability on your computer will depend on how much RAM you have, other installed programs and desk accessories, and how you measure it! Still, the last column shown here should be fairly close to what you will see: Configuration: Memory used by Runner: Desktop 0K Mini-Run 29K (Replaces Runner in memory) Runner 1.40 no pic 82K Runner 1.40 w/pic 114K (BIG jump in capabilities with Runner 1.50 no pic 96K release 1.50; uses 15K more) Runner 1.50 w/pic 129K Runner 1.60 w/pic 133K (more fixes and additions; Runner 1.60 no pic 101K only an additional 4K needed) $$ * * Regions: Additional Extra Shareware Incentive * * A Runner companion program, Regions, lets you set up active screen regions that you can select with a mouse click. These regions can activate nearly any feature available within Runner and a few more besides. You can now dress up your screens with disk drive "icons" or other pictures to make your Atari even easier to use. Simply paint the screen the way you want it using your favorite paint program, convert the file to Degas format (.PIx or .PCx) if your favorite paint program is not Degas Elite. Load the picture into Runner as a background pic, then call Regions by pressing the "y" key. Within Regions, define the location and size of up to 32 rectangular screen regions on top of your picture, and assign each a Runner function, including all menu options, most keyboard commands, and QuickKeys. You'll be able to run programs and read files by clicking on the desktop! Regions also lets you define a list of picture files that can be assigned to screen regions and loaded by clicking on the associated region or by pressing a shifted number key. You can even lock out the GEM menu bar, exit, file selector and menus to create custom applications or demos. Regions also lets you resave the current picture including any palette changes made within Runner so you will see the correct colors in paint programs or other applications. The Regions program is also "broken" in the shareware version -- saves are disabled. Just like MINI_RUN, the RUNR_REG.PRG program can update Regions to make a fully working copy. But Wait, there's more! RPICSEL.PRG lets you build lists of picture files for each screen resolution. On startup, Runner will randomly select a background picture from the appropriate list. RPICSEL also has saves disabled in the shareware version but can be updated just like the other "protected" programs. $$ Other Miscellaneous Stuff Do not rename the programs RUNNER.PRG, MINI_RUN.TTP or REGIONS.TTP since these are the names Runner expects to find. Runner's Fix command only loads RUNNER.PRG, and Runner only calls MINI_RUN.TTP and REGIONS.TTP when needed; there is no way to tell it to do otherwise. RUNR_REG.PRG also expectes to find files named REGIONS.TTP, MINI_RUN.TTP and RPICSEL.PRG (and possibly others if more become available). Runner contains only one basic error message, and it's used no matter what the problem is. This is better than crashing over small problems, and I felt it better than using lots of memory to diagnose and report various problems. If you see the error message (something general like "Bad Drive, Path or Other Error"), you can choose to return to Runner or exit to the desktop. $$ Read Only Problem For some reason beyond my understanding, a program cannot be run from Runner if the program file is locked (set for Read Only). If you have trouble loading a program, check for this using the File/Show Info function from the desktop. Runner does NOT write to any files other than RUNNER.CFG and filename.CFx (picture configuration files where filename is the picture's name and x=1,2,3). Trust me! (Okay, Regions can write to a picture file, and Runner will write to .TMP files and then rename them if successful, but everything else is safe!) $$ Template Files The template files, called GUIDE.PI1, GUIDE.PI2 and GUIDE.PI3 are ready to load into Degas Elite or any other program that accepts the Degas file format. They mark where Runner displays its menus. The Grey areas are used by Runner (you can put stuff there, but Runner may cover it from time to time). The black borders are not part of the area used by Runner. The red lines (in GUIDE.PI3, the fuzzy markers) are used to verify the location of the lines. A red line segment appears on each side of the black border lines. Runner will never cover more than the inside red line segment (or the inside edge of the fuzzy markers). A calibration guide of sorts.... Color 3 is used for menu text in low res and 15 in medium res, and the opposite of color 0 is used in monochrome. Special thanks to David Lindsley and Bruce P. De Vries for some good ideas on this one.... Also special thanks to Charles F. Johnson (of Codeheads fame) and ST Log magazine for showing how to load compressed Degas Elite pics using assembly language (FASTLOAD.ACC from the September, 1988 issue). One last note about GFA BASIC: I spent a great deal of time working around problems in detecting mouse clicks in the GEM menu bar rather then on the underlying screen (for example, when a pull down menu overlaps the title line, and you click on Add Menu but instead get the file selector box called by clicking on the title line). GFA works reasonably well if everything is done inside a window and you rely on GFA's internal commands for detecting mouse presses, keypresses and so on. The problem then is that GFA does all this too s-l-o-w-l-y to be usable, and has real problems registering mouse clicks consistently. The language has a lot going for it, and is clearly up the required level of performance, but NOT if you go "by the book." If anyone else out there has found better solutions (other than switching to C), please let me know. I could cut out a lot of silly code that tracks the same things GEM must track internally. If you have trouble with mouse clicks, you should try holding the mouse down a bit longer. This clears up lots of problems like going to a new screen and having the mouse select the first thing it passes over, without a new mouse click. Runner never uses double clicks, so slow down a bit and it all works better! I completely gave up trying to tell when -exactly- to set or clear the inverse display of a program or menu name since GFA gives no way to tell if a GEM menu is displayed or not. I tried putting in lots of delays. They kept the screen cleaner but slowed the program too much and weren't completely or consistently effective either. You'll have to live with the occasional characters staying inverted when they shouldn't until I find a better way (or a better language). Sorry, but I gave it my best shot. Just run the mouse over them to clear them if you like. My apologies to GEM purists everywhere. My goal here was to design an easy-to-use, powerful program to fit in as little memory as possible. Sure, there are lots of "niceties" like time and date display or picture animation, but I made tradeoffs to my preference of having more capability with the overhead of not having everything work strictly to GEM standards. Yes, it would be nice to be able to do everything in the Add/Change Dialog Box with either the mouse OR the keyboard, but that adds a lot of memory overhead. Same for color changes. I can read the R, G and B keys in a lot less memory than would be needed for a "Control Panel"-like color change capability. That would also require use of a mouse, and if the colors loaded from a picture are such that you can't see the mouse pointer or what you need to click on.... Well, I think my approaches are sound when you consider what this program is doing! $$ What's Next? I don't see much work remaining in Runner. I'm looking for ideas, but don't want the program to grow any larger. I may try to convert it C but don't look forward to that prospect: Runner is currently over 4500 lines of GFA BASIC code. If initial tests show significant savings in space, then a C version may be on the way. I also did a lot of testing to find out how much space I could save be dropping certain functions I suspected of being memory hogs. Here are the results, using (unreleased) version 1.50G. Memory appears to be allocated in pages of 256 bytes, so changes smaller than that don't show up. Memory Difference Description 549924 0 Full version Runner 1.50G 549924 0 No use of malloc() or mfree() 549924 0 No use of LPRINT command 549924 0 No use of CVL() and related functions 540436 512 No support for REGIONS program 553252 3328 No File View 549412 512 No SELECT/CASE statements (us IF instead) 549924 0 Use INLINE to pre-store DATA values 560420 10496 "Small Runner" which leaves out all editing capabilities (add, drop, change, restore, QuickKey assign, change or add installed applications, change menu position, title, etc.) Since none of these but the last made any significant difference, they're all still in the program (except malloc() and mfree(), which cause problems of their own). The "Small Runner" concept seemed a good one; you could set things up using regular Runner, and once your configuration stabilized you could use Small Runner instead. But I'm not willing to support two versions of the program for a 10K savings in memory! If this last 10K is really critical, let me know, but you may be pushing up a rope! I can see other companion programs, such as an arranger program that lets you put menu items wherever you like (you CAN arrange them how you like now; Runner determines the alphabetical order used for placement on the initial contents of the Add/Change Dialog Box description line, BEFORE it presents the box to you. You can change the description all you like without resorting the menu locations. Menu locations only change on Adds and Restores. So, you would have to give your programs some funny names to get them in the right order.... Not all that acceptable, is it?). I would like to have graphics file viewers triggered by common file extensions such as .SPC, .PI1, .TNY, .GIF, .IFF, and so on, that could be installed applications letting Runner view any graphics file. These could be a series of short programs or maybe one large one that handles them all. I would also like to see a library of background pics submitted by other users. And, if you come up with any generally usable applications created using Regions, such as tutorials or whatever, let me know! I'll try to pass stuff along through GEnie as I get it, or write me to find out what's going on. I'd love to hear from you! $$ Final Note That about wraps it up for Runner. If you have any suggestions for additions, or find features you never use that could be removed, or something doesn't seem to work quite right, then contact me at the address at the top of this document. If you use Runner, please send some $'s my way. Remember, if you send a contribution of $10.00 or more, you'll get a personal serial number and security code to update the protected programs included in the shareware version. If you enclose a disk and let me know what version of Runner you have, if you can read double-sided disks, and if you can handle .ARC files, then I'll return any updated programs or more picture files. And send in any background pics you like! Thanks to RUNR_REG.PRG, you can now get upgrades from GEnie or other sources, including other Runner users! Dave Thorson 4040 East Flower Street Phoenix, Arizona 85018 If you don't enjoy using your ST, you're not doing it right! -- Dave Thorson $$ Products Mentioned (in no particular order): Atari Planetarium - Atari || Font Tricks - Analog Computing Laser C - Megamax, Inc. || Headstart - CodeHead Software Turbo ST - SofTrek || Do-It! - QMI Word Writer ST - Timeworks || ST Writer - Bruce Noonan Degas Elite / Degas - Batteries Included / Electronic Arts Universal Item Selector III - Application and Design Software GFA BASIC 3.0 - GFA Systemtechnik / Michtron / Antic Publishing RealTime, Diablo, MidiMouse - Intelligent Music / Dr. T's Flash, CAD 3D, Spectrum 512 - Antic Publishing Colorburst 3000 - BeerysBit Software Little Green Selector - Charles F. Johnson