浜様様様様様様様様様様様様様様様様様様様様様様様様様� � Personal Calendar � � for IBM PCs and compatibles � � � � (c) Copyright 1985-1990, Paul Mu�oz-Colman. � � All rights reserved. � � � � Shareware $25. � 藩様様様様様様様様様様様様様様様様様様様様様様様様様� Version 14.10 WHAT'S NEW 31 Oct 1990 ------------------------------------------------------------------------------- ENHANCEMENTS & CORRECTIONS ------------------------------------------------------------------------------- . 14.10. I've provided several enhancements and corrections because of MicroHelp's new Stay-Res Plus version 4.00 and other efforts: . In TSR Mode, the portion of the program which remains in DOS memory (the TSR kernel) has been reduced by about half from 10,600 bytes to less than 6,000 bytes !! . Also in TSR Mode, the portion of the program which swaps to EMS or to each of the two disk swap files has been reduced about 20%, from about 280,000 bytes to about 230,000 bytes !! . On a pop down to an EGA or VGA screen, the screen restore no longer gives incorrect colors. . On a pop down, screen saves will now go to EMS memory only if that mode is also chosen for program swapping (and likewise for disk swapping). If not enough EMS memory is available for both, screen saves then go to disk. The disk screen save file is now written to the same path as the program swap files. . If popping up over a video mode which is not supported (greater than 19 decimal, therefore non-standard), you have the option to suppress the pop up to avoid disturbing the screen, or to pop up and thus restore a blank screen on pop down. . If the earliest event is in a future year and automatic pop up on date/time is set, the program now pops up at the correct date/time. . Printer support has been added for the HP IIP/III/IIID LaserJet and for the IBM 4019 LaserPrinters. In absence of printer selection, the default has been changed to not alter your printer's setup (which was already selectable as an option). Flushing the print file at completion has also been added to ensure compatibility with network printers. . When running a DOS command in TSR mode, the command may now be interrupted prior to completion by a pop up by hot key or date/time, and will pick up where it left off on the next pop down. . If the program hasn't yet popped down, it's no longer necessary to terminate and restart to switch between EMS and disk swapping modes. . A "snow" checking option has been added for CGA monitors, which can be set from the Memory-Resident options menu. . The name of the disk swap files have been changed to CALSWAP.000 & CALSWAP.001. . If you have specified a non-existent disk swap drive/path, it is now automatically be changed to PC's startup path. . 14.00. Personal Calendar is now Shareware $25. Source code is now available for an additional $25. PC is now packaged with PKWare's PKZIP version 1.10. . Personal Calendar is now compiled with Microsoft Professional BASIC 7.10 and linked with segmented-executable linker 5.10, making the program yet somewhat smaller and faster. . Special modifications were made in conjunction with JP Software to ensure greater compatibility with 4DOS release 3.01a. . An error has been corrected which used EMS memory for swapping if it was available even if requested not to. . 12.75. On the pop down screen, the number of the user's program video page being restored is now shown along with the BIOS mode. Additional video page pop up adjustments were made. . 12.74. If the program pops up over a user program which in text mode, but which is not on video page zero, Personal Calendar's screen (which uses page zero) is now restored correctly. (Examples of this are popping up over CodeView (CV) which uses video page one, or over QuickBASIC Extended (QBX) on a user page other than zero). (Note that the BC 7.10 version of CodeView futzes around with the hardware and can't be popped up over; that's Microsoft's fault!) . If the programs starts in a mode or on a page other than text mode and page zero, it is returned to that page and mode upon termination. . If the program pops up over a user program which is in 43-line (EGA) or 50-line (VGA) mode, screen save and restore now occurs correctly. . I finally found and excised the residual cursor that appears from time to time when the program pops up! . 12.73. If the program pops up over an EGA, VGA, or MCGA screen, the underlying screen will be saved to EMS memory, if it is available. If it is not, the same disk save method previously used to file CALSCRN.DAT is still used. . 12.71 and 72. A more reliable solution to the problem of unwanted popups is now provided. I've used a new version of Stay-Res which ignores DesqView's required *abuse* of the DOS "Change System Date" Interrupt, which programs that run under DesqView are required to use--this caused the unwanted popup! . If disk swapping is chosen to become memory-resident and insufficient space exists, the exact shortage in bytes is now given. . 12.70. I reduced the size of the program by 40% and made it still faster. The size of the 10K DOS program which remains when swapped in the TSR mode is not changed: . There are two new printer control options to limit the number of lines printed before ejecting a page, and to pause the printer between pages. . If the program is started when it is already memory-resident, it now pops up the active memory-resident copy automatically. . There is no longer an unwanted pop up when certain programs (TreeView and Word Perfect) are initialized. . I added a word left/right (ctrl-left/right) to input editing. I also added the "home" and "end" keys, which do the same as shift-tab and shift-return. . I took this list out of the help file and put it in a separate file. I took some data out of the program and put it into file CALINIT.DAT. . The program no longer aborts with an "out of string space" error if more than 255 events are overdue at once. (Were you extremely busy or gone a long time !?) . There is no longer a separate AT version (CALX86 is gone). . The error messages which occur are more informative. . 12.62. Adequate disk space for the disk swap files is now tested for and reserved properly before popping down the first time. . 12.60 to 62. PC is now compiled/bound by Microsoft PDS BASIC 7.00/ LINK 5.05. New options were used to make PC smaller and faster, and make an even smaller, faster separate version for AT-class machines. . 12.50 to 12.62. If old disk swap files exist in a different path from which PC is started, they are now released properly when PC restarts. . 12.60. PC no longer fails to pop down the first time AFTER using F6 or F7 (DOS SHELL) with the message "not enough memory to become memory-resident". An error with the MS QuickBASIC 4.50 SHELL function disappeared in BASIC 7.00. . 12.51. If automatic pop down is disabled because an event is overdue, you are informed of this during automatic startup. . You have the option to make PC ask you for the date and time, useful if your PC doesn't have a permanent battery-operated clock. . 12.49. Esc and F1 can now both be used to accept event data changes. . 12.45 to 48. Many cosmetic screen adjustments and corrections were made. . 12.45. PC is now available as a ZIP file (1.02) for BBS users. . The hourly chimes no longer sound twice on a day change. . Changing to Manual Startup no longer gives a FILE NOT FOUND error. . After a printer error, recovery prompts are correctly positioned. . There is no longer an unwanted automatic pop down after changing memory-resident options. . 12.44. In TSR mode, the control, shift, and alt keys can now be used without a function key to pop up. . 12.43. The system no longer hangs on program termination after a "not enough memory to become resident" condition occurs. . 12.42. In TSR mode, disk swapping is now attempted automatically if EMS memory is not available. . In TSR mode, PC can now be set to pop down automatically, after automatic startup is complete, giving hands-free intialization! . The system no longer hangs after two pop downs if all swapping is disabled. The TSR version of PC is no longer a �-Test product! 敖陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳� � Note to my loyal 12.12-12.41 �-testers! Now that the TSR version of � � PC has been released to general distribution, I would like to extend � � my appreciation to those of you who patiently tested and put up with � � the eight months of unavoidable trials to make this happen! And to � � those of you who kept hearing me say "not yet", thanks for waiting! :-) � 青陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳� . 12.41�. The number of lines of notes or history to insert or delete is set to zero prior to input (preventing inadvertent information loss). . 12.39�. CGA and Hercules pop ups now work properly. . 12.38�. In TSR mode, PC can now pop up over text, EGA and VGA graphics screen modes. Screen saving/restoring is automatic. . 12.37�. Shift-F10 allows pop down with automatic pop up disabled on a one-time basis (to avoid unwanted interruptions). . The initial attempt to pop down in a directory now forces you to review the TSR mode options, and then proceeds correctly. . 12.36�. PC will not pop up if DOS is busy. . 12.35�. PC (since 12.30�) no longer hangs if run under DOS 2.x. . 12.34�. The "insert" key is now sensed properly at the appropriate times. . 12.32�. The options menu for TSR mode was implemented. . 12.31�. PC can now pop down regardless of the lock/insert key states. . 12.30�. The appointment file is now permanently updated more often. . I used MicroHelp's Stay-Res Plus to make PC a TSR (at long last)! . 12.10 and 12.30�. I changed the startup color defaults again. . 12.10. I used MicroHelp's Mach 2 package to speed up the execution of the program, and to give me greater graphic capability. . There are now quarterly and yearly rescheduling options. . 11.88. From the main menu or from the clock screen, you can run a stored DOS command and come back to PC. The file CALDOS.DAT has been added to store the command. . 11.86 to 11.88. From the Main Menu or from the Clock Screen, you can run a stored DOS command/session and come back (uses new file CALDOS.DAT). . 11.86. From the main menu or from the clock screen, you can run a DOS session and come back to PC. The memory available for this session is variable, due to string management by QuickBASIC. . 11.81. References to the "enter" key now read "return" key. References to function keys now read "F" instead of "PF". . 11.80. The wording of the main menu has been simplified. . 11.79. When an event becomes overdue, it now blinks as well as appearing highlighted. . 11.77. The number of events and the number of history items now appear in the separator lines of the ASCII file or printed list. . 11.76. On the main menu, using/changing an existing Appointment File is now a separate menu pick from creating a new file. Help to a new user automatically picks create a new file upon exiting from Help. . 11.75. There is now the capability to change the event and note capacity in the Appointment File from 60 (now the default) down to 20 or up to 300, in multiples of 20. This appears on the Options menu. The size of the Appointment File is adjusted automatically. If you decrease the size of the file, events or notes at the end of the list are written to history during the decrease. . 11.72. There are now 7 color pairs instead of 4. I separated out events from instructions, menus from notes, and clock from calendars. I chose a new set of default colors. If you already have a CALFIG.DAT file, you have to delete it to see the new defaults completely. If you didn't delete the CALFIG.DAT file before you ran this version, you may have already seen changes to your previous color choices. ------------------------------------------------------------------------------- INTERNAL SOURCE CODING CHANGES (For you programmers) ------------------------------------------------------------------------------- . 14.10. With the major upgrade to Stay-Res Plus 4.00, the internal calling sequences of several Sr... routines have changed. See the comments in front of SUB StayResInitialization. All user program screen saves and restores are now under control of Stay-Res, rather than Mach 2 and QB/Pro 1-4. The calendar screen save/restore is still performed by Mach 2's MhWind. . The help and error file maintenance tools are no longer distributed. . 14.00. Screen adjustments were made for the Shareware version. Yet another special version of Stay-Res was obtained from MicroHelp to ensure compatibility with 4DOS for TSR unloads. Personal Calendar is now developed on my Northgate 486/25 under MS DOS 3.30! . 12.75. Minor adjustments were made to the DOS BIOS service calls for video. . 12.74. In order to solve the popup over non-page-zero problem, I had to put DOS video mode calls in to switch screen pages back to zero, and add another buffer to MhWind to save the user's page zero so that I can restore it (Stay-Res automatically saves and restores the active page). (I can't use the SCREEN statement, because the TSCNIONR.OBJ stub removes that feature.) Unfortunately, the second MhWind buffer increased the size of the program by 4K (one screen). In the process, I decided to add code to check the user's starting video mode and page, and restore them on termination (new SUBs SetVideoPage and SetVideoMode). I changed all the cursor and screen mode and page handling from BASIC statements to DOS calls to avoid problems associated with BASIC's not knowing about other modes. I also added code from MicroHelp's QB/Pro 7 (Optimizer) volume to support switching between 25-line and 43-line (EGA) or 50-line (VGA) modes, in order to save and restore the user screen correctly. . 12.73. I used MicroHelp's MhEgaMemSave and Restore routines from QB/Pro 1-4 as an alternative to MhEgaSave and Restore from Mach 2, if EMS memory is available to save and restore EGA/VGA screens on pop up/down. . 12.71 and 72. In 12.70, I devised a kludge in StayResPopDown to suppress showing an unwanted pop up, even though the pop up actually occurred. Thanks to Vern Buerg and Mark Novisoff, we finally nailed down the cause of the unwanted pop up: a DesqView-required *abuse* of the DOS INT 21 "Change Date" function to determine in a user program whether DesqView is running. Mark was kind enough to modify Stay-Res to bypass the atrocity; the unwanted pop up no longer happens at all! MicroHelp is great! . 12.70. (WHEW--a busy update!) . In order to drop 64K of memory from the TSR memory configuration, and 128K of disk space for the swap files, I used a new Stay-Res CALL in BC 7: SrAutoSetBlock, which replaces SrGetStack and SrSetBlock. The computations for memory preparation are done differently, and the program is smaller in TSR mode as a result. This does not affect non-TSR mode. The use of SrAutoSetBlock is commented in SUB StayResInitialization. If the program is already memory-resident, it is now popped up automatically, even if that requires creating a copy of CALPOPUP.COM in the current path if one doesn't exist. . In order to reduce the program size by another 48K, I eliminated the arrays MenuEvents and EventRecords, each 300 by 80 bytes. I adjusted all references to the event list to do I/O, accordingly. I changed MenuLines and many other variables to fixed length strings for speed. I had to add an EventWindow array to compensate for the disk I/O slowdown. I used MS' QuickSort routine for events to replace the one I had; is it ever FAST! AlarmTable#() and WarningTable#() are now Alarms().field in a TYPEd array, so that sort will swap both values simultaneously. . I combined SUBs ReadEvents and ResequenceEventTable and renamed them SequenceEventTable. I completely rewrote the logic to make it faster. Resorting is done ONLY if the list is out of order. There is now a .CLV file to hold the overdue event table, and a .CLS file to temporarily hold the sorted event list. . I dropped the program another 25K by eliminating all line numbers in favor of ON LOCAL ERROR. You now get the procedure name instead of the line number (added to CALERROR.DAT). The prior main program is now a SUB (MainSub). Stay-Res initialization was moved back to a SUB (a lot more is going to be moved out of MainSub into other SUBs to reduce MainSub's size). I moved all global and LOCAL error handling to CAL1. CAL2 through CAL6 take advantage of global's walking the stack back to CAL1 when an error occurs. /E and /X have been eliminated as compile options, except in CAL1, with only has /E (of course, all have /O). I added a safety switch to increase the size of the stack, in case recursion or attempts to quit improperly force the global error handler to keep pushing the old stack down. This is okay as long as DGROUP doesn't go too low! . I added many MicroHelp routines from QB/Pro 4 to make things faster yet. Substitutes are used for INSTR, LSET, MID$ statement, NAME, STRING$, and LPRINT. Additions are for the existence of files and directories. . I dropped the last 17K from the program by changing most small value numeric constants and many small constant strings to variables. It's a shame that BC 7 isn't an optimizing compiler to do this for you, but that's the programming environment. . 12.60 to 62. I migrated PC to PDS BASIC 7.00 effortlessly! I added LINK stubs NOCOM, NOEVENT, TSCNIONR, and option /F to reduce the size and increase the speed of the program. I added an AT Version using MicroHelp's QB/Pro 1-4. The new MicroHelp products are BC 7-compatible. I use CAL0 to check for AT. . 12.51. Only the peak value of the debug LoopCounter is now displayed. . 12.49. The source code was run through the QB environment to make the QuickBASIC keywords and variable name presentation appear consistent. . 12.45. The clock update routine has been completely rewritten. . SUB ShowIt now does automatic horizontal centering. . 12.42. The update of the running clock has been moved to a SUB. Stay-Res initialization code is now in the main program. . 12.39�. The program has increased to six source modules vice five. . 12.10 thru 12.38�. The program underwent a major restructuring to incorporate MicroHelp's Mach 2 and Stay-Res plus packages. Many new SUBs were added and a few were deleted. COMMON was restructured. All variables were made STATIC except the three which are too large for BASIC's fixed data area. The STACK size was increased to account for unexpected internal error returns from the MicroHelp products. Memory management was tailored to accommodate Stay-Res plus, which unfortunately increased the program in size too much. . 11.92. Personal Calendar is now compiled by Microsoft QuickBASIC 4.50, and linked by Microsoft Overlay Linker 3.69. . 11.86 to 11.91. New subprograms DoShell, DOSShell, ReadCalDOS, and WriteCalDOS support the F6/F7 keys. . 11.86. Personal Calendar is now compiled and linked in a WANG MS DOS 3.20.10 (Industry-Standard mode) environment, rather than under Zenith MS DOS 3.21 on a Wang PC in emulation mode. . 11.81. The subprograms EnterLine and EnterLineDelete are now ReturnLine and ReturnLineDelete. ReturnLine and ReturnLineDelete are now EscapeLine and EscapeLineDelete. . 11.80. The MenuDriver subprogram has been modified to do automatic horizontal screen centering. . 11.75. Arrays which relate to events are now declared DYNAMIC. . 11.73. SUB argument checking across coding modules is now enforced with explicit DECLARE statements in the CAL1.BI file. ----------------------------- END -----------------------------------