1591 === Subject: Re: HP 50g keys GOOD: HP's older calcs. They were quite good! BAD: HP's newer calcs! For example, I have a HP48SX that has gone thru 100+ battery changes and more than 4000 hours of HEAVY use. By heavy use I don't mean sitting on a table next to a textbook having a key pressed now and then, but calc in both hands with both thumbs pressing keys writing a program or such. For a while I had to change batteries in this calc at least once a week! While this calc looks quite hashed, it is fully functional and has zero broken keys! My HP48GX didn't fair quite so well. It went thru 50+ battery changes and more than 2000 hours if HEAVY use. I didn't own a computer, so I did most of my HP48 programming directly on this GX (including a fully working assembly language chess program). The calc did have a couple of keys that finally broke, and finally the calc just quit working! What's funny is that recently, after buying another GX to replace it, I was able to get this old GX fully working again! It had gotten a bit dirty, and I thought maybe something had gotten inside and messed it up a bit (like maybe some of the coke that I'm always drinking). So I soaked it for a few minutes in warm water, then flushed it good for another couple minutes with warm water. Then shook all the water out that I could and let it dry for a few days. Since then it has worked just fine. And even the broken keys still work fine, they are just a little loose in their sockets, but are fully predictable in their function! Then come the EXTREEMLY SUCKY HP49G+. The first calc I got I just couldn't use because it kept missing better! After several RMAs, I just gave up. Figured it would never get better. Then one day HP came out with new firmware that fixed the missed keypresses! WOW, I could finally use my HP49G+. I took the basically new HP49G+ out and loaded the firmware and started using === Subject: Re: HP 50g keys Woops, bad keypress on my computer and posted before finishing... calc had a broken enter key. I tried to RMA the unit but HP said no (it was 1 year and 1 day from when I had done the first RMA). I did end up puting in some fresh batteries in the calc and try using it a bit more, but it bacame quit unusable! Long before the second set of batteries were used up, several more key broke. And unlike my GX, the broken keys and the HP49G+ were quite unpridictable. For example, oen press of the enter key may do one of three different things: 1) nothing 2) a single keypress 3) a double keypress The HP49G+ was truely the worst piece of crap calculator I have EVER owned. This has included several under $10 calcs. The next to least calc I have ever used was a cheap credit card calc given to me by my old bank. It was cheap, didn't have many functions, and didn't even have a replaceable battery! Yet it was more usable and lasted far longer than the HP49G+!!!! So excuse me of I'm not very interested in the newer HP calcs... === Subject: Re: User RPL Programming Environement---What is best? > You are free to maintain for yourself a set of text strings representing programs, > which you can compile for yourself using STR-> (or OBJ->), > which can also contain comments introduced or surrounded by @ symbols, e.g. SWAP @comment@ DUP @ comment to end of line However, when you edit strings, the calculator does not check their syntax > (any string is perfectly valid as just a string of text), > and when you use STR-> to compile them, an error does not identify > exactly where the first syntax error occurs. When STR-> tells me that some string can't be compiled, > I use the following simple program to find out where the compiler objects, << ->STR OVER { V } + -55 CF > IFERR INPUT THEN DROP2 ELSE > DUP SIZE { SWAP } IFT DROP END > > The above can also be used to edit strings on any HP48S[X]/G[X][+] using INPUT; > omitting { V } + to skip the syntax checking. To transfer from SD card to calculator, or from computer to emulator: Indeed, being able to develop UserRPL with code indenting & comments makes a very large difference. === Subject: Re: User RPL Programming Environement---What is best? > A string is an object of type 2, commonly containing readable text. > John, strings. I hadn't thought about needing integration with the debugger, etc. The first serious programming book I read many years ago was Kernighan and Plauger's Elements of Programming Style. It so drilled into my head the importance of making the formatting follow the logic of the program, that I can scarcely stand to look at badly, or un, formatted code. And UserRPL is particularly hard to understand, especially after its cold, without some sort of formatting to help. I like to put small, understandable clauses on a line by themselves. As it is, I have to figure out where each clause breaks, then figure out what it does, and then figure out how it fits into the larger program. That's more work than it ought to be. It seems to me that considerations of space are, for 99.9% of users, a false concern. With an SD card on the HP50g, I have more storage than I could ever fill up. The 10% extra or so that would be needed to store formatting would be a godsend and make the HP's a *much* more comfortable programming environment. It seems to me that with the right hooks, formatting could be preserved either by 1. Treating strings that start with << specially and EVAL them by stripping the quates and then EVALing the contents just like a program object, or 2. Making whitespace a special kind of NOOP that does nothing by preserves whitespace for the editor. Put this on my wish list to HP for the next release, if there is one, of a SysRPL device. Or, better, for some clever programmer to hack the existing systems to make it happen. Alas, not me, I'm just an amatuer programmer. === Subject: Re: User RPL Programming Environement---What is best? > The first serious programming book I read many years ago was Kernighan > and Plauger's Elements of Programming Style. It so drilled into my > head the importance of making the formatting follow the logic of the > program, that I can scarcely stand to look at badly, or un, formatted > code. And UserRPL is particularly hard to understand, especially > after its cold, without some sort of formatting to help. I like to > put small, understandable clauses on a line by themselves. As it is, > I have to figure out where each clause breaks, then figure out what it > does, and then figure out how it fits into the larger program. Enter this program, then view it again in the built-in editor, or use ->STR to make a string from it: << DO IF THEN ELSE CASE THEN START NEXT END END END UNTIL END >> As you see, even the built-in decompiler is actually smart enough to display indented, perfectly aligned program logic, so that you can follow it much more easily; wasn't that pretty thoughtful of the original designers of UserRPL? > It seems to me that with the right hooks, > formatting could be preserved either by > Treating strings that start with << specially and EVAL them > by stripping the quotes and then > [STR->]ing the contents just like a program object You can define your own EVAL to do that, if you wish. > Making whitespace a special kind of NOOP that does nothing but > preserves whitespace for the editor. Every individual space or tab character would need to be a command, and you would be sacrificing a lot of execution time (just as would the run-time compilation suggested above). You might be able to create your own library of such commands, if you want to go to that extreme; however, the built-in decompiler will still add its own automatic indentation of program logic, as above. As suggested earlier, you can sprinkle running commentary throughout your programs via private remarks DROP and the strings may contain embedded newlines or spaces, so perhaps you can roll your own very simply, in this fashion. > Put this on my wish list to HP for the next release, if there is one. Even the last fully ready HP ROM (2.10, with some useful fixes) was never actually released. I don't know what sort of thing is being planned by HPGCC folks, nor how they are working out whatever deal is needed to produce it. Meanwhile, you can keep all your source on your SD card, and store compiled programs in main memory -- how's that? === Subject: collect and expand answers I got a new HP50g and upgraded its ROM to 2.09. While reading the manual and trying some of the examples from the HELP menu I got some unusual answers printing from expand and collect: :'COLLECT(xÓ-4)' in the help page gives (x+2)*(x-2) but, when I press ECHO and EVAL it gives me -((2-x)*(2+x)). :'EXPAND((x+2)*(x-2))' in the help page gives (xÓ-4) but, when I press ECHO and EVAL it gives me (-(4-xÓ)) I know both answers are valid but is there a reason to this unusual way of printing them? Am I missing some configuration option or flag? I'm sorry if it is some kind of too basic question but I've browsed -- Carlos Gomes === Subject: Re: collect and expand answers [MODE] |CAS| _ Incr Pow V off there I got a new HP50g and upgraded its ROM to 2.09. While reading the manual and trying some of the examples from the HELP menu I got some unusual answers printing from expand and collect: :'COLLECT(xÓ-4)' in the help page gives (x+2)*(x-2) but, when I press ECHO and EVAL it gives me -((2-x)*(2+x)). :'EXPAND((x+2)*(x-2))' in the help page gives (xÓ-4) but, when I press ECHO and EVAL it gives me (-(4-xÓ)) I know both answers are valid but is there a reason to this unusual way of printing them? Am I missing some configuration option or flag? I'm sorry if it is some kind of too basic question but I've browsed -- Carlos Gomes === Subject: Re: collect and expand answers > [MODE] |CAS| Incr Pow V off there > Well, I'm a little bit embarrassed now, I was not aware of the behavior of that option and caused myself a problem when checked it : ( Carlos === Subject: Re: collect and expand answers U R well come 2 many options... On 28 dez, 12:26, Veli-Pekka Nousiainen > [MODE] |CAS| _ Incr Pow V off there > Well, I'm a little bit embarrassed now, I was not aware of the behavior of that option and caused myself a problem when checked it : ( __ Carlos === Subject: INFORM Can I Use expressions in the inits and reset list? In the 4th and 5th arguments to INFORM, you can enter a list of initial and reset values for the variables. I would like to use INFORM to edit a set of five global variables. I would like to have the initial value be the current value of each of the globals. But if I use the name of the global variable in the list, it shows up in the form as a single-quoted string, 's', rather than 99, the currrent value of the global s. Is there any way to use expressions in these arguments to INFORM or otherwise trick it into EVALing the variables before it displays them in the form? === Subject: Re: INFORM Can I Use expressions in the inits and reset list? > In the 4th and 5th arguments to INFORM, you can enter a list of > initial and reset values for the variables. I would like to use > INFORM to edit a set of five global variables. I would like to have > the initial value be the current value of each of the globals. But if > I use the name of the global variable in the list, it shows up in the > form as a single-quoted string, 's', rather than 99, the currrent > value of the global s. Is there any way to use expressions in these arguments to INFORM or > otherwise trick it into EVALing the variables before it displays them > in the form? AXL ->NUM AXL << EVAL >> DOLIST << ->NUM >> DOLIST But Jacob Wall's suggestion is fastest, using auto-evaluation of unquoted names, e.g. X Y Z 3 ->LIST === Subject: Re: INFORM Can I Use expressions in the inits and reset list? posting-account=ky6NnQoAAAAl8HjjF10EUMKbzXiIKhTR Gecko/2008120122 Firefox/3.0.5,gzip(gfe),gzip(gfe) > In the 4th and 5th arguments to INFORM, you can enter a list of > initial and reset values for the variables. I would like to use > INFORM to edit a set of five global variables. I would like to have > the initial value be the current value of each of the globals. But if > I use the name of the global variable in the list, it shows up in the > form as a single-quoted string, 's', rather than 99, the currrent > value of the global s. Is there any way to use expressions in these arguments to INFORM or > otherwise trick it into EVALing the variables before it displays them > in the form? a ->LIST which will result in a list of the variables, not just the names, for example: << TITLE { { VAR1: 0. } { VAR2: 0. } { VAR3: 0. } { VAR4: 0. } { VAR5: 0. } } { 2. 0. } a b c d f 5. ->LIST DUP INFORM >> where global variables a,b,c,d,f are both initial and reset values. Of course you may also want to check if each variable exists and if not leave a 0 or NOVAL in its place, unless you're sure it does exist. Jacob === Subject: Re: INFORM Can I Use expressions in the inits and reset list? posting-account=kSyaOAkAAABaqKHaQ8qUzyG2kFubDVsp .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.0.04506),gzip(gfe),gzip(gfe) > In the 4th and 5th arguments to INFORM, you can enter a list of >initial and reset values for the variables. I would like to use >INFORM to edit a set of five global variables. I would like to have >the initial value be the current value of each of the globals. But if >I use the name of the global variable in the list, it shows up in the >form as a single-quoted string, 's', rather than 99, the currrent >value of the global s. > Is there any way to use expressions in these arguments to INFORM or >otherwise trick it into EVALing the variables before it displays them >in the form? a ->LIST which will result in a list of the variables, not just the > names, for example: > << TITLE { { VAR1: 0. } { VAR2: 0. } { VAR3: 0. } > { VAR4: 0. } { VAR5: 0. } } { 2. 0. } a b c d f 5. ->LIST > DUP INFORM > where global variables a,b,c,d,f are both initial and reset values. > Of course you may also want to check if each variable exists and if > not leave a 0 or NOVAL in its place, unless you're sure it does > exist. Jacob === Subject: Re: INFORM Can I Use expressions in the inits and reset list? > In the 4th and 5th arguments to INFORM, you can enter a list of > initial and reset values for the variables. I would like to use > INFORM to edit a set of five global variables. I would like to have > the initial value be the current value of each of the globals. But if > I use the name of the global variable in the list, it shows up in the > form as a single-quoted string, 's', rather than 99, the currrent > value of the global s. Is there any way to use expressions in these arguments to INFORM or > otherwise trick it into EVALing the variables before it displays them > in the form? STOre values in C B A, then test { A B C } << ->NUM >> DOLIST === Subject: BZ2 compression HP users which still have some use for compression software may be interested in the recent release of the first beta of BZ2. http://phantasie.tonempire.net/utilitaires-f7/bz2-compression-software-t73.h tm#77 or http://bz2.webhop.org BZ2 is a compression engine completely compatible with the original BZ from Mika Heiskannen and its evolution BZ49. BZ2 objectives are to compress & decode faster than BZ, while compatibility, BZ2 can decode BZ-compressed objects, and its output can also be decoded by older BZ, including HP49/50 Rom integrated versions. As it stands, the first beta does fullfill these objectives : HP49G Comparison BZ49 BZ2 BZ2Speed TNT 1.11 Compression Ratio 2.16 +3.0% +0% +4.2% Compression Speed 1.02 KB/s +20.2% +53.5% -5.7% Decoding Speed 17.5 KB/s +47.6% +39.5% -33.4% The BZ2 Speed version compress the same as BZ49, but is much faster. You may prefer it for your everyday usage. Releasers, on the other hand may be more interested in the BZ2 Compression version, given that the resulting output is still compatible with any previous BZ decoder out there, and is not only more compact but also faster to decode. There is still some room for improvement, on both compression rate and speed; but i'm willing to collect some feedback before going on headback into the code. === Subject: Re: BZ2 compression posting-account=57eBeAkAAABkNMhsZnDBzGQsstJRmvKD Gecko/2008102920 Firefox/3.0.4,gzip(gfe),gzip(gfe) Hello Yann, I am for sure interested in a *stable* version of the compressor/ decompressor. Once it is stable it might be a good replacement for the origingal BZ. Keep up the good work ! Andreas http://www.software49g.gmxhome.de === Subject: Re: BZ2 compression I am for sure interested in a *stable* version of the compressor/ > decompressor. Indeed, that's why there is a preliminary beta phase. At beta level, there is no more bug left i know of, at least as far as torture tests are concerned. So the idea is to broaden the usage base, in order to extent the possibilities. After a bit of time, if no more bug are found, it will be deemed suitable for a stable tag :) === Subject: RISCH vs. INT For indefinite integration (finding the anti-derivative), are there some problem types that are better suited for RISCH and others that are better suited for INT or it is simply a matter of trying INT and if it doesn't work, trying the RISCH approach in case it might work when INT doesn't? === Subject: Re: RISCH vs. INT > For indefinite integration (finding the anti-derivative), are there > some problem types that are better suited for RISCH and others that > are better suited for INT or it is simply a matter of trying INT and > if it doesn't work, trying the RISCH approach in case it might work > when INT doesn't? INT Three inputs (expression, variable, value of variable) RISCH Two inputs (expression, variable) INTVX One input (expression), takes variable name from VX The Advanced Users Reference (AUR) is a complete guide to all functions. Also the built-in HELP (for CAS) command (but where's INT?) === Subject: Re: RISCH vs. INT posting-account=GT4frAoAAADMvAtJu2WIOkYTwgy0O29T 1.1.4322; InfoPath.2),gzip(gfe),gzip(gfe) Also the built-in HELP (for CAS) command > (but where's INT?) The built in CAS Help menu in my calculator doesn't include INT either. That suggests to me that the INT capability was programmed after the built-in HELP programming was completed. I definitely get the sense that the OS was done as a patch work quilt with various capabililties tacked on (as opposed to being integrated into) as time went by. Still, I think it is a very powerful CAS. I am constantly running across all kinds of goodies (options) that were not available on my other calculator brand. === Subject: Re: RISCH vs. INT >For indefinite integration (finding the anti-derivative), are there >some problem types that are better suited for RISCH and others that >are better suited for INT or it is simply a matter of trying INT and >if it doesn't work, trying the RISCH approach in case it might work >when INT doesn't? INT > Three inputs (expression, variable, value of variable) RISCH > Two inputs (expression, variable) INTVX > One input (expression), takes variable name from VX The Advanced Users Reference (AUR) > is a complete guide to all functions. Also the built-in HELP (for CAS) command > (but where's INT?) shortly. I guess there is no difference in the integration capability between these different methods on the 50g. I was concerned that === Subject: Re: RISCH vs. INT posting-account=GT4frAoAAADMvAtJu2WIOkYTwgy0O29T 1.1.4322; InfoPath.2),gzip(gfe),gzip(gfe) > For indefinite integration (finding the anti-derivative), are there > some problem types that are better suited for RISCH and others that > are better suited for INT or it is simply a matter of trying INT and > if it doesn't work, trying the RISCH approach in case it might work > when INT doesn't? CORRECTION: I just noticed that INT evaluates the antiderivative for the given x value, so lets compare RISCH integration with respect to x and INTVX. (I assume these are two different approaches to integration.) === Subject: Re: RISCH vs. INT > I will be recieving a copy of the AUR shortly. Would you like a computer-searchable copy right now? All the latest English PDF manuals for 50G (as of 12 Jun 2007) are listed with complete titles and URLs for direct download at: The English 50G Training Modules package is also downloadable from: http://h20331.www2.hp.com/Hpsub/downloads/hp50gPDFfiles.zip === Subject: Re: RISCH vs. INT > Also the built-in HELP (for CAS) command > (but where's INT?) > It's in HLP49, actually. :-) And it makes mistakes. Try this, with flag 3 clear and Approximate mode: SIN(X) 'X' 3.14159265359 -> 2. Which is correct. Now switch to Exact mode: SIN(X) 'X' 3.14159265359 -> 1. Which isn't. Interesting. Bill === Subject: Re: RISCH vs. INT > SIN(X) 'X' 3.14159265359 After CASCFG, 'SIN(X)' 'X' 'pi' INT ==> 1 What's wrong with that? Isn't '-COS(pi)' equal to 1? The Approximate mode answer (2) is a bit suspicious, if COS(AnyReal) can only vary between -1 and +1 === Subject: Re: RISCH vs. INT InfoPath.1; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; .NET CLR 1.1.4322; .NET CLR 3.0.04506.648),gzip(gfe),gzip(gfe) > SIN(X) 'X' 3.14159265359 After CASCFG, 'SIN(X)' 'X' 'pi' INT ==> 1 What's wrong with that? I repeated the test with the keyboard integrate (RS-TAN) and with the plotter's AREA. Both return 2. By inspection, the area under a halfwave of SIN(X) is obviously closer to 2 than 1.Then I put it into the EQW and it returns (via ->NUM) 2 in either exact or approximate mode. Something's fishy about INT. Okay, what's going on here? Bill === Subject: Re: RISCH vs. INT > I repeated the test with the keyboard integrate (RS-TAN) > and with the plotter's AREA. Both return 2. Area is a definite integral, requiring two limits, (i.e. evaluate INT twice, then take the difference), unless INT was actually defined to mean from lower limit zero However, the definition of INT in the AUR is stated this way: Calculates the antiderivative of a function for a given variable, at a given point. With this additional example: Find the integral of sin(x) with respect to x, at the point where x=y Command: INT(SIN(X),X,Y) Result: -COS(Y) Given that interpretation, the expected result for Y=pi would be 1 Of course, it all hinges on how one precisely defines antiderivative, given that any other formula differing everywhere by a constant can be held equally valid, unless there something to eliminate all but one preferred answer. With this trivial example, -COS(X) looks reasonable as the simplest antiderivative, but more complex situations may exist where two antiderivative formulas may look quite different, yet happen to differ by a constant, so how then to settle the matter? Perhaps the definition for INT should be 'RISCH(arg1,arg2)|(arg2=arg3)'? In Exact mode: 'RISCH(SIN(X),X)|(X=3.14159265359)' EVAL EVAL yields 1 'INT(SIN(X),X,3.14159265359)' EVAL also yields 1. But in Approximate mode: 'RISCH(SIN(X),X)|(X=3.14159265359)' EVAL EVAL yields 1. 'INT(SIN(X),X,3.14159265359)' EVAL yields 2. Try CASCFG 'RISCH(SIN(X),X)|(X=3.14159265359)' ->NUM then say No! Go figure :) > By inspection, the area under a halfwave of SIN(X) > is obviously closer to 2 than 1. Exactly 2, but the simplest antiderivative of SIN(X), -COS(X), evaluated at any X, acts like a definite integral whose origin is simply at a different point (any odd positive or negative multiple of pi/2, for example). So, do RISCH and/or INT always eliminate any constant from their results? Well, that happens to be impossible without ambiguity, e.g. both 'SIN(X)^2' and '-COS(X)^2' have the same derivative, 'COS(X)*SIN(X)*2' so which original expression, equally simple, might be the right antiderivative of that? Note that 'COS(X)*SIN(X)*2' INTVX yields '2*(SQ(SIN(X))/2)' which simplifies to 'SIN(X)^2' However, isn't 'COS(X)*SIN(X)*2' equal to 'SIN(2*X)' ? But then 'SIN(2*X)' INTVX yields '-(COS(2*X)/2)' which is equal to '(SIN(X)^2-COS(X)^2)/2' which is equal to '1/2-COS(X)^2' and also equal to 'SIN(X)^2-1/2' (it's the average of the other two antiderivatives, differing by the constant 1/2 from either of them) So now we have three equally good antiderivatives of 'COS(X)*SIN(X)*2' viz. 'SIN(X)^2' or '-COS(X)^2' or '-(COS(2*X)/2)' Surely, then, INT must be exactly as arbitrary as INTVX, as to a potential family of functions differing by any constant. > Then I put it into the EQW and it returns (via ->NUM) 2 > in either exact or approximate mode. Something's fishy about INT. Where is INT in the EQW? 'INT(SIN(X),X,pi)' gives me 1 after EVAL in EQW [Exact mode] same as 'INT(SIN(X),X,pi)' EVAL > Okay, what's going on here? Perhaps all that can be said is that INT(b)-INT(a) ought to be equal to the definite integral from 'a' to 'b' (but apparently won't be if 'a' is a real number and 'b' is an exact integer :) Some sort of a CAS bug there, I would say, although there could be several different perspectives on how to characterize that bug (including should have obtained the same result, or should have forced a mode change or should have errored out, etc.) > INT seems okay for antiderivatives, but if you put in a > numerical value, it returns the definite integral from zero to your > value, with the answer depending on the mode. HP seems to be > weaseling out of this by saying in the AUR that exact mode should be > set and it's the user's fault for not noticing this. > That sounds like the thousand conditions companies put on warranties > and so on. I once rented a van from the Budget car rental firm > because their advertising said $20 a day. When I returned the van > in the afternoon, the charge was $40. They explained, A day is four > hours. It's always nice to run your own universe. :-) When I use a word, Humpty-Dumpty said, it means just what I choose it to mean -- neither more nor less Lewis Carroll, Through the Looking Glass... (1872) And I am right, and you are right, and all is right as right can be W. S. Gilbert, The Mikado (1885) === Subject: Re: RISCH vs. INT > Isn't '-COS(pi)' equal to 1? Well, any result at all (for INT) is potentially correct! (because indefinite integrals may include any arbitrary constant -- provided the same arbitrary constant is used for all answers for a given first two inputs :) Is there a definition of how to standardize the arbtrary constant? BTW, Exact mode must be set (says INT in the AUR); it might be considered a bug if this is not detected, giving wrong results, unless we adopt an I told you so or Caveat Emptor philosophy about everything. === Subject: Re: RISCH vs. INT InfoPath.1; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; .NET CLR 1.1.4322; .NET CLR 3.0.04506.648),gzip(gfe),gzip(gfe) BTW, Exact mode must be set (says INT in the AUR); > it might be considered a bug if this is not detected, > giving wrong results, unless we adopt an I told you so > or Caveat Emptor philosophy about everything. > Yup. INT seems okay for antiderivatives, but if you put in a numerical value, it returns the definite integral from zero to your value, with the answer depending on the mode. HP seems to be weaseling out of this by saying in the AUR that exact mode should be set and it's the user's fault for not noticing this. That sounds like the thousand conditions companies put on warranties and so on. I once rented a van from the Budget car rental firm because their advertising said $20 a day. When I returned the van in the afternoon, the charge was $40. They explained, A day is four hours. It's always nice to run your own universe. :-) Bill === Subject: Re: RISCH vs. INT >BTW, Exact mode must be set (says INT in the AUR); >it might be considered a bug if this is not detected, >giving wrong results, unless we adopt an I told you so >or Caveat Emptor philosophy about everything. Yup. INT seems okay for antiderivatives, but if you put in a > numerical value, it returns the definite integral from zero to your > value, with the answer depending on the mode. HP seems to be > weaseling out of this by saying in the AUR that exact mode should be > set and it's the user's fault for not noticing this. Bill There are some other strange things going on here. INT is discussed in the 50g Users Guide on page 13-14. As previously mentioned, it is not on the CAS help menu. Also, when I choose upper left arrow and then Calc for the calculus menu. INT is not on that menu and when I then choose 1. DERIV. & INTEG.., INT is not on that menu either. So Int exists in the manual but not on the 59g? Apparently INT was deleted from the cas but not from the manual? No so, I can enter INTusing the alpha key and if I enter INT(x,x) Invalid syntax is returned so INT is NOT okay for antiderivatives, but adding a value of 1, returns 1/2 which is indeed the area under the curve from 0 to one and that is in exact mode. Then when I enter INT(x,x,1) in approx mode .5 is returned which again is a correct answer. So the question is was INT deleted from the CALC menu at some point? Is someone at HP trying to say don' t use it but they forgot to take it out of the manual? I think so. === Subject: Re: RISCH vs. INT > There are some other strange things going on here. Alien invaders? > INT is discussed in the 50g Users Guide on page 13-14. > It is not on the CAS help menu. Also, when I choose upper left arrow > and then Calc for the calculus menu. INT is not on that menu and when > I then choose 1. DERIV. & INTEG.., INT is not on that menu either. > So INT exists in the manual but not on the 50g? > Apparently INT was deleted from the CAS but not from the manual? Try the CATalog :) The Command Menu-Path Table (Appendix I of the latest AUR) shows INT as not being in any built-in menu, but then, neither are KEYTIME, LANGUAGE, MINIFONT, FONT6 thru FONT8, PMAX, PMIN (original commands from HP48S/G) and others, so don't feel too sorry for INT :) Considering the essentially arbitrary nature of INT, in which only the difference between its values for two different final arguments has any precise significance, it is a very poor function indeed, and might as well be banished to a coal bin for pretending to be hungry for input, like Oliver Twist :) http://www.answers.com/topic/oliver-twist-novel-7 === Subject: Re: RISCH vs. INT InfoPath.1; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; .NET CLR 1.1.4322; .NET CLR 3.0.04506.648),gzip(gfe),gzip(gfe) >[INT] is a very poor function indeed, > and might as well be banished to a coal bin > for pretending to be hungry for input, like Oliver Twist :) It took quite a thread to arrive at that. :-) I had always assumed they meant an integration from zero to the numerical input value. It things. Bill === Subject: Re: RISCH vs. INT posting-account=GT4frAoAAADMvAtJu2WIOkYTwgy0O29T 1.1.4322; InfoPath.2),gzip(gfe),gzip(gfe) >There are some other strange things going on here. Alien invaders? > INT is discussed in the 50g Users Guide on page 13-14. >It is not on the CAS help menu. Also, when I choose upper left arrow >and then Calc for the calculus menu. INT is not on that menu and when >I then choose 1. DERIV. & INTEG.., INT is not on that menu either. >So INT exists in the manual but not on the 50g? >Apparently INT was deleted from the CAS but not from the manual? Try the CATalog :) The Command Menu-Path Table (Appendix I of the latest AUR) > shows INT as not being in any built-in menu, but then, > neither are KEYTIME, LANGUAGE, MINIFONT, FONT6 thru FONT8, > PMAX, PMIN (original commands from HP48S/G) and others, > so don't feel too sorry for INT :) Considering the essentially arbitrary nature of INT, > in which only the difference between its values > for two different final arguments > has any precise significance, > it is a very poor function indeed, > and might as well be banished to a coal bin > for pretending to be hungry for input, like Oliver Twist :) http://www.answers.com/topic/oliver-twist-novel-7 deal about INT. Now if I could figure out what SIGMA is all about I'd be done for a while. Care to have go at explaining what sigma is all about? I get the impression that it is somehow related to the Gamma function. === Subject: Stack manipulation for Array posting-account=EnsxjQoAAAAC4ntxvhot7w8LkhBoqyQP 2.0.50727; .NET CLR 1.1.4322; .NET CLR 3.0.04506.30),gzip(gfe),gzip(gfe) calculadorashp.org), and now i into the hpgcc enviroment for program some slow code of my programs (structural analysis programs writed in SysRPL). i try to write a code to subst some values from a matrix (6x6), but i dont know how manage symbolic expression in HPGCC. For this reason i made this code, that create the matrix from a 5 elements input (like AE, EI, L, COS(), SIN()), but i have some problems with the stack manipulation for pushing the final matrix (to the stack or to handle with the next module of my program). I made this code because the MEVALext SysRPL command take long long time to evaluate one matrix in aprox mode -in exact mode take more time-) Thanx to all the comunity, sorry my mixed english and Feliz Navidad y Pr.97spero a.96o Nuevo // Merry Christmas and Happy New Year // Buon Natale e felice anno nuovo ---------------------------------------------------------------------------- -- #include //the standard HP lib int main(void){ double AE,EI,L,DX,DY,RIGK[6][6]; array t *RIGK; AE = sat pop real(); EI = sat pop real(); L = sat pop real(); DX = sat pop real(); DY = sat pop real(); sys slowOff(); RIGK[0][0] = (DX*DX*(L*L)*AE+12*DY*DY*EI)/(L*L*L); RIGK[0][1] = (DX*DY*(L*L)*AE-12*DX*DY*EI)/(L*L*L); RIGK[0][2] = -6*DY*EI/(L*L); RIGK[0][3] = -(DX*DX*(L*L)*AE+12*DY*DY*EI)/(L*L*L); RIGK[0][4] = -(DY*DX*(L*L)*AE-12*DX*DY*EI)/(L*L*L); RIGK[0][5] = RIGK[0][2]; RIGK[1][0] = RIGK[0][1]; RIGK[1][1] = (DY*DY*(L*L)*AE+12*DX*DX*EI)/(L*L*L); RIGK[1][2] = 6*DX*EI/(L*L); RIGK[1][3] = RIGK[0][4]; RIGK[1][4] = -RIGK[1][1]; RIGK[1][5] = RIGK[1][2]; RIGK[2][0] = RIGK[0][2]; RIGK[2][1] = RIGK[1][2]; RIGK[2][2] = 4*EI/L; RIGK[2][3] = 6*DY*EI/(L*L); RIGK[2][4] = -RIGK[1][2]; RIGK[2][5] = 2*EI/L; RIGK[3][0] = RIGK[0][3]; RIGK[3][1] = RIGK[0][4]; RIGK[3][2] = RIGK[2][3]; RIGK[3][3] = (DX*DX*(L*L)*AE+12*DY*DY*EI)/(L*L*L); RIGK[3][4] = RIGK[0][1]; RIGK[3][5] = RIGK[2][3]; RIGK[4][0] = RIGK[0][4]; RIGK[4][1] = RIGK[1][4]; RIGK[4][2] = RIGK[2][4]; RIGK[4][3] = RIGK[3][4]; RIGK[4][4] = (DY*DY*(L*L)*AE+12*DX*DX*EI)/(L*L*L); RIGK[4][5] = -RIGK[1][2]; RIGK[5][0] = RIGK[0][5]; RIGK[5][1] = RIGK[1][5]; RIGK[5][2] = RIGK[2][5]; RIGK[5][3] = RIGK[3][5]; RIGK[5][4] = RIGK[4][5]; RIGK[5][5] = RIGK[2][2]; sat push realarray(6,6,RIGK); sys slowOn(); return(0); } === Subject: ROM 2.09 posting-account=dcKJXgoAAAAS2a4Ea4zURDsXg6Afujry .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.0.04506),gzip(gfe),gzip(gfe) I am having a proboem with downloading the ROM upgrade. It acts like it is going to download, but there is no transfer of data. I tried to follow the instructions, but they were a bit unclear as to the buttons Norm === Subject: Re: ROM 2.09 posting-account=sOAX1QkAAAC-FcySTSbz29Uk8huUtFRz CLR 1.1.4322; .NET CLR 2.0.50727),gzip(gfe),gzip(gfe) > I am having a proboem with downloading the ROM upgrade. It acts like > it is going to download, but there is no transfer of data. I tried to > follow the instructions, but they were a bit unclear as to the buttons Norm Are you using an SD card or Conn4x? S.C. === Subject: Re: ROM 2.09 posting-account=dcKJXgoAAAAS2a4Ea4zURDsXg6Afujry .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.0.04506),gzip(gfe),gzip(gfe) > I am having a proboem with downloading the ROM upgrade. It acts like >it is going to download, but there is no transfer of data. I tried to >follow the instructions, but they were a bit unclear as to the buttons > Norm Are you using an SD card or Conn4x? S.C. I'm using Conn4x === Subject: Re: ROM 2.09 posting-account=sOAX1QkAAAC-FcySTSbz29Uk8huUtFRz CLR 1.1.4322; .NET CLR 2.0.50727),gzip(gfe),gzip(gfe) > I'm using Conn4x Instructions are online here: http://www.educalc.net/2137081.page S.C. === Subject: Re: Using LINSOLVE > I'd try CASCFG first > which defaults the CAS back to its desired settings. Yes, LINSOLVE works if CASCFG is performed first. The fact that one may otherwise get an internal error, rather than a request to change some mode or setting, if every flag is not already pre-set to a particular state, is more or less a bug, for which CASCFG is the work-around. ROM 2.09 is pretty good, and 2.10 (wherever it is) is no doubt slightly better, and I wonder, upon which version are any plans for an HPGCC rom going to be based? === Subject: Re: Using LINSOLVE - needs CASCFG Besides LINSOLVE erroring, another example where things go a bit wild if CASCFG is not performed first, viz: a REF command may perform RREF instead, or may also give Undefined Local Name for those commands and others: Here's a case needing Rigorous mode, which is included in what CASCFG sets up: The precise actions of CASCFG and XQ: The CASCFG command sets all the CAS' favorite modes in advance (clears flags -2, -3, -99 thru -116, -118 thru -127, sets flags -17 [RADian angles], -27, and -128), in addition to resetting some items found in CASDIR (VX, EPS, PERIOD, REALASSUME, MODULO). The XQ command clears flags -2, -102, and -105 (producing Exact mode), and converts all reals in expressions to integers or fractions, without otherwise mucking around with other mode settings, so it can be useful in preparing any input containing reals to be acceptable to the CAS, but with fewer side-effects. Other details at An old post with details about CASDIR, CASCFG, STOVX, RCLVX: Note: STOVX and RCLVX were subsequently added to the UserRPL command set, so there is now no need to create programs for them. === Subject: Re: Using LINSOLVE posting-account=sOAX1QkAAAC-FcySTSbz29Uk8huUtFRz CLR 1.1.4322; .NET CLR 2.0.50727),gzip(gfe),gzip(gfe) >That's it!!! Just to make sure that I understand, When you say That's it!!! are > you refering to my OS version? That the problem is a bug in version > 2.08 that is corrected by version 2.09? I wonder if I can send my 50g > to Hp and have them update the OS? I looked at the update > instructions and just don't understand the terminology and would > probably mess up my calculator if I try to do it myself. Oh well, > Christmas. I don't think HP will update ROMs. Do you have an SD card? If so, maybe this video walkthrough will help: If not, there is a second way to update the ROM. This uses the PC connectivity kit (I don't think Macs are officially supported by HP at the moment, but there is an app on SourceForge) called Conn4x: http://h20000.www2.hp.com/bizsupport/TechSupport/SoftwareIndex.jsp?lang=en&c c=us&prodNameId=3235174&prodTypeId=215348&prodSeriesId=3235173&swLang=8&taskI d=135&swEnvOID=228 Instructions for the ROM update using Conn4x: http://www.educalc.net/2137081.page Instructions for the ROM update using an SD card (in slightly different wording than on hpcalc.org): http://www.educalc.net/284489.page S.C. === Subject: Re: Using LINSOLVE You are so right, sir! > Just to make sure that I understand, When you say That's it!!! are > you refering to my OS version? That the problem is a bug in version > 2.08 that is corrected by version 2.09? I wonder if I can send my 50g > to Hp and have them update the OS? I looked at the update > instructions and just don't understand the terminology and would > probably mess up my calculator if I try to do it myself. Oh well, > Christmas. I don't think HP will update ROMs. Do you have an SD card? If so, maybe this video walkthrough will help: If not, there is a second way to update the ROM. This uses the PC connectivity kit (I don't think Macs are officially supported by HP at the moment, but there is an app on SourceForge) called Conn4x: http://h20000.www2.hp.com/bizsupport/TechSupport/SoftwareIndex.jsp?lang=en&c c=us&prodNameId=3235174&prodTypeId=215348&prodSeriesId=3235173&swLang=8&taskI d=135&swEnvOID=228 Instructions for the ROM update using Conn4x: http://www.educalc.net/2137081.page Instructions for the ROM update using an SD card (in slightly different wording than on hpcalc.org): http://www.educalc.net/284489.page S.C. === Subject: The advanced users reference manual posting-account=GT4frAoAAADMvAtJu2WIOkYTwgy0O29T 1.1.4322; InfoPath.2),gzip(gfe),gzip(gfe) Does any one know of a used book store from whom I might purchase a copy of the Hp 48g Series advanced users reference manual (HP part no. 00048-90136). This item is no longer available from HP. === Subject: Re: The advanced users reference manual > Does any one know of a used book store from whom I might purchase a > copy of the Hp 48g Series advanced users reference manual (HP part no. > 00048-90136). This item is no longer available from HP. Because you are a 50g user, please contact me privately if you are interested in a paper copy of the 48gII/49g+ advanced user's reference manual, which is also applicable to the 50g. It's about 650 pages in two volumes, 8.5 x 11, spiral bound. The 48G series AUR is a great manual, but everything in it is also in the newer manual, so unless you are also using the 48GX you'd probably prefer the newer manual. Of course, all these manuals are also available for free download, as other posters have pointed out. Eric Rechlin === Subject: Re: The advanced users reference manual >Does any one know of a used book store from whom I might purchase a >copy of the Hp 48g Series advanced users reference manual (HP part no. >00048-90136). This item is no longer available from HP. Because you are a 50g user, please contact me privately if you are > interested in a paper copy of the 48gII/49g+ advanced user's reference > manual, which is also applicable to the 50g. It's about 650 pages in two > volumes, 8.5 x 11, spiral bound. The 48G series AUR is a great manual, but everything in it is also in the > newer manual, so unless you are also using the 48GX you'd probably prefer > the newer manual. Of course, all these manuals are also available for free download, as other > posters have pointed out. === Subject: Re: The advanced users reference manual > Does any one know of a used book store from whom I might purchase a > copy of the Hp 48g Series advanced users reference manual (HP part no. > 00048-90136). This item is no longer available from HP. HP48 AUR: http://www.hpcalc.org/details.php?id=6036 HP48 User's Guide: http://www.hpcalc.org/details.php?id=3937 S.C. === Subject: Re: The advanced users reference manual > Does any one know of a used book store from whom I might purchase > a copy of the Hp 48g Series advanced users reference manual > (HP part no. 00048-90136) A potential paper-saving alternative: http://www.hpcalc.org/details.php?id=6036 http://www.hpcalc.org/hp48/docs/misc/hp48gaur.zip It seems to be a popular book: http://www.hpmuseum.org/cgi-sys/cgiwrap/hpmuseum/archv015.cgi?read=87225 http://www.hpmuseum.org/cgi-sys/cgiwrap/hpmuseum/archv001.cgi?read=2746 The HP50G (current) version includes most of the same info, plus useless extras about HP49G/49G+/50G :) The following is a really great alternative (or additional) book: http://www.amazon.com/HP-48-Handbook-2nd/dp/1879828049 http://openlibrary.org/b/OL12118367M http://www.paperbackswap.com/book/details/9781879828049-The+HP+48+Handbook+2 nd+Edition A reviewer says: This book is virtually indispensible. I find it much more useful than the AUR, even though it isn't as comprehensive, because it is much more compact (at 5 wide by 7 tall by 7/8 thick) and covers more than just User RPL programming. This gives much more advanced examples of graphics and provides a good introduction to System RPL. === Subject: Re: The advanced users reference manual >Does any one know of a used book store from whom I might purchase >a copy of the Hp 48g Series advanced users reference manual >(HP part no. 00048-90136) A potential paper-saving alternative:http://www.hpcalc.org/details.php?id=6036http://www.hpcalc.org/hp 48/docs/misc/hp48gaur.zip It seems to be a popular book:http://www.hpmuseum.org/cgi-sys/cgiwrap/hpmuseum/archv015.cgi?read=87225 http://www.hpmuseum.org/cgi-sys/cgiwrap/hpmuseum/archv001.cgi?read=2746 The HP50G (current) version includes most of the same info, > plus useless extras about HP49G/49G+/50G :) The following is a really great alternative (or additional) book:http://www.amazon.com/HP-48-Handbook-2nd/dp/1879828049http://openlibrary .org/b/OL12118367Mhttp://www.paperbackswap.com/book/details/9781879828049-The +HP+48+Han... > A reviewer says: > This book is virtually indispensible. > I find it much more useful than the AUR, > even though it isn't as comprehensive, > because it is much more compact (at 5 wide by 7 tall by 7/8 thick) > and covers more than just User RPL programming. > This gives much more advanced examples of graphics > and provides a good introduction to System RPL. You beat me by 37 seconds :) (and provided additional info) S.C. === Subject: Best whishes Althought i realize there are many people and many religions... i belive this to be a great night for great whishes ! So here goes my small list of great whishes for everyone, { health love happiness satisfaction piece some money too } ...ofcourse you're welcome to re-order according to your needs or preference == Subject: User RPL Programming Environement---What is best? I'm new to this group, but I have a 48Gx, 49g, and 50g, all of which I love. But I find that I don't get much traction in getting into User RPL and would like a little help. 1. I have installed the Emacs editor extension, and it looks good, but the documentation seems to assume the user is a bit more sophisticated than me. I have the library on my 50g, but when I try to follow the instructions. Here they are: In general you should not use the EMACS library menu to access the commands. Instead, assign RPLED to a key as shown below and use the application menu installed by this command. We also recommend assigning RPLCPL to keys both with and without alpha mode, since you will be using this command a lot. You may want to assign other commands as well if you find you need them all the time. An easy way to make several useful key assignments is to - use the APPS key - select the Emacs entry - press the AsnEmacs menu key - press OK. This will produce the following key assignments (the & means that you need to hold the Shift key): Before doing the above, I hit USER, then followed the instructions. But when I put a program on stack level 1, then hold down the RS then DOWN, I just get the full menu list, the same as I do when I don't hold the RS key. Is there something I should be doing other than this? Do I need KeyMan installed? 2. Apart from the above, another real impediment for doing long programs is the HP's stripping out of white space from the programs. I understand that it doesn't store the code but a compiled form of it, but this makes working with longer programs painful. I have heard that you can enclose the program in a string and keep the formatting, but then how do you use it? Is it possible to configure the calc to treat a string with a << as the first character the same as a normal program? This to me would be a *vast* improvement in the programming environment of the HP50g. That's all for now. This is a great group, I would appreciate any help on these two things. Let me know if I'm not giving enough info. === Subject: Re: User RPL Programming Environement---What is best? posting-account=eF2f0AoAAAB2spBRiZOs91ItDKLGDCIk Gecko/2008120122 Firefox/3.0.5,gzip(gfe),gzip(gfe) I would recommend having a look to Debug4x, maintained by Bill Graves. http://www.debug4x.com/ It is really appropriate to large projects; beyond an excellent editor with command auto-completion, you'll get the possibility to debug your application with breakpoints on an emulator, which makes a large difference in tracking down bugs. Note that the development language of choice is SysRPL, an more complete version of UserRPL. You can still use UserRPL whenever if you wish, with an x letter just in front, for example xCRDIR. For detailed information on SysRPL available commands, i recommend using Carsten's list : http://staff.science.uva.nl/~dominik/hpcalc/entries/index.html === Subject: Re: SD Cardreader Problem and Fix > The central question is: How can software bypass the switch, which > supposedly locks the card, and store/delete at will? The software doesn't need to bypass the switch, it is actually the software the one that has to do extra work to read the state of the switch and refuse to write accordingly. The switch only shows a state write protect, and the software can either acknowledge or disregard. Like John said above, many devices just don't pay attention to this switch and write anyway. SDLIB does exactly that: ignore it. It never occurred to me that someone would ever want to lock the SD card for writing on his calculator, and I never tried that in my own calculator, ever. I'd have thought there would be a physical/electrical barrier to such > behavior, but there I go thinking again ... Nah, you're thinking too hard... Claudio === Subject: Re: SD Cardreader Problem and Fix So John Steinbeck [Nobel Prize, Literature, 1962] seems to have been right: The yellowing, dusty, afternoon light put a golden color on the land. The cornstalks looked golden. A flight of swallows swooped overhead toward some waterhole. The turtle in Joad's coat began a new campaign of escape. Joad creased the visor of his cap. It was getting the long protruding curve of a crow's beak now. Guess I'll mosey along, he said. I hate to hit the sun, but it ain't so bad now. Casy pulled himself together. I ain't seen ol' Tom in a bug's age, he said. I was gonna look in on him anyways. I brang Jesus to your folks for a long time, an' I never took up a collection nor nothin' but a bite to eat. Come along, said Joad. Pa'll be glad to see you. He always said you got too long a pecker for a preacher. The Grapes of Wrath 1939 [Pulitzer Prize] http://en.wikipedia.org/wiki/The_Grapes_of_Wrath http://www.archive.org/stream/grapesofwrath030650mbp/grapesofwrath030650mbp_ djvu.txt http://nobelprize.org/nobel_prizes/literature/laureates/1962/steinbeck-bio.h tml http://www.pulitzer.org/awards/1940 http://www.pulitzer.org/bycat/Novel http://www.steinbeck.org/ -[ ]- === Subject: MSLV not working Does any one recall if there is a problem with MSLV not working with OS version 2.08? Once again, I enter the example problem from the Users Guide several times, carefully checking for entry errors and then I try a similiar problem but I keep getting the same error message. In this case it is MSLV Error: Bad Argument Type. This is similiar to the problem I had with LINSOLVE that I described in the post below. I wonder, did HP put out any kind of notice indicating what functionality won't work on calculators using OS 2.08? With the LINSOLVE problem, I can work around it by using Solve Lin Sys.. instead, but with this problem I can't think of a work around for solveing simultaneous non-linear equations. Anyone got any ideas? If I get OS 2.09 on my calculator, are there some functions that won't work then? === Subject: Re: MSLV not working > Does any one recall if there is a problem with MSLV not working with > OS version 2.08? Once again, I enter the example problem from the > Users Guide several times, carefully checking for entry errors and > then I try a similiar problem but I keep getting the same error > message. In this case it is MSLV Error: Bad Argument Type. This is > similiar to the problem I had with LINSOLVE that I described in the > post below. I wonder, did HP put out any kind of notice indicating what > functionality won't work on calculators using OS 2.08? With the > LINSOLVE problem, I can work around it by using Solve Lin Sys.. > instead, but with this problem I can't think of a work around for > solveing simultaneous non-linear equations. Anyone got any ideas? If I get OS 2.09 on my calculator, are there some functions that won't > work then? > Update to ROM 2.09C. This will fix the LINSOLVE problem too. I haven't run into any issues with ROM 2.09 yet. S.C. === Subject: Re: HP 50g keys posting-account=_oCSzAoAAAB7yYuxA-qEbYywlmh1EFjt 5.1),gzip(gfe),gzip(gfe) Never tried the hp50g myself. After an EXTREEMLY sucky experience with the hp49g+, I decided not to even bother with the newer HP calcs. Instead I have decided purchased a hp48gx calc to replace the one that broke on me years ago. === Subject: Re: HP 50g keys > Never tried the hp50g myself. After an EXTREEMLY sucky experience > with the hp49g+, I decided not to even bother with the newer HP calcs. Instead I have decided purchased a hp48gx calc to replace the one that > broke on me years ago. GOOD...AND BAD === Subject: Re: HP 50g keys >> Never tried the hp50g myself. After an EXTREEMLY sucky experience >> with the hp49g+, I decided not to even bother with the newer HP calcs. >> BAD >> Instead I have decided purchased a hp48gx calc to replace the one that >> broke on me years ago. GOOD(maybe) GOOD...AND BAD > === Subject: Installing Emacs and Formatted UserRPL posting-account=kSyaOAkAAABaqKHaQ8qUzyG2kFubDVsp Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5,gzip(gfe),gzip(gfe) > I would recommend having a look to Debug4x, maintained by Bill Graves.http://www.debug4x.com/ > Yann, but right now I'm looking for a good environment for User RPL that is portable, i.e., on the calculator, and emacs looks like a good candidate. If only I can get it working and get it to keep formatting. However, I do suspect that the answer to treating << ... >> strings the same as << .. >> probably lies in the realm of SysRPL. Since its Christmas, I have some time to spend with this. I changed the Subject since I realized it didn't really fit with what I was asking. === Subject: Re: Installing Emacs and Formatted UserRPL posting-account=kSyaOAkAAABaqKHaQ8qUzyG2kFubDVsp Gecko/2008121623 Ubuntu/8.10 (intrepid) Firefox/3.0.5,gzip(gfe),gzip(gfe) Yann's suggestion did prompt me to read Appendix A to the Programming SysRPL book on hpcalc.org. It has a much fuller discussion of the installation of EMACS, and it seems to have fixed problem 1 above. It appears that I needed to install Keyman before doing APPS, Emacs, AsnEm as described in the manual. The manual's tutorial starts This tutorial assumes that you have installed Emacs.lib and SDIAG.lib. I think it should also mention that it assumes Keyman is installed. Also, I followed the instructions for a 49G on a 50G. Is that the thing to do? Some of the 50G functions (EXP&LN) don't seem to have a stack diagram when I hit LS UP as stated in the tutorial, though the EXPAND command does, e.g.. Hope this helps those getting started like me. Merry Christmas. === Subject: Re: Installing Emacs and Formatted UserRPL posting-account=Q2CEjQoAAACue5ZDDhUeRzv1w0u8hxZE rv:1.9.0.5) Gecko/2008120121 Firefox/3.0.5,gzip(gfe),gzip(gfe) > It has a much fuller discussion of the installation of EMACS, and it > seems to have fixed problem 1 above. It appears that I needed to > install Keyman before doing APPS, Emacs, AsnEm as described in the > manual. Strange. I never have Keyman installed and it works fine for me. I suspect the keys weren't actually getting assigned somehow. TW === Subject: Using the HP 48 Browser (on 50g) posting-account=ky6NnQoAAAAl8HjjF10EUMKbzXiIKhTR Gecko/2008120122 Firefox/3.0.5,gzip(gfe),gzip(gfe) Hello all, provided in the section Using the HP 48 Browser found on Page 240 of Programming in System RPL (2nd Ed.) Anyways, used it for a while and everything was great until recently I accidentally crashed it. After a fair bit of head scratching I found that the crash could be reproduced if I pressed any of the number keys (0-9), SPC, or X and then exited the program either by CANCL or ON. I then keyed in the example exactly as shown the book to see if the same thing happens, and yes it does. Using the example, say even with an empty list of equations, if I start the program then press any other key, for example NXT, then I press CANCL the program will exit and FALSE (TRUE if OK is pressed) will be left on the stack, great just as expected. However when pressing one of the keys I mentioned you are left with an empty stack, which can create problems. My first thought was that there must be a message for the ::Appl parameter that would disable those keys but none of the ones mentioned in the book seem to be appropriate. I know the Flag Browser uses the number keys to jump to the flag starting with corresponding number, and pressing SPC or X has no negative effect other than seeing the hour glass come on for a short time. I would appreciate if someone could provide some insight as to how to make this a non-issue. Below I have pasted the example from the book. Jacob :: NULL{} ' BINT1 DOBIND ' :: BINT60 #=casedrop TrueTrue BINT62 #=casedrop :: LENCOMP DUP#0=IT #1+ TRUE ; BINT82 #=casedrop :: SWAP NTHELCOMP ITE :: setStdWid FPTR 4 7 ; No Equations TRUE ; BINT83 #=casedrop :: { { Add :: PushVStack&Clear DoNewEqw DEPTH #0<> IT :: SWAP >TCOMP ' STO ROMPTR B3 3E ; PopMetaVStackDROP ; } { Del :: INNERDUP #0=case DROP PushVStack&Keep reversym DROP ROLL DROP #1- UNROLL DEPTH {}N ' STO PopMetaVStackDROP ROMPTR B3 3E #MIN FALSE ROMPTR B3 19 ; } { Edit :: NTHELCOMP NOT?SEMI FPTR 4 11 NOT?SEMI PUTLIST ' STO ; } NullMenuKey { CANCL FPTR 2 9E } { OK FPTR 2 9D } } TRUE ; DROPFALSE ; Pseudo-Plot ' NULL:: NULL{} BINT1 ROMPTR B3 0 ABND ; @ === Subject: Re: Using the HP 48 Browser (on 50g) posting-account=ky6NnQoAAAAl8HjjF10EUMKbzXiIKhTR Gecko/2008120122 Firefox/3.0.5,gzip(gfe),gzip(gfe) Just an afterthought, the code I pasted was compiled on my calculator using ROM 2.09, not sure, but just in case the following could cause issue on different calculator or ROM > FPTR 4 7 is FPTR2 ^FSTR7 > FPTR 4 11 is FPTR2 ^EQW3Edit > FPTR 2 9E is FPTR2 ^DoCKeyCancel > FPTR 2 9D is FPTR2 ^DoCKeyOK > ROMPTR B3 0 is ROMPTR2 ~Choose as shown in the example. === Subject: Invalid Syntax due to OBJ-> posting-account=5jQj0AoAAAAGAGJcqkkpunLMBpVi1N5o 2.0.50727; .NET CLR 3.0.04506.30),gzip(gfe),gzip(gfe) << 1 CF DO 28 MENU CREATE NEW FILE { { 1 0 } Ga V } INPUT IFERR OBJ-> THEN Invalid CR Syntax DOERR ELSE 1 SF END UNTIL 1 FS? END 0 MENU >> Is there any way to code this so that DOERR does not abandon program execution? Also, what is the correct ASCII xx symbol for CR? Mark === Subject: Re: Invalid Syntax due to OBJ- > << 1 CF DO 28 MENU > CREATE NEW FILE > { { 1 0 } Ga V } INPUT > IFERR OBJ-> THEN > Invalid CR Syntax > DOERR ELSE 1 SF > END UNTIL 1 FS? > END 0 MENU > > > Is there any way to code this > so that DOERR does not abandon > program execution? Also, what is > the correct ASCII xx symbol for CR? Since the 'V' in the list argument causes INPUT to check syntax itself (and won't let INPUT complete unless the string is already compilable), how does OBJ-> ever fail afterwards? 010 translates to a newline, as also does an actual newline within a string (CRs are removed during any translation which understands backslashes) 10 CHR may also be used to create isolated newlines, which may then be concatenated to other strings using + Any program using IFERR should either first clear flag -55 or else test flag -55 after IFERR to determine what's on the stack, because the arguments of erroring user commands are returned to the stack only when that flag is cleared, so a potential bug lurks if this is not made certain beforehand. so one may wish to use IFERR to trap the error in INPUT Finally, there is no way to know what INPUT OBJ-> will do, or what it may leave on one's stack -- it might be a single object, it might be ten objects, it might be no object, or it might cause typed commands to be executed, whose effects could be anything (change directory, delete all variables, etc.) One simple way to reduce the uncertainty of what INPUT OBJ-> will do is to modify that to INPUT { SWAP + OBJ-> Now you are fairly sure that the result will be one list on the stack, which may within that list contain one object, or more than one, or even none, and also that any commands will tend to remain unevaluated. A completely bullet-proof alternative to OBJ-> or STR-> for compiling strings is this STRC program: A slightly awkward alternate UserRPL version of STRC is also found within Ascii Import/Export for SD card and Emulator === Subject: Re: Invalid Syntax due to OBJ-> posting-account=5jQj0AoAAAAGAGJcqkkpunLMBpVi1N5o 2.0.50727; .NET CLR 3.0.04506.30),gzip(gfe),gzip(gfe) > << 1 CF DO 28 MENU > CREATE NEW FILE >{ { 1 0 } Ga V } INPUT >IFERR OBJ-> THEN >Invalid CR Syntax >DOERR ELSE 1 SF >END UNTIL 1 FS? >END 0 MENU >> >Is there any way to code this >so that DOERR does not abandon >program execution? Also, what is >the correct ASCII xx symbol for CR? Since the 'V' in the list argument causes INPUT > to check syntax itself (and won't let INPUT complete > unless the string is already compilable), > how does OBJ-> ever fail afterwards? 010 translates to a newline, > as also does an actual newline within a string > (CRs are removed during any translation which understands backslashes) 10 CHR may also be used to create isolated newlines, > which may then be concatenated to other strings using + Any program using IFERR should either first clear flag -55 > or else test flag -55 after IFERR to determine what's on the stack, > because the arguments of erroring user commands are returned to the stack > only when that flag is cleared, so a potential bug lurks > if this is not made certain beforehand. so one may wish to use IFERR to trap the error in INPUT Finally, there is no way to know what INPUT OBJ-> will do, > or what it may leave on one's stack -- it might be a single object, > it might be ten objects, it might be no object, > or it might cause typed commands to be executed, > whose effects could be anything (change directory, > delete all variables, etc.) One simple way to reduce the uncertainty of what INPUT OBJ-> will do > is to modify that to INPUT { SWAP + OBJ- > Now you are fairly sure that the result will be one list on the stack, > which may within that list contain one object, or more than one, > or even none, and also that any commands will tend to remain unevaluated. A completely bullet-proof alternative to OBJ-> or STR- > A slightly awkward alternate UserRPL version of STRC is also found within - Hide quoted text - - Show quoted text - > Since the 'V' in the list argument causes INPUT > to check syntax itself (and won't let INPUT complete > unless the string is already compilable), > how does OBJ-> ever fail afterwards? Well, using my code above, if I ENTER [l->] # I get Invalid Syntax with a new menu with [OK]. That's a good thing, and then after pressing [OK] you return to the previous menu and prompt. But, if I ENTER [r->] < I get < Error: Too Few Arguments and the program is abandoned. I was hoping to trap any errors caused by even the most reckless INPUT. I was also interested in producing the same error message and recursive effect as is produced with Invalid Syntax. I want my error message and the way the error message is handled to be consistent across the board. > so one may wish to use IFERR to trap the error in INPUT For this I use <<...IFERR INPUT THEN DROP2 1420 .074 BEEP 0 MENU ELSE...END...>>. I'll try all of your suggestions and try to figure out some better code. Have a happy New Year! === Subject: Re: Invalid Syntax due to OBJ- << 1 CF DO 28 MENU > CREATE NEW FILE > { { 1 0 } Ga V } INPUT > IFERR OBJ-> THEN > Invalid CR Syntax > DOERR ELSE 1 SF > END UNTIL 1 FS? > END 0 MENU > >> JHM: >> Since the 'V' in the list argument causes INPUT >> to check syntax itself (and won't let INPUT complete >> unless the string is already compilable), >> how does OBJ-> ever fail afterwards? MH: > Well, using my code above, if I ENTER [l->] # > I get Invalid Syntax with a new menu with [OK]. > That's a good thing, and then after pressing [OK] > you return to the previous menu and prompt. In this case, you have never actually completed the INPUT command, which won't exit until no syntax errors remain when you press ENTER. In other words, this Invalid Syntax message is generated by the INPUT command itself, not by what unnecessarily follows in your program. > But, if I ENTER [r->] < > I get < Error: Too Few Arguments > and the program is abandoned. You do? How, with that program? In this case, < is syntactically valid by itself, so INPUT should exit normally, then your OBJ-> should cause the string to be compiled (becoming the less than command) and _run_; at this point, the less than command might find too few arguments on the stack. However, your own IFERR command should suppress the actual error message and replace it with your own Invalid Syntax message -- a misleading message, because the problem has nothing to do with syntax in this case! INPUT OBJ-> is pretty nearly the same as just typing into the command line from the keyboard; you remain in the command (text) editor until syntax is valid, then whatever you have typed is compiled and _run_ (data objects then simply enter the stack, while executable objects, such as commands, are actually performed). If replace your DOERR with MSGBOX, your program will loop on execution errors, as you desired, but it will still wrongly say Invalid Syntax even if the error is actually Too Few Arguments etc. So I don't see what all this accomplishes, that isn't already accomplished by just directly typing into the command line. > I was hoping to trap any errors caused by > even the most reckless INPUT. I was also > interested in producing the same error > message and recursive effect as is produced > with Invalid Syntax. I want my error message > and the way the error message is handled to > be consistent across the board. If you mean you would like < to be highlighted in your original string, the same as a syntax error, leaving you to continue editing further, this won't happen, because the INPUT command has finished its job when the string can be compiled (INPUT actually compiles it to test its syntax, but discards the result without evaluating it, returning instead only the edited string). When you perform OBJ-> on the edited string, the entire string is first compiled and _replaced_ by the binary result of compilation (now the original string no longer even exists), then the binary object is evaluated, by which time there is no way to relate any run-time error to any particular part of the original string. You also can not reverse any effects of part of the string which may already have executed without error, e.g. if you type CLEAR < then the less than command will error, but first the entire stack was dropped, and you won't get that back, nor would various other already-performed actions (e.g. purging variables, changing flags) be recoverable, etc. You could (usually, if Last Stack is enabled) perform an UNDO (with SysRPL) upon error in OBJ-> but this could only restore the stack, which is not all that could have been altered before an error occurred. > Have a happy New Year! Perhaps starting January 20 :) === Subject: Re: MSLV not working > Update to ROM 2.09C. This will fix the LINSOLVE problem too. You may still need to use CASCFG first to guarantee friendly flags, even in later ROMS. === Subject: MSLV working In my post below where I said MSLV not working, I indicated that I checked my entry carefully but just could not get MSLV to work and suspected the problem was OS version 2.08. I was wrong. Today, by going to HELP and then MSLV and then using ECHO to put the help example problem on the stack, then pressing enter produced the correct results. Upon a close examination of this entry, I realized that I had missed using the little tic (single quote) marks when I tried to use MSLV and that is why I could not get it to work in alg. mode. Hope this post helps someone else. === Subject: Re: User RPL Programming Environement---What is best? > Is it possible to configure the calc > to treat a string with a << as the first character > the same as a normal program? A string is an object of type 2, commonly containing readable text. A program (executable) is an object of type 8, commonly containing many 20-bit binary internal addresses of ROM-based functions, and other generally binary stuff, incomprehensible to humans. The calculator effectively hides from sight the fact that all readable entered program text is immediately compiled to binary objects and programs, by the fact that at the same time, every binary object, when recalled to the stack and displayed on the screen, has just been automatically decompiled to be shown as text, even though it remains as compiled binary within calculator memory, from the moment it was first entered. Whenever you edit an object, the calculator also first automatically decompiles it, to produce text which you can edit, then automatically re-compiles it when you complete your editing. This maintains an appearance of familiar text for you, the user, while at the same time maintaining a completely binary internal environment, for efficient evaluation and execution in the calculator. There is another level of pure appearance when it comes to algebraic expressions, which appear to you as they do in a textbook, yet when compiled, they are all transformed into binary RPL executable programs, commonly in a completely different sequence of steps than when displayed as text, which perform calculations far more efficiently during evaluation. You are free to maintain for yourself a set of text strings representing programs, which you can compile for yourself using STR-> (or OBJ->), which can also contain comments introduced or surrounded by @ symbols, e.g. SWAP @comment@ DUP @ comment to end of line However, when you edit strings, the calculator does not check their syntax (any string is perfectly valid as just a string of text), and when you use STR-> to compile them, an error does not identify exactly where the first syntax error occurs. When STR-> tells me that some string can't be compiled, I use the following simple program to find out where the compiler objects, and to exit normally (with a corrected string) only after fixing the error: << ->STR { V } + SWAP INPUT >> I suppose I could improve that a bit, in case I want to give up and exit in which case I would like to return my original string: << ->STR OVER { V } + -55 CF IFERR INPUT THEN DROP2 ELSE DUP SIZE { SWAP } IFT DROP END >> Note that pressing ON/Cancel just once within INPUT simply erases the entire string; if you happen to press ENTER right afterwards, INPUT returns just that empty string (and no error) -- the last program above automatically recovers from that case, returning the original string (UNDO or ANS/LASTARG will also return the original string). If we want to edit and keep the result whether syntax is yet OK or not, we can just edit the string directly, then use the above program to check it. The above can also be used to edit strings on any HP48S[X]/G[X][+] using INPUT; omitting { V } + to skip the syntax checking. As for me, I edit and keep my source programs in my computer (or on my SD card), using my computer editor, then transfer to calc memory, which also compiles them, dropping my useless comments from being stored within any executable programs. Simply always transfer from computer (or card) into calc memory, to retain the source in any format that one desires, including comments. To transfer from SD card to calculator, or from computer to emulator: Ascii Import/Export for SD card and Emulator Yet another (wasteful) way to include comments, even within binary programs: << ..... my astute explanatory comments DROP ..... >> === Subject: Re: User RPL Programming Environement---What is best? > Note that the development language of choice is SysRPL, > a more complete version of UserRPL. Note that UserRPL is designed with safety training wheels, so that you can't crash your calculator, nor corrupt its content, nor wipe out all its memory, etc. Mistakes or lack of complete understanding when using SysRPL can lead to more serious consequences, with no safety net. UserRPL has many elements which make it surprisingly powerful; it also has its own breakpoints (HALT), a simple debugger (single-stepper) on the calculator (or any emulator) itself, and the ability to use any other internal function which SysRPL programs may invoke, via SYSEVAL, LIBEVAL, and FLASHEVAL commands, which opens the possibility of hybrid programming, taking advantage of UserRPL to develop quickly and safely, yet having full access to every function existing within the calculator. Some handy functions which formerly required SysRPL (or SYSEVAL) are also now available as UserRPL, via commands within the HP49/50 Development library (256 MENU), after you attach that library (it will automatically attach if flag -86 is set during startup/warmstart, or via HOME 256 ATTACH).