MemoPad and CheckMemo are products which may be freely distributed on the condition that they are not altered in any way, either by omission or addition to the contents of the ARC file. The present ARC file for the V1.1 release of MemoPad is exactly 80536 bytes in length. The author welcomes comments, suggestions for improvement, and any praise you may have for this product. He may be reached at the following address: Michael Griebling COMPUTER INSPIRATIONS 150 Clark Blvd., Suite One Brampton, ON, Canada, L6T 4Y8 (416) 792-6797 In order to reward anyone wishing to be registered for a nominal fee of $20, a disk containing the complete Modula-2 source for these programs will be sent out along with a brochure giving details of upcoming products. Installing MemoPad & CheckMemo ============================== I assume that if you are reading this that you have already de-ARCed the MemoPad files. There should be a total of 7 files for this program set. As soon as you invoked this program, all the names were auto-magically expanded out, so you won't have to go through the usual hassle of EXECUTING the Execute.Me file that is usual in these cases. Why doesn't someone get around to providing an ARC utility which will automatically do this if it encounters a longer name? The CheckMemo utility will check whether any memo items have been entered for today's date. So, in order to do this automatically when the AMIGA is powered on, a `CheckMemo' command should be placed in your S:Startup-Sequence file, right after any additions or prompts which normally set the date. Next, place the CheckMemo and CheckMemo.info files in your C: directory or on one of the paths that you add to the command search list. That's all there is to the installation -- easy wasn't it. Note: you can also manually check the memo items simply by typing `CheckMemo' from CLI or by clicking on the CheckMemo icon. The latter operation may be tricky if both CheckMemo and CheckMemo.info are placed in the C: directory, unless you keep another copy at the top-level of the WorkBench disk or along with the MemoPad. If nothing happens except a disk access when you invoke CheckMemo, don't worry -- it just means that no memo items were found for today's date. The MemoPad utility, which creates the memo items read by CheckMemo, may be placed on any convenient working disk which would ordinarily be used during your work/play/recreation time with the AMIGA. Simply drag the icon over to your working disk, or from CLI, copy over both MemoPad and MemoPad.info to the working disk. MemoPad Operation ================= MemoPad is a WorkBench utility which runs in a separate window on the WorkBench screen. It is capable of allowing you to generate memo items which are simply dated reminders of appointments, birthdays, holidays, or any message which can be held on five lines of text. When MemoPad is first invoked, it searches the S: device directory for a file called MEMOPAD.DAT. This file contains all the memo items which have been entered by yourself. Naturally, the first time it is invoked, MemoPad won't find this file and will attempt to create one. At this time, you may get a message indicating that the WorkBench disk is required or that you should unprotect the write tab. During start-up, one other file is accessed : MEMOPAD.CUS. This file contains user customization information which allows you to customize the MemoPad operation to your individual preferences via the CUSTOMIZE menu selection in MemoPad. If this file is not found, MemoPad makes some assumptions and gives you a 24-hour clock, a day-month-year date, and a plain MemoPad title. Naturally, you can customize all these parameters and the next time MemoPad is invoked, all your selections will be used. By the way, the same selections will also be used by CheckMemo. I felt that everyone would have WorkBench in their drive during startup, so this is where MemoPad normally assumes it will find your memo items. If you don't like these files on your WorkBench disk, then it is possible to reassign the S: device to some other disk. If you do this in the Startup-Sequence file, just before invoking CheckMemo, you will be prompted to insert whatever disk was assigned to the S: device. Other Nifty Things ================== MemoPad lets you specify repeated memo items which occur fairly regularly on a daily, weekly, monthly, or annual basis for a fixed length of time. To generate such a memo item, first you'll have to enable repeats by selecting one of the repeat choices in the REPEAT MEMO menu list. By default, repeats will be disabled as is shown by the checkmark in front of the "No Repeat" menu item. Choose one of the repeat options and use the NEXT or PREV buttons to get to the memo you wish to have repeated. Click on the DATE button, and use the Date Window controls to get to the starting date to be repeated. Click on the desired date. All repeated dates will now also be selected. Use the Date Window controls to check them if you don't believe it could be that easy. Click on the OK button to close the Date Window and accept the chosen date; otherwise, just click on the QUIT button to keep whatever date was originally on your memo item. The FIND button and the related menu item will let you find one memo out of the list of memo items which you have defined. Click on this button, use the Date Window controls to maneuver to the desired date, and click on the date to be found. Click on the OK button and the first memo item with this date will be located and displayed. This date search may be cancelled by clicking on the QUIT button. If the date is not found, a message saying this will be displayed in the Help Window. A trick, which may be used to find any memo item in a given month might be to select the daily repeat for a month before clicking on the Date button. Any date which is selected will now cause a search throughout the entire repeat range for any matching memo item dates. The Help Window is a context sensitive help feature which displays help messages as various buttons and/or menu selections are made. There is never any need to worry whether or not all your memo items have been saved to disk! MemoPad will automatically update the disk file, as soon as it notices that some memo item has been changed. Even if some other program should cause the AMIGA to crash in a shower of fireworks, you'll be secure in the knowledge that your memo items are safe. About the Modula-2 Source ========================= Probably the first question anyone (especially `C' hackers) would ask is: Why use Modula-2? As a company, Computer Inspirations has a vested interest in the success of its products. Part of the measure of a successful product is the ease with which any product can be updated to meet new and anticipated needs of its users. We feel that Modula-2 provides such a vehicle through the use of modern software design principles such as object-oriented programming techniques and Dave Parnas' information hiding principles. In addition, Modula-2 provides a more readable source file which, with the addition of suitable comments, can give software maintenance personnel greater productivity. Of course, `C' die-hards would argue, and justifiably so, that `C' also provides commenting facilities and does not have to be cryptic. We would agree with this in principle; unfortunately, in practice, the same people who thrive on the so-called `concise' representation possible using `C' will also shun the use of good commenting techniques. In the final analysis, with the proper tools (compiler, debugger, etc.), Modula-2 code can be just as compact and fast as `C' code -- without the need for brain-damaging syntax. We, as a company, provide the source code for MemoPad and CheckMemo primarily to give interested individuals the tools for programming the Amiga using the Intuition-based interface. Included in the source are many examples of gadget-based control, menu initialization and use, window creation and manipulation, and requester window use. Although bits and pieces of what we do are available in separate sources, we feel that having an example which unites all the working principles required to produce a full program is beneficial in its own right. As a final note, this program does not show the full benefits of the new software design principles since that was not its purpose. We do use comments and structured design principles. This program fails to make full use of the information-hiding metho- dologies in some places -- but it is better than a comparable `C' program in this respect. Our primary aim, of course, was to produce a program from which others could see how to work within an Intuition-based environment; and in this respect, we feel that we have succeeded. Acknowledgements ================ As always, there are a bunch of people behind the scenes who must be thanked for their contributions, either direct or indirect, to a program such as this. Firstly, thanks to TDI for their Modula-2 compiler, which may not be fastest or the best, but it certainly was the first. Secondly, thanks to all the people who have contributed public-domain programs to demonstrate Modula-2 concepts and give others source code examples upon which to build. In particular, thanks to Richie Bielak for his FastTextIO routines, used in this previewer. We also appreciate the artistic talents of Anna-Lise Scheel, Colour Consultant, for her work on MemoPad. Thanks also to all the Beta test sites (you know who you are) for their assistance and helpful comments. Thanks also to the people who brought us PowerWindows which was used as a starting point for the design of windows, gadgets, menus, and requesters used in both MemoPad and CheckMemo. Although, the Modula-2 extensions to this program are VERY buggy and have been given inadequate thought, the tool has been useful. Finally, thanks to the makers of the Amiga -- without whom none of this would have been possible. Bug Fixes ========= Much as we hate to admit it, a few bugs crept into the V1.0 release of MemoPad and CheckMemo. Thanks to the people who pointed out the bugs (people tend to do that). All known bugs as listed below have been exterminated : Bug 1.0-1 The programs stomped over memory location 00000000 while starting up and initializing the Date window. Although this bug didn't usually cause the programs to crash, sometimes, if another program depended on something in memory location 00000000, a crash could occur. As a matter of fact, if both MemoPad and CheckMemo were running together (yes, they can do that too), closing down one would cause the other one to crash the Amiga. In our defense, the bug was traced to a pointer to a pointer which the current V3.0a TDI Modula-2 compiler doesn't seem to handle very well. PowerWindows forced us to use the awkward pointer to a pointer syntax (they must be `C' programmers!), hence our memory stomping. Bug 1.0-2 To our shock, we discovered that the DOS date was in error by one day (at least during this leap year). It worked fine last year. ;-) A new algorithm is now being used. About Computer Inspirations =========================== Although COMPUTER INSPIRATIONS is fairly new to the AMIGA and other personal computers, we have gained considerable experience in software and hardware development from work in the aerospace industry and from a university environment. We are committed to bringing quality products to AMIGA owners at affordable prices. We will make certain that all our products reflect this attention to detail and we will respond promptly to any customer problems or concerns. Michael Griebling, President, COMPUTER INSPIRATIONS