...Hehehehe! I thought the filename might get your attention! Reason for it is that I'm sick and tired of seeing people unpack an archive and greedily attempt to run the program in question only to have it crash and piss them off enough to delete the thing and never look at it again! Shame on them!! If only they'd read the docs first... »»»» WinSpeed »»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»» 01-01-97 04:26 [..Yawn.. ...Snore.. ...uh..? Oops!] By Olly Koenders 4/43 Thomas St. Ringwood, Victoria Australia. 3134 First released on GREMLiNS BBS. »» +61 (03)9870 4393 WinSpeed is Freeware and may be distributed far and wide for the benefit of the Amiga community without charge except for small, unquantifiable amounts when cost of "magnetic media" is concerned. Please don't alter the docs as I like them pretty much too! Keep them with the executable when in piracy mode. Thanks. **** Disclaimer **** I'll NOT be held responsible for any "damage" wrongly attributed to WinSpeed due to misuse or failure to read instructions. WinSpeed will NOT impinge upon trackdisk.device, serial.device, the mouse, keyboard or your grandmother regardless of how so used as the latter have nothing to do with intuition and its refreshing routines! ---------------------------------------------------------------------------- ...Bear with me for a coupla secs 'cos I'm gonna go out on a limb... Yeh - I know... There's proggy's around that do about the same thing (hmmm.. 2 others at last count) but I decided to improve on the idea somewhat. You're about to see why! The docs (or what was available of them at this time) of the other 2 proggy's ("SmartWB 1.05" by Grzegorz Calkowski and "SmartWin" by Timo Nentwig) are available for perusal later in this document - If thou shalt have requirement of them... Grzegorz was right - Timo's "version" is pretty badly written. Timo seemed to delight in the fact that "SmartWin is now a commodity...". If ANYBODY can give me a DAMN good reason why it should be, or why it's so good if it were then I'll eat this file! I'm REALLY SICK of "programmers" who, in a fit of either boredom or boneheaded creativity delight in causing their "masterful creations" to require a plethora of useless libraries (commodities, utility, locale etc.) and other resources or AmigaOS 3.1+ just to do simple functions like edit a text file or put a window on the screen! Come on, people! Think about it - programming isn't about slapping something together and not optimizing it or bashing an "AppIcon" onto the WorkBench 'cos it's suddenly "trendy" to do so! Nor is shoving a heap of structures into the Ami's memory just for a simple SetFunction() patch! It's no wonder that people complain about the Ami's slow speed - it's more than bloody likely 'cos of YOU! Take advantage of the Ami's incredible OS in good form but DON'T overload it with rubbish! If you're the type of programmer that creates something good but doesn't beta test it thoroughly before first/second/third (even fourth?) release then you're an embarrassment to the rest of us! Learn from mistakes but don't release 'em! If you REALLY need to do that kinda stuff then "program" for the IBM clones and you'll be in good company! For the sake of ALL Amiga owners (1.1 '000's > 3.1 '060's) out there, Don't insult our intelligence or our machines further!!! [Whew!] 'Nuff said. ...Okay - where was I..? ---------------------------------------------------------------------------- WinSpeed patches the intuition.library functions OpenWindow() and OpenWindowTagList() to rid the idea of "SIMPLE_REFRESHed" windows (depending on your choice) that will speed up WorkBench operations like dragging, depth arranging and resizing windows up to about 4 times. Icon rendering speed will also be increased slightly as will opening and closing some large windows. You might also notice your menus flick around a little quicker too but it can be difficult to tell. WinSpeed is 1464 bytes in size, coded in 100% assembler with no "includes" and is fully optimized. The program installs a one-piece patch of exactly 94 bytes in MEMF_PUBLIC and promptly exits. Just leaving the patch which is 100% crash-proof unless some fool "programmer" tries to open a window without a pointer in a0. WinSpeed doesn't leave a "process" running soaking up valuable processor clock-cycles and the patch is of such small size and optimization that it doesn't interfere with the opening of any window (now that's something you may never see in a "compiled" program). WinSpeed took approx. 2 hours to code (I wasn't thinking straight) and as far as I can foretell, there may not be further versions as I know I got it right the first time. I might include some code in the patch for programmers that wish to have their windows left alone. I might even include an "automatic" mode for best operation. Depends if I'm prompted enough... The patch is never removed (unless "Guru" visits or you reset yourself) but is updated the next time you run WinSpeed. This allows you to set WinSpeed's options at your leisure while testing those Normal/WorkBench windows. Pretty neat huh? For WinSpeed to take effect on any window, the window will have to be closed and reopened again AFTER running WinSpeed. Sorry - but that's how these things work... WinSpeed is CLI/Shell only so don't try and crank it up via icon - as the WorkBench don't like proggy's being launched that don't retrieve and/or reply to its message ports (thingy go BOOM!). WinSpeed can be started at ANYTIME (even without the WorkBench open) in any relevant mode UNLIKE "SmartWin" (definitely!) and "SmartWB" (I think). Best place would be at the top of the Startup-Sequence unless you would prefer otherwise. DON'T try the WBStartup drawer as that needs an icon to launch programs (thingy go BOOM again!). - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Upon calling WinSpeed with an incorrect argument, this is (roughly) what you should see... ›WINSPEED: V1.0 © 01-01-97 Olly Koenders - Australia › Usage: WINSPEED [xyz] x›=›0 - Standard Windows (Slow) 1 - Smart Refresh Windows (Fast) 2 - No Refresh Windows (Fastest) y›=›0 - Standard Icon Windows (Slow) 1 - Smart Refresh Icon Windows (Fast) 2 - No Refresh Icon Windows (Fastest) z›=›0 - Don't patch Main Workbench Window (Booo!) 1 - Patch Main Workbench Window (Yay!) E.G:›WINSPEED 211 For AmigaOS 1.1 > 1.3 set `y' to `0' or it might CRASH! Option `x' will patch 1.1 > 1.3 Icon Windows. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Yes - I do support OS 1.1 and up if I can help it. It's still being used in an Amiga that should be SUPPORTED instead of ridiculed and pressed out of service with name-calling such as "Dinosaur..." and so. Though I don't think there's many left with OS 1.1 and I reckon the better option would be to upgrade but some people ARE strapped for cash. And their beloved Amiga's can still kick an IBM arse or three. Put a 486 or Pentium on 7 Mhz and see what it does - or more to the point, what it still doesn't! ...Now, back to your regular entertainment: There are 2 distinct types of windows available in OS 2.04 > 3.1. Normal OpenWindow() windows (used by normal application proggy's) and the type that are opened using OpenWindowTagList(), which for the purpose of this exercise and to reduce confusion I'll call "Icon Windows" 'cos that's where the icons are rendered. OS 1.1 > 1.3 only uses OpenWindow() as OpenWindowTagList() don't exist but WinSpeed is perfectly compatible with that so long as you keep switches "y" and "z" set to "0". Listed below are the only combinations that SHOULD be used for 1.1 > 1.3 or crashes can result: "WinSpeed 000", "WinSpeed 100" or "WinSpeed 200". Three choices should be plenty as there's not much more I can do and there's 2 more choices than "SmartWB" or "SmartWin" ever allowed. With OS 2.04+ all other combinations also apply excepting: "WinSpeed 001", "WinSpeed 101" and "WinSpeed 201". Reason being if the "y" switch is "0" then the main "WorkBench" window won't be patched in either case as it's opened using OpenWindowTagList(). Are we confused yet? No..? Good. Be aware that if you patch the main WorkBench window and if you have patterns or backdrop pictures displayed in it then some depth arranging/resizing of the Icon Windows can scatter these a bit. Selecting "ResetWB" or "Redraw" from your WorkBench menu will put them back to normal until the next scattering. Note that this ain't the fault of WinSpeed but just how intuition works. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - The difference between "SMART_REFRESH" and "SIMPLE_REFRESH" is that if you resize a smart-refreshed window then the contents will be remembered by intuition and only the DAMAGED parts redrawn. This can double the speed of window refreshing easily but is slower than not refreshing at all. "SIMPLE_REFRESHed" windows use a teeny little less memory than their "smart" counterparts but the ENTIRE window and its contents are refreshed effectively halting the computer until this has been accomplished. Note that with a WorkBench full of windows/icons this could take some time almost irrelevant the speed of processor you're using. part of the slowdown has to do with all the display being in MEMF_CHIP where the processor has no access until the display DMA have finished their work. "NOCAREREFRESHed" windows "forget" what they contained and the contents can only be refurbished by selecting "Redraw" from the WorkBench menu but that's hardly worth a massive coronary now is it? The speed increase of opening, closing, dragging and depth arranging speaks for itself already. Note that there's no point in having a simple or smart-refreshed window without a sizing gadget! As the very act of covering a window with another has no influence on the contents of the window that's covered due to the display data contained in each window residing in a separate area of memory entirely. "SUPER_BITMAP" windows will be patched, but their "SUPER_BITMAP" flag will remain intact so there won't be a problem with their status. Now comes the fun bit - let's all witness the fight between Grzegorz and Timo. Changed from ".Guide" to plain ASCII for easier reading... \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ //////////////////////////////////////////////////////////////////////////// ************************************************************************** »»» SmartWB v1.05 ««« "Forget about slow workbench..." Freeware © 1994-1996 The Beet Research written by Grzegorz Calkowski ************************************************************************** If you are using / had been using previous versions of SmartWB, please, reread Usage section. Also read this Warning! Table of contents: Disclaimer Legal mush Copying Distribution & Copyright Warning Beware of a fake Description Don't know what this is??? Usage So... Notes Few words more Author Who made it? History Short program history DISCLAIMER ---------- The program and information above is provided "as is". No representations or warranties are made with respect to the accuracy, reliability, performance, currentness, or operation of this software and information, and all use is at your own risk. The author doesn't assume any responsibility or liability whatsoever with respect to your use of the program and information. COPYING ------- SmartWB is FreeWare. Yes, but you should read "Author". It can be freely distributed under following conditions: 1. No more then a nominal fee is charged to cover cost of magnetic media. 2. Everything in this distribution must be kept together & unaltered. Applies to: - SmartWB (the program itself) - SmartWB.info - SmartWB.guide (AmigaGuide® doc file) - SmartWB.guide.info SmartWB is Copyright (C) 1994-1996 The Beet Research. All rights reserved. AUTHOR ------ It's quite a long history behind SmartWB. I know it very widely used, appeared on some magazines cover disks.... I think, it has made your, dear Amiga users, work easier and nicer. It's free, but if you want to make poor Polish student happy - send a small donation. $5 or so will do! Thank you in advance! I must say big »thank you« to Gerhard Rabe, which is the _only_ person who did it... shame, only one... Contact me at: Grzegorz Calkowski Rzedowice ul.Dobrodzienska 8 POLAND voice: +48(0)34-575875 E-mail: calkowsk@usctoux1.cto.us.edu.pl Check out my other programs on Aminet: SysPic301.lha util/boot 55K 8+The best boot-time picture displayer! SysPic301Pix.lha util/boot 113K 7+Bonus pictures for SysPic AutoAssign.lha util/wb 18K 33+V1.12-Automagically makes assigns & moun JustPlay.lha mus/play 20K 33+1.1-Proplayer to use w/icons, src, XPK iconspy1.lha util/wb 12K 79+Monitors calls to icon TOOL TYPES (w/ so WARNING! -------- On Aminet appeared archive named ... dev/src/SmartWB10.lha ! It's author (Timo Nentwig) claims it's a replacement for my program! It's not. 1. He has stolen name of my program. He should not. 2. It's example of a extremely bad written C patch (I have nothing against C - I write in C/C++). It's slow - stupid usage of Forbid/Permit pair. And big - remains in memory as a process, consuming about 4 kilobytes of memory + stack (usually 4kb) = 8kb!!!. Original SmartWB _only_ installs the patch, which takes only 152 bytes! 3. Mr. Nentwig wanted to patch _all_ windows to smart-refresh. See "Notes". Look at these words: "(...) So the workbench windows are smart-refreshed. It should also patch every other window (e.g. C='s Prefs) opened by OpenWindowTagList() but it doesn't (...). Don't ask me why, I've no idea :-( Probaly just a minor stupid mistake. This can happen when writing 10 minutes programs (...)" Any questions? So, if you use this "replacement" - please delete it and use original SmartWB. DESCRIPTION ----------- Well, well... I doubt you haven't heard about SmartWB... this proggie is over 2 years old! If you use it, you know, that you can't live without it. If, unfortunatelly, you don't use it, you will use it... :-) SmartWB is a little program that will *magically speed up* Workbench's window refreshing. It forces to Workbench windows to open in smart-refresh mode instead of slow, ugly-look simple-refresh. SmartWB patches intuition/OpenWindowTagList which Workbench uses to open its windows. I really don't know why gurus in C= decided to use simple-refresh - it saves some memory, but the speed gain worth that. Try to open something, let's say, about 20 windows on your workbench and then do, for example, a depth rearranging. And so? Yes, slow, even on an A4000! Try it again with SmartWB... Furthermore if you use Magic Layers (aminet/gfx/misc/ML11.lha), realtime window movement program by Trond Werner Hansen, SmartWB will make it even better!! SmartWB is written in pure assembler, for best efficiency. Wonder, it takes *ONLY* 152 (exactly) bytes of memory!!! And uses no cpu time while installed. SmartWB requires at least 2.04 AmigaOS release (V37). Tested also under 3.0 (V39) and 3.1 (V40). USAGE ----- Nothing more easy. SmartWB can be used from both Workbench & Shell but the first is recommended. Just drop it to 'WBStartup' drawer... In the past SmartWB caused problems with big patterns in Workbench window. After few window drags, openings/closings pattern got scattered. Magically, it affected only big patterns. Now problem is solved - the Workbench window isn't forced to be smart. On first invocation SmartWB installs the patch. On second it will try to remove it. Removal can fail if other program will patch the system routine used by SmartWB (intuition.library/OpenWindowTagList, specifically). In such case, first remove the other ones. Anyway I doubt you will ever want to remove SmartWB... :-). If you want (surely!) SmartWB to not bring the info window specify QUIET as an option (for shell) or as a tooltype (for Workbench). As every other standard shell command SmartWB recognizes the '?' what brings the options template. NOTES ----- You thought: "Why not to force any other simple-refresh windows to be smart?", I suppose. Well, answer is simple - better not to "poke" too much. Although in most cases it can work fine but maybe sometimes not. On other hand, if a programmer uses simple-refresh he knows what he does (except Workbench's creators... :-). For example a console window if is opened in smart mode (when SMART option specified) doesn't preserve its contents. So decision was made not. HISTORY ------- v1.0 (20.02.94) o First release. v1.01 (21.02.94) o Small fixes and optimizations. v1.02 (27.10.94) o SmartWB.rendezvous port was created in a bad way. Could cause strange system behaviour. Fixed. o Version string was incorrect. Fixed. o Finally... now it's copyright (c) TBR. v1.03 (09.11.94) o A nasty Enforcer hit found in the patch itself! It didn't check if a0 contains a pointer... Fixed. o And therefore patch uses 120 bytes instead of 112... buuuhuuu.... v1.04 (18.12.95) <-- Sic!!! o Oooopsss... a small bug which has been hidden here for over one year... Sometimes SmartWB trashed d0 at exit returning stupid values (such as 44) thus breaking script... (Reported by Tassos Hadjithomaoglou). Fixed. o Usage doc changed - due to problems (reported by Pete Watson) with big patterns, recommended place for SmartWB is WBStartup. o No longer, hmmmm, BeetWare.... o Plain doc converted to guide. o ....not released.... v1.05 (29.07.96) <--- SIC!!!!!!!!! o After over 2 years of SmartWB's existence pattern-scattering problem solved...! o Patch size has grown from 120 bytes to 152... o Source cleaned a little (removed 'Too old kick' requester... who cares about 1.3 dinosaurs nowadays... are there still such? :-) o Icons added. o FINAL RELEASE. Yes. \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ //////////////////////////////////////////////////////////////////////////// Hmmm... Yep - what d'ya reckon Timo..? \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ //////////////////////////////////////////////////////////////////////////// Short: Always SmartRefreshed windows Uploader: Tcn@oxygen.in-berlin.de (Timo C. Nentwig) Author: Tcn@oxygen.in-berlin.de (Timo C. Nentwig) Type: util/cdity Replacement for SmartWB by Grzegorz Calkowski. SmartWIN patches the OpenWindow functions and openes the windows in smart refreshed mode. Since at least most of standard Commodore/AT programs (e.g. MultiView or prefs:*) up to v40 still uses the obsolete simple refresh this patch is neccessary to speed up windows (especially you are running opaque moving). Just throw old SmartWB away. It's just useless stuff now since it *only* patches the WB windows. Features: · is a commodity · Patches either · every window · only wb windows ToDo: · Improve patch handling News: · is a cdity now · fixed WBONLY bug, if active *only* WB windows were opened Timo C. Nentwig Edelhofdamm 35 Tcn@oxygen.in-berlin.de 13465 Berlin/Germany http://www.in-berlin.de/User/oxygen \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ //////////////////////////////////////////////////////////////////////////// Ok - I think we've browsed enough! Above all - enjoy WinSpeed and if you have any decent ideas or spare Blizzard 1260 accelerators I'd be happy to hear from anybody. I can be contacted at the address on the very, very top of this doc so say hello. Other fast and compact assembler utils by Olly... modCRUSHER - 31 instrument MOD cruncher - pack rate 60 - 85%! Beats LHArc, Lzx, Zip, Zoo, Arj, Imploder 4, PowerPacker 4 hands down!!! CLI/WorkBench versions - All Amigas. DoubleTake - Locates and lists duplicate files on any Dos-legal device - a space saver for HD's! - All Amigas. Plus some more I can't remember just now... [...Zzzzz!]