A small and comfortable HP49-alarm manager mode for people bored by the slow alarm setting in the HP49. Making alarm setting fast is one of two main concerns of Alarm. The second is that the command SetA can create alarms which repeate after 1, 2, or 3 years at precisely the same day and time, to remind on birthdays or other annual terms. There is also a nice cuckoo alarm included. All but the latter are also parts of the library Timeman.Alarms created with SetA are control alarms and hence affected by flag -56 (standard beep, not so in Timeman). The commands iteself are not affected by flags exept for Date&Time display. Alarm may be stored in any port. Tested under ROM 19-6 and Rom 19-7.
Alarm version 3.2003 replaces the library Alarm24 v. 1.2003. It is more comfortable and does not set flag -42 anymore.
The library Alarm has six commands as follows: SetA ->Nx CkA Cuco Aview Abox.
SetA launches a dialog box for alarm setting, see below. Assign it to a key, e.g., to LS-hold TIME (74.31), or integrate the menu in the builtin TIME box, easily realized with Appsman. You can change the number of alarm sounds by pressing ->Nx on a real or zint on the stack. The default is 7 times. The first you should do is testing this with CkA. It is no stored alarm, hence it displays "Nonexistent alarm". Alarms made with SetA run always with dark screen to save the batteries and to make the sound nicer. They also run if standard beep is disabled, but very fast and without any sound. Hence, pay attention to flag -56. You can also make your own alarm sound, see below. Important: There will be no alarm sound if flag -56 (standard beep) is set. The alarm will then run very fast and turns the calculator off.Cuco sets a cuckoo alarm at desired hours to remind on dinner time, say. Just put a list of reals or zints in the stack which correspond to the desired hours and press Cuco. Then the cuckoo calls first time at the hour which is the head of your list. For instance, with the list { 8 12 18 } the the cuckoo calls daily at 8 am, at 12 pm and at 6 pm only. If this alarm is set after 8 am, the cucko starts calling only at 8 am the next day. If set before 12 pm and you want listen to it already the same day, choose the argument list { 12 18 8 } which is equivalent to the above one. Just for testing take the list { h } where h is the next whole hour after your setting time. The cuckoo will call precisely h times.You may interrupt this with any key. Numbers in the argument list should always be non-negative and < 24, in clockwise, not necessarily ascending order. Cuco represents a type of alarms with variable repeat time, so to speak. It purges itself and sets a new cuckoo alarm at a time computed from the argument list.
Aview is a browser through all alarms, displaying the alarm number, its Date and Time, and the date when it will be repeated. This is particularly useful for alarms with long repeat intervals. The builtin Alarm box displays the repeat time of one year, say, as 52...WEEKS. To be sure that this alarm will repeat at the right date just use Aview. The picture shows the Aview screen of an alarm made with Aset for the 27th of February 2003 and a one-year repetition. It shows that alarm repeation will indeed take place on the 27th February in the next year. Important: if alarm setting is made the 29th of February with 1, 2, or 3 years repetition, the alarm repeats 1, 2 or 3 years later at the 1st of March (birthday rule). Finally, the last command Abox sets the builtin alarm box.
SetA's cuckoo sound will be replaced by your own self-composed wake-up melody if it exists in the current path in the variable 'Ä' (character 196, A umlaut, on key ALPHA A ALPHA LS 9). It will be repeated in the usual way. Even distinct alarms in different directories are possible. The unusual name has been chosen because it is not checked whether it contains a sound. Your self-composed alarm must respect the stack, otherwise you risk a crash.. A nice example (from Beethoven's 5th symphony is:
<< 1. 3. START 0.07 360. OVER BEEP WAIT NEXT 280. 0.5 BEEP >>
What your own alarm leaves on the stack when interrupted with CANCEL also appears when the repeating alarm is stopped with CANCEL. Better stop it with any other key. This package also contains the sound b a c h under the name Abach, the final theme from Bach's last work Die Kunst der Fuge. To use it simply store it into 'Ä' and press CkA.
The SetA dialog screen.
"What" in the Alarm's dialog box may get some text but may also be skipped (mandatory are only Date and Time of the alarm). Anything which is not a string in the black field under "What" will be ignored. If you go to a meeting at 10:15 and did set the Alarm time for this earlier, "What" should at least contain "10:15" but this is up to you. The alarm message contains at least the Alarm time. The Date field must be given the alarm date as a real. in the HP49 DATE format which depends on flag -42. For instance, 27.2 means the 27th of February of the current year, 2003 say, as in the screen-shot (flag -42 set). Typing 27.02 or 27.022003 is not necessary - only January must be encoded by 01 since, e.g., 3.1 will be read as 3.10 (3rd of October). If flag -42 is clear (US-date format) one has to write 2.27 under Date if the current year is meant. It is obvious that an alarm setting for a date byond the 31th of December must contain full date information. Thus, writing 27.022004 or 2.272004 (flag -42 clear) under Date will realize the alarm in 2004. Time must be given the mandatory alarm time, written as a real hh.mm or hh.mmss. Instead of 19.15 you may also write 7.15P oder 7.15'P which should appear as { 7.15 P }in the black field. The P just adds 12 hours whenever the time in front is smaller 12. The "Repeat" is particularly comfortable. Either skip it or put a number into the edit line and right after it one of the letters M, H, D, W, Y (for Minutes, Hours, Days, Weeks, Years). E.g., if 2M is printed then {2. M} appears in the black field and the alarm will repeat after 2 minutes. With input .5M, the alarm repeats after 30 sec. If nY is the input, { n. Y } appears in the black field as in the screen-shot for n=1. The HP49 creates the list { 1. Y } from the quickly printed 1Y provided Y is not a global variable on the path (if it is you have to print 2'Y instead of 2Y). The screen-shot example made an alarm at the date displayed in the header. From that date on it will announce "W's birthday" every year at the same date, the 27th of February. In the general case, the alarm repeats after n years with identical date and time. Admissable are n = 1, 2, 3. Other reals may error or result in a non-intended alarm.
Wolfgang Rautenberg - raut@math.fu-berlin.de - www.math.fu-berlin.de/~raut
(document updated 2003_06_27)