A49 I am trying to find out where the HOME directory is stored in Memory. I have found heaps of information for the HP48SX regarding pointers to directory positions however (this may sound ignorant) but they do not work on the GX. Does anybody know where I can get a listing for the GX - (not the SX) of all memory access points and what they do? The authoritative reference for all entry points, pointers, memory locations etc. on the SX/GX would be Mika Heiskanen's entries.srt / ent_srtA.pdf documents which can be found at http://www.hpcalc.org/hp48/programming/entries/ . The PDF version is particularly useful. Also useful is the file entries.all found in http://www.hpcalc.org/hp48/programming/entries/entriesx.zip which lists the SX compatible items found in the others plus many additional ones not listed there. ( The descriptions in this one are terse and sometimes nonexistent though. ) The fact that entries.all is for the SX only really isn't an issue because most of the non ram based entry points in the SX rom haven't changed in the lower 256k of the GX rom. ( And if one has you can usually find its new address by searching the rom for the first few instructions. ) Now to deal with your question about how to find the current position of the HOME directory ( USEROB ) on the GX. Here is a short solution in assembly which uses one unsupported entry point ( Jazz syntax from now on ) : CODE LC(5) #80711 * Address of USEROB pointer. GOVLNG =SysPtr@ * Push pointer to stack. ENDCODE If you only want to use supported entry points then here is a longer sys-rpl version : :: CONTEXT@ ( Push address of current directory to the stack. ) SYSCONTEXT ( Switch to home directory. ) CONTEXT@ ( Push address of HOME directory to stack. ) SWAP CONTEXT! ( Restore previous directory. ) ; If you also want information on the structure of directory objects then there are many sources but probably the most prominent ( and well written ) one would be F.H. Gilbert's Introduction to Saturn Assembly Language. ( Second edition. Edited by Eric Rechlin. ) Which can be found at http://www.hpcalc.org/hp48/docs/programming/asm-pdf.zip ( PDF version ) . before replying. And for oldies : HP28c/cs - french version : http://www.courbis.com/voyage28.html It was time to replace the card batteries on my '48GX (version R), so I memory. WOW! Good stuff! Then I noticed that matrices, etc. were not displayed as in the stack replacement I had been using (Java 3.6). After I reinstalled Java in port Apparently I did something to switch MK off or unmerge memory, but can't find mention of this in the MK manual and am hesitant to try to remerge the card (doesn't this earase the card's contents?). If anyone knows what I did, how to fix it, and how to avoid similar problems in the future, please let me know. I can't recall for certain but I believe that Java and MK both use either flag 64 or -64 as a means of enabling/disabling use. Try fiddling with that. As is meanwhile known, also the SysRPL-programmer can add HELP options to his library commands in the catalog from ROM 19-6 on. However, it seems that the normal user (who does not know SysRPL) can neither use this nor some other functionalities of $EXTRG in his self-made libs. For him, even no exhaustive explanation on what can really be done with $EXTPRG seems to be available. For that reason, I plan to expand the library the normal user will also be able to create libs whose commands show a HELP option in CAT. I'll make get an additional field $EXTPRG where the user just puts a list of lists of the shape {Name help text} where Name is a variable (occurring also in $VISIBLE) and help text is the text to be displayed if using the HELP option in CAT of the corresponding command. This is perhaps the most interesting functionality which has been activated by $EXTPRG in ROM 19-6. The problem of including a lib menu or some modification of it in the APPS choose box is solved since long by APPSman. Even much better, shorter and equally fast as it can be done with $EXTPRG, acting on BINT0. In addition, the *user* decides which libs are showing up in his APPS choose box, not the library's author. Realization of this project will need some time. Please feel free to post your suggestions :-) Hmmm, the problem with this approach is that you probably will just include this list into the EXTPRG. It is quite likely that some people will then put massive documentation strings in this, which will lead to a general slowdown of the HP. Each operation which uses messages executes the EXTPRG Rompointer, which means that the contents of the ROMPTR have to be copied into RAM. The documentation should IMO be located in a separate ROMPTR, not in $EXTPRG itself. Each EXTPRG should be small and as fast as possible in order to limit the performance penalty. I actually disagree with this. I think message 0 is really the most important one on the HP49G. The great idea about APPS is in fact that each new library can show up there automatically, in a way the programmer intended. APPSMAN has to be reconfigured each time after a new library was installed, if you want the new lib in your APPS menu. A user-specific library menu can be easily done with CST or CHOOSE, or with LIBMAN or LMenu. for me, as an non-SYSrpn-user it would be more than nice. I think others will feel the same. Online-help would improve many libs, because typically nobody carries program descriptions with the calc. I know that. Hence I plan that the additional option in also in $HIDDEN) in which the user has already prepared his list or table of help messages. This will avoid any slow-down problems. Clearly, OT49.txt will ask the user to keep his help-file small (it's in his own interest to keep his library reasonably small :-) Moreover, OT49.txt will ask *not* to include a help option on *every* visible command as you did in Emacs. This is, IMHP, a misuse of the calculator. The user must read anyway the documentation and if often applying a certain command, he will remember. Here I totally disagree with you. IMHP, message ZERO is dispensable in $EXTPR. If every library programmer appends his lib to the APPS box, it becomes quickly too long and will nerve the user. We're just on the Windows level in such a case :-). For instance, I don't need any Emacs menu in the APPS box because my Emacs configuration setting is well-defined since long. In my APPS occur - depending on the directory - only such applications urgendly needed in a certain period of time. Good idea. Less work for the user who need not to prepare an extra file but choose box on the field $HELP (which hopefully prevents him from writing too much text ...) I have one problem. When I try to solve sqr(x-3)+sqr(3*x+7)-sqr(2*x+10)=0 I use - as usually - SOLVEVX. But in this time it does not work :-( I tried version #1.18 and also #1.19-5. But it does not work. It returns error message Not reducible to a rational expression ational expression The answer is 3. That expression is the same as -6 + 2x = 0 It should work fine. Why do you have the sqr's? They all cancel out. Try rom #1.19.6 Mine it is working. #1,19-5 Result: {x=3 x=-7/3} Input RPN ... 2X*10 sqr 0= SOLVEVX :-) What gives RCLF? You may have a global variable x in your working direktory? I am not shure, but if yes, you should purge it. And I found, that it is not shown (editable) in EQW. Mine it is working. #1,19-5 Result: {x=3 x=-7/3} Input with RPN ... 2X*10 sqr 0= SOLVEVX :-) I mention this, because there is no space or ENTER rqd between 2 and X :-)) Ok to your problem: What gives RCLF? or You may have a global variable x in your working direktory? I am not shure, but if yes, you should purge it. And I found, that it is not shown (editable) in EQW. Mine it is working. #1,19-5 Result: {x=3 x=-7/3} Input with RPN ... 2X*10 sqr 0= SOLVEVX :-) I mention this, because there is no space or ENTER rqd between 2 and X :-)) Ok to your problem: What gives RCLF? or You may have a global variable x in your working direktory? I am not shure, but if yes, you should purge it. And I found, that it is not shown (editable) in EQW. I believe that by 'sqr' he means 'sqrt', that's why it says Not reducible to a rational expression. (it is not SQ..) I'm afraid that you need to use the equation writer [EQW] then write in the form sqr(x-3)+sqr(3*x+7)=sqr(2*x+10) Select the hole thing then square the expression. You should be able to separate another square root later if SOLVEVX doesn't work (i.e. do the same thing with EQW..) The damned shift key doesn't want to work sometimes. (Or Nick is afraid that some Wolfgang out there will bomb him again... ;-) ) Two ways: Put the HP49G in a warm place and wait... ;-) Or update the ROM (if you didn't already) Don't tell this to many people. If my wife (english teacher) knows about it, then I must stand in the corner for one hour. ;-) Hmmm, a message without a content. How exciting! It sounds to me like a function that negates itself. Now *that* is really amazing. I'll try to post such a message. (Sorry if your computer crashes ;-) ) Actually I like the different behavior of EXPAN and EXPAND. It gives me two possibilities instead of only one. I just wonder if the used algorithms are different, and if so, then to what extend. 1)Type MAIN, press ENTER, press NXT, press soft menu key for REWRITE (F5) 2)Press blue-shift, 6 (CONVERT), press soft menu key for REWRITE (F4) 3)Press CAT, the goto command REWRITE. 4)Type REWRITE, press ENTER On my HP49G (1.19-6) the second way to get the REWRITE menu brings a different menu than the other three. It contains different commands. (?) The command that returns the number of the current menu is RCLMENU One for the experts: How easy is installing this new ROM over 1.18? It looks complicated compared to Installing 1.18 over the original Rom which I have done successfully many moons ago. I'm not an expert, and I'm skeptical of anyone who claims to be one. Only slightly more complicated; just follow the directions. little bit of user FLASH rom (port 2). So there is additional steps required if you have stuff stored in your port 2 memory, specifically bank 0. These steps allow you to temporarily copy the affected portion of the bank 0 flash memory to RAM so you can later re-install them after you upgrade to 1-19.6. Its not scary or hard, just follow the directions. Once you have made the jump, you dont need to do it again, further rom upgrades wont spill into bank 1. Unless used to emulate a TI-82. required if X Actually CdB gave us an extra 64KB bank in the beginning The OS is now reclaiming back what belonged to it anyway Oh yes, there are! I was killed many times in the past, and I can still feel the bullets of the killers, I tell you. ;-) keep Must apologize to Wolfgang. I was using version 7.2 which uses some unsupported entries, these have been fixed in Ver 8.2 on. X Please, give me direct link. My ftp is not working correctly??? Why are they not integrated into the ROM? I'm a new user to HP49G. I used HP41 extensively while in college and had to retire it. The HP49G is ALOT different than the 41. I'm afraid I have not mastered it, so I'm seeking the help of the experts with a question. I'm trying to fit data using the built-in STAT/FIT DATA... statistical program. I enter my two columns of data (only 7 numbers each). When I ask it to run, I get an Error: Invalid (sigma)PAR. If it is any help, I tried to run CORR to give me a correlation coefficient and received the same error message. Can anyone help? I'm desperate, as I have my statistical final exam this week and, well, you get the picture... Just purge the sigmaPAR from all the directories in the tree (probably best to use the filer) and try again. sigmaPAR is then generated automatically in the current directory. I used filer to delete the sigmaPAR variable in the home directory. I then ran fit data again. I received the error again. When I looked in home again, I noticed that sigmaPAR was recreated there. I've done store it again in (sigma)PAR. (sigma)PAR has to contain a numeric (type 3) matrix, not one of the new symbolic (type 29) matrices. Just to be sure, did you also PURGE and created sigmaPAR again in the directory where you work? Also could you please post the contents of sigmaPAR? It is a list that resides in a variable with that name. Just press sigmaPAR in the menu VAR. This is some code in user RPL that I had to write to compensate for the ever returning need (and significant lack of HP) of sequence handling. I am posting it here in the hope of some comments and suggestions. It works OK on my HP49 in RPN mode. Usage example : put '3*S(n-1)-4*S(n-2)+1' for f() in first field, [1 1] for initial values and 5 for number of terms and you will get the ouput of the first five terms : [1 1 0 -3 -8]. Ç DO Sequence { { f() S(n) =f(S(n -1 ),S(n - 2),...) } { Init. Values [S(0) S(1)...] } { N Number of Terms } } 1 { NOVAL [ 0 ] 10 } { NOVAL [ 0 ] 10 } INFORM IF 0 == THEN KILL DROP SWAP DUP 'S' 'FROM' STO S SWAP RDM 'S' STO 'f' STO FROM 1 + N FOR n1 'S' n1 n1 'n' STO f NEXT 'S' N EDITB UNTIL 0 END È By the way, once you return to the menu putting f unquoted inside the first field will give you back the original algebraic you entered. This can be done with a simple recursive definition. Suppouse you have: S(n)=3*S(n-1)-4*S(n-2)+1 with, say, S(0)=1 and S(1)=1 Got to the EQW and TYPE: S(n)='IFTE(n==0,1,IFTE(n==1,1,3*S(n-1)-4*S(n-2)+1))' Now press ENTER and DEF. In the menu VAR you have now a soft menu button for S. Type some number and then press this soft menuy key. You get the result for this number. If you want the results for a range of input values (say from 0 to 5) in a vector, you can use something like: << {} 0 5 FOR I I S NEXT AXL The recursive form is elegant, but, for practical use, storing previous values and accessing them is much more effective and efficient. Try, for both ways, to get S(10), S(20), and S(50). I have an HP49g with rom 1.18. I am trying to solve 2 equations at the same time: 6X^2+5y^2+1 and Y=2X^2. In RPN mode I first make sure X and y variables are empty, then I open up the matrix writer. I use the EQW to put the first equation in cell one, then I use EQW to put the second equation in cell two: I then press F2 for vec, and enter the vector on the stack. I open up the matrix writer and enter X in cell one, and y in cell two. I then press F2 (vec) and enter that vector on the stack. then I hit left shift, S.SLV, and 6(SOLVE) and get an error! I was hoping to achieve the intersection points of these two functions! APPROX and COMPLEX are not checked in order to achieve an exact answer. thanx in advance don Try the newest rom, 1.19-6. For me it works, but gives an empty list (no solution). I also tried complex mode, which returns four solutions. I don't know exactly if the command SOLVE of ROM 1.18 can solve such systems. (I think it can't) Perhaps you could get the last ROM (1.19-6) which is great. I once had a 49g. I tried to upgrade to Rom 1,19-6. Now all I have is a pretty blue paperweight. Any suggestions? All I get is a no systems screen. don Could be that for some reason the update didn't work properly. If so, then you must re-flash the calculator. The instructions of how to to this are at http://www.epita.fr/~avenar_j/hp/49.html As mentioned there: 6.When the process finishes, the 49G will display The system may not be installed. Please go to 'Download Pack' menu. Press any key. You now see the main Download menu. 7.Press [2] for 'Download pack'. System present press Q twice to reboot. The operating system is now upgraded. So could it be that you saw the message aboute the missing system and thought that it didn't work? Hmmm, are the communication/transfer settings also OK on the W98 machine? also checked the settings in the other PC (w95). The settings in the two PC are the same!! but only in the PC(W95) can I do transferences. May be a problem in the serial port card in the PC(w98)? Hmmm, may be. Sorry that I can't help you more, I don't know much about windows. Try to set the tranfer speed to a lower value (?). Perhaps any other ideas someone out there? as the command DERIV is used for partial derivatives, you must write it in format DERIV(function,[variable1,variable2...]) so for example DERIV(x,[x]) returns [1] (version #1.19.5) believe ROM 1.19-6 is ready for release, and will try to post it before this week-end. I quite agree that just doing ATTACH *should* be enough. However, we all know that it is indeed not a perfect world, and sometimes, otherwise brilliant programmers don't exercise the prudence and wisdom that we wish for. However it is considered good habit to prepend [48S], [48G], [49] Yes. FLOOR(x) = [x] = |_x_| = greatest integer less than or equal to x. That's probably what neekap wants. CEIL(x) = least integer greater than or equal to x. When I bought the paper-version of the Urroz-books, I could download the electronic version at the website of Greatunpublished too. When I bought them, nearly a year ago, the electronic version was included. I don't think I've ever seen anyone talk about their 49 keys wearing out. I think there have been mentions of the paint wearing off so you can't read the imprinted letter, but I don't think that affects the functionality of the key. I can't recall anyone saying their keys no longer work. For computing a natural logarithm of a complex number you have to do this: unit) then ln(z)=1/2*ln(x^2+y^2)+i*arg(z) where arg(z)=phi is the solution (unique if phi is modulo 2*pi) of the system { x/sqrt(x^2+y^2)=cos(phi) { { y/sqrt(x^2+y^2)=sin(phi) ToThreeD[Graphics[pr_,opts___] ]:= Graphics3D[pr/. not be changed*) }, opts]; Example ToThreeD[ Graphics[{ Hue[.5],Thickness[.02],Line[{{0,0},{1,1}}], Hue[.3],Polygon[{{0,0},{2,4},{2,6}}], Hue[0], Text[TEXT,{1,1},{-1,-1}]}, ]]; Show[%] -- Allan --------------------- Allan Hayes Mathematica Training and Consulting Leicester UK www.haystack.demon.co.uk ==== worthwhile. overrides Needs[Graphics`Graphics`]; Needs[Statistics`ContinuousDistributions`]; Needs[Statistics`DiscreteDistributions`]; Needs[Graphics`FilledPlot`]; bern=BinomialDistribution[10,1/2]; norm=NormalDistribution[6,Sqrt[5/2]]; The chart distorts the comparison of the distributions. They do not have the same mean. Mean[#]& /@ {bern, norm} {5, 6} A more representative comparison of these distributions is DisplayTogether[ FilledPlot[PDF[norm,x],{x,0,11}], BarChart[Table[PDF[bern,j],{j,10}], The normal distribution corresponding to the binomial is norm = NormalDistribution[5, Sqrt[5/2]]; DisplayTogether[ FilledPlot[PDF[norm,x],{x,0,11}], BarChart[Table[PDF[bern,j],{j,10}], A more general approach uses GeneralizedBarChart Clear[n,p]; #[BinomialDistribution[n, p]]& /@ {Mean, StandardDeviation} {n*p, Sqrt[n*(1 - p)*p]} n = Random[Integer, {10, 20}]; p = Random[Real , {1/4, 1/2}]; m = n*p; s = Sqrt[n*p*(1-p)]; norm = NormalDistribution[m, s]; bern = BinomialDistribution[n, p]; DisplayTogether[ FilledPlot[PDF[norm,x],{x,m-3.5s,m+3.5s}], GeneralizedBarChart[ ==== Yes, this is pretty much what I had in mind, except that I used color and GeneralizedBarChart (so I could make the bars full-width). Here was my hack: Needs[Graphics`Graphics`]; Needs[Statistics`ContinuousDistributions`]; Needs[Graphics`Colors`]; Needs[Graphics`FilledPlot`]; gr[a_] := GeneralizedBarChart[Table[{n - 1, a[[n]], 1}, {n, grbin[n_, p_] := gr[Table[Binomial[n, k]p^k(1 - p)^(n - k), {k, 0, n}]]; p = 0.5; n = 20; mu = p*n; sigma = Sqrt[n*p*(1 - p)]; gr1 = grbin[n, p]; gr2 = FilledPlot[PDF[NormalDistribution[mu, sigma], x], {x, 0, n}, There's no spacing between the bars in this version (hence their heights really are their areas), and the region under the normal distribution is light slate gray. (Or grey :-) Now the second of these two plots would be acceptable IF the gray were translucent, so the bars could be made out under the gray. Then you'd be able to see undershoot and overshoot, and the cancellation effects. (With n = 20 you won't see the effect of missing half of the first and last bar.) Translucency does have a role. I don't remember the details of Display Postscript, which was used on the original NeXT machines, but didn't it have degrees of transparency? In which case, I have to wonder why wri didn't implement it then. They still have the best-looking graphics. Anyway, I didn't see any way to do it, and this confirms my guess: it's not possible. This is something which Wolfram should add. Mac OS X makes use of translucency to a considerable extent--perhaps OVERuses ==== I'm looking for an algorithm or equation to evaluate the error function of a complex argument (erf(x+yi)). Can anyone provide assistance? I have been using an infinite series approximation for the complex error ==== ====