The Museum of HP Calculators

HP Forum Archive 10

[ Return to Index | Top of Index ]

HP 41CX vs HP 42s
Message #1 Posted by Alan Claughan (South Africa) on 7 Feb 2003, 3:32 a.m.

Does anyone know if the HP-42S supports the synthetic programming that is available on the HP-41 Models?

      
Re: HP 41CX vs HP 42s
Message #2 Posted by Holger Veit on 7 Feb 2003, 3:50 a.m.,
in response to message #1 by Alan Claughan (South Africa)

>Does anyone know if the HP-42S supports the synthetic programming that is available on the HP-41 Models?

41 and 42 are different technologies. Synthetic programming effectively uses bugs (or rather missing parameter checks) in the 41 ROMs. There may or may not be similar bugs in the 42 code which might (or not) allow similar effects. But since synthetic programming is not an officially accepted feature (other than that it is tolerated in the way that it was not explicitly disabled by better parameter checking) there is no guarantee that anything of it will work in the 42 (and IIRC, it infact doesn't).

      
Re: HP 41CX vs HP 42s
Message #3 Posted by HrastProgrammer on 7 Feb 2003, 4:00 a.m.,
in response to message #1 by Alan Claughan (South Africa)

Sorry, synthetic programming is not possible on HP-42S.

Regards.

            
Well, some synthetic programming is possible
Message #4 Posted by Gene on 7 Feb 2003, 7:16 a.m.,
in response to message #3 by HrastProgrammer

Requires direct byte editing in the debugger.

You're limited to things such as making very long labels, i.e., "LBL 'Thisisalonglabel' "

You can make labels with lower case letters this way.

A few other things.

You cannot put instructions such as RCL d into the HP-42S. Sorry.

There is an issue of HPX from 1988 or so that covers the 42s in good detail. It's available on the CD ROM set that Jake Schwartz has scanned (and which every HP calculator nut ought to have!)

                  
Re: Well, some synthetic programming is possible
Message #5 Posted by HrastProgrammer on 7 Feb 2003, 2:18 p.m.,
in response to message #4 by Gene

Well, some synthetic programming is possible

Yes, but it isn't synthetic programming in the 'traditional' HP-41 way. HP-41 programs which contains synthetic instructions cannot be keyed in and executed on HP-42S.

                        
Re: Well, some synthetic programming is possible
Message #6 Posted by Gene on 7 Feb 2003, 3:49 p.m.,
in response to message #5 by HrastProgrammer

Which is why I said

"You cannot put instructions such as RCL d into the HP-42S. Sorry."

                  
Re: Well, some synthetic programming is possible
Message #7 Posted by Christof on 7 Feb 2003, 2:24 p.m.,
in response to message #4 by Gene

okay, so my current development code for the 42 "memopad" program is using 6 character alpha strings stored as elements of an array.

Is there any way to use this method to make the memopad better?

(currently, you enter a text string and I consecutively store and recall matrix elements, having to do 0 checking and inster a space to keep empty cells form returning 0.0000 in my fix5 env., etc. It's kind of ugly, but so far works really well)

                        
ASCII data and strings
Message #8 Posted by Vieira, Luiz C. (Brazil) on 7 Feb 2003, 3:54 p.m.,
in response to message #7 by Christof

Hi;

I remember the first time I get into contact with the HP41's X-Functions/memory module and the X-memory file concept. Program and data files were easy to relate with existing HP41 resources, but the ASCII files were beyond the HP41's hability to handle ASCII strings. The ALPHA register is able to hold 24 characters but any numbered register can hold only six characteres of an ALPHA string. Manipulating ALPHA strings with the basic HP41 functions' set is not easy: ARCL, ASTO and ASHF allow the handling of six characters at a time, and to handle one single character demands a bit of "juggling". The X-Functions set added not only some powerfull ALPHA manipulating functions - XTOA, ATOX, AROT, ALENG, ANUM, - but also some ASCII file handlers - CRFLAS, INSREC, GETREC, INSCHR, APPCHR, GETCHR and others (I'm writing by heart, if there are erros, please, correct me). And I thought: "What are these functions for?" Later, when I read about the HPIL and all HPIL-compatible devices and measurement instruments that could be connected and controlled by the HP41, I understood that ASCII strings were primarily dedicated to hold and handle ASCII data received from and send to external devices. One can handle ASCII data with a series of programs, but viewing ASCII strings in large texts by the 41's LCD is painfull. One specific HPIL device is the TV Link and allos ASCII files to be shown as complete text, but specific programs must br written to do so.

The HP42S has the lack for I/O activity, so ASCII files lost their space and only ALPHA strings prevail. Functions like ALENG, ANUM, XTOA and ATOX (plus the very welcome AIP) were kept, but there are no specific places (variable types or files) to hold large, contiguous ASCII sequences, that must be broken into sets of six characters each, so they can be stored in numbered registers, variables or matrix elements. Complex matrices and complex variables will need double the space of their real-only counterparts, but will still hold only six characters for each valid position.

I believe Christof's is a very well elaborated program that allows this ASCII-data handling and holding abilities in the HP42. I hope we can see it soon, because this is a very good way to use large messages organized in sort of an data bank, easing ALPHA manipulation.

Cheers.

                              
Re: ASCII data and strings
Message #9 Posted by Christof on 7 Feb 2003, 7:46 p.m.,
in response to message #8 by Vieira, Luiz C. (Brazil)

well, I'm cleaning up the "next line" handling and growing the matrix.

once that is done, the most basic complete code will be available (it lacks a seperat implementation for a "directory" of matrix varnames that are "text files", but I'm not sure that is worth doing yet. Copy, delete, and some mild encryption will definitely be coming after the final tweaking of the preliminary)

I'm sticking with the AON and r/s key method of inputting text for the moment- I may eventually make a getkey version that will use an alpha layout similar to the 32Sii.

                  
Re: Well, some synthetic programming is possible
Message #10 Posted by christof on 8 Feb 2003, 12:12 a.m.,
in response to message #4 by Gene

blah, blah. okay, maybe it is "synthetic", maybe it is "entry points". whatever. It works.

now, this XFCN... does anyone know more about it? It supposedly will execute na external ML routine, but how does one manage this?

                        
Re: Well, some synthetic programming is possible
Message #11 Posted by HrastProgrammer on 8 Feb 2003, 12:46 a.m.,
in response to message #10 by christof

Read the following article on this site:

HP-42S: New Facts

Many thanks to J-F Garnier ...

                              
Re: Well, some synthetic programming is possible
Message #12 Posted by Christof on 8 Feb 2003, 3:43 a.m.,
in response to message #11 by HrastProgrammer

Ah, I'd forgotten about that one.

onward, I know we haven't discovered everything yet.

      
Re: HP 41CX vs HP 42s
Message #13 Posted by Vieira, Luiz C. (Brazil) on 7 Feb 2003, 10:02 a.m.,
in response to message #1 by Alan Claughan (South Africa)

Hi;

One of the most important difference that must be taken into account in this particular subject is related to memory structure and registers. In the HP42S the access to all memory is achieved by using a sort of mapping, and system access to memory positions is different than the one used in the HP41, that has fixed positions for each system resource. This is mostly because in the HP42 we may have a complex number, a matrix descriptor and a real number in each of three available stack registers, and their size differ from each other. Then there is no way to fix an specific number of bytes for each stack register, unless you use the maximum required for the largest object, what would be a waste of memory. As a test you may check for available memory and recall a matrix descriptor to the X-Register and check again to see the difference. Then you copy it in Y, Z and T with [ENTER^] and check again: no memory consumed for the copies. But if you fill the stack with different objects, remaining memory decreases for each entry.

This suggests that in this particular case, stack registers contents are related to pointers instead of the object contained there. This is a major difference. And when we think of ALPHA register and the registers tht compose it in the HP41 (M, N, O and P, if I am not wrong) there should be the equivalent RCL M, RCL N and so in the HP42S. Even if you build the equivalent bytes for these instructions in the HP42 (what is a lot easier than in the HP41), I am almost sure you will not have a STO N or RCL e because these registers addresses are meaningless for the HP42S. The new structure does not demand their existence. That's why Gene mentioned you cannot put these instructions in the HP42S, but their equivalent byte codes may be placed in a program by using the built-in memory browser (do you know how to get it active?).

Gene's suggestion is a good starting point for those who already know Synth programming.

Hope you found what you needed. And if you delve into the HP42's resources and find something new, tell us about it... Cheers.

            
Re: HP 41CX vs HP 42s
Message #14 Posted by John Smith on 7 Feb 2003, 10:12 a.m.,
in response to message #13 by Vieira, Luiz C. (Brazil)

Have a look at this very interesting thread:

Thread on HP42S synthetics, map memory, etc

There are 18 messages in all. Remember to go to the very beginning of the thread.

                  
A "must see" thread, indeed
Message #15 Posted by Vieira, Luiz C. (Brazil) on 7 Feb 2003, 3:22 p.m.,
in response to message #14 by John Smith

Hi, John;

this is a very interesting set of information about the 42S subject. Thank you for the valuable link.

Best regards.

      
Re: HP 41CX vs HP 42s
Message #16 Posted by Gray Wilson on 8 Feb 2003, 9:03 a.m.,
in response to message #1 by Alan Claughan (South Africa)

Educalc apparently offered a guide to synthetic programming on the 42S --

Stock #TN24, HP42S Synthetic Programming ..........Free

See http://groups.google.com/groups?hl=en&lr=&ie=UTF-8&threadm=1990Dec10.175301.16716%40mlb.semi.harris.com&rnum=1&prev=/groups%3Fhl%3Den%26lr%3D%26ie%3DUTF-8%26selm%3D1990Dec10.175301.16716%2540mlb.semi.harris.com

Does anyone have a copy of this guide? Does it add anything that's not already known?


[ Return to Index | Top of Index ]

Go back to the main exhibit hall