PERSONAL INFORMATION MANAGER (PIM) PIM48 (version 1.0) for the HP48SX by GLENN P. ROBERTSON (CIS 73117,675) USER DOCUMENTATION Mon, 1 February 1993 INTRODUCTION PIM48 is a calendar based personal information manager designed to provide a user friendly environment to manage appointments and todos. The display of PIM48 consists of an analog/digital clock with today's date and a monthly calendar which highlights scheduled appointments and todos. Appointment and todos can be displayed for a SPECIFIC date, for ALL dates, or for user SPECIFIED TEXT (search function). Features, include the ability to add, copy, delete, edit, and convert both appointments and todos. In addition to the built-in functions of PIM48, access from within the program is provided to the user's favorite database program. ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ PROGRAMMING NOTE ³ ³ PIM48 has been set up to work with RLDX, by ³ ³ James Weisbin. RLDX is an excellent data ³ ³ management program which provides superior rolodex ³ ³ type features for data storage/retrieval. As of ³ ³ this writing, RLDX42 has been released. ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ SHAREWARE PIM48 is distributed as shareware. Use of this software is limited to a 30 day trial period. There are no known limitations to the software (it is not crippleware). Many hours were spent designing, developing, and testing the program and users are requested to respect the work of the author and register their copy. Detailed information on registration and price are found at the end of this documentation. DEFINITIONS For the purposes of this program, appointments and todos are defined as follows: Appointments - scheduled events which occur on fixed dates and at specific times. Todos - tasks associated with specific dates but not with specific times. INSTALLATION PIM48.ZIP contains two files. PIM48.DOC (this file) and PIM48 (the PIM48 directory in binary format). Download PIM48 to your HP48SX as a binary file. STO the variable on the stack as PIM48. You should now have a new directory called PIM48. Enter the PIM48 directory and RCL the variable "Rldx" to the stack (this variable is case sensitive). This variable provides the path and name of your favorite external database. Edit the variable indicating the location of your database program and STO as "Rldx". Example: << PATH { HOME RLDX42 ROLDX } EVAL EVAL } >> ÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄ ³ Edit this as required ÄÙ To further enhance the accessibility of PIM48, the following key assignment is recommended: << PATH {HOME PIM48 PIM48 } EVAL EVAL 1 MENU >> ÄÂ ÄÄÄÄÄÄÂÄÄÄÄÄÄÄ ÄÄÂÄ ³ ³ ÀÄ CST menu display ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ path to PIM48 ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ return path Note: The above key assignment assumes your PIM48 directory is a subdirectory of the HOME directory. Assign the above to key 34.4 using the ASN function (Right SHIFT MODES, asn) PIM48 will now be accessible at anytime by pressing ALPHA "P" while in the "user" mode. APPOINTMENT/TODO ACCESS Appointments are maintained in a variable (list) named "Alarms" located in the "Hidden" directory. Appointments can be controlled either through PIM48 or by using HP48's normal time/alarm functions. Todos are maintained in a variable (list) named "ToDoList" also located in the "Hidden" directory. Todos can only be controlled through PIM48. UTILITY PROGRAMS Utility programs are included with PIM48 to allow appointments and todos to be recalled to the stack, or conversely, to be moved from the stack to the respective variable. In addition, a PURGE function is provided which safely removes all entries in the "Alarms" or "ToDoList" variable. For a more detailed discussion of the utility programs, refer to the section entitled UTILITY PROGRAMS DETAILED DESCRIPTION. DISCLAIMER PIM48 has been thoroughly tested on a HP48SX version "E" machine. It has no known bugs, however, normal caution is required. BACK UP YOUR HP48 BEFORE USING PIM48. The author is not responsible for any loss of data (or missed appointments or todos) from the use of this software. GENERAL DESCRIPTION PIM48 provides three separate screens: an initial screen; and two secondary screens. Initial Screen The initial screen displays the current month's calendar and an analog/digital clock with today's day and date clearly indicated. The current date is highlighted on the calendar in inverse video (current date cursor). A digital read out in the top right hand corner of the calendar shows the days past/days to go in the current year. A digital read out in the lower right hand corner of the calendar shows the number of days (+/-) from today's date. Scheduled appointments or todos are indicated by inverse blocks beside the appropriate day of the month. The upper block indicates appointments, the lower block indicates todos. Users have full control over the calendar display. The arrow keys move the CURRENT DAY CURSOR, the "plus/minus" and the "multiplication/division" keys increment/decrement the calendar a month or a year at a time, and the "+/-" key "jumps" a given number of day (plus or minus) from today's date. Soft key control allows the user to "FIND" any appointments or todos that contain a specified text string; "GOTO" any date; display appointments ("APPT") or todos ("TODO") for a given date; access an external database ("RLDX"); or "QUIT" the program. For a complete summary of key usage in the initial screen refer to the section entitled KEY CONTROL, INITIAL SCREEN. Secondary Screens The two secondary screens manage appointments and todos. These screens provide the ability to add, convert, copy, delete, and edit either a PARTICULAR DAY's, SELECTED, or ALL appointments or todos. Secondary screens are accessed from the initial screen by either pressing the appropriate soft key (APPT/TODO) when it is selected (boxed) or by pressing the ENTER key. FLAGS The following SYSTEM flags control the way dates and times are displayed and alarms are controlled: 41 - SET 24 hour clock format CLR 12 hour clock format 42 - SET European date format (dd/mm/yy) CLR US date format (mm/dd/yy 43 - SET Repeat alarms ARE NOT rescheduled CLR Repeat alarms ARE rescheduled 44 - SET Acknowledged alarms ARE saved CLR Acknowledged alarms ARE NOT saved 57 - SET Alarm BEEP enabled CLR Alarm BEEP suppressed ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ PROGRAMMING NOTES ³ ³ ³ ³ 1. No provision is currently made for repeat alarms from ³ ³ within PIM48. ³ ³ 2. In the day to day use of PIM48, it is envisioned that ³ ³ USER flag 44 would normally be SET. This allows the ³ ³ Alarms list to function as a historical record of ³ ³ past due alarms and completed todos (when they are ³ ³ moved to the alarms catalog). ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ The following USER flags are used within PIM48 for control. 1 - SET Allows access to Alarms catalog 2 - SET Allows access to ToDoList catalog 3 - SET Displays ALL Alarms/ToDos depending on status of user flag 1 or 2. 4 - SET Displays only SELECTED Alarms/ToDos depending on status of user flags 1 or 2. ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ PROGRAMMING NOTE ³ ³ ³ ³ USER flags are saved prior to entering PIM48 and restored ³ ³ when the program is exited. Setting or clearing USER ³ ³ flags 1-4 before entering PIM48 has no effect on the ³ ³ program function. ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ CLOCK DISPLAY REFRESH The analog/digital clock display does not automatically refresh itself. It is updated only when a key press occurs. This feature prevents battery drain when the HP48 is in the "ON but NOT USED" mode. KEY CONTROL Both "soft" and "hard" keys have been assigned to allow the user as much control as possible. Key assignments are discussed as they relate to both the initial screen and the secondary screens. Note: Soft key assignments are referred to as key assignments made to keys in the top row (white keys). Hard key assignments are referred to as key assignments to keys other than those in the top row (white keys). KEY ASSIGNMENTS - INITIAL SCREEN SOFT KEYS Prompts for the input of a SEARCH STRING. The default search string is the last one entered. When a search string is entered, a search is made of the selected list (appointment/todo) and entries that match (case sensitive) are displayed. Note: (1) When selected entries are displayed for a particular list, pressing will alternately display the selected text for the "other" list; and (2) When selected entries are displayed, pressing "EEX" will again prompt for a new SEARCH STRING. Prompts for a date to display a calendar for. The default date is today's date. The input is based on system flag 42. If set, the input MUST be in the format DD.MMYYYY. If CLR, the input MUST be in the format MM.DDYYYY. Pressing the ATTN key will erase incorrectly entered data or will return to the current month's calendar if no data is present on the input line. If pressed when a box is displayed beside it, appointments for the current date will be displayed. If a box is not displayed beside it, a box is toggled ON and APPT become active. Note: (1) When APPT is active, pressing NXT/PREV will cause the calendar cursor to move to the date for the next/previous appointment. (2) When APPT is active, pressing ENTER will display the appointments for the current date. If pressed when a box is displayed beside it, todos for the current date will be displayed. If a box is not displayed beside it, a box is toggled ON and TODO becomes active. Note: (1) When TODO is active, pressing NXT/PREV will cause the calendar cursor to move to the date for the next/previous todo. (2) When TODO is active, pressing ENTER will display the todos for the current date. Provides access to an external (user provided) program. This capability allows the user to have access to an external database from within PIM48. For this function to work correctly, the variable "Rldx" must be present in the current directory and it must either contain the appropriate variable or provide a path (with a return) to that variable. The following is an example of the information required: << PATH { HOME RLDX42 ROLDX } EVAL EVAL >> Quits the program. HARD KEYS Allows the calendar cursor to be moved. The right/left arrow keys increment/decrement the calendar date, one day at a time. The up/down arrow keys increment/decrement the calendar seven days at a time. When the cursor moves beyond the bounds of the current calendar, the next/previous calendar is automatically displayed. Moves the calendar cursor to the next date that an appointment or a todo is set and updates the calendar appropriately. This function is dependant on whether appointment or todos are active as indicated by the box displayed beside APPT or TODO. Moves the calendar cursor to the previous date that an appointment or a todo is set and updates the calendar appropriately. This function is dependant on whether appointment or todos are active as indicated by the box displayed beside APPT or TODO. Displays the appointment or todos for a given date. This function is dependant on whether appointment or todos are active as indicated by the box displayed beside APPT or TODO. <+/-> Prompts for a positive or negative value to "jump" from the current day. Negative values are entered by pressing the "+/-" key after the "real" is ENTERed. Pressing ATTN either clears the value already entered or returns to the previously displayed calendar if the input line is already clear. Alternate key for FIND. Briefly displays authorship information. Decrements the calendar by one year. Increments the calendar by one year. Decrements the calendar by one month. Increments the calendar by one month. Exits program (same as ). Shuts off the display without exiting program. KEY ASSIGNMENTS - SECONDARY SCREENS ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ PROGRAMMING NOTES ³ ³ ³ ³ Appointments and todos can be displayed in one of three³ ³ ways: ³ ³ (1) those associated for a given day (press ³ ³ active APPT/TODO or ENTER; ³ ³ (2) SELECTED from a search string (press EEX; or ³ ³ (3) ALL appointment or todos (press "+/-" while ³ ³ in a secondary screen) ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ SOFT KEYS Prompts for a new appointment or a new todo to be added to the displayed list. In the case of a new appointment, the prompt is for both a time and a message. For a new todo, the prompt is for just the message. Pressing the ATTN key during the prompt will either clear the input line or abort the "add" if the input line is already clear. New todos are added after the arrow. New appointments are placed in sequence in the list depending on date/time. ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ PROGRAMMING NOTES ³ ³ ³ ³ The date is intentionally not prompted for. The date ³ ³ used is the current date (when only one day's ³ ³ appointments or todos are displayed) or the date ³ ³ pointed to by the cursor when ALL or SELECTED ³ ³ appointments/todos are displayed. ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ <->APP> Moves a todo from the todo list to the appointment list. The display automatically changes to the conversion date and display todos for that date. Note: When a todo is converted, they are time stamped with the current date and time. This feature makes the appointment list useful for keeping track of when todos were completed. <->TOD> Moves an appointment from the appointment list to the todo list. The display automatically changes to the conversion date and display todos for that date. Note: When an appointment is converted to a todo, it retains its date. Copies the current appointment or todo as indicated by the pointer to another date. The user is prompted for the date to be copied to. The display automatically changes to the conversion date and displays appointments or todos for that date. Deletes the current appointment or todo as indicated by the pointer. THE USER IS NOT PROMPTED. Prompts the user to edit the current appointment or current todo. In the case of an appointment, the user is prompted for the date, time, and message. For a todo, the user is prompted for just the date and the message. Pressing the ATTN key during the prompt clears the input line or aborts the "add" if the input line is already clear. If the date is changed during the "editing", the display automatically changes to the new date and displays appointments or todos for that date. Returns to the calendar display based on the date pointed to by the arrow. HARDKEYS Moves the pointer up or down. If the pointer is currently at the TOP of the list and the UP arrow is pressed, the pointer moves to the END of the list. If the pointer is at the END of the list and the DOWN arrow is pressed, the pointer moves to the top of the list. current display. If the pointer is already at the top/bottom, it moves to the top/bottom of the previous/next page. If the pointer is already at the top/bottom of the display, it will not move. list. Scrolls the display left or right. Holding down this key will continue the scroll until the limits of the display are reached. display. Moves to the next date that an appointment or a todo is due. Moves to the previous date that an appointment or a todo is due. Toggles the display. If appointments are currently displayed, the display switches to todos. If todos are currently displayed, the display switches to appointments. <+/-> Toggles the display from showing the current date's appointments/todos to showing ALL appointment/todos. If the display is already showing ALL appointments/todos, it switches to displaying just the current day's appointments/todos. Note: The current day's appointments/todos are taken from the date pointed at by the arrow. Prompts for the input of a text string to display appointments or todos for. Note: The search is case sensitive! Returns from displaying SELECTED appointments/todos to displaying appointments/todos just for the current date. Note: The current day's appointments/todos is taken from the date pointed at by the arrow. Return the program to the initial screen (same as EXIT). Shuts off display without exiting program. UTILITY PROGRAMS DETAILED DESCRIPTION The following utility programs are provided and are accessible while in the PIM48 directory with the customized menu (CST) activated: Recalls all appointments (alarms) to the stack as a list of lists. The format is suitable for loading into the appointment (alarm) catalog using APTv). Loads a list of appointments froom the stack into the alarm catalog. Recalls all todos to the stack as a list of lists. The format is suitable for loading back into the todo catalog using TODv. Loads a list of todos into the todo catalog. ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ PROGRAMMING NOTE ³ ³ ³ ³ (1) The format for the list of appointment/todos MUST be ³ ³ the same as that created by APT^ or TOD^. This format ³ ³ is required by the HP48SX and is specified on page 453 of ³ ³ the Owner's Manual. ³ ³ (2) CAUTION. DO NOT load appointments/todos from the stack³ ³ that are already in their respective catalog. Double ³ ³ entries will result. ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ PROGRAMMING NOTE ³ ³ ³ ³ The "list" created by APT^ and TOD^ can easily be transferred ³ ³ to a PC or MAC using the HP48SX built in KERMIT program or ³ ³ the popular XYMODEM. For KERMIT users, save the list to an ³ ³ appropriate variable and transferred using ASCII. For XYMODEM³ ³ users, convert the list into a string variable (PRG, OBJ, ³ ³ ->STR) before saving it. This will ensure the object is ³ ³ transferred in ASCII format rather than in a binary format. ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ This function completely deletes all entries in either the appointment catalog or the todo catalog. The name of the catalog to be deleted MUST be on the user stack as a string variable. NO OTHER PROMPTING IS PROVIDED. To delete ALL appointments: "Alarms" -> PURGE To delete ALL todos: "ToDoList" -> PURGE ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ PROGRAMMING NOTE ³ ³ ³ ³ In the case of ToDos, the PURGE feature completely removes ³ ³ the todo variable from the "Hidden" directory. This feature ³ ³ is provided to allow complete removal of PIM48 if users do not³ ³ find the program useful and do not wish to retain it beyond ³ ³ the 30 day trial period. ³ ³ ³ ³ In the case of Alarms, the PURGE feature only removes the ³ ³ entries from the alarm list. If uses have access to the ³ ³ "Hidden" directory, DO NOT DELETE THE "Alarms" variable - ³ ³ memory loss will result. ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ ACKNOWLEDGEMENTS I would like to thank James Weisbin and Lee Buck for their assistance in the development of this program. James for initially planting the seed in my head and for his continuing interest, and Lee for providing valuable comments on my first working model. I would also like to thank Detlef Mueller for his excellent sys-RPL compiler/decompiler program RPL22, and to Hewlett Packard for releasing information on sys-RPL programming. REGISTRATION To register your copy of PIM48, please send your name and address along with $15.00 US (check or money order) to: GLENN P. ROBERTSON 1954 Naskapi Drive Gloucester, Ontario CANADA K1J8K3 QUESTIONS/COMMENTS Question or comments can be sent to me via snailmail at the above address or via E-Mail. E-MAIL ADDRESS ON COMPUSERVE IS CIS@7311,675.