B11 > ... One of the benefits of > GSE1 is that it lets you set a maximum tolerable error, which lets the > program find solutions much faster... > Well I couldn't let that pass, now could I? > Here's the adaptation of KNAPSACK to accept any list, and a tolerance as well: No bug, only that the user will have difficulties to load it with JHM's famous device %%HP:T(3)C$ $ :-) It is rather obvious that setting a narrow tolerance solves the problem faster. With tolerance 0 there is no solution at all, in general... It seems to me that this is not what the initiator of this thread was asking for. He just asked for minimizing the garbage. I propose to consider another kind of tolerance, put upon the algorithm rather than upon the solution: The algorithm should do its task in limited memory space. That makes it perhaps more interesting for defragmenting the flash mentioned by Werner. ==== > It is rather obvious that setting a narrow tolerance solves > the problem faster. With tolerance 0 there is no solution > at all, in general... It seems to me that this is not what > the initiator of this thread was asking for. He just asked > for minimizing the garbage. > The comments included: @ The resulting list is such that the freespace is either less than or equal to tolerance, or minimal. For larger problems of this type, the knapsack algorithm is not at all a a few tubes with zero loss, that the overall loss is minimal. The problem as described is 'bin-packing'. There is no fast way to find the optimal solution in the general case. 'Best Fit Descending' appears to work well in most cases, but of course not necessarily optimal, and you can always find examples where it performs badly. > I propose to consider another kind of tolerance, put upon > the algorithm rather than upon the solution: The algorithm > should do its task in limited memory space. That makes it > perhaps more interesting for defragmenting the flash > mentioned by Werner. > I have many ideas (and nightmares) about defragmenting the Flash... I don't think that it is possible to start from a limited memory and the defragment the flash - rather, I can calculate what the minimum memory requirements should be to be able to do it. Werner ==== Huh? Why not provide two algorithms A) with either 128KB main RAM free OR 128KB ERAM port 1 free use the faster algorithm B) with less... What is your answer Werner...worst case. > It is rather obvious that setting a narrow tolerance solves > the problem faster. With tolerance 0 there is no solution > at all, in general... It seems to me that this is not what > the initiator of this thread was asking for. He just asked > for minimizing the garbage. > The comments included: > @ The resulting list is such that the freespace is either less than or equal > @ to tolerance, or minimal. For larger problems of this type, the knapsack algorithm is not at all a > a few tubes with zero loss, that the overall loss is minimal. > The problem as described is 'bin-packing'. There is no fast way to find > the optimal solution in the general case. 'Best Fit Descending' appears > to work well in most cases, but of course not necessarily optimal, and > you can always find examples where it performs badly. I propose to consider another kind of tolerance, put upon > the algorithm rather than upon the solution: The algorithm > should do its task in limited memory space. That makes it > perhaps more interesting for defragmenting the flash > mentioned by Werner. > I have many ideas (and nightmares) about defragmenting the Flash... > I don't think that it is possible to start from a limited memory and > the defragment the flash - rather, I can calculate what the minimum > memory requirements should be to be able to do it. Werner ==== -12 -> + 12 Volts (RX == 'pin 3' in the HP49G) > RX: does it throw voltage pulses when transmits data? to that frequency? ==== > That works, but what a pain! Yes, you have to think for yourself. That is actually quite discouraging. TI92+ actually returns S(cos(ln(x)),s) as a nice formula of: x*cos(ln(x))/2+x*sin(ln(x))/2 which is exactly what Mathematica returns by the way on this integral. I guess, you assume, that Mathematica does not require thinking :-) HP49 not only fails to integrate this directly, but with all the tricks and pain of the experienced user it leads through maze of guessing and trial and error until you finally manage to obtain the final formula that resembles what normal user really wanted. Guys. Whether you like it or not, lack of automatic simplification is one of the reasons of HP49 miserably failing on the market and leading to the HP calculator downfall. The mass customer expects ease of use, period. ==== http://www.winternet.com/~mikelr/flame54.html http://www.winternet.com/~mikelr/flame26.html I agree totally. The necessary steps on the HP49G, to do the integral in question, is because of a bug in the CAS. This bug will sadly never be fixed, unlike what they usually are on the TI89 and cousins.r... If your math professor takes one look at the CAS, and tells you that the TI89 has a more versatile one, then he is a screwup. Plain and simply - he shouldn't have left the university, before he got to learn more math than merely integrating and differentiating. I'm having a hard time believing that you actually showed the '49 to your math teacher. ==== One can write third-party programs that overcome this limitation (e.g. my nSeries function). Not as good a solution as having it built-in, but there's always a compromise, unfortunately. -- ==== > I actually agree with the math teacher, in that the HP49G is not a > good tool for students (compared to the TI-89). He could within half an hour thoroughly evlauate the CAS of the HP49G. I'd s I know, Bhuv, and my point was not to bash the TI89, or to put down the importance of third-party programs. The original problem hadn't been a problem had it not been for a _bug_ in the HP CAS. It's not a deliberate restriction made by the programmers, but an error. Take it back and exchange it for someting that works - well, if you are studying series expansion*, you are probably better off using the HP49G, which is my point. It's not sufficient just to say The CAS it has is inadequate. * The TI89, for example, fails on these series expansions while the HP49g does not (the TI89 only does taylor expansion btw): 'X^X', 'SQRT(X^2+X+1)', 'ASIN(X)', 'SIN(X)/(EXP(X)-1)'. The TI89 also fails this limit, while the CAS - it doesn't handle factorials in limits. One shouldn't expect much help when using phrases like It makes me wonder, were the makers of this calculator drunk or stoned when they put it together? though. I do not want to waste time helping people that can't be polite. To settle any disputes before they appear: The HP49G is excellent in idea, but too slow, too late and too bad documented. It's also not backed by HP anymore (if it ever was) - hence, a dead end. The TI89 really hasn't got any of the mentioned drawbacks. ==== OK, I don't want to argue about the definition of a CAS :-) Let me just point out the field of computational geometry, which can be quite useful in generating graphics. I know. That's what I tried to say, too, in a different way. > To settle any disputes before they appear: The HP49G is excellent in idea, but too slow, too late and too bad documented. It's also not backed by HP > anymore (if it ever was) - hence, a dead end. The TI89 really hasn't go any of the mentioned drawbacks. There is a possible drawback with the TI-89 as well: TI may try to control development. They are being pretty cooperative right now, and I hope that, besides removing the C-programs-in-expressions limitation, it stays that way. > Don't let the door hit you in the butt on the way out. Feel free to come > back if you ever find yourself ready for a calculator that requires you > to think, rather than one that just does your homework for you. Guys, guys, you're really biased. Do you really think my TI-89 does my homework for me (assuming I still have homework)? I think it requires me to think just as much as an HP49G (or Mathematica) would. I wouldn't call the HP49G a piece of junk, though. It is still an impressive achievement. -- This Program applied just after accidental purge or overstoring happens could help, but it's designedto work on a hp48GX, so i'm not sure if it works on a 48SX! 'FENIX' , 70 Bytes, Checksum # 7CCDh, no arguments. << LASTARG DUP VTYPE -1 > { DUP RCL OVER VTYPE 7 8 + == { OVER PGDIR } IFT ROT ROT } IFT STO > at least if it doesn't work simply hit LASTARG. ==== Use LASTARG command just after PGDIR ocurrs ( of course it works only if LASTARG ==== I am trying to figure out how to implement non-ascii characters in the names in some of my library command names. It seems right now that it does not work if the first characters in the name are non ascii. However if they are within the boundaries of ascii characters, no complaints are made by the compiler. What is the correct way to do this? ==== > I am trying to figure out how to implement non-ascii characters in the > names in some of my library command names. It seems right now that it > does not work if the first characters in the name are non ascii. > However if they are within the boundaries of ascii characters, no > complaints are made by the compiler. What is the correct way to do > this? The HPTools will accept the escape characters like -> for right arrow etc. Of course, the marvelous Debug4x tool also allows this because of the HPTools! The last resort would be using H->S and S->H commands editing the code directly in hex characters and then translate it back to code again. One can also use the internal editor to edit the hex string and you have then the search & replace ready for a more massive work in case your code is large and have ID references to your special name all over the code. I am trying to figure out how to implement non-ascii characters in the > names in some of my library command names. It seems right now that it > does not work if the first characters in the name are non ascii. > However if they are within the boundaries of ascii characters, no > complaints are made by the compiler. What is the correct way to do > this? ==== > The last resort would be using H->S and S->H commands > editing the code directly in hex characters and > then translate it back to code again. Once again, you answered without even reading the question ! Al, the HPTools accepts the escape character followed by hexa code. So for the entry ->FONT you can do something like: 8DFONT. Translated into library making, you can having something like this sNAME x>FONT 8DFONT to define your entry ->FONT in the library, while still creating the label x>FONT which is easier to enter ==== It seems that I didn't even understand the question... The last resort would be using H->S and S->H commands > editing the code directly in hex characters and > then translate it back to code again. Once again, you answered without even reading the question ! X ==== The HP49 minifont doesn't display some characters correctly, so I installed Werner's Minifont 01. The characters look fine when I transfer text from my HP48, but I have trouble accessing the characters for new files since RS-Chars doesn't match the new minifont (and some of the characters, like infinity, are actually two characters in one). I installed Philippe Pamart's minifont viewer and it's very good, but it won't echo characters. Is there a fix? ==== > Some more oddities... On the 39G, > 2 superscript 3 -> 2^-1 -> 0.5 > 2 superscript 2 -> 2^2 -> 4 > 2 superscript 1 -> 2^1 -> error: Invalid Syntax On the 38G+ > 2 superscript 3 -> 2^3 -> error: Invalid Syntax > 2 superscript 2 -> 2^2 -> 4 > 2 superscript 1 -> 2^1 -> error: Invalid Syntax These are not oddities actually. As I said (below) most of the characters in the CHARS view are for text only; for use in Notes or in text messages in programs. When the 38G was designed the programmers, for reasons only known to them, included superscripts of 1, 2 and 3 but only enabled the 2 as 'squared'. The others are text only and hence the syntax error. On the 39G the superscript 3 is now enabled as a power of -1, hence the 2 becoming 1/2 or 0.5. > an interesting bug in the 39G (also in the emulator). If you go to the > SPECIAL CHARS view, which for non-39G users contains a list of all the > special chars that don't appear on the keyboard, and choose the 'cubed' > char (superscripted 3) then what you actually get is a power of -1 > instead. ==== why I posted to the list. It's a read-modify-write, now, i'm not sure if it's done a nibble at a time or a byte at a time, i think there were at least some cases were two clocks apeared, but i never had any trouble... Are you trying to write in rom address space? ==== >It's a read-modify-write, now, i'm not sure if it's done a nibble at a >time or a byte at a time, i think there were at least some cases were >two clocks apeared, but i never had any trouble... But if we are writing a whole byte, there isn't need to read previous value... just poking would be enough. >Are you trying to write in rom address space? Nope, I'm trying to connect some mocrocontroller directly to the bus, and trying to talk with it like if it were a ram chip, but getting some strange behaviours, I wonder if the Yorke actually does one or two write cycles. ==== Well, I see other people has already answered your question but, If I'm not wrong, it is required to minimize the loss for each 12000 mm tube. Total length=31900 mm; Number of 12000 mm tubes required: ceil(31900/12000)=3; Tube 1: 8000, 2400, 1500; Residual: 100 mm; Tube 2: 8000, 1200, 750, 200, 200; Residual: 1650 mm; Tube 3: 4850, 4800; Residual: 2350 mm; I didn't even write a program. I just applied the following simple method: 1) sort the vector of the lengths in decreasing order; 2) add to each vector element all the subsequent vector elements that doesn't make the sum exceed 12000 mm, and delete all those elements from the vector; 3) apply the point 2) for each 12000 mm tube (that is, 3 times). -- ==== > See http://www.dynatech.de/ ==== I've updated the full version of PowerPlot. I fixed a few problems with the previous version and also added a few small features, specifically with FFT plots. You can download the new beta at my website: http://leviathan.orblivion.com/hp48/software/index.shtml ==== Is it possible to create a custom menu in the Home directory which calls and runs programs which are located in subdirectories? thanks, ==== Yes, if you include the path, I would RCL the executable and then run, so that there are no directory switching: { HOME UTILS My.Util } RCL EVAL You could use the ports, too! Just add :0:, or :1:, or :2: in front of the path. If you have a custom menu in HOME but no other custom menus in the path to the current directory, including in that directory, then the CST in HOME will be the one you get as your custom menu. If a name in such a custom menu is in any directory in the current path, it will be used as if it were called from the current directory. If you have multiple CSTs in the path, only the one closest to the current directory is accessible. ==== http://staging.porternovelli.com/sanfrancisco/preview/hpcalc1/index.htm#intr ==== When using these new entry-level calculators, can we enter operators and data in an RPN manner, or in the algebraic order? RPN, both. > When using these new entry-level calculators, can we enter operators > and data in an RPN manner, or in the algebraic order? http://staging.porternovelli.com/sanfrancisco/preview/hpcalc1/index.htm#intr ==== Sorry, I had the wrong flag turned ON Naturally both are Algebraic. > RPN, both. > When using these new entry-level calculators, can we enter operators > and data in an RPN manner, or in the algebraic order? > http://staging.porternovelli.com/sanfrancisco/preview/hpcalc1/index.htm#intr === http://staging.porternovelli.com/sanfrancisco/preview/hpcalc1/index.htm#intr http://staging.porternovelli.com/sanfrancisco/preview/hpcalc1/index.htm#intr > o ==== I hope you're right, but I'll believe it when I see it. And right now, all I see is crap. > And those ground-up > efforts will include RPN machines - they committed to that in black and white on > their Power Point slides. http://staging.porternovelli.com/sanfrancisco/preview/hpcalc1/index.htm#intr ==== > Sorry, I had the wrong flag turned ON > Naturally both are Algebraic. They both have an Enter key, is there hope? Steve Sousa ==== The [ENTER] just compiles the entry line. They could write COMPUTE on the key, but it's not RPN > Sorry, I had the wrong flag turned ON > Naturally both are Algebraic. They both have an Enter key, is there hope? Steve Sousa ==== I can't see an equal ('=') key on the picture, so there is hope (either for RPN or me getting better glasses;-) The machines seem to be based on the 30S hardware frame. > When using these new entry-level calculators, can we enter operators > and data in an RPN manner, or in the algebraic order? http://staging.porternovelli.com/sanfrancisco/preview/hpcalc1/index.htm#intr ==== I can't see an equal ('=') key on the picture, > so there is hope (either for RPN or me getting better glasses;-) Well, there's an [Enter] key, which is equivalent to the [=] key... -- P.S.: Although the [Enter] key can be used for RPN as well... :-) ==== schrieb im Newsbeitrag > I can't see an equal ('=') key on the picture, > so there is hope (either for RPN or me getting better glasses;-) > Well, there's an [Enter] key, which is equivalent to the [=] key... > Hmm, maybe I'm too used to RPN, but from my understanding ENTER works quite different than '='... Speaking in a somewhat abstract way, ENTER is used to separate entries, wheras '=' is used to combine entries. > P.S.: Although the [Enter] key can be used for RPN as well... :-) ==== The ENTER key evaluates the command line. They are both (Advanced) Algebraic calculators. I can't see an equal ('=') key on the picture, > so there is hope (either for RPN or me getting better glasses;-) The machines seem to be based on the 30S hardware frame. ==== I can't see an equal ('=') key on the picture... nor in 49's keyboard... RPN calcs designed for students of 10-16 yo? I wish but the market doesn't believe these ones can do *any* effort (...easy to see the problem and then immediately see the solution) ==== No RPN in basic models ? Bad beginning for this new HP era ! Wouldn't it be better to add RPN functionality to both 9S scientific calculator & 9G graphing calculator, like in the 49G ? where we must bear up with the algebraic mode by default ? Shouldn't we promote RPN benefits among those kids (while letting them the chance to use their algebraic known choice) ? Aren't we feeding them with other brand options ? Along with a fashioned styling and moderate design, which would be their distinguishing features against you know who options ? The whole specs weren't pubished yet ant the only two images were low-res*. Perhaps, th people from their marketing department would laugh if they read these lines, wondering where am I living ? After all, there is a big chance that we as a community don't have a commercial interest anymore. In any case, sincerely, I just hope the best to the new appointed General Manager of the HP Calculator Division, PSG, Mr Fred A. Valdez. As long as his team and himself are ok, there is still hope for oldtimers like many of us, who will never give up their dreams on HP good old calculators to get back to good things of old products and why not? perhaps even better models. Expecting the division to honour their slogan/motto HP INVENT !!! At least, somebody in Fiorina's shift or even herself see something more we as a bunch don't. Even that, we should be grateful for the pleasurable solid tools HP company gave us... (ok, sold us ;-) *I may be dreaming but, << did any of you like me, notice a 48GX color resemblance in the 9G model ?> Even though I couldn't appreciate the upper left violet labels well, let me add I liked the golden-red-blue colour combination it seems to have, very much. ==== No RPN in basic models ? Bad beginning for this new HP era ! Wouldn't it be better to add RPN functionality to both 9S scientific calculator & 9G graphing calculator, like in the 49G ? where we must bear up with the algebraic mode by default ? Shouldn't we promote RPN benefits among those kids (while letting them the chance to use their algebraic known choice) ? Aren't we feeding them with other brand options ? Along with a fashioned styling and moderate design, which would be their distinguishing features against you know who options ? The whole specs weren't pubished yet ant the only two images were low-res*. Perhaps, th people from their marketing department would laugh if they read these lines, wondering where am I living ? After all, there is a big chance that we as a community don't have a commercial interest anymore. In any case, sincerely, I just hope the best to the new appointed General Manager of the HP Calculator Division, PSG, Mr Fred A. Valdez. As long as his team and himself are ok, there is still hope for oldtimers like many of us, who will never give up their dreams on HP good old calculators to get back to good things of old products and why not? perhaps even better models. Expecting the division to honour their slogan/motto HP INVENT !!! At least, somebody in Fiorina's shift or even herself see something more we as a bunch don't. Even that, we should be grateful for the pleasurable solid tools HP company gave us... (ok, sold us ;-) *I may be dreaming but, << did any of you like me, notice a 48GX color resemblance in the 9G model ?> Even though I couldn't appreciate the upper left violet labels well, let me add I liked the golden-red-blue colour combination it seems to have, very much. ==== Leave alone the RPN key issue. Believe me, I need to imagine there will still be good HP calculators, not anyone but HP ! I'm still working out those exams... By the way, I've just nearly fixed my Emu48 trouble* and could load both your 1me32 (1 Mb RAM Card w/ Erable v 3.2) as well as your MK-Erable32 (1me32).e48. They worked perfect, although ... I'm the one who didn't. You've got too many good applications packed together. Too many to comment and didn't even know most of them. I will need time to understand them all... Even though, I still didn't get what was that kind of solid battery symbol at the top, on the status area nor the letters RSX also there. *I could get back my HomeDir (Port 0), but to the cost of losing all my libs... I'll never know what happened. I'd just installed again the mexican version EmuCalc HP49 [zoom 2 screen hp268x128 pc600x800pxls].kml - Title: !best emuhp49 screen hp268x128pxl zoom 2 pc600*800pxls from http://www.geocities.com/hp4x, along with ROM OPERATING SYSTEM C:/.../HewlettPackard/OS-hp49g-FLASH.rom and Emu48.EXE version 1.31 and Bitmap EmuCalc HP49 [zoom 2 screen pc600x800pxls].bmp Loaded. Debug On. problems, perhaps I'm wrong. Do you know why the Emu48 starts a new e49 Document crashing all memory each time it does so, instead of opening the last saved one ? Is there a way to correct this behaviour by changing something in the c:windowsEmu48.ini file ? [Files] Emu48Directory=G:HP48Emu48 (shouldn't a e49 Doc be defined here?) AutoSave=0 AutoSaveOnExit=1 LoadObjectWarning=1 [Port2] IsShared=1 Filename=SHARED.BIN [KML] AlwaysDisplayLog=1 [Disassembler] Mnemonics=0 [Emulator] RealSpeed=0 SXCycles=82 GXCycles=123 [Serial] Wire=disabled Ir=disabled [ROM] Writeable=1 It's a nuissance in the sense that each time I start the Emu48, I should close a nuew untitled e49 document instead of opening my last saved one. *I may be dreaming but, << did any of you like me, notice a 48GX color > resemblance in the 9G model ?> Even though I couldn't appreciate the > upper > left violet labels well, let me add I liked the golden-red-blue colour > combination it seems to have, very much. ==== ==== The target of the program is to count pulses all the time (at the main task), and every 10 seconds to perform some calculation. DATE TIME << @ alarm task every 10 seconds. . . > 10 UBASE UVAL 8192 * 4 ->LIST STOALARM DO @ main task. . . UNTIL KEY END How to perform that? Any help will be appreciated. Tal ==== > anyone know what is key for log of base 2 in 48g, or 32sii ?? > Base on y register > Expression on x register << LOG SWAP LOG / EVAL > LOGG ENTER STO I mean ><< LN SWAP LN / EVAL > LOGG ENTER STO >Soryy! The base of the log being used doesn't matter ln(x)/ln(y) is the same as log10(x)/log10(y) is the same as logN(x)/logN(y). -- Paul Floyd http://paulf.free.fr (for what it's worth) ==== Alain Robillard is porting FEM48 v5.0 to the HP49 and is having some problems with an unsupported entry. The following program evaluates a program on level 1 and turns the display off to save execution time. Could somebody tell me what enrty could be used instead of the unsupported #1D44? Maybe it is as simple as DispOff ???? (if this is supported) Caspar * EvalFast * * FAST evaluation (turns LCD off) :: CODE GOSBVL =SAVPTR GOSBVL =DisableIntr GOSBVL #1D44 GOSBVL =AllowIntr GOVLNG =GETPTRLOOP ENDCODE ERRSET EVAL ERRTRAP :: CODE GOSBVL =SAVPTR GOSBVL =DispOn GOVLNG =GETPTRLOOP ENDCODE ERRJMP ; CODE GOSBVL =SAVPTR GOSBVL =DispOn GOVLNG =GETPTRLOOP ENDCODE ; ==== Alain Robillard is porting FEM48 v5.0 to the HP49 and is having some >problems with an unsupported entry. >The following program evaluates a program on level 1 and turns the display >off to save execution time. >Could somebody tell me what enrty could be used instead of the unsupported >#1D44? >Maybe it is as simple as DispOff ???? (if this is supported) This question was just answered. See the following threads : http://groups.google.com/groups?selm=8f5fc505.0211111958.32b5ebb4%40posting. google.com http://groups.google.com/groups?selm=lvCq9.1846%24h7.670649%40reader1.news.j ippii.net The 49 entry has the address #1B1C ( ROM 1.19-6 ) aka OffNoBlush. It's a specialized routine to turn off the display without any artifacts associated with cutting the LCD power without first blanking the screen. ( nasty vertical lines or bars ) You can also use #4315 ( which consists of a GOVLNG #1B1C ) if you only want to use addresses in a stable region. ==== You can also use #4315 > ( which consists of a GOVLNG #1B1C ) if you only want to use addresses > in a stable region. stable region IS the magical word ! #1B1C was good but I was unable to make sure that it was going to be trouble free with upcoming rom versions. Alain ==== (I didn't want to reply to Alain's earlier post, because this is just guesswork, but then again it seems you could need every bit of information...) Could somebody tell me what enrty could be used instead of the unsupported > #1D44? > Maybe it is as simple as DispOff ???? (if this is supported) I dimly remember searching for that entry myself, in one context or another. IIRC it's called something like CleanDispOff. I just used DispOff without any problems. HTH & HIWC (Hope It Won't Crash ;-) Greetings Thomas ==== On my computer I do not have a serial port. All I have is USB ports and a parallel port for printers, but I dont use it at the moment. Is is possible for me to link the HP49G with my computer? ==== I would recommend you to buy a USB - RS232 Interface. These is no other way to connect to your PC, because the HP49 doesnt have an infrared port ! Bernd > On my computer I do not have a serial port. All I have is USB ports > and a parallel port for printers, but I dont use it at the moment. Is is possible for me to link the HP49G with my computer? > ==== I would recommend you to buy a USB - RS232 > Interface. > These is no other way to connect to your PC, because > the HP49 doesnt have an infrared port ! > On my computer I do not have a serial port. All I have is USB ports > and a parallel port for printers, but I dont use it at the moment. Is is possible for me to link the HP49G with my computer? > Where can I get a USB - RS232 I use a Keyspan USA-19 Adapter ( http://www.keyspan.com/products/usb/pdaadapter/ ) on my PowerMac G4 with no problems. Communication software (Kermit & Xmodem): ZTerm. HTH ==== I use a USB to serial converter, and it works just fine. Toby I would recommend you to buy a USB - RS232 > Interface. > These is no other way to connect to your PC, because > the HP49 doesnt have an infrared port ! Bernd > On my computer I do not have a serial port. All I have is USB ports > and a parallel port for printers, but I dont use it at the moment. Is is possible for me to link the HP49G with my computer? ==== my understanding is that there is not. for the EMU49 application there is a ROM file available (rom.e49). Check at www.hpcalc.org ==== Facing another problem with matrix and vector calculations... i have a quite huge fraction with a single element matrix as denominator one step prior to the final result. this matrix has to be a scalar. = > Question: how do i get the absolute value function to the equation > writer? Can't you type it in or select it from the Catalog? Just guessing, since I'm not familiar with the HPxx Equation Writer. -- ==== Can you bring us the example (or smaller equivalent) here. I did not understand your question ??? Facing another problem with matrix and vector calculations... > i have a quite huge fraction with a single element matrix as > denominator one step prior to the final result. this matrix has to be > a scalar. Question: how do i get the absolute value function to the equation > writer? ==== I am a new h-p 49g user (running ROM version 1.19-6). I have been learning to use the calculator with the help of Gilberto Urroz's _Science and engineering mathematics with the hp 49 g volume 1_. I seem to be doing something wrong while attempting to generate a table of values for a function. The function is << -> x 'IFTE(x>0, x^2-1,2*x-1)'>. Following Urroz's directions I -- choose plot-type function in the Plot Setup dialogue; enter the expression/function into the EQ field: 'IFTE(x>0, x^2-1,2*x-1)'; set the independent variable to 'x' (lower case x); press [NXT][OK] to accept the changes made; after returning to normal calculator display I execute TBLSET and choose a starting value and an increment; press [OK]; after returning to normal calculator display I execute TABLE; Here is the problem: the expected independent variable (x) values are generated correctly but the corresponding dependent variable (Y1) values are all -1 without exception (which is only correct for x=0). Similar problems experienced with other functions: the generated table values for the dependent variable (Y1=x^2) yields the constant 0. What have I done wrong? or Is there something wrong with the software? _____________________________________ Timothy E Roche ==== after following the install instructions, I get a THEN error instructions fm program are: 1-Unprotect the card if necessary and merge it with MERGE1 (in the Left shift- Library menu). 2-Empty the whole port 0. For instructions, read chapter 28 of the User's Guide. If there is no important data in your calculator, it is easier to initialize it by pressing simultaneously the keys ON, A and F, and answering NO. 3-Transfer the program named RECV.KER from the PC to the calculator, with XMODEM or KERMIT. 4-Then transfer the file MKRAM.KER. XMODEM is recommended, because of the huge size of this file. In order to use XMODEM, with an HP48 REV R, just use the built-in command XRECV. With an HP48 REV M or P, first send the file XRECV.PRG from the PC to the calculator, then use it as if it was the standard XRECV command. 5-On the calculator, put the name of this file on the stack. and execute the program RECV.KER. the program doesn't seem to load or execute either from port 0 or port 2, nor fram the VAR cmd or from stack. any help is much appreciated. ==== after following the install instructions, I get a THEN error instructions fm program are: 1-Unprotect the card if necessary and merge it with MERGE1 (in the Left shift- Library menu). 2-Empty the whole port 0. For instructions, read chapter 28 of the User's Guide. If there is no important data in your calculator, it is easier to initialize it by pressing simultaneously the keys ON, A and F, and answering NO. 3-Transfer the program named RECV.KER from the PC to the calculator, with XMODEM or KERMIT. 4-Then transfer the file MKRAM.KER. XMODEM is recommended, because of the huge size of this file. In order to use XMODEM, with an HP48 REV R, just use the built-in command XRECV. With an HP48 REV M or P, first send the file XRECV.PRG from the PC to the calculator, then use it as if it was the standard XRECV command. 5-On the calculator, put the name of this file on the stack. and execute the program RECV.KER. the program doesn't seem to load or execute either from port 0 or port 2, nor fram the VAR cmd or from stack. any help is much appreciated. ==== Referring to step 5, are you puttingthe *name* of the file (eg 'MKRAM.KER') on the stack and then executing RECV.KER? Or are you simply placing the *contents* of MKRAM.KER on the stack? It must be the *name*. Hope this helps, -Al > after following the install instructions, I get a THEN error instructions fm program are: > 1-Unprotect the card if necessary and merge it with MERGE1 (in the > Left shift- > Library menu). 2-Empty the whole port 0. For instructions, read chapter 28 of the > User's Guide. > If there is no important data in your calculator, it is easier to > initialize > it by pressing simultaneously the keys ON, A and F, and > answering NO. 3-Transfer the program named RECV.KER from the PC to the calculator, > with XMODEM or KERMIT. 4-Then transfer the file MKRAM.KER. XMODEM is recommended, because of > the > huge size of this file. In order to use XMODEM, with an HP48 REV R, > just use > the built-in command XRECV. With an HP48 REV M or P, first send the > file > XRECV.PRG from the PC to the calculator, then use it as if it was the > standard > XRECV command. 5-On the calculator, put the name of this file on the stack. > and execute the program RECV.KER. > the program doesn't seem to load or execute either from port 0 or port > 2, nor fram the VAR cmd or from stack. any help is much appreciated. -- It aint what ya don't know but what ya know that aint so that can get you in trouble. - P. Thomas ==== Hope this helps: -Merge memory of port 1: MERGE1 -Transfer MKRAM.KER and store it: B STO -Transfer RECV.KER and store it: A STO -Put the name 'B' on level 1, and press A key This works ==== sin(x^2). Well, that looked easy. It's not. I guess calculators don't like to integrate trig functions if the argument isn't linear. I tried TLIN and so on, and nothing wanted to linearize it. Integrals.com says that the answer is sin(x^3)3, but I'm not sure if I believe that. My log tables don't have this one, either. Anybody have any ideas? Bill ==== > sin(x^2). Well, that looked easy. It's not. I guess calculators don't like to integrate trig functions > if the argument isn't linear. I tried TLIN and so on, and nothing > wanted to linearize it. Calculators don't handle symbolic manipulation of special functions yet. They'll get there, eventually. > Integrals.com says that the answer is sin(x^3)3, but I'm not sure if > I believe that. Good, because it's wrong :-) sin(x^2) is not the correct syntax (it means sin*x^2). I get the correct answer involving the Fresnel sine integral if I use Sin[x^2]. In other words, there is no answer in terms of elementary functions. In general, the antiderivative of Sin[x^a] involves incomplete gamma functions (or exponential integrals of the first kind, however you want to look at it). -- ==== > sin(x^2). Well, that looked easy. It's not. I guess calculators don't like to integrate trig functions > if the argument isn't linear. I tried TLIN and so on, and nothing > wanted to linearize it. Integrals.com says that the answer is sin(x^3)3, but I'm not sure if > I believe that. My log tables don't have this one, either. That's a Fresnel integral.. it has no closed form antiderivative. Look upon it as the imaginary part of the exp(x^2) integral.. And you must have entered it wrongly at ingerals.com... If you enter Sine[x^2], the answer returned is: a.FresnelS[x/a] with a = Sqrt[PI/2], and FresnelS the Fresnel Sine integral ==== A story about my hp 41c and 82104a card reader. 82104A card reader for the HP 41. It describes very well, dis-assembly, repair and re-assembly of the card reader for purposes of the 'melting' drive wheel that afflicts these repaired reader. If it doesn't work properly, Dave mentions the cams that operate the 'fork' springs in the reader head. My reader has for some time given 'malfunction' a lot when reading/writing/verifying cards. There are two plastic cams. One has a 'tip' on it, the other, unless mine had a tip that broke off, has no 'tip', is just a round projection in the card path that operates the second of the two 'fork' springs. I think mine just wore too small from years of use. I'm writing this to give the benefit of my experience. My second cam wasn't lifting the 'fork' spring enough to make contact with the upper printed circuit board. (Some readers have copper springs and pc boards, mine is Gold!) What was needed was to add to the cam, the spring, or the pc board so that contact would be made by the traversing card. Epoxy on the cam was my first idea. A bad one. I'd suggest not messing with the cam. Putting solder on the spring would be a bad idea as springs get their characteristics from heating and cooling. What worked for me was to add solder to the pc board 'pad' that the spring contacted when the cam pushes it up. You have to put just enough solder to make the contact work, but not too much to make it contact all the time. I've taken my reader apart a few times. To put #6 'O'-rings on the drive spindle. The 5 wires that 'plug' into the 'motherboard' of the reader are tinned wires. After plugging and unplugging a few times they can lose their tinning and fray. I re-tinned two frayed wires. I also cut a reader card to slide into the space between the upper pc board and reader head to make sure the 'fork' springs were strait, it is easy to bend these springs, even a little may make the tips not be strait on the contact pad. My reader is now working again. ==== > Given: Let a, b, c be positive integers and (a-b)^2+(b-c)^2+(c-a)^2 = 218 Problem: Find a, b, c under these constrains so that (a+b)^2+(b+c)^2+(c+a)^2 is minimized. By the obvious symmetry, we may assume a <= b <= c, so we may set a = b-u and c = b+v where u and v are nonnegative. With a little algebra, the constraint becomes u^2 + u*v + v^2 = 109, where 0 <= u and 0 <= v. With a little trial and error, one may show that u = 5 and v = 7, or u = 7 and v = 5, are the only integral solutions. ==== > Given: Let a, b, c be positive integers and (a-b)^2+(b-c)^2+(c-a)^2 = 218 Problem: Find a, b, c under these constrains so that (a+b)^2+(b+c)^2+(c+a)^2 is minimized. ==== I should have said in earlier post: XModem Connectivity Kit I have been working on the HP Connectivity Kit for the HP49 and wish to expand it for the HP48 (as I did with Debug4x). I am building a XModem server to work with it on the 48. Cyrille sent me the Delphi source code that he had, but he believes he had previously sent a more recent version to someone (he forgot who). If you have the code would you please contact me. You apparently have the only copy of the most recent source code! ==== I was forced to by a quality 5V 3A power supply (~$50US). No one to blame, but me. I was lazy and did only surface test on the malfunctioned device at work for which I hoped the new power supply will be the solution. Hmm. The device turned up to be broken also :( Anyway, I am trying to find the use for the power supply. Should I use some means to lower the output voltage to 4.5V, if I want to use the unit for powring of the HP48G? Will the 5V power hurt the HP48? Yes, it is a big overkill, but I do not have any other ideas for usage of the unit... Robert Tiismus ==== I wouln't recommend running the HP from 5 volts. It would be very easy to drop it to aroung 4.5volts anyway. Thne simplist method would be this: 5v+ --->|----To Calc gnd --------- with the arrow being a standard rectifier diode, which shuold drop around .6 volts. There are a number of issues with this however. The supply ir rated for 5v output @ 3A. The HP might draw 1/20th of that. Depending on the quality of the supply, the output may be higher then 5v when powering the HP and also electrically noisy - do you have a CRO to check? Your power supply sounds expensive which leads me to think it's switchmode. If it is I wouldn't bother tring to use it for a HP. Switchers' *hate* low output currents. Just buy a $5 wall wart. It should do the trick. If your power supply is linear read on. All my circuit does is drop the output by .6 volts (roughly). it doesn't clamp the output. I'd recommend doing this: Current limiting resistor (~15 ohms) 5v+ ---~~~~--------------------------------To Calc ^ 4.7volt zenner diode | | = capacitor (couple microfarad) | | gnd -----------------------------------------to calc this will basically guarentee the voltage wont exceed 4.7 volts - which should be OK for the HP. Better yet it will smooth most noise. The capacitor value isn't critial. As long as it's greater then 2 microfarad it should be fine. Hope this helps, Al Borowski www.alborowski.tk > I was forced to by a quality 5V 3A power supply (~$50US). No one to > blame, but me. I was lazy and did only surface test on the malfunctioned > device at work for which I hoped the new power supply will be the > solution. Hmm. The device turned up to be broken also :( Anyway, I am > trying to find the use for the power supply. Should I use some means to > lower the output voltage to 4.5V, if I want to use the unit for powring > of the HP48G? Will the 5V power hurt the HP48? Yes, it is a big > overkill, but I do not have any other ideas for usage of the unit... ==== Brand new Alkaline batteries have about 1.6 volts, I have seen higher. Multiply that x3 you get 4.8V, I seriusly doubt 0.2 V more will do any harm. But if you want to play it safe, just get a diode and put it in series with the output of the power supply, that will lower the voltage by about .5-.7 volts. > I was forced to by a quality 5V 3A power supply (~$50US). No one to > blame, but me. I was lazy and did only surface test on the malfunctioned > device at work for which I hoped the new power supply will be the > solution. Hmm. The device turned up to be broken also :( Anyway, I am > trying to find the use for the power supply. Should I use some means to > lower the output voltage to 4.5V, if I want to use the unit for powring > of the HP48G? Will the 5V power hurt the HP48? Yes, it is a big > overkill, but I do not have any other ideas for usage of the unit... ==== I just found a cellular phone charger that outputs 4.5V, 0.4A. I was thinking about using it for the HP 48GX. I just do not know enough about electronics... All I know is that three AAA batteries output 4.5V, ?A. I > I was forced to by a quality 5V 3A power supply (~$50US). No one to > blame, but me. I was lazy and did only surface test on the malfunctioned > device at work for which I hoped the new power supply will be the > solution. Hmm. The device turned up to be broken also :( Anyway, I am > trying to find the use for the power supply. Should I use some means to > lower the output voltage to 4.5V, if I want to use the unit for powring > of the HP48G? Will the 5V power hurt the HP48? Yes, it is a big > overkill, but I do not have any other ideas for usage of the unit... Robert Tiismus > ==== The Alkalines put out at most 4.5V when they are fresh and not under load or very cold. When they give they juice to the HP 48 they gradually go lower on their voltage, that's how the calculator knows to lit the annuciator telling that the batteries are low. The internal resistance of the alkalines differ from other power sources so you are on your own risking the very life of your dear friend... > I just found a cellular phone charger that outputs 4.5V, 0.4A. I was > thinking about using it for the HP 48GX. I just do not know enough about > electronics... All I know is that three AAA batteries output 4.5V, ?A. I was forced to by a quality 5V 3A power supply (~$50US). No one to > blame, but me. I was lazy and did only surface test on the malfunctioned > device at work for which I hoped the new power supply will be the > solution. Hmm. The device turned up to be broken also :( Anyway, I am > trying to find the use for the power supply. Should I use some means to > lower the output voltage to 4.5V, if I want to use the unit for powring > of the HP48G? Will the 5V power hurt the HP48? Yes, it is a big > overkill, but I do not have any other ideas for usage of the unit... Robert Tiismus ==== How can I get Debug4x? > I have been working on the HP Connectivity Kit for the HP49 and wish to expand it for the HP48 (as I did with Debug4x). I am > building a XModem server to work with it on the 48. Cyrille sent me the Delphi source code that he had, but he believes he had previously sent a more recent version to someone (he > forgot who). If you have the code would you please contact me. You apparently have the only copy of the most recent source code! ==== I'm looking for a user manual for HP20s. ==== I have the HP-48G Graphing calculator, and im a new user. How can I save equations in the Solve equation part. Whenever I open the Solve equation old equatuin is in the EQ part. When I try to edit it, new equation replaces the old one, and the old one is lost. I heard that when I press solve, the new ==== You should give a name to your equations, that is, STOre them into a variable, then you can STOre that name in EQ. EQ can also hold a { list of names } I have the HP-48G Graphing calculator, and im a new user. How can I save > equations in the Solve equation part. Whenever I open the Solve equation ==== http://groups.google.com/groups?&selm=111740004%40hpcvra.cv.hp.com Yes, I read them when they were new in the early nineties. Unfortunately I never had the chance to meet him. However, I was lucky to meet Dennis York in 1999 when I was in Corvallis, helping Firmware Systems on a part of their software for the Portable Datalab. I had my Omnibook 800CT taken with me, but there were problems to get my nic to work under NT. I don't remember if it was Saturday or Sunday, but either Vern Lindsay or Ning Zhang asked Dennis if he could help. Since it was weekend, he came in his tennis dress. Others may have Nike or some other logos on their clothes, Dennis had HP logos on them:-) 'Mr Omnibook' lend me his nic for one or two days, until I got one from Firmware. That's one of my extremely shortened stories related to HP Raymond ==== Hola amigos HPeros mis preguntas son si estan bien escritos los siguientes codigos en lenguaje Ensamblador (ML), todos los e probado y funcionan pero no se si estare haciendo bien. Los codigos son para ensamblarlos con MASD en la HP49G. Los dos siguientes programas hacen lo mismo: (1 2 3 => 1 3) CODE A=DAT1 A D1+10 D=D+1 A D1-5 DAT1=A A LOOP ENDCODE @ CODE A=DAT1 A D1+5 DAT1=A A LOOP ENDCODE @ Mi pregunta es si ambos estan bien escritos y en el primer programa (D=D+1 A) Ke hace exactamente esto por lo que e visto esto libera cinco nibbles de la pila si no me equivoco, pero exactamente en que casos se deberia usar y si fuera posible un ejmplo. El siguiente programa hace (1 2 3 => 1 3 3) CODE C=DAT1 A D1+5 DAT1=C A D1+5 DAT1=C A LOOP ENDCODE @ Esta bien escrito? Los dos siguientes duplican un objeto (1 => 1 1) CODE D=D-1 A A=DAT1 A D1-5 DAT1=A A LOOP ENDCODE @ CODE A=DAT1 A D1-5 DAT1=A A LOOP ENDCODE @ En el primer ejemplo ke hace (D=D-1 A) y en ke casos se debe usary si fuera posible un ejemplo y si estan bien escritos los dos. Y por ultimo como se usa el comando ( RclAssembly ) Si alguien me podria ayudar o guiarme le agradeceria mucho, ya se como dibujar algo en la pantalla o como ingresar texto pero por ahora quiero dedicarme bien al manejo de la pila y al uso del teclado, el uso del teclado lo se pero mas o menos. ==== Los programas no s.8e si est.87n o no bien escritos, pero el texto deja mucho que desear tanto en ortograf.92a como en sintaxis y puntuaci.97n. Perodona la bronca, pero no me parece la mejor manera de pasear nuestro idioma por el mundo. Ra.9cl ==== Cierto es... Toby > Los programas no s.8e si est.87n o no bien escritos, pero el texto deja mucho > que desear tanto en ortograf.92a como en sintaxis y puntuaci.97n. Perodona la > bronca, pero no me parece la mejor manera de pasear nuestro idioma por el > mundo. Ra.9cl ==== anyone know what is key for log of base 2 in 48g, or 32sii ?? thx anthony ==== > anyone know what is key for log of base 2 in 48g, or 32sii ?? thx > anthony I don't feel so bad now -- the TI-89/92+ discussion group is not the only one with such posts ;-) Anyway, to answer the question, log_base_b(a) = ln(a)/ln(b). Of course it should be easy to create a user-defined function for log_base_2(x). neighbors (I live in Champaign as well). -- ==== > anyone know what is key for log of base 2 in 48g, or 32sii ?? Base on y register Expression on x register << LOG SWAP LOG / EVAL > LOGG ENTER STO Press VAR. There you go! ==== > anyone know what is key for log of base 2 in 48g, or 32sii ?? > Base on y register > Expression on x register << LOG SWAP LOG / EVAL > LOGG ENTER STO I mean << LN SWAP LN / EVAL > LOGG ENTER STO Soryy! Press VAR. There you go! ==== > anyone know what is key for log of base 2 in 48g, or 32sii ?? > I think the key is... learning Maths ;-) ln N log N= -------- 2 ln 2 ==== Emu28, a new emulator emulating the HP18C and HP28C hardware. Emu28 for Win32 base on the famous Emu48 emulator and is published under the GPL. You can find it on my homepage at http://privat.swol.de/ChristophGiesselink/. This emulator can't emulate the HP28S, because the HP28S use a different hardware. Like all my distributed emulators, Emu28 comes _without_ ROM images. I have no license to distribute them. Look at the Emu28 page about the abilities to get an image form a real HP28C please. I won't answer any questions about sending a ROM image. Please remember, I made this emulator in my free time and I don't like giving support. I'm glad when someone of you find a better way to make a ROM image upload. If you find a better way, please send me the details that I can publish them for others. Christoph Giesselink ==== > Now I look *my* calculator and I feel it works like I want > The suggestion I'd like put on the table, is, what about customizable > menus for doing the integration of installed programs easier? > Maybe you could post what you did. I am looking for doing some serious remodeling of my 49 & could use some ideas. ==== Maybe you could post what you did. I am looking for doing some > serious remodeling of my 49 & could use some ideas. I don't know if posting will help... For getting these menus work, you will need have instaled other libraries, like Erable, Calendar, etc, etc, etc... This is the MTH softkeys menu. :: ' :: NoExitAction { { GROB 3A 8000051000E30000FFFFF17B74E1BAB7D13AB4E1BAB5D1B264E1FFFFF1 :: TakeOver { xXQ2 xXNUM xADDT xSUBT xMULT xDIV1 xDIV2 xIDIV2 xPOW xSQRT xneg xinv { ! xFACTORIAL } xEXPAND xRSIM xASIM xFACTOR { COLLECT xFCTR } xVXORDER { SUBST xEXEC } xSOLVE } DoMenuKey ; } { GROB 3A 8000051000E30000FFFFF1BBD8C139ADA1BA8DC1BBADA1BBADA1FFFFF1 :: TakeOver ROMPTR 4CA 9 ; } { GROB 3A 8000051000E30000FFFFF176C6F17575F17644F17575F17545C1FFFFF1 :: TakeOver { x% x%T x%CH xFACT xABS xRND xSIGN xTRNC xFP xFLOOR xIP xCEIL xMOD xMANT xXPON xDôR xRôD } DoMenuKey ; } { GROB 3A 8000051000E30000FFFFF17AB8E1B39AE1BBA8E1BBBEE17ABE81FFFFF1 :: TakeOver { { GROB 3A 8000051000E30000FFFFF1F3B3F1FD5DF1FD1BF1FD57F1F359F1FFFFF1 :: TakeOver { xre xim xabs xarg xneg xconj { } { } { } { } { } { GROB 3A 8000051000E30000FFFFF17AB8E1B39AE1BBA8E1BBBEE17ABE81FFFFF1 :: MenuMaker ROMPTR A9 0 DoMenuKey ; } } DoMenuKey ; } xRE xIM xCôR xRôC xABS xARG xSIGN xNEG xCONJ ROMPTR A8 5 ROMPTR A8 6 } DoMenuKey ; } { GROB 3A 8000051000E30000FFFFF17464E17555D17465E17755D17754E1FFFFF1 :: TakeOver { ID UTPNZ xUTZO xXôZ xZôX xUTPN xNDIST xCOMB { COMBR :: x<< xDUP xROT x+ %1 x- xSWAP xCOMB x> ; } xPERM xFACT xRAND xRDZ } DoMenuKey ; } { GROB 3A 8000051000E30000FFFFF1D13A91D5DBE1D55AE1D5DAE1113A91FFFFF1 :: TakeOver { x== x< x? x? xS xAND xOR xXOR xNOT xSAME xMIN xMAX xLININ } DoMenuKey ; } { GROB 3A 8000051000E30000FFFFF15131915DDB5151DB91BDDB51B13B51FFFFF1 :: TakeOver { { GROB 3A 8000051000E30000FFFFF1F3B3F1FD5DF1FD1BF1FD57F1F359F1FFFFF1 :: TakeOver { xabs xDOTP xCROSSP { } { } { GROB 3A 8000051000E30000FFFFF15131915DDB5151DB91BDDB51B13B51FFFFF1 :: MenuMaker ROMPTR A9 0 DoMenuKey ; } } DoMenuKey ; } xABS xDOT xCROSS xAôV xVô xôV2 xôV3 ROMPTR A8 5 ROMPTR A8 6 ROMPTR A8 7 } DoMenuKey ; } { GROB 3A 8000051000E30000FFFFF1F551F1F555F1F1B1F1F5BDF1F5BDF1FFFFF1 :: TakeOver x<< % 12 xMENU x> ; } { GROB 3A 8000051000E30000FFFFF17EE4C17557F176C6C175D5F17656C1FFFFF1 :: TakeOver x<< % 15 xMENU x> ; } { GROB 3A 8000051000E30000FFFFF1F111F1FDDBF1F11BF1FDDBF1FDDBF1FFFFF1 :: TakeOver x<< % 19 xMENU x> ; } { GROB 3A 8000051000E30000FFFFF172ADC1BB25F1BB2CE1BBACD172A5E1FFFFF1 :: TakeOver x<< % 21 xMENU x> ; } { } } ; DoMenuKey ; @ ***************************** And here is the RS TIME (in spanish): .82 HORA Y FECHA {{ 0.Herramientas .82 94,02 MENU é } { 1.Calendario CALENDAR } { 2.Alarmas .82 # 737646d LIBEVAL é } { 3.Reconocer alarma ACK } { 4.Ajustar hora/fecha .82 # 737627d LIBEVAL é } { 5.Tiempo AutoOFF .82 TOFF 8192 / BôR AutoOFF en SWAP + s + Pulsa [ENTER] o nuevo tiempo (s) INPUT2 DUP SIZE 34 S IF THEN DUP SIZE 34 SWAP SUB OBJô 8192 * RôB PATH HOME SWAP 'TOFF' STO EVAL ELSE DROP END é }} 2 CHOOSE2 IF THEN EVAL END é ==== for accesing many old 48GX commands. Somehow my EMU 48 v 1.31 script corrupted... it crashes everytime after pressing the APSS (G) key... and couldn't find out which was the conflict yet. I should begin a whole new one, but I still have many libs installed and few time to deal with that technical problem. I hardly program RPL basics. Not a clue on SysRPL or ML. -- > ...or for new 49's ROM versions: When we install new libraries in our 48/49, we get a bigger and bigger > LIBRARY menu where we must look for the RAM commands in spite of they were > statistical applications or a periodic table... The APPS menu of the 49 is > an improvement, but not enough, I think. > Along last two years I've re-programmed almost all original menus of my 48. > (The new menus are grouped in two libraries of ~11000 and ~7500 bytes) Where > do I look for a Keyman's command as RclK, or for an Erable's command like > KEYEVAL, or for a ROM command like STOKEYS?... they are all together > (and in the desired order) in the menu MODES/KEYS, where they *must* be. > In this way I've integrated all the stuff of my calc, in an only interface, > and where I find every command where keyboard says. > This is not an easy task for any user: I have had learn some basics about > SysRPL for getting quick menus that also work in edit mode and other > details - and I am grateful for the help I received from Raymond H and > Now I look *my* calculator and I feel it works like I want > The suggestion I'd like put on the table, is, what about customizable > menus for doing the integration of installed programs easier? > ==== My college bookstore had these HP49s on sale for $60. A friend who knows HPs gave me a crash course with it, but I find it hard to use, and I can't get it to do certain things. What's really bugging me right now is I can't get it to integrate {sin or cos} ln(x). It keeps giving me this X(t) answer. Am I doing something wrong, or can't it do this problem? The X(t) answer means that it can't do it. Make sure you're using the correct syntax, though (e.g. you aren't trying to integrate sin(x)*ln(x), which no calculator can do). I don't have a HP49G, though, so I can't actually try it out. ==== YouÇre not doing anything wrong, but I think that you have to make a substitution of x(t) - but you can try to read the Why does the HP 49 sub in Xt into integrations-topic and Integration Cos (ln x)-topic and see if you understand it... But IÇm also very new to the HP 49, so I hope that some kindly person, will answer your question, once again......... Or at least refer to some good litterature about integrating on the HP.... ==== expression #1d44. > what a coincidence, I'm also looking for replacement for the unsupported > #1D44. On the 49G, there is a similar entry but, unfortunately, it is > unsupported (also) and unstable (snip). CODE > GOSBVL =SAVPTR > GOSBVL =DisableIntr > GOSBVL #1D44 > GOSBVL =AllowIntr > GOVLNG =GETPTRLOOP > ENDCODE ==== :: AtUserStack CODE GOSBVL =SAVPTR GOSBVL =DisableIntr GOSBVL 01B1C A=0 W GOSBVL =clkspd C=B A CSRB A C=C+A A A=0 W A=C A GOSBVL =DispOn GOSBVL =AllowIntr ASL W P= 5 GOVLNG =PUSHhxsLoop ENDCODE HXS>% ; @ NB: The 48 address #54371 (i.e. hex>%) is at :1:62D1D in the 49. HPCC #1046 ==== > Flash reserved for the operating system. Basically I'm thinking of a > way to store a random number there to replace the nonexistant internal > serial number found in the Chinese made calcs. > But your idea has possibilities too, thanks Even more complicated would be to store the number in flash and then purge it, it will still be there but you will need a special tool to get it. The drawback of this is that it may be deleted when you write something to flash again. -- ir. P.F.Geelhoed Delft University of Technology Laboratory for Aero & Hydrodynamics Leeghwaterstraat 21, 2628 CA Delft, The Netherlands +31-15-2786656 / +31-15-2782947 (fax) p.f.geelhoed@wbmt.tudelft.nl ==== In the course of building an XModem server for the HP48, I decoded the ROM routine STR2OBJ from the HP49 (I attach my version). STR2OBJ gets a HPHP48-R...... string. If the string part is longer than $FF, it is not converted. Why does STR2OBJ quit if the length is bigger? In order to make STR2OBJ function for XModem, I had to make a change to line 32 of the attached. The line I changed is marked in the file but it looks like this: C=0 A C=C-1 B % <======= if I change to C=C-1 A everything works!!!!! This changes the test so lengths < $FFFFF all work! Here is the code: * string: HPHP48-R plus object on the stack * try to make a proper object and return on stack NULLNAME STR2OBJ ( disassembled from 2F061, FPTR 1 208=1:4A567 ) :: ?IsHPHP NOT?SEMI DUPLEN$ VERSTRING LEN$ SWAPOVER#- #<3 caseDROP ( pruned HPHP48, leaves -R so <3 means nothing left ) CODEM % disassembled from %1:4A594 GOSBVL POP# % has length of incoming verstring on stack A=A+A A % make nibble count R1=A W GOSBVL SAVPTR A=DAT1 A % get the object pointer R2=A W D1=A D1+5 C=DAT1 A % total incoming length AD1EX C=C+A A R0=C W % R0 points just after object C=R1 W A=A+C A % add verstring length (nibbles) D0=A D0+5 A=DAT0 A % point at prologue in string, get value D1=A A=DAT1 A % Read signature of prologue routine LC(5) =PRLG ?C=A A -> .tag2 % go if a prologue LC 80000 ?C<=A A -> .tag1 % go if 1st nibbles of prologue routine point to RAM D1=A A=DAT1 A % else retrieve what that points at LC(5) =PRLG ?C=A A -> .tag2 % go if that is a prologue *.tag1 GOVLNG GPPushFLoop % GETPTR, Push FALSE, Loop *.tag2 GOSBVL SAFESKIPOB % found a prologue GOC .tag1 CD0EX % A->just after the prologue A=R0 W % just after the containing string A=A-C A R3=A W % the total length of ... part C=0 A C=C-1 B % why B? cuts off > $FF strings ********** ?C .tag1 % go if item length > 000FF C=R1 W % this code prunes the length to proper size A=A+C A % ... + verstring length A+10 A % plus string prologue + string length count C=R0 W R0=A W A=R2 W D1=A C=C-A A B=C A C=R1 W A=A+C A D0=A D0+10 C=R0 W B=B-C A C=B A GOSBVL MOVEDOWN C=R3 W AD0EX A=A+C A C=R0 W GOSBVL MOVERSD A=B A D0=A A=R0 W C=DAT0 A C=C-A A DAT0=C A GOVLNG GPPushTLoop RTNSXM ENDCODE NOT?SEMI ?ROMPTR> ; ==== Given: Let a, b, c be positive integers and (a-b)^2+(b-c)^2+(c-a)^2 = 218 Problem: Find a, b, c under these constrains so that (a+b)^2+(b+c)^2+(c+a)^2 ==== > Given: Let a, b, c be positive integers and (a-b)^2+(b-c)^2+(c-a)^2 = 218 Problem: Find a, b, c under these constrains so that (a+b)^2+(b+c)^2+(c+a)^2 is minimized. By the obvious symmetry, we may assume a <= b <= c, so we may set a = b-u and c = b+v where u and v are nonnegative. With a little algebra, the constraint becomes u^2 + u*v + v^2 = 109, where 0 <= u and 0 <= v. With a little trial and error, one may show that u = 5 and v = 7, or u = 7 and v = 5, are the only integral solutions. ==== Have you tried with SOLVE (the hard way) or PLOT it and TRACE it (the easy way). ==== > Given: Let a, b, c be positive integers and (a-b)^2+(b-c)^2+(c-a)^2 = 218 Problem: Find a, b, c under these constrains so that (a+b)^2+(b+c)^2+(c+a)^2 is minimized. Yes it is possible! ;) ==== I should have said in earlier post: XModem Connectivity Kit I have been working on the HP Connectivity Kit for the HP49 and wish to expand it for the HP48 (as I did with Debug4x). I am building a XModem server to work with it on the 48. Cyrille sent me the Delphi source code that he had, but he believes he had previously sent a more recent version to someone (he forgot who). If you have the code would you please contact me. You apparently have the only copy of the most recent source code ==== I wouln't recommend running the HP from 5 volts. It would be very easy to drop it to aroung 4.5volts anyway. Thne simplist method would be this: 5v+ --->|----To Calc gnd --------- with the arrow being a standard rectifier diode, which shuold drop around .6 volts. There are a number of issues with this however. The supply ir rated for 5v output @ 3A. The HP might draw 1/20th of that. Depending on the quality of the supply, the output may be higher then 5v when powering the HP and also electrically noisy - do you have a CRO to check? Your power supply sounds expensive which leads me to think it's switchmode. If it is I wouldn't bother tring to use it for a HP. Switchers' *hate* low output currents. Just buy a $5 wall wart. It should do the trick. If your power supply is linear read on. All my circuit does is drop the output by .6 volts (roughly). it doesn't clamp the output. I'd recommend doing this: Current limiting resistor (~15 ohms) 5v+ ---~~~~--------------------------------To Calc ^ 4.7volt zenner diode | | = capacitor (couple microfarad) | | gnd -----------------------------------------to calc this will basically guarentee the voltage wont exceed 4.7 volts - which should be OK for the HP. Better yet it will smooth most noise. The capacitor value isn't critial. As long as it's greater then 2 microfarad it should be fine. Hope this helps, Al Borowski www.alborowski.tk > I was forced to by a quality 5V 3A power supply (~$50US). No one to > blame, but me. I was lazy and did only surface test on the malfunctioned > device at work for which I hoped the new power supply will be the > solution. Hmm. The device turned up to be broken also :( Anyway, I am > trying to find the use for the power supply. Should I use some means to > lower the output voltage to 4.5V, if I want to use the unit for powring > of the HP48G? Will the 5V power hurt the HP48? Yes, it is a big > overkill, but I do not have any other ideas for usage of the unit... ==== Running the Hp48sx, 48gx & 49g on up to 6V do not provide any problems, however I would not recommend it. I accidently discovered this when a friend of mine build a unregulated power supply. Using 2200uF (Probably a overkill, 1000uF is even more than enough)filter capacitors proved to get voltage under control and a transformer rated to supply 5.5V on the secondary terminals, and a expected voltage drop of 1.2V (0.6V *2) across the rectifier bridge. The transformer was however rated 220/5.5V and the local mains supply was delivering 230V. Furthermore did he use a (more expensive) germanium rectifier bridge with a much lower voltage drop than the usual silicone diode bridge. We mesured a voltage of 6.2V on the output of his supply. (After he already used it some time) Using unregulated power supplies for these expensive low voltage devices are foolish though. Since the LM317 regulater ic's are cheap and easy to design power supplies for 4.5V using the data sheets. In short, whenever you do use a power supply, make sure it is a regulated supply to ensure stable output during mains variations. Given the cost of these smart calculators its surely sensible to go and buy/build a proper power supply device for a fraction of the cost of your HP :) ==== Brand new Alkaline batteries have about 1.6 volts, I have seen higher. > overkill, but I do not have any other ideas for usage of the unit... Robert Tiismus > ==== The Alkalines put out at most 4.5V when they are fresh and not under load or very cold. When they give they juice to the HP 48 they gradually go lower on their voltage, that's how the calculator knows to lit the annuciator telling that the batteries are low. The internal resistance of the alkalines differ from other power sources so you are on your own risking the very life of your dear friend... > I just found a cellular phone charger that outputs 4.5V, 0.4A. I was > thinking about using it for the HP 48GX. I just do not know enough about > electronics... All I know is that three AAA batteries output 4.5V, ?A. 96 ==== How can I get Debug4x? > I have been working on the HP Connectivity Kit for the HP49 and wish to expand it for the HP48 (as I did with Debug4x). I am > building a XModem server to work with it on the 48. Cyrille sent me the Delphi source code that he had, but he believes he had previously sent a more recent version to someone (he > forgot who). If you have the code would you please contact me. You apparently have the only copy of the most recent source code! ==== ==== I have the HP-48G Graphing calculator, and im a new user. How can I save equations in the Solve equation part. Whenever I open the Solve equation old eqatuin is in the EQ part. When I try to edit it, new equation replaces the old one, and the old one is lost. I heard that when I press solve, the new Vedran Mikac, vedran.mikac@proas.hr ==== You should give a name to your equations, that is, STOre them into a variable, then you can STOre that name in EQ. EQ can also hold a { list of names } I have the HP-48G Graphing calculator, and im a new user. How can I save > equations in the Solve equation part. Whenever I open the Solve equation old > eqatuin is in the EQ part. When I try to edit it, new equation replaces the > old one, and the old one is lost. I heard that when I press solve, the new ==== Is he talking of Bernie Musch? Yes, he is. These were Dennis York's fond words for him: Yes, I read them when they were new in the early nineties. Unfortunately I never had the chance to meet him. However, I was lucky to meet Dennis York in 1999 when I was in Corvallis, helping Firmware Systems on a part of their software for the Portable Datalab. I had my Omnibook 800CT taken with me, but there were problems to get my nic to work under NT. I don't remember if it was Saturday or Sunday, but either Vern Lindsay or Ning Zhang asked Dennis if he could help. Since it was weekend, he came in his tennis dress. Others may have Nike or some other logos on their clothes, Dennis had HP logos on them:-) 'Mr Omnibook' lend me his nic for one or two days, until I got one from Firmware. That's one of my extremely shortened stories related to HP Raymond ==== Hola amigos HPeros mis preguntas son si estan bien escritos los siguientes codigos en lenguaje Ensamblador (ML), todos los e probado y funcionan pero no se si estare haciendo bien. Los codigos son para ensamblarlos con MASD en la HP49G. Los dos siguientes programas hacen lo mismo: (1 2 3 => 1 3) CODE A=DAT1 A D1+10 D=D+1 A D1-5 DAT1=A A LOOP ENDCODE @ CODE A=DAT1 A D1+5 DAT1=A A LOOP ENDCODE @ Mi pregunta es si ambos estan bien escritos y en el primer programa (D=D+1 A) Ke hace exactamente esto por lo que e visto esto libera cinco nibbles de la pila si no me equivoco, pero exactamente en que casos se deberia usar y si fuera posible un ejmplo. El siguiente programa hace (1 2 3 => 1 3 3) CODE C=DAT1 A D1+5 DAT1=C A D1+5 DAT1=C A LOOP ENDCODE @ Esta bien escrito? Los dos siguientes duplican un objeto (1 => 1 1) CODE D=D-1 A A=DAT1 A D1-5 DAT1=A A LOOP ENDCODE @ CODE A=DAT1 A D1-5 DAT1=A A LOOP ENDCODE @ En el primer ejemplo ke hace (D=D-1 A) y en ke casos se debe usary si fuera posible un ejemplo y si estan bien escritos los dos. Y por ultimo como se usa el comando ( RclAssembly ) Si alguien me podria ayudar o guiarme le agradeceria mucho, ya se como dibujar algo en la pantalla o como ingresar texto pero por ahora quiero dedicarme bien al manejo de la pila y al uso del teclado, el uso del teclado lo se pero mas o menos. ==== Los programas no s.8e si est.87n o no bien escritos, pero el texto deja mucho que desear tanto en ortograf.92a como en sintaxis y puntuaci.97n. Perodona la bronca, pero no me parece la mejor manera de pasear nuestro idioma por el mundo. Ra.9cl ==== Cierto es... Toby > Los programas no s.8e si est.87n o no bien escritos, pero el texto deja mucho > que desear tanto en ortograf.92a como en sintaxis y puntuaci.97n. Perodona la > bronca, pero no me parece la mejor manera de pasear nuestro idioma por el > mundo. Ra.9cl ==== anyone know what is key for log of base 2 in 48g, or 32sii ?? > anyone know what is key for log of base 2 in 48g, or 32sii ?? LN 2 LN / -Joe- Joe's solutions are very concise and elegant as always. That'll do for the particular base 2 log he asked for. What about this general solution inspired by Joe's? LN XROOT LN (Number and base assumed to be on level Y and X, respectively). Gerson. ==== > LN XROOT LN (Number and base assumed to be on level Y and X, respectively). Wow, very cool! I've never seen that before! Much nicer then LN SWAP LN SWAP /. And LN XROOT LN is even more accurate too, at least for these powers of 2, log base 2: 16, 19, 21, 24, 26, 29, 31, 34, 36, 39... and less accurate for no powers of 2 below 40. It doesn't fare so well on powers of 3, log base 3. How would one go about determining which rutine is more accurate in general? -jkh- ==== > LN XROOT LN > (Number and base assumed to be on level Y and X, respectively). Wow, very cool! I've never seen that before! Much nicer then LN SWAP LN SWAP /. And LN XROOT LN is even more accurate too, at least for these powers of 2, >log base 2: 16, 19, 21, 24, 26, 29, 31, 34, 36, 39... and less accurate for >no powers of 2 below 40. It doesn't fare so well on powers of 3, log base >3. How would one go about determining which rutine is more accurate in >general? > The logarithm of N to base b may be calculated as (lnN)/(lnb) which is equivalent to ln [N^(1/lnb)] (applying one of the Laws of Logarithms) or in the HP48 notation: 'LN(XROOT(LN(b),N))' The drawback is a increase in running time - it would take about twice as much time to run - because the XROOT operation requires at least one LN and one EXP calculation. As of the accuracy, I think is quite acceptable though I have not thought about it. Now, honestly, I discovered this by chance, playing with the calculator. I was trying to obtain a shorter program when I tried these three strokes. ==== > LN XROOT LN > (Number and base assumed to be on level Y and X, respectively). Wow, very cool! I've never seen that before! Much nicer then LN SWAP LN SWAP /. And LN XROOT LN is even more accurate too, at least for these powers of 2, >log base 2: 16, 19, 21, 24, 26, 29, 31, 34, 36, 39... and less accurate for >no powers of 2 below 40. It doesn't fare so well on powers of 3, log base >3. How would one go about determining which rutine is more accurate in >general? > The logarithm of N to base b may be calculated as (lnN)/(lnb) which is equivalent to ln [N^(1/lnb)] (applying one of the Laws of Logarithms) or in the HP48 notation: 'LN(XROOT(LN(b),N))' The drawback is a decrease in execution time (some scores of microseconds) because the XROOT operation requires at least one LN and one EXP calculation. As of the accuracy, I think is quite acceptable though I have not thought about. Now, honestly, I discovered this by chance, playing with the calculator. I was trying to obtain a shorter program when I tried these three strokes. Gerson. ==== > anyone know what is key for log of base 2 in 48g, or 32sii ?? thx > anthony I don't feel so bad now -- the TI-89/92+ discussion group is not the only one with such posts ;-) Anyway, to answer the question, log_base_b(a) = ln(a)/ln(b). Of course it should be easy to create a user-defined function for log_base_2(x). neighbors (I live in Champaign as well). -- ==== of course, there is not a built command to do that, but the power of programming does that: RPN program: << LN SWAP LN SWAP RATIO > ALG program: << -> L B 'LN(L)/LN(B)' > both: NumberTarget NumberBase --> NumberResult or SymbolicExpression they are controlled by flags -2 and -3, I guess I hopr this helps :) ==== > anyone know what is key for log of base 2 in 48g, or 32sii ?? > Base on y register Expression on x register << LOG SWAP LOG / EVAL > LOGG ENTER STO Press VAR. There you go! Aaron ==== > anyone know what is key for log of base 2 in 48g, or 32sii ?? thx > anthony Base on y register > Expression on x register << LOG SWAP LOG / EVAL > LOGG ENTER STO I mean << LN SWAP LN / EVAL > LOGG ENTER STO Soryy! Press VAR. There you go! ==== > I mean > << LN SWAP LN / EVAL > LOGG ENTER STO > Soryy! Don't be *soryy*, it's equivalent: LOG(x) = ln(x)/ln(10) so LOG(x)/LOG(y)=(ln(x)/ln(10))/(ln(y)/ln(10))=ln(n)/ln(y) ==== Aaron Toponce escribi.97 en el mensaje > << LOG SWAP LOG / EVAL > LOGG ENTER STO I mean > << LN SWAP LN / EVAL > LOGG ENTER STO > Soryy! Both programs work ==== > anyone know what is key for log of base 2 in 48g, or 32sii ?? > I think the key is... learning Maths ;-) ln N log N= -------- 2 ln 2 ==== Emu28, a new emulator emulating the HP18C and HP28C hardware. Emu28 for Win32 base on the famous Emu48 emulator and is published under the GPL. You can find it on my homepage at http://privat.swol.de/ChristophGiesselink/. This emulator can't emulate the HP28S, because the HP28S use a different hardware. Like all my distributed emulators, Emu28 comes _without_ ROM images. I have no license to distribute them. Look at the Emu28 page about the abilities to get an image form a real HP28C please. I won't answer any questions about sending a ROM image. Please remember, I made this emulator in my free time and I don't like giving support. I'm glad when someone of you find a better way to make a ROM image upload. If you find a better way, please send me the details that I can publish them for others. Christoph Giesselink ==== > Now I look *my* calculator and I feel it works like I want > The suggestion I'd like put on the table, is, what about customizable > menus for doing the integration of installed programs easier? > Maybe you could post what you did. I am looking for doing some serious remodeling of my 49 & could use some ideas. Aaron -This message was posted w/ my HP Jornada 568 using an Ambicom wireless network card. Am I a geek or what?!?! :) ==== Maybe you could post what you did. I am looking for doing some > serious remodeling of my 49 & could use some ideas. I don't know if posting will help... For getting these menus work, you will need have instaled other libraries, like Erable, Calendar, etc, etc, etc... This is the MTH softkeys menu. :: ' :: NoExitAction { { GROB 3A 8000051000E30000FFFFF17B74E1BAB7D13AB4E1BAB5D1B264E1FFFFF1 :: TakeOver { xXQ2 xXNUM xADDT xSUBT xMULT xDIV1 xDIV2 xIDIV2 xPOW xSQRT xneg xinv { ! xFACTORIAL } xEXPAND xRSIM xASIM xFACTOR { COLLECT xFCTR } xVXORDER { SUBST xEXEC } xSOLVE } DoMenuKey ; } { GROB 3A 8000051000E30000FFFFF1BBD8C139ADA1BA8DC1BBADA1BBADA1FFFFF1 :: TakeOver ROMPTR 4CA 9 ; } { GROB 3A 8000051000E30000FFFFF176C6F17575F17644F17575F17545C1FFFFF1 :: TakeOver { x% x%T x%CH xFACT xABS xRND xSIGN xTRNC xFP xFLOOR xIP xCEIL xMOD xMANT xXPON xDôR xRôD } DoMenuKey ; } { GROB 3A 8000051000E30000FFFFF17AB8E1B39AE1BBA8E1BBBEE17ABE81FFFFF1 :: TakeOver { { GROB 3A 8000051000E30000FFFFF1F3B3F1FD5DF1FD1BF1FD57F1F359F1FFFFF1 :: TakeOver { xre xim xabs xarg xneg xconj { } { } { } { } { } { GROB 3A 8000051000E30000FFFFF17AB8E1B39AE1BBA8E1BBBEE17ABE81FFFFF1 :: MenuMaker ROMPTR A9 0 DoMenuKey ; } } DoMenuKey ; } xRE xIM xCôR xRôC xABS xARG xSIGN xNEG xCONJ ROMPTR A8 5 ROMPTR A8 6 } DoMenuKey ; } { GROB 3A 8000051000E30000FFFFF17464E17555D17465E17755D17754E1FFFFF1 :: TakeOver { ID UTPNZ xUTZO xXôZ xZôX xUTPN xNDIST xCOMB { COMBR :: x<< xDUP xROT x+ %1 x- xSWAP xCOMB x> ; } xPERM xFACT xRAND xRDZ } DoMenuKey ; } { GROB 3A 8000051000E30000FFFFF1D13A91D5DBE1D55AE1D5DAE1113A91FFFFF1 :: TakeOver { x== x< x? x? xS xAND xOR xXOR xNOT xSAME xMIN xMAX xLININ } DoMenuKey ; } { GROB 3A 8000051000E30000FFFFF15131915DDB5151DB91BDDB51B13B51FFFFF1 :: TakeOver { { GROB 3A 8000051000E30000FFFFF1F3B3F1FD5DF1FD1BF1FD57F1F359F1FFFFF1 :: TakeOver { xabs xDOTP xCROSSP { } { } { GROB 3A 8000051000E30000FFFFF15131915DDB5151DB91BDDB51B13B51FFFFF1 :: MenuMaker ROMPTR A9 0 DoMenuKey ; } } DoMenuKey ; } xABS xDOT xCROSS xAôV xVô xôV2 xôV3 ROMPTR A8 5 ROMPTR A8 6 ROMPTR A8 7 } DoMenuKey ; } { GROB 3A 8000051000E30000FFFFF1F551F1F555F1F1B1F1F5BDF1F5BDF1FFFFF1 :: TakeOver x<< % 12 xMENU x> ; } { GROB 3A 8000051000E30000FFFFF17EE4C17557F176C6C175D5F17656C1FFFFF1 :: TakeOver x<< % 15 xMENU x> ; } { GROB 3A 8000051000E30000FFFFF1F111F1FDDBF1F11BF1FDDBF1FDDBF1FFFFF1 :: TakeOver x<< % 19 xMENU x> ; } { GROB 3A 8000051000E30000FFFFF172ADC1BB25F1BB2CE1BBACD172A5E1FFFFF1 :: TakeOver x<< % 21 xMENU x> ; } { } } ; DoMenuKey ; @ **************************************************************************** ***************** And here is the RS TIME (in spanish): .82 HORA Y FECHA {{ 0.Herramientas .82 94,02 MENU é } { 1.Calendario CALENDAR } { 2.Alarmas .82 # 737646d LIBEVAL é } { 3.Reconocer alarma ACK } { 4.Ajustar hora/fecha .82 # 737627d LIBEVAL é } { 5.Tiempo AutoOFF .82 TOFF 8192 / BôR AutoOFF en SWAP + s + Pulsa [ENTER] o nuevo tiempo (s) INPUT2 DUP SIZE 34 S IF THEN DUP SIZE 34 SWAP SUB OBJô 8192 * RôB PATH HOME SWAP 'TOFF' STO EVAL ELSE DROP END é }} 2 CHOOSE2 IF THEN EVAL END é ==== Maybe you could post what you did. I am looking for doing some > serious remodeling of my 49 & could use some ideas. I don't know if posting will help... > For getting these menus work, you will need have instaled other libraries, > like Erable, Calendar, etc, etc, etc... > This is the MTH softkeys menu. > Aaron ==== I couldn't understand quite well the whole idea of your suggestion, although it sounds quite a good one. Anyhow, it seems you came around a pretty well customized solution. How did you manage to get there ? everything in place (just as you like it) ? I'm interested in reading more on that. Somewhile ago, I think it was who John M., who posted a set of custom menus for accesing many old 48GX commands. Somehow my EMU 48 v 1.31 script corrupted... it crashes everytime after pressing the APSS (G) key... and couldn't find out which was the conflict yet. I should begin a whole new one, but I still have many libs installed and few time to deal with that technical problem. I hardly program RPL basics. Not a clue on SysRPL or ML. -- > ...or for new 49's ROM versions: When we install new libraries in our 48/49, we get a bigger and bigger > LIBRARY menu where we must look for the RAM commands in spite of they were > statistical applications or a periodic table... The APPS menu of the 49 is > an improvement, but not enough, I think. > Along last two years I've re-programmed almost all original menus of my 48. > (The new menus are grouped in two libraries of ~11000 and ~7500 bytes) Where > do I look for a Keyman's command as RclK, or for an Erable's command like > KEYEVAL, or for a ROM command like STOKEYS?... they are all together > (and in the desired order) in the menu MODES/KEYS, where they *must* be. > In this way I've integrated all the stuff of my calc, in an only interface, > and where I find every command where keyboard says. I hope you understand > my poor english. > This is not an easy task for any user: I have had learn some basics about > SysRPL for getting quick menus that also work in edit mode and other > details - and I am grateful for the help I received from Raymond H and > Now I look *my* calculator and I feel it works like I want > The suggestion I'd like put on the table, is, what about customizable > menus for doing the integration of installed programs easier? > ==== My college bookstore had these HP49s on sale for $60. A friend who knows HPs gave me a crash course with it, but I find it hard to use, and I can't get it to do certain things. What's really bugging me right now is I can't get it to integrate {sin or cos} ln(x). It keeps giving me this X(t) answer. Am I doing something wrong, or can't it do this problem? If it can, how do I do it? thanks - Jessica ==== > and I can't get it to do certain things. What's really bugging me > right now is I can't get it to integrate {sin or cos} ln(x). It keeps > giving me this X(t) answer. Am I doing something wrong, or can't it do Do not despair! YOU can do this with your HP49G the following way (REAL EXACT MODE): SHORT WAY: SIN(LN(U)) U RISCH Ut=e^X SUBST EVAL and at this point you get U*SIN(LN(U))/2-U*COS(LN(U))/2 which is what you want (thanks to Ralf Fritzsch back from 2002-09-25 on the same topic!) The reason for the e^X term comes from the equivalence LN(U)=X -> e^(LN(U))=U=e^X and the reason for the equivalence is that your HP49G can not figure it out by itself :-) LONGER WAY: IBP with the same substitution. !Demeter! ==== Considering VX=X. It won't do it directly like 'SIN(LN(X))' INTVX, becuase of a limitation/bug in the CAS, pointed out by Bernard Parisse. The bug presents itself like this: 'EXP(-LN(X))' INTVX -> 'INT(1/Xt,Xt,X)' But if you do 'EXP(-LN(X))' '-LN(X)=LN(1/X)' SUBST EVAL INTVX -> 'LN(X)' It works. > If it can, how do I do it? 'SIN(LN(X))' LIN (to edt the expression in the EQW, and select the first term) INTVX EVAL (to selct the second term) CUT (because of a bug in the EQW evaluation scheme, you can't use SUBST directly in the EQW) ENTER PASTE ENTER '-(i*LN(X))=i*LN(X)' SUBST INTVX 'X=1/X' SUBST + Now you have the antiderivative, but probably not in the form you know. Experiment with the rewrite commands to change the expression. ==== That works, but what a pain! No wonder you never see this calculator used at my school, there are just too many problems with it. The bookstore is practically giving them away. It makes me wonder, were the makers of this calculator drunk or stoned when they put it together? I don't like this machine at all, I'm going to trade it back in on a TI. . It won't do it directly like 'SIN(LN(X))' INTVX, becuase of a limitation/bug > in the CAS, pointed out by Bernard Parisse. The bug presents itself like > this: 'EXP(-LN(X))' INTVX -> 'INT(1/Xt,Xt,X)' But if you do 'EXP(-LN(X))' '-LN(X)=LN(1/X)' SUBST EVAL INTVX -> 'LN(X)' It works. If it can, how do I do it? 'SIN(LN(X))' LIN (to edt the expression in the > EQW, and select the first term) INTVX EVAL (to selct the > second term) CUT (because of a bug in the EQW evaluation > scheme, you can't use SUBST directly in the EQW) ENTER PASTE ENTER > '-(i*LN(X))=i*LN(X)' SUBST INTVX 'X=1/X' SUBST + Now you have the antiderivative, but probably not in the form you know. > Experiment with the rewrite commands to change the expression. > ==== would it make you feel better, if I told you that all the students here in Greece are not allowed to use calculators in their school exams, not even for simple arithmetics? And when I was taking the exams for getting into university, I had to calculate such integrals by hand. But now I have the ability to judge if the result that the 49G (or TI, or Sharp, or ...) gives me is correct or not. Learn to think, don t let yourself become a user who just sits and waits for the correst result! And the 49G definately makes you think! Maybe that s why there are no decent manuals included!!! Friend! Scratch yourself and think as Giorgos Georgiou (soccer commentator in Greece) says!!! Alex Markatis Civil Engineer Greece > That works, but what a pain! No wonder you never see this calculator > used at my school, there are just too many problems with it. The > bookstore is practically giving them away. It makes me wonder, were > the makers of this calculator drunk or stoned when they put it > together? I don't like this machine at all, I'm going to trade it back > in on a TI. thanks for all your replies - Jessica ==== would it make you feel better, if I told you that all > the students here in Greece are not allowed to use > calculators in their school exams, not even for simple > arithmetics? And when I was taking the exams for getting > into university, I had to calculate such integrals > by hand. But now I have the ability to judge if the > result that the 49G (or TI, or Sharp, or ...) gives me > is correct or not. Learn to think, don t let yourself become a user > who just sits and waits for the correst result! And the 49G definately makes you think! > Maybe that s why there are no decent manuals included!!! CON: I prefer using both Urroz's books for the 49G. I have re-learned my math by using the examples on these books. PRO: I also think ;-) AND I suggest the same to Jessica! She could naturally use STARTEQW to access a custom menu in EQW and then program a few common substitution patterns ready for use. I challenge you all to come up with such an STARTEQW You can see an example (with some bugs :( , here: http://www.hpcalc.org/details.php?id=4360 ==== > That works, but what a pain! Yes, you have to think for yourself. > No wonder you never see this calculator > used at my school, there are just too many problems with it. See above. > It makes me wonder, were > the makers of this calculator drunk or stoned when they put it > together? I regret even answering your question... > I don't like this machine at all, I'm going to trade it back > in on a TI. Yes, I guess that would make more sense for you. ==== Wouldn't it be nice if we had a calculator that just did our homework for us? You just scan the test or homework page from the book, and it reads everything and spits out the answer... maybe we can even get it to print our answers out (showing all the work, of course) just like our own handwriting by going through some handwriting-recognition program.. I would be able to ace every exam without having to invoke the slightest bit of brain power! Ah, to dream.. Aaron That works, but what a pain! No wonder you never see this calculator > used at my school, there are just too many problems with it. The > bookstore is practically giving them away. It makes me wonder, were > the makers of this calculator drunk or stoned when they put it > together? I don't like this machine at all, I'm going to trade it back > in on a TI. thanks for all your replies - Jessica ==== Here we see that the CAS in the HP49 gives us flexibility rather than comfortability (you don't get your answer right away, you need to do som manipulation). I assume that you are asking to Integrate(Sin(LN(X)) dx), and not Integrate(Sin(X)*LN(X) dX). If that is the case, then we need to do some of it by hand and some with the 49 (however, I am limited in my knowledge to the nature of the CAS of the HP49, so I will show you how to do it by hand. If there is anyone here who can show her with the calc, I could learn to). However, because of the nature of your question, I will be dispensing some of parts of the next Calculus Teaching Aid with the HP49 - Integration. (Check out my post on 13 Nov 2002 to see how to do definite and indefinite integration with the calc). Here we go: First off we need to recognize and know U substitution. The reason being we have a composite function (Sin(LN(X))) which leads us to the Chain Rule in differentiation. The Chain Rule says f(g(x)) = f'(g(x))*g'(x). Simple when differentiating, difficult when Integrating. There is no fast rule with the Chain Rule when integrating. So let us set U=LN(X). Then dU=1/X dX, so dX=X*dU. Now we have: Integrate(Sin(U)*X dU). But when differntiating with respect to U, we can not have an X in our integration (assuming we are single variable Integrating). So we need to do another subsitution: If U=LN(X), then X=e^U. So now we have: Integrate(Sin(U)*e^U dU). Now we can integrate with respect to U, but we need to do it by parts. There is a exponential rule to integration that says Integrate((e^(aU) * sin (bU)) dU) = (e^(aU)/(a^2+b^2) * (a sin(bU) - b cos(bU) + C (a and b being the co-efficients of U, any number). Seeing as though a&b=1, then we have (e^U)/2 * (sin(U)-cos(U)) (I will assume we are looking for a specific integral rather than a generic, so I will not worry about the constant 'C'). Now remember, e^U = X and U = LN(X). So re-substitue, and you get your answer: (X*Sin(LN(X)))/2 - (X*Cos(LN(X)))/2. I realize that the TI89 gives you this answer immediately, and the HP49 does not. As I stated earlier, the HP49 CAS gives you more flexibility rather than comfortability. It wants to make sure all the bases are covered so to speak before moving on. So when doing the integration on the HP, do the U Substitution first, then integrate, then re-substitute. Here you will have a complex formula dealing with because of my limited knowledge of the CAS on the 49. I realize this is your question, but I hoped to show you how to do it by hand. You could use your 49 to help save a lot of scratch paper (using it to STOre variables and the SUBST command). Can anyone simplify this rather complex formula that the HP49 gives? Sin(X)*e^X IntVX gives us: -((1-i)/4 * e^((i-i)*X)) - (1+i)/4 * e^((1+i)*X) then: X=LN(X) SUBST EVAL gives us: -((1+i)*e^((1+i)*LN(X)) + (1-i)*e^((1-i)*LN(X)))/4 Where do we go from here? Aaron Aaron ==== > Can anyone simplify this > rather complex formula that the HP49 gives? I'll try, let's see... > Sin(X)*e^X IntVX gives us: > -((1-i)/4 * e^((i-i)*X)) - (1+i)/4 * e^((1+i)*X) > then: > X=LN(X) SUBST EVAL gives us: > -((1+i)*e^((1+i)*LN(X)) + (1-i)*e^((1-i)*LN(X)))/4 > Where do we go from here? If you expand the exponents, and remember that 1. e^(a+b)=e^a*e^b and 2. e^ln(x)=x, you get: i ln(x) -i ln(x) - (1+i) x e - (1-i) x e -------------------------------------- 4 Next step: e^(i*x)=cos(x)+i*sin(x). You get: - ( (1+i) x (cos (ln x) + i sin (ln x)) + (1-i) x (cos (ln x) - i sin(ln x)) ) / 4 Now just expand: -(x cos (ln x) + i x sin (ln x) + i x cos (ln x) + i^2 sin (ln x) + x cos (ln x) - i x sin (ln x) - i x cos (ln x) + i^2 sin(ln x)) / 4 Remember that i^2=-1, and cancel out the imaginary parts, and you get (x sin (ln x) - x cos (ln x)) / 2 It should be correct, since it is the same as you got, from wherever that was =) I did it all by hand though, maybe someone can find a way to do it on the 49. Greetings Thomas -- Thomas Rast If you cannot convince them, confuse them. -- Harry S. Truman ==== I'll also try. Since the CAS of the HP49G seems to love complex exponentials more than trigonometrics, switch to complex mode and EXPLN the above expression. Press LIN and we are at: -(i/2*e^(i*LN(X)))+i/2*e^(-(i*LN(X))) If you try INTVX here, you see that the HP49G integrates the first but not the second term. It somehow doesn't like the second term. So let's go for a substitution. Enter: 'INTEGRAL(LOW,HIGH,SIN(LN(X),X)' , where INTEGRAL stands for the integration sign that you get pressing [RED-SHIFT] and [TAN]. Enter LN(X)=Y and then SUBST, to get the substituted integral. We are interested for the integrand, so press OBJ-> 3 DROPN to get it on stack level 1. Now, enter 'Y', press RISCH. After some seconds you get: -((1-i)/4*e^((1-i)*Y))-((1+i)/4*e^((1+i)*Y)) For back substitution enter Y=LN(X) and press [SUBST]. Switch top real mode, press [RE], switch to complex mode, press EXPAND. The result is (X*SIN(LN(X))-X*COS(LN(X)))/2. Let's take a look at the imaginary part. Switch to real mode, press [IM]. If you EXPAND you get 0, so the result is the expression: (X*SIN(LN(X))-X*COS(LN(X)))/2 Notice that the definite integral was used only for taking the integrand. Greetings, Nick. > Can anyone simplify this > rather complex formula that the HP49 gives? I'll try, let's see... Sin(X)*e^X IntVX gives us: > -((1-i)/4 * e^((i-i)*X)) - (1+i)/4 * e^((1+i)*X) > then: > X=LN(X) SUBST EVAL gives us: > -((1+i)*e^((1+i)*LN(X)) + (1-i)*e^((1-i)*LN(X)))/4 > Where do we go from here? If you expand the exponents, and remember that 1. e^(a+b)=e^a*e^b and 2. > e^ln(x)=x, you get: i ln(x) -i ln(x) > - (1+i) x e - (1-i) x e > -------------------------------------- > 4 Next step: e^(i*x)=cos(x)+i*sin(x). You get: - ( (1+i) x (cos (ln x) + i sin (ln x)) > + (1-i) x (cos (ln x) - i sin(ln x)) ) / 4 Now just expand: -(x cos (ln x) + i x sin (ln x) + i x cos (ln x) + i^2 sin (ln x) > + x cos (ln x) - i x sin (ln x) - i x cos (ln x) + i^2 sin(ln x)) / 4 Remember that i^2=-1, and cancel out the imaginary parts, and you get (x sin (ln x) - x cos (ln x)) / 2 It should be correct, since it is the same as you got, from wherever > that was =) I did it all by hand though, maybe someone can find a way to > do it on the 49. ==== The X(t) answer means that it can't do it. Make sure you're using the correct syntax, though (e.g. you aren't trying to integrate sin(x)*ln(x), which no calculator can do). I don't have a HP49G, though, so I can't actually try it out. -- YouÇre not doing anything wrong, but I think that you have to make a substitution of x(t) - but you can try to read the Why does the HP 49 sub in Xt into integrations-topic and Integration Cos (ln x)-topic and see if you understand it... But IÇm also very new to the HP 49, so I hope that some kindly person, will answer your question, once again......... Or at least refer to some good litterature about integrating on the HP.... Martin Jorgensen. ==== > what a coincidence, I'm also looking for replacement for the unsupported > #1D44. On the 49G, there is a similar entry but, unfortunately, it is > unsupported (also) and unstable (snip). CODE > GOSBVL =SAVPTR > GOSBVL =DisableIntr > GOSBVL #1D44 > GOSBVL =AllowIntr > GOVLNG =GETPTRLOOP > ENDCODE ==== :: AtUserStack CODE GOSBVL =SAVPTR GOSBVL =DisableIntr GOSBVL 01B1C A=0 W GOSBVL =clkspd C=B A CSRB A C=C+A A A=0 W A=C A GOSBVL =DispOn GOSBVL =AllowIntr ASL W P= 5 GOVLNG =PUSHhxsLoop ENDCODE HXS>% ; @ NB: The 48 address #54371 (i.e. hex>%) is at :1:62D1D in the 49. HPCC #1046 ==== >:: > AtUserStack > CODE > GOSBVL =SAVPTR > GOSBVL =DisableIntr > GOSBVL 01B1C > A=0 W > GOSBVL =clkspd > C=B A > CSRB A > C=C+A A > A=0 W > A=C A > GOSBVL =DispOn > GOSBVL =AllowIntr > ASL W > P= 5 > GOVLNG =PUSHhxsLoop >ENDCODE > HXS>% >; >@ NB: The 48 address #54371 (i.e. hex>%) is at :1:62D1D in the 49. HPCC #1046 You can change GOSBVL 01B1C to GOSBVL 04315 if you only want to use entries that are in a stable region. (inside of DeepSleep) == Your program on the HP49G on my desk generates values ranging from 3746256 to 3750608 (256 runs). Is my HP49G the slowest one on the planet? ==== On my HP49G, the interval of returned values after 256 runs is: [3921520, 3928496]. And this one: [3920656, 3926752] on my other HP49G won at the HHUC'02 as a door prize. Definitely, these values are not close to the ones shown by ON-D 2. Which raises an interesting topic: Bill Butler reported in Datafile V21N4 pages 10 and 11, that after pressing ON-D A on his three double speed HP48G+'s from Cynox, the numbers displayed are clearly wrong (227... and 242...) because the machines do indeed run twice as fast. [Can it be caused by a register overflow?] On the other hand, Veli-Pekka reported here that his double speed '49G actually runs at 5MHz: http://groups.google.com/groups?&selm=Dfhq9.1534%24h7.568801%40reader1.news. jippii.net What's the output of Joe Horn's program on your calc? Have you measured any actual execution times? HPCC #1046 ==== I measured the speeds before and after (the program and values were intact in main RAM when Cynox.de returned the calculator) using simple loops (which are *still* there) : << 1. 9999. FOR k k k 9. MOD 1. + DISP NEXT > to see if the LCD affects the speed and << 1. 9999. START NEXT > just counting.... SO It was a real measurement. I doubt if anything else than a 2MHz 48S/SX can be easily double speed -upped for real. Veli-Pekka PS: The Radix calculator was broken when it came to Finland The CEO send it back explaining the keyboard problem caused by the upper and lower half improper re-attachment and they 1st refused to fix it, explaining that they don't mess with he finally got them to see the light. :-D SO: Cynox.de is not the worst place to get a speed-up, it is simply the only one! And they seem to be allowed to advertise as they will in Germany/EU. (eg. double speed) What a pity! :-P BTW: My +25% MHz machine takes -20% time to do math and everything works perfectly right. :-D If I mess something up here, I'm gonna blame Cynox.de !!! ;-) PPS: I would rather have no expensive micro-switches no fast clock, just a simple speed-up to 5MHz (preferably from HP) > On my HP49G, the interval of returned values after 256 runs is: > [3921520, 3928496]. And this one: [3920656, 3926752] on my other HP49G > won at the HHUC'02 as a door prize. Definitely, these values are not close to the ones shown by ON-D 2. Which raises an interesting topic: Bill Butler reported in Datafile V21N4 pages 10 and 11, that after > pressing ON-D A on his three double speed HP48G+'s from Cynox, the > numbers displayed are clearly wrong (227... and 242...) because > the machines do indeed run twice as fast. [Can it be caused by a > register overflow?] On the other hand, Veli-Pekka reported here that > his double speed '49G actually runs at 5MHz: http://groups.google.com/groups?&selm=Dfhq9.1534%24h7.568801%40reader1.news. jippii.net What's the output of Joe Horn's program on your calc? Have you > measured any actual execution times? HPCC #1046 ==== . Your program on the HP49G on my desk generates values ranging from 3746256 > to 3750608 (256 runs). Is my HP49G the slowest one on the planet? ==== The program inserted by Jordi, in my micro-computer HP-49G, from Indonesia (ID9470....), with ROM 1.19-6 (version HP49-B), generates ranging values in aprox. 20 steps : 3746256 . . . 3747120 . . . 3748000 Miguel Angel CAPORALINI HERK **************************************************************************** *** > on the planet (3679984 and 3681728, is chinesse model). Your program on the HP49G on my desk generates values ranging from 3746256 > to 3750608 (256 runs). Is my HP49G the slowest one on the planet? I'm not willing to part with mine, but you can buy a scanned in PDF copy of the 48SX Owner Manual at http://www.hpmuseum.org/cd/cddesc.htm. As far as I know, they never published a separate manual for the 48S. The difference is that the 48S doesn't accept the expansion cards like the 48SX does, so ignore anything about the expansion cards and ports 1 and 2. ==== Regarding your recent post: >i agree. it is just a calculator that they have slapped into a PDA >case. a telephone nowadays would do more math. [snip] Considering that the ClassPad, according to the ad (http://www.casio.co.jp/edu_e/classpad/), comes with CAS, geometry, and other math functions built-in, I can only wonder what sort of phone you use. (I usually use a pay phone, and I've yet to see even one such function. ) ==== > Considering that the ClassPad, according to the ad > (http://www.casio.co.jp/edu_e/classpad/), comes with CAS, geometry, > and other math functions built-in, I can only wonder what sort of > phone you use. (I usually use a pay phone, and I've yet to see even > one such function. ) hi there! not to start a little war, but there are many phones out there that will blow away any calculator in performance, development software available and from here -> software itself. many of them can be programmed in c++, java, etc. with the ability to port software already made. in some of the new phones you can use DOS -nokia 9210-(an for example load an old MAPLE version ??). even the nokia 7650 can play the game 'doom', which will give you an indication of the type of performance that they can run. i don't think that anybody would want to buy a phone to run math, but my point is: why use archaic hardware and go back to the calculator type machine when developing a product that looks like a PDA? ==== At least a phone has a keypad. Stephen.N Considering that the ClassPad, according to the ad > (http://www.casio.co.jp/edu_e/classpad/), comes with CAS, geometry, ==== And a * key for multiplication! ;-) > At least a phone has a keypad. Stephen.N Considering that the ClassPad, according to the ad > (http://www.casio.co.jp/edu_e/classpad/), comes with CAS, geometry, > and other math functions built-in, I can only wonder what sort of > phone you use. (I usually use a pay phone, and I've yet to see even > one such function. ) hi there! not to start a little war, but there are many phones out there that > will blow away any calculator in performance, development software X ==== --------------------------------------------------------------------- I have read comments about price drops for the HP 49G, supposely cheaper than the HP 48GX in some places. Can somebody mention a few places, (online preffered)? I read about prices as low as $60. Toby ==== Dynatech still has some brand new HP32SIIs for 67,95 euro. They come with a spanish manual and a CD with the manuals in several other languages. See http://www.dynatech.de/ I bought one, it is a great calc. Peter Lott John Cadick schrieb: > This may have already been posted - however: Calcpro has some re-furbished HP32SIIs on sale for $69.00 or so. They do > not, unfortunately, come with manuals, but still - at the rediculous prices > that some are paying on Ebay - this seems like a good deal. CalcPros website > is http://www.calcpro.com. However you may have to call them. Their phone > number is on their website. John ==== ==== Try http://www.hpcalc.org ==== WAIT, DON'T USE IT, IT HAS A BUG! ==== I forgot, also see the FAQs: http://www.hpcalc.org/hp48/docs/faq/ ==== Also note that http://www.calcpro.com/ lists it for US$29.95. ==== > C=C-1 B % <======= if I change to C=C-1 A everything works!!!!! This changes the test so lengths < $FFFFF all work! I don't know much machine language, but you have changed from a byte wide (2 nibble) operation to an address wide (5 nibble) operation. I suspect this keeps you from underflowing, but this won't be guaranteed unless you specifically know what you have stored in the upper nibbles of the C register. Bill alternate E-dress wtstorey@ieee.org.no.spam.please (Use the obvious) ==== On Mon, 11 Nov 2002 14:16:39 -0800, William Graves >In the course of building an XModem server for the HP48, I decoded the ROM routine STR2OBJ from the HP49 (I attach my version). STR2OBJ gets a HPHP48-R...... string. If the string part is longer than $FF, it is not converted. >Why does STR2OBJ quit if the length is bigger? In order to make STR2OBJ function for XModem, I had to make a change to line 32 of the attached. >The line I changed is marked in the file but it looks like this: > C=0 A > C=C-1 B % <======= if I change to C=C-1 A everything works!!!!! This changes the test so lengths < $FFFFF all work! -- - - - - - - - - - - - - - - - - >Bill Graves RKBA! >bgraves@ix.netcom.com STR2OBJ is correct as it is in the 48/49 ROM. The lines you mention were changed in the 48 revision R ROM to allow XModem transfers to work properly. In previous ROM versions and the SX there was a check to determine if the string had more than one nibble of padding and if so STR2OBJ would abort with an error condition. This obviously would not work with a protocol such as XModem which *requires* padding as it only transfers data in 128 byte blocks and doesn't transmit the data set size. So, you see that the original lines are actually correct as they constitute a check for more than 255 padding nibbles (one nibble less than one XModem block) in which case an error condition occurs. Changing this to #FFFFF negates the error detection that was purposely put into the ROM and decreases the robustness of the code. ---------------------------------------------------------------------------- --- Jonathan Busby - before replying. ==== Oh, the tangled webs we weave... was there! BUT look now at the problem today for the HP49 which has the same code!! 1. The XModem Connectivity kit from HP uses 1k blocks not 128, so the nice fix fails for the XModem connectivity kit because the padding can be greater than 255 nibbles 2. SO, the writers of the connectivity kit, knowing this, download a command string after every file download to fix the downloaded object. The string is: 'name' MEM DROP DUP RCL SWAP DUP PURGE SWAP # 100002h LIBEVAL 26 + # 100003h LIBEVAL NEWOB SWAP STO This fixes the HPHP string and makes it into a valid object. 3. BUT WAIT, this will fail if we download a file of length 768 nibbles or more because then the padding will be less than 255 nibbles and then STR2OBJ works! However the command string above is still used because XModem Connectivity kit does not recognize this case. Therefore the command string will try to fix an object which is already ok and therefore hurts the object! 4. So now I come along and try to build Conn4x, a XModem package based on the XModem connectivity kit. I want to support both calculators. I am also saying this old connectivity kit wasted a lot of transfer time for small files by using 1024 blocks. I will be clever and use BOTH 128 and 1024 transfers and pick the best for each download based on the file size. BOY did that create complications! 5. I have it working now. For the HP49 I make sure that I always transfer the file plus AT LEAST 256 nibbles. This forces the STR2OBJ to fail everytime. Then the crazy command (#2 above) can fix it and now it will always work! For the HP48, I have to give the user XMODEM Server code with a STR2OBJ embedded. I will make that STR2OBJ ALWAYS accept any length padding so there will not be a problem. In the HP48 case, the special command string (#2 above) cannot be used because the commands require the 256 Menu (HP49). I think that as long as I keep loving this calculator, I will never have a boring day! If you see any errors in what I have done let me know and thank you for the help, I now have some confidence in the approach I will use. -- - - - - - - - - - - - - - - - - Bill Graves RKBA! bgraves@ix.netcom.com ==== In the course of building an XModem server for the HP48, I decoded the ROM routine STR2OBJ from the HP49 (I attach my version). STR2OBJ gets a HPHP48-R...... string. If the string part is longer than $FF, it is not converted. Why does STR2OBJ quit if the length is bigger? In order to make STR2OBJ function for XModem, I had to make a change to line 32 of the attached. The line I changed is marked in the file but it looks like this: C=0 A C=C-1 B % <======= if I change to C=C-1 A everything works!!!!! This changes the test so lengths < $FFFFF all work! -- - - - - - - - - - - - - - - - - Bill Graves RKBA! bgraves@ix.netcom.com ==== Whoops forgot the attachment!! Here is the code: * string: HPHP48-R plus object on the stack * try to make a proper object and return on stack NULLNAME STR2OBJ ( disassembled from 2F061, FPTR 1 208=1:4A567 ) :: ?IsHPHP NOT?SEMI DUPLEN$ VERSTRING LEN$ SWAPOVER#- #<3 caseDROP ( pruned HPHP48, leaves -R so <3 means nothing left ) CODEM % disassembled from %1:4A594 GOSBVL POP# % has length of incoming verstring on stack A=A+A A % make nibble count R1=A W GOSBVL SAVPTR A=DAT1 A % get the object pointer R2=A W D1=A D1+5 C=DAT1 A % total incoming length AD1EX C=C+A A R0=C W % R0 points just after object C=R1 W A=A+C A % add verstring length (nibbles) D0=A D0+5 A=DAT0 A % point at prologue in string, get value D1=A A=DAT1 A % Read signature of prologue routine LC(5) =PRLG ?C=A A -> .tag2 % go if a prologue LC 80000 ?C<=A A -> .tag1 % go if 1st nibbles of prologue routine point to RAM D1=A A=DAT1 A % else retrieve what that points at LC(5) =PRLG ?C=A A -> .tag2 % go if that is a prologue *.tag1 GOVLNG GPPushFLoop % GETPTR, Push FALSE, Loop *.tag2 GOSBVL SAFESKIPOB % found a prologue GOC .tag1 CD0EX % A->just after the prologue A=R0 W % just after the containing string A=A-C A R3=A W % the total length of ... part C=0 A C=C-1 B % why B? cuts off > $FF strings ********** ?C .tag1 % go if item length > 000FF C=R1 W % this code prunes the length to proper size A=A+C A % ... + verstring length A+10 A % plus string prologue + string length count C=R0 W R0=A W A=R2 W D1=A C=C-A A B=C A C=R1 W A=A+C A D0=A D0+10 C=R0 W B=B-C A C=B A GOSBVL MOVEDOWN C=R3 W AD0EX A=A+C A C=R0 W GOSBVL MOVERSD A=B A D0=A A=R0 W C=DAT0 A C=C-A A DAT0=C A GOVLNG GPPushTLoop RTNSXM ENDCODE NOT?SEMI ?ROMPTR> ; ==== OK, I give up. I've been trying since yesterday to figure out how to screen print on my 48GX from within the MK Filer. The usual ON-1 sequence doesn't work in the Filer; it just does a CANCEL instead. (It works fine *outside* the Filer, though.) What keystroke sequence do I need to do this? (If it's in the documentation, then I can't find it.) -- Wayne Brown | When your tail's in a crack, you improvise fwbrown@bellsouth.net | if you're good enough. Otherwise you give | your pelt to the trapper. e^(i*pi) = -1 -- Euler | -- John Myers Myers, Silverlock ==== > OK, I give up. I've been trying since yesterday to figure out how > to screen print on my 48GX from within the MK Filer. The usual ON-1 > sequence doesn't work in the Filer; it just does a CANCEL instead. > (It works fine *outside* the Filer, though.) What keystroke sequence do > I need to do this? (If it's in the documentation, then I can't find it.) I'm afraid it won't work... One other way of printing the screen is doing something like this: << FILER LCD-> This will start the filer, and when exiting you will have a copy of the screen on the stack that you can then send to the pc. Another way (maybe) would be to very quickly press ON another time and 1 at the same time. The first ON would leave the Filer, the second ON-1 would print the current screen Good luck ==== > One other way of printing the screen is doing something like this: > << FILER LCD-> This will start the filer, and when exiting you will have a copy of the > screen on the stack that you can then send to the pc. there had to be *some* way to do it, as there are screen shots of the Filer in the MK documentation.) -- Wayne Brown | When your tail's in a crack, you improvise fwbrown@bellsouth.net | if you're good enough. Otherwise you give | your pelt to the trapper. e^(i*pi) = -1 -- Euler | -- John Myers Myers, Silverlock ==== Just bought a 49G and would like to save its ROM to my PC before I upgrade its ROM to a newer one, incase I have to go back to the old vesion. Could someone tell me how to do a ROM dump and with what ==== Probably easier and faster to download it from hpcalc.org just check the version you have on the calc with VERSION Just bought a 49G and would like to save its ROM to my PC before I > upgrade its ROM to a newer one, incase I have to go back to the old > vesion. Could someone tell me how to do a ROM dump and with what -- Markus Nylund markus.nylund@arcada.fi 040-5377 377 ==== well sorry for my obscene lanaguage, and school does get boring, i make straight a's, i can manage to do other stuff, and this is jus how i type online, i dont see the point typin correctly, and i dont see why it would offend anyone to make a game. many people make games. and i bet it is hard to do so. so what ever ==== I was not offended by a game request. I think it's Pivo's job !!! ;-) PS: This message was written with fresh positrons and it will self-annihilate in 10 seconds. Be aware of the explosion - it may turn you into The HULK !! > well sorry for my obscene lanaguage, and school does get boring, i > make straight a's, i can manage to do other stuff, and this is jus how > i type online, i dont see the point typin correctly, and i dont see > why it would offend anyone to make a game. many people make games. > and i bet it is hard to do so. so what ever ==== > I was not offended by a game request. > I think it's Pivo's job !!! What is my job? Be offended or writing games? Former: ok, latter: Am I French? -- ir. P.F.Geelhoed Delft University of Technology Laboratory for Aero & Hydrodynamics Leeghwaterstraat 21, 2628 CA Delft, The Netherlands +31-15-2786656 / +31-15-2782947 (fax) ==== > and this is jus how i type online, i dont see the point typin correctly... THINK in the reader's of your posts, BTW many of them are not english speakers. Have you think that typing in the rigth way is easier to understand what you mean? If you look for a post from Alberto (HP49 ML Help please, November 12), you will see in my OT answer what I think about typing in this way ==== > whoa, guys i was just askin a fuckin a question, i made mistake and > should have said would make instead of could make, good god. i just > asked one simple question, if u wouldnt do it then dont give a fuckin > reply. and btw i got a damn ps2 so fuck you aaron. and you cant > bring a fuckin gba in school bitch, thas why i ask for this fuckin > game, which is pretty tight, so stop bitchin at me go suck a fuckin > dick. good lord I can see how my post comes across as harsh. It wasn't meant to be.. I just come to this newsgroup for knowledge on mathematics & engineering. Not games. Its your calc & you may do with it what you wish, but I was still offended being asked to code a game for a calculator. And I imagine others were to. I just had to spill my feelings on the subject. I don't reflect the groups feelings in any way. I mean nothing personal towards you. As my wife always says to me: You have so much potential. I think we all have potential. Good luck on finding your game! :) Aaron ==== I am wondering if this kind of task is possible: DATE TIME << . . > 10 UBASE UVAL 8192 * @ every 10 seconds. 4 ->LIST STOALARM DO . . UNTIL KEY END Every 10 seconds the program goes out from the DO..UNTIL..END loop and does the ALARM task. Tal ==== I am wondering if this kind of task is possible: DATE TIME > << > . > . > > 10 UBASE UVAL 8192 * @ every 10 seconds. > 4 ->LIST STOALARM > DO > . > . > UNTIL > KEY > END Every 10 seconds the program goes out from the > DO..UNTIL..END loop and does the ALARM task. Try this: DATE TIME << DROP @ (optional) Drop the alarm index. . . > 81920 @ every 10 seconds. 4 ->LIST STOALARM RCLALARM Then edit the alarm to sometime in the future so that it starts repeating. Or you could replace RCLALARM with DROP and insert, for example, .01 + (for 1 minute) after TIME so that it will come due in the future. Note that RightShift TIME on the 48G series gets you to input forms for browsing and setting alarms, which might be easier than using STOALARM and RCLALARM. When you want to stop it from repeating, hold down the ON key and press the 4 key (or the 9 key on the 49G -- the one with TIME above it). On the 48G series, the next alarm will run, but it won't be rescheduled Note that you'll have a problem if the alarm program isn't finished yet when the alarm repeats. -- James ==== I have written a USER RPL program for our Snooker group. In the directory SNOOKER I have 6 variables. P1 P2 P3 (scores of players) and PL1 PL2 PL3 (names of players). One of the menus displays the scores (at the moment in a message box.) I want to create a full screen 131*64 grob. Since I can't find any help on this at hpcalc.org I need help with the coding. How do I create the grob in user RPL? I want to add 3 of these. How would I code this? 0 20 40 60 80 100 120 140 | | ------------------------------- | | 0 5 10 15 19 | | ------------------------------- | | And how do I display the grob? Thats all for now. I'll figure out how to add the text and scores myself. ==== You could try DISPXY or just edit it directly in the Graphing Environment then press STO and leave it. On the stack use up-arrow then |EDIT| and put a quote at the beginning of the line. You get the internal code for that grob. Better advice, anyone? > I have written a USER RPL program for our Snooker group. In the directory SNOOKER I have 6 variables. P1 P2 P3 (scores of > players) and PL1 PL2 PL3 (names of players). One of the menus displays the scores (at the moment in a message box.) > I want to create a full screen 131*64 grob. Since I can't find any help on this at hpcalc.org I need help with the > coding. How do I create the grob in user RPL? I want to add 3 of these. How would I code this? 0 20 40 60 80 100 120 140 > | | > ------------------------------- > | | 0 5 10 15 19 > | | > ------------------------------- > | | And how do I display the grob? Thats all for now. I'll figure out how to add the text and scores > myself. > ==== I have found a solution. I have finished a grob that looks like this. 0 20 40 60 80 120 140 160 180 |-----------------------------| 0 2 4 6 8 10 12 14 16 18 20 --------------------------------- 0 20 40 60 80 120 140 160 180 |-----------------------------| 0 2 4 6 8 10 12 14 16 18 20 --------------------------------- 0 20 40 60 80 120 140 160 180 |-----------------------------| 0 2 4 6 8 10 12 14 16 18 20 and named it SN when I want to display the scores I RCL it to the stack, put it into DISP and then just add this marker [] to the picture using GOR. One progblem though. There is not enough space for names. If you have any 131*64 picture that does the same but will fit in the names please send me a copy. By the way if I get any responses here for the program to be uploaded to hpcalc.org I'll do so. Here is a quick discription. The program does exactly the same as the snooker score board. (I am using it because there are not enough score boards at our snooker club.) The whole program is made up of menues to: - Add score - View score - Reset scores - Change names - Exit ==== > :: > CK1&Dispatch > FIVE > :: > >R > ticR > NcaseSIZEERR > ticR > NOT?SEMI > BEGIN > EvalNoCK: > x+ > RSWAP > ticR > WHILE > RSWAP > REPEAT > ; > ; > CHALLENGE: Does anybody see a still faster and shorter > program which we could recommend for ROM 19-7 ? PS. IMHO, the error-out of Sigmalist for singletons > is perhaps just an inattention of its programmer. > It also seems to me that the message Bad Argument Value > is more appropriate for the empty list input than > Invalid Dimension. What is your opinion? Only this: :: CK1&Dispatch FIVE :: >R ticR NcaseSIZEERR BEGIN RSWAP ticR NOTcase COLA_EVAL RSWAP EvalNoCK: x+ AGAIN ; ; @ But of course, it cannot replace SigmaLIST in 1.19-7 because of compatibility issues. Create new commands instead? SigmaLST DOLST DOSBS etc.. My opinion on the matter is that SigmaLIST for singletons should have returned the single objects - but only in cases where x+ applies. So, { << > } SigmaLIST should error out as before, where { 5 } SigmaLIST returns 5 I don't mind the error message 'Invalid Dimension'. It is correct. The values aren't wrong - there are just not enough of them. Werner Huysegoms ==== > Only this: > :: > CK1&Dispatch > FIVE > :: > >R ticR NcaseSIZEERR > BEGIN > RSWAP ticR > NOTcase COLA_EVAL > RSWAP > EvalNoCK: x+ > AGAIN > ; > ; > @ Quite interesting alternative. But applied to { << > } it returns nothing (evaluates the empty program) while my version returns the empty program. Isn't there something like a COLA_DoNothing which could replace the COLA_EVAL and which just escapes from the loop doing nothing else? If not, such a thing should perhaps be created :-) > But of course, it cannot replace SigmaLIST in 1.19-7 because of > compatibility issues. Werner, you seem still to believe in backward compatibility. Didn't you read what JHM told as about this? IMHO, expanding a function's domain in an appropriate way is sometimes even more useful than some useless backward compatibility. > My opinion on the matter is that SigmaLIST for singletons should have > returned the single objects - but only in cases where x+ applies. > So, { << > } SigmaLIST should error out as before, What do you mean with x+ applies? It does apply also in {<< > { } }, say. The treatment of lists with different object types of its elements makes SigmaLIST sometimes useful even in some non-standard situations. 7 > I don't mind the error message 'Invalid Dimension'. It is correct. In what sense? What is meant by the Dimension of a list? If simply size then Bad Argument Value is OK because the list is the argument of SigmalIST, not its members. see a real need for it if not for backward compatibilty. There are other places in ROM where JYA canceled the ?ATTNQUITT without hesitation. An ugly example is its eliminiation from the UsrRPL compiler (for speed), without seriously thinking on why it was input here by the 48-ROM authors. ==== > Quite interesting alternative. But applied to { << > } it > returns nothing (evaluates the empty program) while my version > returns the empty program. Isn't there something like a > COLA_DoNothing which could replace the COLA_EVAL and which > just escapes from the loop doing nothing else? If not, such a > thing should perhaps be created :-) No, there isn't. BTW, the COLA_EVAL trick is not mine, but Jurjen E. Bos' I know it fails on non-data objects.. But of course, it cannot replace SigmaLIST in 1.19-7 because of > compatibility issues. Werner, you seem still to believe in backward compatibility. > Didn't you read what JHM told as about this? ? No.. what has he said about it? I can't remember anything but the fact that he, too, complains about the various places in the '49 where compatibility with the 48 has been compromised (like ISOL, for instance). > My opinion on the matter is that SigmaLIST for singletons should have > returned the single objects - but only in cases where x+ applies. > So, { << > } SigmaLIST should error out as before, What do you mean with x+ applies? It does apply also > in {<< > { } }, say. Hm, indeed it does.. > I don't mind the error message 'Invalid Dimension'. It is correct. In what sense? What is meant by the Dimension of a list? > If simply size then Bad Argument Value is OK because > the list is the argument of SigmalIST, not its members. Yes, but as I said in my post, it is because there are not enough members that the command errors out. That's the Dimension of the list - the same goes for trying to invert a 2x3 matrix. It's not the value that is the problem, it's the size. > see a real need for it if not for backward compatibilty. Well, every command that may take an appreciable time should be interruptable by the user - this has nothing to do with backward compatibility. Werner ==== > see a real need for it if not for backward compatibilty. There > are other places in ROM where JYA canceled the ?ATTNQUITT > without hesitation. An ugly example is its eliminiation from > the UsrRPL compiler (for speed), without seriously thinking > on why it was input here by the 48-ROM authors. You speak too quickly and without knowledge about this. No ?ATTNQUIT has been removed from existing HP48 commands. Some have been removed (like the one from the main loop in the RPL compiler) because it was also called at three other different locations (also in a loop). Don't forget for example that commands like CKn contains ML code that will produce the same result as ?ATTNQUIT but in a much faster way ==== I forgot to mention one thingy: the command ?ATTNQUIT should be in the inner loop, of course, to enable the user to interrupt the command. Werner ==== an interesting bug in the 39G (also in the emulator). If you go to the SPECIAL CHARS view, which for non-39G users contains a list of all the special chars that don't appear on the keyboard, and choose the 'cubed' char (superscripted 3) then what you actually get is a power of -1 instead. I think this comes from a change that JYA made during the upgrade. On the 38G when you press the X to the -1 button you get ^(-1) in your 39/40G so that the button gives a superscripted -1 instead of the ^(-1). There was no superscripted -1 char available so he probably took the Obviously he forgot to update the CHARS view! ==== Even my prototype has this feature superscript 3 (as seen in CHARS) gives superscript -1 (to the CLI) > an interesting bug in the 39G (also in the emulator). If you go to the > SPECIAL CHARS view, which for non-39G users contains a list of all the > special chars that don't appear on the keyboard, and choose the 'cubed' > char (superscripted 3) then what you actually get is a power of -1 instead. > > I think this comes from a change that JYA made during the upgrade. On > the 38G when you press the X to the -1 button you get ^(-1) in your > 39/40G so that the button gives a superscripted -1 instead of the ^(-1). > There was no superscripted -1 char available so he probably took the > Obviously he forgot to update the CHARS view! > ==== In message , Veli-Pekka >Even my prototype has this feature >superscript 3 (as seen in CHARS) gives superscript -1 (to the CLI) Some more oddities... On the 39G, 2 superscript 3 -> 2^-1 -> 0.5 2 superscript 2 -> 2^2 -> 4 2 superscript 1 -> 2^1 -> error: Invalid Syntax On the 38G+ 2 superscript 3 -> 2^3 -> error: Invalid Syntax 2 superscript 2 -> 2^2 -> 4 2 superscript 1 -> 2^1 -> error: Invalid Syntax > an interesting bug in the 39G (also in the emulator). If you go to the > SPECIAL CHARS view, which for non-39G users contains a list of all the > special chars that don't appear on the keyboard, and choose the 'cubed' > char (superscripted 3) then what you actually get is a power of -1 >instead. -- Bruce Horrocks Hampshire England bh@granby.demon.co.uk ==== > ... GSLIST can't be used for a > symbolic sum. > > Again one of these unchecked claims typical for you. > Put a list of two symbolics on the stack, { A B } > say. Apply SigmaLIST. The result is 'A+B' as expected. > SigmaLIST yields the symbolic sum also in the general > case of a list of algebraics if the list size is >1. > Maybe one has to care about some flags. > > This is not what I meant ... Relevant is what you write and not what you mean. > sum, and this is simply wrong! Sometimes the meaning of what one says can be assumed viewing the history of the thread. Veli-Pekka has already commented in the preciding messages: >I think SigmaLIST is for LIST of objects summation, >more of a programming language command than math >and that the math thing is the Summation Sigma, >which also understands symbolic sums. Symbolic sums stands here for sums like sum(n=1,N,n), was my assumption and that's why I just used the same words again. Even the corresponding package of Mathematica is named symbolic sums though symbolic items in a list can be added with each other without this package. Of course the HP49G is not Mathematica (and how we wish it would be ;-)) but you seem to always find something to hook on especially when you already have put somebody in some category. If what I write is relevant, then I might remind you to apply this If I have taken that for relevant you wouldn't sit where you sit now. > And here a second wrong statement of yours, in > the same context. In contradiction to your claim > that the additive semigroups of the HP49 have all > a neutral element. The truth is that the additive > semigroup of symbolics has *no* neutral element. > (even the NULLSYMBOLIC, accessable only in SysRPL, > is not a Zero with respect to +). > > Really? > number+0=number > string+=string What has the fact that the semigroup of strings has > a Zero in common with the fact that the additive semigroup > of symbolics has not ??? You claimed that *each* semigroup > dealt with by GSLIST has a neutral element. And this > is wrong again. Is it? Then find me please a counter example with no neutral element. And BTW, *you* spoke about semi-groups. It was not a coincidence that I stayed to algebraic structure and didn't go further. The properties of the structure have to be found first and then we should go on classifying. > ... but stop advertising me as > the bad/stupid guy... I didn't say you are a bad guy, You *did* but you forgot later. So much about relevance of written words. > but if you classify > yourself as a stupid guy, I do not contradict... This seems to be your biggest wish, isn't it Wolfgang? OK, I dare classify myself stupid, and I'll never dare calling me intelligent, quite contrary to you, the most brilliant programmer of all times, to which we must sing hymnes of admiration all our lives, in order to keep him happy. Agnowledgement and admiration is not everything, Wolfgang... Nick. ==== I've tried the last HP tools, and I don't manage to use the MASD syntax. Is there any directive to use ? Are there any documentation about this feature ? (I didn't find any with sasm). I was used to code on my HP, but since my computer is more comfortable, I'm migrating my projects to the HP Tools. Any advice is welcome :) ==== Joseph K. Horn escribi.97 en el mensaje > Is this HP49G bug already known about? { { [ [ 1 ] ] } } LGCD --> hangs.... > I can see the same behaviour on my 48GX with Erable 3.2. What an old bug! ==== which ROM version? ==== > which ROM version? 1.19-6. -jkh- ==== my hp48gx delivers the message invalid dimension when i multiplicate a line vector with a column vector, though i follow the necessary mathematic rules. the error is NOT due to my inability of caring about the commutative rule. it may be useful to show what i put in the matrix writer for example: [1] [ 8 7 3 ] x [5] [2] i hope some crack can help me. thanks for thinking. andy ==== my hp48gx delivers the message invalid dimension when i multiplicate > a line vector with a column vector, though i follow the necessary > mathematic rules. the error is NOT due to my inability of caring about > the commutative rule. it may be useful to show what i put in the > matrix writer for example: [1] > [ 8 7 3 ] x [5] > [2] i hope some crack can help me. > thanks for thinking. > to multiply two vectors, use DOT - faster than * Werner Huysegoms ==== my hp48gx delivers the message invalid dimension when i multiplicate > a line vector with a column vector, though i follow the necessary > mathematic rules. the error is NOT due to my inability of caring about > the commutative rule. it may be useful to show what i put in the > matrix writer for example: [1] > [ 8 7 3 ] x [5] > [2] i hope some crack can help me. > thanks for thinking. > to multiply two vectors, use DOT - faster than * > Werner Huysegoms The HP48 and 49 display vectors as rows, but treats them like columns for purposes of multiplication. Note vectors are one dimensional and show only one set of brackets,[ ]. Matrices are two dimensional (even if appearing one dimensional) and always have each row in brackets inside a second set of brackets, so [[1 2 3]] is 1 row and 3 columns, but [[1][2][3]] is three rows but only one column. [[ 1 2 3 ]] [1 2 3] will multiply properly giving [14] as result. [1 2 3] [[1][2][3]] is parsed as a column vector followed by a 3 by 1 matrix, and is not acceptable for multiplication. A j by k matrix followed by a k by n matrix will multiply to give a j by n matrix, A j by k matrix followed by a k-vector will multiply to give a j-vector No other matrix and/or vector combination will multiply using the * or matrix multiplication operation. ==== > my hp48gx delivers the message invalid dimension when i multiplicate > a line vector with a column vector, though i follow the necessary > mathematic rules. the error is NOT due to my inability of caring about > the commutative rule. it may be useful to show what i put in the > matrix writer for example: [1] > [ 8 7 3 ] x [5] > [2] i hope some crack can help me. > thanks for thinking. > to multiply two vectors, use DOT - faster than * > Werner Huysegoms The HP48 and 49 display vectors as rows, but treats them like > columns for purposes of multiplication. Note vectors are one dimensional and show only one set of > brackets,[ ]. Matrices are two dimensional (even if appearing one > dimensional) and always have each row in brackets inside a second > set of brackets, so [[1 2 3]] is 1 row and 3 columns, but > [[1][2][3]] is three rows but only one column. [[ 1 2 3 ]] [1 2 3] will multiply properly giving [14] as result. [1 2 3] [[1][2][3]] is parsed as a column vector followed by a 3 by > 1 matrix, and is not acceptable for multiplication. > A j by k matrix followed by a k by n matrix will multiply to give a > j by n matrix, A j by k matrix followed by a k-vector will multiply to give a > j-vector No other matrix and/or vector combination will multiply using the > * or matrix multiplication operation. thanks werner and virgil. now i can deal with the problem. bye. have a nice time Andy ==== andy the calculator boy escribi.97 en el mensaje my hp48gx delivers the message invalid dimension when i multiplicate > a line vector with a column vector, though i follow the necessary > mathematic rules. the error is NOT due to my inability of caring about > the commutative rule. it may be useful to show what i put in the > matrix writer for example: [1] > [ 8 7 3 ] x [5] > [2] > For getting the answer, write the vectors in matrix form [[8 7 3]] * [[1] [5] [2]] Deactivate the vector mode (B key) when in matrix editor ==== > andy the calculator boy escribi.97 en el mensaje my hp48gx delivers the message invalid dimension when i multiplicate > a line vector with a column vector, though i follow the necessary > mathematic rules. the error is NOT due to my inability of caring about > the commutative rule. it may be useful to show what i put in the > matrix writer for example: [1] > [ 8 7 3 ] x [5] > [2] For getting the answer, write the vectors in matrix form > [[8 7 3]] * [[1] [5] [2]] > Deactivate the vector mode (B key) when in matrix editor > THANKS a lot, RAUL. it was just like bingo. now it works. ==== We have iron tubes of l meters. We have to saw n pieces of different lenghts. Example: Tube lenght l = 12000 mm. n=10 Piece1: 4800mm Piece2: 2400mm Piece3: 1200mm piece4: 750mm Piece5: 200mm Piece6: 200mm Piece7: 8000mm Piece8: 8000mm Piece9: 4850mm Piece10: 1500mm How many tubes do I need and which pieces do I saw out of each tube so that I have as little loss as possible? And what will the loss of every used tube be? Is it possible to translate this into a program for the HP48 (User-RPL)? Stefaan..... ==== > We have iron tubes of l meters. We have to saw n pieces of different lenghts. > Example: > Tube lenght l = 12000 mm. > n=10 > Piece1: 4800mm > Piece2: 2400mm > Piece3: 1200mm > piece4: 750mm > Piece5: 200mm > Piece6: 200mm > Piece7: 8000mm > Piece8: 8000mm > Piece9: 4850mm > Piece10: 1500mm How many tubes do I need and which pieces do I saw out of each tube so > that I have as little loss as possible? And what will the loss of > every used tube be? Is it possible to translate this into a program for the HP48 > (User-RPL)? GSE1 for the HP48, by Jeff Duncombe (on Goodies Disk #3 and at hpcalc.org), a knapsack algorithm program optimized for precisely your type of problem, finds the same answer that Werner posted earlier. One of the benefits of GSE1 is that it lets you set a maximum tolerable error, which lets the program find solutions much faster. GSE1 is 170 bytes long. -Joe- ==== > GSE1 for the HP48, by Jeff Duncombe (on Goodies Disk #3 and at hpcalc.org), > a knapsack algorithm program optimized for precisely your type of problem, > finds the same answer that Werner posted earlier. One of the benefits of > GSE1 is that it lets you set a maximum tolerable error, which lets the > program find solutions much faster. GSE1 is 170 bytes long. -Joe- Well I couldn't let that pass, now could I? Here's the adaptation of KNAPSACK to accept any list, and a tolerance as well: @ KNAPSACK problem @ @ In : { object_sizes } knapsacksize tolerance @ Out: { fitting object_sizes } freespace @ @ The resulting list is such that the freespace is either less than or equal @ to tolerance, or minimal. @ If multiple solutions are possible, only the first found will be retained. @ @ Testcase : @ { 4370.5 12657.5 13505 14535.5 17603 17664 @ 34138 42642.5 61377.5 71925 } 131069.5 20. @ --> @ { 4370.5 13505 17664 34138 61377.5 } 14.5 @ @ check : #E6DAh (49) @ bytes : 297.5 @ test : 15.24_s @ 3.76_Mhz @ @ Werner Huysegoms 20021115 @ << 3. PICK SIZE { } -> o @ object_sizes f @ freespace t @ tolerance n @ nr_of_objects k @ knapsack << 0. f 0. WHILE @------------------------------------------------------------ @ NextSack @ In : Meta{CurrentKnapSack} %CurrentFreeSpace %CurrIndex-1 @ Out: Meta{NewKnapSack} %NewFreespace @------------------------------------------------------------ WHILE DUP n < REPEAT 1. + o OVER GET ROT SWAP DUP2 < { DROP SWAP } { - ROT 1. + SWAP 3. PICK } IFTE END DROP @------------------------------------------------------------ @ keep if Knapsack has a smaller FreeSpace than the previous @------------------------------------------------------------ IF DUP2 f < THEN 2. + DUPN 'f' STO ->LIST 'k' STO DUP t > END @------------------------------------------------------------ @ continue if FreeSpace > tol and CurrentKnapsack non-empty @------------------------------------------------------------ REPEAT @------------------------------------------------------------ @ DelLastOb @ Meta{ i j k } x -> Meta{ i j } x+o[k] k @------------------------------------------------------------ SWAP 1. - SWAP ROT o OVER GET ROT + SWAP END DROP DROPN @------------------------------------------------------------ @ construct result Knapsack @------------------------------------------------------------ k 1. << o SWAP GET > DOSUBS f > > Werner ==== We have iron tubes of l meters. We have to saw n pieces of different lenghts. > Example: > Tube lenght l = 12000 mm. > n=10 > Piece1: 4800mm > Piece2: 2400mm > Piece3: 1200mm > piece4: 750mm > Piece5: 200mm > Piece6: 200mm > Piece7: 8000mm > Piece8: 8000mm > Piece9: 4850mm > Piece10: 1500mm How many tubes do I need and which pieces do I saw out of each tube so > that I have as little loss as possible? And what will the loss of > every used tube be? Is it possible to translate this into a program for the HP48 > (User-RPL)? GSE1 for the HP48, by Jeff Duncombe (on Goodies Disk #3 and at hpcalc.org), > a knapsack algorithm program optimized for precisely your type of problem, > finds the same answer that Werner posted earlier. One of the benefits of > GSE1 is that it lets you set a maximum tolerable error, which lets the > program find solutions much faster. GSE1 is 170 bytes long. -Joe- The fast knapsack at hpcalc.org ( 48 and 49 version), partly made by Werner, in sys-rpl finds one solution in 1.4 sec ;-) -however, size is 411.5 bytes -Gjermund- ==== > We have iron tubes of l meters. We have to saw n pieces of different lenghts. > Example: > Tube lenght l = 12000 mm. > n=10 > Piece1: 4800mm > Piece2: 2400mm > Piece3: 1200mm > piece4: 750mm > Piece5: 200mm > Piece6: 200mm > Piece7: 8000mm > Piece8: 8000mm > Piece9: 4850mm > Piece10: 1500mm How many tubes do I need and which pieces do I saw out of each tube so > that I have as little loss as possible? And what will the loss of > every used tube be? Is it possible to translate this into a program for the HP48 > (User-RPL)? Stefaan..... I've been a bit too quick, too.. there is of course another solution for the knapsack: tube 1: {8000 2400 1200 200 200} The resulting tubes are similar tube 2: {4850 4800 1500 750} tube 3: {8000} Werner BTW the rpl knapsack program can be easily changed to accept any input list (not sorted ascendingly), and if I then give it the list sorted descendingly, it gives me tube 1 as above ==== > BTW the rpl knapsack program can be easily changed to accept any input list > (not sorted ascendingly), and if I then give it the list sorted descendingly, > it gives me tube 1 as above I love this forum! Stefaan.... ==== > We have iron tubes of l meters. We have to saw n pieces of different lenghts. > Example: > Tube lenght l = 12000 mm. > n=10 > Piece1: 4800mm > Piece2: 2400mm > Piece3: 1200mm > piece4: 750mm > Piece5: 200mm > Piece6: 200mm > Piece7: 8000mm > Piece8: 8000mm > Piece9: 4850mm > Piece10: 1500mm How many tubes do I need and which pieces do I saw out of each tube so > that I have as little loss as possible? And what will the loss of > every used tube be? Is it possible to translate this into a program for the HP48 > (User-RPL)? Stefaan..... This is the exact same problem as 'defragmenting the Flash'. There are a few solutions, none of them optimal (to find the optimal solution is only possible with backtracking, checking every possible combination, and is only feasible for small problems) One heuristic method is called 'Best Fit Descending', and goes as follows: sort the piece sizes in descending order, then: for piece i, determine the tube where it will fit 'best' ie leaves the smallest leftover piece. So, in your example: piece7: 8000 mm from tube1 (tube1 -> 4000 mm) piece8: 8000 mm from tube2 (tube2 -> 4000 mm) piece9: 4850 mm from tube3 (tube3 -> 7150 mm) piece1: 4800 mm from tube3 (tube3 -> 2350 mm) piece2: 2400 mm from tube1 (tube1 -> 1600 mm) piece10:1500 mm from tube1 (tube1 -> 100 mm) piece3: 1200 mm from tube3 (tube3 -> 1150 mm) piece4: 750 mm from tube3 (tube3 -> 400 mm) piece5: 200 mm from tube3 (tube3 -> 200 mm) piece6: 200 mm from tube3 (tube3 -> 0 mm) So you get tube1: { 8000 2400 1500 } tube2: { 8000 } tube3: { 4850 4800 1200 750 200 200 } Applying the knapsack algorithm to one tube at a time will take a lot more time, and does not necessarily come up with a better solution. (in this case, the solution is optimal and the knapsack algorithm finds tube3, the only way the pieces can combine to a full tube) rpl program for Best Fit Descending: rpl program for (a single) knapsack: @ KNAPSACK problem @ @ In : 2: { object_sizes sorted small to large } @ 1: knapsack_size @ Out: 2: { fitting object_sizes } @ 1: free_space @ @ The resulting list is such that the free_space is minimal. @ If multiple solutions are possible, only the first found will be retained. @ @ Testcase : @ { 4370.5 12657.5 13505 14535.5 17603 17664 @ 34138 42642.5 61377.5 71925 } 131069.5 @ --> @ { 4370.5 13505 17664 34138 61377.5 } 14.5 @ @ check : #CAC3h (49) @ bytes : 288.0 @ test : 40.97_s @ 3.76_Mhz -> 44366_b_s_Mhz @ @ Werner Huysegoms 20001004 @ << OVER SIZE { } -> o @ object_sizes f @ freespace n @ nr_of_objects k @ knapsack << 0. f 0. WHILE @------------------------------------------------------------ @ NextSack @ In : Meta{CurrentKnapSack} %CurrentFreeSpace %CurrIndex-1 @ Out: Meta{NewKnapSack} %NewFreespace @------------------------------------------------------------ WHILE DUP n < REPEAT 1. + o OVER GET ROT SWAP DUP2 < { ROT DROP2 n } { - ROT 1. + SWAP 3. PICK } IFTE END DROP @------------------------------------------------------------ @ keep if Knapsack has a smaller FreeSpace than the previous @------------------------------------------------------------ IF DUP2 f < THEN 2. + DUPN 'f' STO ->LIST 'k' STO DUP END @------------------------------------------------------------ @ continue if FreeSpace > 0 and CurrentKnapsack non-empty @------------------------------------------------------------ REPEAT @------------------------------------------------------------ @ DelLastOb @ Meta{ i j k } x -> Meta{ i j } x+o[k] k @------------------------------------------------------------ SWAP 1. - SWAP ROT o OVER GET ROT + SWAP END DROP DROPN @------------------------------------------------------------ @ construct result Knapsack @------------------------------------------------------------ k 1. << o SWAP GET > DOSUBS f > > Werner Huysegoms ==== > We have iron tubes of l meters. We have to saw n pieces of different lenghts. > Example: > Tube lenght l = 12000 mm. > n=10 > Piece1: 4800mm > Piece2: 2400mm [...] > How many tubes do I need and which pieces do I saw out of each tube so > that I have as little loss as possible? And what will the loss of > every used tube be? Is it possible to translate this into a program for the HP48 > (User-RPL)? Stefaan..... I believe what you're looking for is the Knapsack algorithm. Search knapsack in this page: http://www.hpcalc.org/hp48/math/misc/ Gerald. ==== > We have iron tubes of l meters. We have to saw n pieces of different lenghts. > Example: > Tube lenght l = 12000 mm. > n=10 > Piece1: 4800mm > Piece2: 2400mm > [...] > How many tubes do I need and which pieces do I saw out of each tube so > that I have as little loss as possible? And what will the loss of > every used tube be? Is it possible to translate this into a program for the HP48 > (User-RPL)? Stefaan..... I believe what you're looking for is the Knapsack algorithm. > Search knapsack in this page: > http://www.hpcalc.org/hp48/math/misc/ Sorry, I was too quick :> This Knapsack algo would help you choose which small tubes to choose to fill up a given length. But you want the inverse: cut the big tubes into small ones... Sorry for the false hopes, I'll think about it a little more... Though the Knapsack could be a start: choose which small pieces will fit into the big one. Then see how much length left there is, and now the job is to find which small piece to cut to fill the remaining length... Anybody to rescue my pityful attempt? Good luck! Gerald. ==== Just don't move, Indiana Jones, or you'll keep sinking in the sand... Toby We have iron tubes of l meters. We have to saw n pieces of different lenghts. > Example: > Tube lenght l = 12000 mm. > n=10 > Piece1: 4800mm > Piece2: 2400mm > [...] > How many tubes do I need and which pieces do I saw out of each tube so > that I have as little loss as possible? And what will the loss of > every used tube be? Is it possible to translate this into a program for the HP48 > (User-RPL)? Stefaan..... I believe what you're looking for is the Knapsack algorithm. > Search knapsack in this page: > http://www.hpcalc.org/hp48/math/misc/ Sorry, I was too quick : > This Knapsack algo would help you choose which small tubes to choose to fill up a > given length. > But you want the inverse: cut the big tubes into small ones... Sorry for the false hopes, I'll think about it a little more... > Though the Knapsack could be a start: choose which small pieces will fit into the > big one. > Then see how much length left there is, and now the job is to find which small piece > to cut to fill the remaining length... Anybody to rescue my pityful attempt? Good luck! > Gerald. ==== How much of a kerf are you going to need for your saw? Are you certain that it will cut straight enough that your cut will be at proper yield length? After answering these two questions, why go to the trouble of writing a program to do simple arithmetic? 12000-8000(P8)=4000, 4000-2400(P2)=1600, 1600-1200(P3)=400, 400-200(P5)=200(P6), total length needed is about 2-1/2 lengths at 12000mm. -- John Sullivan Jamlab Enterprises 978 725 5531 http://jamlab.home.att.net > We have iron tubes of l meters. We have to saw n pieces of different lenghts. > Example: > Tube lenght l = 12000 mm. > n=10 > Piece1: 4800mm > Piece2: 2400mm > Piece3: 1200mm > piece4: 750mm > Piece5: 200mm > Piece6: 200mm > Piece7: 8000mm > Piece8: 8000mm > Piece9: 4850mm > Piece10: 1500mm How many tubes do I need and which pieces do I saw out of each tube so > that I have as little loss as possible? And what will the loss of > every used tube be? Is it possible to translate this into a program for the HP48 > (User-RPL)? Stefaan..... ==== IÇve recently bought the hp 49 calculator as used (not from new, unfortunately), but IÇve often experienced that it without any reason somehow restarts in the middle of a calculation, when I press a key... ItÇs very annoying, and the time/date-functions on my calculator doesnÇt work either, because after a week or something the calculator goes back to January 1991.................. And I canÇt do nothing about it - so yesterday I tried to call my local HP-department to try to speak about what can be done. When I write WSLOG for the SYSTEM HALT LOG, I see mostly code A = Corrupt memory - Does anybody now what I should do from here, then??? Do I have to replace my memory? That sounds expensive..... I also see a code 3 = Execute through address 0 - anybody knows what this mean? Any help would be greatly appreciated! Martin Jorgensen. ==== I suppose that things would get much much better, if you would install the latest ROM. Anyway, the return of date to 1991 happens quite often when you have a crash, because even date/time can then be corrupt. If you set the current date/time and then directly after a crash use the command DATE you'll eventually see that date and time have been reset to their start. Go ahead and install the newest ROM, it is really worth it. Greetings, Nick. P.S. On the other hand, it could also be some library or libraries that is/are the reason(s) for the frequent warm starts. IÇve recently bought the hp 49 calculator as used (not from new, > unfortunately), but IÇve often experienced that it without any reason > somehow restarts in the middle of a calculation, when I press a key... ItÇs > very annoying, and the time/date-functions on my calculator doesnÇt work > either, because after a week or something the calculator goes back to > January 1991.................. And I canÇt do nothing about it - so > yesterday I tried to call my local HP-department to try to speak about what > can be done. When I write WSLOG for the SYSTEM HALT LOG, I see mostly code A = Corrupt > memory - Does anybody now what I should do from here, then??? > Do I have to replace my memory? That sounds expensive..... I also see a code 3 = Execute through address 0 - anybody knows what this > mean? Any help would be greatly appreciated! Martin Jorgensen. ==== > Anyway, the return of date to 1991 happens quite > often when you have a crash, because even date/time can then be > corrupt. If you set the current date/time and then directly after a > crash use the command DATE you'll eventually see that date and time > have been reset to their start. Bad, bad. Never happens with my TI-89 (or V200) :P -- P.S.: Just teasing... ==== Anyway, the return of date to 1991 happens quite > often when you have a crash, because even date/time can then be > corrupt. If you set the current date/time and then directly after a > crash use the command DATE you'll eventually see that date and time > have been reset to their start. Bad, bad. Never happens with my TI-89 (or V200) :P example politics and the like. ;-) Greetings, Nick. ==== I have downloaded the Emu48 1.30 eumulator for the HP49. I do not have an actual HP49 so I need to download an emulator ROM. The documentation says that there are emulator ROMs available at hpcalc.org, but I am not looking in the right place. I can find ROM updates with *.flash files, but I don't think that is what I am looking for. Can someone point me in the right direction for ==== Here it is: http://www.epita.fr/~avenar_j/hp/product/emu119-6.zip ==== Craig Cox escribi.97 en el mensaje > I have downloaded the Emu48 1.30 eumulator for the HP49. I do not have > an actual HP49 so I need to download an emulator ROM. I downloaded the last 49's ROM from some site... that I don't remember. Look for it in the usual sites, like JYA's page, etc... You'll find it ==== The target of the program is to count pulses all the time (at the first task), and every 10 seconds to perform some calculation. DATE TIME << @ first task. . . > 10 UBASE UVAL 8192 * 4 ->LIST STOALARM DO @ every 10 seconds. . . UNTIL KEY END How to perform that? Any help will be appreciate. Tal ==== The target of the program is to count pulses all the time (at the first task), and every 10 seconds to perform some calculation. DATE TIME << @ every 10 seconds. . . > 10 UBASE UVAL 8192 * 4 ->LIST STOALARM DO @ first task. . . UNTIL KEY END Any help will be appreciated. Tal ==== I tried to Break the RPL structure of Core into a meta-object by this way: #054AFh SYSEVAL when the program was in the stack. I didn't success to find all the real value (for the modification), Why? Tal ==== the commando RclAssembly as he is used ?? ==== Only for information, the 4th part is ready and uploaded to hpcalc. But if someone wants to have the marathon from me, don't hesitate to Part 4 is solely about plotting sequences. Greetings, Nick. ==== Is there a ROM dump utility for the 49G? ==== schrieb im Newsbeitrag Is there a ROM dump utility for the 49G? http://groups.google.com/groups?selm=akdinn$1lp$04$1@news.t-online.com Christoph > ==== On Thu, 14 Nov 2002 19:26:26 +0100, Christoph Giesselink > schrieb im Newsbeitrag > Is there a ROM dump utility for the 49G? http://groups.google.com/groups?selm=akdinn$1lp$04$1@news.t-online.com Christoph ==== The Hp48 has a series of Rules transformations for manipulating subexpressions. For instance, you can move terms to the other side of the = sign using I can't find such rewriting commands on the HP49. Is this because they ==== > The Hp48 has a series of Rules transformations for manipulating > subexpressions. > For instance, you can move terms to the other side of the = sign using You can manipulate equation from within the Equation Writer Select a part of the equation using the up-arrow key and the direction key. Then hold the LeftShift key and use the arrow key (left or right) to select how you want to move the terms. So let say you just started the EQW: You type: SIN X , up, up, = , 2 (and you get SIN(X)=2) Pressing up arrow once will select the '2' You press and hold LeftShift while pressing LeftArrow and you get 2=SIN(X) It's much faster than what the HP48 used to do, and I believe way easier ==== The Hp48 has a series of Rules transformations for manipulating > subexpressions. > For instance, you can move terms to the other side of the = sign using You can manipulate equation from within the Equation Writer > Select a part of the equation using the up-arrow key and the direction key. > Then hold the LeftShift key and use the arrow key (left or right) to select > how you want to move the terms. So let say you just started the EQW: > You type: > SIN X , up, up, = , 2 > (and you get SIN(X)=2) > Pressing up arrow once will select the '2' > You press and hold LeftShift while pressing LeftArrow and you get 2=SIN(X) It's much faster than what the HP48 used to do, and I believe way easier I discovered this feature and it is much faster than the HP48, but it won't move terms across the = sign. The term-move ability of the HP48 will convert 0 = -1 + sin(x) to 1 = sin(x) it also does things like this: 1 = x*y becomes 1/x = y Hp48 was stolen although I am extremely pleased that I replaced it with the HP49. THe HP49's equation writer is almost incomparably faster but the rewriting options of the HP48 were well thought out and easy to use. I was hoping there was a hidden menu somewhere ...) ==== thanks. So we can A=B -> B=A in the EQW. But can we also A=B -> A-B=0? I can't find a way except of course writing something like: << EQ-> - 0 = > storing it for example in 'ALLLEFT' and adding it to the commands that STARTEQW will present in the EQW. Any other possibility? Greetings, Nick. The Hp48 has a series of Rules transformations for manipulating > subexpressions. > For instance, you can move terms to the other side of the = sign using You can manipulate equation from within the Equation Writer > Select a part of the equation using the up-arrow key and the direction key. > Then hold the LeftShift key and use the arrow key (left or right) to select > how you want to move the terms. So let say you just started the EQW: > You type: > SIN X , up, up, = , 2 > (and you get SIN(X)=2) > Pressing up arrow once will select the '2' > You press and hold LeftShift while pressing LeftArrow and you get 2=SIN(X) It's much faster than what the HP48 used to do, and I believe way easier ==== Tim Richardson escribi.97 en el mensaje > The Hp48 has a series of Rules transformations for manipulating > subexpressions. > For instance, you can move terms to the other side of the = sign using > Although I use MK on my 48, I can use those old 48 features because when I am in EQW pressing (again) LS EQUATION, the old equation editor environment appears. I'm afraid that the 49's MK doesn't let you do that... ==== > appears. I'm afraid that the 49's MK doesn't let you do that... Of course it does ! ==== appears. I'm afraid that the 49's MK doesn't let you do that... Of course it does ! Is there a way of moving a term from one side of an equal sign to the other side while in equationwriter? ==== Of course it does ! Not exactly, I must say. >So let say you just started the EQW: >You type: >SIN X , up, up, = , 2 >(and you get SIN(X)=2) >Pressing up arrow once will select the '2' >You press and hold LeftShift while pressing LeftArrow and you get 2=SIN(X) >It's much faster than what the HP48 used to do, and I believe way easier I can do all this in my 48 (with your MK) and I don't see why the 49 makes it faster... But entering in the old eq writer (pressing again LS EQUATION) I can get SIN(X)-2=0 and many many other transformations as described in pages 20-22 to 20-29 of my spanish user guide. I think this is what Tim is looking for. ==== > I can do all this in my 48 (with your MK) and I don't see why the 49 makes > it faster... The question was how to move a term left, to which you answered: You can't on the HP49 My comparison between the HP49 and the HP48 was an HP48 without the MK of course But entering in the old eq writer (pressing again LS EQUATION) I can get > SIN(X)-2=0 and many many other transformations as described in pages 20-22 > to 20-29 of my spanish user guide. > I think this is what Tim is looking for. Maybe, but that wasn't the question ==== ==== > Flash reserved for the operating system. Basically I'm thinking of a > way to store a random number there to replace the nonexistant internal > serial number found in the Chinese made calcs. > But your idea has possibilities too, thanks There are ways to hide some stuff in the flash. You could actually use a full flash bank for your own purpose and disable it for use by the user. I believe that not too many calculators are affected by the missing serial port. If you want more information, or would like me to consult for you, drop me ==== > Flash reserved for the operating system. Basically I'm thinking of a > way to store a random number there to replace the nonexistant internal > serial number found in the Chinese made calcs. > But your idea has possibilities too, thanks Even more complicated would be to store the number in flash and then purge it, it will still be there but you will need a special tool to get it. The drawback of this is that it may be deleted when you write something to flash again. -- ir. P.F.Geelhoed Delft University of Technology Laboratory for Aero & Hydrodynamics Leeghwaterstraat 21, 2628 CA Delft, The Netherlands +31-15-2786656 / +31-15-2782947 (fax) p.f.geelhoed@wbmt.tudelft.nl ==== ( a timing diagram would be ideal, but I dont have the tools to make it... :/ ) Meaning: If I do some DAT0=C B ( D0 pointing an even address ) Does the Saturn *Option 1 -Reads the byte -replaces the first quartet -write them to mem -re-reads the byte -replaces the second quartet or *Option 2 -Directly pokes the byte to the chip I'm trying to interface some ligoc ships with the Saturn throught HP48(gx) ports, and it does not work as it should... :/ Many thanks -- Nipo ==== www.hpcalc.org Nicolas Pouillon schrieb im Newsbeitrag ( a timing diagram would be ideal, but I dont have the tools to make > it... :/ ) Meaning: If I do some > DAT0=C B > ( D0 pointing an even address ) > Does the Saturn > *Option 1 > -Reads the byte > -replaces the first quartet > -write them to mem > -re-reads the byte > -replaces the second quartet or *Option 2 > -Directly pokes the byte to the chip > I'm trying to interface some ligoc ships with the Saturn throught > HP48(gx) ports, and it does not work as it should... :/ ==== >www.hpcalc.org ==== Maybe this could help: http://www.hpcalc.org/details.php?id=1707 http://www.hpcalc.org/details.php?id=4923 http://www.hpcalc.org/details.php?id=1753 http://www.hpcalc.org/details.php?id=1693 I haven't checked them for their contents, but there's a chance that at least one them contains appriorate info. Otherwise you could ask Christoph Giesselink, which is more a hardware geek than me;-) Raymond Nicolas Pouillon schrieb im Newsbeitrag > Le Thu, 14 Nov 2002 21:36:05 +0100 > Raymond Hellstern eut le bonheur > d'ecrire: www.hpcalc.org why I posted to the list. Do you have a precise URL ??? -- > Nipo ==== ==== > On a 49 hitting undo immediatly will restore an accidental deletion. That seems not to be true, at least not in RPN-mode. The undo key simply restores the last stack (provided the undo-function is active). As far as I know, the only way to regain the content of a purged file in RPN-mode is to use leftshift ENTER. This key runs ANS only in algebraic mode, but LASTARG in RPN mode. For the PURGE command, it returns name and content of the purged variable whenever flag -55 is clear. But for PGDIR it returns only the name. PGDIR purges the files of a directory piecewise, making a lot of reference testing (a reason why it is slow). Thus, a directory is lost after purging it, unless you made a HOME backup, best in port 2. Such a backup, even with date and time in the backup-name, is produced by Filer2. ==== ==== > I am a novice user of a HP48SX and accidentally hit the PGDIR menu > option in the MEMORY menu with the name of a very important directory > in level 1. The directory disappeared. Since then I have, in > frustration and anger, tried several commands and arguments and have > shut it off and back on again. I hereby admit a stupendous lack of > intelligence. Does anyone know of a way of recovering this directory > for your help. Matt Wentland > went1180@sover.net Sorry, Matt: Your dir has disappeared and there is no way for recovering it... A backup of your important stuff in your PC can be a good solution. ==== I bought a HP49 a week ago. According do info I came upon on the web, the serial number indicate that it was manufactured in week fourty-something of 1999!! That's two years ago. My first Question is about the ROM flash. I scrolled carefully through the directions on the web, and tried to follow it carefully to avoid what I am doing now, bothering people with probably stupid questions. I upgraded from ROM 1.18 to 1.19-6 and I was instructed to first save the contents of a certain 64KB of mem as a list object in the home directory. I followed the procedures, and checked that the list was created in my home directory. I flashed the ROM without any problems and when I had to do the last step, copying the contents of the list in the home directory back to some port or somewhere, I discovered that the list was empty???? Did I do something wrong, or was that 64KB of memory suppose to contain created-by-user stuff, that mine was empty, since the calculator was still brand new and never had user defined objects stored in it? I would be very gratefull if anyone can shed some light on this situation. On some websites a faulty serial port protection circuit is described. How do I know if my calculator (Since it is a 1999 model) is not one of those first editions with the faulty serial port? Where do I find good documentation/tutorials for the HP49G. Around here most people uses the 48 series. The documentation that comes along with the calculator does not seem to be so helpfull for the novice, first time HP owner. really impressed with this group. Kaspaas ==== > I bought a HP49 a week ago. According do info I came upon on the web, > the serial number indicate that it was manufactured in week > fourty-something of 1999!! That's two years ago. My first Question is about the ROM flash. I scrolled carefully through > the directions on the web, and tried to follow it carefully to avoid > what I am doing now, bothering people with probably stupid questions. I upgraded from ROM 1.18 to 1.19-6 and I was instructed to first save > the contents of a certain 64KB of mem as a list object in the home > directory. I followed the procedures, and checked that the list was > created in my home directory. I flashed the ROM without any problems > and when I had to do the last step, copying the contents of the list > in the home directory back to some port or somewhere, I discovered > that the list was empty???? Did I do something wrong, or was that 64KB > of memory suppose to contain created-by-user stuff, that mine was > empty, since the calculator was still brand new and never had user > defined objects stored in it? I would be very gratefull if anyone can > shed some light on this situation. You did it right, but as you guessed, the list was intended to contain objects that the user had stored in flash memory (port 2). Just purge the variable containing the list and the program that was meant to save those variables. > On some websites a faulty serial port protection circuit is described. > How do I know if my calculator (Since it is a 1999 model) is not one > of those first editions with the faulty serial port? I'll second that! You'll also see some nonsense posted, but someone will usually respond to the nonsense.