-[[.:start]]
====== DM41X Snippets ======
==== Advantage Pac : Flag 21 ====
I found that using some of the Advantage Pac programs (e.g. ''MATRX'' or ''CFIT'') would lead to ''AVIEW'' instructions in programs run subsequently to cause a ''HALT'' - requiring use of the R/S key.
I was told via a question on the [[https://forum.swissmicros.com/viewforum.php?f=24 | Swiss Micros Forum ]] that this was likely to be due to the Advantage Pac setting ''FLAG 21'' (printer active) to help in its own presentation of information on the display.
''FLAG 21'' SET while ''FLAG 55'' is CLEAR (since there's no Printer Module active) causes AVIEW instructions to halt awaiting user intervention (R/S key)
To restore things to //normal// : either ''CLEAR'' Flag 21 via ''CF'' or simply turn the calculator off and on again.
See APPENDIX D in the HP41CX User Manual Volume 2 for a better explanation of the use of Flag 21 to control ''AVIEW'' behaviour.
===== Extended Memory =====
FIXME
Copy a program to Extended Memory:
* Put Prog's name in ''Alpha'' register
* XEQ ''storep''
* The prog remains in main memory but can be deleted (''CLP'') if memory needed
* To restore to main memory put name in ''Alpha'' and then ''XEQ'' ''GETSUB''
===== DDAYS =====
**To find the number of days between two dates**
* enter 1st date into Y-stack as ''dd.mmyyyy''
* key in 2nd date into X-stack as ''dd.mmyyyy''
* XEQ ALPHA D D 'A' Y 'S' ALPHA
* result is the difference in days.
* ''DDAYS'' can be added to the ''CST'' program chooser to make it easier if multiple calculations are required
==== Example====
Days between 27/2/66 and 31/5/22
''27.021966'' ENTER
''31.052022'' XEQ ALPHA D D 'A' Y 'S' ALPHA
Result = ''20,547''
Check :
''365'' รท
Result ''56.293''
I'm 56 and a bit... sounds right...
===== XYZALM =====
**Various Alarm functions**
Put any message for the Alarm into the ''ALHPA'' register
Load the stack registers with:
* Z : Repeat Interval ''HHHH.MMSSs'' or ''0''
* Y : Date ''DD.MMYYYY'' or ''0''
* X : Time ''HH.MMSSs''
Execute ''XYZALM'' to set the alarm
When alarm goes off it is ''acknowledged'' by pressing any key except ''STO''.
* Acknowledging a non-repeating (i.e. ''Z'' was ''0'') alarm cancels it.
* Acknowledging a repeating alarm cancels it and re-arms it, adding the ''Repeat Interval'' to create the new alarm time.
* Pressing STO cancels the alarm but makes it a ''PAST DUE'' alarm.
==== Example ====
Set alarm for 22:20, today, not repeating, called ''Supper''
* ALPHA 'S' U P PER ALPHA
* 0 ENTER (for Z = repeat interval)
* 0 ENTER (for Y = Date = Today)
* ''22.20'' XEQ ALPHA X Y Z 'A' L M ALPHA
At ''22:20'' the alarm is activated. ''ALPHA'' shows ''SUPPER''.
Alarm is cancelled by pressing //any key but STO//
Pressing STO creates a ''PAST DUE'' alarm which means it gets re-triggered if the calculator is turned off. It can be cancelled and deleted by pressing any key (except STO) and then the calculator will turn off. Pressing STO will create a new Past Due alarm, and allow the calculator to turn off. On turn on the Past Due alarm will still exist and turning off will trigger it again.
A Past Due alarm is useful to remind you that something happened previously and turning the calculator off is a memory-jogger.
''CATALOGUE 5'' ''R/S'' and ''โ'' ''โ'' steps through all alarms.
To clear an alarm from the Catalogue: ''SHIFT'' ''C'' ( where ''C'' is ''โ'' on top row )
--- //John Pumford-Green 31/05/22 13:13//
Page last updated: ~~LASTMOD~~
{{tag>dm41x calculator}}