|HP 41CL update from a user|
Message #1 Posted by Geoff Quickfall on 2 Aug 2011, 12:46 p.m.
Well, what to say, where to start!
Monte Dalrymples package is superb.
I have just created a routine which will allow you to store in FLASH RAM up to four CALCULATOR-STATES protected from power loss and the dreaded "MEMORY LOSS".
For example, I have a set of routines which require 100 memory registers and 500 lines of programming. This set of routines requires reassigning of all the keys to specific sub routines. Also included are synthetic commands and synthetic routines which sort data and etc... I created this set of programs back in 1984 in the lab during my Palynology/Climate research.
Today I have as set of routines with SIZE=25 and 3 PRGM REG left over. Also an assigned set of keys:
Well I got a call the other day from my University supervisor asking about co-authouring an article based on my data from 1984 so I dug up my Palynology Magnetic cards and lo and behold, they work.
Firstly, I copied my AVIATION suite of programs to the CL flash memory and then downloaded with the card reader my Palynology routines.
That got me thinking, HOW DOES ONE save multiple calculator states in a CL for future reference using a routine to automate the procedure.
Firstly a definition: CALCULATOR-STATE is the unique set of memory registers applicable to a specific set of duties; for example I have the requirement for two CALCULATOR-STATES:
AVIATION 280 PRGM registers used, x-memory data and asci files, key assignments
PALYNOLOGY 217 PRGM registers used, 100 STO registers required
x-memory alpha data, synthtetics, key assignments.
Another CALCULATOR-STATE state may involve the data stored in a number of registers such as a SURVEY routine. After collecting data, store the calculator state in a FLASH RAM address and then do the next days transect and store that CALCULATOR-STATE in another location.
So here is the routine and you can see how flexible the entire system is:
LINE COMMAND DESCRIPTION
1. LBL YCTOF CALCULATOR TO FLASH
2. TURBO50 GO FAST
3. 1: 0C9 2: OD1 DISPLAYS CHOICE OF FOUR DIFFERENT LOCATIONS:
4. AVIEW 0C9000, 0D1000, 0D9000, 0E2000
6. 3: 0D9 4: OE2
8. GETKEY USES THE KEYPRESS TO CHOOSE THE CORRECT SUB ROUTINE.
9. COPYING COPYING IS DISPLAYED UNTIL DONE APPEARS SO YOU DONT
10. AVIEW FREAK OUT WHILE IT IS RUNNING!
11. GTO IND X USED TO DIRECT THE PROCESS TO THE CORRECT SUB ROUTINE.
12. LBL 72 IF 1 SELECTED USE ADDRESS STARTING AT 0C9000.
13. XEQ 20
14. 0C9000 ERASE THE ADDRESS BLOCK.
16. 800>0C9 COPY THE CALCULATOR-STATE TO THE ADDRESS BLOCK.
18. GTO 13
19. LBL 73 IF 2 SELECTED USE ADDRESS STARTING AT 0D1000.
20. XEQ 20
21. 0D1000 ERASE THE ADDRESS BLOCK.
23. 800>0D1 COPY THE CALCULATOR-STATE TO THE ADDRESS BLOCK.
25. GTO 13
26. LBL 74 IF 3 SELECTED USE ADDRESS STARTING AT 0D9000.
27. XEQ 20
28. 0D9000 ERASE THE ADDRESS BLOCK.
30. 800>0D9 COPY THE CALCULATOR-STATE TO THE ADDRESS BLOCK.
32. GTO 13
33. LBL 62 IF 4 SELECTED USE ADDRESS STARTING AT 0E2000.
34. XEQ 20
35. 0E2000 ERASE THE ADDRESS BLOCK.
37. 800>0E2 COPY THE CALCULATOR-STATE TO THE ADDRESS BLOCK.
39. GTO 13
40. LBL 20 PLACES YFNS IN RAM SO YFERASE AND YFWR ARE AVAILABLE.
43. 80C-RAM PLACES YFNS RAM IN TO PORT 1 LOWER.
46. LBL 13 PLACES YFNS BACK IN PORT 1 L.
49. DONE DISPLAYS DONE TO LET YOU KNOW THE ROUTINE HAS
50. AVIEW FINISHED.
WHEN THE USER ABORTS THE ROUTINE AT THE ADDRESS LOCATION PROMPTS BY PRESSING C THE CALCULATOR EXITS THE PROGRAM IMMEDIATELY WITH THE DISPLAY DONE.
WHEN THE USER SELECTS AN ADDRESS THE ROUTINE TAKES ABOUT 22 SECONDS TO COMPLETE AND DONE IS DISPLAYED WHEN THE ROUTINE IS COMPLETED.
Some standard caveats when dealing with any type of FLASH RAM:
DO NOT INTERUPT THE PROGRAM AS IT IS RUNNING, THIS IS DUE TO THE YFERASE AND BELIEVE ME YOU DO NOT WANT THE CONSEQUENCES ON YOUR HEAD!!!
MAKE SURE YOU HAVE A GOOD SET OF BATTERIES AS YFERASE IS VERY UNFORGIVING!!!
The upshot is that we are finding so many new and exciting ways to use the HP 41CL.
Last night, I loaded from withing the XROMs the CL has in its Library the ZENROM XROM. I saved 5 program registers just converting some commands to the synthetic equivalent.
I now have a QRG pocket PDF produced (if you want one, email me) which records which routines I need and in which XROM they are located.
My CL has the following XROMS loaded and displayed by CAT II:
1 -EXT FCN 2D
2 -CX EXT FCN
3 -TIME 2C PHYSICAL TIME MODULE
4 -CX TIME
5 -PRINTER 3B PHYSICAL IR MODULE
6 -YFNS 1C CL FUNCTIONS (ALWAYS RESIDENT)
7 -CCD"OS/X VIRTUAL XROM FROM RESIDENT XROM LIBRARY
8 C PPC 1981 VIRTUAL XROM FROM RESIDENT XROM LIBRARY
9 EXT IL ROM VIRTUAL XROM FROM RESIDENT XROM LIBRARY
10 -CLUTILS 1H ANGEL MARTINS CL UTILITIES ROM FOR THE CL!
-SYS/EXT ANGEL MARTINS CL UTILITIES ROM FOR THE CL!
The CLUTILS 1H XROM was loaded via Diego Diaz's CLONIX in a very simple procedure. However, some of the testers (and myself) are now experimenting with the serial port built into the CL and using a stereo jack in a port cover to RS232 on the computer. More on this later.
At any time I can swap out, or add more XROMS up to the standard limit of pages. YFNS must always reside in a 4K page so it stays in PORT 1 Lower. But that leaves 7 4K pages for 7 4K ROMS or 3 8K ROMS or, well you get the picture. The IR module and time module do not occupy the pages available for XROM images.
Well I can go on but...maybe later!
oh, did I say it was fast!!!
Edited: 2 Aug 2011, 12:54 p.m.