A449 I have a data stream of know length, which I wish to store in a variable. (I think it has got odd parity). Does anyone have a program I can look at, or know where I can find some more info. (the HP I/O guide was not much help. Rupert Well, which calculator? What is the length of the data stream? You're probably looking for the SRECV command, and if you're not quite sure of just when the data might be arriving, you might want to use the BUFLEN command in a DO loop. Note that both of these commands leave it up to you to determine what (if anything) to do about any I/O error. Also see the PARITY command. If you're using a 48 and the data stream is more than 255 bytes long, then you might want to edit the reserved variable IOPAR to use receive pacing, as long as the data doesn't contain characters 19 or 17 decimal, which would be treated as XOFF or XON signals. Otherwise, you'll probably either have to have the data broken up into blocks that the calculator can handle, or use one of the built-in file transfer protocols. -- James Look at Joe Horn's archives I haven't found anything in the cheesy manuals, but it seems to be true, at least for my machine. If the 49g is in RPN mode, pressing on any of the plot keys (Y= to TABLE) just makes it beep. Putting it into algebraic lets me plot. Am I brain dead, is my 49g, or is this the way it's supposed to be? Doesn't seem like it should work that way. BTW, the calc is at 1.19-6, but it did the same thing with 1.18. If you look back over this list, you will find that the answer is there. I'll save you the trouble of looking as this caused me some trouble also. You must hold down the shift key while hitting the F-keys. Hope this helps, Matt Additionally, it sounds like you have not gotten the Advanced users guide. Check out Hpcalc.org(hp49 section, documentation). They have it all. at plot Can HP solve this diff. equation numerically? y'=-100y+id(-y+10sin(2 pi 50 t))/1e-4 and where id(vd)=1E-14*(e^(1.609E-19*vd/(1.381E-23*298))-1) with the initial condition y(t=0)=0 . Run t from 0 to about 0.04 to 0.1, with steps of dt=.0005 to .002 max. My TI-89 can do this using Rk, producing a graph after several painful minutes. Ouch! Euler fails miserably. This is the sort of problem that I had mentioned at times about wondering if the calculators can do it. Unfortunately, this is the simplest possible case of the general class of problems which interest me, which usually involve systems of two or three (or more) first order non-linears like this one. These are electrical engineering problems. The equation above generates the waveform of a half-wave rectifier with capacitor filter and resistive load. Generally the calculations are done by SPICE, which is optimized for stiff equations. (I noticed Runga-Kutte really bogs down on the corners of the solution.) SPICE uses trapezoidal or Gear integration, and I do it in Mathematica as well using whatever it wants (I think an adaptive Adams-Gear algorithm). And of course using much more computing horsepower than a little calculator. It will be interesting to hear how the HP fares with this. Comments appreciated. -- _____________________ Christopher R. Carlen crobc@earthlink.net I don't understand your syntax. If you tell me what you punched into the TI89, I can identify your arguments. I get this: y'=-100*y+(1E-14*(e^(1.609E-19*(-y+10*sin(2*pi*50*t))/(1.381E-23*298))-1)) /1 E-4 y(0)=0 initial dt=.0005 Vertical view: [-2,12] I don't really get: Run t from 0 to about 0.04 to 0.1, with steps of dt=.0005 to .002 max. y'=-100*y+(1E-14*(e^(1.609E-19*(-y+10*sin(2*pi*50*t))/(1.381E-23*298))-1))/1 max. Very well then, here is the more direct approach: FLDOFF t0=0 tmax=.1 tstep=.001 tplot=0 xmin=0 xmax=.1 xscl=0 ymin=-12 ymax=12 yscl=0 ncurves=0 diftol=.001 to .05 and various other tries. I suppose I should have said *Step* t from 0 to 0.04 or to 0.1, with a step size of delta_t of 0.0005 to 0.002. Good luck! -- _____________________ Christopher R. Carlen crobc@earthlink.net I used a delta_t of 0.0005 (200 steps). I thought at first that I could expect a 6-7 hours calculation time, but the graph was complete in only 100 minutes. Pretty violent differential equation, for a calculator, it seems. MathCad 7 (yeah, I know, but it was all I had the patience to fire up ;-) solves and graphs 50000 points (delta_t of 2*10^-6) in around 2.4 seconds. The HP49G should be able to do this (200 points) in maybe 1-3 minutes tops. There's a little challenge for a '49-programmer ;-) the Wow. 7 and a Yes, and since this is the simplest possible case of the typical EE circuit simulation, it looks like I'll just have to wait until I get a high end PDA running some good math software or the real SPICE to be able to do this sort of thing in the palm of my hand. On the PC, EEs run these sorts of simulations, change parameters, run again, etc., in several second turnaround times. Can't wait for a bunch of minutes, that's for sure. Maybe we can try to get some quantitative benchmarks out now. Can you accurately time say, the 200 point case from t=0 to t=0.1, ie. a delta_t of 0.0005? And mention exactly what hardware and software you're using. I'll post my times: For the equation: y'=-100*y+id(-y+10*sin(314.159*t))/1e-4, y[0]=0 and with the function id(vd)=1E-14*(e^(38.9411*vd)-1) and the TI-89 parameters: FLDOFF t0=0 tmax=.1 tstep=.0005 tplot=0 xmin=0 xmax=.1 xscl=0 ymin=-4 ymax=12 yscl=0 ncurves=0 diftol=.001 I get 370.5 seconds on a TI-89 with 2.08 OS. 380 seconds with diftol=0.0001 Fails to complete with diftol=0.05 it in <= 0.01 seconds using Gear integration and a lot of fussing with accuracy parameters to get it to not overflow/underflow. Good day! -- _____________________ Christopher R. Carlen crobc@earthlink.net How could I use Solve in case like this, in a 48G? Eq: A = B + C A = 8 B = 15*sin(377*Y) C = I would solve it There can be ANY number of solutions to this. No, there is an infinite number of solutions - not any number. There's only one symbolic solution though: 'C=8-15*SIN(377*Y)'. In a sense we were lucky 'Y' wasn't defined - what a mess to solve it it was ;-) I sit COWrected! 8 'A' STO '15*sin(377*Y)' 'B' STO 'A=B+C' EVAL 'C' ISOL You will find interesting things in RS SOLVE and RS SYMBOLIC Arnaud If you dont have Erable or Alg48 installed, do this: 'C=8-15*SIN(377*Y)' optionally {A B} PURGE afterwards. Do I miss something or do I see TWO unknowns? (C & Y) Can anybody tell me how to convert from decimal degrees to degrees minutes seconds? Also if anyone knows sysrpl I would like to know the command there too. AND maybe using something like Nosy you can peek into the inner code and maybe find the SysRPL pointers. Extable has GETNEAR function for finding SysRPL commands by name. I hope this helped! minutes there I sold my 49G some months ago and now regret it. Before I go off and spend $160 for a new one, perhaps someone else here has one they wish to part with for a reasonable price? -Al Arduengo -- Place your hand on a hot stove for a minute and it seems like an hour. Sit with a pretty girl for an hour and it seems like a minute. That's relativity. -Albert Einstein Does this mean that you will coming out with a spreadsheet for the 49? Oh, BTW, 'good to see you back. relatively inactive in the calc programming area. When I sold my 49, it was to the son of another Engineer where I work. He asked and I figured since I hadn't used it in some time, why keep it? It contained a 49 version of exAL spreadsheet in the flash :-( I will probably restart the project using ideas from the 48 version of code. My goal for exAL was always speed over looks so it doesn't look as pretty as XCELL. I hope to get one for $100 or less because I am putting most of my free cash into my meager astronomical hobby. Man, is *that* ever expensive. I have also been writing a set of utilities for observation session planning, etc primarily in the beginning to assist me in getting my Messier Certificate. Rgds, -Al -- Place your hand on a hot stove for a minute and it seems like an hour. Sit with a pretty girl for an hour and it seems like a minute. That's relativity. -Albert Einstein I see a bunch on Ebay, starting at around USD 50. Regard HP48 software download page is here: I like it, however being able to use [ON] key to abort would be nice if not too much work. When the screen is turned of having the indicators blink BZ-style would be good to reassure that the calc hasn't stalled In polar mode, being able to set the theta range would be good when studying functions that are not 2pi periodic And the biggest comment is that I can't have the parametric plotting working. Maybe I don't use it correctly so I am going to go back to the manuals but I guess there is some problem there. Arnaud When I enter the expression INTVX(SQRT(SQR(sin(x)+1)+ SQR(cos(x))) I cannot get an answer. I there a way to integrate? I have heard of EXPLN and some other functions. How would I approach this with the HP49G? GN Check www.integrals.com. If Mathematica cannot solve this, most likely it has no solution. cannot some Mathematica can do it, I've just check it out.The solution provided by www.integrals.com lacks some simplification though. cannot I've seen that HP doesn't sell the HP32sii on the internet (there is just the HP20s). Is the 20s better than the 32sii ? I've got to find a programmable calculator but NOT graphical, don't you think that the CASIO fx-5500LA is the best ? No, I don't. hp 15c or hp 32sII. If you want more: hp 42s. Unfortunately, none of them is still in production and you must go to ebay... It seems as I convinced you... but I feel that my answer was hard. I've programmed Casio's and Hp's since 1981 and I really think that RPN is much better than algebraic and formula programming. Good luck in your bids New WinHP v3.7 Now supports HP49 native file editor format http://winhp.sourceforge.net http://winhp.sourceforge.net/download.htm Jaime Meza I have a small question for those of you that code extensively in SysRPL. It's a problem I had a long time ago, but I never found a clear solution - not even by asking here. If I have a simple SysRPL program, say :: CK1&Dispatch #1 %2 %+ ; #0 SomethingElse ; ; The above program adds 2 to its argument, if that argument is a real, otherwise it does something else. That something else I won't to be return its own program name, with the argument unevaluated. If I call the program P, the examples below will illustrate what I mean: Along the same lines it should be possible to use the program in an algebraic contents, like this: No command in any library I've programmed thus far, will accept such algebraic containment - for example will 'NINT(1,2,X^2,X)' [ENTER] result in an Invalid Syntax error, instead of.'NINT(1,2,X^2,X)' on the stack, which then could be EVALuated to 2.33333333334. How does one go about making library commands act both like commands, but accept being treated like a function? Exactly like the bulit-in ABS does - you can enter 'ABS(-X)' in the command line, and return it to the stack with [ENTER], or you could have -2 on the stack, and merely run ABS (either type it in or push the left-shifted division-key) and get 2. Does anyone know what I'm rambling on about? looking for. Taking your small program as an example, here is the modified version that accepts symbolic input (Jazz syntax) : ASSEMBLE CON(3) 0 RPL :: CK1&Dispatch #1 :: %2 %+ ; 10 :: CODE LASTROMWDOB EQU #807D9 * #80829 for the 49. GOSBVL =SAVPTR D0=(5) LASTROMWDOB A=DAT0 A D0=A D0=D0- 6 A=0 A A=DAT0 X R0=A D0=D0+ 3 A=0 A A=DAT0 B R1=A GOVLNG =Push2#Loop ENDCODE ; ; If the argument is a real then everything works as usual. If it's in specially. For the symbolic case an explanation of the cknumdsptch1 word is in order. If numeric mode (for functions) is enabled it the second object after cknumdsptch1 . Otherwise, if symbolic mode is xSYMfcn and xfcn respectively, explodes the object on level 1 (if it's a symbolic), evaluates the object bound to xSYMfcn and then rebuilds the symbolic with CKSYMBN. If the object on level 1 is an equation then this process is repeated for both sides. With this knowledge you can probably see how the program works. One detail that might be confusing is the code object. I use this to get the ROMPTR associated with the currently executing library routine so that changes to the order of the library routines or the library ID will be transparent to the program. You can hard code the ROMPTR if you want though. Note: About code that gets bound to xSYMfcn. This creates a symbolic according to the standard representation of a non built-in function application ie. SYMBOL arguments SYMBOL ID function ; numberOfArguments xFCNAPPLY ; One last detail that still needs explaining is the small bit of assembly before the library routine name declaration. This is a property list that defines various attributes of the object that follows it such as if it's allowable in algebraics and many other properties that need not concern us here. All you need to know is that 3 zero nibbles preceding a named library routine is the magic formula for making it allowable in symbolics. in which The above also takes care of this. with type Hope this helps... ---------------------------------------------------------------------------- --- before replying. I'm not that good at Jazz syntax, but I translate the above to something along the lines of (MASD): CODE CON(3) 0 ENDCODE !RPL :: ... This won't assemble, though.....I must be daft as a brick. Well, I'll look You don't need this. The 3 nibbles before are used only to specify that this command (here P) is in fact a function. This is used by the compiler to know if doing something like 'P(value)' will be accepted or will yield a Invalid Syntax error. Unfortunately, I don't think CRLIB or MASD allow you to do such thing, only MAKEROM on the PC will. (I do not know about Jazz) only Arghh!! Nooo! But I want to do it? This is one of the first real limitations I've run into with the HP49G - who can and will fix it? ;-) How about if I change or add those three nibbles after compilation? Can't be done either? into be You have to write your library yourself, so that it can be compiled with ASM, instead of just writing the commands and invoking CRLIB. I have a template somewhere - but I can't find it this instant. Werner be adding the three nibbles is quite easy to do by hand add the three nibbles add three to the length of the lib and recalculate the four checksum nibbles at the end I'll write a hacking code that does this tonight in the train so you can do it automatically -- This message was written with 100% recycled electrons Pivo That won't be so easy. By default MASD enters one nibble before the name definition (8) to say it's a command. You need to replace it whith 3 characters. So not only you need to replace a 8 with 000, but then you will have to recalculated all the offsets, plus the checksum. Recalculating the offsets is definitely not a trivial task. If I remember correctly, LIBMAKER v5.0 by Christian Bourgeois allows you to create such library, I don't know if it has been ported to the HP49 (won't be difficult, I did the port for the HP48GX from the HP48SX). Otherwise, you have to build your library *by hand*. In fact, using 000 to say it's a function is only one of the aspect of it. Every single bit of this value has a meaning. If it was a command, the bits are as followed: ASSEMBLE CON(1) (nonALG)+0*(hasHELP)+0*(hasALIAS)+0*(hasPDATA) RPL :: hasHELP is not used anymore. Here is the source code of NEG: ASSEMBLE **miscdoc+****************************************************************** *** ** prop_list defining field for an algebraic function **+miscdoc****************************************************************** *** CON(1) 0*(hasFORM)+0*(hasINTG)+0*(hasWHERE)+0*(hasVUNS) CON(1) 0*(hasDER)+0*(hasINV)+0*(hasCOLCT)+0*(hasEXPND) CON(1) 0*(hasHELP)+(hasPDATA) RPL :: CK1&Dispatch ONE ( % ) %CHS zint QNeg ( FLASHPTR ) TWO ( C% ) C%CHS FOUR ( arry ) MATCHS TEN ( sym ) SYMCHS EXT UMCHS hxs bitneg grob NEGgrob seco NEGPICTgrob ; RPL **miscdoc+****************************************************************** *** ** algebraic function property list elements **+miscdoc****************************************************************** *** ** help data (if present) ( Textbook data ) * GDATACHS * parse data (if present) ASSEMBLE =CHSpdata CON(5) =DOHSTR REL(5) end2 CON(1) 0 CON(1) pdOP CON(1) pdEX CON(1) 8 (same as * /) end2 RPL * derivative (if present) * D/DCHS * inverse (if present) * INVCHS * COLCT data (if present) * EXPND data (if present) * FORM menu (if present) * MANMENUCSIV * Integral Data (if present) * WHERE Building Data (if present) * very-unsyminner Data (if present) ---- going to work on it. Most of the fields however have no meaning on the HP49 as the CAS and the decompiler now use static table. it's I added 000 after the name and before the body and it works!!! so from 87B4000D9D20... I made 87B4000000D9D20... Why does this also work? I will change my code to do the things you mentioned but for now you can use this. recalculating is quite easy, I admit that I forgot to mention that in my previous post. you need to change the hash table and the offset to the config object This code takes two arguments: the lib and a real/zint the zint is the id of the rompointer that you want changed into a function so: 2: library 1207 1: 0 changes the first rompointer into a function. the code is sparsely commented but you should be able to read it :: CK1&Dispatch #8F1 :: COERCE CODE GOSBVL POP# % get romptr CLRST R4=A A GOSBVL PopASavptr % get lib R3=A A D0=A D0+5 C=DAT0 A % length of lib C+8 A % add prologue and nullnibs GOSBVL CREATETEMP GONC MEMOK GOVLNG GPMEMERR *MEMOK A=R3 A AD0EX % D0= old lib D1=A % D1= new lib R0=A A A=DAT0 A % copy prologue DAT1=A A D1+5 D0+5 A=DAT0 A A+3 A % add 3 to length DAT1=A A D0+5 D1+5 C=0 A C=DAT0 B % title length C+1 A % add second length field *NOTITLE C+C A C+20 A % copy offsets COPYDN C=DAT0 A C+3 A % config offset DAT1=C A D0+5 D1+5 A=DAT0 A % link prologue DAT1=A A D1+5 D0+5 C=DAT0 A % link length C+5 A % add hash prologue COPYDN C=DAT0 A % hash length DAT1=C A D0+5 D1+5 GOSBVL DIV5 % # of romptrs +1 C-2 A B=C A R1=C A % # of romptrs -1 C=R4 A % func romptr B-C A % numer of romps to be moved -1 A=C A C+C A C+C A C+A A COPYDN % copy offsets *HASH A=DAT0 A A+3 A % add 3 to offset DAT1=A A D0+5 D1+5 B-1 A GONC HASH *OUT LC 00007 COPYDN % copy nibble libid romptr id D0-3 A=DAT0 X % romptr id D0+3 C=R4 A % func romptr C=0 A DAT1=C X % add the zeros D1+3 *NULL C=R1 A % last romptr ST=1 9 *LAST CD0EX D0=C D=C A GOSBVL SKIPOB C=D A CD0EX C-D A COPYDN % copy romptr body C=R3 A CD0EX D0+5 A=DAT0 A D=C A D0=C C=R3 A C+A A C-D A C+1 A COPYDN % copy rest of lib A=R0 A D0=A D0+5 A=DAT0 A A-4 A GOSBVL DoCRC % new crc P=3 DAT0=A WP P=0 GOVLNG GPPushR0Lp ENDCODE ; ; @ -- This message was written with 100% recycled electrons Pivo WOW! there is a bug in the code when the function rompointer is the last one in the lib please use this code instead, it has the bugfix and changes the 8 into three zero's like JYA said. It now also checks if the rompointer id is valid CHECKSUM: #D624h, 272.5 bytes :: CK1&Dispatch #8F1 :: COERCE CODE GOSBVL POP# % get romptr CLRST R4=A A GOSBVL PopASavptr % get lib R3=A A D0=A D0+5 C=DAT0 A % length of lib C+7 A % add prologue and nullnibs GOSBVL CREATETEMP GONC MEMOK GOVLNG GPMEMERR *MEMOK A=R3 A AD0EX % D0= old lib D1=A % D1= new lib R0=A A A=DAT0 A % copy prologue DAT1=A A D1+5 D0+5 A=DAT0 A A+2 A % add 2 to length DAT1=A A D0+5 D1+5 C=0 A C=DAT0 B % title length C+1 A % add second length field *NOTITLE C+C A C+20 A % copy offsets COPYDN C=DAT0 A C+2 A % config offset DAT1=C A D0+5 D1+5 A=DAT0 A % link prologue DAT1=A A D1+5 D0+5 C=DAT0 A % link length C+5 A % add hash prologue COPYDN C=DAT0 A % hash length DAT1=C A D0+5 D1+5 GOSBVL DIV5 % # of romptrs +1 C-2 A B=C A R1=C A % # of romptrs -1 A=R4 A LC 00203 GOVLNG GPErrjmpC *ERR C=R4 A % func romptr B-C A % numer of romps to be moved -1 A=C A C+C A C+C A C+A A COPYDN % copy offsets *HASH A=DAT0 A A+2 A % add 2 to offset DAT1=A A D0+5 D1+5 B-1 A GONC HASH *OUT LC 00007 COPYDN % copy nibble libid romptr id D0-3 A=DAT0 X % romptr id D0+3 C=R4 A % func romptr D1-7 C=0 A DAT1=C X % add the zeros D1+3 D0-6 LC 00006 COPYDN *NULL D0-3 A=DAT0 X % romptr id D0+3 C=R1 A % last romptr ST=1 9 *LAST CD0EX D0=C D=C A GOSBVL SKIPOB C=D A CD0EX C-D A COPYDN % copy romptr body C=R3 A CD0EX D0+5 A=DAT0 A D=C A D0=C C=R3 A C+A A C-D A C+1 A COPYDN % copy rest of lib A=R0 A D0=A D0+5 A=DAT0 A A-4 A GOSBVL DoCRC % new crc P=3 DAT0=A WP P=0 GOVLNG GPPushR0Lp ENDCODE ; ; @ -- This message was written with 100% recycled electrons Pivo three I forgot to mention that the code only works for libs created with CRLIB because it assumes that the config object is at the end of the lib (and present) and it will also fail when there is a $extprg If you want I can fix it. I knew that it seemed too easy :-) -- This message was written with 100% recycled electrons Pivo and I found another bug, with hidden rompointers this version fixes it all (hidden rompointers, $extprg, $message) the lib still needs to be build with CRLIB because of the order of the various parts sorry if I caused any TTRM's :: CK2&Dispatch #8F1 :: COERCE CODE GOSBVL POP# % get romptr CLRST R4=A A GOSBVL PopASavptr % get lib R3=A A D0=A D0+5 C=DAT0 A % length of lib C+7 A % add prologue and nullnibs GOSBVL CREATETEMP GONC MEMOK GOVLNG GPMEMERR *MEMOK A=R3 A AD0EX % D0= old lib D1=A % D1= new lib R0=A A A=DAT0 A % copy prologue DAT1=A A D1+5 D0+5 A=DAT0 A A+2 A % add 3 to length DAT1=A A D0+5 D1+5 C=0 A C=DAT0 B % title length C+1 A % add second length field *NOTITLE C+C A C+10 A COPYDN C=DAT0 A ST=1 10 *MESS LC 0000A COPYDN C=DAT0 A C+2 A % config offset *NOCONF DAT1=C A D0+5 D1+5 A=DAT0 A LC 0C5D0 LC 00010 COPYDN *EXT C=DAT0 A DAT1=C A D0+5 D1+5 C=DAT0 A COPYDN *NOMESS A=DAT0 A % link prologue DAT1=A A D1+5 D0+5 CD0EX D=C A D0=C C=DAT0 A % link length COPYDN CD0EX B=C A C=D A D0=C D0+85 C=DAT0 A AD0EX C+A A BCEX A D0=C C-B A GOSBVL DIV5 C-1 A R2=C A % # of romptrs -1 C=DAT0 A % hash prologue DAT1=C A D0+5 D1+5 C=DAT0 A % hash length DAT1=C A D0+5 D1+5 GOSBVL DIV5 C-2 A B=C A A=R4 A LC 00203 GOVLNG GPErrjmpC *ERR C=R4 A % func romptr B-C A % numer of romps to be moved -1 A=C A C+C A C+C A C+A A COPYDN % copy offsets *HASH A=DAT0 A A+2 A % add 3 to offset DAT1=A A D0+5 D1+5 B-1 A GONC HASH *OUT LC 00007 COPYDN % copy nibble libid romptr id D0-3 A=DAT0 X % romptr id D0+3 C=R4 A % func romptr D1-7 C=0 A DAT1=C X % add the zeros D1+3 D0-6 LC 00006 COPYDN *NULL D0-3 A=DAT0 X % romptr id D0+3 C=R2 A % last romptr ST=1 9 *LAST CD0EX D0=C D=C A GOSBVL SKIPOB C=D A CD0EX C-D A COPYDN % copy romptr body C=R3 A CD0EX D0+5 A=DAT0 A D=C A D0=C C=R3 A C+A A C-D A C+1 A COPYDN % copy rest of lib A=R0 A D0=A D0+5 A=DAT0 A A-4 A GOSBVL DoCRC % new crc P=3 DAT0=A WP P=0 GOVLNG GPPushR0Lp ENDCODE ; ; @ -- This message was written with 100% recycled electrons Pivo Hmm, I thought the three nibbles belonged to the function, not the library? Do you mean I should search for the proper function in the library Hex-string? library? you might be right, I'll look into it -- This message was written with 100% recycled electrons Pivo On Sat, 07 Sep 2002 22:45:53 -0500, Jonathan Busby Get rid of the ID in SYMBOL ID function ; above . ;) ---------------------------------------------------------------------------- --- before replying. Does anybody have an example of how to code the input from in sysrpl please? MC Yesterday I ordered a HP 49G. It will be here Tuesday the 10th. Did I do a dumb thing ordering a calculator that has been discontinued? If so don't tell me ;) honors class and will hopefully be able to use it well into college, even if there are better calcs out by then. Everyone else and their dog is using a Ti 83-Plus but I've used the 49G emulator a lot and the 83s just drive me nuts! (Does it bug anybody else that you have to hit second and then mode to quit something? Don't you quit a lot more often than you change calculator settings?) ANYWAY...what do I need to do as soon as it gets here and what should I know about it up front? Ryan Heck, no! Lots of old timers still think their 67 or 41 or (insert your particular favorite here) was the BEST calcualtor EVER made....just because it might be discontinued doesn't mean that it will stop working! It should be quite usable for the foreseeable future....and it's not overkill if you really use it as a tool to learn your math better and not just as an appliance to to the math for you... The TI 83 and 89 etc are ok, but I think you will find you will be able to make the 49 do things the TIs can't Get thee to www.hpcalc.org !! (get a cable, update the ROM and then check to see what programs will be useful for your classes....and always, always, Good luck, Roger Metcalf Arlington, Texas, USA It has not been discontinued - yet. Eventually every calculator will be. I'm still using my HP-41CX. X [ON] cancels in the HP 49G and I think ergonomically you have chosen the best of the best. X Get yourself at least the Vol.I of the Urroz's HP 49G books http://www.engineering.usu.edu/cee/faculty/gurro/myBooks.htm Read this news group regularly and remember to use Google: There are a lot of useful programs and documents in the www.hpcalc.org Oh! So that's why... I never used that translucent slide-in cover... Do you know that you have to press from the center in order to let it slide out easily. I took off the batteries for 3 minutes, the time the condensator would go empty and my libraries deleted... However when i put the batteries back in, the calculator wont start :(:( I dont know whats wrong :( Lopez You could use the pinhole reset. For this you have to remove the upper right rubber foot, when looking at the back side of your calc. There's a small hole with a letter 'R' nearby. Take a needle and put it *carefully* into the hole for a short moment. Raymond Sorry it does not work... Lopez leave the batteries out for an extended period, say even 24 hours. short the + and - together to help drain the charge. It will come back to life ... be sure to understand http://www.anti-matrix.net the + But be sure NOT to reverse the polarity of the batteries when putting them in. This will damage your calc. For further info on this topic, check out www.hpcalc.org Raymond them Finally got it working. My hands were sweaty so i guess that might have been the problem :) I truly appreciate the help you folks gave me Matthias Lopez Filer1 and Filer2 (all in Filer1.zip) on my site below with an option Zoom on the Z-key for scanning a file whose name starts with a letter to be typed in. The essentials of the Zoom option have been created by really useful if a directory or port has many files. It got the name Zoom for mnemotic reason. I would prefer Filer2 with its 2-page appl menu. The 2nd page contains the Transfer-options, in particular a toggling menu key for ASCII/BINARY. As a matter of fact, one should find a balance between the number of active hardkeys and the number of menu pages. I hope that Filer2 realizes the right balance. Have fun, Wolfgang ftp://ftp.math.fu-berlin.de/pub/usr/raut/HP49/tools PS. Since I have got no working 49 at present, I used the MASD PC-tools. This took me 3x more time than I'd have needed on the HP49 :-) I felt like Beethoven when he - already completely deaf - composed his famous string quartet op. 135 Muss es sein? (Must it be?). The only way to get satisfaction from a creation in such a situation is to *imagine* how other people might be pleased. I'm in a better situation than was Beethoven since I may still read whether you're please or not; the mentioned opus 135 was published only in 1827, after Beethoven's death ... Best wishes, Walter work. Filer1/2 have been updated to v. 12.2002, probably the final version before ROM 19-7 (in which several features of Filer1/2 will be built-in). Filer2 has on menu-page 2 a new transfer option. The ASCII/BINARY toggler has been replaced by the option IOP? (are IO-parameters OK?) which sets a menu for toggling all relevant IO-parameters - what is normally done with 106 MENU or by the 49-TRANSFER screen. But the IOP?-menu makes this setting much faster. Ideal for people who like fast data transfer and seldom use the time-consuming Connectivity Kit. Ideal also for data exchange between two calculators. ftp://ftp.math.fu-berlin.de/pub/usr/raut/HP49/tools PS. What I'm particularly interested in is JHM's opinion on Filer2. All of what he was dreaming of is realized ... permission? Nothing forbidden, should run ! PS. There is a new OT49-version on my site. The only change is that the BZ-toggler ~ got still more power. It looks whether a code object is already compressed and decodes it appropriately. For instance, ACC can now be decoded by everybody. Jurjen Bos and I agreed that's time now to reveal the secret :-) For people that want LibEx 4.2; you can download it at: http://www.ahd.tudelft.nl/~peter It converts directly from port memory, and has the option not to rename rompointers to variables. -- This message was written with 100% recycled electrons Pivo work. Filer1 has been updated again, to include also XRECV as an option. This waits for input of one or several new names for receiving via XMODEM. More convenient than doing it on the time-devouring TRANSFER screen. The V-key displays besides ROM and CAS version also the current filer version which is 11.2002 meanwhile. Note that the filers have still 1.2 KB only :-) Have fun Wolfgang PS. In ROM 19-7, the ability of Filer1/2 of directly driving into the ports by pressing 0,1,2 will be built in. Searching for a name will be realized by setting a special SEARCH environement with active alpha key. This has its advantages but also disadvantages, compared with the simple search-management in Filer1/2 - one may forget to hit the alpha key for leaving this environement in time and has to start the search again ... I have one question: How can I become a member of this newsgroup? As I have no experience with the use of newsgroups it would be nice if somebody helped me with some information ! Best wishes Bernd Bernsteiner Welcome! You've found your way to the newsgroup and that's the hardest part! This group is not a private list where you must request to be put on it--just come on back from time to time to see what's going on. The list is populated by a bunch of very nice and very helpful folks... Roger Metcalf Arlington, Texas, USA (in the shadow of the giant TI world headquarters) I hope, your HP-Calculator helps you bringing some light over the shadow of the TI-Headquarter building ! ;-)) Bernd put list put list Hey just curious, what do you use your hp49 for? Calculating amounts of enamel to apply to teeth? Nitrous oxide mixing ratios? I use mine for calculus, but i am sure you don't use yours to scrape calculus from teeth? No wonder your screen is all scratched up!!;) I have an HP48G+. How do I make custom units? Can't find anything informative. Example: 1_p = 1 x 10^-12 (pico) or .000000000001 ohms. ~Chris ....and if you want create your own units menus, use Unitman from Wolfgang Rautenberg. www.hpcalc.org ftp://ftp.math.fu-berlin.de/pub/usr/raut/hp48/tools/ pico [p] is a built-in unit prefix, which can be applied to any other unit. You can directly convert to any desired particular output units using CONVERT, e.g. (note that GW represents the ohms symbol): 32.4_GW 1_pGW CONVERT You can also put desired units into a custom menu; e.g.: { 1_GW 1_kGW 1_MGW 1_pGW } MENU This menu allows you to create a value using one of the unit prefixes, then convert it to use one of the other prefixes (unshifted unit menu keys perform multiplication, left-shifted unit menu keys perform conversion, right-shifted unit menu keys perform division). If you want a general program to adjust *any* unit expression, so as to vary the unit prefix over all possible values, much like the ENG key on some Casio calculators, try these: HP48 versions: http://hpcalc.org/hp48/math/misc/casioeng.zip http://hpcalc.org/hp48/math/misc/unitscal.zip HP49 versions: ------------------ http://www.mum.edu . also take a look at UTOOL 2.8 http://www.hpcalc.org/details.php?id=4612 The best thing for units IMHO. from the docs: This library provides tools to deal with units. It contains - A tool for fast interactive access to your favorite units, without having to dig through the multi-page unit menu. I don't think there is a more efficient way to work with UNITS on the HP49G or any other calculator. - USIMP, a configurable inverse UBASE command. - Commands to compute with non-SI base units (Planck, cgs,...) Also included are re-implementations of the most useful HP48 utilities: - Jack Levy's MUC. - Matt Austern's unit converter for high-energy physics. -- This message was written with 100% recycled electrons Pivo 3.24E19_pOhm. The HP4x series of calculators support these prefixes (page 10-5 in your manual): Prefix / Name / Exponent: Y / yotta / +24 Z / zetta / +21 E / exa / +18 P / peta / +15 T / tera / +12 G / giga / +9 M / mega / +6 k or K / kilo / +3 h or H / hecto / +2 D / deka / +1 d / deci / -1 c / centi / -2 m / milli / -3 u (the greek letter) / micro / -6 n / nano / -9 p / pico / -12 f / femto / -15 a / atto / -18 z / zepto / -21 y / yocto / -24 You cannot use prefixes if the resulting unit matches another built-in unit. Matches: min, Pa, da, cd, ph, flam, nmi, mph, kph, ct, pt, ft, au, cu, yd & yr. If you run into making custom units (like _yd^3/cm*W or _bytes), or the above prefixes aren't enough, write again. Before writing, look into the unit 1_?. Also see if you can find these units somewhere in the calculator: _rpm, _dB, _gmol & _lbmol ;-)). BTW, I am meaning specifically SI units kinda like how it is done here http://www.ex.ac.uk/cimt/dictunit/ccprefix.htm I was wondering what mathematical meaning non-integer limits in summations (and product functions for that matter) have? In the next paragraph, S is the (Sigma) summation function, and P is the (capital Pi) Product function: calcs merely calculate the symbolic formula for the summation and multiplication with arbitrary limits, and then simply plop in the given limits. What mathematical meaning does this have? I would have to say it makes absolutely no mathematical sense to have non-integer limits in a summation. Summations are discrete functions and it only makes sense (at least to me) to use discrete or integer limits. Aaron summations Aaron said: But we are all familiar with other things which were introduced to us as discrete definitions, yet which, with a little expansion of perspective, we can also understand as continuous. Exponents, for example -- when first we define an exponent as how many times we repeat a factor, it seems to make no sense to ask what x^(3/4) might mean, but we all know that it does represent something which is quite well defined, which we now accept just as much as the more primitive concept with which we began our earlier understanding. Similarly, the initial, simple definition of factorials is discrete, but the very same thing, relabeled as Gamma function, has a precise meaning for non-integers as well. The sum of the first N integers is known to be N*(N+1)/2; now, this formula has a defined value for any N, so why not then define the sum Sigma(N), limits A to B, as the difference between two values of that formula, evaluated at A-1 and at B, for any values of A and B? And how about the idea of number, which, when we can only imagine a one-dimensional meaning, leads to many difficult or insoluble problems, yet when we expand our understanding to admit two dimensions (complex numbers), it becomes extraordinarily powerful and complete. In much the same way, other concepts which at first may be summarily rejected by those who have not yet expanded their awareness and gained more experience and perspective are completely clear and obvious to those who have learned more and actually experienced them. Knowledge is structured in consciousness [our university motto] http://www.mum.edu . I'm going to have to disagree with you here. It still makes no mathematical sense to use non-integer limits on a summation whose only purpose in life is to sum discrete elements with discrete indicies. If there is a way that you can expand the meaning of a summation by using non-integer limits, then you dont have a summation anymore but an entirely different function. In the example of an exponent, that is different because we can use algebra to prove how non-integers in the exponent work and make mathematical sense. It makes mathematical sense to have a real or imaginary number in the exponent. It does not make mathematical sense to reference the i_th object in a sequence for instance when i=3.2. I understand that you can make unique results with only using the index as a direct argument in the sum, but as I just mentioned, what sense does it make to reference a fractional element in a sequence whose elements are only (sensibly) defined by integers? If I gave someone 2 sequences and asked them to perform a discrete-time convolution from N=0 to N=11.5, they would look at me like I had lost my senses! Aaron As the Churkendoose said, It depends on how you look at things. http://www.humanistsofutah.org/1994/AnnaHoagland_Journey-8-94.html http://www.oiquarterly.org/vol02/num3/vol02-3-01.htm http://home.bluemarble.net/~fumcb/sermons/010826.htm In the MTH PROB menu (13 MENU), you'll find a ! [factorial] menu key. Enter 3 and press it, and you'll get a result of 6; enter 4 and press it, and you'll get a result of 24; enter 5 and press it, and you'll get a result of 120. Well, is that the factorial function, or not? Now enter 0.5 and press it, and you'll get a result equal to the square root of pi/4. Hmm... Does the fact that it delivers results for values *between* integers mean that it isn't the factorial function at all, but an entirely different function? For every positive integer argument, the result is identical to the value of that integer's factorial, so in this light, you can not distinguish it from the factorial function, even though its internal method of calculation may or may not be to walk through the literal original definition. It *is* the factorial function, regardless of what algorithm it uses to get its result, much the same as the COS trig function is the cosine function, even though it does not actually construct a right triangle inside the calculator and go measure it (if that was your original definition); there are many equivalent definitions, some more general than others, which work equally well for computing cosines, and if the calculator contains an algorithm which accepts input angles which are greater than any possible angle in a right triangle, does that mean that it isn't really the cosine function, after all, but an entirely different function? If it's a different function, its only difference is that its domain is expanded, by the realization that what we had intially thought of as a definition of such a function is really only a special case of something more general, which in turn includes every original special case, with exactly the same value. Bucky Fuller used to lecture that what we call square numbers really have nothing to do with squares; he'd say that you could just as well call them triangular numbers, because if you make a row of one object, then a second row of three objects, then a row of five, then seven, etc., building up larger and larger triangles from these increasingly longer rows, you'll get exactly the same numbers of objects in this sequence of *triangles* as what you'd been calling squares. It's a kind of prejudice to say that the first thing we think of is the only way to think, or that our first experiences or learning of anything are the only reality, but that's the sort of prejudice which holds society back from expanding and developing its consciousness. Bucky said that the mind was that aspect of ourselves which generalizes our particular special-case experiences, and that this non-material, abstract factor of intelligence is what organizes the material aspect of the entire universe (including the material of our own brain). So did Einstein, I would say, from all the quotations I've read of him. And so did many others of the most visionary people in history. I suggest to you that the only difference is that you have had more experience developing your awareness of how this one aspect of a mathematical pattern can be generalized, while the other aspect is merely new to you and unexplored, but that each is equally valid (or invalid) in the end, and will make complete sense once experience catches up. But people tend to reject things based solely on lack of experience, rather than to be open to exploring and acquiring the more comprehensive experience. In 30-40 years of experience of teaching here, we all experience how we can in fact have our mind order both the mental and physical world within and around us, just as Bucky said, projecting a peaceful, productive, happy and supportive world, both in our own personal awareness and also to others, within the radius of its effect, depending on how many people experience a coherent state at one time. People who've never had the experience argue against it; people who have simply know that it is so. I hope that everyone finally makes it into the latter category, in time for most of the world to still remain undestroyed. http://www.mum.edu . Ahh, John - you walked right into it ;-) Let me quote the HP 48G Series Advanced User's Reference Manual, page 3-412: !, Factorial (Gamma) Function: Returns the factorial n! of a positive integer argument n, or the gamma function G(x+1) of a non-integer argument x. With G I of course mean the greek letter capital gamma. Well, John. The ! function on the HP calculators is the factorial function for integer arguments ONLY, and the gamma function for everything else - hence it is indeed two different functions, merely with that interesting property, that they combined make a continous function. I do, however, understand the arguments made of continuity regarding summation, but the ! function was probably not the best example ;-)) No more different than if I say that *this* man is George W Bush, while *that* man is the President of the United States, so they are really two different people, so long as I use two different descriptions or definitions. The function in fact returns G(x+1) for *all* arguments, since n! and G(n+1) are identically equal. Or, if we care to simply generalize our perception of n! so that we recognize its domain as all reals instead of only positive integers, then the function returns the generalized x! for all x. This argument seems to hinge on you and Aaron considering that functions are different if they use different algorithms, or even different definitions, while I consider that they are the same if they produce the same results. Under the first idea, there are even multiple SIN and COS functions, (or EXP[M] LN[P1]), because the internal algorithms themselves change, according to both the type and range of the input argument, and further, since none of the internal CORDIC algorithms even resembles a fundamental definition of these mathematical functions, not a one of these is actually the real McCoy, but all are imposters! The second approach is in the direction of generalizing what we know as our experience and perspective broadens, creating a deeper unity in our consciousness, a general theme of Bucky Fuller and others, indeed a hallmark of our educational process, of which I sought to use this as an example. I call upon Shakespeare as my final witness: A Rose by any other name would smell as sweet. ;-) Best wishes from http://www.mum.edu . No; wasn't I explicit about this? This would be true, if you characterize a calculator function by how it gets the answer, rather than by what answers it produces, the way that satirist and math professor Tom Lehrer once said that an educational program called New Math meant that we wanted to understand what we're doing, rather than get the right answer http://members.aol.com/quentncree/lehrer/newmath.htm It was said that Johann Karl Friedrich Gauss' teacher once asked him to add up the first 100 positive integers, but instead, Gauss recognized a shortcut, and got the answer in a few moments: http://www-gap.dcs.st-and.ac.uk/~history/Mathematicians/Gauss.html Would Gauss' teacher have been correct to claim that this was wrong, because Gauss was using an entirely different function than direct summation? Or was Gauss correct, because he generalized and got the formula for the sum, using his mind to discover a more generalized function, which even covers a wider domain? The algorithms in the calculator very frequently bear no resemblance to any textbook's mathematical definition of the functions, anyway, particularly the CORDIC algorithms which produce answers for numeric trig and logarithm functions and their inverses; it could hardly be otherwise, because some theoretical definitions of trig functions (as ratios of sides in triangles having given angles) provide no means at all for direct computation, while other definitions (such as the sum of infinite sequences) could take infinitely long to evaluate; therefore, practical and fast numerical recipes are used, their only goal being to get the right answers fast, rather than to have anything to do with mathematical definitions. The results, however, are those which should be produced, hence we could well regard those buttons labeled COS, ALOG etc. as being the functions that they claim to be, because they deliver the answers that those functions should. When a student first plays around with these functions, after learning his first definitions of them, however, he might try, e.g., FACT(1.5) and notice that an unexpected answer appears. Should he then say hey, this must be an entirely different function, or can we say instead that it is really the same function, just generalized to have a more complete meaning, over a greater domain, based on deeper insight? To get to the bottom line, if there are actually several alternate ways to define a function, all of which turn out to give the same results, are we not at liberty to use these definitions interchangeably, as long as the results are equivalent? If, among these alternatives, one provides a meaning for a domain of inputs which includes more inputs which the others leave out, can we not regard it as a generalization of all the more special-case instances? Our calculator is evidently as wily as was Gauss, for it would appear that it also knows some formulas for the sums of some particular sequences, just as it might know the formulas for some particular integrals, and thus be able to save itself some work, as well as at the same time creating an automatic generalization of the summation function (I never did try fashioning a definition to match these outputs, but surely someone else's imaginative mind may be able do so). My real goal, in any event, was to try to give examples for the great insight of Bucky Fuller, whose theme is always that our special-case experiences can be generalized by our mind (consciousness) to encompass deeper and more complete knowledge. This goes further than merely finding formulas for sums; in the case of our educational system, all streams of knowledge are related to the fundamental consciousness of the student, and the student experiences everything he learns as being expressions of the pure creative lively intelligence which (s)he directly experiences when (s)he meditates. The meaning of this may not be clear, but the more years a student is in these programs, the more they excel in comparison with others, to the extent that our high school senior classes regularly find themselves in the 99th percentile (top 1 percent) of all the students who take state-wide standard examinations. So, G. W. Bush, great educator that you are, if you recognize such exams as indicating which schools are the best, isn't it time to start funding those that are just like ours? With best wishes from http://www.mum.edu . John - this is maybe just a discussion over words or definitions - I never contested that the summation function shouldn't handle non-integer limits. I merely asking for some mathematical need for this - and continuity was given as a reason (an obvious one). I can go for that, as I myself occasionally use the gamma functions, and of course also the factorial and the like. Continuity is a Good Thing in many respects. How forcible are right words! Job 6:25 Best Wishes to you too, John. - I understand the power: Y^x to be a multiplication yet one can use also non-integer exponents. Are they two different functions? What about the Complex domain of the functions in the HP 48? Take eg. ACOS at the beginning of the Reference Manual which is a relation, not a function. The first system flag sets Principal Value / General Solution. I just want your opinions about domains - educate me! I want to learn more math :-D X argument function I'll agree with John on this one - expanding the working domain of symbolic expressions is by far not a novel thing. Although I don't see any real use in this case, I don't see why there should be a ban on this, someone smarter will always come up with a use for whyt first looks like a mathematical whim or game. IIRC results like Sum(n=1..infinity) 1/n = -1/12 do seem to be useful at times in theoretical physics, although you'd first think this is complete Schprewntz. And think of the evaluation of the first terms of diverging perturbation series which yield correct results up to 12 digits... Wild, but useful... Just as Dirac functions were first seen as heresy before they were formalised into distributions...(don't remember by whom...) Gerard it I agree, therefore it confused me slightly that such summations could be evaluated (I had expected an error message) - hence this post. and It is standard mathematical procedure to require the lower limit of such a summation to be integral, but not the upper limit, with the summation going to the floor of the upper limit. This would be similar to the FOR X := A TO B DO.... structure in PASCAL, where A must be an integer, but B need not be one. I think Nick has explained sothing in one of his marathon. The calculator knows the theoriccal formula for the summation of the n first square, S(x,1,n,xÓ)=n*(2*n+1)*(n+1)/6. To compute your summation, you just have to make a difference and replace the limit with your numbers (which do not have to be integer in this formula) to find the result given by the hp. Alban. and be I know this, but I was looking for the mathematical meaning behind it? He, he! Seems that tiny little indecent questions give more life to a group like this. Mathematical meaning, you ask? Well it has already been said that a summation is dicrete, therefor the summation limits have to be integers. This is not ablolutely true. Discrete (or indiscrete ;-)) has to do with something else. The formula for the summation just gives index, low, high and summand. These things in the formal representation of a sum still don't say if the summation is discret. It is the step, that means the change of index from one value to the next that makes the summation discrete. Now, nobody can say that it shopuld be not allowed to carry out a summation, like for example sum(n,0,5,n) in steps of, say 0.5, instead of 1 for n. But it is always (?) possible to change the summand in such a way, that a summation with step of 1 gives the same result. In our example the sum sum(n,0,5,n) would give the same result as sum(n,0,10,n/2) with steps of 1. Both summations are still very discrete. The situation gets indiscrete when the width of the step gets infinitesimal small. Carrying that to the extrem case of the tiniest steps that you could imagine, you get the integration. About such things, like summations of complex numbers: The problem is here not discretion or indiscretion ;-). The problem is that you must specify a path aling which you add. In function theory we learn that there are functions which are indifferent to the way that we choose to integrate them in complex. The integral of such functions over a closed curve (circle, ellipse etc) is always nada, nema, zero. But there are other, quite unhealthy functions that behave exatly the opposite way. Same with sums. There are some summands that give different sums if summed over one way or the other. Now, about the mathematical meaning, well on the one side you have summations that accumulate some values using a finite step for the index, on the other side you have integrations that use infinitite small step dx. The width of the step for summations is not particulary interesting, since you can always change the sum, so that you get the same results using a step of 1. And since indices that go like 1,2,3,.... are somehow easy to grasp (integers, natural numbers) we use them. Or is there any other reason, Professor? Indiscrete greetings, Nick. This is what I was referring to by sensible. You can achieve the desired effect by making changes to the summand instead of making the limits of the sum non-integers. I'm not sure enough to say that it will *always* work, but at first glance I dont see why not. To make something that is inherently simple appear more complex? ;-) Aaron desired sure Sorry, I didn't understand that you mean the same. Yeah, that might be a real reason. Or else, what complex marathons should I write? Keep me from unemployment, so to speak ;-) Nick. Try out 'EXP(X+2)+EXP(X)' FACTOR. It returns 'EXP(X+2)+EXP(X)'. Now try 'EXP(X+2)+EXP(X)' TSIMP FACTOR, and you get 'EXP(X)*(EXP(2)+1)'. Well, FACTOR doesn't work too good with non-rational expressions, huh? It needs help, with for example TSIMP. Another interesting question - how do we get from 'EXP(X)*(EXP(2)+1)' to the original expression 'EXP(X+2)+EXP(X)'? I haven't succeded in finding a way - maybe you can do it? That's the way it is implemented. FACTOR does polynomial factorization not rewriting. the - LIN Ok - an interesting limitation (TI-users will love this ;-). I still get '(EXP(2)+1)*EXP(X)' with LIN? ??? Nice to know precisely what the calc does. It seems to work on my hp49, in exact and approx mode, with or without 'X' in 'VX'. My version is 1.19-5. Camille Use DISTRIB, then LIN. Nick. I am trying to compile a input form program with debug 2, it is from the examples file for sysrpl document. I am getting the following errors which I have been trying to work out for the last few days: sasm.exe: error opening_head.a for reading sasm.exe: error opening_table.a for reading sasm.exe: error opening_end.a for reading Unexisting entry FPTR2 Help would be appreciated MC My guess is that you are trying to compile a library, and that the library creation (namely makerom) failed for some reason. For example, if you do not have a library number put in (did you do an include of your project name.H in your program... which I the following problem: When I type xroot(3, 8), the answer 2 is showed (as expected) But, when I type xroot(3, -8) the complex mode is requested and my expected answer isn't shown (that would be -2). Is there some configuration I could do to solve the problem ? Thanx. expected Your CAS has to be in aproximate mode. expected That's strange. As long as I'm in approximate mode, I get the expected -2. whether I use 'XROOT(3,-8)' EVAL or -8 3 XROOT. But in exact mode, I get '2*((1+i*v/3)/2)' (where v/ is the radical character), and EVAL on that gives me '1+i*v/3'. Well, if I cube that I do get -8, but it's certainly not the answer that I would've expected. Use approximate mode. But I don't have any idea why, other than try not to get the CAS involved in anything that doesn't need it; it seems to have a habit of making things more complicated than they need to be. -- James expected on when on the unit circle you start at an angle of 0 and go counter clockwise. The first 3rd root of -8 that you meet is then '2*((1+i*v/3)/2). (Seen in complex numbers marathon ;-)) Nick. expected -2 is the answer with my 48GX. For the first complex result, I must use x^y expected answer isn't shown XROOT always returns only one answer. Try to use SOLVE: Hmm, there are three answers, but there is no X=-2. ;) Piotr Kowalewski. Once I initiate the RECV or KGET commands putting the calculator in server mode how do I get out of it from within a program. Help would be appreciated Martin Neither RECV nor KGET put the calculator in server mode. The RECV command tells the calculator to receive a file (using the Kermit protocol) from another device. The KGET tells the calculator to get a file (again using the Kermit protocol) from another device which is in Kermit server mode. If the other device doesn't send a file (or respond to the KGET), the calculator will eventually (after about 50 seconds) error out with a Timeout error. To put the calculator into server mode, use the SERVER command to put it in Kermit server mode, or in the case of the 49G, XSERV to put it in XModem server mode. While in Kermit server mode, the client device can terminate server mode by sending either a FINISH or LOGOUT command to the calculator. I don't know that there's any way for an XModem client to terminate server mode. So far as terminating server mode from the calculator, the only ways that I know of is to cause an error by pressing the CANCEL (or ATTN, on a 48S series), or by having a control alarm come due. Which calculator are you using? -- James James, My problem is I am communicating with a SDL30 digital level and the only way to prompt the instrument to start reading is to initiate the program Ç CLEAR LM XMIT RECV È and then press the cancel button on the calculator which then starts the machine to read. Without the RECV command for some reason the instrument will not initiate. Could it just have something to do with my IOPAR { 1200 0 0 0 1 2}. Martin I'm not familiar with the SDL30 digital level other than that it's made by Sokkia. I certainly don't know which communication parameters and protocols it uses. Do you have any documentation for it? Are you sure that it uses the Kermit file transfer protocol? Am I correct in guessing that you're using a 48G series calculator? I can only guess that the SDL30 is trying to send a file, so it waits for the calculator to finish receiving it, but for some reason a connection isn't established, and then the error packet from the calculator tells it to give up. What happens on the calculator when it gets to the RECV command? Do you get a Connecting message? Do you get Retry #1 through Retry #9 messages? If you don't press CANCEL, Do you eventually get a Timeout error? Does a new variable appear? Is an existing variable overwritten? Certainly IOPAR can cause communication problems. But what the correct values are depends at leat partly on the device that the calculator is connected to. The default IOPAR is { 9600 0 0 0 3 1 }. The first value is the speed in bits per second; 1200, 2400, 4800, and 9600 are your choices. The second value is for parity; your choices are 0 for none, 1 for odd, 2 for even, 3 for mark, and 4 for space. The third value is for receive pacing and the fourth is for transmit pacing. The choices for pacing are 0 for disable or 1 (actually, any non-zero real number) for enable. Pacing is XON/XOFF software flow control, and it's neither needed nor used with Kermit. The fifth parameter is for the packet error detection method; the choices are 1, 2, and 3. If the devices disagree on the method, they should both fall back to using 1, so it *should* work regardless of this. Used for Kermit only. The sixth value is the Kermit ASCII transfer character translation code; the choices are 0, 1, 2, and 3. A proper File header from the sending device will override this, but I suppose that if the header doesn't say otherwise, the current translation mode would be used. Used for Kermit ASCII transfers and print (over wire) commands only. You might also want to look at the system flags. The ones that might be particularly relevant are -33, -35, -36, -39, and maybe -51. James it James, was looking for in:- Ç CLEAR LM XMIT DROP CR È It is rare, but if the level has a hardware (DTR/DSR) or software (XON/XOFF) flow control setting, turn it off. While coding the library function mentioned in the thread SysRPL and unevaluated algebraic function I stumbled upon a bug in CRLIB When you add a rompointer that contains only a string the rompointer doesn't appear in the menu but you can access it by its name. $ROMID 1207 $CONFIG 1 $TITLE TEST $VISIBLE {STRING P} $HIDDEN {} STRING THIS IS A TEST Now build the lib with CRLIB store it in a port and warmstart after 1207 TMENU you see an empty label and then P the empty label beeps if you press it but if you type in STRING you get THIS IS A TEST I seem to remember a 48 libbuilder that could make hidden commands but I don't remember which one -- This message was written with 100% recycled electrons Pivo I am not sure, but if I remember well, we have introduced a mod in the 49 that allowed us to win quite a bit of space in the rom (it's something for managing /displaying menus) and it has this draw back as a side effect. You can 'fix' the problem by embedding your string in a program... for Not quite. The last object of a library can't be a string, or if it is a string it will be used to display the title in a choosebox menu. You can put a string anywhere, but the last object can't be one. I had to find a way to display a title in a choosebox menu without breaking the existing format, so that's the solution I've used will Which choose menu do you mean? when I turn of the softmenu flag (-117) I still get softmenus for libraries But when it isn't the last object it still doesn't appear in the libmenu, a bug maybe? breaking You can put anything after the hash table and nobody will know :-0 I used this as a to make a hackproof library since library extractors do not see this area. I ran a program directly from the library itself by pointing the PC to this area Unfortunately Thomas Rast cracked it in less than a day :-) -- This message was written with 100% recycled electrons Pivo will If you clear the flag -117 (for choose box menu) you will see that each menu as a title. The way a title is defined is by using a string in the library. When creating the menu list, each time a string is found it will be used as the title for the menu. The last string found will be the active menu title. Give it a try, you will see (easy to experiment). The downside, is that strings can't be used in a library directly, you must put them in a program if you want to achieve the same result menu library. as title. Are the strings written directly into the library or can messagenumber be used? I«m just asking because of translation. Andreas for I gathered that it must have been a menu 'problem' since the lib was fine Fix? I was planning on using it for some hidden commands! Are only strings affected? I tried some other types but they all worked as they should. -- This message was written with 100% recycled electrons Pivo Well, I think only string are affected... But did you try a program with a TakeOver ? like: :: TakeOver foo and the rest of your program there? ; 49 for I would like to column reduce rather than row reduce a matrix to echelon form. MATH MATRIX ROW RCIJ is the row reduction utility that HP supplies on the 48GX. Does anyone know how to look at the HP commands for RCIJ so I could modify it to work with columns? Or if not that how would I program mmstat@erols.com on Could you use TRN, then row reduction, and finally TRN again? I have programmed rcij and ccij commands for working with numeric and symbolic matrices, but they need MK and Erable instaled for working... I am wondering if it is possible to stop this kind of loop while there are not a RS232 reception. 0 STIME . . . DO WHILE KEY NOT REPEAT 1 SRECV DROP2 'j' INCR DROP END UNTIL 13 == @ c key to stop after a RS232 reception. END I tried this one: 0 STIME . . . IFERR @ for [ON] key. WHILE 1 REPEAT 1 SRECV DROP2 'j' INCR DROP END THEN END But because of an unpredicted stopping, sometime I lose some data. Tal Sure, as long as you press the C key very quickly after the last byte arrives at the port. ;-) Pressing CANCEL ought to stop it too, but I suppose not usually quite the way that you want. The problem is that with 0 STIME, 1 SRECV will wait indefinitely for something to arrive. So why not go back to using some other value for STIME, and proceed depending on whether an I/O error (presumably # C02h, Timeout) occurs from SRECV. You could do some additional checking to make sure that the error was really from a timeout. Yes, there will be a slight additional delay before executing TICKS if a byte comes in after SRECV times out and before the program loops back to SRECV again, and with 25.4 for STIME, the delay before the program actually gets around to checking the key is likely to be very noticeable, but perhaps acceptable. You could try the following: 25.4 STIME . . . DO WHILE KEY NOT REPEAT 1 SRECV IF SWAP DROP @ Replace with NIP for 49G THEN 'j' INCR DROP END END UNTIL 13 == @ c key to stop after a RS232 reception. END -- James Hey I saw this on comp.sys.handhelds I thought you guys would get a kick out of it. I have no tried it yet. JIM --------------------------------------------- Waterloo, Canada - September 9, 2002 - Poliplus Software is thrilled to announce the much anticipated release of Formulae 1 for PocketPC (Compaq iPaq series devices). Formulae 1 (F1) is a powerful and easy to use Computer Algebra System designed specially for the teaching and exploration of mathematics. F1 gives the user the ability to see intermediate steps of calculations as well as final answers. The step feature has tremendous pedagogical value that users will come to appreciate over and over again. While there are several different numerical based calculator programs for PDAs, there is nothing really that comes close to the mathematical capabilites of F1. Transform your PDA into the next generation handheld Mathematics system designed to get answers and see steps. If you are a student, this is a must have application. F1's User Interface was custom designed to optimize the use of the small screen area of the device. Most of the screen area is available to view and manipulate math expressions, unlike other calculators where most of the screen is populated by buttons. For a complete list of features (with lots of screen shots) and some more information go to : http://www.poliplus.com/handheldproducts.htm Formulae 1 for PocketPC requires Insignia's Jeode (Java Virtual Machine) which comes on the CD of every Compaq iPaq machine. Jeode allowed Formulae 1 to run unchanged and exactly on Sharp Zaurus we have been getting lots of positive feedback from Sharp Zaurus users. Formulae 1 quickly climbed to the 8th overall bestselling software list at Handango. The excitment has been overwhelming. What follows are some verbatim quotes from users and we hope these testimonials will attest to not only our software capabilities by also Jeode's. ----------------------------------------------------------------- I would like to congratulate to your marvellous program called F1! I couldn't believe when I saw the advertisement on the Zaurus portal. At least I found a real CAS for my Zaurus! I was very happy indeed. And I am very content with F1 - it's a cool piece of software regarding footprint and functionality. Compared to my CAS I'm using on my notebook computer, I must say that F1 solves most of my maths problems. It's most astounding how well F1 performs on the Zaurus. The graphical input method is ingenious; I don't have to bother with complicated text definitions of my formulae like those found in other editors. It's much more like the state-of-the-art CAS Mathematica, if you allow the comparison. I have to express my deepest respect to the programmers. ----------------------------------------------------------------- Formulae 1 is a java based symbolic/numerical math engine. It has a very nice equation editor which can handle matricies, integrals, derivatives, and polynomials. The graphing functionality is primitive but very useful. The program appears to have very few if any bugs. FOr students it is nice to have the step feature. I recommend this to any science or mathematics students learning or having to use basic calculus or linear algebra. An additional nice feature is the help system which is very very useful. ----------------------------------------------------------------- Formulae 1 is the software application that I have been looking for on a handheld device. What is nice about the product other than the rich features is that it is usable on various handhelds because it is written in Java. The feature list is extensive and covers most areas of mathematics found in calculus I and II class material. Features lacking in this version are limits, 3D plotting, linear and non-linear regression. ----------------------------------------------------------------- It seems there is no limit instructions, which means that the CAS is not that much advanced. I did not see any mention of a programming language. On the Zaurus you can run xcas, it has much more features and is free. And since the device where you run this prog is around 400$ or more, I wonder how a 30$ basic CAS could have some success: for that price you can have both a TI89 and a HP49:-). I prefer having my HP200LX with Derive for DOS... The same software can then be used on my home PC, if I need a little more speed... ;) -- ----- Je viens d'adopter une limace (elle s'appele Chompie), et j'ai trouve des infos sur un site qui n'a pas ete mis a jour depuis des siecles! Meme si l'auteur ne s'y interesse plus, le site garde tout son interet. -+- P in : Guide du Neuneu d'Usenet - L'.90re des limaces m.8edia -+- I tested it once, and even if I own and use a lot of HP calcs (including my 9 months-old HP49), I weren't able to do anything useful with xcas... But since it must be my dumbness, I promise I'll read the doc, and try again later ;) In the meantime, I'm still reading the Derive's manual. -- ----- Je crois que le meilleur moyen, c'est une signature qui contient toutes les signatures et de virer les mauvaises avant envoi. -+- Ivan in : Guide du Neuneu d'Usenet : Je signe donc je suis -+- It would be a good idea since xcas is evolving at a fast rate. As explained in a previous post, you can for example read the TI Maple or Mupad instructions that are implemented (but TI compatibility is much better). HP compatibility is currently the syntax and RPN mode, not for the instructions. Bernard, It seems to me that you are neglecting people who already have that $400 device. I am a huge fan of the 48/49 (and sysRPL programming) but I also have an Ipaq 3835, and so I just purchased Formulae 1. This is not an indication that I don't like the CAS in the 49, simply the reality that the 49 is now an obsolete device, no longer produced or supported. Reality dictates that I move on and I find that when I want to pack one device with me, it's the Ipaq. It's current, supported, has an ever-increasing software base and allows me do do a multitude of tasks. Simon Most of xcas interface and development has been done thinking about handheld users, and you should know that Prof. Parisse uses ipaq with Familiar distro to test (so do I). I am agree with the idea, but not with the cost of such device.. that's the reason I have started a project to create a low cost gnu/linux platform. It is already in early stages. J.Manrique Users Club from Gij.97n #1077 HPCC Member Carlos. There is a misunderstanding here: I develop and run xcas on my ipaq. So you can't say I'm neglecting the ipaq, to the contrary. I did choose to develop a native application, which I think is mandatory when you want to solve real-world problem. This means that xcas is not a java, but a true C++ application. It is compiled with but it does not ship a complete ANSI-C++ compiler). Either replace wince or install it on a flashcard. Then you will need around 1.5M of flash to store the app. More info http://www-fourier.ujf-grenoble.fr/~parisse/giac.html xcas is not completely ready for prime-time release but it has today around 95% of the HP49 and TI89 functionnality. If you have a TI-Basic program, you can run it with xcas except if it uses some of the pixel graphic or stats instructions (see below). If you prefer RPN, just check the mode. Or you can program it using C like syntax. Other features are interactive debugger, dynamic geometry, pretty-print, on-line help etc. And since it /* TI89 compatibility Notes Use maple_mode(3) in your config file (~/.xcasrc or xcas.rc) or begin your session with cas configuration (or type maple_mode(3)) 1/ Instructions implemented Algebra: all Calculus: all except product Strings: all Graphics: pixel instructions are not implemented except PxlOn/PxlOff And/Xor/Pixel tests are not implemented Zoom instructions not implemented except ZoomSto/ZoomRcl BldData/RclGDB/StoGDB not implemented Graph currently points to drawFunc Lists: all, note that SortA/SortD are implemented for 1 arg only Maths: all except conversions and units Matrices: all except statistics. LU/QR work with numeric matrices and tolerance argument is ignored Program: all except mode handling, units, getKeys, the Custom and Toolbar instructions Lock/Unlock Stats: !, rand, RandSeed, nCr, nPr 2/ Be sure to use correct case. archive (native) is not like Archive (TI) conversion sign translated to to i=sqrt(-1): use the i button of xcas transpose sign not translated (use transpose()) */ This is completely irrelevant for users. The software is pretty fast and in the case of Zaurus, the user doesn't even know it is running Java. As long as the software runs fast enough you could as well have programmed it in logo :) Carlos. PxlOn/PxlOff ignored I don't think users want to have one program when for example a 10* faster with the same capabilities exists (I don't know the speed decrease when you use java instead of C++ but I would guess some factor around 10). Then I'm curious what you describe as fast enough. Could you give us some benchmarks, like int(1/(x^4-1)^10,x) invert a 15x15 matrix with random coefficients in -99..99 factor(x^100+1) If you are solving a math problem that takes 1 second to solve, a program that solves the same in 100 milliseconds is irrelevant. 1 second is close enough to being instantaneous. Jeode compiles the Java code on demand and most operations are almost instantaneous. Could you provide the steps xcas provides when solving the following problems step by step : int(x^2*exp(2*x),x) int(ln(x^2+a^2),x) int((-4*x-88)/(x^2+2*x+5),x) solve(sqrt(ln(x))=ln(sqrt(x)),x) sin(acos(sqrt(5)/5)) I want to see the steps !!! not just the final answer. Once again, our intended audience is different and what you seem interested in doing is not what we view our customers doing. You said that the speed was not important to the user where I disagree and I asked about some benchmarks, I note that you don't answer which is in itself an answer. I never said that steb by step was not important, to the contrary, I just did not have time to implement it right now. But don't worry it will be added. And it's not only feasible but rather easy, on the other side, if you can not solve the kind of problems I gave, it will be much harder for you to implement. You haven't answered my questions either. Really... Let me know when you have properly implemented step-by-step integration for example and let's compare implementations !!! Yeah right, don't forget I have access to lots of source code including YOURS !!! Not that I would use any since everything we do must fit nicely with the step-by-step framework (i.e. the steps must be the same as the ones students would produce by hand. Steps that are illustrated in typical high school/college/university textbooks. You can not use my source unless you release your application under the GPL. You can use the same algorithms as I use of course. The fact that almost every CAS use algorithms that are not teached shows that if you refuse to use them, your CAS will only remain a pedagogical tool. I claim that it is possible to have both. So lack of limits, to you, means not advanced... interesting. Limits are trivial to implement !!! I beleive the press release was for PocketPC but you just have to promote your own offering for the Zaurus... interesting. I'd love to see what Formulae 1 users have to say about your system once they have access to our simple to use and yet uniquely powerful and automatic CAS. Carlos. Of course. Limits are used in many areas like derivation (theory) or integration with bounds and is teached during highschool, if your system does not solve limit then it is not of much use compared e.g. to the TI89 or HP49/40. That shows you didn't really try to implement them, maybe you just think of L'Hopital's rule, but a correct limit implementation is much more complex than that. xcas can solve the following limits (using the mrv algorithm which is unfortunately not implemented on the 49) limit( exp(x)*(exp(1/x-exp(-x))-exp(1/x)), x=+infinity); limit( exp(x)*(exp(1/x+exp(-x)+exp(-x^2))-exp(1/x-exp(-exp(x)))), x=+infinity); limit( exp(exp(x-exp(-x))/(1-1/x))-exp(exp(x)), x=+infinity); limit( exp(exp(exp(x)/(1-1/x)))-exp(exp(exp(x)/(1-1/x-ln(x)^(-ln(x))))), x=+infinity); limit( exp(exp(exp(x+exp(-x))))/exp(exp(exp(x))), x=+infinity); limit(exp(exp(exp(x)))/exp(exp(exp(x-exp(-x)))),x=+infinity); limit(exp(exp(exp(x)))/exp(exp(exp(x-exp(-exp(exp(x)))))),x=+infinity); limit(exp(exp(x))/exp(exp(x-exp(-exp(exp(x))))),x=+infinity); limit(x*ln(x)*ln(x*exp(x)-x^2)^2/ln(ln(x^2+2*exp(exp(3*x^3*ln(x))))),x=+in fi nity); limit((exp(x*exp(-x)/(exp(-x)+exp(-2*x^2/(x+1))))-exp(x))/x,x=+infinity); limit((3^x+5^x)^(1/x),x=+infinity); limit(x/ln(x^(ln(x)^(ln(2)/ln(x)))),x=+infinity); limit(exp(exp(2*ln(x^5+x)*ln(ln(x))))/exp(exp(10*ln(x)*ln(ln(x)))),x=+infi ni ty); limit((exp(4*x*exp(-x)/(1/exp(x)+1/exp(2*x^2/(x+1))))-exp(x))/exp(x)^4,x=+ in finity); limit(exp(x*exp(-x)/(exp(-x)+exp(-2*x^2/(x+1))))/exp(x),x=+infinity); limit( exp(exp(-x/(1+exp(-x))))*exp(-x/(1+exp(-x/(1+exp(-x)))))*exp(exp(-x+exp(-x /( 1+exp(-x)))))/exp(-x/(1+exp(-x)))^2-exp(x)+x, x=+infinity); limit( (ln(ln(x)+ln(ln(x)))-ln(ln(x)))*ln(x)/ln(ln(x)+ln(ln(ln(x)))), x=+infinity); limit(exp(ln(ln(x+exp(ln(x)*ln(ln(x)))))/ln(ln(ln(exp(x)+x+ln(x))))),x=+in fi nity); limit(exp(x)*(sin(1/x+exp(-x))-sin(1/x+exp(-x^2))),x=+infinity); limit(exp(exp(x))*(exp(sin(1/x+exp(-exp(x))))-exp(sin(1/x))),x=+infinity); limit( (exp(x*exp(-x)/(exp(-x)+exp(-2*x^2/(x+1))))-exp(x))/x,x=+infinity); limit( ln(ln(x*exp(x*exp(x))+1))-exp(exp(ln(ln(x))+1/x)), x=+infinity); limit(sqrt(x+sqrt(x))-sqrt(x),x=+infinity); limit(sqrt(x+sqrt(x+sqrt(x)))-sqrt(x+sqrt(x)),x=+infinity); limit(4/9*exp(exp(5/2*x^(-5/7)+21/8*x^(6/11)+2*x^(-8)+54/17*x^(49/45)))^8/ ln (ln(-ln(4/3*x^(-5/14))))^(7/6),x=+infinity); limit(ln(x)^2*exp(sqrt(ln(x))*ln(ln(x))^2*exp(sqrt(ln(ln(x)))*ln(ln(ln(x)) )^ 3))/sqrt(x),x=+infinity); Form your post <