A126 rom adresses? i.e. a conversion program... I guess you mean unnamed rompointers if talking on XLIB rom addresses. There isn't such a program. The problem is, that most internal libs of the 48 have been reorganized on the 49. This is a main problem in porting from the 48 to the 49. SysRompointers are (hopefully) stable from ROM 19-6 on. Theoretically, there is such a procedure since both, the 48 and the 49 have finitely many libs only. But I doubt that anybody would start the adventure of a translation. For some (not all) addresses in the ordinary sense this is not a big deal. Even after 3 years I didn't find some of the rompointers listed in the 48-FAQ (hacked a long time ago by JKH) on the HP49. And don't expect any information whether they still exist or not. ==== > that asks you for values to fill into variables? You can use built-in commands: INPUT, PROMPT, INFORM, CHOOSE, and, of course, INMENU -- this last is a simple program which makes a menu whose labels name the variables you want. INMENU: http://groups.google.com/groups?selm=3DA3BC89.465907D0%40miu.edu Here's a vague imitation of the one-variable-at-a-time INPUT command of the HP42S and HP32S[ii]; it shows you the current value, if any, and allows you to supply a new value (or leave the old value as-is): << -55. CF DUP IFERR RCL THEN DROP END = SWAP + + SWAP IFERR INPUT THEN DROP2 0. DOERR END {' SWAP + STR-> 1. GET DEFINE > 'VINPUT' STO To use: 'MYVAR' VINPUT Works on any HP48/49 calculator, but you can not perform calculations to compute input values, as you can with the HP42/32S[ii] calculators (and the INMENU command), which is a disadvantage of any method relying upon the HP48/49 INPUT command. INFORM allows you to calculate, but it's more cumbersome to do so. PROMPT allows you to calculate, but you have to press CONT (normally two keypresses) to resume the program. ==== Regarding the INMENU program, I get a systax error message at the double quote before the words Type data... Would you know why??? *HP49* version: << { { OK << 0. MENU CONT > } } + TMENU #25EFFh SYSEVAL 2. ->HEADER Type data, press key PROMPT > 'INMENU' STO > > How to make a programme > that asks you for values to fill into variables? > > You can use built-in commands: INPUT, PROMPT, INFORM, CHOOSE, > and, of course, INMENU -- this last is a simple program which > makes a menu whose labels name the variables you want. > INMENU: > Here's a vague imitation of the one-variable-at-a-time > INPUT command of the HP42S and HP32S[ii]; it shows you > the current value, if any, and allows you to supply > a new value (or leave the old value as-is): > > << -55. CF DUP IFERR RCL THEN DROP END > = SWAP + + SWAP IFERR INPUT THEN DROP2 0. DOERR END > {' SWAP + STR-> 1. GET DEFINE > 'VINPUT' STO > > To use: 'MYVAR' VINPUT > > Works on any HP48/49 calculator, but you can not perform > calculations to compute input values, as you can with the > HP42/32S[ii] calculators (and the INMENU command), > which is a disadvantage of any method relying upon > the HP48/49 INPUT command. > > INFORM allows you to calculate, but it's more cumbersome to do so. > PROMPT allows you to calculate, but you have to press CONT > (normally two keypresses) to resume the program. ==== > Regarding the INMENU program, I get a syntax error message... Are you downloading it using Kermit? (if so try first setting translation mode via 3 TRANSIO) Are you manually typing it? (sorry I can't help here). Are you copying and pasting it into an emulator? (it then needs translation via %3 xTRANSIO KINVISLF in SysRPL) It's so short that I'd try typing manually, taking care about the special characters, including the right-arrow in ->HEADER (or use the built-in command CATalog) ==== > Regarding the INMENU program, I get a systax error message at the > double quote before the words Type data... > A typo, perhaps? My INMENU looks exactly the same as your posted program, and it runs without problems. Sometimes a mistake (like a missing delimiter) further down the program can highlight the string as a syntax error - the parser sometimes chooses innocent victims. http://holyjoe.net/hp/columb7.htm > R->B appears to operate as (sorry for the pseudocode!) > << if [real?] {ceil; binary; } Real arguments are rounded to an integer; this is sometimes like FLOOR, other times like CEIL. ==== http://www.hpcalc.org/hp49/docs/faq/ 6.2 No matter what I do, I cannot get my HP49 to communicate with some computers Early versions of the HP49 (those with serial number under ID94...) have a buggy serial port. If you have one of these calculators, call HP tech support and get the calculator replaced with a fixed model. First reported by Marcel Flipse, the first HP49's had improperly wired serial port buffers, causing them to send a weakened/distorted signal. This causes computers with off-brand motherboards (including Macintoshes) to have trouble communicating with the calculator. > Further more, what is the best route to follow to get to grips with > this machine? Which of the documents available will be best to start > with, or is it a matter of trail and error towards one's own > interests. I'm a civil engineering student. Best place to start is to check out: www.hpcalc.org ==== A couple of weeks ago, I managed to repair the keyboard of a 48gx. The keyboard stop normal operation one year ago and the only way to use it was pressing the zone below the screen and above keys E and F. I wanted to repair but not to finish it (works fine if not for the keyboard) then I was afraid to open it (get no hurry because I got a new 49 last year). Finally a friend give me a really dead 48sx (will see...) that I used for experimentation (and join courage). First tip: To open the calc use the method described in this file http://www.hpcalc.org/hp48/docs/opening/openhp48.zip It works perfectly and just depending on your patience the calc can be opened (and closed) without a single scratch. (I use a wide screwdriver) Once you open it, the real problem start. The motherboard is joined to the front (keyboard and screen) by six twisted metallic things that you must untwist in order to come them apart. BE CAREFUL !! and don't break them. But take in account that I twist them three times for open (and three for close) without problem. Well, now you must change the screen. And I can't help you here :). Looking the display I agree with Steve Sousa that change the entire screen-keyboard-front combo may be the best solution. But I don't know if they are exactly the same in the two calcs. While you are there, take one second to look the little cushion(?) that press the keyboard contacts against the mother (it's the piece damaged in my calc). It's sticked to the plastic cover and can be (carefully !!) removed and sticked again. Use the one in the calc that is in better shape (mine was deflated in one side). You already must know the way back, to assemble the calc again. The tricky part is align the rubber contacts in both sides of the display. It take me some time (there I twist and untwist a couple of times the metal things) and the first time the screen became completely black. Test it before close the calc. Now my 48 works fine, but as I did it just one time, perhaps I was extremely lucky aligning the contacts. One more advice: closing the calc may became difficult because of the plastic needles that keep calc together. If you can't close it, just cut the plastic needles. Start with the six around the battery compartment (they are really useless) but try harder with the four around the IR port. I cut all of them but now I miss the last four since they made the join stronger . ==== > I'm trying to use kermit to transfer files > from my pc to the hp48g and it can't connect to my calculator What specific program is actually running on the PC? We might suggest different ways to proceed, depending on which software you are using. Basically, you want that program to select the working 9-pin serial port (usually COM1 or COM2, not a USB port) into which your cable will be plugged, and you'll want to select 9600 baud, no parity, 8 data bits, and 1 stop bit (a/k/a 9600-N-8-1) > is there a way to test the serial cable? Unplug cable from PC. Connect pinholes 2 & 3 of the PC end of cable to each other (using wire or a bent paper clip); then plug calc end into calc. Then on the calc press ON and D at the same time, release; this should show a split screen on your 48G (instructions below match 48G, use the on-screen menus for 49G) Press key A; this should show a CPU speed (SPD). Press key H; this tests for a loopback on the serial port, which should respond with OK if the port and cable are ok (with pins 2 & 3 connected to each other at PC end of cable). A numeric result (e.g. U_LB 20000) indicates a failure to detect the data sent from the calc back to the calc, passing all the way through the cable enroute. On the calc, press ON and C at same time to exit hardware testing (a warmstart then clears the stack and should return to MTH menu). Other things could also need adjustment on HP48: Press left-shift I/O[1] then IOPAR[B] menu key; another way is to type 106 [alpha] MENU then press ENTER. If there is a small square in the IR menu key [A] then press it once to remove the square; the top line of the display should also confirm IR/Wire: wire (otherwise the calc is trying to use its infrared LED, rather than its cable). The most common (and calc's fastest) baud rate is 9600; if it isn't, type 9600 then press baud[C] menu key. Parity should be none 0; otherwise type 0 then press parity[D} menu key. cksum should be set to 3. translate should be set to 3. The ascii setting determines whether files are transferred as the kind of display text you normally see on the calc screen or when editing, or else as binary internal-format files which only the calculator can understand, not editable on the computer. Calc files stored on the computer usually have a short header which automatically tells the calc anyway whether the file is ascii or binary, so when the calc is receiving files, it often automatically recognizes the format by itself, but when sending files, you should first set ascii/binary the way you want it, before sending files from the calc. Any calculator object can be sent as a binary file; special objects and programs originally downloaded in binary may not be capable of displaying in ascii (only objects which you can edit in the calc can be sent properly as readable ascii text). ==== > How can I evaluate a LOG in base 2 (something like 2 LOG X), if possible? You can use the base conversion log, either base e or base 10 logs. Let's say you want LOG(10) in base 2, you would do ln(10)/ln(2) or log(10)/log(2). Both give pretty much the same answer (I have discovered a few differences in the twelve-hundredths sometimes, but I don't know why, I would assume ln is more accurate) 15C simulator for PocketPC? > I found this fantastic 15C simulator for PocketPC: > http://www.lygea.com/pocket15cdetail.htm > Works just like a real calc, only better - bigger matrices, more program > steps, view whole stack and all registers at once, cut and paste, etc. > Graphic of calc is beautiful. The author has done a brilliant job. It's not > free like Emu48, but it doesn't cost much and is perfect if you just want > something simple, yet powerful, like the good ole 15C. I think we should > support quality work like this that keeps RPN and the old HP way alive. ==== > Enough already, point taken! Now, does anyone have any comments about the > 15C simulator for PocketPC? > Looks nice... real nice. I need to find a maunal though :) I've only used my 48 before. I've installed the demo on my iPaq 3850. Works fine and I love the rotated display. Now I just need to decide if it's worth the price to keep it on a non-personal (ie, work bought it) device. ==== http://www.hpcalc.org/hp48/pc/emulators/emu48ce.exe and then add http://www.hpcalc.org/hp49/pc/emulators/emu-ppc48-49.zip The HP48/49 diplay has been rotated and the LCD set to size 2. This gives an LCD almost identical to a full size HP48. I think you'll be pleasently surprised. Murray. > Enough already, point taken! Now, does anyone have any comments about the > 15C simulator for PocketPC? > I've installed the demo on my iPaq 3850. Works fine and I love the rotated > display. Now I just need to decide if it's worth the price to keep it on a non-personal (ie, work bought it) device. ==== > There is a problem when EMU48 is run for the very first time. After > selecting the KML there is no button to press. One has to bring up the > virtual keyboard and press . The emulator will then load. ==== You may not need a manual. The online help is actually very good. Just pick Help from the start menu while you have the program running. It explains every function. > Enough already, point taken! Now, does anyone have any comments about the > 15C simulator for PocketPC? > > Looks nice... real nice. I need to find a maunal though :) I've only used > my 48 before. > I've installed the demo on my iPaq 3850. Works fine and I love the rotated > display. Now I just need to decide if it's worth the price to keep it on a > non-personal (ie, work bought it) device. ==== Ex: x S t^3 dt 1 Any help would be greatly appreciated. ==== Try PowerPlot. It will plot integrals that the HP48 can solve. If the HP48 can't solve the indefinite integral, then PowerPlot doesn't draw a plot, it just says that it's undefined (according to trace mode), and proceeds to any other functions to be plotted. Aaron > > I don't think my previous message posted...since I can't afford to ask > later I'll ask again. Sorry if this turns out to be a repeat: > > how do you graph an integral on the HP 48GX? (the S is the integral > sign) > > Ex: > > x > S t^3 dt > 1 Well the result of that integration is a function, (t^4-1)/4. So put that into EQ and then plot like normal. - You can just plot the closed form (in this case, 1/4 * t^4). The area of interest is from 1 upwards. You can restrict the horizontal view by having it start at 0, which will speed it up. If there's no closed form, use the Equation Writer to write your integral into HP syntax and plot that. For instance, the 48 can't find the closed form of sin(x)^2. Write that as an integral from 1 to X. Press Enter to see it on the stack as 'S(1,x,sin(x)^2,x)'. This will be slow-w-w-w to plot. In either case, you can speed up plotting by typing #2 RES before you plot. This reduces the number of points plotted, and the reduced resolution is still pretty good. And after the test, give the manual a good read. :-) ==== My 2 favorites were your LInsolve one with the matrix and Markus's program (the one he said I should download) ==== http://www.hpcalc.org/links.php be sure to understand http://www.anti-matrix.net ==== Hey! I've just upgraded my ROM version from 1.18 to 1.19-6. Since that Neopolys, Bode-Routh programms do not respond. e.g.: 4/s(s+2) numr:4 den:0. i did whatever the manual says ,but while i am writting 1 2 0 on the calculator,it displays 0. Is something wrong with the new version?please respond ,because i am in exams. Were the no-longer working libraries stored in flash (port 2)? Did you send the the SaveBank0 program to your calculator and run it before doing the new ROM download, to save anything that might have been stored in user flash bank zero (which is now used for expanded system ROM)? Did you then erase (reformat) user bank zero, as instructed? The conversion of one user flash bank to a system bank was a one-time deal, so forget it if it wasn't saved; try reloading everything that resides (or should reside) in your flash (port 2), just in case lightning had hit it. Also try ON+D hardware test #7 (FullROM) to check the CRCs of system banks (type Q to reboot when finished testing). You can always reload the OS one more time (use fresh batteries), in case anything went wrong last time, and I would also reload whatever you keep in port 2 (updating to latest versions, if any), if there are any questionable results using what used to be there. ==== > i would like to connect my hp82240a infrared printer to a pc. There is a lot more support for using a PC as a substitute to receive and display data in the absence of an 82240 printer than as a source to send data itself to the printer (except perhaps for HP palmtop PCs): http://www.hpcalc.org/search.php?query=82240 > have any of you ever tried to do that > or know the protocol of the printer interface > or the lower ir - protocol? A special physical layer protocol with phase encoded bits and four error correction bits per transmitted byte (the reason being that data transfer to the printer is one-way only, so the printer is left responsible for error recovery, without being able to request re-transmission) http://www.hpcalc.org/hp48/docs/programming/82240bte.zip More discussion (the document above became available meanwhile): http://groups.google.com/groups?selm=3B31D66D.3CAF2941%40miu.edu The more conventional serial IR [SIR] half-duplex physical protocol does not work with the printer, but it's how HP48 calculators talk to each other, or to PCs which offer an IR COM port option: http://www.hpcalc.org/hp48/docs/programming/48techni.zip The easiest way to send data from most PCs to the little portable thermal printer roll is via an HP48 calculator as an intermediary; someone may even have developed a calculator program for this purpose. Perhaps you can instead install a conventional serial wire interface into the printer (in which case you can advertise modified printers that are HP49G-ready, inasmuch as the 49G has no IR at all :) Another way would be via a device for receiving serial wire data and transmitting it, one-way, using 82240 printer protocol. Aegis makes (or made) conventional wire <-> IR serial/IrDA converters, but I never heard of any commercial device made for the 82240, because all advanced HP calcs before the 49G had the ability built-in (and perhaps so does the 49G, except for a missing LED). ==== while reading Science and Engineering Mathematics with the HP49G by G. Urroz, i came across his simple program showing the use of INPUT command. it's like this: << Enter a: {<-/:a: {2 0} V} INPUT OBJ-> what is meant by '{2 0} V'? in some other examples on the net just '{1 0}' is used. what are those parameters? ==== To locate more information about INPUT and related commands: How to use INPUT and PROMPT http://groups.google.com/groups?selm=4va8mv%24su7%40news.iastate.edu http://www.engr.uvic.ca/~aschoorl/faq/48faq-8.html#ss8.22 Other simple User-Interface Program Commands http://groups.google.com/groups?selm=5u71qo%24jgs%241%40news.iastate.edu ==== > << Enter a: {<-/:a: {2 0} V} INPUT OBJ-> > what is meant by '{2 0} V'? in some other examples on the net just > '{1 0}' is used. what are those parameters? instead of searching with Google, here a short description. The INPUT command is the simplest and most important form of a user-dialog with the 49 besides the keyboar itself. But I would not be surprised if it is not payed any attention to in the 49 manuals. INPUT has always 2 arguments. In any case a string in level 2 which is the title of input dialog. In level 1 may be either a string (maybe the empty string in which case the cursor is waiting for input just at the left margin) or, for a more involved dialog, a list. This list *must* contain a second string, the command line prompt, <-/:a: in your example. In addition, it may contain a single or a list of 2 reals, and one or several of the names ALG, alpha (meaning the symbol alpha!) or V, in any order. If ALG is present, algebraic mode is set, if alpha is present then the ALPHA mode is set, and if V is present then the verifier becomes active if you enter your input. The two numbers 2 and 0 in your example specify the cursor postition. 2 or the first real in the general case means second row. 0 means end of this row. With a positive number instead you may fix also the column position for the cursor. There are still further possibilities, described in detail in the Advanced User's Reference Manual for the HP48G (for which I payed 30 US$, hela :-). But maybe they are explained also in the 48FAQ. The verifier simply verfies if parsing works, i.e., if your input was at least syntactically correct. If not, it yields a warning and prompts for correcting your input. The OBJ-> command after the INPUT parses your input string which may result in a lot of information, to long to be explained here. In the simplest case, with a real number or zint input you'll get the just this number. Hope this helps, ==== thank you very much for your very extensive answer! this is just perfect! thanks :) > << Enter a: {<-/:a: {2 0} V} INPUT OBJ-> > what is meant by '{2 0} V'? in some other examples on the net just > '{1 0}' is used. what are those parameters? > > instead of searching with Google, here a short description. The INPUT > command is the simplest and most important form of a user-dialog with > the 49 besides the keyboar itself. But I would not be surprised if > it is not payed any attention to in the 49 manuals. > > INPUT has always 2 arguments. In any case a string in level 2 which is > the title of input dialog. In level 1 may be either a string (maybe the > empty string in which case the cursor is waiting for input just at the > left margin) or, for a more involved dialog, a list. > > This list *must* contain a second string, the command line prompt, > <-/:a: in your example. In addition, it may contain a single or a list > of 2 reals, and one or several of the names ALG, alpha (meaning > the symbol alpha!) or V, in any order. If ALG is present, algebraic > mode is set, if alpha is present then the ALPHA mode is set, and if V is > present then the verifier becomes active if you enter your input. > > The two numbers 2 and 0 in your example specify the cursor postition. > 2 or the first real in the general case means second row. 0 means end > of this row. With a positive number instead you may fix also the > column position for the cursor. There are still further possibilities, > described in detail in the Advanced User's Reference Manual for the > HP48G (for which I payed 30 US$, hela :-). But maybe they are explained > also in the 48FAQ. > > The verifier simply verfies if parsing works, i.e., if your input was at > least syntactically correct. If not, it yields a warning and prompts for > correcting your input. > > The OBJ-> command after the INPUT parses your input string which may > result in a lot of information, to long to be explained here. In the > simplest case, with a real number or zint input you'll get the just this > number. ==== The HP49G Advanced User's Guide is your friend. See http://www.hpcalc.org/details.php?id=2998 if you don't have a hardcopy, Markus > > while reading Science and Engineering Mathematics with the HP49G by G. > Urroz, i came across his simple program showing the use of INPUT > command. it's like this: > > << Enter a: {<-/:a: {2 0} V} INPUT OBJ-> > what is meant by '{2 0} V'? in some other examples on the net just '{1 0}' is > used. what are those parameters? ==== the sad thing is that i have the hardcopy of AUG, but version 1.0 has information only on CAS commands. thank you for the link. > The HP49G Advanced User's Guide is your friend. > See http://www.hpcalc.org/details.php?id=2998 > if you don't have a hardcopy, ==== > Urroz, i came across his simple program showing the use of INPUT > command. it's like this: > << Enter a: {<-/:a: {2 0} V} INPUT OBJ-> > what is meant by '{2 0} V'? in some other examples on the net just '{1 0}' is > used. what are those parameters? ==== > Here is my solution, 28 bytes only: > << -1 UNROT ->V3 PROOT 2 GET > Since someone indicated the growing percentage of newbies reading here, we might point out that the cleverly used command ->V3 gives very different results for different states of system flags -15 and -16, so this program is shorter at the expense of taking a chance that it may, under some unanticipated conditions, get entirely wrong results, fortunately of so little consequence in this mere thought exercise. Certain mini-challenge rules provide that one may assume the pre-condition of flags, yet at the same time, such contrivances encourage the risky programming and engineering habits of assuming the repeal of Murphy's laws; this seems like a good occasion to re-post a link to a valuable essay about good engineering practice being comprehensively thorough, taking nothing for granted, which once again, despite the best of intentions, has suddenly just dealt NASA another tragic blow. The 1996 Woodruff Distinguished Lecture, by a past Chairman of the NASA Space Systems and Technology Advisory Committee: http://www.me.gatech.edu/me/publicat/AugTranscript.htm There are a lot of tough, real-world challenges engineers face that are not terribly elegant and that do not lend themselves to theoretical solutions. These are the lessons that you don't get from parchment degrees. They are not lessons of great philosophical value. They are the lessons of experience. And had I learned these lessons in school, I could have saved my employers literally billions of dollars over my career. Billions of dollars, millions of lives, and thousands of future generations of mankind can be benefitted by complete and comprehensive knowledge, application and growing direct experience of the full range and depth of our own human consciousness, which we do know how to teach in school, right along with the ordinary curriculum of our parchment degree. http://www.mum.edu ==== > Here is my solution, 28 bytes only: > << -1 UNROT ->V3 PROOT 2 GET > Please have also a look at the elegant solutions of Virgil and Jonathan in the 2nd challenge on the sequences defined by f(n+2)=f(n)+i*f(n+1). I constructed them for one reason only. People like CC which have a pretty good intuition should realize how important it is to pay the strongest attention to the convergence of the ratio of consecutive terms *before* starting to compute the limit itself. That Joe's ratio sequences are convergent for positive input ==== 3. ->ARRY (rather than ->V3 ) is the safer and surer way for non-MC purposes ==== his elementary solution of the first question. He transformed the whole >problem in real arithmetic. That would be me. ;) Man, what I write must be really lacking in distinctive qualities for me to be mistaken for other people all the time. ;) >But usually, a problem in complex arithmetic >is more easily solvable therein, and indeed, I have an elementary proof >of cyclicity of the sequence f of a few lines. Would that be this proof? : f(n+1) = i*f(n) + f(n-1) = i*( i*f(n-1) + f(n-2) ) + f(n-1) = -f(n-1) + i*f(n-2) + f(n-1) = i*f(n-2) Rewriting the above we get : f(n+3) = i*f(n) --------------------------------------------------------------------- > I'll repeat here a small challenge... We start with > f(0)=f(1)=1 and > the recursion formula > (1) f(n+2)= f(n) + i*f(n+1) (i = sqrt(-1)). > This defines a complex-valued sequence but (1) is very > similar to Fibonacci's formula for his sequence F from his > Liber Abacci (Pisa 1202) which starts with F(1)=1, F(2)=2, > hence the setting f(0)=f(1)=1. If the limes of the sequence > [f(n+1)/f(n)] exist in the complex plane then it is a root > of the equation > (2) x^2 - i*x -1 = 0. > As is easily shown, the roots of (2) are the complex > numbers (sqrt(3)-i)/2 and (sqrt(3)+i)/2. My question is: > Does lim [f(n+1)/f(n)] really exist and which of the two > roots of (2) is then the limes? > > The eigenvalues of [[i 1][1 0]], w1 and w2, are primitive > 12th roots of 1, so w1^n=w2^n = 1 iff n ==0 mod 12. > For any values of f(0) and f(1), there are suitable values > of a and b such that f(n) = a*w1^n + b*w2^n. > Then f(n + 12*k) = f(n) for all non-negative integers n and > k, and the values of f(n) are periodic with period 12. > Since f(n) is not constant unless a = b = 0, there can be no > limiting value to f(n+1)/f(n), as the ratio will be periodic > too. The limit of the ratio does not exist. > > That's altogether correct, hence, you are the winner. The result > could have been obtained even with elementary math, I mention this only > for the rest of the people :-) > > The sequence f when drawn in a clock face, f(1)=1 at 12 o'clock, > f(1)= 1 at 1 o'lock etc looks as follows: > > * > * 1 * > 1-i 1 > * * > -i 1+i > > * -i * i > > > * -i-i * i > > * -1 * -1+i > * -1 > the sequence defined > by f(n+2) = f(n) + i*f(n+1). Notwithstanding, God saw at once the > above circle. And he said > There is a very small missing detail in Virgil's argument. It's > correct that the sequence [f(n+1)/f(n)] is periodic as well, but > the period may perhaps be 1. This is not so as is seen by the > circle. Actually, the period is 3. AND THIS HOLDS TRUE FOR ANY > sequence f starting with any two reals a,b distinct from 0 and > obeying (1) above. Hence, my next challenge: > > Write a shortest possible UsrRPL program which yields the > 3 different terms of the sequence [f(n+1/f(n)] where f is > defined above with initial values a,b <> 0. > I can do it with f(0) and f(1) as input on the stack, in > levels 2 and 1 respectively, and the 3 ratios as output in > a UsrRL program of 35.0 bytes, with checksum of # 39588d, > though the last 2 ratios may appear in unfamiliar forms. My program is << / DUP INV SWAP i + OVER i - INV >. It takes a = f(0) and b = f(1) on levels 2 and 1 respectively, and produces 'b/a' which is f(1)/f(0) and 'a/b + i', which is an alternate form of f(2)/f(1), and '1/(b/a-i)', which is an alternate form of f(3)/f(2). Given f(0) = a and f(1) = b and f(n+2) = f(n) + f(n+1)*i, then f(2) = a + b*i, f(3) = b + (a+b*i)*i = a*i f(1)/f(0) = b/a f(2)/f(1) = (a + b*i)/b = a/b + i f(2)/f(3) = (a +b*i)/(a*i) = -i + b/a, so f(3)/f(2) = 1/(b/a-i) If a and b must be stacked in that order, 35 bytes does it. > If a and b must be stacked in that order, 35 bytes does it. Although Jonathan's solution of the problem (see below) is 2.5 bytes smaller, I range the winners as follows: Main reason for this decision is that Virgil's solution respects the the stack order of a,b (i.e., a in level 2, b in level 1) and also that his expressions for the 3 complex terms are the most simple ones for a normal human being (not the HP49 :-) Jonathan's term for f(3)/f(2) is 1/(a/b + i) + i which is identical with Virgil's expression (although one wouldn't discover this identity with the 49-commands EXPAND, COLLECT, SIMPLYFY :-) If I would not take into consideration the order of the arguments a,b, the simplest solution in UsrRPL is AFAIK the 32.5 bytes program << / DUP INV i + OVER i - INV > Before I repeat the problem's likes the number 12. Not only that this was once the number base of the common ancestors of many European peoples, but look at this example: The well-tempered tuning in the western music introduced by the (deeply religious) compositor J.S. Bach is based on the 12th root of 2 which I call Bach's constant in COMPOSE (by and myself, unfortunately only available for the HP48 although promised me since long to port it to the HP49 :-). ==== How to call from UsrRPL program, the UFL (Universal Font Library) ?. AFAIK you can access those font(s) only from SysRPL and use them best from ML. More info on this is in the UFL.DOC file. The complete UFL package is available on www.hpcalc.org > How to call from UsrRPL program, the UFL (Universal Font Library) ?. > Please, help me !. > Miguel Angel CAPORALINI HERK (M.A.C.H.) > AFAIK you can access those font(s) only from SysRPL and use them > More info on this is in the UFL.DOC file. > The complete UFL package is available on www.hpcalc.org ==== I have both volumes, but I confess I have not progressed very far with Vol I (let alone Vol II). There are some mistakes in the manual, but I think they > The flag settings are a bit frustrating, it's true. > I don't have a cable to connect my 48GX to a computer; > how do I get the files I want from hpcalc.org into my 48gx? > Is there some way I can type them in? You can get *any* object (up to about 1/3 of free memory size) into your calculator by manual typing User programs which can be displayed as text are the easiest, but any object can first be downloaded to an emulator on your PC, then converted to a hex string form using the popular ->ASC & ASC-> which were once used to post small binaries on bulletin boards, which many users no doubt hand-typed into their calculators, so you can surely do that same hand-typing yourself. You can find the latter programs in the newsgroup FAQ, as well as on www.hpcalc.org, and they are supplied in a sort of self- bootstrapping package which itself can be manually typed and installed into your calculator, as can ASCI & ASCO for the 49. ==== > What are the compatibility issues with the cable? I've seen the > disclaimers that it won't work with anything older than '95? The HP48 came out around 1991, so I do hope that everyone didn't have to wait around for Windows 95 to begin using it :) Unlike TI, which built special proprietary hardware into its computer cables, and also needed special proprietary software, there is nothing except the plug at the calc end of the cable which is special about an HP cable or transfer software (and even that special calc-end plug is almost identical to what was used in many computer mice, cdroms, or sound cards, enabling many cash-pressed students to make their own cable). Most 32-bit Windows programs, including the latest GUI-based file transfer accessory for these calcs, require a 32-bit Windows OS, but Columbia University's original MS-DOS Kermit still works fine under everything from MS-DOS to Windows 2000, and [Hyper]Terminal (which comes with every MS OS since Windows 3) also always works, so HP's choice of this quite universally supported software protocol (as well as the universally supported physical serial I/O interface, and the internationally standard ISO-8859-1 character set) enables this calculator series to mate with an extremely broad range An independent company even made a portable, battery-operated 3.5-inch floppy drive (Drive 95) which had only a standard serial port and used Kermit for its file transfers, which is as handy and portable for calculator backups and data file transfers as is the little IR printer (HP82240B) for hardcopy. The greatest danger to the compatibility of these calcs with PCs seems to be the latest USB-only PCs, but even then, a USB<->serial converter is a very standard item, so it's hard to see any near-term end to the ongoing compatibility of this great family of calculators with personal computers. Even those who tote around other popular new pocket computers often have their emulated HP48/49 right inside them, so no doubt the HP49 will live on, even after all the rubber keys have long since worn off :) . ==== Addresses only (no functional explanation): http://www.hpcalc.org/hp49/programming/entries/xref4849.zip http://www.hpcalc.org/details.php?id=3248 http://www.hpcalc.org/viewzip.php?id=3248&file=XREF49.TXT http://www.hpcalc.org/viewzip.php?id=3248&file=XREF48.TXT http://www.hpcalc.org/viewzip.php?id=3248&file=XREFAZ.TXT A very condensed function reference: Plain text: http://www.hpcalc.org/hp48/programming/entries/ent_srt.zip http://www.hpcalc.org/details.php?id=1782 PDF: http://www.hpcalc.org/hp48/programming/entries/ent_srta.zip http://www.hpcalc.org/details.php?id=1783 ==== > How do I manage the I/O options in the HP49, > analogous to I/O on the 48? Some 48G menus have become orphaned on the 49G by having neither a keyboard assignment nor even an appearance as a choice in any other menu, but all of the original 117 menus of the 48G still exist, and those that have become scarce are listed here: > It doesn't seem to be documented. IMHO one should mention that also these menus may not coincide with the original menus. As an example, take Menu 110, the former Portmenu, with PORTS dir (for port entries) at the first position. Since ACO had the glorious idea to append the port entries to the LIB menu, they simply chopped off the head of this menu instead of replacing it by a new one :-) This concerns also the former commands MERGE and FREE1 which had become superflue. Both OT48 and OT49 contain the powerful command LMN (List Menu Names) calling lists of menu names (rompointers) to the stack. This enables the user easily to make his own application menus. E.g, I transplanted PORTS back to its former position because searching these in a menu of over 20 libs, each time at another position, makes me nervous. And I assigned the menu to leftshift-hold 2, its position on the HP48. PS. To be independent on the filer, the latest edition of Keyman offers an assignment on the keys 0,1,2. If longhold (.3 sec) the key sets the corresponding port menu immediately (clearly, also in edit mode). When CD proposed long time ago that Keyman should support longhold keys, I was very sceptical. But after 2 years of experience, it turned out that this is an extremely useful key functionality, even better than the officially supported shift-hold. ==== > Since ACO had the glorious idea to append the port entries > to the LIB menu... Former menus 112 (Library) and 111 (Ports) are now combined; note that this allows one keyboard function (LIB, rightshift 2) to immediately access at the same time what used to require yet another completely different 3-key sequence (leftshift, 2, Ports) Since there are only three 49G ports, as opposed to a possible 34 ports on a 48GX, this was indeed a glorious idea, wasn't it? After all, allowing one key to serve multiple purposes is also one of the glorious ideas in OT49, isn't it? > I transplanted PORTS back to its former position because > searching these in a menu of over 20 libs, > each time at another position, makes me nervous. Note the PREV operation on the keyboard; it's above NXT, just as on the 48, and on the 49 it will immediately find your long lost ports But why do you even bother looking at port menus on the 49; after all, isn't there some sort of filer which shows port contents a whole lot better? . ==== Well, if you do ID SS and a varaible called SS exists, just that (ID SS) will recal the variable). so you should do: ' ID SS ( no eval ID SS ) @ IT ( I do beleive that @ returns a boolean to say if the variable existed or not ) :: do your stuff ; > I am writing my first SYSRPL program. It calls the grob SS from memory > and then copies another grob (MRK) onto that one. > But it seems that when I call it to the stack with ID SS that the > original gets replaced by the new formed grob. > So I have to RCL it from memory somehow. Here is my problem. If I do > ID SS > @ > then I get external results in the stack, and I have no idea whether I > can work with that further on. Like displaying the grob. I'd like to > see the grob, not 'External'. > If I put mulitple @'s in the program then my calc crashes and clears > my memory. > What is the syntax to use for the @ command? Or SAFE@? ==== > I am writing my first SYSRPL program. It calls the grob SS from memory > and then copies another grob (MRK) onto that one. > But it seems that when I call it to the stack with ID SS that the > original gets replaced by the new formed grob. > So I have to RCL it from memory somehow. Here is my problem. If I do > ID SS > then I get external results in the stack, and I have no idea whether I > can work with that further on. Like displaying the grob. I'd like to > see the grob, not 'External'. > If I put mulitple @'s in the program then my calc crashes and clears > my memory. > What is the syntax to use for the @ command? Or SAFE@? ==== > > you need to copy the GROB to TEMPOB first. I found another solution. I use MAKEPICT# to create a 131*64 blank grob and do my Gor's on that grob, that way I don't overwrite anything. I would still like to know how to use the @ and what it does. ==== This creep zeevhe@013.net.il is selling Emu48CE with Murray's kml script! Doesn't this break about a dozen laws? I've gotten no response to my complaints to handango. Is anyone else as disgusted as I am about this? For those who may not be aware, Emu48CE is freely available here: http://www.hpcalc.org/hp48/pc/emulators/emu48ce.exe The kml shown at handango is available here: http://www.hpcalc.org/hp49/pc/emulators/emu-ppc48-49.zip http://members.iinet.net.au/~ccroft/faqs_30-39.htm#35 ==== is there anybody who can help me how I can transfer a text file (like a word document) from my PC to the HP 40g. Please give me a link to a program which can transfer these files. (IÇve got the program NOTECARD to convert text files into HP 48 format to get .CRD files .9a but I donÇt know if it's the correct way for my HP 40g) And also give me a short instruction please ;o) thanks to all (and excuse me for my bad English please) ==== If you go to the Utilities page at http://www.hphomeview.com you will find a link that lets you download The Complete Package. This contains: a) HPGComm - the program that lets you send programs, notes and aplets to and from the calculator. b) ADK39 - a program (very old!) that lets you edit notes once they are on the computer. c) A help file that explains in great detail how to use the two programs. Don't access this file via the Help command in the programs: when you install the ADK39 the help file is installed as one of the icons in the Start menu (same group as the ADK39 is in). If you want to transfer something from a Word doc to the calculator the simplest method is: i) Create an empty note on the calculator. ii) Transfer it from the calculator to the PC using HPGComm. iii) Open the note on the PC using ADK39. iv) Copy the text from Word into the note. v) Use HPGComm to send it back to the calculator. I hope this is helpful. Don't forget that you need a cable to link the calculator to the PC. > > is there anybody who can help me how I can transfer a text file (like > a word document) from my PC to the HP 40g. > Please give me a link to a program which can transfer these files. > (IÇve got the program NOTECARD to convert text files into HP 48 format > to get .CRD files [CapitalEth] but I donÇt know if it's the correct way for my HP > 40g) And also give me a short instruction please ==== > Martin Lang and I are working on a string handling library for the HP39/40G. > If there's enough interest, I'll try to release an HP38G version too with > source code, then you'll have another resource to look at. I think even only the 39/40 source will learn me a lot. I am looking forward to that! > What I use is a modification of J.F. Garnier's mon48: > http://www.geocities.com/ResearchTriangle/2000/mon48.zip This link seems dead... Now I have downloaded stuff to keep me busy for a long time. So it will be some time before I bother you (and the forum) again. Ronny ==== > I think even only the 39/40 source will learn me a lot. > I am looking forward to that! The source code of my ticking clock aplet (well, now it's only a library :) is now ready to be published. I can send it to you if you're interested. > What I use is a modification of J.F. Garnier's mon48: > http://www.geocities.com/ResearchTriangle/2000/mon48.zip > This link seems dead... Try right-clicking on the link and choose Save target as ... Here's Garnier's home page: http://www.geocities.com/ResearchTriangle/2000 > Now I have downloaded stuff to keep me busy for a long time. > So it will be some time before I bother you (and the forum) again. Don't be silly and keep asking, Ronny. ==== > your unitman program in my new hp49G. Perhaps I'm doing something > wrong. I have my 49G set to RPN and it has the 1.18 Rom version. I downloaded the files and stored it in the flash memory. However, when I press any key it basically reboots my calculator as if I had > pressed On F3. The first and most important you should do with a new HP49 is upgrading to ROM 19-6. It is much more stable than the commercial ROM 1.18. No serious memory management problems anymore, and many tools operate properly only in ROM 1.19-6, in particular Unitman. Pardon me if this is not mentioned on Unitman.txt which was made in about ROM 19-3. beta-version 1-19-6 and the meanwhile already prepared version 19-7 is uncomparably better. I believe it would be no problem to get it from the former ACO stuff even for nothing, and to make it at once ROM 2.0. ==== Your forgetting that in order to upgrade the rom you need a cable. Guess who makes the cable. ==== For those who have a newer PalmOS device, especially a colour device, this emulator is great! I have a Sony Clie T665C and the emulator works very well. He's also promising a 49G emulator too! He's based it on Emu48, but you have to try it to understand how slick he's made the interface. http://www.mindspring.com/~hildinger/Power48/ ==== I was looking aroung in the SysRPL manual, and saw the smiling face grob that displays on the screen. Is it possible to write a code that will display a grey grob in the stack, permanently? Even when calculating? If yes what kind of implications would that have on the speed of the calc, display visibility, and so on? What different ideas do you have for the coding? Can you replace the stack somehow? Or should the program handle everything, from keyclicks to the display? ==== Take a look at Avenard's program: http://www.hpcalc.org/details.php?id=3381 > I was looking aroung in the SysRPL manual, and saw the smiling face > grob that displays on the screen. > Is it possible to write a code that will display a grey grob in the > stack, permanently? Even when calculating? > If yes what kind of implications would that have on the speed of the > calc, display visibility, and so on? > What different ideas do you have for the coding? Can you replace the > stack somehow? Or should the program handle everything, from keyclicks to the display? ==== External Curl Parametrized. ParOuterLoop. (doubts) .90m using the RPLMAN ace to reference. I do not know very clearly this. I understand that it gives special control of keyboard. They could orient to me but on which it is possible to be done with this utility and like taking advantage of it to the maximum. Referring to this, I can use this ParOuterLoop in the case of having an application that making statistical calculations and periodically generating reports that update the screen, in addition, allows to execute a program when pressing immediately a key. And after this, it follows in the application of statistic? To which I want to arrive with or without the ParOuterLoop, in other words and another context, he is similar to execute a code in a microcontroller or processor, to have a button connected to an interruption pin, when pressing (generating this interruption) stops the main code and executes the interruption, soon returns to the main code. Then, I am thankful orient to me as it is the optimal form but (quick) in Sys RPL of, executing a program, to take care of the keyboard of immediate form, without having to encuestar the keyboard ([ WAIT ] in USER) and returning to the initial code. He will be better to think about ML? excuse mi bad english ==== In fact I agree with them; with VP who points-out that my suggesed SUBST command can bring confusion and in fact it isn't strong... I've in fact thought that we can change the SUBST behavior but probably it's better to use the program suggested by nick (or one close to tha :oD) even if doing so implies to have to call another command (read program) of which I have to remember the name in future :o) So thanks for your thoughts guys! Kickaha PS: I've been away from the hp49 affair for a while.... could I ask when the new ROM 1.19-7 could be released? ==== If I understand you right, you wish to have SUBST do the substitution but leave the expression in the form d/dx(B+C)=T, and only when using EVAL or EXPAND the expression shoulf turn to T=0. Using DERIV statt d works almost the way you would like. Enter DERIV(A+B+C,X)=T then A=0 and then SUBST. This will return DERIV(0+B+C,X)=T. But I don't know how this could be turned to DERIV(B+C,X)=T. I wouldn't like however to change SUBST so that it works the way you describe. Using A(X) for something the depends on X makes things clearer (to me). Greetings, Nick. > I write to point your attention to a behaviour of the SUBST command which > IMHO could be improved. > Executing this command on an differentiated argument automatically call > the EVAL command - I think so - and this can be a bit fastidious in some > cases. > I'll make an example to explain better my POV. > > I've the equation: > 'ddx(A+B+C)+T=0' > With A, B, C that are constants for the HP49 but in my mind are functions > and I've not explicitly declared their dependency from X to have a clearer > notation. > If I execute 'A=0' SUBST I have the ddx(A+B+C) automatically evaluated and > so the result is 'T=0' which in fact is correct but it is not what I have in > mind! :o) > So there's a way to operate SUBST without calling EVAL? > Maybe it could be modified in future ROMs? > What do you think about this? ==== > If I understand you right, you wish to have SUBST do the substitution > but leave the expression in the form d/dx(B+C)=T, and only when using > EVAL or EXPAND the expression shoulf turn to T=0. Using DERIV statt d > works almost the way you would like. Enter DERIV(A+B+C,X)=T then A=0 > and then SUBST. This will return DERIV(0+B+C,X)=T. But I don't know > how this could be turned to DERIV(B+C,X)=T. Thx for the answer.. at least I'm sure I've exposed the question in a human readable form! :O) Well I know about the DERIV, but I was thinking to a facility to write formulas more readable.... > I wouldn't like however to change SUBST so that it works the way you > describe. Using A(X) for something the depends on X makes things > clearer (to me). It depends... if the functions depend on many variables isn't not easy to read an expression, especially with no multiline stack. In fact my approach can bring confusion if one doesn't know exactly what he/she's doing, and after hours of calculating it may happen :o) Kickaha ==== Disgard the two previous messages. > If I understand you right, you wish to have SUBST do the substitution > but leave the expression in the form d/dx(B+C)=T, and only when using > EVAL or EXPAND the expression shoulf turn to T=0. Using DERIV statt d > works almost the way you would like. Enter DERIV(A+B+C,X)=T then A=0 > and then SUBST. This will return DERIV(0+B+C,X)=T. But I don't know > how this could be turned to DERIV(B+C,X)=T. > > Thx for the answer.. at least I'm sure I've exposed the question in a human > readable form! :O) I am not human, I am greek > Well I know about the DERIV, but I was thinking to a facility to write > formulas more readable.... > > I wouldn't like however to change SUBST so that it works the way you > describe. Using A(X) for something the depends on X makes things > clearer (to me). > > It depends... if the functions depend on many variables isn't not easy to > read an expression, especially with no multiline stack. Yep, agree. I didn't think about this case. Even in the EQW such formulae can get quite hard to read. It should be noticed however that having SUBST working this way, it will do the right thing when for example substituting variables in differential equations or integrals. > In fact my approach can bring confusion if one doesn't know exactly what > he/she's doing, and after hours of calculating it may happen :o) I know exactly what you mean Anyway, what you would like to have can be (of course) easily programmed. With the formula that contains d (curly diff d) on stack level 2 and the substitution equation on stack level 1, you can do: << SWAP {'d&X(&F)' @This is d(&F)/d&X 'dummyFunction(&F,&X)'} |^MATCH @ |^ is arrow upwards DROP SWAP SUBST EXPAND {'dummyFunction(&F,&X)' 'd&X(&F)} |^MATCH DROP > This program (named KICKSUBST ) will return d/dx(B+C)=T with the arguments of your example. Notice that the command |^MATCH matches all patterns d&F/d&X it finds, even in nested expressions like d(d(A+B)/dX,dX). So it *matches* your purpose The usage of the name 'dummyFunction' implies that your algebraic objects must not contain this name. If they do, then use some other unlikely name in the program. Greetings, Nick. ==== I think I pressed the send button accidentally. excuse me if this message appears twice - at least the proposed program is a bit better here. In the message that I (perhaps) accidentally sent, I proposed an (unfinished) program that worked with ->LST and ->ALG. The program in this message works with |^MATCH, and will also take care of nested derivatives. > If I understand you right, you wish to have SUBST do the substitution > but leave the expression in the form d/dx(B+C)=T, and only when using > EVAL or EXPAND the expression shoulf turn to T=0. Using DERIV statt d > works almost the way you would like. Enter DERIV(A+B+C,X)=T then A=0 > and then SUBST. This will return DERIV(0+B+C,X)=T. But I don't know > how this could be turned to DERIV(B+C,X)=T. > > Thx for the answer.. at least I'm sure I've exposed the question in a human > readable form! :O) I am not human, I am greek > Well I know about the DERIV, but I was thinking to a facility to write > formulas more readable.... > > I wouldn't like however to change SUBST so that it works the way you > describe. Using A(X) for something the depends on X makes things > clearer (to me). > > It depends... if the functions depend on many variables isn't not easy to > read an expression, especially with no multiline stack. Yep, agree. I didn't think about this case. Even in the EQW such formulae can get quite hard to read. It should be noticed however that having SUBST working this way, it will do the right thing when for example substituting variables in differential equations or integrals. > In fact my approach can bring confusion if one doesn't know exactly what > he/she's doing, and after hours of calculating it may happen :o) I know exactly what you mean Anyway, what you would like to have can be (of course) easily programmed. With the formula that contains d (curly diff d) on stack level 2 and the substitution equation on stack level 1, you can do: << SWAP {'d&X(&F)' @This is d(&F)/d&X 'dummyFunction(&F,&X)'} |^MATCH @ |^ is the char arrow upwards DROP SWAP SUBST EXPAND > This will return d/dx(B+C)=T if used with the arguments of your example. Notice that the command |^MATCH matches all patterns d&F/d&X it finds, even in nested expressions like d(d(A+B)/dX,dX). So it *matches* your purpose The usage of the name 'dummyFunction' implies that your algebraic objects must not contain this name. If they do, then use some other unlikely name in the program Greetings, Nick. ==== ÂX > 'ddx(A+B+C)+T=0' > With A, B, C that are constants for the HP49 but in my mind are functions > and I've not explicitly declared their dependency from X to have a clearer > notation. > If I execute 'A=0' SUBST I have the ddx(A+B+C) automatically evaluated and > so the result is 'T=0' which in fact is correct but it is not what I have in > mind! :o) X What happens with 'ddx(A(X)+B(X)+C(X))+T(X)=0' ??? ==== Veli-Pekka Nousiainen ha scritto nel messaggio > ÂX > 'ddx(A+B+C)+T=0' > With A, B, C that are constants for the HP49 but in my mind are functions > and I've not explicitly declared their dependency from X to have a clearer > notation. > If I execute 'A=0' SUBST I have the ddx(A+B+C) automatically evaluated > and > so the result is 'T=0' which in fact is correct but it is not what I have > in > mind! :o) > What happens with > 'ddx(A(X)+B(X)+C(X))+T(X)=0' > ??? With A=0 nothing happens only the expression is changed in the form d1A(X)+d1B(X)+d1C(X)+T(X)=0 , with 'A(X)'=0 I have d1B(X)+d1C(X)+T(X)=0, > you *really* was asking for it... I was *really* asking for it for several reasons: A) some newbies (I have bought my calculator 4 days ago...) may be reading this, so it's nice to clarify the current CAS out. B) To make sure that _everybody_ knows what the question/solution was C) I was too lazy to find the answer and I let you do it :-) > Anyway I wasn't surprised by the behavior of the calc, I was just wondering > if it isn't more conveniente that SUBST doesn't automatically evaluates the > expression and asking to you guys what do you think about it... I see either > you and Nick aren't of my > opinion.... and that's right for me.... Hmmm. I'm not sure about it, but how do I differ constant from functions if there is no explicit format, eg. C, F(X), could be constant Y, X(C), (VX=C) ==== > Has anyone ever had success with the terminal emulation programs. I was > playing aroung with a couple, trying to loing to my FreeBSD box through the > sserial port. No luck. I'm assuming you can use the standard HP > connectivity cable to a 9 pin serial port. Any suggestions? Have you looked here? http://www.hpcalc.org/hp48/utils/terminal/ ==== Minifonts for all. > What font size are you using on your HP49G for: > stack? > editor? > menues? > EQW? > I am using the 4*5 minifont for all. > I have no idea wether this applies to the other HPs as well, so answer at will. > Michael ==== X > I used to just have mini-font on the stack. After I got used to > mini-font, I decided to have everything in mini-font. That way I can > see more information at a time. Likewise, except that nowadays I nead reading glasses anyway. Without the glasses evreything seems fuzzy in about three meter radius. ==== Is there any simple way to hook up an external keyboard, such as a PC keyboard, to the 49g serial port? Maybe there is a way to wire it in such a way that it would work with just an application that translates the keyboard codes. The keyboard would probably need a power source and wiring to be modified among other things, but it would be interesting to try. I don't know much of the internals of the 49g/48, so maybe some of you can help me out. I think it would be intuitive to have a keyboard to type in data for programming, taking notes, etc. Is it possible, however? ==== > > Is there any simple way to hook up an external keyboard, such as a PC > keyboard, to the 49g serial port? Maybe there is a way to wire it in such a > way that it would work with just an application that translates the keyboard > codes. The keyboard would probably need a power source and wiring to be > modified among other things, but it would be interesting to try. > > I don't know much of the internals of the 49g/48, so maybe some of you can > help me out. I think it would be intuitive to have a keyboard to type in > data for programming, taking notes, etc. Is it possible, however? Probably it would be easier to load a HP48GX emulator into an (sub)notebook... ==== this one works: http://www.pocketnow.com/reviews/keysync/Keysync.htm by work i mean that it talks to the HP49/48. however, for each key pressed, it sends a couple of bytes that need to be internally translated (or mapped) by the hp49/48. it is nice because it has a connector that plugs into the hpp49/48 using the pc cable. a while back i got one but i returned it (the one i have now is IR and works withthe sharp zaurus). the keysync keyboard would need a special software to translate the codes and insert them into a text editor. the translation would have to be very fast (ML or ASM).so it works but there is no driver made for the hp49/48 :( > Is there any simple way to hook up an external keyboard, such as a PC > keyboard, to the 49g serial port? Maybe there is a way to wire it in such a > way that it would work with just an application that translates the keyboard > codes. The keyboard would probably need a power source and wiring to be > modified among other things, but it would be interesting to try. > I don't know much of the internals of the 49g/48, so maybe some of you can > help me out. I think it would be intuitive to have a keyboard to type in > data for programming, taking notes, etc. Is it possible, however? ==== > Is there any simple way to hook up an external keyboard, such as a PC > keyboard, to the 49g serial port? Maybe there is a way to wire it in such a > way that it would work with just an application that translates the keyboard > codes. The keyboard would probably need a power source and wiring to be > modified among other things, but it would be interesting to try. > I don't know much of the internals of the 49g/48, so maybe some of you can > help me out. I think it would be intuitive to have a keyboard to type in > data for programming, taking notes, etc. Is it possible, however? I'd say 'yes of course'. For the hardware, the easiest solution to my mind would be to have a terminal emulator on a PC, such as HyperTerminal or Minicom, which would transfer what you type on the serial wire, which would then be received by the hp. For the software, you only need to write a resident interrupt handler : write a lib with its own interrupt handler which reads chars from the serial port and put them in the key buffer, just like when you press buttons directly on the calc. This has to be kept in memory, so STOred in port 0, or even better, in serial buffer, if the code can hold in 512 nibbles :) -- ==== As in one that you can bring with you, not necessarily a laptop, but just some type of external keyboard. Let's start with this, can you use another 49g calculator as a keyboard for a 49g? > Is there any simple way to hook up an external keyboard, such as a PC > keyboard, to the 49g serial port? Maybe there is a way to wire it in such a > way that it would work with just an application that translates the keyboard codes. The keyboard would probably need a power source and wiring to be > modified among other things, but it would be interesting to try. > I don't know much of the internals of the 49g/48, so maybe some of you can > help me out. I think it would be intuitive to have a keyboard to type in > data for programming, taking notes, etc. Is it possible, however? > I'd say 'yes of course'. > For the hardware, the easiest solution to my mind would be to have a > terminal emulator on a PC, such as HyperTerminal or Minicom, which would > transfer what you type on the serial wire, which would then be received > by the hp. > For the software, you only need to write a resident interrupt handler : > write a lib with its own interrupt handler which reads chars from the > serial port and put them in the key buffer, just like when you press > buttons directly on the calc. This has to be kept in memory, so STOred > in port 0, or even better, in serial buffer, if the code can hold in 512 > nibbles :) ==== > As in one that you can bring with you, not necessarily a laptop, but just > some type of external keyboard. Ok. I indeed wondered :) > Let's start with this, can you use another 49g calculator as a keyboard for > a 49g? Well, yes. It would even be easier, since one then chose translation code, so that one can manage to have no translation to do at all :) -- ==== [about a warmstart or hang when exploring HOME backups saved in ports] > I think I found the bug. If a HOME backup contains another nullname > built-in filer does not anymore work, either warmstart or a hang-up. > Thus, the filer is foolish and thinks the first nullname The duplicate name among variables is part of the cause, but it is not really the fault of the filer; rather, it is the fault of your own variable hider, whose users are the only ones who can reproduce this problem. I use a variable hider also, but my hider uses an empty *directory* to stop further variables from being listed, and therefore no such crash occurs; for the same reason, my hider never crashed any of the various port management tools (e.g. PCT) made for the HP48, some of which also allowed for exploring into libraries and backups stored in ports. > Now, all file hiding tools are based on adding another nullname > to a directory... [see original post for remainder of lecture] As you know, if you open your calculator and/or modify it, HP is no longer responsible for its warranty. I suggest that you are also out of line complaining to HP that they should continue to be responsible for whatever happens after you have hacked into its software and/or have created a situation which normally does not exist, and which the Filer is therefore not responsible for handling. Rather, you should take responsibility to see that your own hacking tools do not cause problems. If you would use a directory instead of some other object in your hider, then this problem would not occur, so why don't you fix it by modifying your hider, instead of haranguing HP about what is in no way its fault? To see why your hider causes the problem, create and store this directory (this is plain UserRPL, which you can type directly into your command line): DIR NAME 123 NAME DIR X 5 END END 'MYDIR' STO Now go into the MYDIR directory, and note that you now have two variables having the same name, the first of which contains a number, while the second contains a directory. Now, *without* using the filer at all, kindly *recall* the contents of the *second* variable -- for example, try using right-shift before pressing the *second* variable's menu key. Did you succeed in recalling the *directory* which you know to be stored in the second occurrence of the same-named variable? For those not bothering to try the experiment themselves, the unavoidable result is that when two variables have the same name (a situation which only hacking tools create), it is only possible to recall the first-occurring variable. If you now purge that first variable, via 'NAME' PURGE, only then can you see and recall the directory which has been there all along, in the second variable. But if both identically named variables still exist, and if you then try to use the first, non-directory object as if it were a directory, it shouldn't be surprising if this happens to lead to a problem, should it? Your variable hider is doing exactly this same thing, by creating another variable having the same name as the hidden directory (the name in this case is an empty string, but the effect is quite the same), so the means to fix the problem is entirely in your hands -- simply make that object a directory, and then this problem, which occurs only with your own hacking tools, will go away by itself. ==== > I think I found the bug. If a HOME backup contains another nullname > the built-in filer does not anymore work, either warmstart or a > hang-up. Thus, the filer is foolish and thinks the first nullname > The duplicate name among variables is part of the cause, > but it is not really the fault of the filer; > rather, it is the fault of your own variable hider, > whose users are the only ones who can reproduce this problem. > I use a variable hider also, but my hider uses an empty > *directory* to stop further variables from being listed, > and therefore no such crash occurs; I didn't talk on any crash above. But your method of storing the empty dir in the nullname is *misleading* because if doing it and entering a nullnamed dir always says no entries. That is, the filer definitely RCL always recalls only the first name (in left order) if there are two different objects stored under the same name in the same dir. That may be OK outside the filer because it was so on the 48. But the filer is a completely new tool and hence, should be more intelligent than traditional tools. > As you know, if you open your calculator and/or modify it, > HP is no longer responsible for its warranty. I suggest > that you are also out of line complaining to HP that they > should continue to be responsible for whatever happens > after you have hacked into its software and/or > have created a situation which normally does not exist, > and which the Filer is therefore not responsible for handling. Very strange what you write. Who is responsible if the filer lies if somebody uses your hiding tools? You or the filer? It seems you in a bad mood. My tools always respect the reality. I only suggested that the builtin filer should, if not support, so at least consider that there may be several nullnames, no matter what is stored in these. I don't see any need for storing the 6 byte empty dir as a dummy in the nullname for hiding if a 3 bytes character has the same effect. ==== > I didn't talk on any crash. It wasn't you who complained of warmstarts or hangs when poking into the last item in a backup directory? (which has a zero-length name, sometimes duplicated in earlier variables when variable hider hacking tools are used). > But your method of storing the empty dir in the nullname > is *misleading* because if doing it and entering a > nullnamed dir always says no entries. The point is, that it avoids warmstarts and potential crashes; I'm not interested in trying to explore any saved alarms and user key assignments (which are generally unviewable anyway), just in being crash-proof in case of an attempt to do so. Go back and create the directory I posted last time, then explore it with the filer -- of course you can not see the contents of the second variable (a directory) when there exists an identically named earlier variable; this has nothing to do with any special name associated with a hidden directory (which, in a backup stored in a port, has nothing to do with the current actual hidden directory in the real HOME), but is entirely a consequence of repeating *any* variable name, with the repetitions containing different object types. But because the filer's internal table records the second entry as being a directory, the filer tries to explore it anyway, although there is in fact no directory structure there at all in the earlier variable of the same name -- this is similar to presenting a wrong object type to an internal function without checking, and sometimes the price paid for such a mistake is a crash (which could be as severe as an immediate or subsequent memory wipeout, due to whatever slightly random events occur). It will be just fine with me if any subsequent ROM version of the filer is adjusted to defend itself against your particular variable hiding tool, or even adopts your own filer re-write, but as of this writing, it does not; therefore, I encourage you to protect the user by temporarily modifying the hider tool, until such time as the combination can be safe. > That may be OK outside the filer because it was so on the 48. > But the filer is a completely new tool and hence, > should be more intelligent than traditional tools. HP's design objectives need not have been to cater to hackers, but to make a product which works when used in accordance with its specs. Nonetheless, it is fine with anything except a variable hider that uses some different object type, which you seem to insist on doing, rather than accommodating the only versions of the ROM which exist today. > Who is responsible if the filer lies > if somebody uses your hiding tools? Lies is not the issue; crashes is what it does. You can readily, if you wish, re-issue your tools so that they will not be a danger when used with the existing available OS versions; only your psychology stands in the way :) > My tools always respect the reality. A very artificial reality of wishful thinking, that the product which consumers have in their hands contains what you would wish it to contain, instead of what it actually does contain. I have written programs which should work, but which I know will not work because of existing OS bugs; what should I do, then -- release my program which calc owners will not be able to use, and say it's all HP's fault that it fails or zaps your calc, or should I adapt my current release to what will actually work in the calc that the owner has in his hands? As far as I'm concerned, DOLIST and DOSUBS should accept empty lists and always return a result list, rather than lying and violating a cardinal principle of RPN (thou shalt always return either a predictable number of results on the stack, or a count or indicator of how many results you did return) -- but this has been violated ever since the 48G started production. This violation requires a lot of ugly and otherwise unnecessary extra user programming to make up for it; should I, then, have pouted and insisted upon publishing more elegant programs which don't actually work, telling people that if only the 48G/49G behaved as it should have, then my programming masterpieces would actually function? Or should I continue writing and posting things that actually work, in the light of the reality of how the calculator products actually behave, blemishes and all? > I don't see any need for storing the 6 byte empty dir > as a dummy in the nullname for hiding if a 3 bytes character > has the same effect. Except that it has the additional effect, in all current calculators and ROMs available to the public, of allowing a crash to occur; but what does that matter, as long as it saves three bytes? Which reminds me of some writings of John Ruskin (1819-1900), which are quite apropos in today's totally cost-conscious world (in which many ultimately greater costs are unfortunately ignored): It is unwise to pay too much, but it is worse to pay too little. When you pay too much, you lose a little money - that is all. When you pay too little, you sometimes lose everything, because the thing you bought was incapable of doing the things it was bought to do. The common law of business balance prohibits paying a little and getting a lot... it cannot be done. If you deal with the lowest bidder it is well to add something for the risk you run, and if you do that you will have enough to pay for the something better. There is hardly anything in the world that some men cannot make a little worse and sell a little cheaper, and the people who consider price only are this man's lawful prey. See you all at Wal-Mart, then :) ==== > I didn't talk on any crash. > It wasn't you who complained of warmstarts or hangs > when poking into the last item in a backup directory? > (which has a zero-length name, sometimes duplicated > in earlier variables when variable hider hacking tools are used). Yes, but a hang-up or a warmstart should perhaps not be called a crash. > But your method of storing the empty dir in the nullname > is *misleading* because if doing it and entering a > nullnamed dir always says no entries. > The point is, that it avoids warmstarts and potential crashes; > I'm not interested in trying to explore any saved alarms > and user key assignments (which are generally unviewable anyway), > just in being crash-proof in case of an attempt to do so. In this point I completely agree with you and I stressed this already not, should not be facilitated by any filer. > It will be just fine with me if any subsequent ROM version > of the filer is adjusted to defend itself against your particular > variable hiding tool, or even adopts your own filer re-write, > but as of this writing, it does not; Damned! Do you know how many hours I spend to analyse the filer's structure? How difficult it is to work in a 4-dimensional space of possibilties: Key executable in a dir but not in a port, or conversly, etc. Did you ever read in Programming in SysRPL the part concerning FPTR Filer_Manager which is not at all completely documented? Did you offer any alternative in your beloved UsrRPL? I've investigated your proposal of storing the empty dir in the empty name for hiding. It is *not* the right way, at least not for newbees. Apart from that one gets a wrong message with RightshiftArrow - and exactly this functionality is not reprogrammable as JYA said - let us follow your proposal up to its last consequences: With your setting, you see the the empty dir at the end of the dir tree in the TREE environement. Just press on CHDIR to set the dir. This leaves the filer with an empty menu. Now a curious newbee who just only VARS. But the menu remains empty! The newbee would probably think he made a serious mistake and lost all his files in the HOME directory. We cannot assume that he read JYA's stenogram on the filer functions. Clearly, he is in your empty directory which is nothing else than a dummy. Where should a newbee know from that everthing will be ok by just running HOME or UPDIR? Now comes the next pitfall. If the newbee has choosen your empty dir and presses EDIT, seeing something like DIR END, he didn't get anything interesting, hence wants to return to the filer by ENTER. But he gets the error message Directory Not Allowed. At this point, the newbe is probably completely confused. But let him continue with OK. Then he indeed return to the filer. After leaving the filer he sees in level 2 DIR END and in level 1 the empty name. Now, if our newbee is already somewhat advanced he'll draw the right concluson: Aha, when I edited the empty directory, the filer tried to restore the edited directory and that's generally not allowed. But the unexperienced user, although seeing the empty name for the first time in his life, may purge this suddenly appearing strange name from the stack with PURGE - and his endavour in hiding a lot of files like STARTUP was in vain if he didn't read your document carefully enough which is the rule. Do you really think I offer in my filers a complex tool, without carefully weightening every detail? I appreciate critics and propositions, but these should come from somebody who at least tried my filers. Clearly, here the builtin filer has a bug. It should not allow to edit a directory and afterwards trying by itself to restore (I hope JYA will read this). This was the main reason why I removed the EDIT from its prominent 1st place in JYA's filer menu and replaced it by EDITB (edit best) which allows to edit even a character and restores it correctly. The EDIT function has been banned to leftshift EDITB (with rightshift EDITB you may even edit and restore a SysRPL object which is somewhat risky because the ASM function in lib 256 does not yet run perfectly). Thus, your proposal is inacceptable - unless I write a lot of general nonsense in Filers.txt which would terribly complicate the story. ==== The point is, that it avoids warmstarts and potential crashes... > In this point I completely agree with you and I stressed this already > not, should not be facilitated by any filer. Well, I was commenting about my *personal* lack of interest, but I hardly meant to support locking out anything in a saved directory object in a *port* from being explored by the user, if (s)he wants, because: o Port objects of this type could be copies of *any* directory, and variables within it, whether named or unnnamed, could contain anything and/or cause these warmstarts etc., so we have no business trying to judge them by name alone. o Null-named variables of any type can be user-created for any purpose, may be used to store any further data one wishes, and thus should not be discrimated against being viewed at will. Hey JKH, why don't you jump in here and repeat that lecture in which you upbraided me for even daring to suggest otherwise (which wasn't what I really meant, but you thought I did): http://groups.google.com/groups?selm=cSOI9.11559%24kz2.1204351%40newsread1.p rod.itd.earthlink.net o Actually, I once showed how to rename the hidden directory to a non-null name, which ought to cause you to think further (and reveals another easily fixed current filer bug as well): The current 1.19-6 filer warmstart problem is a general problem applicable to named objects as well, and can not be solved by prejudicially disabling only null-named objects from being viewed; the completely general and bullet-proof solution to the filer bug is simply to check object type of *any* variable before treating as if a directory; absolutely no need to get stuck on irrelevant detail and prejudice against null named variables. Behavior is then identical with the VAR menu, in which only one of identically named vars in current dir can be viewed (unless new filer works quite differently to be able to view all of them, which would also obviate any need to refuse viewing), so what's wrong with that being identical to the filer (which it is already, which in turn is why you got warmstarts from the filer having forgotten this point)? Or, rewrite filer to not act like VAR, and obviate the problem by not letting one variable cover another, which also obviates every disallow showing some var proposal. > Damned! Do you know how many hours I spend to analyse the filer's > structure? How difficult it is to work in a 4-dimensional space of > possibilties: Key executable in a dir but not in a port, or conversly, > etc. Did you ever read in Programming in SysRPL the part concerning > FPTR Filer_Manager which is not at all completely documented? Did you > offer any alternative in your beloved UsrRPL? What did I say to unleash this storm? All I tried to say was that since the current filer warmstarts when used with your hider (a complaint that you raised yourself), you could instead adjust your hider to avoid it, which is the only way that the problem can be eliminated from the existing 1.19-6. > I've investigated your proposal of storing the empty dir in the empty > name for hiding. It is *not* the right way, at least not for newbees. > Apart from that one gets a wrong message with RightshiftArrow - Is getting a warmstart the right message, then? > With your setting, you see the the empty dir at the end of the dir > tree in the TREE environment. Just press on CHDIR to set the dir. You have left the topic of examining a copy of a directory object stored in a port, and are now on the topic of using the filer tree to pick any directory to make the current directory and view it in the VAR menu, which can be done as well without bothering with the filer at all, just by navigating to it (from HOME) using VAR menu keys alone. > This leaves the filer with an empty menu. Now a curious newbee > and nervously presses on VARS. But the menu remains empty! Just as it does when he goes to any empty directory at all, even a named one which he created himself! If this frightens him, tell him never to make an empty directory and then begin using it, nor to use Peter Karp's clean solver, for his nerves' sake :) > The newbee would probably think he made a serious mistake > and lost all his files in the HOME directory. Are you indirectly hinting that the PATH display will disorient the poor fellow? Well, why doesn't it equally and then sees only a couple of unrecognizable names (or possibly an absolutely empty directory, as explained above), yet with the same {HOME} [no space!] displayed at the top? (although PATH or PATH SIZE shows it clearly enough). And what if his header size is zero? Boy, if he ever then falls into the black hole of a normal empty directory of his own, only a fire company with a ladder will be able to rescue him :) Just give him a Valium, and let him do what he wants; after all, by the time he is using variable hiders and looking for the hidden directory to explore in backups, he probably resents being called newbie any longer, probably can prove it by knowing what UPDIR and HOME do, and may very well be highly annoyed with a filer which doesn't let him see the files he wants. I think you are really grasping at straws trying to justify a prejudice against using other unnamed directories (the system already uses one itself, so you can't avoid it); the fact is, you can get into any empty directory anyway, without even invoking the filer, so it's no use working overtime to fudge the filer not to show empty directories while the VAR menu still does, it's not a general solution to the warmstarts which you got yourself, and it will get JKH mad again to try to lock everyone out of them, and you know what a snot he gets to be when he's mad > Now comes the next pitfall. If the newbee has choosen your > empty dir and presses EDIT, seeing something like DIR END, > he didn't get anything interesting, hence wants to return > to the filer by ENTER. But he gets the error message > Directory Not Allowed. At this point, the newbe > is probably completely confused. More confused than when not using the filer at all, when just pressing left-shift ... Down, with the name 'MYDIR' on the stack? (or left-shift EDIT on 'MYDIR' in the HP48) A popular writer on the subject of nutritional supplements once campaigned quite like this in one of his books; he devoted one whole chapter to extolling the virtues of Vitamin C, yet in another chapter he was damning chemical food additives like Ascorbic Acid (which is also the very same Vitamin C). How come the filer is so wrong to give this error if you try to *store* an edited directory (or anything else) back into the directory variable, but you are not also campaigning against the fact that this is not a filer bug, but is the completely general system response to any attempt to store anything into a variable that already contains a directory? Take any HP48 or 49 and try to edit any directory in place, without the filer -- can you do it? So that's your real complaint, and even if you are making a new filer which allows editing an entire directory, it still doesn't fix the current warmstarts in 1.19-6 which occur when using a hider tool which you could immediately fix right now, without waiting for any GPL, etc. > Thus, your proposal is unacceptable - unless I write a lot of general > nonsense in Filers.txt which would terribly complicate the story. What was my proposal, anyway? Oh yes, it was have your *hider* use an empty directory, so that the 1.19-6 filer crashes (about which you complained) could no longer occur. And your objection is, that if the user deliberately navigates into that empty directory, he will have no idea how to get out, unlike when it's an empty directory he made himself. So okay -- how about using a non-empty directory, then; just make a string in it named 'README' which says: Don't worry, this directory has been created to help you hide your variables; now press UPDIR or go HOME :) Or, instead of using up that many extra bytes in every hider variable, you could instead transfer that note to your hider documentation, and consider the matter closed :) ==== > How come the filer is so wrong to give this error if you try > to *store* an edited directory (or anything else) back into > the directory variable, but you are not also campaigning > against the fact that this is not a filer bug, > but is the completely general system response to any attempt > to store anything into a variable that already contains a directory? Not I, but the filer itself tries to restore an edited directory if you ENTER on the edited directory. This is bug number 2 in my bug list from Sunday 2:14pm. If you hit CANCEL, nothing happens (at least as long the directory doesn't contain any strings with nullcharacters, BZ-strings, say. It should be noticed that, although MASD does manage directories (one of the very few advantages of MASD over JAZZ), MASD does not yet master BZ-strings with an even number of nibbles, a bug which I reported to CdB long time ago. Thus, recompilation of directories containing files with BZ-strings already breaks down before the builtin filer tries to restore, which doesn't work with xSTO (but the SysRPL STO as you know). It is true, the filer's EDIT brick could be reprogrammed, but on cost of RAM because these bricks are just invoked by their 2.5 bytes bint codes in the Filer_Manager flashpointer. PS. I propose we should stop this thread, otherwise JYA will lose the oversight when he returns to the NG, in particular if reading your contributions in polished upper-class English :-) ==== > the filer tries to restore an edited directory if you > ENTER on the edited directory. This is a bug... I wouldn't think of this as any bug, any more than initiating an edit of the object in 'MYDIR' when it's a directory; after all, you should be able to use the editor to view the object, and if you decide to actually try to store it, that's the time when an error should be indicated, and what's more natural than that? If you want the filer to do a whole lot more than is allowed when not using the filer, well, it's your privilege to create new abilities which never existed before, in your own filer, but I would hardly say that this makes the original filer buggy. Maybe there are other real bugs which I have never looked more closely to detect; you say there are, but these must be different than what I responded to above. > the builtin filer tries to restore, which doesn't work with xSTO > (but the SysRPL STO as you know). You credit me undeservedly with omniscience; I was never interested in examining any coding within the filer. All I know in life is those things to which I've paid close attention, and those few things I usually know very well. > your contributions in polished upper-class English :-) Another credit for what I'm not; I merely went through school in a place and time where teachers taught and kids paid attention, without seeming to need drugs to do so, and I gain again from the accidental advantage that we use my own native language here. It's the Brits who have the class distinctions, anyway, An Englishman's way of speaking absolutely classifies him; The moment he talks he makes some other Englishman despise him. There even are places where English completely disappears -- In America, they haven't used it for years. http://www.guntheranderson.com/v/data/whycantt.htm ==== > I wouldn't think of this as any bug, any more than > initiating an edit of the object in 'MYDIR' when it's a directory; > after all, you should be able to use the editor to view the object, > and if you decide to actually try to store it, that's the time > when an error should be indicated, and what's more natural than that? ==== > All I tried to say was that since the current filer warmstarts > when used with your hider (a complaint that you raised yourself), > you could instead adjust your hider to avoid it, which is the only > way that the problem can be eliminated from the existing 1.19-6. If you'd have read the available documents about the flashpointer Filer_Manager you'd know that there are reprogrammable components and others, like the RightArrow driving downward function, are not. Thus, exactly what causes the warmstarts is not reproprogrammable unless I write an entirely new filer which will cost about 36 KB. > This leaves the filer with an empty menu. Now a curious newbee > and nervously presses on VARS. But the menu remains empty! > The newbee would probably think he made a serious mistake > and lost all his files in the HOME directory. > Are you indirectly hinting that the PATH display will > disorient the poor fellow? Exactly! Do you really think a newbee would be so crazy as to create an empty directory and store it in the empty name? I don't think so. Hence he never met with this situation: The header tells him he is at HOME, but the VARS key launches an empty menu, although he already created a lot of his own files, perhaps some of them hidden by your HIDE tool. ==== > All I tried to say was that since the current filer warmstarts > when used with your hider (a complaint that you raised yourself), > you could instead adjust your hider to avoid it, which is the only > way that the problem can be eliminated from the existing 1.19-6. > If you'd have read the available documents about the flashpointer > Filer_Manager you'd know that there are reprogrammable components > and others, like the RightArrow driving downward function, are not. > Thus, exactly what causes the warmstarts is not reproprogrammable > unless I write an entirely new filer which will cost about 36 KB. What does reprogramming the filer have to do with what I suggested, which was to adjust your *hider* (is it in OT49?) > Do you really think a newbee would be so crazy as to create an > empty directory and store it in the empty name? I see -- he'd be much less crazy to create a character object and store it with a null name, I guess. And probably he wouldn't have been so crazy as to create any hidden directory in the first place :) Anyway, he doesn't have to create anything at all; that's what the hider is there to do for him. > Hence he never met with this situation That's what documentation (of hider tools) is for, to explain what makes it work. Most HP newbies probably never met with an ENTER key before, either, so perhaps we should remove it, so as not to confuse them. > The header tells him he is at HOME > but the VARS key launches an empty menu > although he already created a lot of his own files, > perhaps some of them hidden by your HIDE tool. This illustrates that the PATH display needs fixing :) Well, I guess this is settled, then -- let the user of this particular hider crash his calc, meanwhile, as this is preferable to all the other frightening possibilities which may befall him. It reminds me of the early reasoning of the medical community (and its regulators) in rationing painkillers, even to people in their last throes of dying, to protect them from the possibility of becoming addicts (some sanity has since taken hold, plus research that even showed addiction to be unlikely in dying patients -- incurable cancer, etc.) ==== > The header tells him he is at HOME > but the VARS key launches an empty menu > although he already created a lot of his own files, > perhaps some of them hidden by your HIDE tool. > This illustrates that the PATH display needs fixing :) Obviously. I darkly remember you asked for this out long time ago already. But it is probably too good to become true :-) ==== X I would still like to VIEW the contents of a any back-up in FlashRAM. > Clearly, here the builtin filer has a bug. It should not allow to edit a > directory and afterwards trying by itself to restore (I hope JYA will > read this). This was the main reason why I removed the EDIT from its > prominent 1st place in JYA's filer menu and replaced it by EDITB (edit > best) which allows to edit even a character and restores it correctly. > The EDIT function has been banned to leftshift EDITB (with rightshift > EDITB you may even edit and restore a SysRPL object which is somewhat > risky because the ASM function in lib 256 does not yet run perfectly). > Thus, your proposal is inacceptable - unless I write a lot of general > nonsense in Filers.txt which would terribly complicate the story. > ==== I forgot to add a note for those who do not agree with JHM's (and my) as long as nothing is hidden in my or in the builtin filer. Hence, assume my filer was used for hiding some files in HOME. Just any filer, just with RCL. Next quote the nullname. Quoting is on key Q dir. There is no change in the functionality of the 49 although the different places in HOME! Clearly, this is not particularly economical problem, also in my filer. position, but it can simply be PURGEed inside the filer. All alarms and key assignments remain intact since there's still a copy. Amazing :-) the formerly hidden files again. But this is a child's play with my Filer1 or Filer2 :-) PS. That's not me but JHM who invented this kind of games. I remember that he posted something similar here and recommend it to JKH. Whether Joe did try them or not I don't know :-) ==== > I forgot to add a note for those who do not agree with JHM's (and my) > via the filer in a backup of HOME. Funny that I can't recognize my own opinion, which I believe I had just stated for myself earlier today. No, I am not in favor of making anyone go through such contortions to get at what's in any null-named dir in a backup (which may or may not be a real HD, for reasons previously expressed). I think that it's bizarre, sorry. How about drilling another hole in the back, and requiring the user to insert two paper clips at the same time (you know, like those ICBM-launching switches...) On second thought, I withdraw that suggestion > PS. That's not me but JHM who invented this kind of games. > I remember that he posted something similar here > and recommend it to JKH. Should I be flattered to have this elegant solution attributed to me? (do you know how Google's Advanced Groups Search works?) What with both WR and JKH fabricating my inner thoughts for me, I guess I can sit back and save my mental energy for some real work :) ==== I think I found a way out of the dilemma, a kind of compromise. Not the empty dir will be stored in the nullname for hiding, but a directory with a single file named ' Not allowed'. Yes, you read it correctly, a long name, displayed by the filer when trying to enter any nullnamed directory in a HOME backup. That cost only 28 bytes, nearly nothing. Even a EVAL on this file is harmless, it runs the empty SysRPL program which is unvisible for EDITB and VIEW (in normal stack display :-) I tested already everything but will not publish it before JYA returns or some better proposal will come from this NG. It works fine in 19-6. PS. If you, John, would have read Filers.txt you would have noticed that Filer1+2 for 19-7 are already prepared, 500 bytes smaller since JYA did still refine the modular components of the filer. Thus, don't worry, if ROM 19-7 appears and I'm still alive, my filers will be updated the other day. ==== > That cost only 28 bytes, nearly nothing. I never thought I'd hear the day when you'd waste 28 bytes and say it was nothing :) Well, I'm off to another bizarre bazaar; hope I never see this! ==== > I use a variable hider also, but my hider uses an empty > *directory* to stop further variables from being listed ... I would accept your proposal having the empty dir in the empty name for hiding, if the filer's message No entries would be modified to something like Empty dir or entry not allowed. IMHO, for the any filer. ==== > I would accept your proposal having the empty dir in the empty name > for hiding, if the filer's message No entries would be modified > to something like Empty dir or entry not allowed. IMHO, for the > any filer. There is a bigger world (and universe) out there, beyond ourselves, and until we break the boundaries of thinking (and experiencing) only in terms of our own personal habits or experiences, we will not have a world in which all other possibilities (or races, religions, customs, cultures, and areas of knowledge and experience which we've never even thought of or yet encountered) can co-exist alongside our own, and perhaps even be discovered and appreciated by us for their contribution to our total wisdom and the complete integration of our life with everything else that surrounds us. 1. The one and only hidden directory is a single object at the end of HOME, which the filer in fact does not show, so your desire is already fulfilled! 2. A directory stored in a port is just a copy of some directory; it could be a copy of any directory at all, and in fact you can RESTORE (to HOME) any directory at all which happens to have been copied to any port! 3. If some variable in some stored copy of a directory has a null name, and even if the stored object itself happens to be a directory, this may or may not be a copy of what you assume to have once been the hidden directory; perhaps it is instead only a variable that was created by a hider! -- or any other hack, such as where people wanting to hide some data actually store the data inside such objects, rather than in named variables which follow such objects (people have done this, including the special case where the data is simply stored in a variable within the standard hidden directory), so your single notion of how data might be hidden is not fully general, and trying to fix the problem in a highly non-general manner is sure to leave something out, or to sometimes act inappropriately. Therefore it is both unnecessary and not generally correct to assume anything about it or to do anything special about it; a stored directory object structure is just an unknown collection of variables, period, and the most completely correct handling would be to assume absolutely nothing special about it, certainly not to presume that the situation can only be exactly like what you happen to have in your own calculator, and thus to devise a solution that might suit only you, or someone exactly like you. 4. On the other hand, if hacker tools were used to make any two (or more) variables in a directory have the same name, which even a system CREATE command can do at any time, then, as you know, the filer that comes in any released 49g ROM thru 1.19-6 can only recall the first such same-named object. 5. Because of this, if the first same-name object is a non-directory but a later same-name object is a directory, and if the user tries to explore the duplicate object which the filer thinks to be a directory, the filer will start trying to analyze the earlier (non-directory) object as if it were a directory, and this is where things can start hitting the fan, if anyone starts creating any situation just like this. Note that the problem will occur whether the object names are null names or visible names, whether the second object is the last object in the directory or not; the problem's underlying cause is simply that the filer *assumes* it already knows any object's type from the table which it built to generate the display, but when it proceeds to recall the object by name, without taking sneaky hacking into account, it should check the object's actual type *after*recalling* the object, rather than blindly accepting the display table's presumption, and then it would be bullet-proof against all such possible ways of getting fooled by mixed types among same-named objects, without limiting itself to any other special assumptions or cases. Other ways to rewrite the filer exist; perhaps yours will do, but the fact remains that the filer now in the product (which has no problems with other hiders) is there in ROM, and most of us can't change it, so none of these possible defenses against your unique hider (or against the entire category of similar causes) is going to materialize in the filer, in the near term; thus no fix will occur right now to the problem which you discovered, which in turn occurs primarily with your own hider, unless it's something else which adjusts itself to this reality, so the ball remains in your court, even though you won't take it. 6. Returning to your original pronouncement, it is still exactly equivalent to this: I won't fix my hider until *after* the existing filer is changed (to suit me :) But meanwhile, the only filer which exists in any ROM thru 1.19-6 remains unchanged, and can not be changed for the time being, so it appears that you (and anyone else who uses your tools) will just have to be satisfied meanwhile with carefully avoiding the potential warmstarts or hangs which this combination inevitably produces -- damn the torpedoes, full speed ahead! Let's imagine that a 1.19-7 comes out, however, and that it becomes bulletproof, as suggested above or some other way, against this sort of potential memory corruption, or whatever. Will you *then* change your hider? What then for? If the problem becomes already fixed by the filer, then your fix would become redundant and unnecessary! In fact, with that sort of filer, your best bet, to achieve what you desire, would be to stay with your present hider scheme, for it would then stop the bullet-proofed filer from attempting to explore any directory which was covered by any preceding different-type variable of the same name. Alas, that future filer isn't yet in any of our calculators, so this vision remains an unreality in the present. So here we have a parallel for many other horn-locking stalemates in this world: the current filer *can't* yet be changed, you *could* do something yourself meanwhile about it, but you *won't* give in and do it until the filer changes first! Turn to the news; see the same thing, everywhere. 7. How many newbies are using variable hiders, anyway? --------- Is it any wonder that this wider world, full of geniuses, but with blinders covering the complete field of all possibilities from their minds, can't find anything to do but lock horns in conflict and attack each other, each rationalizing all the while that it is the only way to deal with the situation? Life is a comedy to him who thinks; a tragedy to him who feels. http://www.bartleby.com/66/43/21943.html We all do no end of feeling, but mistake it for thinking. [Mark Twain] We, as practioners of applied conservation biology, can only do so much good. Whether the planet is saved will involve religious, social and philosophical movements, and it will involve peoples of all cultures. Thus, we must be steeled to face tragedy. In what is truly tragic there must be valid moral powers on both sides which come into collision, ... and the one destroys the other. Thus, both suffer loss and yet both are mutually justified. [Hegel?] Mutually Assured Destruction [MAD] -- a tragic Cold War policy (still playing in selected theatres of operation near you) Dept. of plus ca change...: it has been a nervous year, and people have begun to feel like a Christian Scientist with appendicitis. Fortunately, in times of crisis like this, America always has its number one instrument of diplomacy to fall back on. Here's a song about it: http://members.aol.com/quentncree/lehrer/marines.htm http://wiw.org/~drz/tom.lehrer/the_year.html#marines In kinder, gentler times, mechanized armored vehicles had other attractions; here's one for the upcoming Valentine's Day: http://timothyplatypus.tripod.com/FaS/bestiary_armadillo.html > problem's > underlying cause is simply that the filer *assumes* it already > knows any object's type from the table which it built to generate > the display, but when it proceeds to recall the object by name, > without taking sneaky hacking into account, it should > check the object's actual type *after*recalling* the object, > rather than blindly accepting the display table's presumption, > and then it would be bullet-proof against all such possible > ways of getting fooled by mixed types among same-named objects, > without limiting itself to any other special assumptions or cases. YES! This is a very good way to protect things in the upcoming 1.19-7 Let's hope that JYA just adds this protection to the FILER PS: Note: I do not take sides in your conversation otherwise but I just think that it is good to add this protection to the FILER ==== > > To see why your hider causes the problem, > create and store this directory (this is plain UserRPL, > which you can type directly into your command line): > > DIR NAME 123 NAME DIR X 5 END END 'MYDIR' STO > > Now go into the MYDIR directory, and note that you now have > two variables having the same name, the first of which > contains a number, while the second contains a directory. > Store your directory 'MYDIR' in port 2, open the filer, go to port 2 and press the Right Arrow over it, then over the second variable 'NAME' (the one with the DIR icon) : You will get a warmstart. It's clearly the same case we are talking about but we arrived to it from a program of plain UserRPL which you can type directly into your command line and by no means through a hacker tool. This situation wasn't possible in the 48 since it don't have a built-in filer, then you can just don't care about same named variables. It's not the case in the 49G. I think this confirm a bug in the filer. ==== > Store your directory 'MYDIR' in port 2, open the filer, go to port 2 > and press the Right Arrow over it, then over the second variable > 'NAME' (the one with the DIR icon). You will get a warmstart. Sometimes yes, sometimes not (I didn't get one, for example, when I did the same as you just did, but each case is different); this very randomness is exactly why I don't downplay warmstarts and hangs as not being like crashes, because they are more like I shot an arrow into the air, and where it landed, I know not where. Things like this indicate potential memory corruption, even if there was neither a warmstart nor any sign of damage, which sometimes could show up later as a seemingly unrelated complete memory wipeout; therefore my response is always to reload a known good backup each and every time (or to just restart my emulator without saving, which is so much easier :) There's no such thing as just a warmstart/hang :) > It's clearly the same case we are talking about > but we arrived to it from plain UserRPL > which you can type directly into your command line > and by no means through a hacker tool. Exactly so. > I think this confirms a bug in the filer. It confirms an oversight, that via same-name variables, which can be created in various ways (even by a crashed plot), the object type remembered in the filer's display list might not agree with the type when the object is recalled via its name. Thus, when the filer is asked to explore (right-arrow) an item which it thinks is a directory, it would be prudent to check that type *after* recalling it, before trying to treat it as being an actual directory. This is the general issue, regardless of whether that object is a copy of what was once a hidden directory or not, and if it is to be fixed, the fix should be the simple general matter just mentioned, rather than a foray into special cases involving only such copies of once-hidden directories, which is not even knowable with certainty anyway. Many a completely general solution is simpler than even one specific solution of one specific case; that's a gift from the designer of the universe to its overworked analysts :) ==== > I think this confirms a bug in the filer. That can readily be confirmed. But your directory MYDIR was created artificially, hence JYA may object that's your problem. I thought it over. There are several bugs we have to live with in ROM 19-6. My filers will not use any nullnamed dir for hiding purpose. I commented the various problems for newbees already in detail. Let me subsummize after lengthy discussion some filer bugs: 1. A HOME backup in a port is a directory which can be entered with RightArrow as can every backup of a directory. That may cause serious problems if the backup contains more than one nullnamed file. A new nullname is created by any hiding tool and should IMHO be respected. Fix proposition: The builtin filer should not allow to enter a HOME backup (which makes no sense anyway). Such a backup distinguishes y nullnamed directory (even if JHM will now protest). 2. If being in the filer, one can easily edit a directory. This will end in any case with the misleading message Directory not allowed. The filer should not be entitled to try at once to restore. 3. The TREE environment should never show any nullnamed dir at the very end, even if some people like creating nullnames denoting directories. 4. (for JYA only). The not reprogrammable RightArrow function in the forthcoming ROM has definitely a bug as follows: It does not set the command menu of a library anymore, but ends up with the error message Bad Argument Type. 5. (not a bug). IMHO, the RESTORE command is too slow on a backup of about 100 KB, with about 138 KB free RAM. ==== X > Fix proposition: The builtin filer should not allow to enter a HOME > backup (which makes no sense anyway). Such a backup distinguishes > y nullnamed directory (even if JHM will now protest). BUT it should allow to VIEW > 2. If being in the filer, one can easily edit a directory. This will > end in any case with the misleading message Directory not allowed. > The filer should not be entitled to try at once to restore. YESSH! > 3. The TREE environment should never show any nullnamed dir at the very > end, even if some people like creating nullnames denoting directories. At the very end of the real file structure in the back-up root level? Well, I guess this could be OK Better yet is to have more informative Message Boxes AND an EDIT protection of null-named dirs and even add the double-name protection eg. check the object type always ==== > Fix proposition: The builtin filer should not allow to enter a HOME > backup (which makes no sense anyway). Such a backup distinguishes > BUT it should allow to VIEW No problem in viewing a directory as long as it is not too large or contains large SysRPL parts (which are viewed as EXTERNAL EXTERNAL ... anyway, no matter whether extable is present or not). Driving into a HOME backup could be allowed, but not driving deeper into its nullnamed directories. Just driving into a HOME backup is safer than viewing insofar as you may readily get a Not enough memory message. I forgot to include in my bug list JYA's order of the NEW VARIABLE dialog box starting with the OBJECT question instead of asking first whether a Directory or not. Well, thats not a bug but one somehow has the impression its author was drunk when creating this dialog box. I hope you've sent it to something called bug-fix or so. > 3. The TREE environment should never show any nullnamed dir at the > very end, even if some people like creating nullnames denoting > directories. > At the very end of the real file structure in the back-up root > level? No matter. Please check it out before making up your mind. With CHDIR in this environement you may change to this dir which is empty for users of JHM's hiding tools. This also quits the filer and I bet that this would completely confuse a newbee since even pressing VARS would continue showing the empty menu !!! ==== > I forgot to include in my bug list JYA's order of the NEW VARIABLE > dialog box starting with the OBJECT question instead of asking first > whether a Directory or not. Well, thats not a bug but one somehow has > the impression its author was drunk when creating this dialog box. I > hope you've sent it to something called bug-fix or so. I carefully reviewed my position on this matter. The NEW InputForm was defined that way in the HP48GX. Nothing new in the HP49 > I forgot to include in my bug list JYA's order of the NEW VARIABLE > dialog box starting with the OBJECT question instead of asking first > whether a Directory or not. Well, thats not a bug but one somehow has > the impression its author was drunk when creating this dialog box. I > hope you've sent it to something called bug-fix or so. I have already got an answer from JYA in this NG in year 2002 where he promised to fix this. Is it not done yet in current 1.19-7 beta beta? I'm not sure if this RPN mode was done in Albegraig brain bit on? > No matter. Please check it out before making up your mind. With CHDIR in > this environement you may change to this dir which is empty for users of > JHM's hiding tools. This also quits the filer and I bet that this would > completely confuse a newbee since even pressing VARS would continue > showing the empty menu !!! That is truly a no-no for a newbie, I admit. ==== > I forgot to include in my bug list JYA's order of the NEW VARIABLE > dialog box starting with the OBJECT question ... > I have already got an answer from JYA in this NG in year 2002 > where he promised to fix this. Is it not done yet in current > 1.19-7 beta? No, he forgot it :-) http://www.hars.de/misz/rado.html ==== > While the ARCHIVE command accepts long port names > RESTORE does not. Thus, one can create a HOME backup > under the name 2:HOME27.2.03 8:15 say, > but one cannot RESTORE it. I haven't read through the entire long thread; are you saying that *any* command doesn't just use *any* port-tagged name (ID) object presented to it? Perhaps the command-line compiler wouldn't like certain names, but usually there is no need to use the compiler; to get a port object name onto the stack, just enable last args and recall the port object to the stack, then LASTARG will return the port-tagged object name. Alternatively, change a string into an ID using $>ID (and then tag it with a port number). > Alternatively, change a string into an ID using $>ID > (and then tag it with a port number). ==== > any disassembler run in Windows for user RPL? You didn't say for which calculator. A HP48SX/GX binary to ASCII decoder is available at http://privat.swol.de/ChristophGiesselink/enco005b.zip. Emu48: http://www.hpcalc.org/hp49/pc/emulators http://www.hpcalc.org/hp48/pc/emulators . ==== I just can't find a download site for the ROM version 1.19-7. Do you mean the ROM 1.19-7 beta beta which Avenard has not yet released due to fact that he no longer works for HP BUT the good news are that at sometime this year and the new ROM can be released. This may be in the summer. Avenard is the only one to give *exact* answer. Are you certain the GPL cover the complete ROM? I'm not It probably doesn't, since some of the ROM is copyrighted and owned by HP. ==== > which Avenard has not yet released > due to fact that he no longer works for HP > BUT > the good news are that at sometime this year > and the new ROM can be released. > Are you certain the GPL cover the complete ROM? I'm not. > > It probably doesn't, since some of the ROM is copyrighted and owned by > -- at least JYA can release the 1.19-7 then, right? ==== First I think the 49G pocket guide is very useful, so I downloaded it from http://www.hpcalc.org/hp49/docs/misc/49g_pg.zip and I use it on my computer. The problem is that itÇs more convenient in physical form and it is around 80-pages long and I think it is in the same format as the real pocket guide, which is much smaller than A4. That becomes a problem when I want to print it out on A4-letter-format. I donÇt have the pocket guide, so I hope someone knows either how to make e.g. 3 or 4 pocket-guide-pages fit on 1 A4 sheet, so that I can print it out on my school in perhaps 30-pages. The price for thatÇll be around 3 US$ compared to the price for 80 pages that costs around 7 US$. The price isnÇt really important, but the small format is a problem to me. IÇve tried google-groups, but it seems like thereÇs no solution to the above mentioned problem (as I see it). The next thing is perhaps more fun for the mathematical interested ones: IÇm trying to solve this on my HP49G (complex mode on): (z+i)/(z-i) = i/(4-i) What is the best way to get to this solution: 2/5 - 4/5*i ? I want to use only the calc and I want to see the steps from the beginning to the result, like you do it on paper to an examination (so that youÇre proving that you understand it). I canÇt figure it out. Hope someone thatÇs more clever than me can :-) provide a solution. IÇve tried making this first: (z+i)*(4-i) = (z-i)*i DonÇt know if thatÇs a help? I canÇt make the zÇs (and z*iÇs) disappear. Looking forward to hearing from some of you! . ==== > (z+i)/(z-i) = i/(4-i) Create '(Z+i)/(Z-i) = i/(4-i)' on the stack, and to edit it in the EQW. If you aren't too familiar with partial fraction decomposition, following commands, and watch the screen: PARTFRAC - 1 EVAL EVAL INV EVAL EVAL * 2 EVAL EVAL NEG EVAL EVAL - 1 EVAL EVAL / i EVAL EVAL * 5 EVAL / 5 /5 , and hence 'Z=2/5-4/5*i'. This'll hopefully give you a good idea of how you can manipulate expressions manually in the EQW. ==== > EVAL > EVAL > NEG ? IÇm very impressed. I see you get the right result, but I myself would never have seen that it would be clever to NEGate the result. But youÇre right. It gives a usable solution... > , and hence 'Z=2/5-4/5*i'. This'll hopefully give you a good idea of > how you can manipulate expressions manually in the EQW. Yes, it does and that was also why I made the original post. IÇm not sure I can follow your way of thinking (you have no comments), but IÇll look at it again in the weekend I think and see if I can decode the transformation. I see that you get the right result. ==== > (z+i)/(z-i) = i/(4-i) > Create '(Z+i)/(Z-i) = i/(4-i)' on the stack, and to edit > it in the EQW. If you aren't too familiar with partial fraction by a long series of equivalent transformations (multiplying numerator and denomintator by the same thing in a scilled way, combined with adding and then substracting the same thing, etc) will finally lead or nearly immediately by an intelligent CAS. That DISTRlB does it now in two steps is OK. But I ask why is the the term-transformation command DISTRIB not in the menu of the EQW? (ok, isn't of much interest to me and probably to JKH who overwrite the EQW of the HP48 by the OVER command if I correctly remember). And why does the system not itself apply DISTRIB for simplifying? PS. neither you nor Virgil said anything about normal forms of real and complex arithmetic terms. This is what would be interesting to me :) ==== > by a long series of equivalent transformations (multiplying numerator > and denomintator by the same thing in a scilled way, combined with > adding and then substracting the same thing, etc) will finally lead > to the desired result. Of course, but not how to do it on the '49. > or nearly immediately by an intelligent CAS. No, I don't think that was his question. 'Z' SOLVE would do just that. See his sentence I want to use only the calc and I want to see the steps from the beginning to the result, like you do it on paper to an examination. Virgils post making use of ISOL was discarded because of lack of intermidiate steps. ==== > by a long series of equivalent transformations (multiplying numerator > and denomintator by the same thing in a scilled way, combined with > adding and then substracting the same thing, etc) will finally lead > to the desired result. > Of course, but not how to do it on the '49. Precisely! > or nearly immediately by an intelligent CAS. No, not really :-( Was this an examination, I would have failed the question. But I could also be happy if the step-by-step mode in the CAS could show me how to get to the z = result... But it just canÇt... So I wanted to do it the hard way.... > No, I don't think that was his question. 'Z' SOLVE would do just that. See > his sentence I want to use only the calc and I want to see the steps from > the beginning to the result, like you do it on paper to an examination. > Virgils post making use of ISOL was discarded because of lack of > intermidiate steps. I think that the reason for the confusion is that english is not my native language (perhaps like many others), and especially when it comes to mathematical words/phrases I donÇt know them in english. way of translating the danish problem into english is better understood by a person that speaks my own language??? Anyway, never mind the confusion. I apologize if IÇve been somewhat unclear about my question but the reason is that when it comes to mathematical english, there are many words I donÇt know... DonÇt have to answer that question... It looks very complex. Besides: ItÕs not very important to me, since now IÇve seen how to solve the equation I wanted ==== > and complex arithmetic terms. Perhaps I should explain more closely what I mean, but for the domain of real and complex arithmetical terms in X only. Arithmetical terms or one of the constants pi, e, i (i only in the complex case) (t_1 + t_2), and the same if + is replaced here by any of the symbols - * / (not ^). Now, by a not at all trivial induction on the construction of terms one can show that each such term in the real case is equivalent (i.e., has the same value for any value of X) to a term (a_n*X^n + ... + a_1*X + a_0)/( b_m*X^m + ... + b_1*X + b_0) for some natural numbers n,m such that a_n, b_m <> 0, and constants a_i, b_i. I omitted here the outermost pair of brackets and assume right-bracketing in the repeated +. To drop non-admissable terms it suffices to exclude terms of the form t/0. In addition, it may be assumed that the two polynomials in X have no common divisor in the ring For complex terms it is very similar, just the real and the imaginary part separated, with just a single occurrence of the constant i. But one may also consider different normal forms in the complex case. Things get somewhat more involed if square-root is admitted as a base function, and clearly much more involved if transcential function like SIN are added as base functions. Another direction of complicating the story is the admission of several variables, not only X. ==== on unices it's possible to convert the .pdf file to a postscript file (ie. with ps2pdf) and then use some postscript utils to fit N-pages to a single a4 page (ie. with a2ps). if you're on windoze or mac, i don't know if there are any such so decode it first!), and i can do it for you and sent the result back to you. > > First I think the 49G pocket guide is very useful, so I downloaded it from > http://www.hpcalc.org/hp49/docs/misc/49g_pg.zip and I use it on my computer. > The problem is that it?s more convenient in physical form and it is around > 80-pages long and I think it is in the same format as the real pocket > guide, which is much smaller than A4. That becomes a problem when I want to print it out on A4-letter-format. > > I don?t have the pocket guide, so I hope someone knows either how to make > e.g. 3 or 4 pocket-guide-pages fit on 1 A4 sheet, so that I can print it out > on my school in perhaps 30-pages. The price for that?ll be around 3 US$ > compared to the price for 80 pages that costs around 7 US$. The price isn?t > really important, but the small format is a problem to me. I?ve tried > google-groups, but it seems like there?s no solution to the above mentioned > problem (as I see it). ==== > if you're on windoze or mac, i don't know if there are any such > so decode it first!), and i can do it for you and sent the result back > to you. IÇve made a reply to to the above. Rot13 encoding? What is that? Never heard of that... And btw: Is it true that nobody is capable of solving this (I canÇt believe that)???????? I can post the solution in next week if somebody wants it. I can get it from my math teacher, I suppose. IÇm trying to solve this on my HP49G (complex mode on): (z+i)/(z-i) = i/(4-i) What is the best way to get to this solution: 2/5 - 4/5*i ? I want to use only the calc and I want to see the steps from the beginning to the result, like you do it on paper to an examination (so that youÇre proving that you understand it). I canÇt figure it out. Hope someone thatÇs more clever than me can :-) provide a solution. IÇve tried making this first: (z+i)*(4-i) = (z-i)*i DonÇt know if thatÇs a help? I canÇt make the zÇs (and z*iÇs) disappear. ==== > IÇm trying to solve this on my HP49G (complex mode on): > > (z+i)/(z-i) = i/(4-i) > > What is the best way to get to this solution: 2/5 - 4/5*i ? Put '(z+i)/(z-i) = i/(4-1)' on the stack. Put 'z' on the stack. Execute the ISOL command. You will get 'z=(2-4*i)/5' Is that close enough. ==== > Put '(z+i)/(z-i) = i/(4-1)' on the stack. Put 'z' on the stack. > Execute the ISOL command. > You will get 'z=(2-4*i)/5' > Is that close enough? Virgil, I think that some teachers would just not accept this and ask the student for further simplification, namely to z = 2/5 - 4/5*i. Now, as you know (e.g. from your solution of my problem with these cyclic sequences) neither EXPAND nor COLLECT nor SIMPLIFY and hence not ISOL end up with the solution in the form in the last paragraph (in exact complex mode, of course). It is not quite clear to me which normal forms the 49 CAS really uses for representing complex-valued algebraic terms. For a mathematician, it is most important to know which normal forms a CAS uses to represent terms in its best readable t_1 + t_2 * i is indeed the easiest readable normal form, where t_1 and t_2 are normal forms for real algebraic terms. In other words, real and imaginary part of an complex algebraic term should be separated. Any other normal form representation should at least be documented for the users of 49 CAS, but I cannot find any such documentation :-) Although (2-4*i)/5 = 2/5 - 4/5*i is as true as it only can be, I see no way to verify this equation in a *direct* way with the HP49-CAS. This shows, IMHO, a certain deficit of this system. PS. Clearly, there may be different so-called normal forms for terms in a class of algebraic structures, in particular in rings and fields and in boolean algebra were one often uses the so-called canonical normal forms. These are not only important in theory but as well in practice. ==== > Put '(z+i)/(z-i) = i/(4-1)' on the stack. Put 'z' on the stack. > Execute the ISOL command. > You will get 'z=(2-4*i)/5' > Is that close enough? > > Virgil, I think that some teachers would just not accept this and ask > the student for further simplification, namely to z = 2/5 - 4/5*i. > > Now, as you know (e.g. from your solution of my problem with these > cyclic sequences) neither EXPAND nor COLLECT nor SIMPLIFY and hence > not ISOL end up with the solution in the form in the last paragraph > (in exact complex mode, of course). It is not quite clear to me which > normal forms the 49 CAS really uses for representing complex-valued > algebraic terms. For a mathematician, it is most important to know > which normal forms a CAS uses to represent terms in its best readable > t_1 + t_2 * i > is indeed the easiest readable normal form, where t_1 and t_2 are normal > forms for real algebraic terms. In other words, real and > imaginary part of an complex algebraic term should be separated. Any > other normal form representation should at least be documented for the > users of 49 CAS, but I cannot find any such documentation :-) > > Although (2-4*i)/5 = 2/5 - 4/5*i is as true as it only can be, I see > no way to verify this equation in a *direct* way with the HP49-CAS. This > shows, IMHO, a certain deficit of this system. > > > > PS. Clearly, there may be different so-called normal forms for terms > in a class of algebraic structures, in particular in rings and fields > and in boolean algebra were one often uses the so-called canonical > normal forms. These are not only important in theory but as well in > practice. If 'z=(2-4*i)/5' isn't good enough, execute DISTRIB. ==== I have some comments: > Virgil, I think that some teachers would just not accept this and ask > the student for further simplification, namely to z = 2/5 - 4/5*i. Exactly. > Now, as you know (e.g. from your solution of my problem with these > cyclic sequences) neither EXPAND nor COLLECT nor SIMPLIFY and hence > not ISOL end up with the solution in the form in the last paragraph > (in exact complex mode, of course). It is not quite clear to me which > normal forms the 49 CAS really uses for representing complex-valued > algebraic terms. For a mathematician, it is most important to know > which normal forms a CAS uses to represent terms in its best readable > t_1 + t_2 * i > is indeed the easiest readable normal form, where t_1 and t_2 are normal > forms for real algebraic terms. In other words, real and > imaginary part of an complex algebraic term should be separated. Any > other normal form representation should at least be documented for the > users of 49 CAS, but I cannot find any such documentation :-) I can follow your thoughts. I think that itÇs stupid that the step-by-step mode doesnÇt function here (especially when the 49G, shows, that itÇs capable of solving the equation using ISOL+ SOLVE) when it does an absolutely good job on showing how matrixes are reduced, as an example. ItÕs just not logical IMHO that you can turn on the step-by-step function and when it comes to isolating variables, which sometimes could be a task of many calculating operations, then the calculator doesnÇt show you how it comes to an answer. Anyway: > Although (2-4*i)/5 = 2/5 - 4/5*i is as true as it only can be, I see > no way to verify this equation in a *direct* way with the HP49-CAS. This shows, IMHO, a certain deficit of this system. I think youÇre right! I would like that to be corrected in future calculators But I was also thinking if it was possibly to solve the equation, using logical thinking and the equation writer only (by not using expand, solve, collect and isol). By rational thinking and by the help of the equation writer. I wanted to know if someone could show how the equation was solved, as one would do it on paper, but just using only the calculator! An example: I press [eqw] and enter (z+i)/(z-i) = i/(4-i) And using the eqw. I try to solve the equation (I canÇt!), example: Using the cursor keys I highlight (z+i) on the left side of the = sign. I multiply with the complex-conjugated, one (there probably is a command for that, but I just press [*] [(] [z] [+] [i] [)], followed by [simplify]. Next thing I do is to highlight the (z-i) part and multiply it by the same thing: I press [*] [(] [z] [+] [i] [)], and also does a [simplify] on that. With complex mode on, I now get this: (z^2 + 2*i*z - 1)/z^2 + 1 = i / (4-i), which I think is correct (but donÇt know if this is the way to get a solution). Now I could highlight (z^2+1) and press [rightshift]+[cut]+[backspace] and go multiply by that same thing on the right side: I now get (after pressing simplify), using [rightshift]+[paste], and simplifying the result: (z^2 + 2*i*z -1) = -((1-4i)z^2 - (1-4i))/17. Now I donÇt know what to do. I hope that this helps somebody to come with an answer! . ==== > Put '(z+i)/(z-i) = i/(4-1)' on the stack. > Put 'z' on the stack. > Execute the ISOL command. > You will get > 'z=(2-4*i)/5' > Is that close enough. No, not really. Because if I get this question at an examination, then I would have failed the test because the 49G step-by-step function doesnÇt ==== > Put '(z+i)/(z-i) = i/(4-1)' on the stack. > Put 'z' on the stack. > Execute the ISOL command. > You will get > 'z=(2-4*i)/5' > Is that close enough. > > No, not really. Because if I get this question at an examination, then I > would have failed the test because the 49G step-by-step function doesnÇt I see. What you want is something more like: Starting with '(z+i)/(z-i) = i/(4-1)' (1) Eliminate fractions: Enter the least common denominator of all fractions, '(z-i)*(4-i)', then press the times key, *, which multiplies (both sides of) the equation by '(z-i)*(4-i)', and execute EVAL. This will get rid of all fractions in the equation. (2) Shift and combine terms: Enter the z term from the right hand side, 'i*z' and the constant term from the left hand side, '1 + 4*i', add them togather then subtract from (both sides of) the equation and execute EVAL again. This shifts and collects terms, giving '(4-2*i)*z = -(4*i)'. (3) Eliminate coefficient of z: Enter the coefficient of z, '4-2*i', and divide (both sides of) the equation by that, execute EVALonce more to get 'z = (2 - 4*i)/5'. (4) Execute DISTRIB to get 'z = 2/5 - 4/5*i' Is this what you wanted? ==== (3) Eliminate coefficient of z: > Enter the coefficient of z, '4-2*i', and divide (both sides > of) the equation by that, execute EVALonce more to get > 'z = (2 - 4*i)/5'. > (4) Execute DISTRIB to get 'z = 2/5 - 4/5*i' ==== >(about rot13-encoding) Sorry for asking. A simple search on google gave me the answer. Still looking forward to hearing from some people that can solve the equation below. . (reply to martin@tbkol.dk) > And btw: > Is it true that nobody is capable of solving this (I canÇt believe > that)???????? > I can post the solution in next week if somebody wants it. I can get it from > my math teacher, I suppose. > > IÇm trying to solve this on my HP49G (complex mode on): > (z+i)/(z-i) = i/(4-i) > What is the best way to get to this solution: 2/5 - 4/5*i ? > I want to use only the calc and I want to see the steps from the beginning > to the result, like you do it on paper to an examination (so that youÇre > proving that you understand it). I canÇt figure it out. Hope someone thatÇs > more clever than me can :-) provide a solution. > IÇve tried making this first: (z+i)*(4-i) = (z-i)*i > DonÇt know if thatÇs a help? I canÇt make the zÇs (and z*iÇs) disappear. > Looking forward to hearing from some of you! > . > > ==== > on unices it's possible to convert the .pdf file to a postscript file > (ie. with ps2pdf) and then use some postscript utils to fit N-pages to > a single a4 page (ie. with a2ps). oops, that should read pdf2ps :) ==== rot13 encoded skrev i en meddelelse > on unices it's possible to convert the .pdf file to a postscript file > (ie. with ps2pdf) and then use some postscript utils to fit N-pages to > a single a4 page (ie. with a2ps). > oops, that should read pdf2ps :) oops, the thing I was looking for was already to be found on http://www.hpcalc.org/details.php?id=3002 ==== This is a question to those having a particular deep insight in the OS of the 48/49 like Jonathan, Werner, and perhaps some others. Let the program :: CK1&Dispatch BINT 31 #>CHR ; be called B2C. It transforms a single bint or a nonempty list of bints into a character or a list of characters, resp, checking also whether a list contains indeed only bints and nothing else. The following program will be called $~BL. It toggles a list of bints with a string of characters which correspond to the bints. This program is useful because it compresses a very long bint-list into a string of half of the size. Used, e.g., in programming the well-known tool ACC which draws a nice clock face with all its little numbers and which updates every second. $~BL uses Jurjen's trick, the most dirty and efficient return stack trick I ever seen: :: CH1N0LASTWD DUPTYPECSTR? MOTcase :: ID B2C >R NULL$ BEGIN RSWAP ticR NOTcase COLA_EVAL RSWAP >T$ AGAIN ; DUPLEN$ #1+_ONE_DO DUPINDEX@ SUB$1# SWAPLOOP LEN$ {}N ; Line 4 runs phantastically fast. The problem is, if the occurring name ID B2C is replaced by its program, the dispatching doesn't anymore work on a list of bints. Who knows why and how to fix this phenomenum? Hope on an answer, ==== >This is a question to those having a particular deep insight in the OS >of the 48/49 like Jonathan, Werner, and perhaps some others. >Let the program :: CK1&Dispatch BINT 31 #>CHR ; be called B2C. It >transforms a single bint or a nonempty list of bints into a character or >a list of characters, resp, checking also whether a list contains indeed >only bints and nothing else. >The following program will be called $~BL. It toggles a list of bints >with a string of characters which correspond to the bints. This program >is useful because it compresses a very long bint-list into a string of >half of the size. Used, e.g., in programming the well-known tool ACC >which draws a nice clock face with all its little numbers and which >updates every second. $~BL uses Jurjen's trick, the most dirty and >efficient return stack trick I ever seen: >:: > CH1N0LASTWD DUPTYPECSTR? MOTcase > :: > ID B2C >R NULL$ BEGIN RSWAP ticR NOTcase COLA_EVAL RSWAP >T$ AGAIN > ; > DUPLEN$ #1+_ONE_DO DUPINDEX@ SUB$1# SWAPLOOP LEN$ {}N >; >Line 4 runs phantastically fast. The problem is, if the occurring name >ID B2C is replaced by its program, the dispatching doesn't anymore work >on a list of bints. Who knows why and how to fix this phenomenum? >Hope on an answer, > As pointed out by Joe Horn, the CK1&Dispatch entry is only meant to be called from *within a library routine* and furthermore it has to be the first object in that routine. To understand why this is the case, we need to look at the internals of CK1&Dispatch. Upon decompilation, one finds that CK1&Dispatch branches to a certain entry when the second pass, which strips tags from the stack arguments and repeats the matching process, has completed and still no match has been found in the object type list. This entry is #72EA5 on the 48G/GX and #22D1D on the 49 ( 1.19-6 ) and is responsible for the automatic list processing. If we look at the decompilation of the above entry, we see it contains a check that the ROMPTR body, which is *assumed* to precede the routine pointed to by LASTROMWDOB ( the last executed library command, which is set to point to the B2C secondary in this case ), has a library ID field that is less than #700. ( libraries with an ID greater than or equal to this number are the so called macro roms ) It is pure chance that the 6 nibbles preceding your B2C program in memory satisfy the above condition. Any object pointer whose address's last 2 nibbles are greater than #6F will violate this condition, as happens when you precede your program by a DOCOL. A fix, or more appropriately a kludge, to *guarantee* that the nibbles preceding your code are acceptable to CK1&Dispatch, is to prepend a code object whose last 6 nibbles are zero, as in the following example : CODE GOVLNG =Loop CON(6) 0 ENDCODE :: CK1&Dispatch 31 #>CHR ; Still, there are drawbacks to the above approach, namely that any errors generated by CK1&Dispatch will result in an error string that attributes it's cause to a garbage XLIB name. Because of this, you can see that your initial CK1NOLASTWD is superfluous. CK1 would work just as well. There are ways to get around these problems, but AFAIK they are all complicated and convoluted (*), which possibly outweighs the size advantage gained by using the built in list processing in the first place. (*) Note that the preceding paragraph doesn't apply if for some reason you are using CK1&Dispatch from within a library routine but not at the beginning. In that case you can replace the CON(6) 0 by the body of the ROMPTR that points to the currently executing library routine. In that way, if an error occurs it will be attributed correctly and you can avoid all of the complications entailed by trying to get correct error attribution outside of a library routine. Here is one such way : CODE =SysNib20 EQU #80814 LC(5) =SysNib20 CD0EX A=0 A DAT0=A 1 D0=C D0=D0+ 10 GOVLNG (=CK&DISPATCH1)+5 ENDCODE ASSEMBLE - RPL :: CK1&Dispatch 31 #>CHR 5 :: CODE LC(5) =SysNib20 CD0EX A=DAT0 1 ?A#0 P GOYES error A=A+1 A DAT0=A 1 D0=C A=C A LC(5) (+)-(-) A=A-C A GOVLNG =DOBINT error D0=C GOVLNG (=SETTYPEERR)+5 + ENDCODE ROMPTR 0E8 0D ; ; A significant amount of complication can be removed from the above if you allow it to work on lists within lists and/or if nothing your program does or calls changes CPU status bit 5. ==== > To understand why this is the case, we need to look at the > internals of CK1&Dispatch. Upon decompilation, one finds that ... answers. You don't simply underline that this or that is impossible or forbidden, you explain to us why it is so. Unfortunately, your postings became more rare (maybe for well-known reason). Please continue with your contributions, times lead not always to a worse direction :-) ==== > This is a question to those having a particular deep > insight in the OS of the 48/49 like Jonathan, Werner, > and perhaps some others. I'm none of the above, but Bill Wickes certainly is. > Let the program :: CK1&Dispatch BINT 31 #>CHR ; > be called B2C. It transforms a single bint or a nonempty > list of bints into a character or a list of characters, resp, > checking also whether a list contains indeed only bints > and nothing else. The automatic list processing offered by CK1&Dispatch is ONLY reliable when the program is in a library *and* the CK&Dispatch word is the very first word in the program. Any other use of it and all bets are off. > :: > CH1N0LASTWD DUPTYPECSTR? MOTcase > :: > ID B2C >R NULL$ BEGIN RSWAP ticR NOTcase > COLA_EVAL RSWAP >T$ AGAIN > ; > DUPLEN$ #1+_ONE_DO DUPINDEX@ SUB$1# > SWAPLOOP LEN$ {}N > ; > Line 4 runs phantastically fast. The problem is, if the > occurring name ID B2C is replaced by its program, > the dispatching doesn't anymore work on a list of bints. > Who knows why and how to fix this phenomenum? Bill knows why. Here's his explanation of it, posted here almost ten years ago, and available on Goodies Disk #9: (Comp.sys.hp48) Item: 1024 by jaykaye@kbbs.com [Joseph K. Horn] Subj: G/GX Auto List Processing Update ---------- Resp: 6 of 6 by billw@hpcvra.cv.hp.com [William C Wickes] Automatic list processing is a property of CK1&Dispatch ... CK5&Dispatch, which are intended only to be used as the first objects within keyword secondaries. It is *not* a property of CK&DISPATCH0/1. The latter words are used for dispatching at various levels; it would have been very dangerous to change their behavior. > I threw together a tiny program that started with > CK2&Dispatch, and it automatically had the new > list processing ability. But then I inserted a NOP > between the :: and the CK2&Dispatch, and the > list processing went away! That's not all that might go away. CKn&Dispatch assume that they are the first objects in a keyword secondary, and in particular that that secondary is preceded by a property list code and a command name. They should not be used elsewhere. ==== > ... Line 4 runs phantastically fast. The problem is, if the > occurring name ID B2C is replaced by its program, > the dispatching doesn't anymore work on a list of bints. > Who knows why and how to fix this phenomenum? > Bill knows why. Here's his explanation of it, posted here almost ten > years ago, and available on Goodies Disk #9. > Automatic list processing is a property of > CK1&Dispatch...CK5&Dispatch > which are intended only to be used as the first objects within > keyword secondaries. ... CKn&Dispatch assume that they are the > first objects in a keyword secondary, and in particular that that > secondary is preceded by a property list code and a command name. > They should not be used elsewhere. I know that's not the point of > Joe's example, but it makes me cringe when I see the CKn&Dispatch > words flung around. - Bill Wickes, HP CVD Interesting to learn that already in the good old times the commands CKn&Dispatch flow around like birds in the programs :-) Why not giving them at least a little more freedom? It would really be nice if they worked inside any program whenever they are the first object in a secondary, but not necessarily preceded by a command name Certainly, their codes are complicated. But I'm somehow convinced that Jonathan, say, can not only completely read this codes but offer some relatively small modifications which work as I indicated. One may write modifications in SysRPL, but these would obviously be too slow... PS. A pitty that you did not yet add a Goodies Disk 12 to this valuable collection, still mainly concerning the HP48G without metakernel, not the HP49. I take the opportunity to let you know that some commands of your porting of Smartkeys to the HP48 heavily crash the machine. ==== I'm in need of a new cable for my 48SX.....any help locating one would be appreciated. -- Dan Hosek (remove 'remove' to reach me direct) ==== You can make a serial cable. See in the Eric Rechlin Web site (www.hpcalc.org), the pinouts from Enrico Carta. Type in the window (search!) ... enrico carta Other options: 1) Consult in www.hp.com for ... HP-F1897A (Connectivity Pack). Your cost is aprox. U$S 30 2)The SAMSON cables in ... www.samsoncables.com. | | http://www.travellingkiwi.com/ > http://www.wfsleath.co.uk/d-commerce/hpscientific.html > What price are others in the UK paying for a 48GX? bona fide replies to jimb(at)jita(dot)demon(dot)co(dot)uk http://www.jita.demon.co.uk ==== Does anyone know if the emu48ce.exe will work on the Toshiba e740? I tries and it dodn't seem to do much > I have an IPAQ 3970 and run both a HP48 and HP49 emulator on the > IPAQ. It runs at the same speed as a normal HP48/HP49. It is an exact > reproduction has replaced my use of the actual calcs. Download the > following files: > http://www.hpcalc.org/hp48/pc/emulators/emu48ce.exe > http://www.hpcalc.org/hp49/pc/emulators/emu-ppc48-49.zip > Install emu48ce.exe. > Copy the KML scripts and BMP files from emu-ppc48-49.zip to the > emu48ce directory. When starting emu48ce you can now select the > ppc48/49 kml scripts. > Murray. > murrayrGREEN@hp.YELLOWcom > > Does anyone know how emu48ce works with PDA's based on 400Mhz Intel > Xscale processor (iPaq 3970, Siemens Loox 600) with Pocket PC 2002 > OS? Can I use and store data, software (found at hpcalc.org) and > work with it like on real > HP48/49 calculator? ==== About the ROM 1.19-7 1.- When you simplify an equation or you want to solve an equation system you are asked for RAD modes. Could I change solving equations or anything in deegres or gradians modes on new ROM by flags f.e.? 2.- Y <--> X INVERS FUNCTIONS. There will be any command to exchange Y with X in functions? It will bo soooooo usefull for somethings. And to graph them of course. MKISON are not an intuitive command. 3.- OLD MENUS LIKE 30 WILL DISAPPEAR?. ITS QUICKLY TO USE THAN EQUATION SOLVE, with R-Shift-7-1, (you waste a lot of time move the cursor to enter a value of a variable). THERE WILL ADD AN OPTION TO DELETE ALL VARIABLE AFTER USE IT? 4.- SYNTAX COMMANDS. On HP-39 there are a command SYNTAX than explains the syntax of a command. There will be on new ROM? HP49 has a lot of commands and when I want to use a command I do not remember If I must put the varible before or after the equation, or anything like this... 5.- Where say FULL TRANSLATION TO SPANISH AND FRENCH means FULL. AT HELP COMMAND TO? 6.- ISOL COMMAND. Why I can't isolate the R or f variable on this equation. VDmin=sqr(8*R*f). HP shows ISOL Error - n.bc 56874 no solution found I think the solution is R=((VDmin)^2/(8*f)). 7.- Is The ROM totally finished? . ==== > ISOL COMMAND. Why I can't isolate the R or f variable > on this equation: VDmin=sqr(8*R*f). > HP shows ISOL Error - n.bc 56874 no solution found As Joe says, you have to first delete the variable which you want to isolate (or downgrade to an HP48, where you don't have to do that :) And if you don't see such a variable when you first look, check all higher directories, where you *also* have to delete it! If you are going to keep solving for one particular variable, store its name into 'VX' ( via MODE CAS screen or 'name' STOVX ) to have the calculator remind you about it. This information is of course top secret classified, handed out case-by-case on a need-to-know basis only, so don't publish it in any manual, okay? Has anybody yet passed this year's HPCSE exam? WR, can you make a library which will ghost all of the built-in CAS commands, in such a way that each command will automatically know what has to be done to make it work, and will automatically save any stuff that had to be deleted and put it back afterwards where it was (or maybe just rename variables to temporarily hide them), and will also automatically save and restore the modes and flags? It would be especially nice if even the keyboard functions and built-in menus could be ghosted as well, so that when you press keys directly to perform commands, the ghosted commands would take the place of the original commands, and would therefore work with no fuss or trouble at all, as users would naturally expect them to, before their innocent newbie status wears off :) I suspect that you might be awarded the German equivalent of a Knighthood if you could add that to your armory of 49G tools, powering the new WR super-calc with a 49G hidden inside :) Where was the original HP Marketing crew transferred to, anyway? Surely they must have been kept on board to assure continuity with future projects, as only software engineers actually become obsolete, as each distinct product ends its brief life cycle, and as the next engineering phase seems primarily to pick which knock-off clones of old Casios to re-brand with an HP logo ;) Invent? Innovate? Frumious Bandersnatch! http://www.bandersnatch.com/ http://www.frumiousbandersnatch.net/ But wait, there's more [heavy-side function]: http://www.terrorism.com/analysis/iw-deterrence.shtml cyber_dc But my Curta is still safe from cyber-attack, isn't it? (and hardened against EMP, I think) . ==== > [nifty HP49G tidbits] > This information is of course top secret classified, > handed out case-by-case on a need-to-know basis > only, so don't publish it in any manual, okay? BWAH Hah hah!!! :-) So true, so true. Hey, I have an idea: we should put HP in charge of national security! There's no way that ANYBODY would find out any classified information... or anything else, either! :-)^2 EQU joehorn@holyjoe.net ==== > 1.- When you simplify an equation or you want to solve > an equation system you are asked for RAD modes. > Could I change solving equations or anything in deegres > or gradians modes on new ROM by flags f.e.? No. Many operations require RAD mode. But here's a suggestion: set flag -120 and clear flag -123. That way, the calculator will switch modes quietly and automatically as needed. Also, make a key assignment that returns you to your favorite mode settings after the HP49G changes them. > 2.- Y <--> X INVERS FUNCTIONS. There will be any > command to exchange Y with X in functions? 'X' ISOL or 'X' SOLVE should do the trick. > 3.- OLD MENUS LIKE 30 WILL DISAPPEAR?. That is why the ASN command and USER mode exist. Assign << 75. TMENU > to a away. > THERE WILL ADD AN OPTION TO > DELETE ALL VARIABLE AFTER USE IT? This will purge the vars in 'EQ': << RCEQ LVAR AXL PURGE > Hey, everybody: is there an easier way? I got a feeling that there is, but I can't think of it. > 4.- SYNTAX COMMANDS. On HP-39 there are a > command SYNTAX than explains the syntax of a > command. There will be on new ROM? Press TOOL NXT and you'll see CASCMD (takes a command name as a string as its input) and HELP (takes no input). ALso, when you press the CAT key, the commands which have a syntax help available will show HELP on the F1 key. > 5.- Where say FULL TRANSLATION TO SPANISH > AND FRENCH means FULL. AT HELP COMMAND TO? Full? It's not full. It's not even *close* to full. But it's better than nothing. > 6.- ISOL COMMAND. Why I can't isolate the R or f > variable on this equation. > VDmin=sqr(8*R*f). Strange; it works on mine. Try purging those variables; solving usually fails if variables have stuff stored in them. The HP49G also has REALASSUME and similar commands that force the machine to treat any given variables in various ways. Be sure that you do not have any goofy variable settings in your 'CASDIR', or strange modes like complex mode or approximate mode or whatever. The CASCFG command resets the CAS settings to default; see if that helps. > 7.- Is The ROM totally finished? ==== 1.- My HP49 had at CASDIR some variable as REALASSUME.I deleted It and Now I can isolate de R variable. 2.- Respect deleting all variables after using equation solver (30 menu), your program is usefull and short but only works if you have one equation stored at EQ variable. Developing your idea I have done another program. (Number of equations stored at EQ variable is not a problem) << RCEQ OBJ-> 0. {} -> N I VARI << DO LVAR AXL 'VARI' STO+ DROP 'I' INCR UNTIL N == END VARI PURGE > NOTE: If you have only ONE equation at EQ varible, it must be a list. with 'd=a+b-c' does not work. You must enter {d=a+b-c} 3.- Respect RADians mode. I had read a post that says that the mode Only thing I can see on screen is No System and a list of options. > Can someone help me how to restore my calculator. It seems that I've > pressed the wrong button and erased everything on my calc. Really > don't know how it happened. It may be that you somehow damaged Bank0. It seems unlikely that you erased the whole ROM. There are possibilities to load Bank0 separately (which lasts only 3 minutes) but I don't know whether you get the right one or whether it is available at all. Therefore, it seems to me the safest is you upgrade entirely to ROM 1-19 (15 minutes). You made hopefully a HOME backup in Port2. That will survive any upgrading, even if you try it several times. by the way great program that unitman, I believe my friend Blas has a communications problem. Here's what I know: 1. PC and cable communicate fine with my calculator, but not his. 2. We used P0erase to erase bank0 since he thought the calculator had gotten hung up during the ROM upgrade(he had tried upgrading the rom a long time ago and it may have failed). It says this should allow the calculator to be put in download mode, but before attempting to upgrade the ROM last time we were unable to download libraries to the 49g. 3. We have tried several times to download ROM 1.19-6, but it won't communicate 4. The operating system is gone because when he tried to upgrade, it firsts erases the old system, but the new one can't be loaded. Stays at Downloading Prompting for file and the PC screen does not change. So the status is: Calculator with no system, and can't communicate properly to it. It does seem something is happening, because P0erase does run and when we tried using an XMOdem server, V... appeared on the screen, but it appears it was gibberish. The PC connectivity kit will not connect the 49g, since the 49g can't be set to kermit or xmodem server. Only communication available is terminal mode and I question whether it is working ok. The communication pins seem fine and the systems test pass ok. Any thoughts? > Only thing I can see on screen is No System and a list of options. > Can someone help me how to restore my calculator. It seems that I've > pressed the wrong button and erased everything on my calc. Really > don't know how it happened. > > It may be that you somehow damaged Bank0. It seems unlikely that you > erased the whole ROM. There are possibilities to load Bank0 separately > (which lasts only 3 minutes) but I don't know whether you get the right > one or whether it is available at all. Therefore, it seems to me the > safest is you upgrade entirely to ROM 1-19 (15 minutes). You made > hopefully a HOME backup in Port2. That will survive any upgrading, > even if you try it several times. ==== there are two commands in the manual of HP49G to help 1) Press ON and than F3 2) Stick a paper clip in the hole of the backside of calculator for a second, pull it back and press ON. Both actions set the calculator in the default modus. Let me know what you have done. Hans Joachim (.de) > Only thing I can see on screen is No System and a list of options. Can > someone help me how to restore my calculator. It seems that I've > pressed the wrong button and erased everything on my calc. Really > don't know how it happened. ==== I followed your indications but I still end up in Terminal mode (No-System). Blas > > there are two commands in the manual of HP49G to help > > 1) Press ON and than F3 > > 2) Stick a paper clip in the hole of the backside of calculator for a > second, pull it back and press ON. > > Both actions set the calculator in the default modus. > Only thing I can see on screen is No System and a list of options. Can > someone help me how to restore my calculator. It seems that I've > pressed the wrong button and erased everything on my calc. Really > don't know how it happened. > I have various engineering programs on my old HP41CX written in > HP-BASIC and I'd like to port them to my brand new HP48GX. However, > the programming language for the HP48GX is regular BASIC. > Can anyone recommend a program that will translate HP-BASIC to regular > BASIC? I do have access to a card reader for the 41CX and a serial > interface cable for the 48GX. I really don't want to have to retype > all these programs. ==== I am finally getting around to writing my RPG for the HP48/49. I want the animation speed to be the same whether the game is running on a 48SX, 48GX, or a 49. As I understand it, the 48SX runs at ~ 2 MHz, the 48GX at ~ 4 Mhz. Q1. What speed does the 49 run at? Q2. What would people recommend is the best practise to have the game run at the same speed regarless of what calc it is running on? Should I redraw the screen twice as often on the GX? :) Use a delay loop? etc. Q3. Sasm.doc, on the Goodies disk #4, lists the clock cycles for each (SX) mnemonic. Are these valid for the GX as well? What about clock cycles on the 49? It's using the same Saturn CPU, correct? Q4. How do I read the clock from ML? Q5. How are people profiling there ML code? Is there a way to do this at run-time? I don't see a timestamp register to read from. :( I could use the clock, but what is the accuracy I should expect? Sorry if these questions have been asked before. ==== > I am finally getting around to writing my RPG for the HP48/49. I want > the animation speed to be the same whether the game is running on a > 48SX, 48GX, or a 49. As I understand it, the 48SX runs at ~ 2 MHz, > the 48GX at ~ 4 Mhz. > Q1. What speed does the 49 run at? 48G=49G =2*48S > Q2. What would people recommend is the best practise to have the game > run at the same speed regarless of what calc it is running on? Should > I redraw the screen twice as often on the GX? :) Use a delay loop? > etc. How about going for grayscale (twice the pixels) ?? Jonathan? > Q3. Sasm.doc, on the Goodies disk #4, lists the clock cycles for each > (SX) mnemonic. Are these valid for the GX as well? What about clock > cycles on the 49? It's using the same Saturn CPU, correct? 48S # 48G=49G > Q4. How do I read the clock from ML? Beats me? > Q5. How are people profiling there ML code? Is there a way to do this > at run-time? I don't see a timestamp register to read from. :( I > could use the clock, but what is the accuracy I should expect? ??? PS: One more note: code on odd/even address takes more/less clocks! ==== _Michaelangelo_ schrieb im Newsbeitrag > I am finally getting around to writing my RPG for the HP48/49. I want > the animation speed to be the same whether the game is running on a > 48SX, 48GX, or a 49. As I understand it, the 48SX runs at ~ 2 MHz, > the 48GX at ~ 4 Mhz. > Q1. What speed does the 49 run at? > A1: About the same (clock) speed as the HP-48G(X), at about 3.6 to just below 4MHz. > Q2. What would people recommend is the best practise to have the game > run at the same speed regarless of what calc it is running on? Should > I redraw the screen twice as often on the GX? :) Use a delay loop? > etc. > A2: Use a delay loop (see A4 below) > Q3. Sasm.doc, on the Goodies disk #4, lists the clock cycles for each > (SX) mnemonic. Are these valid for the GX as well? What about clock > cycles on the 49? It's using the same Saturn CPU, correct? > A3: Cycle times are dependant on clock speed, cycle counts are not. So if you have cycle counts, the SX values are valid for the GX as well AFAIK the 49G uses a compatible CPU, but not exactly the same chip as in the 48, so I don't know if cycle counts have changed there. > Q4. How do I read the clock from ML? > A4: Read the System RAM location =CSPEED , which is the CPU speed in 16 Hz units. Addresses: SX: #704D6h GX: #80655h 49: ??? > Q5. How are people profiling there ML code? Is there a way to do this > at run-time? I don't see a timestamp register to read from. :( I > could use the clock, but what is the accuracy I should expect? A5: Use Debug4x, which features a profiling tool. www.hpcalc.org ==== Q3. Sasm.doc, on the Goodies disk #4, lists the clock cycles for each > (SX) mnemonic. Are these valid for the GX as well? What about clock > cycles on the 49? It's using the same Saturn CPU, correct? >A3: >Cycle times are dependant on clock speed, >cycle counts are not. >So if you have cycle counts, the SX values are valid for the GX as well Actually, they aren't. The SX CPU (Clarke) was redesigned for the GX so as to make all the instructions about twice as fast. This has been confirmed by Dave Arnett and empirical evidence such as these cycle counts : http://www.hpcalc.org/details.php?id=1707 http://www.hpcalc.org/details.php?id=4923 The speed increase probably comes from the ALU running at twice the clock speed as the rest of the chip. That would partly explain why you have fractional cycle counts on the GX. >AFAIK the 49G uses a compatible CPU, but not exactly the same chip as in the 48, >so I don't know if cycle counts have changed there. The 49 uses the same IC as the 48G/GX, namely the Yorke. . ==== On the HP49G is it possible to constrain variables say when taking the limit. For example the variable a in what follows. limit(a^x) for x->+oo when 0 On the HP49G is it possible to constrain variables say when taking the > limit. > For example the variable a in what follows. > > limit(a^x) > for x->+oo > when 0 P.S. Off topic: > On the shuttle during reentry there is a plasma produced, is it not > possible to shield the shuttle from it with some form of > electromagnetic field like they do in a tokomak reactor. > just speculating Yes, maybe? but then the payload is always one huge tokamak system maybe better/thicker surface material is a lighter thus better solution. ==== command is not in any documentations that I have but has been mentioned in this group awhile back. Would any one know a good reference document for these as I also noticed lots of other commands under < commands on the net. group. > On the HP49G is it possible to constrain variables say when taking the > limit. > For example the variable a in what follows. > > limit(a^x) > for x->+oo > when 0What happens with >'a<=1' ASSUME >'0<=a' ASSUME >Veli-Pekka Nousiainen >PS: [OT] > P.S. Off topic: > On the shuttle during reentry there is a plasma produced, is it not > possible to shield the shuttle from it with some form of > electromagnetic field like they do in a tokomak reactor. > just speculating >Yes, maybe? >but then the payload is always one huge tokamak system >maybe better/thicker surface material is a lighter thus better solution. > ==== > Where on the web can I find the plug-in ROM and RAM cartridges for my 48GX? https://www.calcpro.com/cgi-bin/catalog.cgi 128K Ram Card (for SX & GX) http://www.helpfindit.com/cgi-win/dream55.exe/~i008000250843 Tripod Data Systems (They are one of few that make RAM cards) http://www.instrumentsales1.com/cgi-local/SoftCart.exe/online-store/scstore/ ==== > Where on the web can I find the plug-in ROM and RAM cartridges > for my 48GX? You mean RAM cards (and/or application cards). The following chart is out of date, but some of the vendors (and some stock) still exist: http://www.hpcalc.org/buying.php RAM cards for the PC emulator are still plentiful, however :) . ==== I am currently in Cal III and once again behind the curve in my '49g studies. I am trying to graph the following helix: r(t) = <3cos(t),4sin(t),1/2(t)> I am using the Ps-countour, but never seem to get any resonable curve out of it. I have used all manner of unusual bounds and eye points. Could someone please do this and then tell me how? I keep hoping that a calculus marathon will show up! :) How 'bout it Nick? (Again I love all your stuff!) Matt ==== Aha, it was *that* curve you were behind??? > I am trying to graph the following helix: > r(t) = <3cos(t),4sin(t),1/2(t)> > > I am using the Ps-countour, but never seem to get any resonable curve > out of it. I have used all manner of unusual bounds and eye points. OK, lemme see. First of all, I don't know if it is possible to draw a space curve using PS-Contour. I fake them using Pr-Surface. With this plot type you enter the list { '3*SIN(t)' '4*COS(t)' 't/2' } in the input field EQ: of the PLOT-SETUP screen. Enter t as independend variable. Then in the PLOT WINDOW - PR-SURFACE screen, enter the values for the view space of the plot. Set: Y-near to -5 Y far to 5 Z-low to -6.5 Z-high to 6.5 XE to -5 YE to -15 ZE to -10 Step Indep t0 20 Depnd to 1 Press the menu key [XXYY] to get the input fields for the range of the independend variable. Set: XXLeft to -6.5 XXRight to 6.5 We don't need to use YYLeft and YYRight since our parametric curve depends only on variable t. Press the menu key [ERASE] and then [DRAW] to let the HP49G draw the helix. It is not very appealing but you can see at least what looks like more or less. (With this setup you sit under the curve and look at it upwards, it winds counterclokwise.) ==== >Including elliptic ones? > > Feminine ones? And then command ANIMATE ==== into www.hpcalc.org) ==== Just a correction. The number has 56348 digits. ==== The base 10 logarithm is the number you must raise 10 to get the argument of the LOG function. For example: LOG(10) = 1, that is 10 raised to the power 1 gives...10 (of course) LOG(100) = 2, that is 10 raised to the power 2 gives 100 LOG(1000000) = 6 that is 10 raised to the power 6 gives 1000000 Observe that the answer to the LOG function is also the number of zero in each argument. LOG(2) = 0.3010299956... So 10 raised to the power 0.3010299956... will gives 2. LOG(769) = 2.8859... So 10 raised to the power 2.8859... will give 769 If you truncate the above answers and add 1 you get the number of digits of the argument. Truncate means keep only the integer part (before the decimal). In reality you get the order of magnitude of the number (or the number of digits before the decimal). The total number of digits can be infinite like in PI or square root of 2, etc. LOG(SQRT(2)) = LOG(1.4142...) = 0.1505 In the above example you get, for each argument, the following: Argument LOG After truncating Nb of digits of the argument 10 1 1 2 100 2 2 3 1000000 6 6 7 2 0.3010... 0 1 769 2.8859... 2 3 1.4142... 0.1505... 0 1 ==== In case anyone was wondering... 9999! http://homepages.ihug.com.au/~aturner/f9999.txt 1000000th fibonacci number: http://homepages.ihug.com.au/~aturner/1000000th.pdf These haven't been carefully checked for correctness :) ==== Erable can only be installed at port 0 or 1; if you have MK installed, the correct library is erable mk. You have the same problem as me, that's the reason I didn't installed MK: I've got Erable on port 1 and Alg48 on port 2 > I have a Klotz 128kb memory-card in port 1 and a 2Mb card in port 2 of my HP > 48gx. I have just installed MetaKernal 2.3 (using up the majority of port 1) > and I would like to add Erable also. My question: There seem to be a few > different versions of Erable floating around and each package contains 4 > different flavors (Erable.lib, erable0.lib, erablemk.lib, erable1.lib): for > my configuration, and assuming I want to install in port 2, what is the > best/correct choice? Which libraries do I install? and in what order should > I install those libraries? ==== > I have a Klotz 128kb memory-card in port 1 and a 2Mb card in port 2 of my HP > 48gx. I have just installed MetaKernal 2.3 (using up the majority of port 1) > and I would like to add Erable also. My question: There seem to be a few > different versions of Erable floating around and each package contains 4 > different flavors (Erable.lib, erable0.lib, erablemk.lib, erable1.lib): for > my configuration, and assuming I want to install in port 2, what is the > best/correct choice? Which libraries do I install? and in what order should > I install those libraries? > _____________________________________ Well, you must use erable for MK in port 0. Read the docs: I remember it was very clear. I've installed Erable and MK for several years now and IT IS WORTH. (Free mem in port 0 ~32kb. Enough for diary work). ==== This subject is beginning to qualify as Longest Thread About Almost Nothing. I got out a can of compressed air with the proper nozzle and proceeded with The Great Dustoff. You know when your car engine makes an ominous noise and you take it to a mechanic and, of course, the noise isn't there any more? Well, when I looked carefully at the calc, the dust was *gone*. Theory: I had put a piece of masking tape over the serial port to keep further dust out, so the existing dust may have fallen onto it and stuck there. ==== > Now that I finally hear that your work has been at least in part > supported by fu-berlin, my opinion of the university indeed goes up. I'd better not have mentioned this since I don't know whether other programmers ever got any support by their universities or companies. The support wasn't substantial. They didn't offer a free hour from a lot of not always pleasant lecture duties. > I have never associated your work with the > university, as very often universities permit reasonable personal use > of their computing facilities. Indeed, the name of the university > postings. Under normal circumstances this would not have been worth mentioning. But Berlin (as was New York about 10 years ago if I remember well) is bankrott. Hence, any occasion is used to save even 10 Euros. > For my part, I would have valued your continued presence because I was > just getting up the courage to come out of lurker mode and ask you > about all the entry points that you use, for which I can find no > documentation in any compiled lists. I would very much like to port > many of your tools to 48S. So far I have success only with keyman > (only one entry point needed to be replaced by appropriate code) and > got bogged down half-way through the list of tools in OT48. I found pointers the same way as Simone Rapisarda, author of Smartkeys and one of the great pioneers around 1990, did it on the HP38: Tenacious pointers, I send as much as I could to the authors of Progr in SysRPL and Carsten integrated them in the data base as far as I can see. I used also a tool called Search to find the 49-pointer of a program of an unnamed 48-pointer. Unfortunately, this tool is very limited, not exactly what is needed. I think could write a new Search since he is familiar with the OS of perhaps all HP-calculators. This Search should accomplish the following: 1. It takes a program or just a segment of its runstream from the stack pointed to in one of the calcs HP38, HP48, HP49, usually from another of these three, since we want to find something on the current calc. 2. Search is searching the entire ROM (not Flashrom) to find and to list all pointers whose programs start with the same runstream as the runstrean segment on the stack. This all should be independent on whether the runstream contains ml code at some places or not. ==== If i have a string thats longer then the string, how can i get it to wrap? What i mean is: 1: 1s2 2s2 2p6 3s2 3p6 4s2 2D10.. => 1: 1s2 2s2 2p6 3s2 3p6 4s2 2D10 4p6........................ In user RPL and system RPL please. thanks, AC ==== VN> X > - Number of jump marks (SetMk and GoMk) limited to three, to save RAM in the hidden directory. VN> How about user configurable jump mark(s) number ? VN> A) Some may want more VN> B) Some may want less VN> Is it dynamic? eg. can you delete jump marks easily/automatically? The point is that Emacs stores information about jump marks in the hidden directory. This information consists of a position and 3 lines of context, so that the mark can still be found when somewhere else in the file text has been added or deleted. Three lines of context can be little or a lot - depending how the file looks like. This information stays when you exit Emacs, and it stays there forever, until cleaned out by hand or until overwritten by a new mark. Therefore, if you use marks randomly, you will fill eventually all 9 slots and the data will sit there. I believe that hardly anybody will be able to remember more than 3 jump marks, so I followed s suggestion to limit the number. If you can convince me that anyone really needs more, I can put it back or even make it configurable - but I don't think this will be necessary. == Who needs [SYMB] anyway??? > >If you assign this to the [SYMB] key you need only 1 keystroke > ><< -16 DUP IF FS THEN CF ELSE SF >> > > YES but what happens with the normal behaviour of a key when you do something > like this.... surely this must interfere with the (already crammed) > functionality of the keyboard !! > Who needs [SYMB] anyway??? You are right Veli. It just took me 2 Minutes to find SYMB, because since years I use it for EVAL (which is mentioned above the key :-) For these rare Moments one can switch of usr-mode or I use Keyman, to get longpressed (and doubble-klick) funktionality. ==== the SX and GX communicate fine over the infrared link. although the 49G has an IR window, there is NOTHING about IR in the documentation... can you comment on this ? however, the 49G and 48GX communicate well over the wire link... but its The 49G comes with a serial adapter piece that plugs into a PC serial port..... and there is conectivity software file on the web.... Get Conn4x (Debug4x has this also) instead from HPCalc. Very similar. Conn4x uses xModem which is faster. Connectivity Kit uses Kermit. Try them both and see what you like? > so WHY would HP tell me in the manual that I need a connectivity kit They used to sell the connectivity kit separately. Now you get the cable and can download the software! Press and hold backspace [ <= ] during boot Then kill the offending library (or all of them) Reboot with [ON] [F1] [F6] (ON-A-F) Try to recover memory? [NO] it sounds more like you need to use the P0ERASE program the instructions are on hpcalc == > X > So we have a new mini-challenge: the *fastest* User RPL method of turning 2: { x y z ... } > 1: integer > = 2: { x y z ... } > 1: { integer integer integer ... } (same size as level 2) How about << OVER DUP QUOT * >> ? > QUOT on symbolics? Are you sure Joe? > The CAS may kick in. You better have S/S off. > > Remember to set flag -110 (Large Matrices) > to generally speed up the calculations > > << OVER SIZE 1 ->LIST SWAP CON AXL > Nick could test this if it's about 10* faster than Joe's example > with one thousand names on a list from 'A'..'Z' 'A' 'B'..'Z' and so on > Joe's program will take in my calc ~ 43. seconds using TEVAL > mine takes ~4.3 seconds. OK, since I also had a proposal: << OVER SIZE NDUPN ->LIST >> I test all three candidates and tell you what I find. May Zeus (the battery God) be with me. ;-) > Using ten thousand names in a list (also from A..Z repeated) > killed my batteries when using Joe's (first) example > (the low bat was already on) and I did not try it again. > My program took 58 seconds on my calc. > > JYA's 1.19-7 might prove to be a lot faster when stack is full. > My MEM is 90061.5 (90k) and after CLEAR 115106.5 (115k) > > I'm sure than Joe can beat the speeed. > (or WH or CC or SS or DM or WR and NK or..) We will see... he he he heeeee (sinister laugh) ;-) Test results using TEVAL: ------------------------------------------------------------------------- Dependence of execution time (in seconds) from list size. 10 2.65 0.10 0.039 20 5.15 0.13 0.042 30 7.81 0.15 0.045 40 10.40 0.17 0.049 50 13.22 0.20 0.051 60 15.90 0.23 0.054 70 18.85 0.26 0.057 80 21.65 0.28 0.061 90 24.82 0.30 0.064 100 27.79 0.33 0.067 Data fits. (X is list size, Y is execution time) JOE: Y=.23*X^1.05 CORR=0.9995 NK : Y=3.80E-2+3.24E-4*X CORR=1 Fit of data for Joe's program slightly deviates from linear. Why? :-/ I didn't use even bigger lists to keep Zeus calm. ;-) ------------------------------------------------------------------------- Is there any dependence from the size of the integer? I assume if there is any, tthen it is very very small. But the experiment will decide! ------------------------------------------------------------------------- Dependence of execution time (in seconds) from list size. 1 2.65 0.10 0.039 1000 5.15 0.13 0.042 30 7.81 0.15 0.045 40 10.40 0.17 0.049 50 13.22 0.20 0.051 60 15.90 0.23 0.054 70 18.85 0.26 0.057 80 21.65 0.28 0.061 90 24.82 0.30 0.064 100 27.79 0.33 0.067 Data fits. (X is list size, Y is execution time) JOE: Y=.23*X^1.05 CORR=0.9995 NK : Y=3.80E-2+3.24E-4*X CORR=1 Fit of data for Joe's program slightly deviates from linear. Why? :-/ I didn't use even bigger lists to keep Zeus calm. ;-) ------------------------------------------------------------------------- ------------------------------------------------------------------------- Dependence of execution time (in seconds) from integer size. Using a list with 50 items. 1 13.38 0.21 0.054 1000 13.41 0.25 0.073 1000000 13.52 0.26 0.075 1000000000 13.53 0.26 0.075 1000000000000 13.53 0.26 0.075 1000000000000000 15.53 0.26 0.075 The dependencies are very small compared to execution times for integers up to 1000000000000000. ------------------------------------------------------------------------- Anybody to test what happens when the names in the list are getting longer? Use a list that contains 50 times 'KARAGIAOUROGLOU'. ;-) Greetings, Nick. ==== << OVER SIZE NDUPN ->LIST > I'm sure than Joe can beat the speeed. > We will see... he he he heeeee (sinister laugh) ;-) You win! :-) -Joe- ==== > << OVER SIZE NDUPN ->LIST > I'm sure than Joe can beat the speeed. > We will see... he he he heeeee (sinister laugh) ;-) > You win! :-) > -Joe- Absolutely! Why are you RPN folks still using the Algebraic smileys?? ==== I didn't think of using POWMOD, but I'll look at it. I just built things one function at a time to get a few results. For longer stuff, I'll take your suggestion. ==== > JKH's workarond (Perform 1 ->LIST before running > the desired function) works in his example but not for > a list of size > 1 in level 2. Aaauugghhh!!! You're right. I hadn't noticed that. So we have a new mini-challenge: the *fastest* User RPL method of turning 2: { x y z ... } 1: integer into 2: { x y z ... } 1: { integer integer integer ... } (same size as level 2) How about << OVER DUP QUOT * >> ? -Joe- Shirley, you jest! ==== > > JKH's workarond (Perform 1 ->LIST before running > the desired function) works in his example but not for > a list of size > 1 in level 2. > > Aaauugghhh!!! You're right. I hadn't noticed that. > > So we have a new mini-challenge: the *fastest* User RPL method of turning > > 2: { x y z ... } > 1: integer > > into > > 2: { x y z ... } > 1: { integer integer integer ... } (same size as level 2) > > How about << OVER DUP QUOT * >> ? > > -Joe- > Shirley, you jest! Or (on the HP49G) << OVER SIZE NDUPN ->LIST >> ? Greetings, Nick. ==== I feel as though I lost my best friend, but am willing to adopt . I hope to be able to avoid Ebay but will do what I have to do. Any help would be appreciated. TIA... Ray... ==== SchiskaMeister schrieb im Newsbeitrag > I feel as though I lost my best friend, but am willing to adopt > . I hope to be able to avoid Ebay but will do what I have to do. > Any help would be appreciated. TIA... Ray... > maybe take a look at the ads on www.hpmuseum.org , there's a section called 'ads without auctions'... HTH, Raymond ==== I'm actualy looking for an RPN scientific for any university subjects that stipulate non programmable calculators. I would like something that has the basic functionality as my 48 (i.e. good keyboard and RPN) but is not programmable. Ollie I'd like to get a non programmable scientific RPN calculator - Is the 32E my > best bet? I've also had a look at the 27s - algebraic- with a stack (and not > programmable). Does this stack mean you can use the 27s similar to an RPN > calculator? > ==== GO ask the same question on the forum on WWW.hpmuseum.com and you'll probably get the best answer there (or an answer at all). They have intrests in hp's besides the 48 and 49. ==== > They [museum visitors] have intrests in hp's besides the 48 and 49. Either that or we got tired of repeating the same topic: http://groups.google.com/groups?q=non-programmable&btnG=B%C3%BAsqueda+en+Goo gle&meta=group%3Dcomp.sys.hp48 Why not the 19BII? Trigs, hyperbolics, non-programmable (we know it's not true, but do they know?) nice clamshell design, one-way IR, clock, alarms, TVM, ... HPCC member #1046 (who is interested in all HP handheld calculators and enjoy posting to unmoderated, uncensored, non-private forums. If at all possible! :) ==== hi NK, > > and then all goes like a bubble burst. poof! (into another bubble) > > Evidence for the foam structure of the universe? ;-) or maybe the foam built-up in our brain ;) > he he. wait for my revenge at the end ;) > > OK, I wait. > > well, here goes mine (mean-little devil having fun. sorry for those > characters i victimize) > > Ha! It worked! That was the only reason for me to write my silly > story. Just to make Rcobo write some of his really nice science > fiction stories. Any chance for a continuation of the Mother of all > TIs? if you want, i could do a mini sequel for fun. but i don't know what will cout << :) > BTW, do you have any relative whose name is similar to Assimov? ;-) yes, a very distant one (4 thousand years?). maybe you are my relative too :) > five fictitious characters named R, N, V, J and W get stuck in an > elevator. > > > R: what happened? > > N: an overload. the physics don't lie. > > V: the electricity. i've seen it happen before. > > J: the world is comming to an end Excalibur 1998. > > W: N is wrong! i teach math. > > N: the math you teach is obsolete. > > W: if i had known you were so arrogant i wouldn't have answered. > > V: can we agree that we don't agree? > > J: mental congestion disipates with a nap Robinston 1991. > > R: we may be experiencing a dream come true. > > N: W, so what is wrong with my theory? > > W: an elevator is not a profesional environment for a mathematics > discussion. > > > < after a while > > R: we cannot escape from the dream. > > N: but we can go back in time with quantum mechanics. > > V: lets get naked! > > J: W: > the door opened and all went home. each of them continued to pursue > his dream. > > Bravo! Excellent! What a fantasy! > > Greetings and please, consider the possibility of publishing books. > Nick. > > P.S.: The short dialogue is so good, that even W and N seem to > perfectly match despite their verbal combat. Bravo! thanks for your goods words. i like yours too :) ==== > > Ha! It worked! That was the only reason for me to write my silly > story. Just to make Rcobo write some of his really nice science > fiction stories. Any chance for a continuation of the Mother of all > TIs? > > I missed that. > I want that. > Isn't it time to add a 'HUMOUR' section in hpcalc.org? > > Alex. Not as long as serious dictatoric professors forbid this to all others than themselfs - but something is coming up, mwahahahaha! Greetings, Nick. ==== As nobody seem to have an answer or a clue, and I don't manage to solve the problem, maybe you can help me in a different way. > > Trying to make a diagnosis, I make a log of a session of DOSKermit > with the two calculators, With exactly the same setings, from the > TRANSFER dialog, press CHOOSE over the NAME field and choose Remote > PC files to get a directory from the pc. The 48gx did it fine but the > 49 can't. > This is the .log file: > HP49g: ======================================================================== Rpack: ^A+ I~* @-#Y3Y^M Spack: ^A7 Y~% @-#Y3 ^!5% ___E!0<^M Rpack: ^A~ 1#[#@~q~x#F#X41~`#P#T1~Q~k~b#~I~Op#F1#VS~x~wi#P~Zo#P$#NA#@~S ~Y#BA{uV&+1~P~Y#B#~PW2#C#~UWR+X~!J~#y%+1~P~Y#B#Yv~U#~UR^M Spack: ^A: E Unknown server commandF^M Rpack: ^A6 E Transfer Failed#M#JB^M ======================================================================== HP48gx: ======================================================================== Rpack: ^A+ I~* @-#Y3Y^M Spack: ^A7 Y~% @-#Y3 ^!5% ___E!0<^M Rpack: ^A) CDIR /W1^M Spack: ^A7 S~( @-#Y3~^?5% ___E!07^M Rpack: ^A+ Y~- @-# 33^M Spack: ^A+!XDIR /WXY^M Rpack: ^A%!Y,I^M Spack: ^A}D#M#J El volumen de la unidad C es GRACE #M#J El n#~#m ero de serie del volumen es 304/1*^M ... ======================================================================== Obviously the problem begin in the third line, when the 48 send Rpack: ^A) CDIR /W1^M to get the directory and the 49 send Rpack: ^A~ 1#[#@~q~x#F#X41~`#P#T1~Q~k~b#~I~Op#F1#VS~x~wi#P~Zo#P$#NA#@~S and get an error. Can somebody try this and tell me what your 49 send? You just need to launch mskermit, set baud and port and log a session Remember that: LOG PACKETS [] = PACKET.LOG Record file transfer packets in given file. then SERVE. In the 49 go to apps - I/O functions - 5. Transfer - press choose on name and then Remote PC files. > Jorge M. Valenzani ==== Alexandros Andreou asks: > why, while having enabled soft menus, > does NUM.SLV appear as a regular pop-up menu? > TIME and STAT do too... Starting with the 48G, some new applications have been designed specifically to use the choose box/input form GUI engine, which HP thought would be more interactive and thus more appealing and consistent with computer apps, so these apps have never existed in a plain menu form at all. Some of the original 48G apps have simply been copied to 49G, and some others have been newly created in similar style. To top it off, the 49G also allows most other existing menus to be displayed instead as choose boxes, which you can turn off, but you can't turn a GUI-only app back into a menu. -[]- . ==== > When trying to graph a parablic function as y=x^3+x^2+x+c (with X as > my independent variable) it is putting it in the wrong orientation -- > it should be a line that curves from lower-left (negative infinity), > up through (-1,0) and (0,1) and continue to the upper-right (positive > infinity); however, the HP plots as if it were an x=y... function -- > an S from lower-left, through the origin, to the upper-right. Any ideas, HP Calculator gurus? Is it me or the calc? If I change > the INDEP Var to Y I get a straight line at the bottom. > Erric Z. Eric: What vlaue are you entering for c? Taking c = 0, then (-1,0) and (0,1) indeed don't satisfy the equation....if you take c = +1 then the plot does go through your points. In order for folks to help you more, you need to list exactly what you input to the calculator--just saying hey, the calculator plots this wrong doesn't give us much to go on..... Roger ==== Here is a copy of what I replied to your slightly different question that you posted on Yahoo groups, but it seems to relate to the same general line of thinking: > 'x=f(y)' graphs in the same direction as 'y=f(x)' > [not with axes reversed] Although it is a convention in the classroom, and even a restriction of some more elementary graphing calculators, that a horizontal axis is commonly labeled 'x' and a vertical axis is commonly labeled 'y', the HP48/49 calculator would be extremely limited if it did not allow graphs to be plotted using any general variable names at all -- how about 'distance=f(time)' for example? In HP48/49 FUNCTION-type plots, you specify yourself the name of the independent (horizontal-axis) variable, either by filling in the name in the plot screen form, or via the INDEP command. The plotting engine then makes the plot by systematically varying the value of the specified horizontal variable over the whole range which you have specified, calculating the vertical coordinate for each such value as the value of the expression to be plotted. To complete the story, if the form of the expression to be plotted is 'z=anything...' then the initial 'z=' (regardless of what actual name you use) is completely ignored, and only the right-hand side expression is plotted, assuming that the 'z=' represents only a name for the vertical axis, but has no bearing on the value of the plotted expression. Thus you can not turn a plot sideways by just swapping the names on axes, because the procedure of FUNCTION-type plotting is always to vary the horizontal-axis variable and plot the vertical computed values of the expression over that entire range; there is no option to instead systematically vary the vertical coordinate over a whole range and compute each horizontal coordinate. If you commonly want to flip axes, it is easier to do with the PARAMETRIC-type plot, which is drawn by separately computing both a horizontal and a vertical coordinate for each point, as functions of another actual independent variable. Thus you could parametrically plot '(x,f(x))' in one case, vs. '(f(x),x)' in the other case, which will flip the axes for you. [r->] [OFF] . ==== > [plotting] 'y=x^3+x^2+x+c' > If I change the INDEP Var to 'y' > I get a straight line at the bottom. Because the right-side of the equation, 'x^3+x^2+x+c', which is what the strictly mechanical FUNCTION plotter plots, does not vary as 'y' varies; the preceding post discusses why changing the independent variable name does not cause 'x' to be solved for in terms of 'y', nor is the expression being plotted replaced by any such new formula, even if it exists. On the other hand, try plotting both versions at once, like this (note the symmetry about the line 'y=x'): PARAMETRIC 'x' INDEP { '(x,x^3+x^2+x+c)' '(x^3+x^2+x+c,x)' } 0 'c' STO STEQ ERASE DRAX DRAW PICTURE An aside: If the left-hand side of an equation is only a variable name, it is ignored, and the right-hand side is plotted; otherwise the left-hand and right-hand sides are independently plotted, e.g.: FUNCTION 'x' INDEP 'x-1=1-x' STEQ ERASE DRAX DRAW PICTURE So it isn't equations that are plotted, but only expressions. Summarizing: the plotter doesn't invert functions or solve equations; it simply plods along mechanically, varying the one variable you name, across a range you specify, evaluating the one (or two) *expressions* which you provide to get numerical values for the one (or two) calculated coordinates at each plot point. In short, the plotter isn't alive, and still needs input http://www.cduniverse.com/productinfo.asp?PID=1282001 Film director John Badham's sister Mary was featured in the classic film To Kill A Mockingbird http://www.filmsite.org/toki.html http://alt.tcm.turner.com/essentials/essential/fea_kill.html http://www.bustersoft.com/bookshelf/lee.htm http://mockingbird.chebucto.org/bio.html http://www.ravecentral.com/tokillamockingbird.html -[]- . ==== A parabolic function is of the form Y = aX^2 + bX + c The function you write, Y = aX^3 + bX^2 + cX + d, is a cubic. The behavior of a cubic is like you described. This, of course, depends on the values of a, b, c and d. A cubic equation has three roots (three reals or one real and two complex)and two inflection points while a parabolic has two roots (two real or two complex) and one inflexion point. Jean (Johnny) Lemire from Richelieu, Quebec, Canada. ==== Is it possible to create a table showing the x and y values > for an equation on the 48? Here's a little UserRPL table [matrix] generator: << 5 ROLL { } + DUP SIZE 6 ROLLD > 1 << { ->NUM 12 RND } OBJ-> DROP >> DOSUBS 5 ROLLD SEQ > OBJ-> DUP 2 + ROLL SWAP OVER / SWAP 2 ->LIST ->ARRY > > 'TGEN' STO > > What about using the MAP command? > Will it do it any faster/easier/shorter? > (I leave the programming to you :) > (and testing to Nick :) Yep! Whatever it is, I'll test it. For the time being I test something completely different. I'll come out with it when I'm ready with the tests. Greetings, Nick. ==== > But is there not a true VGA Zaurus with a small keyboard? > Do you know the dimensions and weight (How many Euros?) > I think I may by one - unless HP truly makes a superfast calc. yes, but it is sold in japan. they did a small mistake by putting less SDRAM. not recomended. if anybody is interested, i know how you can get the sl-5500 new for $229 through Sharp. PS: the sttrong-arm processor (sl-5500) will not be produced any more. they'll produce the xcale only. anyway there is a lot of snowball effect in the linux pda. ==== > > my formula works well in CAS mode. In the HOME screen, you must use XQ > to get the exact integer. Try in the HOME screen: 99! vs XQ(99)! Yes! XQ does the job (and is a very useful function!). I checked both functions: F1(X) = FLOOR(XQ(X)/10^(N-1)) - 10 * FLOOR(XQ(X)/10^N) F2(X) = FLOOR(XQ(X)/10^(N-1)) / 10 MOD 1 * 10 and then 156 |> N . Then I have: F1(99!) 9 F2(99!) 9 so they both work. What was the problem you were having with my method? Oh, and I said that my function is more efficient because I need to evaluate X only one and also use MOD (from the things I was reading about modular arithmetic and factorization I got the impression that MOD can be implemented with very fast routines). Tschuesz! -- Alexandros Andreou, ee4299 at ee.teiath.gr. Undergraduate student, Department of Electronics, TEI of Athens. ==== In case anyone was wondering... 9999! http://homepages.ihug.com.au/~aturner/f9999.txt 1000000th fibonacci number: http://homepages.ihug.com.au/~aturner/1000000th.pdf These haven't been carefully checked for correctness :) Alan ==== Erable can only be installed at port 0 or 1; if you have MK installed, the correct library is erable mk. You have the same problem as me, that's the reason I didn't installed MK: I've got Erable on port 1 and Alg48 on port 2 Greetings (sorry for my english) Timothy E Roche escribi.97 en el mensaje > I have a Klotz 128kb memory-card in port 1 and a 2Mb card in port 2 of my HP > 48gx. I have just installed MetaKernal 2.3 (using up the majority of port 1) > and I would like to add Erable also. My question: There seem to be a few > different versions of Erable floating around and each package contains 4 > different flavors (Erable.lib, erable0.lib, erablemk.lib, erable1.lib): for > my configuration, and assuming I want to install in port 2, what is the > best/correct choice? Which libraries do I install? and in what order should > I install those libraries? _____________________________________ > Timothy E Roche ==== > I have a Klotz 128kb memory-card in port 1 and a 2Mb card in port 2 of my HP > 48gx. I have just installed MetaKernal 2.3 (using up the majority of port 1) > and I would like to add Erable also. My question: There seem to be a few > different versions of Erable floating around and each package contains 4 > different flavors (Erable.lib, erable0.lib, erablemk.lib, erable1.lib): for > my configuration, and assuming I want to install in port 2, what is the > best/correct choice? Which libraries do I install? and in what order should > I install those libraries? > > _____________________________________ > Timothy E Roche Well, you must use erable for MK in port 0. Read the docs: I remember it was very clear. I've installed Erable and MK for several years now and IT IS WORTH. (Free mem in port 0 ~32kb. Enough for diary work). ==== > X >> I used to just have mini-font on the stack. After I got used to >> mini-font, I decided to have everything in mini-font. That way I can >> see more information at a time. > > Likewise, except that nowadays I nead reading glasses anyway. > Without the glasses evreything seems fuzzy in about three meter radius. Heh, s/three meter/twenty centimeter/ for me :) . Anyway, I use small fonts for everything, unless I'm really tired (when I'm either switching off small fonts or going to sleep) or when lighting sucks. Small fonts are OK if you are not programming in ML (or SysRPL, but I can't really tell), where you have to use some characters that look funny in small font. Anyway, my EUR0.0236. -- Alexandros Andreou, ee4299 at ee.teiath.gr. Undergraduate student, Department of Electronics, TEI of Athens. ==== Questions: What is the adress from the basic command DISPXY to use it in a sys-rpl program? Is RPN possible on the HP-39/40g. I know that this question is asked before, but maybe with the help of undocumented commands it is. Greetz Micha.91l Belgium ==== > What is the adress from the basic command DISPXY to use it in a > sys-rpl program? After some checking, DISPXY calls either 3F8A0 or 3F8A1. The former uses the minifont. It takes five arguments: 5: Grob 4: #x 3: #y 2: String 1: Bint (length of String * 4) and returns the modified grob (bang-type operation: Grob is not copied to tempob first). #x and #y are bints representing display coordinates (ZERO ZERO is the upper-left corner). String is just the string to be inserted at the coordinates #x and #y in Grob. And the bint on level one can be obtained this way: DUPLEN$ FOUR #* (which is the width of the grob to be inserted). For example: :: HARDBUFF SEVEN SEVEN Testing TWENTYEIGHT PTR 3F8A0 DROP ; would display the word Testing in minifont near the upper-left corner of the display. 3F8A1 works in a similar way but using the bigger font. The bint on level one is now the length of the string of level two multiplied by six. Anyway, Disp5x7 is preferable if you don't need to use the minifont. > Is RPN possible on the HP-39/40g. I know that this question is asked > before, but maybe with the help of undocumented commands it is. Do you mean a user interface like the 48 or 49? That would mean rewriting a lot of things: SOL, keys, parser... : although the 48 palparse is in the 38/39 firmware, unfortunately it is not complete (that would have been a waste of memory!), the new elsieparse is used instead. Consider buying an HP48 :-) HPCC #1046 -- ==== , but you can use arabic/hebrew display.. (-; I'm not going to write everything backwards Sciptum Post NPV xairetismata > the commands in the Finnish army are RPN: > K.8a.8ann.9as vasempaan...PÄIN! > Turn left...WARDS! Shouldn't that be: > Vasempaanp.8ain K.8a.8an..N.85S! ???? !ON > PS: I think that most things are RPN by nature (if not all :) OK, but from now on you start your messages with P.S. ;-) Veli-Nick, > Greetings. ==== > napkin. if things heat up, pull out your hp49g and show the big guy at > the door (the one blocking your way out) that he is wrong! the circle > has plenty of power. never underestimate it. drink pepsy, enjoy your > body. Actually, instead of proving the power of the circle :) I have found a better way. Make a small program that beeps. The intervals between the beeps must be reduced in time, slowly but noticeably. If the conversation heats up, pull out the 49G, activate the program and say something like ``either you let me go or we jointly go to meet Allah'' and then wait. Have your finger posed near the right shift (it's a red button, so it must be the detonator, right?) and take a ``fsck off, I'll take you with me'' smile on your face. (If it works tell me so that I can use it too.) -- Alexandros Andreou, ee4299 at ee.teiath.gr. Undergraduate student, Department of Electronics, TEI of Athens. ==== X > Actually, instead of proving the power of the circle :) I have found a > better way. Make a small program that beeps. The intervals between the > beeps must be reduced in time, slowly but noticeably. If the conversation heats up, pull out the 49G, activate the program and > say something like ``either you let me go or we jointly go to meet Allah'' > and then wait. Have your finger posed near the right shift (it's a red button, so it must > be the detonator, right?) and take a ``fsck off, I'll take you with me'' > smile on your face. (If it works tell me so that I can use it too.) I tried and now I'm writing this on a hospital - - the SWAT team took me down! This is all your fault! My law company will be in contact... (-; ==== Wow! LOL! Raymond Bill Markwick schrieb im Newsbeitrag > I've been obsessively into my HP48 for years now, but when it comes to > my new HP49, I'm as green as any beginner. I was looking into the > mysteries of the CAS, and what little documentation there is said that > before using a command, you have to provide the right argument. So I typed in, Did not! And it replied, Did too! Did, did, did! Okay so far. So I turned on Rigorous Mode, entered an expression, and pressed > SOLVEX. It said, No. So I entered, Why not? And it replied, Your shoes aren't shined and you need a haircut. Man, that is *rigorous*. > Bill Mom Must Have Worked at ACO Markwick ==== > > Now I'm getting dust *under* the %%$#@#$! display > Have you tried a can of compressed air or the like? Good idea. I'll go into Engineering and liberate a can of compressed air and try it. Removing the cover is just, like, y'know, too totally rad. Details at 11. Bill Dust Bowl Blues Markwick ==== > Now I'm getting dust *under* the %%$#@#$! display Have you tried a can of compressed air or the like? > > Good idea. I'll go into Engineering and liberate a can of compressed > air and try it. This subject is beginning to qualify as Longest Thread About Almost Nothing. I got out a can of compressed air with the proper nozzle and proceeded with The Great Dustoff. You know when your car engine makes an ominous noise and you take it to a mechanic and, of course, the noise isn't there any more? Well, when I looked carefully at the calc, the dust was *gone*. Theory: I had put a piece of masking tape over the serial port to keep further dust out, so the existing dust may have fallen onto it and stuck there. Bill Or esle it was a miracle Markwick ==== > I got out a can of compressed air with the proper nozzle > and proceeded with The Great Dustoff. You know when your car engine makes an ominous noise and you take > it to a mechanic and, of course, the noise isn't there any more? Well, when I looked carefully at the calc, the dust was *gone*. Theory: I had put a piece of masking tape over the serial port > to keep further dust out, so the existing dust > may have fallen onto it and stuck there. Bill Or else it was a miracle Markwick Perhaps you have re-encountered the very origin of the word bug as applied to computers -- some anonymous insect which parked itself in a mechanical relay of some pioneering computing machine, and began to interfere with the designer's best intentions. So, maybe your dust was really something more like dust mites, and maybe they all decided to move to a new home, after you tried sealing up the doorway to their old home? (I had an incident just like this with a family of skunks, living under my patio stairs, which I won't elaborate right now). Your results have inspired me to a new experiment: Rather than continue the drudgery of the old tedious vacuuming of my home, I have instead run to the hardware store to purchase a few years' supply of the handyman's secret weapon: duct tape, as it is known to faithful followers of The Red Green Show in Canada and USA, as well as to followers of Tom Ridge, who pitches its similar use in keeping anthrax dust at bay, and now my home is completely wrapped and sealed off with it, protecting me (and my 49G) henceforth from further contamination. My only remaining problem is, that I forgot to step outside before completing the final phase of wrapping, and therefore, my DSL line is now my only means of contacting the outside world. Please help me by sending over a dozen large pizzas and ten gallons of Sierra Mist; you can drop them off on my roof, next to the chimney, and I think I can download them from there, thanks. This ought to hold me until the Spring thaw begins, when I'll be contacting you again with the next phase of my plan. http://www.ducttapeforever.com/forever.html [r->] [OFF] . ==== Can i ask something?Do the programs for 48g work in a 49g?Help it's urgent. Also the Bode-Routh 8.1 do not plot the Bode diagramms correct neither the Nyquist. Any suggestion? ==== > Can i ask something?Do the programs for 48g work in a 49g?Help it's urgent. I wouldn't know for the Bode-Nyquist part, but HP 48 programs do not work on the 49G, unless they're UserRPL programs that do not contain function calls or SYSEVALs that aren't present on the 49G. Kalh epityxia sthn ejetastikh :-) . -- Alexandros Andreou, ee4299 at ee.teiath.gr. Undergraduate student, Department of Electronics, TEI of Athens. ==== > > Is there a formula to find the sum of series of something like ln(x)? My copy of Burinton, Handbook of Mathematical Tables and Formulas, lists three series depending on the range of x. For example, log x = (x-1) - 1/2 (x-1)^2 + 1/3 (x-1)^3 - ..... ; 0 < x <= 2 You could derive them from the Taylor's or MacLaurin's Theorms of calculus. ==== Is there a formula to find the sum of series of something like ln(x)? My copy of Burinton, Handbook of Mathematical Tables and Formulas, lists > three series depending on the range of x. For example, log x = (x-1) - 1/2 (x-1)^2 + 1/3 (x-1)^3 - ..... ; 0 < x <= 2 You could derive them from the Taylor's or MacLaurin's Theorms of calculus. ==== please take a look at www.hpmuseum.org and specificially at: http://www.hpmuseum.org/collect.htm#numbers Raymond Thomas Chrapkiewicz schrieb im > Can anyone describe a decoding method for serial numbers on all HP48 > machines? I have a number of them I'd like to 'decode'. Details of changes > in manufacturing site, keyboard design (i.e. paint vs double injected) would > Tom ==== > A little tricky, but it can be done: > > Suppose you want to define the function V(X,Y,Z)=X*Y*Z. Type in V, up > arrow, [TOOL] softkey, choose Edit expr., and type in V(X,Y,Z) (the > 'V' is already displayed), press [OK] or ENTER, SHIFT =, and enter the > right side of the equation: X*Y*Z, select all with SHIFT Up, press the > softkey [ALGB], choose the DEF command and finally ENTER. Now the user > defined function V has just been created. > > To evaluate it at, say, (1,2,3): ALPHA V, up arrow, [TOOL], Edit expr., > enter V(1,2,3) and ENTER again. > > used the edit mode for entering matrices in CAS-mode which workd fine, too. So long Axel ==== I have uploaded a new version of Emacs. Until it shows up on Eric's site, you can also get it from http://zon.astro.uva.nl/~dominik/hpcalc/emacs/emacs111.zip There are only small changes in the code. Most work has been on the entry tables for extable2.lib (by Thomas Rast) and SDIAG. The only innovative change (Idea due to Thomas Rast, once again) is convenient access to the EVAL.SELECTION entry through the new meta command |P which evaluates part of the current command line. For example, in order to get pi/4 into a polar vector, you would enter ( 25 , pi 4 / ) , select pi 4 / and press Meta P, resulting in (25,.78539...). The command will evaluate the current selection if there is one. If there is no selection, evaluation goes from the beginning of the current line to the cursor position. Typing can therefore be made a lot faster by entering a newline after the comma, like ( 25 , pi 4 / and pressing Meta P after inserting /, without explicitly selecting anything. Also, message completion has gotten more usable. Below a list of all changes: - RPLCPL calls in the full UserPRL catalog when the cursor is after whitespace in the command line. In MASD source files, completion after whitespace still errors. - Message completion now searches all messages in all built-in libs and works slightly differently. - New meta command |y to edit the clipboard. - New meta command |P to evaluate the current selection. - Number of jump marks (SetMk and GoMk) limited to three, to save RAM in the hidden directory. - SDIAG and extable2 extended and updated. More unsupported (but stable) pointers added. Thomas also added all rammap.a entries. Enjoy. Carsten and Pivo. ==== X > - Number of jump marks (SetMk and GoMk) limited to three, to save RAM > in the hidden directory. X How about user configurable jump mark(s) number ? A) Some may want more B) Some may want less Is it dynamic? eg. can you delete jump marks easily/automatically? ==== VN> X >> - Number of jump marks (SetMk and GoMk) limited to three, to save RAM >> in the hidden directory. VN> X VN> How about user configurable jump mark(s) number ? VN> A) Some may want more VN> B) Some may want less VN> Is it dynamic? eg. can you delete jump marks easily/automatically? The point is that Emacs stores information about jump marks in the hidden directory. This information consists of a position and 3 lines of context, so that the mark can still be found when somewhere else in the file text has been added or deleted. Three lines of context can be little or a lot - depending how the file looks like. This information stays when you exit Emacs, and it stays there forever, until cleaned out by hand or until overwritten by a new mark. Therefore, if you use marks randomly, you will fill eventually all 9 slots and the data will sit there. I believe that hardly anybody will be able to remember more than 3 jump marks, so I followed Wolfgangs suggestion to limit the number. If you can convince me that anyone really needs more, I can put it back or even make it configurable - but I don't think this will be necessary. - Carsten ==== > have you tried ON+A+F ? The 48G/GX/G+ can also be nuked programmatically: #9 SYSEVAL -Joe- ==== > > Oops, you did it again :) . > > 2 12 XROOT LOG INV > 39.8631371382 Yes, you're right. I'm going to take up fingerpainting instead... :-) Bill Only Off by a Factor of 100 Markwick ==== > I am really sorry about the Greek post... > It won't happen again :-) Yes-yes-yes IT SHOULD happen again > BUT > give us the English translation > !!! Why is that so? > Are you interested in learning Greek? > Or are you just interested in the structure of > the Greek language? As English is the current international language and as this is an international news group I wish everybody who wishes to use their own native language (other than english) here would at least provide an AltaVista translation of it. PS: I read the New Testament in FIN/ENG/GRK ==== No relation to Richard Nelson (or to his former employer): > http://www.educalc.net/ http://netsol.com/cgi-bin/whois/whois?STRING=educalc.net&SearchType=do The original EduCALC.com name (no visible web site) is owned by: http://netsol.com/cgi-bin/whois/whois?STRING=educalc.com&SearchType=do Netscape 4 users will find Network Solutions' site unviewable (abhorrent to browser anti-discrimination activists :) -[]- . ==== And they are selling them for $320!!!!! ==== >And they are selling them for $320!!!!! That is Singapore Dollars, not U.S Dollars. I don't know what the exchange rate is. Harold A. Climer Physics/Astronomy Lab Instructor U. Tennessee At Chattanooga ==== Harold A. Climer meinte >And they are selling them for $320!!!!! > That is Singapore Dollars, not U.S Dollars. I don't know what the >exchange rate is. ==== > then converted to a hex string form using the popular ->ASC & ASC-> These exist in hpcalc.org in 'ASC.ZIP'. Can somebody port them to the 49G? They are UserRPL programs that call half a douzin of SYSEVALs that are probably HP48-specific. -- Alexandros Andreou, ee4299 at ee.teiath.gr. Undergraduate student, Department of Electronics, TEI of Athens. ==== > [Bill Wickes'] ->ASC & ASC-> exist in hpcalc.org in 'ASC.ZIP'. > Can somebody port them to the 49G? When the HP49G appeared, I suggested a very slightly different way of packaging 49G stuff in hex, differing only in how the checksum would be calculated and appended. The reason for this suggestion was the same as why binary files for each model are prefixed by slightly different headers when directly exported from the calc -- because binary files made for one model are generally incompatible with the other model, and just the way our bodies reject implanted foreign organic matter that's even a little genetically different from ourselves, each calc should protect itself against getting sick from trying to accept a wrong model binary calc file that isn't healthy for it. Someone, however, did anyway identically duplicate the original format on the 49G, which completely bypassed that protection, by giving no clue in the hex file itself as to which calc model any such file might be suitable for. The 49G hex format which I suggested can be found here: http://groups.google.com/groups?selm=83v723%24p3h%241%40nnrp1.deja.com Also, just as Wickes' original input/output programs can be created by hand-typing, even without a cable, so can those above, because they are elementary UserRPL (aided by some hacker commands supplied in built-in 49G ROM library 256). [r->] [OFF] . ==== Is there a good program for doing quadratic and quartic regression for the hp 49g? ==== > Is there a good program for doing quadratic and quartic regression > for the hp 49g? PREGR? [in UserRPL, for HP28S/48/49] http://www.hpcalc.org/search.php?query=pregr http://www.hpcalc.org/viewzip.php?id=3151&file=PREGR.TXT http://groups.google.com/groups?selm=3DCCA982.D6247CE6%40miu.edu [r->] [OFF] . ==== Another one (a library for 49G only): http://www.hpcalc.org/details.php?id=3148 http://www.hpcalc.org/hp49/math/statistic/fitn.zip See also Virgil Hancher's and Bill Storey's informative posts in: http://groups.google.com/groups?threadm=3DCCA982.D6247CE6%40miu.edu Ignore the log fit posts in that thread, which were scientifically ill-advised, One way to rapidly enter a stat matrix (SigmaDAT) on any 48/49: Do 97 MENU, ClearSigma if needed, enter the *first* data pair as [ 1.2 2.3 ] SigmaPlus (use your own data, of course), and then for every additional data pair, just type two more values and press SigmaPlus again -- no more square brackets [] are needed. Data points can also be entered one pair (or whole row) at a time in the Matrix Writer, pressing ENTER only once after each row, once the first row is complete and the next row has been started (you can even enter multiple rows of data per ENTER, if you wish). [r->] [OFF] . ==== >> engineering school). By the way, why are telephone keyboards using a >> different layout than caculators ? Because phones are not RPN? (First talk, then call.) ;-) So, cell phones *ARE* RPN. << 6974111600 CALL > AND > the commands in the Finnish army are RPN: > K.8a.8ann.9as vasempaan...PÄIN! > Turn left...WARDS! Shouldn't that be: Vasempaanp.8ain K.8a.8an..N.85S! ???? > PS: I think that most things are RPN by nature (if not all :) OK, but from now on you start your messages with P.S. ;-) Veli-Nick, Greetings. ==== I did the same thing and got: (15.63E3*Y^16.00e0*x^20.00)/15.63e3*y^1 Gerry > Is that what you are trying to get? I did the same thing, but I get a ! SIMPLIFY Error: Bad Argument Type... So I can understand why drunken master asks the question :-) Martin J ==== > I did the same thing and got: (15.63E3*Y^16.00e0*x^20.00)/15.63e3*y^1 > and I put that in my HP49 and it simplified to 'Y^17*X^20.' Dave ==== > I was wondering how to simplify something on the 49G. > > EX. (X*Y^2)^2 * (5X^3*Y^2)^6 Putting it on the stack and using SIMPLIFY on it I also get 15625*Y^16*X^20 (same in EQW, which is predictible). -- Alexandros Andreou, ee4299 at ee.teiath.gr. Undergraduate student, Department of Electronics, TEI of Athens. ==== Thanx Jordi for your help, however, when i try to use SYSEVAL 260243 whatever aplet i try the result comes up with Bad Argument Type any sugestions? M@ ------------------------------------------------------------------------ > looking for some info regarding the file format for standard HP38/39 > aplets (ie funtcion solve etc). The built-in aplets have several common variables in their directory, which you'll find in the =Sharedvar.h file of the aplet frame: http://www.hpcalc.org/hp39/pc/apletframe.zip The other vars in the aplet directory are specific to the aplet. On the 39/40G, you can _view_ the contents of the directories by using the built-in filer, press: APLET HOME SYSEVAL 260243 ENTER [CHOOS] select the aplet and press [VIEW] To quit press ON three times. The garbage returned is the way the history stack displays the system word FALSE. Just highlight it and press DEL. ( ... Hmm ... don't you feel a deja vu right now? ... :) So, for example, on a cleared 39G, 'Function looks like: DIR { } { } [ 0 ] { } 0 0 0 0 0 # 4h # 1h ... 6.5 -6.5 { FUNCTOPIC FUNCTION ... XLIB 241 51 } END All vars from #4 to -6.5 are the ones in Sharedvar.h in reverse order. The last one is a list of six rom pointers for the different aplet's views, you'll find them in the file =Common.h of the above zip. And the first 10 vars? Well, try modifying the default values of the function aplet and see what has changed. For instance, if you press SYMB and store SIN(X) in F1, COS(X) in F2 and TAN(X) in F4, when you view the dir, you'll find out that the fifth var contains a list of functions F1 to F0, #0 if not defined. The five zeros are explained in the file =Funcdir.h Remember that the first vars displayed (actually the latest ones stored in the directory) are aplet-dependent. The solve aplet has only 7, while the statistics aplet has 29. The same applies to the 38G, but make sure you use this zip file instead: http://www.hpcalc.org/hp38/programming/aplet1_4.zip Hope this helps. HPCC #1046 ==== I have HP39g and IBM Thinkpad, I want to use IrDA for transfer applets to and from TP. What I need to do that ? ==== > I have HP39g and IBM Thinkpad, I want to use IrDA for transfer applets > to and from TP. What I need to do that ? I havent done it so im not sure, but would think that you need some sort of an XModem software that recognises you IR Port. I have hear somewhere that this is not an easy thing to do because there are different sync rates or something. M@ ==== See http://www.hphomeview.com/faqs_70-79.htm#72 for some info on IR linking from Christoph Geisslink that may be relevant. > >>I have HP39g and IBM Thinkpad, I want to use IrDA for transfer applets >>to and from TP. What I need to do that ? > > > I havent done it so im not sure, but would think that you need some sort of > an XModem software that recognises you IR Port. I have hear somewhere that > this is not an easy thing to do because there are different sync rates or > something. > > M@ > > ==== Before two HP40G pdf manuals where present in different languages on the HP site. Now only the english version is available. Could somebody send me the requested the same on french newsgroups without result. The files where called hp40gfrenchug.zip (the users guide) and hp40gfrenchcas.zip (the cas manual). Christian cdarte@_no_spam_yahoo.com Remove _no_spam_ for best result. ==== French CAS manual, version 2.0: http://www-fourier.ujf-grenoble.fr/~degraeve/jean.pdf French CAS manual, version 3.0: http://www-fourier.ujf-grenoble.fr/~degraeve/jeanmark.pdf if I can find it. HPCC #1046 -- ==== I've been obsessively into my HP48 for years now, but when it comes to my new HP49, I'm as green as any beginner. I was looking into the mysteries of the CAS, and what little documentation there is said that before using a command, you have to provide the right argument. So I typed in, Did not! And it replied, Did too! Did, did, did! Okay so far. So I turned on Rigorous Mode, entered an expression, and pressed SOLVEX. It said, No. So I entered, Why not? And it replied, Your shoes aren't shined and you need a haircut. Man, that is *rigorous*. Bill Mom Must Have Worked at ACO Markwick ==== > > Just some thoughs in case someone at HP is reading these posts. People at HP these days read ti.marketing.making-money-with-sleazy-algebraic-calcs, not csh. But there is a way out... (in an all conspiratory and promising voice) -- Alexandros Andreou, ee4299 at ee.teiath.gr. Undergraduate student, Department of Electronics, TEI of Athens. ==== > They should rename this %&#@&%! newsgroup The Complaint Department. > > Now I'm getting dust *under* the %%$#@#$! display cover. Seems > impossible to dislodge - I've been shaking and tapping and blowing in > the serial port like an idiot and all it does is make the dust > > I guess I better tape up the serial port to stop any more from getting > in, if I can find any &^@%$#&! tape that doesn't leave a $@#@%&! > residue! > > Bill $%@%^&%! Markwick Bill, what do you mean with display cover? Is that the plastic over the glass of the display, or do you mean the glass of the display itself? Greetings, Nick. ==== >> Therefore, the program I gave maybe a bit >> dangerous. You might want to check if the result of Key>StdKeyOb is >> indeed a character before converting it to a string. VN> AND the rewised program (with comments for SysRPL newbies) is VN> ??? I really love it when people treat me like a service company :-) :: Ck&DecKeyLoc (decode to SystemRPL key representation) DROP FOUR (make sure the key plane is 4, i.e. ALPHA) Key>StdKeyOb (extract the key object assigned to this key) DUPTYPECHAR? (test if character) NOTcasedrop NULL$ (return empty string if it was not a character) CHR>>$ (convert the character to a string) ; - Carsten ==== I donÇt know if this is an error in the rom or why this stupid phenomen happen: I have complex mode on + IÇm in approx. mode. I have a list: {6. 40.} I press: [LS] + [1/arith] + [nxt] + [F1/LGCD] and the calc responds with: Approx. mode off? - I press F6 for ok. Then the calc asks again (hehe. stupid calc...) Approx. mode on? And I press F6 for ok, again... The calc now responds with 1, leaving the calc in approx mode.... I use rom 1.19.6. If the calculator wants me to be in approx mode, then why does it ask me to turn the mode off and then turn it back on again? These two questions, made by the 49G, are IMHO just too stupid questions to ask, unless thereÇs something IÇve missed? If I at any time press F5 for cancl, the calc responds with a LGCD Error: Mode switch cancelled....!! Anyone has an explanation of the above-mentioned behavior? Martin J. begin 666 Martin Jorgensen.vcf ==== Maybe you should use -120 SF to let it do it silently... PS: The CAS is soooooo user friendly (-; > I donÇt know if this is an error in the rom or why this stupid phenomen > happen: I have complex mode on + IÇm in approx. mode. I have a list: {6. 40.} > I press: [LS] + [1/arith] + [nxt] + [F1/LGCD] and the calc responds with: > Approx. mode off? - I press F6 for ok. Then the calc asks again (hehe. > stupid calc...) Approx. mode on? And I press F6 for ok, again... The calc > now responds with 1, leaving the calc in approx mode.... > I use rom 1.19.6. If the calculator wants me to be in approx mode, then why > does it ask me to turn the mode off and then turn it back on again? These > two questions, made by the 49G, are IMHO just too stupid questions to ask, > unless thereÇs something IÇve missed? If I at any time press F5 for cancl, the calc responds with a LGCD Error: > Mode switch cancelled....!! Anyone has an explanation of the above-mentioned behavior? > Martin J. > ==== > I have a list: {6. 40.} > I press: [LS] + [1/arith] + [nxt] + [F1/LGCD] and the calc responds with: > > > Approx. mode off? - I press F6 for ok. Then the calc asks again (hehe. > stupid calc...) Approx. mode on? And I press F6 for ok, again... The calc > now responds with 1, leaving the calc in approx mode.... I tried it on my 49G (ROM 1.19-6); it just asks for turning off approximate mode off, and the goes on with the answer (2, not 1). It leaves the calculatricator in exact mode. -- Alexandros Andreou, ee4299 at ee.teiath.gr. Undergraduate student, Department of Electronics, TEI of Athens. ==== You're not alone, Martin. I got the same thing on mine. I tried fooling with the flag settings, and couldn't get it to give me a good answer (except in exact mode). If I was in exact mode when I typed the list in, it gave me the right answer (2), but in approximate mode it did just like you said. The HP seems to do strange things with lists sometimes. Maybe this is one of those cases. --CS ==== > Maybe you should use -120 SF to let it do it silently... Yes, perhaps that will solve the problem. But donÇt you think itÇs pretty much a dumb question for the calculator to ask? I mean: IÇm already in approx mode, so okay, fair enough if the calc wants to go into exact mode, but then it shouldnÇt ask me again if I want to go back into approx mode at the end................................... I was LOL, when I found out of it....... hahaha (and I still am)..... And if I, at any time press F5 for cancl, then I get no answer, but an error message.... ROTFLOL! The calculator simply just could have omitted these to questions...... ? Or what do you say about that? > PS: The CAS is soooooo user friendly (-; Martin Jorgensen. ==== > Approx. mode off? - I press F6 for ok. Then the calc asks again (hehe. > stupid calc...) Approx. mode on? And I press F6 for ok, again... The calc > now responds with 1, leaving the calc in approx mode.... Hmm... strange.... I canÇt explain that, but I would like to hear someone explain it??? Perhaps it has something to do with your flags? Martin J. ==== Here is my situation. I have a table of data that I entered into columns 1 and 2. Is there anyway to make the calculator, let's say, take the log of every number in column 2 and put it in column 3? ==== I get such a rush when trying to do something with my nifty little calculator. I extend my love to all the ACO members, the people who surround this great community injecting small gems of wisdom into it and everyone in general. I'm in a hippy (HP...) ``me loves universe'' mode right now. > Here is my situation. I have a table of data that I entered into > columns 1 and 2. Is there anyway to make the calculator, let's say, > take the log of every number in column 2 and put it in column 3? I almost followed up with the wrong program and this almost spoiled my perfect happiness. But not quite. This is the program you want: [[ matrix ]] << program >> -> [[ matrix ]] E.g. [[1 10] [2 100] [3 1000]] << LOG >> M2DF3D gives: [[1 10 1] [2 100 2] [3 1000 3]] << AA DROP -> M P << M ->COL DROP SWAP DROP ARRY-> 1 GET ->LIST P EVAL LIST-> 1 ->LIST ->ARRY M SWAP 3 COL+ >> 'M2DF3D' STO The name means 'get a Matrix of 2 Dimentions, apply a Function and return a matrix of 3 Dimentions'. Intuitive, like INTERCAL. you asked for. It maps a function to all the elements of the matrix. I had to post it. So, here it is :-) : [[ matrix ]] << program >> -> [[ matrix ]] E.g. [[1 10] [10 100] [100 1000]] << LOG >> M2DMAP gives: [[0 1] [1 2] [2 3]] << AA DROP -> M P << M ARRY-> LIST-> DROP * ->LIST P EVAL LIST-> DROP M SIZE ->ARRY >> 'M2DMAP' STO The name is more intuitive; it means 'get a Matrix of 2 Dimentions and MAP a function on it'. I love you guys, I love everyone. Fsck TI. -- Alexandros Andreou, ee4299 at ee.teiath.gr. Undergraduate student, Department of Electronics, TEI of Athens. ==== > I have a table of data that I entered into columns 1 and 2. > Take the log of every number in column 2 and put it in column 3. ->COL OVER AXL LOG AXL SWAP 1. + COL-> I prefer using AXL LOG AXL rather than { LOG } MAP, because MAP (apply a function to every element of an array), which worked without any bother in early 49G ROM versions, now demands mode changes and variable deletion, etc. [why?] Here's a MAP function (without such problems) for HP48G[X], but you have to call it APLY because of the 48G[X] ROM: << -55 CF 1 CF #E803Ch LIBEVAL >> 'APLY' STO Note that LIBEVAL is *not* syseval and that this is only for the *48* G-series calcs. But here's another MAP or APLY program which works on all 48S[X], 48G[X], or even 49G: << -> f << 1. OVER SIZE OBJ-> 1. > { * } IFT FOR n n DUP2 GET f EVAL PUT NEXT >> >> The above can be modified to apply a function to just one column of a matrix; call it MAPC or APLYC, perhaps: Arguments: [[ matrix ]] Column_number function Program: << -> c f << 1. OVER SIZE OBJ-> DROP2 FOR n n c 2. ->LIST DUP2 GET f EVAL PUT NEXT >> >> [r->] [OFF] . ==== Interesting. Just as an aside, this is the first time I've seen a clear example of a situation where the 38/39/40G family has it all over the 48/49G. On the 39G if you have a column of data in column C1 of the Statistics aplet then you just have to go to the HOME view and type LN(C1)/>C2 (where /> is STO) to store a logged copy of the column into column C2. Seems quite a bit easier to put it mildly! > > >>I have a table of data that I entered into columns 1 and 2. >>Take the log of every number in column 2 and put it in column 3. > > > ->COL OVER AXL LOG AXL SWAP 1. + COL- > I prefer using AXL LOG AXL rather than { LOG } MAP, > because MAP (apply a function to every element of an array), > which worked without any bother in early 49G ROM versions, > now demands mode changes and variable deletion, etc. [why?] > > > Here's a MAP function (without such problems) for HP48G[X], > but you have to call it APLY because of the 48G[X] ROM: > > << -55 CF 1 CF #E803Ch LIBEVAL >> 'APLY' STO > > Note that LIBEVAL is *not* syseval > and that this is only for the *48* G-series calcs. > > > But here's another MAP or APLY program > which works on all 48S[X], 48G[X], or even 49G: > > << -> f << 1. OVER SIZE OBJ-> 1. > { * } IFT > FOR n n DUP2 GET f EVAL PUT NEXT >> > > > > The above can be modified to apply a function > to just one column of a matrix; > call it MAPC or APLYC, perhaps: > > Arguments: [[ matrix ]] Column_number function > > Program: > > << -> c f << 1. OVER SIZE OBJ-> DROP2 FOR n > n c 2. ->LIST DUP2 GET f EVAL PUT NEXT >> > > > [r->] [OFF] > > > > > > > > > > . > > ==== > writing a program like that every time to do a column manipulation > could prove to be a little tedious. Do we need to write (or just store) some generalized program helpers any more than one time only, to make for ourselves a general toolkit of any special operations that we desire? Suppose we have stored the already-posted small helpers which do these two things: o Duplicate the last column of a table [[matrix]]: << ->COL OVER SWAP 1. + COL-> >> 'LCOL' STO o Apply any function to any particular table column: << -> c f << 1. OVER SIZE OBJ-> DROP2 FOR n n c 2. ->LIST DUP2 GET f EVAL PUT NEXT >> >> 'MAPC' STO We can then create combinations of these, such as, say, duplicate the last column and then apply a function to the appended column: << SWAP LCOL DUP SIZE DUP SIZE GET ROT MAPC >> 'LMAPC' STO Now supply any matrix and any function, and just do it: [[ 22. 100. ] [ 33. 1000. ]] { LOG } LMAPC Result: [[ 22. 100. 2. ] [ 33. 1000. 3. ]] The calculator has so many built-in operations to begin with, but it is also open-ended and customizable in many ways, to allow us to create anything else we want for ourselves, out of the building blocks already provided, to which we can easily add our own. www.hpcalc.org collects many of the larger tool projects which we would be less likely to each create for ourselves, but minor functions like those above are within most anyone's ability to create, or to just express a wish for in this group, which usually generates a helpful solution, doesn't it? Best wishes for enjoyment of your highly adaptable HP49G. [r->] [OFF] . ==== > Yeah, is there an easier way or a program to do this? I know something like > this can be easily done on the TI's and, well, writing a program like that > everytime to do a column manipulation could prove to be a little tedious. In what way don't my (or even more JHM's!) program fit your purpose? I think it's just what you wanted. You don't have to write it everytime, just STO it in a variable in, say, HOME and call it every time you need it. Or did I misunderstand what you said? -- Alexandros Andreou, ee4299 at ee.teiath.gr. Undergraduate student, Department of Electronics, TEI of Athens. ==== The program works very well, I understand it now. > Yeah, is there an easier way or a program to do this? I know something like > this can be easily done on the TI's and, well, writing a program like that > everytime to do a column manipulation could prove to be a little tedious. > > In what way don't my (or even more JHM's!) program fit your purpose? I think > it's just what you wanted. > > You don't have to write it everytime, just STO it in a variable in, say, HOME > and call it every time you need it. > > Or did I misunderstand what you said? ==== I need to know if there exists any driver for the HP 82240 infrared printer under Windows 95/98/XP - I would like to use it together with my mobile PC. I know the device doesn't comply to the IRDA standard, but still.... So, is it possible to get this printer together with a Windows system? Matthias ==== > > So, is it possible to get this printer together with a Windows system? > > Very highly doubt it. The hardware layer is too different You have some 82240 emulator though -- Remove the obvious ==== > Could we please have an English translation of these? > It's all Greek to me... > ;-) :-) >> Tora mporoume na kanoume kai fan club :-) Now we can start a fan club. >> To 32SII eixe peripou 85 Euros otan to phra ego, alla >> apo tote den xero an exei allaksei h timh tou, an vevaia >> exoun apomeinei alla 32SII's. To 20S tha einai sigoura >> apanthsoun poly syntoma. The 32SII was at about EUR85 when I got it, but since then I don't really know if the price has changed [can you tell that I'm using Greek syntax?] if there are any 32SIIs left. The respond quickly. --- --- Hehe, how's that? :) *CALL TO ALL GREEKS USING HEWLETT PACKARD CALCULATORS* **** MAIL ME! **** -- Alexandros Andreou, ee4299 at ee.teiath.gr. Undergraduate student, Department of Electronics, TEI of Athens. ==== > Could we please have an English translation of these? > It's all Greek to me... > ;-) > I am really sorry about the Greek post, but it was about a store here in Athens were there might be some 32SII's left! So it was only interesting for Greek HP users!!! It won't happen again :-) Alex Markatis GREECE ==== > Could we please have an English translation of these? > It's all Greek to me... > I am really sorry about the Greek post, > but it was about a store here in Athens > were there might be some 32SII's left! > So it was only interesting for Greek > HP users!!! It won't happen again :-) Yes-yes-yes IT SHOULD happen again BUT give us the English translation !!! > Alex Markatis > GREECE ==== X > The 32SII was at about EUR85 when I got it, but since then I > don't really know if the price has changed [can you tell that No! Because in Finnish language the sentenses don't have a strict order of words. That's why my English is very often...RPN Like Yoda speak it is (or latin) or whatever happens to come out of my mind & my keyboard...(-; > I'm using Greek syntax?] if there are any 32SIIs left. The > respond quickly. ==== > Could we please have an English translation of these? > It's all Greek to me... > ;-) I am really sorry about the Greek post, > but it was about a store here in Athens > were there might be some 32SII's left! > So it was only interesting for Greek > HP users!!! It won't happen again :-) > > Yes-yes-yes IT SHOULD happen again > BUT > give us the English translation > !!! > > Alex Markatis > GREECE I haven't spoken my language for years. Hey, perhaps we manage to mix up an RPN - Esperando? Greetings, Nick. ==== I am really sorry about the Greek post... > It won't happen again :-) > > Yes-yes-yes IT SHOULD happen again > BUT > give us the English translation > !!! Why is that so? Are you interested in learning Greek? Or are you just interested in the structure of the Greek language? Alex Markatis GREECE ==== > > Add TA after SCA, and then look at some greek dictionary. You'll > get a pretty good description of the crap ;-) > > Greetings, > Nick. LOL LOL LOL!!! Very good Nick!!! Egrapse!!! :-) :-) Alex Markatis ==== I recently had my 41CX stolen and am looking to replace it. Any help would be greatly appreciated. TIA... Ray... ==== I discovered and now use: -HPReg and Deylone's Libextractor 2.1 (aka. LibEx) and -BouHP's Libmaker5.1 (aka. LibMkr), downloaded from hpcalc.org. Please could someone send me info/docs about this complex library structure, like the Library 1792, with DIRs of Functions, $PRG, $DER and others; or where I could find it at internet. I read the About instructions, but they are a little poor explicative. (I'm very familiar with <-LIB-> and USERLIB docs, so don't send me it.) In fact while splitting a library I found $DESTROY in it! What does it mean... will my hp48 self-destruct like Impossible Mission opening? thanks for reading this and these wonderful libraries. ==== Please, search in the Eric Rechlin Web site (www.hpcalc.org), the next file in format : progsysrpl.zip (uncompressed .pdf), by Eduardo de Mattos Kalinowski & Carsten Dominik - Second Edition - april 24, 2002. Miguel Angel CAPORALINI HERK (M.A.C.H.) **************************************************************************** **** Then find the Appendix B (Creating Libraries - pags. 447 .... 452) > I discovered and now use: > -HPReg and Deylone's Libextractor 2.1 (aka. LibEx) and > -BouHP's Libmaker5.1 (aka. LibMkr), downloaded from hpcalc.org. > Please could someone send me info/docs about this complex library > structure, like the Library 1792, with DIRs of Functions, $PRG, $DER > and others; or where I could find it at internet. > I read the About instructions, but they are a little poor > explicative. > (I'm very familiar with <-LIB-> and USERLIB docs, so don't send me > it.) > In fact while splitting a library I found $DESTROY in it! What does > it mean... will my hp48 self-destruct like Impossible Mission opening? > > thanks for reading this and these wonderful libraries. > ==== sorry i did not have explained it well: the question is not about the lib 1792 itself, is about the general mace structure of some libraries what , when splitted, have subdirs with $PRG inside them, and other weird things like array of string in the $MESSAGE the point is I have splitted the Calcware math library, what comes with SEC, CSC, COT, ASEC, ACSC, ACOT, GCD, LCM, LOGA, and others; when I did it with <-LIB->, my hp48 asked me: try to recover memory?, but whit LIBEX i succed. do you have some docs about creating those weird libraries? ==== > > OK, but please wait. For the time being I am (still recovering the > initially thought. Then I'll extract the text and replace formulae > with ascii. This is also going to be tedious. But I'm doing my best. > > Come on, hurry up, hurry up! :-) Reminds me of Giannis Lefkos at school. Speak it fast: Ade paidi mou, ade paidi mou, ade paidi mou... Aaaaaahh! ;-) > So, people, see what's so great about using (La)TeX? > > What did you write the Marathons in? MS Word? >(I really *hate* the equation editor.) No, my home is a completely MS free zone. I use demo CD's with MS products as flying targets for the machine guns. With this proper use I never found any bugs. ;-) I use AppleWorks 6 on a Mac for creating the documents and when they are ready I use the Adobe PDF printer for converting them to PDF. Greetings errrh, xairetismata, Nikos ==== > Wolfram is generally considered as > being one of the most unpleasant companies to deal with in that area. Why is that? > As one example, the reason far more textbooks are based on Maple has a > lot to do with the fact that many publishers dread having to deal with > Wolfram. Ah, you mean the well-known CRC lawsuit? I don't think anyone could say we did anything wrong there; it was clearly CRC Press' problem. > As another example, Mathematica has claimed to be able to export > graphics as eps files for years, but up until the very latest version > it has never produced eps files that included the fonts in such a way > that they were usable by any piece of software on the planet. previous versions, but it was complicated. > The reason: Stephen Wolfram insisted that in theory, their eps files > should work; too bad that in practice they don't. That was the users' > problem, not Wolfram's... The users' problem? Why is that? > Matlab is > quite good in terms of numerics, so if you don't need symbolic > manipulation, Matlab is a possibility. > > Matlab is the premier package in the area of numerics, no contest. I might comment on this in a few months ;-) > MathCad is, in a sense, better > than Maple, but it is mathematically less powerful. > > I wonder in just what sense MathCad would be better than Maple. > MathCad has no symbolic capabilities of its own at all (other than the > ones provided by the included Maple kernel), and its programming > capabilities are rudimentary to non-existing. Even in terms of its > numerical capabilities it is a far cry from either Maple or > Mathematica. Just about the only thing it has going for it are an > easy-to-use and moderately pretty interface, That is what I meant. > I might also > mention that given its capabilities, MathCad seems far over-priced. Yes. Good point. > I'm not saying that Mathematica has always been great; in particular, > I'm not really proud of the earliest versions (1.x and 2.x). > > Yup, the frontend used to crash at the drop of a hat, and the kernel > wasn't much better... As Dan Lichtblau puts it, the whole was much better than the sum of the parts. In other words, it was a very well integrated program, but the parts weren't quite that good. Of course, things are *very* different now. The front-end is very stable, and the kernel is quite powerful. > I like Mathematica myself, but its interface still needs a lot more > work, In what ways, specifically? We always like to hear from users, whether the comments are positive or negative. -- Bhuvanesh, Wolfram Research. Note: What I have written reflects my own opinions and not necessarily those of WRI. ==== >>I like Mathematica myself, but its interface still needs a lot more >>work, > > > In what ways, specifically? We always like to hear from users, whether > the comments are positive or negative. Is there some plan to support standard notation inside mathematica? (standard meaning used by almost any other CAS, like parenthesis for arguments e.g. sin(x) not Sin[x]). More generally, the problem of most CAS on the market is that they have a proprietary langage and do not interoperate. If mathematica can run sometimes in the future a maple program they will have a definitive advantage over maple. Otherwise the trend is probably in favour of maple because (at least here in France) it's maple that is taught, and a large majority of the research community publishing programs to illustrate new algorithms using common CAS do this with maple. The fact that (relatively) new CAS like mupad tends to follow maple notation is an indication. ==== > First, I should mention that I'm slightly biased because I work for > Wolfram Research. However, the whole point of my moving to Illinois > was to work for WRI. Naturally, my family thought I was crazy to > refuse offers from companies like Oracle and go to work for a company > they'd never heard of, but I have never regretted my decision. > > I love Mathematica -- it is a truly amazing piece of software. Maple > is so bad that I don't even consider it to be a competitor. Matlab is > quite good in terms of numerics, so if you don't need symbolic > manipulation, Matlab is a possibility. MathCad is, in a sense, better > than Maple, but it is mathematically less powerful. You didn't mention > Derive; it's a pretty good program for what it costs, but the > Authoring environment needs some improvement. > > I'm not saying that Mathematica has always been great; in particular, > I'm not really proud of the earliest versions (1.x and 2.x). But it > improves greatly with each new version, and it has brought several > innovations that competitors try to copy. > > Bhuvanesh, > Wolfram Research. Are there any plans at Wolfram to release a WinCE/PocketPC lite version of mathematica or even to cooperate with some hardware companies like psion (or HP :-) ) to implement the software in a palm-sized computer? What would be most limiting factors (memory, processor speed, interface)? Axel ==== >>I like Mathematica myself, but its interface still needs a lot more >>work, > > > In what ways, specifically? We always like to hear from users, whether > the comments are positive or negative. > > Is there some plan to support standard notation inside mathematica? > (standard meaning used by almost any other CAS, like parenthesis > for arguments e.g. sin(x) not Sin[x]). Mathematica actually does support that for quite a while now, although it doesn't like it too much as its input (there is no problem at all seeing the output in Traditional Notation), and will issue warning messages in some places. This is actually one of the places were I agree with Wolfram; there are good reasons for the square brackets. They do make life easier once you get used to them. I understand that they do turn off newcomers, though. > More generally, the problem > of most CAS on the market is that they have a proprietary langage > and do not interoperate. If mathematica can run sometimes in the > future a maple program they will have a definitive advantage over > maple. I think there are some rudimentary converters available in the public domain, but nothing for serious usage. > Otherwise the trend is probably in favour of maple because > (at least here in France) it's maple that is taught, and a large > majority of the research community publishing programs to illustrate > new algorithms using common CAS do this with maple. The fact > that (relatively) new CAS like mupad tends to follow maple notation > is an indication. That is not much different here in the US. Wolfram insists on charging an arm and a leg for licenses, Maple has a learning curve that is less steep, and there is lots and lots of educational material (textbooks, etc) evailable for Maple, but much less for Mathematica. See my other post for some of the reasons. Still, Mathematica seems to hold its market share. It is a very powerful program, and those who appreciate and need that kind of power (which is definitely not the case in high-school, or even college education) don't want to miss it, despite Wolfram. One can only imagine where Mathematica would be were it not for these idiosyncrasies... -- Helen. ==== X > Mathematica actually does support that for quite a while now, although > it doesn't like it too much as its input (there is no problem at all Almost like RPN vs. Algebraic syntax on calculators > seeing the output in Traditional Notation), and will issue warning > messages in some places. This is actually one of the places were I > agree with Wolfram; there are good reasons for the square brackets. > They do make life easier once you get used to them. I understand that > they do turn off newcomers, though. RPN for newcomers? > More generally, the problem > of most CAS on the market is that they have a proprietary langage > and do not interoperate. If mathematica can run sometimes in the > future a maple program they will have a definitive advantage over > maple. I think there are some rudimentary converters available in the public > domain, but nothing for serious usage. Otherwise the trend is probably in favour of maple because > (at least here in France) it's maple that is taught, and a large > majority of the research community publishing programs to illustrate > new algorithms using common CAS do this with maple. The fact > that (relatively) new CAS like mupad tends to follow maple notation > is an indication. That is not much different here in the US. Wolfram insists on charging > an arm and a leg for licenses, Maple has a learning curve that is less > steep, and there is lots and lots of educational material (textbooks, > etc) evailable for Maple, but much less for Mathematica. See my other > post for some of the reasons. HP vs. TI. TI has the edge on educational market (on calculators) > Still, Mathematica seems to hold its market share. It is a very > powerful program, and those who appreciate and need that kind of power > (which is definitely not the case in high-school, or even college > education) don't want to miss it, despite Wolfram. One can only > imagine where Mathematica would be were it not for these > idiosyncrasies... -- Helen. Veli-Pekka ==== > Is there some plan to support standard notation inside mathematica? TraditionalForm has been a part of Mathematica for a very long time (since version 3.0, I believe). You can type stuff like sin(x) and get output in the same form. Bhuvanesh. ==== I used to use Derive some years ago, but would choose the lite version of MathCAD over it any day, and the cost is not much more - especially if you can buy the academic version. MathCAD is available in a regular and i version. The i version only adds differential equation handling, but costs considerably more (all is relative). While it's not on your list, I've found that un 'unknown' yet very > powerful mathematics software is 'Derive'. It not only handles > numerics to arbitrary (user defined) precision, complex variables, > matrix/vector data types, but also handles symbolics very well. > Further, it costs just about $100.00 (maybe $150, don't recall > offhand). It's not quite as pretty as far as user interface to Mcad > and the others, but it certainly is more affordable. You can download > a fully functional trial (I believe 30 day) version from their > website. You can find it via your fav search engine. A dealer down > in Miami, Fla discounts it a bit, too. (A bit of history, Derive 5.0 is an ancestor of 'Mumath' which was > (one of, if not) the first symbolic math package for the PC (and even > CP/M!). Also, (and hopefully we (the HP48 community) won't hold this > against it; it was purchased from its developers (Soft Warehouse) by > T.I. a number of years ago.) TomCee kool (and very compatible!); it however can't support multiple figure > windows. I'd like to know the HP48 community's opinions about high powered > math programs such as Mathematica, Maple, MatLab and Math Cad. Are there such PC math programs you've tried, and just loved > or just hated? Enquiring minds want to know. Ed > ==== > Are there any plans at Wolfram to release a WinCE/PocketPC lite > version of mathematica or even to cooperate with some hardware > companies like psion (or HP :-) ) to implement the software in a > palm-sized computer? One could use webMathematica for this. Other than that, I'm not sure I can comment, but you could try info@wolfram.com :-) > What would be most limiting factors (memory, processor speed, > interface)? If you use webMathematica, you can design your own interface, and memory and processor speed shouldn't be much of an issue, since most of the processing is done by the server. http://www.wolfram.com/products/webmathematica/uses/wireless.html Bhuvanesh. ==== X > So we have a new mini-challenge: the *fastest* User RPL method of turning 2: { x y z ... } > 1: integer > = 2: { x y z ... } > 1: { integer integer integer ... } (same size as level 2) How about << OVER DUP QUOT * >> ? QUOT on symbolics? Are you sure Joe? The CAS may kick in. You better have S/S off. Remember to set flag -110 (Large Matrices) to generally speed up the calculations << OVER SIZE 1 ->LIST SWAP CON AXL >> Nick could test this if it's about 10* faster than Joe's example with one thousand names on a list from 'A'..'Z' 'A' 'B'..'Z' and so on Joe's program will take in my calc ~ 43. seconds using TEVAL mine takes ~4.3 seconds. Using ten thousand names in a list (also from A..Z repeated) killed my batteries when using Joe's (first) example (the low bat was already on) and I did not try it again. My program took 58 seconds on my calc. JYA's 1.19-7 might prove to be a lot faster when stack is full. My MEM is 90061.5 (90k) and after CLEAR 115106.5 (115k) I'm sure than Joe can beat the speeed. (or WH or CC or SS or DM or WR and NK or..) ==== > X > So we have a new mini-challenge: the *fastest* User RPL method of turning 2: { x y z ... } > 1: integer > = 2: { x y z ... } > 1: { integer integer integer ... } (same size as level 2) How about << OVER DUP QUOT * >> ? > QUOT on symbolics? Are you sure Joe? > The CAS may kick in. You better have S/S off. > > Remember to set flag -110 (Large Matrices) > to generally speed up the calculations > > << OVER SIZE 1 ->LIST SWAP CON AXL > Nick could test this if it's about 10* faster than Joe's example > with one thousand names on a list from 'A'..'Z' 'A' 'B'..'Z' and so on > Joe's program will take in my calc ~ 43. seconds using TEVAL > mine takes ~4.3 seconds. OK, since I also had a proposal: << OVER SIZE NDUPN ->LIST >> I test all three candidates and tell you what I find. May Zeus (the battery God) be with me. ;-) > Using ten thousand names in a list (also from A..Z repeated) > killed my batteries when using Joe's (first) example > (the low bat was already on) and I did not try it again. > My program took 58 seconds on my calc. > > JYA's 1.19-7 might prove to be a lot faster when stack is full. > My MEM is 90061.5 (90k) and after CLEAR 115106.5 (115k) > > I'm sure than Joe can beat the speeed. > (or WH or CC or SS or DM or WR and NK or..) We will see... he he he heeeee (sinister laugh) ;-) Test results using TEVAL: ------------------------------------------------------------------------- Dependence of execution time (in seconds) from list size. 10 2.65 0.10 0.039 20 5.15 0.13 0.042 30 7.81 0.15 0.045 40 10.40 0.17 0.049 50 13.22 0.20 0.051 60 15.90 0.23 0.054 70 18.85 0.26 0.057 80 21.65 0.28 0.061 90 24.82 0.30 0.064 100 27.79 0.33 0.067 Data fits. (X is list size, Y is execution time) JOE: Y=.23*X^1.05 CORR=0.9995 NK : Y=3.80E-2+3.24E-4*X CORR=1 Fit of data for Joe's program slightly deviates from linear. Why? :-/ I didn't use even bigger lists to keep Zeus calm. ;-) ------------------------------------------------------------------------- Is there any dependence from the size of the integer? I assume if there is any, tthen it is very very small. But the experiment will decide! ------------------------------------------------------------------------- Dependence of execution time (in seconds) from list size. 1 2.65 0.10 0.039 1000 5.15 0.13 0.042 30 7.81 0.15 0.045 40 10.40 0.17 0.049 50 13.22 0.20 0.051 60 15.90 0.23 0.054 70 18.85 0.26 0.057 80 21.65 0.28 0.061 90 24.82 0.30 0.064 100 27.79 0.33 0.067 Data fits. (X is list size, Y is execution time) JOE: Y=.23*X^1.05 CORR=0.9995 NK : Y=3.80E-2+3.24E-4*X CORR=1 Fit of data for Joe's program slightly deviates from linear. Why? :-/ I didn't use even bigger lists to keep Zeus calm. ;-) ------------------------------------------------------------------------- ------------------------------------------------------------------------- Dependence of execution time (in seconds) from integer size. Using a list with 50 items. 1 13.38 0.21 0.054 1000 13.41 0.25 0.073 1000000 13.52 0.26 0.075 1000000000 13.53 0.26 0.075 1000000000000 13.53 0.26 0.075 1000000000000000 15.53 0.26 0.075 The dependencies are very small compared to execution times for integers up to 1000000000000000. ------------------------------------------------------------------------- Anybody to test what happens when the names in the list are getting longer? Use a list that contains 50 times 'KARAGIAOUROGLOU'. ;-) Greetings, Nick. ==== << OVER SIZE NDUPN ->LIST > I'm sure than Joe can beat the speeed. > We will see... he he he heeeee (sinister laugh) ;-) You win! :-) -Joe- ==== > << OVER SIZE NDUPN ->LIST > I'm sure than Joe can beat the speeed. > We will see... he he he heeeee (sinister laugh) ;-) > You win! :-) > -Joe- Absolutely! Why are you RPN folks still using the Algebraic smileys?? ==== > Have you tried adding one more []: > [[1 2 3]] [[1] [2] [3]] * should leave behind the 1x1 matrix [[14]]. May I safely assume that [1 2 3] is not a matrix but an array? -- Alexandros Andreou, ee4299 at ee.teiath.gr. Undergraduate student, Department of Electronics, TEI of Athens. ==== As a special case, to permit both X and B in 'A*X=B' to be written as 1-dimensional vectors instead of 2-dimensional matrices, the calc accepts and returns vectors in this case, treating each said vector somewhat like a 1-column (not a 1-row) matrix. Otherwise M's are M's and V's are V's, which tend to fraternize only with others of their own dimension. [r->] [OFF] . ==== > Have you tried adding one more []: > [[1 2 3]] [[1] [2] [3]] * should leave behind the 1x1 matrix [[14]]. > > > May I safely assume that [1 2 3] is not a matrix but an array? Or you could do the following: 2: [1 2 3] 1: [1 2 3] DOT [ENTER] This will give you 1: 14 which is the dot product of the two vectors. Vectors have thin brackets while matrices have thick ones, when displayed in the stack. If you are in the MTRW and you want to create a one-line matrix and not a vector, press F2 (VEC) in order to erase the dot next to it and fill in the cells by moving horizontally (F5 (GO->) softkey has a dot). In order to create a vector with the MTRW, make sure that F2 (VEC) and F5 (GO->) softkeys both have a dot next to them. If you want a one-column matrix, then just complete the cells by moving vertically (softkey F6 (GO|) with a dot). In that case, the state of softkey F2 (VEC) makes no difference, and therefore is not important. If you get confused, you can also set the 49G to display vectors vertically, by setting flag -98. Same for lists (flag -97), but it takes too much display space! Alex Markatis GREECE ==== > Have you tried adding one more []: > [[1 2 3]] [[1] [2] [3]] * should leave behind the 1x1 matrix [[14]]. > > > May I safely assume that [1 2 3] is not a matrix but an array? Oh! And something else! If you want to create vectors or matrices with the command line and not with the MTRW, then remember the following: [1 2 3] is a vector [[1 2 3]] is a one-row matrix [[1] [2] [3]] is a one-column matrix [[1 2 3] [4 5 6]] is a matrix Don t even try to read it, because you will get confused!!! Try downloading the english manuals in .pdf format from: http://www.hpcalc.org/hp49/docs/misc/ Download both the User s Guide and the Advanced User s Guide, because the Advanced User s Guide, which is included in the box with the 49G is not complete! The last part of it used to be available only from the HP site sometime ago. Don t expect much of these Guides, though :-( Download the 48G User s Guide ,too. (huge file!!!) http://www.hpcalc.org/hp48/docs/misc/hp48gug.html It is also VERY useful, or, should I say, MORE useful :-) Alex Markatis Civil Engineer GREECE ==== > > [1 2 3] is a vector > [[1 2 3]] is a one-row matrix Heh, I knew about vectors, just didn't notice that little '[[ .. ]]' instead of just a '[ ... ]' in the Pocket Guide when idly looking through the pages. > Don t even try to read it, because you will > get confused!!! > > Try downloading the english manuals > in .pdf format from: Manuals? Who needs manuals? I think that we of the Greek HPcalc Fan Club (when we form one) should get together and ritually burn the User's Guide. OK, the AUG is decent (readable) and I'm using it now that I'm studying linear algebra. Ah, well. -- Alexandros When everything else fails, read the manual. Andreou (ee4299 at ee.teiath.gr) ==== rasing integers to powers. I was looking for some primitive root cycles.) ==== > I was looking for some primitive root cycles. Don't forget about the POWMOD function. Perfect for number theory work like that! If you already knew about POWMOD, please ignore this posting. -Joe- Ignore previous cookie -- fortune cookie message ==== I didn't think of using POWMOD, but I'll look at it. I just built things one function at a time to get a few results. For longer stuff, I'll take your suggestion. ==== > JKH's workarond (Perform 1 ->LIST before running > the desired function) works in his example but not for > a list of size > 1 in level 2. Aaauugghhh!!! You're right. I hadn't noticed that. So we have a new mini-challenge: the *fastest* User RPL method of turning 2: { x y z ... } 1: integer into 2: { x y z ... } 1: { integer integer integer ... } (same size as level 2) How about << OVER DUP QUOT * >> ? -Joe- Shirley, you jest! ==== > > JKH's workarond (Perform 1 ->LIST before running > the desired function) works in his example but not for > a list of size > 1 in level 2. > > Aaauugghhh!!! You're right. I hadn't noticed that. > > So we have a new mini-challenge: the *fastest* User RPL method of turning > > 2: { x y z ... } > 1: integer > > into > > 2: { x y z ... } > 1: { integer integer integer ... } (same size as level 2) > > How about << OVER DUP QUOT * >> ? > > -Joe- > Shirley, you jest! Or (on the HP49G) << OVER SIZE NDUPN ->LIST >> ? Greetings, Nick. ==== I feel as though I lost my best friend, but am willing to adopt . I hope to be able to avoid Ebay but will do what I have to do. Any help would be appreciated. TIA... Ray... ==== SchiskaMeister schrieb im Newsbeitrag > I feel as though I lost my best friend, but am willing to adopt > . I hope to be able to avoid Ebay but will do what I have to do. > Any help would be appreciated. TIA... Ray... > maybe take a look at the ads on www.hpmuseum.org , there's a section called 'ads without auctions'... HTH, Raymond ==== I'd like to get a non programmable scientific RPN calculator - Is the 32E my best bet? I've also had a look at the 27s - algebraic- with a stack (and not programmable). Does this stack mean you can use the 27s similar to an RPN calculator? ==== I'm actualy looking for an RPN scientific for any university subjects that stipulate non programmable calculators. I would like something that has the basic functionality as my 48 (i.e. good keyboard and RPN) but is not programmable. Ollie I'd like to get a non programmable scientific RPN calculator - Is the 32E my > best bet? I've also had a look at the 27s - algebraic- with a stack (and not > programmable). Does this stack mean you can use the 27s similar to an RPN > calculator? > ==== GO ask the same question on the forum on WWW.hpmuseum.com and you'll probably get the best answer there (or an answer at all). They have intrests in hp's besides the 48 and 49. ==== > They [museum visitors] have intrests in hp's besides the 48 and 49. Either that or we got tired of repeating the same topic: http://groups.google.com/groups?q=non-programmable&btnG=B%C3%BAsqueda+en+Goo gle&meta=group%3Dcomp.sys.hp48 Why not the 19BII? Trigs, hyperbolics, non-programmable (we know it's not true, but do they know?) nice clamshell design, one-way IR, clock, alarms, TVM, ... HPCC member #1046 (who is interested in all HP handheld calculators and enjoy posting to unmoderated, uncensored, non-private forums. If at all possible! :) ==== hi NK, > > and then all goes like a bubble burst. poof! (into another bubble) > > Evidence for the foam structure of the universe? ;-) or maybe the foam built-up in our brain ;) > he he. wait for my revenge at the end ;) > > OK, I wait. > > well, here goes mine (mean-little devil having fun. sorry for those > characters i victimize) > > Ha! It worked! That was the only reason for me to write my silly > story. Just to make Rcobo write some of his really nice science > fiction stories. Any chance for a continuation of the Mother of all > TIs? if you want, i could do a mini sequel for fun. but i don't know what will cout << :) > BTW, do you have any relative whose name is similar to Assimov? ;-) yes, a very distant one (4 thousand years?). maybe you are my relative too :) > five fictitious characters named R, N, V, J and W get stuck in an > elevator. > > > R: what happened? > > N: an overload. the physics don't lie. > > V: the electricity. i've seen it happen before. > > J: the world is comming to an end Excalibur 1998. > > W: N is wrong! i teach math. > > N: the math you teach is obsolete. > > W: if i had known you were so arrogant i wouldn't have answered. > > V: can we agree that we don't agree? > > J: mental congestion disipates with a nap Robinston 1991. > > R: we may be experiencing a dream come true. > > N: W, so what is wrong with my theory? > > W: an elevator is not a profesional environment for a mathematics > discussion. > > > < after a while > > R: we cannot escape from the dream. > > N: but we can go back in time with quantum mechanics. > > V: lets get naked! > > J: W: > the door opened and all went home. each of them continued to pursue > his dream. > > Bravo! Excellent! What a fantasy! > > Greetings and please, consider the possibility of publishing books. > Nick. > > P.S.: The short dialogue is so good, that even W and N seem to > perfectly match despite their verbal combat. Bravo! thanks for your goods words. i like yours too :) ==== > > Ha! It worked! That was the only reason for me to write my silly > story. Just to make Rcobo write some of his really nice science > fiction stories. Any chance for a continuation of the Mother of all > TIs? > > I missed that. > I want that. > Isn't it time to add a 'HUMOUR' section in hpcalc.org? > > Alex. Not as long as serious dictatoric professors forbid this to all others than themselfs - but something is coming up, mwahahahaha! Greetings, Nick. ==== As nobody seem to have an answer or a clue, and I don't manage to solve the problem, maybe you can help me in a different way. > > Trying to make a diagnosis, I make a log of a session of DOSKermit > with the two calculators, With exactly the same setings, from the > TRANSFER dialog, press CHOOSE over the NAME field and choose Remote > PC files to get a directory from the pc. The 48gx did it fine but the > 49 can't. > This is the .log file: > HP49g: ======================================================================== Rpack: ^A+ I~* @-#Y3Y^M Spack: ^A7 Y~% @-#Y3 ^!5% ___E!0<^M Rpack: ^A~ 1#[#@~q~x#F#X41~`#P#T1~Q~k~b#~I~Op#F1#VS~x~wi#P~Zo#P$#NA#@~S ~Y#BA{uV&+1~P~Y#B#~PW2#C#~UWR+X~!J~#y%+1~P~Y#B#Yv~U#~UR^M Spack: ^A: E Unknown server commandF^M Rpack: ^A6 E Transfer Failed#M#JB^M ======================================================================== HP48gx: ======================================================================== Rpack: ^A+ I~* @-#Y3Y^M Spack: ^A7 Y~% @-#Y3 ^!5% ___E!0<^M Rpack: ^A) CDIR /W1^M Spack: ^A7 S~( @-#Y3~^?5% ___E!07^M Rpack: ^A+ Y~- @-# 33^M Spack: ^A+!XDIR /WXY^M Rpack: ^A%!Y,I^M Spack: ^A}D#M#J El volumen de la unidad C es GRACE #M#J El n#~#m ero de serie del volumen es 304/1*^M ... ======================================================================== Obviously the problem begin in the third line, when the 48 send Rpack: ^A) CDIR /W1^M to get the directory and the 49 send Rpack: ^A~ 1#[#@~q~x#F#X41~`#P#T1~Q~k~b#~I~Op#F1#VS~x~wi#P~Zo#P$#NA#@~S and get an error. Can somebody try this and tell me what your 49 send? You just need to launch mskermit, set baud and port and log a session Remember that: LOG PACKETS [] = PACKET.LOG Record file transfer packets in given file. then SERVE. In the 49 go to apps - I/O functions - 5. Transfer - press choose on name and then Remote PC files. > Jorge M. Valenzani ==== [cut..] > May I safely assume that [1 2 3] is not a matrix but an array? That's right. -Andrea --- Checked by AVG anti-virus system (http://www.grisoft.com). ==== > I take the occasion once again to remind JKH that > his porting of Smartkeys to the HP48G contains > some serious and dangerous bugs. For example? > No time for details. Did he fixed them? I'll be happy to fix any bug that my porting to the '48G introduced. Just let me know what they are. SmartKeys has a few features that I never use, so it would not surprise me to find out that bugs lurk there. -Joe- ==== > MSLV XQ --> [ 4/3 4/3 ] It does take a while. However, I have a more pressing question: why, while having enabled soft menus, does NUM.SLV appear as a regular pop-up menu? TIME and STAT do too... -- Alexandros Andreou, ee4299 at ee.teiath.gr. Undergraduate student, Department of Electronics, TEI of Athens. ==== They just do. It's designed. > MSLV XQ --> [ 4/3 4/3 ] It does take a while. However, I have a more pressing question: why, while having enabled > soft menus, does NUM.SLV appear as a regular pop-up menu? TIME and > STAT do too... -- > Alexandros Andreou, ee4299 at ee.teiath.gr. > Undergraduate student, Department of Electronics, TEI of Athens. ==== > Mama mia! Do we have all now? > > Here's another one! Assume that two linear equations in X and Y are on the > stack. > > << 'X' ISOL DUP UNROT SUBST > 'Y' ISOL DUP UNROT SUBST EVAL > > That's the substitution method we learned as children. It can be extended > to solve a 3x3 system by adding another line, or to an NxN system by putting > the whole thing in a loop. That's precisely the kind of homework (writing > such programs) that I assigned to my students to help them learn the > substitution method back in the days when we used HP programmable > calculators in the classroom. *sigh* Gone are the days. > > ;-( > , > , > , > > -Joe- Besides subtitution method, adition can also be programmed. << 'X' ISOL SWAP 'X' ISOL NEG + 'Y' ISOL >> under the same conditions. Id prefer using substitution for programing, its shorter and its easier to add support for more eqs. Cant for get all the other methods that oculd be used: like a graphical solution(up to 3*3 (at least manually), visual solution). AC ==== Alexandros Andreou asks: > why, while having enabled soft menus, > does NUM.SLV appear as a regular pop-up menu? > TIME and STAT do too... Starting with the 48G, some new applications have been designed specifically to use the choose box/input form GUI engine, which HP thought would be more interactive and thus more appealing and consistent with computer apps, so these apps have never existed in a plain menu form at all. Some of the original 48G apps have simply been copied to 49G, and some others have been newly created in similar style. To top it off, the 49G also allows most other existing menus to be displayed instead as choose boxes, which you can turn off, but you can't turn a GUI-only app back into a menu. -[]- . ==== Ho Alberto, hi folks. I have the same problem. I studied engineering with many american books using the Imperial System. Where I work now, we do about everything in Metric. No big deal, I learned how to switch from one to the other and my HP-48SX and now my 49G unit's functions are put to good use. Jean (Johnny) Lemire from Richelieu, Quebec, Canada. ==== When trying to graph a parablic function as y=x^3+x^2+x+c (with X as my independent variable) it is putting it in the wrong orientation -- it should be a line that curves from lower-left (negative infinity), up through (-1,0) and (0,1) and continue to the upper-right (positive infinity); however, the HP plots as if it were an x=y... function -- an S from lower-left, through the origin, to the upper-right. Any ideas, HP Calculator gurus? Is it me or the calc? If I change the INDEP Var to Y I get a straight line at the bottom. Erric Z. ==== > When trying to graph a parablic function as y=x^3+x^2+x+c (with X as > my independent variable) it is putting it in the wrong orientation -- > it should be a line that curves from lower-left (negative infinity), > up through (-1,0) and (0,1) and continue to the upper-right (positive > infinity); however, the HP plots as if it were an x=y... function -- > an S from lower-left, through the origin, to the upper-right. Any ideas, HP Calculator gurus? Is it me or the calc? If I change > the INDEP Var to Y I get a straight line at the bottom. > Erric Z. Eric: What vlaue are you entering for c? Taking c = 0, then (-1,0) and (0,1) indeed don't satisfy the equation....if you take c = +1 then the plot does go through your points. In order for folks to help you more, you need to list exactly what you input to the calculator--just saying hey, the calculator plots this wrong doesn't give us much to go on..... Roger ==== Here is a copy of what I replied to your slightly different question that you posted on Yahoo groups, but it seems to relate to the same general line of thinking: > 'x=f(y)' graphs in the same direction as 'y=f(x)' > [not with axes reversed] Although it is a convention in the classroom, and even a restriction of some more elementary graphing calculators, that a horizontal axis is commonly labeled 'x' and a vertical axis is commonly labeled 'y', the HP48/49 calculator would be extremely limited if it did not allow graphs to be plotted using any general variable names at all -- how about 'distance=f(time)' for example? In HP48/49 FUNCTION-type plots, you specify yourself the name of the independent (horizontal-axis) variable, either by filling in the name in the plot screen form, or via the INDEP command. The plotting engine then makes the plot by systematically varying the value of the specified horizontal variable over the whole range which you have specified, calculating the vertical coordinate for each such value as the value of the expression to be plotted. To complete the story, if the form of the expression to be plotted is 'z=anything...' then the initial 'z=' (regardless of what actual name you use) is completely ignored, and only the right-hand side expression is plotted, assuming that the 'z=' represents only a name for the vertical axis, but has no bearing on the value of the plotted expression. Thus you can not turn a plot sideways by just swapping the names on axes, because the procedure of FUNCTION-type plotting is always to vary the horizontal-axis variable and plot the vertical computed values of the expression over that entire range; there is no option to instead systematically vary the vertical coordinate over a whole range and compute each horizontal coordinate. If you commonly want to flip axes, it is easier to do with the PARAMETRIC-type plot, which is drawn by separately computing both a horizontal and a vertical coordinate for each point, as functions of another actual independent variable. Thus you could parametrically plot '(x,f(x))' in one case, vs. '(f(x),x)' in the other case, which will flip the axes for you. [r->] [OFF] . ==== > [plotting] 'y=x^3+x^2+x+c' > If I change the INDEP Var to 'y' > I get a straight line at the bottom. Because the right-side of the equation, 'x^3+x^2+x+c', which is what the strictly mechanical FUNCTION plotter plots, does not vary as 'y' varies; the preceding post discusses why changing the independent variable name does not cause 'x' to be solved for in terms of 'y', nor is the expression being plotted replaced by any such new formula, even if it exists. On the other hand, try plotting both versions at once, like this (note the symmetry about the line 'y=x'): PARAMETRIC 'x' INDEP { '(x,x^3+x^2+x+c)' '(x^3+x^2+x+c,x)' } 0 'c' STO STEQ ERASE DRAX DRAW PICTURE An aside: If the left-hand side of an equation is only a variable name, it is ignored, and the right-hand side is plotted; otherwise the left-hand and right-hand sides are independently plotted, e.g.: FUNCTION 'x' INDEP 'x-1=1-x' STEQ ERASE DRAX DRAW PICTURE So it isn't equations that are plotted, but only expressions. Summarizing: the plotter doesn't invert functions or solve equations; it simply plods along mechanically, varying the one variable you name, across a range you specify, evaluating the one (or two) *expressions* which you provide to get numerical values for the one (or two) calculated coordinates at each plot point. In short, the plotter isn't alive, and still needs input http://www.cduniverse.com/productinfo.asp?PID=1282001 Film director John Badham's sister Mary was featured in the classic film To Kill A Mockingbird http://www.filmsite.org/toki.html http://alt.tcm.turner.com/essentials/essential/fea_kill.html http://www.bustersoft.com/bookshelf/lee.htm http://mockingbird.chebucto.org/bio.html http://www.ravecentral.com/tokillamockingbird.html -[]- . ==== A parabolic function is of the form Y = aX^2 + bX + c The function you write, Y = aX^3 + bX^2 + cX + d, is a cubic. The behavior of a cubic is like you described. This, of course, depends on the values of a, b, c and d. A cubic equation has three roots (three reals or one real and two complex)and two inflection points while a parabolic has two roots (two real or two complex) and one inflexion point. Jean (Johnny) Lemire from Richelieu, Quebec, Canada. ==== Is it possible to create a table showing the x and y values > for an equation on the 48? Here's a little UserRPL table [matrix] generator: << 5 ROLL { } + DUP SIZE 6 ROLLD > 1 << { ->NUM 12 RND } OBJ-> DROP >> DOSUBS 5 ROLLD SEQ > OBJ-> DUP 2 + ROLL SWAP OVER / SWAP 2 ->LIST ->ARRY > > 'TGEN' STO > > What about using the MAP command? > Will it do it any faster/easier/shorter? > (I leave the programming to you :) > (and testing to Nick :) Yep! Whatever it is, I'll test it. For the time being I test something completely different. I'll come out with it when I'm ready with the tests. Greetings, Nick. ==== Now that I finally hear that your work has been at least in part supported by fu-berlin, my opinion of the university indeed goes up. > The Free Univesity was founded by the Henry Ford Foundation in the > difficult years after WWII, surrounded by the iron curton. That's why it > has still the name Free. After German's reunion there it turned (Although hearing that Henry Ford Foundation was involved also raises my opinion of it.) But it is very strange that until until now, no mention has been made of this support. I have never associated your work with the university, as very often universities permit reasonable personal use of their computing facilities. Indeed, the name of the university postings. Although it appears the decision to terminate support is final, I cannot help thinking that both 1) the goals of the university would have been better served and 2) the NG could have responded more appropriately, had we known the relationship that existed between you and your university. For my part, I would have valued your continued presence because I was just getting up the courage to come out of lurker mode and ask you about all the entry points that you use, for which I can find no documentation in any compiled lists. I would very much like to port many of your tools to 48S. So far I have success only with keyman (only one entry point needed to be replaced by appropriate code) and got bogged down half-way through the list of tools in OT48. Ah, well. Karl Nelson. ==== Sorry, it seems I mixed up the HP38 with the HP48S Simone Rapisarda's Smartkey was orginally written for. That took place in 1992/93. Too many details, my brain is too week a computer. I take the occasion once again to remind JKH that his porting of Smartkeys to the HP48G contains some serious and dangerous bugs. No time for details. Did he fixed them? - Wolfgang ==== > Now that I finally hear that your work has been at least in part > supported by fu-berlin, my opinion of the university indeed goes up. I'd better not have mentioned this since I don't know whether other programmers ever got any support by their universities or companies. The support wasn't substantial. They didn't offer a free hour from a lot of not always pleasant lecture duties. > I have never associated your work with the > university, as very often universities permit reasonable personal use > of their computing facilities. Indeed, the name of the university > postings. Under normal circumstances this would not have been worth mentioning. But Berlin (as was New York about 10 years ago if I remember well) is bankrott. Hence, any occasion is used to save even 10 Euros. > For my part, I would have valued your continued presence because I was > just getting up the courage to come out of lurker mode and ask you > about all the entry points that you use, for which I can find no > documentation in any compiled lists. I would very much like to port > many of your tools to 48S. So far I have success only with keyman > (only one entry point needed to be replaced by appropriate code) and > got bogged down half-way through the list of tools in OT48. I found pointers the same way as Simone Rapisarda, author of Smartkeys and one of the great pioneers around 1990, did it on the HP38: Tenacious pointers, I send as much as I could to the authors of Progr in SysRPL and Carsten integrated them in the data base as far as I can see. I used also a tool called Search to find the 49-pointer of a program of an unnamed 48-pointer. Unfortunately, this tool is very limited, not exactly what is needed. I think Raymond could write a new Search since he is familiar with the OS of perhaps all HP-calculators. This Search should accomplish the following: 1. It takes a program or just a segment of its runstream from the stack pointed to in one of the calcs HP38, HP48, HP49, usually from another of these three, since we want to find something on the current calc. 2. Search is searching the entire ROM (not Flashrom) to find and to list all pointers whose programs start with the same runstream as the runstrean segment on the stack. This all should be independent on whether the runstream contains ml code at some places or not. - Wolfgang ==== >About polarity. If you open the battery case at the seam (instead of >lifting the central clip), youÇll find polarity marks inside the case. >Also, there are many reports of using alkaline, lithium, nicad and >nimh batteries - looks like all are ok. >What is not advisable is using the recharger, whatever battery you >use, as recharging circuit can damage the calculator if batteries go >bad. >Do you really use it on a daily basis ? HavenÇt you considered >retiring it, and replacing with something newer ? Renato I have got something new. One SX, two GX's and two 49's. I would just like to get it fully operational again. I like to play Lunar Lander. BTW I did not buy all of them( I am not that rich) Believe it or not I won one GX at a regional meeting of The American Physical Society and one as a guest at a meeting of the ASME. Harold A. Climer Dept. of Physics,Geology and Astronomy U. Tennessee at Chattanooga ==== If i have a string thats longer then the string, how can i get it to wrap? What i mean is: 1: 1s2 2s2 2p6 3s2 3p6 4s2 2D10.. => 1: 1s2 2s2 2p6 3s2 3p6 4s2 2D10 4p6........................ In user RPL and system RPL please. thanks, AC ==== AC> If i have a string thats longer then the string, how can i get it to wrap? AC> What i mean is: AC> 1: 1s2 2s2 2p6 3s2 3p6 4s2 2D10.. AC> => AC> 1: 1s2 2s2 2p6 3s2 3p6 4s2 2D10 AC> 4p6........................ AC> In user RPL and system RPL please. AC> thanks, AC SystemRPL: :: CK1&Dispatch str :: TOTEMPOB (needed because entry below is bang type) BINT32 (enter here the desired width) FPTR 4 9A (this does the wrapping, very fast) ; ; For a description of the flashpointer see http://zon.astro.uva.nl/~dominik/hpcalc/entries/hp49g/entries_32.html#IDX115 3 If you have very long words which need to be cut in the middle, use FPTR 4 9B instead. hope this helps - Carsten ==== >> FPTR 4 9A (this does the wrapping, very fast) >> If you have very long words which need to be >> cut in the middle, use FPTR 4 9B instead. JKH> You mean FPTR 3 9A and FPTR 3 9B, no? argument list of FPTR 3 9B is different - it needs a max number of lines as well. - Carsten