. EvenMore 0.3beta2 : Code:AmigaE | | EvenMore İ1996 Chris Perver | | ------------------------------' -+====== Important Messages!!! ==============================================+- TO: Any Viper accelorator users out there! If you have managed/know how/may know how to softkick a Viper accelator, let me know! I have an Amiga 1200 (OS3.0 - 030 28Mhz - 882 33Mhz - 18Megs total ram, etc., etc.) and I despretely want to softkick OS3.1. All help/info/programs WILL be greatfully accepted. cHRISPi needs YOUR help! ================================================================================ PLEASE READ THE BUGS SECTION! PLEASE READ THE BUGS SECTION! PLEASE READ THE BUGS SECTION! PLEASE READ THE BUGS SECTION! PLEASE READ THE BUGS SECTION! PLEASE READ THE BUGS SECTION! PLEASE READ THE BUGS SECTION! PLEASE READ THE BUGS SECTION! PLEASE READ THE BUGS SECTION! PLEASE READ THE BUGS SECTION! PLEASE READ THE BUGS ================================================================================ ================ COPYRIGHT NOTICE ================ The EvenMore executable and source are copyright İ1996 by Chris Perver and the ReqTools.library is copyright İ Nico François and copyright İ Magnus Holmgren. This archive can be distributed only when the contents of this archive are kept intact and unaltered and all files are included. The files in this archive are the following:- EvenMore/ EvenMore EvenMore.info Docs/ EvenMore.doc EvenMore.readme MicroSlick.readme Env/ EvenMore.config Icons/ EvenMoreMWB.info Libs/ ReqTools.library Nostalgia/ EvenMore01.lha This archive can be distributed by commercial companies, as long as the following rules are applied. Permission to distribute this archive in any from requires express permission of its author. If the program is distributed on any magazine or CD or disk, I demand that a free copy of that particular magazine, CD or disk be posted to me as soon as it is published or released. This archive may be distributed by public domain libraries, as long as no profit is made on the program, and the price is no higher than the cost of a disk and copying. This archive may be freely distributed by Aminet CDs or Fred Fish CDs and disks and by Aminet BBS. It is forbidden from be distributed by pirate BBS, disks, CDs, FTP sites, homepages, DCC or any other form, even although it is freeware. If you do want the program, come and ask me, not the pirates! The reason being I do not wish lame pirates to gain even more business because of all the work I have put into creating this. Spread the word, not the disk! ======== REQUIRES ======== o Kickstart 37+ (That rules PCs out then :) o ReqTools.library 37+ (That rules PCs out then :) o A flippin' big harddrive. You need at least 14k of free drive space. That's pretty big for an Amstrad program. You'll just about fit that on a cassette (That rules PCs that run Windoof out then :) o A screenmode bigger than 80*50 pixels (That rules PCs out then :) o A multitasking computer (That rules PCs out then :) o An Amiga (That rules PCs out then again :))) o Some kind of device for displaying on, err... like a monitor or television. o A power source o An intelligent input to run the program (That rules PCs out then :) (Well it won't run by itself!) o A text file to view o A CLI or Workbench running (That rules PCs out then :) o Some memory (That rules PCs that run Windoof out then :) o A keybord (Not the musical type) (That rules Playstations out then, or does it? :) ======== FEATURES ======== Latest features --------------- o More keys for moving about documents. o View menu to move about documents. o Reload menu item. o A few extra requestors. o Moved to ReqTools.library. o More information in about requestor. o More information to title bar. o Option to open window in the centre of the screen. o Option to open window on a different public screen. o Preferences file. o Search menu to search through documents. o A lot of optimisations. o Window now uses less memory and redraws faster. Previous features ----------------- o Tooltypes allow some sort of preferences. o Totally font sensative. o Code optimized a bit. o A few bugs fixed. ============ INTRODUCTION ============ The AmigaOS is a damn good operating system. Even the last OS before Commodore ran out of money (OS 3.0) can't be touched by Windoof and other operating systems. So why spoil it now? Commodore also brought in features such as Screen and Icon fonts, which could be proportional. And proportional fonts look so much more nicer. So that is why I decided to have a bash at designing a nice looking text viewer to complement Workbench. It hasn't much features now, but it will get better. Anyway. Before I didn't realize how much code was involved in just doing the simple things like opening a window with menus and printing text. In a basic language, there are commands available for just about anything under the sun. I could have written this program in Blitz Basic easily in a couple of lines, but the resultant code would have turned out twice as large. What makes it worse is I am just learning a new language, and I haven't encountered all this operating system code before. I need a book (Or similar) that would show me common routines of doing things in the Amiga's operating system using AmigaE, no C here, as I don't know the syntax. ============ INSTALLATION ============ Simply copy 'libs/reqtools.library' to 'Libs:' if you haven't already got it, or haven't got a version later than 37. Then copy 'EvenMore' and 'EvenMore.info' to somewhere on your command line, like 'C:', then copy and edit the file 'env/evenmore.config' to 'ENVARC:' and 'ENV:' and thats it! ===== Usage ===== EvenMore takes 2 arguments when running from CLI, but still only one when running from Workbench (Which is the file to be displayed). o You can specify a path and a file for the first argument. o The second argument is optional and allows you to specify a configuration file. This means that you can have a seperate configuration for each program you run EvenMore from, one to open on Workbench, and another for DOpus that would open the window on the DOpus screen. If no configuration file is selected, then the default is 'ENV:EvenMore.config'. It is important to note that if you are specifying a configuration file and no text file, then you must put 'PREFS=' to make sure EvenMore knows you are not specifying a text file to view. If you do not specify a path or file, a requestor will pop up allowing you to do so. Once you have selected the file you wish to view, a window will open displaying the contents. The EvenMore window will open on the default public screen which would be Workbench or the DOpus screen (Hopefully not DOpus :). You can of course, specify another screen for the window to open on as long is it is made public! e.g. EvenMore S:User-startup PREFS=Env:EvenMore.DOpusconfig There are also several tooltypes for setting your preferences when running the program from workbench. These are: WINDOWXPOS=0 (The top left hand position of the window on the screen in pixels on the X axis) WINDOWYPOS=14 (The top left hand position of the window on the screen in pixels on the Y axis) WINDOWWIDTH=640 (The width of the window in pixels) WINDOWHEIGHT=256 (The height of the window in pixels) CENTREWINDOW=[YES/NO] (Open window in the exact centre of the screen) PUBSCREEN=DOPUS.1 (The public screen to open the window on) If the screen positions and sizes are commented out or are not there or if there is no preferences file, the defaults will be used which are 640*256 positioned top left hand side of the screen and using the default public screen. If the centring option is enabled, then the window position values will be overrided. Try to never specify stupid window dimensions. If you specify a size larger than the screen, workbench will try to squeeze it in to whatever space it can get. The same goes for coordinates. If you are stupid enough to try a minus sized window or too small a size, then EvenMore will resize itself to the smallest size that doesn't corrupt the window gadgetry. In EvenMore this is 80*50. (For no particular reason). Users of graphics cards with virtual Workbench screens should not make the window larger than the visible part of the screen, as this will surely end up in a guru (Or so i'm told). Also users of graphics cards should keep and eye on that centring option as it might also guru on certain cirmustances on a virtual workbench. If you specify a public screen to open the window up on that does not exist, you can be sure the window will open on the default public screen such as Workbench or DOpus (Hopefully not DOpus :). If a public screen still can't be found, well what are you running? Linux?!?!? If the public screen entry is commented out, then the default public screen will be used. Here is an explanation of the preferences file. If there is a preference file 'ENV:evenmore.config', the above tooltypes will be overrided. Here is what the preferences file looks like. --- cut along here 8< --------------------------------------------------------- The format of this file is half critical! Well, sort of. Basically values must come before the preset name. No other text is allowed to be before the equals sign other than the value and make sure you only have 1 equals sign in a line! 50=WINDOWXPOS (E.g. I can type here and it is ok... Honest!) 50=WINDOWYPOS 640=WINDOWWIDTH (No typing on either side of the '=' or before the value) 256=WINDOWHEIGHT TRUE=CENTREWINDOW DOPUS.1=PUBLICSCREEN ------------------------------------------------------- cut along here 8< ----- The first line shows a warning not to change the format of the file. It is critical for EvenMore to read the file that it remains in the format as described. Although the preset order may be changed, for example, I could have the public screen at the top and it would still be read. If you don't want EvenMore to open on a different public screen, you can either change the public screen name to something that doesn't exist and EvenMore will open on Workbench, or type in 'Workbench' (minus the quote-marks) which is the public screen name of the Workbench Screen. Here is an explanation of the menu items. _______________________________________________________ [Project] View Search | ŻŻŻŻŻŻTŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ | Load file... | | Reload file | | About... | |--------------| | Quit | `--------------' Load file: Allows you to select an ascii file from a requestor to display Reload file: Enables you to quickly reload the currently displayed file incase its contents have changed. The line number you were at in the file (which is counted as the top-most line in the window) will not be changed unless the file is shorter than that line number, in which case, EvenMore will view from the end of the file. About: Display information about the program Quit: Exit the program _______________________________________________________ Project [View] Search ŻŻŻŻŻŻŻŻŻ| ŻŻŻŻŻŻŻŻŻŻŻTŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ | Go to line... | |----------------| | Top of file| | | Page up | |----------------| | Page down | | Bottom of file | `----------------' Go to line: Move directly to a line in the current document. Note that this number will be taken as the top line of the window. So if I entered 4, EvenMore will display lines 4-?. Top of file: Move to the top of the file. Page up: Move up one height of the window. Page down: Move down one height of the window. Bottom of file: Move to the bottom of the file. _______________________________________________________ Project View [Search] ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ| ŻŻŻŻŻŻŻŻŻŻTŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ | Find string... | | Find next | | Find previous | |-----------------| | Occurance... | `-----------------' It is important to understand how EvenMore searches ATM. Forwards search: EvenMore will start from the second line from the top of the document searching for a single occurance of a word. When it finds one, it will be immediately reported and the viewer will move to the word so that it is at the top of the viewer. Backwards search: EvenMore will start from the line above the top of the viewer from the top of the viewer window searching for a single occurance of a word. When it finds one, it will be immediately reported and the viewer will move to the word so that it is at the top of the viewer. Sensitivity: EvenMore uses case-sensitive searches and case-insensitive searches but only case-sensitive searches work at the moment , due to technical difficulties beyond my control. Whole words: EvenMore will not search for whole words, due to technical difficulties beyond my control. One line search: EvenMore does not search through an entire line for a word, after it comes across one. On the next search it will not start from the last word it left off at, but starts at a new line. If EvenMore is somehow unable to unable to view the line that it found the word at as the top line (Due to scrolling restrictions, for instance, if EvenMore is at the bottom of a file, and unable to scroll beyond the bottom) then the line number and the word searched for will be reported in a requester. If EvenMore is unable to view the line in question, a search continued after this, will not start from the second line in the window, etc, but from where the last search finished off. If EvenMore is unable to find the word if it doesn't exist in the document, or the end (Or beginning) of the file has been reached, a requester will pop up letting you know. ------------------------------------------------------------------------------- Find word: This will bring up a string requester allowing you to enter a string to search for in the document. From this you will be able to do backwards and forawrds searches. Find next: This will move you to the next occurance of the string according to the settings of your last search. If a string has not been entered yet, then a requester will pop up allowing you to do so. Find previous: This will move you to the previous occurance of the string according to the settings of your last search. If a string has not been entered yet, then a requester will pop up allowing you to do so. Occurance: This will bring up a requester allowing you to enter a string to search for the number of occurances of that string in the entire document. There are several keys for moving about the document displayed in EvenMore's window. UP CURSOR KEY (Scroll text up one line) DOWN CURSOR KEY (Scroll text down one line) SHIFT + UP CURSOR KEY (Scroll text up one page) SHIFT + DOWN CURSOR KEY (Scroll text down one page) CTRL + UP CURSOR KEY (Move to top of file) CTRL + DOWN CURSOR KEY (Move to bottom of file) ======= HISTORY ======= --------------------------- 0.3beta2 - - - - - - - - - - - - - - o Fixed silly mistake. Changed drawmode back from Jam2 to Jam1. I don't know how many times I have done this. :) o More keys for moving about documents. o View menu to move about documents. o Added extra requestors. o Added reload menu item. o Added more information in about requestor. o Added more information in the title bar. o Now uses ReqTools library. o Added centring window option. o Added preferences file. o Search menu to search through documents. o Made a whole lot of optimisations. o Removed GIMMEZEROZERO flag, so now the window updates faster and uses less memory. --------------------------- 0.3beta1 - - - - - - - - - - - - - - o Added tooltypes (Window size positions) o A few improvements here and there.... here, there, everywhere a few improvements! o Fixed some silly bug. If started from the CLI, the files wouldn't load up from the requestor... Thanx to Johan Björnson for reporting it. Still don't know who the culprit was that made the bug :?/. --------------------------- Pre 0.3beta1 - - - - - - - - - - - - - - o Can't remember what they were like. Probably awful! ==== BUGS ==== o I'm not entirely satisfied I have every window dimension looked after properly, after changing to a non-GIMMEZEROZERO window. If you see any lines get trashed, let me know! Also, the text is written over the right window border because of the non-GIMMEZEROZERO window, so I suppose this may eventually be fixed once I do linewrapping. But until then you'll have to stick it! o The case-insensitive searches don't work... ======= CAVEATS ======= ------------------------------------------------------------------------------ Warning! Warning! Warning! Warning! Warning! Warning! Warning! Warning! ·············································································· This is a warning on the scale of 'Mi˘ro$£utt warning!' so hear this! ------------------------------------------------------------------------------ o This software may or may not function properly on your computer. I know that many users may have different specifications of Amigas. Therefore this software comes under the heading of "WORKS OK AT MY PLACE". I cannot garan.. be certain that this software will work with other setups. So just for the record... This software works on:- ------------------------ Amiga 1200 (OS3.0 - 2.5" 340Mb HD compressed ) (Viper 2 accelerator / 28Mhz 030 - 33Mhz FPU - 16Mb Fast) This software may fail to work on:- ----------------------------------- PCs of various makes My Amstrad Amigas that use graphics cards and virtual workbenches. As long as you are careful, nothing should go wrong. ------------------------------------------------------------------ IF ANYTHING WIERD HAPPENS, OR ANYTHING AMISS, LET ME KNOW ABOUT IT (Not like, your nextdoor neighbours cat was eaten by your best mates dog) ------------------------------------------------------------------------- ==== TIPS ==== o If like me and you are never settled with your workbench settings and you want the window to open just below the titlebar then comment out the 'WINDOWYPOS' tooltype. This will make the window always open below the titlebar nomatter what your current screenfont is. Or just use the nice centre window option instead, or any combination of these. :) o A nice Screen font such as XHelvetica 11 looks nice. :) ====== FUTURE ====== EvenMore is pretty scary at the minute. Soon though, once I get the main features plugged, I will have time to think about putting in the diddly bits. That is, if I find out how to do the diddly bits! So these are just considerations, I have not actually thought about how I am going to do any of this stuff. o More compact optimised code. o Line/Word wrapping. o Faster scrolling. Maybe some way of only scrolling 2 or even 1 bitplanes. o ASCII codes such as TAB and CR will be sensed and acted upon. o ESC sequences or ANSI codes sensed such as BOLD, etc. (Some sort of text parser will need to be written) o Better searching, with hi-lighted words instead of requesters. o Whole-word searches. o Printing options. In the far distant future. o Maybe my own file loading routine. The current one that came with AmigaE is creating a lot of problems. Here are the features I have considered, but not putting in, at least, at this point in time. o Opens on its own screen. What's the point? I mean, you will have Workbench running, won't you? And I haven't a clue about most coding practices just yet, and opening the window on its own screen would involve too much work in setting up preferences for that screen, etc, and it is just a waste of time writing tonnes of code just to cater for everyones preferences. ====== AUTHOR ====== This program is... ________________________________________________________________________________ :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: e! Email ware! Email ware! Email ware! Email ware! Email ware! Email ware! Email :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ If you decide it is slightly useful, or just a load of crap, or even shows some potenetial, please email me. If you have any suggestions or would just like to say that there is a 6-pack of Pepsi on its way to me then again, please email me. :) You will of course be sent EvenMore by email every time (or there abouts :) a new version comes out on aminet or if I decide one day that I would like to see what the reponse is or test it before uploading to aminet, and if you want the latest latest version any time, just send me an email with the subject 'SEND EVENMORE LATEST LATEST' and in the body specify what version you have if any so I know not to send the same one you have. Of course I cannot guarantee these latest latest versions will work very well as I will still be working on them as you send the emails, in fact some might not even work but i'll send you them anyway, but you can request a not latest latest verion (Or the last working aminet upload) by sending a mail with the subject 'SEND EVENMORE THAT WORKS!' and in the body specify what version you have if any so I know not to send the same one you have. ______________________________________________________________ [O|##Contacting#cHRISPi####################################|D|B] |ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ| | Postal address: \ \_| / | | Chris Perver, / \ | | 12, Orchardville Avenue, | 0 ^ | | | Bangor, (__u__) | | Co. Down, |_|_| _____ | | N. Ireland, _||_ \ /__ | | BT19 1LP. / \ \ / | | || // /| \/\/ | | ______________________ ww ww _// | | Internet:[chris@planb.thegap.com] ( ( )_/ | | ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ \\ \\ | | ______________________ // // | | IRC:[cHRISPi on #amigacafe ] | | ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ | | _________________________________________________ | | URL:[http://www.geocities.com/siliconvalley/park/6763/] | | ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ | | __________________ | | [ Send mail | Quit ] | | ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ | |_____________________________________________________________ | [############################################################|/] ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ ==== HELP ==== If any of you lot want to help in the distribution files, go ahead and email me. You could design a few NewIcons, MagicWB icons, Iconographics icons, or anything. If you have any suggestions or contributions for the distribution files, again email me. :) Programmers! Please aid me. If anyone has Enforcer or similar, please check that this program returns all allocated memory, etc etc. Maybe some tutorials or example sources of Workbench E stuff, loading files, parsing, raster tips, etc. would be handy. Maybe recent AmigaE modules of useful things like ReqTools, etc. would be well appreciated. ========================================= THANX 'N' GREETZ (In no particular order) ========================================= Thanks to my mum and dad for buying me those RKRM manuals. I didn't know they would be so useful so quickly. I thought i'd at least have to learn C before they would be of any use. Thanx to Nico François and Magnus Holmgren for the excellent ReqTools library. Only fools don't use ReqTools! Thanx to Dietmar Eilert for GoldEd, it's been plenty of help to me. Thanx to Wouter van Oortmerssen for AmigaE, it's an amazing language. Thanx to Johan Björnson for his contributions and suggestions for this archive. Thankyou to all my mates in #amiga who helped by answering my questions I put to them (Hehehe they did?). Especially Alfo/Alfogator who helped me a lot with methods on how to work around problems with scrolling, etc... ...and Kinetik (You can but try :)... ...and Baikonur who helped support me when I was down... Thanx to all who even attempted to help me, or cheered me up...