A20 I've had a huge hassle The newest version of PowerPlot w/ Table (v1.37) is there for those of you using that. Also, my table program is updated as well (v1.95). Other notes.. -still working on PowerPlot full -there are currently no plans for a port of PowerPlot to the HP49 -Sources (development directory) for PowerPlot with Table v1.37 is available on my website. There is no link on the index page, so you will have to enter it directly: http://leviathan.orblivion.com/hp48/pplt137_src.zip -I'll be out of town until Jan 1, so if you reply to this or email me and I don't reply, it's not because I don't like you. =) -- Aaron 'waking up' or 'rebooting' are *not* exactly the same things...;-) Raymond Steve Sousa schrieb im Newsbeitrag when open it. Really???... Not the mine. Yes Raymond, i meant wakes up as it does with alarms. :-) I couldn't figure out if the OP meant a turn-on(...) like an ON, or like an ON-C. I replied in the normal ON sense, not ON-C. Steve Sousa Ohh yes, yours does it too.... :-) Steve Sousa Ok... I agree if *reboot* is not *warmstart*... Also, I always use a FastOFF instead of normal OFF... For those interested i found a discussion of this issue in the archives: Those with the book HP48 Insights Part II can find a description in page 622. Those more inclined to ml can lookup entriessx.zip -> entries.all and look around srvc_timer2. The meaning of: 01750 mc LC_1EB295F3 01763 mc LC_1D3A63CC is left as an exercise for the reader.... ;-) Steve Sousa P.S: Hint: #7E900000h / #8192d / #60d / #60d = #72d ... I've once again changed the menu system I have bound to my APPS key, and I think this incarnation is more interesting: :: ' :: ' :: DoMenuKey ; MenuKeyNS! ' :: DROP DoBadKey ; DUP MenuKeyLS! MenuKeyRS! ; DoMenuKey ; If you don't have a multiple of 6 submenus, have :: DUPTYPELIST? ITE DoMenuKey EVAL ; instead of the secondary right before MenuKeyNS! my previous apps system did, but it uses softmenus instead of CHOOSE boxes. It's faster, especially for repetitive uses, and much more convenient. It's amazing to me how the code for my menu system gets simpler and simpler, whereas my menu *data* now needs to be edited with Emacs, since I can't otherwise edit the secondaries very easily. above, helping me to learn to use them myself. This also goes for my port-menu post, even though Libman's port menu is just as slow as the default one.) I would like to announce a new library, created and tested within the current year. ClckAdjst provides comfortable, fast setting and adjustment of the system clock. It handles changes of the time zone and daylight saving time, whenever you want. It provides an accurate automatic clock adjustment and shows the daily deviation of your HP49G-clock. It would be great, if someone would help for a good documentation, because english is not my mother tongue. Also, comments about the functionality are appreciated. While Eric is preparing to put the program on his site, please download the HTML-docu, programs and library from: http://users.belgacom.net/EAA/Heiko/ClckAdjst.zip Heiko I'd be glad to help with the documentation. I'll look over what you've written tonight. If there's more to add, send it to me at jmprange@i-is.com. James written please send me your e-mail address, the above written is not working. Let me know, in case you need different format for the docu. ..Heiko Unfortunately, the xmas version of MINEHUNT for kids is *not* the one in Eric's last updating of hpcalc.org It is hard to keep my hpcalc.org contributions consistent with my own site which presents the last versions, in general. The version on my site below is 1 KB smaller than ported versions of the original (now less than 2.5 KB). Merry Christmas - Wolfgang ftp://ftp.math.fu-berlin.de/pub/usr/raut/HP49/games/ Hello Very easy. If you start it with the path: :00: { } You will then browse the home of port0. 01 and 02 will browse respectively Port1 and Port2 Then you put the path just as you would do for the VAR directory Jean-Yves There are to me three ways to simply examine the variables stored in my 49G's port memory: 1) using the filer, which is fine except that the filer is at times less convenient than a softmenu. 2) using the LIB key, which is painfully slow. 3) using a little SysRPL to get a list of variables from a port, and making a menu from this -- which is quite speedy. Here's how I implemented #3: :: SetRebuild FPTR 2 13 DROP ; or, if you want something more complete a command: :: CKREAL COERCE #2 #MIN SetRebuild FPTR 2 13 DROP DoMenuKey SysDisplay ; where the last command is only necessary if you pass an argument to this program from the stack, since DoMenuKey doesn't refresh (which, most of the time, is a perfectly sensible thing). HPCalc has just been updated, and the update includes both documents. Rafael Mill207n. Merry Christmas to you all !! Veli-Pekka Nousiainen, Finland PS: I'll be back 1.1.2002 No VPN posts over Christmas? The ng will be empty. ;-) Merry Christmas, Albert -- Dr. Albert Graef, Dept. of Music-Informatics Johannes Gutenberg University Mainz, Germany Dr.Graef@t-online.de, ag@muwiinfa.geschichte.uni-mainz.de http://www.musikwissenschaft.uni-mainz.de/~ag Hi all, I hope Nick the Greek won't take a holiday absence too..... ;-((( Merry Christmas and a happy New Year from me too. Arnold I, too, wish everyone here a merry Christmas! Bhuvanesh. Champaign, IL, USA. P.S.: I'll be back 1.1.2002 too! ;-) Merry Christmas from me too. Wish that 2002 will bring peace to earth (and more HP calcs :-) Giorgos, <9msu1u44m34sh4ohchgdmao65qjcvtonhl@4ax.com> <9vo435$ukv$05$1@news.t-online.com> <3C1FC922.DFA936D5@home.com> <3C2016DA.92367DF1@wildopensource.com> <3C20DE69.46A4A85@home.com> <3C20EBF5.AF48E490@wildopensource.com> <3C21464A.674C212F@home.com> <3C222F7C.B2DB9788@wildopensource.com> <3C2243F9.266620D9@home.com> <9vthjf$nts$1@nyytiset.pp.htv.fi> But that is a big MAYBEE. Neither I nor you really have seen all the facts and documents as the judge had seen in the court. The easiest explanation (Occham razor :-) ) is simply, that Microsoft did not violate laws to the extent of proposed punishment and the first instance judgement was overturned. In fact it is well known fact, that the judge from the first trial did not allow many documents brought by the Microsoft to be allowed in the trial. On the other hand because we both haven't seen the material, that of course (as always does) leaves door to conspiracy theory, that Microsoft bought jury and politicians. There are few problems with that. First, ATT was in the past many times bigger than Microsoft will ever be, and never managed to protect itself from breaking up the company, second, many people accuse Microsoft of monopoly, where in fact not a single Microsoft product ever for a even a short time monopolized the market. Even Windows always had competition altough competition was not a very good one to win any significant group of users. So in fact the mob wanted to punish Microsoft, because company was too successfull. For those who run OS2, Linux, Mac X, BeOS, Mext etc. I really admire your sacrifice :-) Jack X http://www.forbes.com/2001/12/19/1219msft.html Of course, that competition and their lawyers will be crying. What did you expect ? Even serial killer lawyer usually cries after losing in court, that the court was wrong. Why don't these guys just make some effort and release product better than Windows instead of crying and demanding goverment protection ? Ford model T lost it's market share when better products appeared on the market :-) Jack Unpublished doesn't mean secret. Don't be illogical. Even unpublished is a nonsense, because they are only unpublished by official Microsoft press, where in fact independent publishers provide myriad of books that do publish those secrets. Before you accuse somebody of something why don't you become more familiar with some of the publicly available books such as: Undocumented Windows 2000 Secrets: A Programmer's Cookbook Undocumented Windows NT250 or for example Windows Undocumented File Formats; Working Inside 16- and 32- bit Windows Again nonsense. Microsoft never was a monopoly in the operating system arena. The were always competing systems on the market such as MacOS, BeOS, Next, Unix, Linux, OS2 etc. and most of them were also available for the Intel PC platform. The correct, unbiased statement should be, that there were never a successful competing product against Windows, but that has a different meaning in business law. And of course why it is illegal to change the code with the new release of the software. Please explain ? It is maybe immoral, but not illegal. There is no law that forces any software company to freeze code because some other company is using that code (for free) unless there is a specific agreement made between those companies, that such code will be preserved. Could you please, tell me, where such law exist, that Operating System vendor cannot modify it's code in a upgrade ? Are you insane. Biased judge is a serious violation of the due process. That is why the sentence was overturned as unfair to Microsoft. It's easy to accuse somebody of grease :-) There is of course no need to prove. Just a strong believe. One more nonsense. Office Suite was never a subject of the lawsuit. IT IS NOT BUNDLED with OS and it is quite expensive comparing to the competition. Again Microsoft never was and is not now a monopoly in that arena either. In fact there is StarSuite from Sun gave away for free that reverse engineered Microsoft Office Suite to be able to read and write MS files and has almost identical look and feel as Microsoft product and somehow nobody thinks its a serious immoral behavior. When Microsoft did it against Netscape all the moral authorities were crying foul, even when Microsoft Browser was never even close to Netscape in look and feel. You are so fooled by the cheap propaganda of the jealous losers from the MS competition, that you can't see facts anymore. Jack IMHO Linux will dissappear same as OS2 did. I think it is a short lived hype (despite its technical marvels). I have already seen serious Linux books as bargain in the bookstores. That typically means, that particular software does not have a future on the market. But wait and see who is right. But that was exactly my plan and beauty :-) My concept was for exactly the reason you mentioned. To runin MS by running it fairly and morally so it will be finished off and competition (such as Linux) will finally prevail. Jack Jacek--- I would tend to agree about the hype. A lot of vendors pushing Linux are preying upon people's anti-Microsoft bent. The truth about Linux is that it was, is, and always will be a Unix hacker's OS, experimental, and fun to play with. It was never built with the object of being a serious and competitive OS, however has evolved to being such on the server market. Note my last four words of the prior paragraph: on the server market. As a home OS, Linux lacks the necessary third-party software support to be anything more than a plaything. I have learned that because Microsoft controls the majority of the PC platform OS market share (which, by definition, makes them a monopoly, however being a monopoly is not illegal), I must conform if I want to talk to the rest of the appliance-using public---such as the average CEO or other high-ranking non-IT corporate exec. As a plaything, or on the server market, Linux boasts the power of Unix, at a _VERY_ affordable price. Server software can be built for the purchase of a $50 or less package, as compared to the hundreds, if not thousands of dollars that must be spent on licensing of a commercial flavor of Unix. Startups doing web hosting or other IT work that deals with the internet infrastructure are well advised to use Linux. The bottom line: Linux _WILL_ stick around. Just like NT stuck around (remember when it was first introduced?) to become the network OS it is today. Linux will _ALWAYS_ be loved by hackers, and though it may lose popularity on the home OS market, it will always have its niche. It's free, after all. People write this code because they _LIKE_ to. Henry C. Gernhardt, III LOL !! Good text Larry! VPN YESSSH!! LOL!! It is stretching, I know! ;-) The AntiChrist or Beast should be a some kind of religious leader... VPN PS: Poor Bill, that was too much... isn't This is a rediculous statement: many *other* OSs I could name are never anything more than playthings for the majority of their users, and if Linux is too, fine -- though I think it has more reachable possibilities, and not just in playing other people's games. Linux is also used in real business, and practically in real homes, and what 'necessary third-party software support' does it lack? Necessary to who? It's already beyond being short lived, and ... hype? You've *got* to be kidding me -- or, more likely, you know very little about Linux or its communities. I also see Java books as bargains, and MS Office books, and a billion nutshell books. This means absolutely nothing. Oh, better to let it continue the way it is -- Linux will prevail anyway. There are still communities of Commodore Amiga around. :-) Really ? Have you seen any Windows XP and Office XP books on bargain sale ? The ones, that you have seen are about Windows 95/98 or NT and Office 97 or earlier. That is exactly my point. Only dead software has books on bargain sale. OS2 people were sure too :-) Jack Julian--- Which ones? I believe that wholeheartedly. However, those possibilities WILL NOT BE REALIZED in the common market for two reasons: 1) Linux is not the ``standard'' OS on the WinTel platform. Microsoft Windows 9x/ME/XP is, and a vast majority of home computer users are using it. Because of this, authors of third-party software are well advised to develop FIRST for the Microsoft Windows OS's if they wish to reach the broadest possible market. 2) Linux is based on the GNU GPL, as is most of the software that runs on it. For-profit third party software vendors are unlikely to support it, at least for the home user, because such support is not lucrative. Software that we have for Linux is primarily freeware or GPL-licensed software---written by hackers. it is NOT a profitable home user OS for which to develop. Again, note my argument about licensing costs. But not by the average information appliance user. I will admit, it has been a great while since I have used Linux. With the advent of StarSuite, I believe most of that ``necessary third party software'' argument vaporizes. The average information appliance user, however, will be unable to handle the vagaries of a UNIX system. People want plug-and-play solutions. Also, should there be difficulty, those FREE programs that users can download and use will be lacking in technical support should there be a problem. In short, I don't doubt Linux's power. I doubt that it will stay on the home PC market for very much longer, however, as it is not conducive to usage by information appliance users. Henry C. Gernhardt, III I'm gonna try a little bit in this atgument. What about IBM & the 7 dwarves? or ATT & GTE, ITT, etc.? A monopoly can exist when there are competitors ! There is some point of 70% or 80% or 90% of the market, where the monopolist becomes a monopoly. And M$ is well beyond that ! About the anti-trust case, there was two parts to the trial - the verdict part and the sentencing part. The appeals court has upheld the verdict part - M$ has used it's monopoly to control the market - no if or buts about it !!! They disagreed with the sentence that was imposed. Yes you're right, and I'm sure there are a lot of people wishing that Judge Jackson was less biased in his remarks. But, your own statement above says the sentence was overturned - not the guilty verdict !!! So when M$ invested in Corel, the fact that Corel stopped work on porting Wordperfect Suite to Linux was just a coincidence? The same thing happened with Apple !! M$ did this so they can have a token competitor so that they can say that they have competition. Again, M$ has enough of the market to exert control if they so wish. It just that whatever control they have used has been over shadowed by the more flagrant control they have used with the OS market. I was too at one time. But I came to realized that M$ has used it's size to strongly influence the market in the way they want to. Don't get me wrong, M$ has an excellent bunch of programmers. They have definitely done a lot to enable PCs to become what they are today. BUT - they have stifled innovations that threaten their monopoly in Windows (i.e - Java for example). AND - they ARE even now using their monopoly to extend their control throughout the Internet - like what about Smart-Tags or .Net passport? (how many times do you have to refuse before Windows XP stops asking you?) -which compete with and threaten competitors (Pay Pal, for example). These features can be a great convience if included into the OS and I agree that M$ should be allowed to offer competiting products, but how do you make sure that they do not have an unfair advantage? And another thing - In my previous post I indicated that M$ is selling it's products for at about 50% higher than if there was competition (BTW, a clear sign of a monopoly). How much am I paying for many of the features included in Windows - that I don't use - but I am paying for because they are bundled into Windows???? The same thing applies to Office. John Edry What about it ? IBM was supposedly a monopoly and without the intervention of goverment now is not a monopoly. So what it teaches us ? But in fact IBM was never a monopoly either. As of ATT or ITT they were actually 100% monopolies guaranteed by law. They monopolized and owned telephone lines because law allowed it so in fact it was a fault of government that allow monopoly to grow. They were broken into many companies. Thet has no comparison to Microsoft. In fact Microsoft has no monopoly on computer itself, has not even monopoly on the Intel based computer and in fact has no monopoly on the operating system for the Intel based computer. The other companies you mention like ATT or ITT, tell me, how many countries do you know except USA where telephone service is not a monopoly ususally nationalized by the government ? Sure it can. It just depend what the definition of the word is is. President Clinton was especially strong with that game. In fact well beyond is not neccesairly true. In my work there are more UltraSparc computer than Intel based PC. Not a single UltraSparc machine run even a single Microsoft application. Mac PC runs sometimes Microsoft Office, but beyond that not much Microsoft there either. Palm computers, no Microsoft there. Embedded computers - where is Microsoft ? So as you see customer has a myriad of choices. What attracts customer to the Microsoft is simply unbeatable combination of quality, functionality and price. Normally it is called succesfull product. By jelaous loosers from competition it is called monopoly. Typical lawyers game that is played for public opinion. I didn't say Microsoft is 100% clean. What I said, is that the sentence was too harsh for the verdict. What that usually mean, is that the verdict found certain violations of law but those do not guarantee proposed punishment. Just like speeding by few mph over the limit does not put you in jail for several years, altough, I'm sure, you will find some biggots who would do that to you if you were caught speeding, because they are so bad drivers that it scares them to speed :-) If you are just looking into guilty - not guilty binary logic, then you are right. Microsoft is very probably guilty of some actions that violate the law. But in such logic everybody is guilty, because everybody has some minor violation of law here and there that are not serious enough even to prosecute. My point is, that Microsoft maybee took many serious immoral actions on top of illegal, but common believe that immoral actions by the nature of beeing immoral are somehow illegal is false. And on top of it remains of course some moral authority that suppose to tell -- +-------------------------------------------------------+ | Anna i Jacek Marchel | | | | e-mail: marchel@home.com | | WWW: http://members.home.net/marchel/ | +-------------------------------------------------------+ Actually, I have just fully read John's reply and it makes a lot of sense to use the infinity key instead. ... I probably will end up getting a 49G ... with luck the more savvy 49G users out there will be able to keep the ROM updates coming despite the demise of ACO so problems will always be fixed. I should sit down one day and learn SysRPL and ASM / ML. Cam :o) ... mental note to self ... FULLY read THEN reply ... i put a post this morning but it didn't show up. here it goes again. (my only purpose with this is learning) it seems to be very easy to built a data logger (+ more funtions) using only one chip!! (atom-ic). some of the features included on the chip are: 3 built-in analog to digital ports hardware interrups timers two PWM (pulse width modulation) signal generators (+ change frequency) it processes 33000 'instructions' per second 32-bit floating-point math (32 bit integer also) serial buffer plenty of memory .. more and more...( see www.basicmicro.comm the name of the chip is 'atom') you would communicate with HP49 using serial at 9.6K (send command + parameters or whatever). the sofware is free, but the chip is not ($59). i already found an enclousure that is the same size as the HP49G but with an ifrared port. also i found free sofware to design the PCB board (and a cheap place to make small quantities pcbs). with the serial buffer, we could send IR from the HP49G (i would have to look at this). the possibilities are unlimited, since you can reprogram the chip as many times as you want with the computer and use it for infinite purposes. it uses minimum power and it has a 'wake on' pin that could be trigered by the alarm of the HP49G (connect to serial RX line. on sleep mode it uses only a few micro amps). this is an estimate of the total cost: chip $59 (20% off to students) PCB (free shipping) $20 socket + harware + connectors + IR + power-source(7805) $15 enclousure $10 extra $$$ for shipping, etc $15 -------------------------------------- about $120 the idea is to make a 'computer-data-math-science-whatever' device that works independently or with the HP49g. there would be no royalties except the price for the hardware. but it would need a **programm** for the HP49G. the chip can be ordered separate from the case and keep full warranty. the hardware is very simple. i wouldn't charge money for assembly (since it is simple) for small quantities (about two a week).i am not trying to make money, just learn. the initial cost would be only $120 !! and anybody is welcome to make their own (suport). the chip could be upgraded on the future, since it is a standard microprocessor socket (24 pins) and compatible with other chips. [ there is also another possibility with the AVR chips (GNU compilers).they are very cheap (less than $10) but not built in harware. ] is anybody interested on the sofware part for the HP49G (systemRPL)? (the sofware for the chip is very easy. uses a basic compiler and has good documentation see the webpage above ). the sofware could be downloaded to hpcalc.org. see: www.basicmacro.com /chip 'atom' wuau. the AVR2313 does the same and only cost $5 (free sofware + GNU compilers= with source code) compare with the atom $59. it runs at 4Mhz (but that is plenty) that brings down the total cost to: $65 (everything) says... Hello You could get this when using the Windows CE 3.0 (like Jornada 548). I'm don't think there's a version able to do that on previous version of windows CE. Jean-Yves -1.17749189498 is another solution... Bhuvanesh. ln(5^x) + ln(7^(x^2)) = ln(15) => xln(5) + (x^2)ln(7) = ln(15) => ln(7)*x^2 + ln(5)*x - ln(15) = 0 ... for which I'd use the quadratic formula. Ugh, please ignore my other post. You can't do that! Suppose you have to work on this: 3 + 4 = 7 Take log of both sides: ln(3 + 4) = ln(7) Now distribute the ln: ln(3) + ln(4) = ln(7) No, I don't think so. Logs don't distribute over addition; they let you convert multiplication *into* addition (and then back again). Hope this helps. David PS: It's late, and I'm tired, and I'm sure going to feel STUPID if I'm wrong! Below is a program I call NEEDS. Given the name of another USER RPL program NEEDS will return a list of all the other USER RPL programs that it calls. I've been doing a lot of exchanging programs over email with a friend and it's a pain to send him something that he can't used because I forgot to include one routine. In fact the following directory was built by running NEEDS on itself: 'NEEDS' NEEDS then using the resulting list to copy all the needed routines into a temp directory, connect my '48 to my PC then upload the contents of that directory. Another useful routine is CALL. It will return a call tree of all the routines that a given program calls. A call tree is just a list of names tagged with the calling program's name. If one of the names in the list calls other things this structure will recurse to enumerate the routines called by that program. The program that does all the work is USES. The biggest assumption in it is that anything starting with a lowercase letter can be ignored because it's a local variable. I assumed that because HP says doing that is a good thing when writing RPL programs. NOTE: IF YOU USE UPPERCASE LOCAL VARIABLES YOUR RESULTS WILL VARY. I say that because what really happens will depend on whether USES finds any variables with the same names. In the middle of USES one of the CASE items uses an ASCII string to figure out if a keyword is a valid name or not. According to my GX manual there are very few characters that you CAN'T use in a valid name. You can change this string so it contains all the characters that you use to START valid names. Notice I said START. I use lowercase letters in variable names but the initial letter is uppercase. The string is set to reflect what I used for variable names, '%', '?', 'A' to 'Z', '->' and 'GD' (delta character). Change it to reflect your reality. Enjoy and if you have any problems let me know. Here's the program ... %%HP: T(3)A(D)F(.); DIR @ @ CALL - returns the call tree of an USER RPL program @ @ 'name' -> :name: { list of called functions } CALL << @ @ clear the name cache @ @ @ clear the tree cache @ { } 'CALL.TREES' STO @ @ get the call tree @ 0 CALLS @ @ flush the caches @ 'CALL.TREES' PURGE >> CALLS @ @ CALLS - returns the call tree of a USER RPL program @ @ 'name' depth -> 'name' @ 'name' depth -> :name: { call tree } @ @ The return value is just the name if the named object is not a USER @ RPL. If it is a USER RPL program then the second form is returned. @ If it doesn't call anything then the list will be empty. @ << -> n d << @ @ is this a USER RPL program? @ IF n RCL TYPE 8 =/ THEN @ @ no, just return it's name @ n ELSE @ @ check the cache @ -> p << @ @ is it in the cache? @ IF p 0 =/ THEN @ @ yes, tell them that @ 1 d SUB n + in cache + SCROLL 7 DISP @ @ get the cached call tree @ CALL.TREES p GET ELSE @ @ wasn't in the cache so we'll have to scan it, find out what @ objects it uses @ n d USES DTAG @ @ does it call anything? @ IF DUP SIZE 0 == THEN @ @ no, just return the name @ DROP n ELSE @ @ yes @ -> l << @ @ get the call tree of each of the objects it calls @ 1 l SIZE FOR i @ @ get the name @ l i GET -> nn << @ @ is it a recursive call? @ @ @ just return the name @ nn ELSE @ @ see what it calls @ nn d 1 + CALLS END >> NEXT @ @ tag it with the name of the caller then add it to our list @ l SIZE ->LIST n + ->TAG >> END @ @ cache it @ 1 d SUB n + cached + SCROLL 7 DISP @ @ add it's name to the name cache @ @ @ add it's tree to the tree cache in the same relative place @ DUP 1 ->LIST CALL.TREES + 'CALL.TREES' STO END >> END >> >> EACH @ @ EACH - execute a function on each item in a list @ @ { o1 o2 ... oN } obj -> { obj(o1) obj(o2) ... obj(oN) } @ << 1 SWAP DOSUBS >> NEEDS @ @ return all the uniq objects a USER RPL program calls @ << @ @ get the call tree for this object @ CALL 1 ->LIST @ @ are there any tagged lists in the call tree? @ WHILE 0 OVER << TYPE :0: 0 TYPE == OR >> EACH REPEAT @ @ collapse each tagged list into it's tag followed by it's items @ << IF DUP TYPE :0: 0 TYPE == THEN OBJ-> ' SWAP OVER + + OBJ-> SWAP OBJ-> DROP END >> EACH END @ @ there are no tagged lists in the list anymore, just names. sort them @ SORT @ @ remove any duplicates @ UNIQ >> SCROLL @ @ SCROLL - scroll the stack area of the LCD up one line so a new line @ can be added using 7 DISP @ << LCD-> DUP { # 0h # 18h } { # 82h # 37h } SUB { # 0h # 10h } SWAP REPL { # 0h # 30h } # 83h # 8h BLANK REPL ->LCD >> UNIQ @ @ UNIQ - remove duplicates from a sorted list of object names @ << @ @ this is the list of uniq items @ { } SWAP @ @ keep going until the initial list is down to one item @ WHILE DUP SIZE 1 =/ REPEAT @ @ are the first two items different? @ @ @ put the first entry in the initial list into the new list @ SWAP OVER HEAD + SWAP END @ @ throw away the first item @ TAIL END @ @ add the last item in the original list to the end of the new list @ + >> USES @ @ USES - scan a USER RPL program to find out what objects it uses @ @ 'name' -> { programs and vars used by 'name' } @ @ As far as USES is concerned a program is made up of a number of @ different types of keywords. Strings ( ... ), algebraics ( '...' ), @ tags ( :...: ), binary integers ( # DIGITSb/o/d/h ) is ignored. @ @ Also ignored is any keyword starting with a lowercase character. It @ is assumed these are local variables. @ << @ @ convert the program to a string and tack on a blank line @ SWAP DUP RCL ->STR 10 CHR + + -> d n s << @ @ show them what we're working on and what depth we're at @ 1 d SUB n + SCROLL 7 DISP @ @ if this item is in the USES.IGNORE list then we're not supposed to @ touch it. @ IF USES.IGNORE n POS 0 =/ THEN @ @ ignore this item returning an empty list for what it calls @ { } ELSE @ @ this is our list of names this program calls @ { } @ @ keep going until the string's gone @ WHILE s =/ REPEAT @ @ remove any leading blanks @ s WHILE DUP HEAD == REPEAT TAIL END 's' STO @ @ anything left? @ IF s =/ THEN @ @ yes, get the first character @ s HEAD -> c << @ @ what is it? @ CASE @ @ is it the first letter of a possible user variable or @ program? @ @ Change this to the possible letters that can start a @ program or variable name. @ &?ABCDEFGHIJKLMNOPQRSTUVWXYZ->GD c POS 0 =/ THEN @ @ where's the next blank or newline @ s POS s 10 CHR POS -> sp rp << @ @ if they're different then take the nonzero one, if @ they're both nonzero then take the smaller one @ IF sp 0 == rp 0 == XOR THEN sp rp + ELSE sp rp MIN END >> @ @ save the position of the delimiter @ -> p << @ @ is there a delimiter? @ IF p 0 == THEN @ @ no, use the rest as a keyword and set the program @ string to empty @ s 's' STO ELSE @ @ extract the keyword @ s 1 p 1 - SUB @ @ remove it from the program string @ s p 1 + OVER SIZE SUB 's' STO END >> @ @ save the keyword @ -> n << @ @ try converting it to a global name? @ IFERR ' n + ' + OBJ-> THEN 1 ELSE 0 END @ @ did that work? @ IF THEN @ @ no, so it's program a reserved word like IF, THEN @ and so on @ DROP ELSE @ @ we got a name, try RCLing it to the stack @ IFERR RCL THEN 1 ELSE 0 END @ @ did that work? @ IF THEN @ @ no, ignore it @ DROP ELSE @ @ yes, add this name to our list of called items @ DROP n + END END >> END @ @ is it a string, algebraic or tag? @ c 34 CHR == c ' == OR c : == OR THEN @ @ remove it @ s TAIL DUP c POS 1 + OVER SIZE SUB 's' STO END @ @ is it a binary integer? @ c # == THEN @ @ remove it @ s WHILE bodh OVER HEAD POS 0 == REPEAT TAIL END TAIL 's' STO END @ @ it's none of the above so throw away everything up to and @ including the next blank @ 1 THEN s POS -> p << IF p 0 == THEN 's' STO ELSE s p 1 + OVER SIZE SUB 's' STO END >> END END >> END END END @ @ did this program call anything? @ IF DUP SIZE 0 =/ THEN @ @ sort the list and remove duplicates @ SORT UNIQ @ @ convert them from strings to objects @ << ' SWAP OVER + + OBJ-> >> EACH END @ @ tag the call list with the name of the calling object @ n + ->TAG >> >> @ @ USES.IGNORE holds the list of things we shouldn't look into. @ @ In this case if you do a TYPE command on both of them then both ASC-> @ and ->ASC return values of 8 which is the same for any USER RPL program @ (i.e. << ... >> TYPE). @ USES.IGNORE { ASC-> ->ASC } END -- john R. Latala jrlatala@golden.net Ack! I don't even want to look at the comment:code ratio; that's unreadable. Anyway, why not just return two lists: one of all the rompointers that aren't built-in UserRPL commands in the program and one of all the IDs in the program? This would be simple with a (very) little SysRPL and a list of the UserRPL commands. Then remove them. because I didn't want to do it that way? :-) -- john R. Latala jrlatala@golden.net I am looking for a HP48 Emulator for Plam platform, can anyone help me with this? Ben Wouldn't that be WONDERFUL??? I would LOVE to have this, but it does not exist and probably never will... there's not a lot of demand. Instead, try RPN v2.57 and PowerOneGraph 3.0... The former is a simple yet powerful RPN calculator, and the latter is an (almost) fully featured, calculus-enabled graphing calculator/solver app. -Palm Man with You might also try RootM (http://www.creativecreek.com). It is not a graphing calculator, but it is an excellent RPN application for the Palm that is reminiscent of the excellent HP RPN calculators of old. i have put a small white LED on my display (non visible). i looks like another HP49g but has a very tiny switch next to the com port. i found that you can't see the keys on the dark! so it doesn't help much. i can use it as a flashligth ( he he )in total darkness. the ligth reflects on the screen (like a TV) and you can aim it at things. How did you do that? There is a HW modification section in the www.hpcalc.org and some diagrams or drawings would be very useful. Ofcourse Step-by-Step instructions with caveat! should be included. 0 It's not so difficult, I built illumination in my first HP49 (which some @@@ stole a few weeks ago -- guess this person has no idea what it is :-( Take e.g. 4 white LEDs, a resistor, 2 pieces of stiff wire, some more flexible wire, soldering iron, small switch. Stuff stiff wire from battery area to COM port. Solder to battery contacts. Hide resistor also there. (cut plastic where necessary). Open display cover. cut holes to take LEDs. Use flexible wire to contact LEDs, stiff wire, switch. Use iron to make trenches for wiring. I had my switch in the low left corner of the display cover. Make hole into cover where needed, close cover. The HP49 looks almost unharmed from the outside, yet you can read the display in the dark (while watching stars). -- Georg Zotti http://www.cg.tuwien.ac.at/~gzotti/hp/ Sounds like a neat idea... said he, peering into the back of his 48GX... 1. I presume that you used a small micro-switch, but something that small must be hard to find. Can you give me a make/model? 2. What was the resistor (ohms)? and, 3. Did you wire the LED's in series or parallel? (I'm presuming the resistor was in series with the LED array, but obviously there is a different resistance if the LED's are parallel or serial to each other..... Long time since high school physics...) Geoff Unfortunately, no. This was 2 years ago, and I just went into my local electronics shop and asked for the smallest. It is one of those you have to press continuously (so you cannot leave the light on accidentally, draining batteries). It had a round button, with about 2.5mm diameter, and a cubic body. I had to make a cavity into the acryl glass and the blue plastic to fit it in. Quite messy, nothing for too big hands. Something small, like 220 Ohms, maybe even less. Just so that the LEDs won't burn. (You would have almost a short-circuit without!) In series. Parallel would require more cables, and there is only so little space. Maybe I do it again and upload photos. 2 years ago, there seemed to be no interest for that stuff (or no VPN around ;-) Good luck trying! -- DI Georg Zotti gzotti (at) cg dot tuwien dot ac dot at hello, i used a very small toggle switch from motorola (i don't know if they sale it to the public). i also used a very small led. i had to file it (make flat-shoots straight) and cut a small portion of the internal case to install it (it fit rigth underneath the display cover-under th black area of the dispaly- in the reset i made- blue area of inside). i didn't touch the display cover though. like i said before, it is not very usefull because you can not see the keyboard in the dark, so i missed on that one. Wat shall i do with my HP-65? It only lacks the box! I keep it, for i love it! You can see it yourself at http://cgi.ebay.nl/aw-cgi/eBayISAPI.dll?ViewItem&item=1309694005&r=0&t=0&sho wTutorial=0&ed=1008825603&indexURL=0&rd=1 Ensar schreef in bericht I have an HP-67 with box, case, spare new case, blank cards, several new batteries and chargers. I have the standard pack, and the following packs in boxes: Math Statistics Games Business Calculator condition is LN. Boxes are nice. I'll sell them all but only to a crazed Japanese collector and for a mear $10,000.00 or trade for a 1934 Martin D-28 Guitar or a 1966 Porsche SC in mint condition. :-) Acme Optics Correction. 1965 Porsche SC. :-) Your first mistake was buying a Dell Computer. They are throwing together such pieces of crap that I can not believe people are gullible enough to buy them. On the other hand, since Dell and Gateway have been putting out so much crap that my service business has been booming. Go Dell and Gateway!!! -- Kevin D. Busto Email: TieroneHP@aol.com Tier-One Computer Services, Inc. Hewlett-Packard Authorized Reseller Website: www.tierone.d2g.com Oh, by the way, HP sells its OpenView products to Dell, plus many other products that Dell installs on its computers and resells to you, the unwary consumer. IBM is in fact Dells largest supplier of components, along with HP, Compaq, Toshiba, Sony, HP, Acer and a host of lesser known component manufacturers. In other words, Dell is not a real manufacturer but a reseller in wolf's clothing. By no means is Gateway a real manufacturer. They buy from many of the same manufacturers that Dell does. One of these days people may just wake up and say hey; IBM, Sony, Toshiba, Hitachi, Fujitsu, Canon, Acer, and many others are the real manufacturers, patent holders, R&D companies out there. What does this all mean? You are bound to get some lemons and you are bound to get some good machines, because everything is coming from just a few companies! -- Kevin D. Busto Email: TieroneHP@aol.com Tier-One Computer Services, Inc. Hewlett-Packard Authorized Reseller Website: www.tierone.d2g.com Download and read everything on: http://www.hpcalc.org/hp48/docs/programming/ VPN Veli-Pekka Nousiainen schreef: I expect to release a ML tutorial in January/February It is based on examples, so you do not have to spend two weeks reading the docs. If there are some beta readers, let me know. -- This message was written with 100% recycled electrons Pivo <9vv7b1$lpg$1@nyytiset.pp.htv.fi> <3C235452.F6E907EB@student.tnw.tudelft.nl> PG> Veli-Pekka Nousiainen schreef: PG> I expect to release a ML tutorial in January/February I have already seen some of it, and this will be *the* intorduction to ML, at least for people like me. Goes right into the center of things. - Carsten Great, I'm looking forward to this. :) TIA Albert -- Dr. Albert Graef, Dept. of Music-Informatics Johannes Gutenberg University Mainz, Germany Dr.Graef@t-online.de, ag@muwiinfa.geschichte.uni-mainz.de http://www.musikwissenschaft.uni-mainz.de/~ag Ditto. I am off till the end of Jan so I will be realy getting into my 48. Pivo--- Please, count me in! Feel free to email me direct with a link address. Henry C. Gernhardt, III Henry Gernhardt/Andrea Winship schreef: I''m sorry but I really am looking for experienced ML programmers to betatest my document. Since this is the first time I see your name in this community, I can't tell how well you are introduced into the saturn ML. I''m afraid you have to wait for the released version....... -- This message was written with 100% recycled electrons Pivo I have just completed a rudimentary programme written in user RPL to return the number of valid hosts on a network given the subnet mask. It is on hpcalc.org at http://www.hpcalc.org/details.php?id=4973 Any suggesgions or advice would be appreciated. It is my first attempt at User RPL. I soon plan to add the facility to display the network range given a host ip address. BTW most of my work mates (that is what we call them in Australia) said why are you doing that we use a PC programme? Little do they know!!!! So here we go again for another new year. I wonder when it's going to stop all these novelties... I wish you all a Merry Christmas and a Happy and Excellent new year 2002. Joyeux Noel et Bonne Annee !! Jean-Yves Merry Xmas and Happy new year to all HP-fans Buon Natale e Felice anno nuovo a tutti gli HP-fans I just bought myself a 49G at Office Depot. So far I haven't figured out how to connect it to my computer. Apparently my 48G serial cable won't work with it. I keep reading about ROM versions. Flash upgrades, etc. When I type version on my 49G it says 1.10c I don't think that is very useful, except to tell me it is a commercial version rather than a beta version. Is there any way I can tell which ROM I have just by asking it? Also, where do I look for info on updating the ROM? The things I've found so far seem to assume I have already done this. The version command does tell you the ROM version. 1.10c is quite an old one. You can download the new version at: http://www.epita.fr/~avenar_j/hp/49.html You can build your own cable for about $3 or buy HP's for about $30. Search on www.hpcalc.org and there is a guide on how to build your own cable. Micah work Is The on button on my 49G has stopped working! I can reset the caclulator and then press the ON button to switch it on, but then I cannot switch off (RSHUFT+ON) as the ON button is dead!!! It appears that physically the button is ok (as it switches the calculator on) but then it is disabled. Advise psealse..........! (the calculator is only 2 years old with light use and was never dropped or otherwise damaged.) hello, if you don't mind loosing your memory info, try this: press and hold ON, F1 and F6 while still pressing ON, release F1 and F6 then release ON if that does not work, leave the batteries out for a while hope it cures :) All my stuff's gone (but I have it backed up) but at least my calculator works again!!! Anybody noticed how much faster this thing is with empty memory??? Maybe an attempt to classify RPL helps. RPL is essentially an (impure) functional language, so it makes it easy to program in that style. If you know Lisp, it's really easy to get started with RPL. Think of your program as a collection of functions which are applied to some arguments to get some results. RPL supports the essential functional abstraction features needed to create new functions on the fly, i.e., functional composition, lambdas and currying, besides the usual structured control constructs borrowed from the procedural programming world. Sometimes I also see RPL being described as object-oriented (another one of those fine buzz-words ;-), but that's not true. While the RPL system is based on certain predefined object types which know how to execute themselves, the objects do not encapsulate all the methods needed to operate on them; rather there is an extensive collection of polymorphic functions which explicitly dispatch over different argument types, which is pre-OO technique. Moreover, RPL does not let you define new object types and derive types by means of inheritance, which is an essential feature of OOP languages. Obviously it would be nice to have some of these features, but after all RPL has been designed for calculators, and it already provides the built-in data structures you need for mathematical applications. Well, one of the most important principles of modularisation is information hiding. So, if your procedure uses lambda binding then the rest of the procedure does not need to know about the order in which arguments are supplied, and you can easily rearrange them later if you have to. Also, temporary values should be bound to local variables which are invisible outside the local context; if you use globals or compiled lambda variables, there's always the temptation to abuse them for nasty purposes. ;-) In general, when programming in the functional style it's desirable to avoid global variables and functions with side-effects wherever possible. Of course, sometimes non-local state is essential, take I/O as an example (which is rather awkward to handle in pure functional programming). And sometimes compromises have to be made for the sake of optimization (life is short and ROM is always full ;-). But it's generally a good idea to have the core functionality of a program implemented in a purely functional way, because it's a lot easier to understand and maintain such programs, and even reason about them using mathematical arguments. Just my 2c. Albert -- Dr. Albert Graef, Dept. of Music-Informatics Johannes Gutenberg University Mainz, Germany Dr.Graef@t-online.de, ag@muwiinfa.geschichte.uni-mainz.de http://www.musikwissenschaft.uni-mainz.de/~ag Hey, Geoff! Can you upload the programs into www.hpcalc.org and maybe publish them at you home-site Please! Veli-Pekka X Can you write more on the subject. Something about EVAL & APPLY on the 48GX, perhaps? Veli-Pekka X some lambdas from X OK... another project for the Christmas holidays.. I will have to clean up some code and do some Readme files so don't hold your breath.. But I will do it. I will post to hpcalc.org. I've been intending to add some stuff anyway as the present code base is really HP-41 level and the output capabilities have not been upgraded and the usage could be somewhat obscure, if you didn't write the code! (But it is a damn sight better than the HP-65 version which had NO prompts!). If you are not a yacht racing navigator, this will not be of much interest... Can't think of anyone else who needs to figure out the distance on your present course to the shifted layline which will result from a wind shift of 20 degrees....This is all triangle trig...Knowing one side and 2 included angles, what are the other 2 sides, but applied to a compass bearing, miles framework, where the ends of the known side are lat/long positions. But this will do calculations dealing with latitude and longitude which no GPS unit on the market can presently do. And if you have a GPS you can use it to deduce current effects. The vector cumulation sub-program will allow you to determine whether the metes and bounds description of a property actually describes a closed area. Lots of other neat bits and lots of code modularization. Geoff On Fri, 21 Dec 2001 11:50:37, Veli-Pekka Nousiainen -- Sorry, Veli-Pekka, not right now, it's xmas time and I have a family, you know. :) But an introduction to RPL from the functional programming perspective could be an interesting project... I'll have to push that on my stack. ;) Albert -- Dr. Albert Graef, Dept. of Music-Informatics Johannes Gutenberg University Mainz, Germany Dr.Graef@t-online.de, ag@muwiinfa.geschichte.uni-mainz.de http://www.musikwissenschaft.uni-mainz.de/~ag I need some help to connect my HP 48 SX to my Siemens S 35i Handy. Can anybody give me some help, to send AT instructions. I am making this post after almost a 2 year absence from the HP calculator scene. I only recently picked up my calculator and started to work on it again. Its amazing how much I have forgotten over the years, so I am taking small steps to get back into it. I don't think I will be creating anymore new programs, but just improving on some older ones. One of my last posts was about fixing a problem with the Star Plotter program that prevented it from working on revision R. The culprit was aHMS>H, which is an unsupported ROM routine that apparently has moved. As a part of a larger scheme to increase the overall speed of the plotting, I made the decision to change the star data from HMS to decimal degrees. Thus, this would eliminate the need for the extra conversion. The greatest speed increase came from approximating these trigonometric functions: COS, SIN, ACOS and ASIN. The overall speed increase from v1.0 to 1.1 is about 35%. I don't have a web site to post the program, so I uploaded it to hpcalc.org, so it should show up in the next day or so. Enjoy. - Arnold Welcome back Arnold! You won't believe how many people have tried to e-mail you in that 2 year hiatus :) I'm sure everyone is waiting for you to port some of your programs to the HP49. Any plans for that? Dennis Now I think that even TI 83 can handle a drop from the desk. That person has almost greeky sense of humor ;-) VPN X http://www-s.ti.com/cgi-bin/discuss/sdbmessageview.cgi?databasetoopen=calcul ators&topicarea=TI-82/83/83+Plus/Silver+Edition&viewmethod=Thread&messageid= 104934 That is absolutely rediculous :-/ (anyway: green plastic?) Maybe he was making both reports up. hi folks, http://jewel.morgan.edu/~rcobo/tshirt/ the tshirt challenge has ended and everybody won! (hope it inspired someone) happy and safe holidays to everybody. I was playing with the ol' 48gx of mine, when I of no apparent reason typed the word 'RULES', and what expecting nothing but 'RULES' on the stack. This does not happen, instead there's some kind of name-puzzle on the screen, including around ten names. Are these the nowadays-out-of-a-job-programmers of the super machine, or simply does anyone know? Are there people out there who knows of any more unknown commands, such as /Freddy -- Colin Croft Old mathematicians never die; they just lose some of their functions. Applications in Mathematics ccroft@iinet.net.au http://members.iinet.net.au/~ccroft/ the UG. Offhand, I don't find VERSION in the UG, but it's in the AUG. RULES is an example of an Easter egg; see http://www.engr.uvic.ca/~aschoorl/faq/48faq-4.html#ss4.2 also visit http://www.hpcalc.org/ if you haven't already done so. James I remember maybe 8 years ago, when the HP48G came out (and I bought it of course ;-), that I discovered it. I called up the official host of the back-then HP calculator BBS, here in Denmark, and told them. It was the first time they heard it, so I was probably one of the first to notice RULES in Denmark :-) Now it's not a secret anymore (and it shouldn't be) ;-) The reason, I recall, for me discovering it, was when I made a chess program for the '48 (in UserRPL - I still have itr, but it's deadly slow). The 'RULES' variable was of course meant to contain the rule base of chess piece movement. Steen Hello all, i am looking to buy an HP48SX. i got some equipment that likes this model and only this model. Not sure if this is the right place but this place has always come through. I would also trade an HP48G for an SX. Email me at my address below. amccornack@XXX.com please resend your email address. it bounces back thank you, ARQ. Sorry about that. amccornack@home.com is my usual address, though you Alan Get the GX. The main differences are a much better display on the GX, twice as fast a processor, and better key layout. The graphics are faster on the GX too, and a bunch of extra commands are added. The GX has most of the equation library built-in; on the SX you'd have to buy it as an extra card. The GX has enhanced list processing. The GX also has CHOOSE and INFORM and MSGBOX, and various other extra commands. Correct. But a very powerful one: http://www.hpmuseum.org/hp41.htm Knowing adolescent boys he'd either become a total enthusiast hacker and end up designing his own calculator, or totally resent his mother for not giving him the same as all the other students and graduate to a life of crime. :-) -- http://members.iinet.net.au/~ccroft/ it Ok, I thought parallel list processing was complete in this command, but that's ok. If it's only this case that fails, I'll change my code to avoid parallel list processing with single expressions. RSUBext is for substraction of internal form fractions only. You have to convert all your expressions e.g. with VXXLext before using RSUBext. What is everyone using for HP49G entries resolution for SysRPL programming? The latest list of HP49G entries that I can find is for ROM version 1.12 The latest supported HP49G ROM is version 1.18 and the latest beta is 1.19-6 Who is responsible for publishing a new SUPROM.A for the HP49G when a new version of the ROM is released? home: www.smith-house.org | work: www.wildopensource.com As someone who worked there during Bill and Dave's time (1979-1989), I'd suggest a new name that doens't involve them. Since the company management doesn't either. Flagellent Technology? Jim Horn (My apologies to the folks working at HP) Packard Bell? With respect to Flagellent Technology, maybe it should be Packard Smell. . . If you are not in a hurry you should wait a couple of weeks. I have already traced the schematic, it's being revised by a friend at this time and will be released as soon as he is done. RATS!!!270)(/Ū#)(/)(/&%Ū# It's ALL your fault, Wolfgang!!! I'm not even close to 10,000 points AND my 49G keyboard is now so soft that I get key bounce no matter what the value is that I feed to ->KEYTIME VPN can be found at http://education.ti.com/product/tech/30xa/faqs/faq83086.html. The description likely applies to HP products as well. Hello I would show the time in ASM on the HP49G, HOW ? HELP Eric I am making my way through Gilbert Urroz's 2 volume masterpiece on the 49G. It's very good, although very long. One thing that is a bit frustrating is that when I compare results on my calc with the ones listed in his book, the result IS the same, but displayed in a different way. I know the 49G allows many formats for display, which is great, but if you want to give someone an example result, it would be convenient to say make sure your mode value is xxxx, where xxxx, say, is something like a bitmask of ALL modes: FLAGS, CAS and DISPlay. This would allow completely reproduceable results, provided you have the same ROM, which *can* be checked using VER. Anybody have an answer? Use CASCFG first If of no help then you have to downgrade to ROM 1.16 which was in the marked at the time Urroz I was experimenting in Debug2 something about the new 49 CHOOSE engine. As reported in Carsten Dominik's tutorial (Using HP49 CHOOSE for more than just selection), this is done by the unsupported entry something like FPTR 2 72 but Debug2 compiler gave me an error in that line. I tried to change FPTR in FLASHPTR, but this won't solve the problem. So I will be grateful to the one that explains me about rompointers abd flashpointers calls in debug2 and MASD sintax (I guess they are different). /-----------------------/ Marco Tinarelli - Bologna - Italy tittiXXYYZZ_tt@tin.it (togliere XXYYZZ dall'indirizzo per rispondere) (cut XXYYZZ from e-mail address to contact me) I tried and it works: :: a b c 3 tyt 0 ' DROPFALSE FLASHPTR 002 072 ; Well, FLASHPTR 2 72 workes fine for me using debug2. I«m using Debugger Version 1 SubVer. 5 Build 136 I want a smoth interpolating curv of values in the X-axes relatet to values in the Y-axes. The nearest funktion I found is the scatter funktion. But I want a curv instead of dots. After SCATRPLOT press |STATL| which draws the least square model that you have chosen Note: The Plot changes to Function now! I hope this is what you wanted... How can you solve an Initial Value Problem eg.: dy/dx=exp(-3*x) where y(0)=5/3. I'm in RPN but can't find the syntax. Also, how about a symbolic solution of an equation with a domain restriction, eg. Integral(1/(1-t)) ; (t>1). David z. A) You have to give them in a matrix [ d1Y(X)=EXP(.3*X) Y(0)=5/3] Y(X) DESOLVE B) 't' STOVX 't>1' ASSUME but I don't know if REALASSUME list applies to Integrals VPN Hey. I've been using these two libs for a long time, tried the 3.7b4 version of java too. Great programs. My question is ... does it appear to you that java is significantly slower at displaying algebraics (in pretty print, of course) than EQstk is? something is screwey here... 'cause EQstk's AGROB needs .226s to process 'Integrate(a,b,Sqrt(c*x^n-1/d),x)' (small font, just a random expression) while java's AGROB command (which is the same, right?!) takes .43s, Twice as EQstk! And java 36a takes .45s :( with large font it is more or less the same situation. Accidentaly i found out that java's AGROB on a *grob* takes .29s! longer than EQSTK processes the *algebraic*!! why does this happen? ...if only java was as fast... now i have to switch back and forth... :(( Don't use it! It's based on an earlier 1.19-6 and only the CAS is better but you'll miss for example pretty-print e^x JYA & BP have promised to make a united 1.19-7 later on - just don't hold your breath (I guess a good release date would be 1.4.2002 :) VPN PS: I'm IN for open source or even restricted open source VPN I just checked the source, and there might be some conflicts, depending on how people are using the library. QVSOP (the command) currently outputs only planets 5-8, all at once. If a library is using *this* command rather than the planet-specific version, it will break, unless other changes are made. Certainly, the preferred command is QV_D.Y.n>LBR. A new command should be added to indicate which planets are supported by a given QVSOP library, in the order that they appear in the output of the QVSOP command.. Or, another option: set up a QVSOP library with a different romid, dedicated to the inner planets. This allows for some flexibility in memory usage, at the expense of using up another romid. So, Georg and Dennis -- what're your thoughts since you two know your own libraries? http://www.thuban.org any way to solve quad, equacao do 2” grau(it has that name in brazil)? solver does invalid data. Hi. I'm thoroughly enjoying the Stat49Pro program. I'm having a little trouble with the one-way ANOVA, though. I tried using the data that came with the program and my own data, but the HP-49 keeps giving me error messages like undefined result or invalid dimension. I suppose I'm entering the data into the The Euro symbol is used by MASD to enter special characters.. I guess the decompiler doesn't recognize it The minus sign in the argument of the KEYEVAL ensures that the original key functionality is assigned. Using a positive number (no minus sign) indicates that you'd prefer to use a possibly *assigned* key (in User Mode _only_ - naturally) to be assigned to the designated key location. VPN . Hello everybody I have downloaded VPN Equation from hpcalc.org but am unsure how to install it to my 49G. I hope you do not mean my STARTEQW programs?! The documentation to that is of current HP standard that is: try it out! The programs are supposed to reside in the Home level and in CASPAR plus my PARDIR AND especially in the STARTEQW which is run every time you press [LS] [MODE] e.g.. [CUSTOM] while in EQW then you can select from a CHOOSE list a sublist (in my STARTEQW case) and then the final selection of an operation that you would like to perform on the selected subexpression. http://www.osearth.com http://www.careermd.com http://www.dolphinwave.org http://www.spamhunter.co.uk http://howardk.moonfall.com/ http://www.trance-formation.com http://www.trance-formation.org http://hometown.aol.com/frederi108 http://www.optional-identity.org.uk/ http://www.coollist.com/group.cgi?l=nntplist http://www.hotboards.com/plus/plus.mirage?who=zodiac_16 HipCrime's ActiveAgent harvests email addresses by crawling the World Wide Web (HTTP), scanning Usenet Newsgroups (NNTP), or by loading compressed mega mailing lists (ZIP) like these: http://64.227.13.120/here.zip http://cyberspacereality.net/flamers/masterantis.zip http://cyberspacereality.net/flamers/masterantis2.zip HipCrime's ActiveAgent, the interNet's premier Publicity Engine, is the integrated multi-protocol spamming solution, guaranteeing anonymized saturation of both Usenet News (NNTP) and Email (SMTP). Obfuscated System RPL Code Contest! Bring it on! Note: the *program* gets the credit. Not the author. You may steal code from each other freely. The only rule is that the program must compile with RPLCOMP.EXE. No size limit or anything. gTsiros p.s.: i don't contribute. i am the judge. mwahahaha. Only one question megale! What does Obfuscated System RPL Code mean? Perhaps something like, scato-code? If so, I could contribute a lot ;-) Nick. P.S. Don't take me too serious, the trigo marathon turned me to a zombi! I am after some noise and acoustic software for the hp48g. Can any1 let me know where to get such software ? Tim You can't get them here in the US. I should contact HP in the Czech Rebublic. Hi everyone, I know there is a way for calculating sqrt() by recursion: y(n) = .5 * [ x(n)/y(n-1) + y(n-1) ] where y(n) -> sqrt(A) as n -> inf, if x(n)=A and y(-1)=1. I tried it on my HP48 and it takes 6 iterations to get to the answer 3 with A=9. I'm thinking there has to be a faster way than this. Does anyone know if the HP internally employs this method of recursion or does it use some other method? Does anyone know of a better one? Just to see how fast the sqrt() is on the HP48, I timed %SQRT on the argument 9. The TIM program reports 1.4ms. I'd be awfully impressed if the 48 did 6 iterations of the above expression in 1.4ms. -- Aaron ... I used to wonder this too. A good initial guess y(-1) would speed the algorithm up. Intuitively it seems that you could choose or interpolate your guess from a table of precalculated square roots. This might not be too fast, though. On the other hand, if you're doing arbitrary precision floating point, you could use the fixed precision value as a guess. I tried this once and I was surprised how fast the algorithm converged. But I don't think calculators use this algorithm. There is a paper on this on the net... but I've forgotten where. Ville Koskinen Ah yes, the square halving algorithm! Perhaps my favorite algoritm. It is simple and fast. There also is an algoritm that computes digits (like the miraculous Bailey-Borwein-Plouffe Pi Algorithm), which I *actually* learned in primary school in the mid 80's (before the calculator age :-) take a look at this site http://www.interstice.com/~sdattalo/technical/theory/sqrt.html -- This message was written with 100% recycled electrons Pivo If x_n is the sequence x_(n+1)=1/2(x_n/A+x_n), you have: |x_n(+1)-sqrt(A)| < C|x_n-sqrt(A)|^2 so at each step of the algorithm the number of good digits is multiplying by 2. let's make some definitions: D=X(0)-sqrt(A) E=X(1)-sqrt(A)=(X(0)^2+A)/(2*X(0))-sqrt(A)) and call X(0) X for short so the error will decrease if D^2 is larger than E^2 so D^2-E^2 > 0 (X-sqrt(A))^2-(X(0)^2+A)/(2*X(0))-sqrt(A))^2 > 0 and after some rewriting (X+sqrt(A))*(3*X-sqrt(A))*(sqrt(A)-X)^2 > 0 which means that X should be larger than sqrt(A)/3 for the error to decrease. -- This message was written with 100% recycled electrons Pivo For architectures that don't have native division, or have slow native division, it is easier to calculate the inverse square root of a number, and then multiply by that by the number. The following sequence converges to n^(-1/2) without any divisions: y(k+1) = .5 * y(k) * (3 - n*y(k)*y(k)) This is how square roots of million-digit-long numbers is done. Scott -- Scott Hemphill hemphill@alumni.caltech.edu This isn't flying. This is falling, with style. -- Buzz Lightyear doesn't sound like I'll be speeding up this operation much. ;-) -- Aaron H i I am still messing around with my new HP49G and having a load of fun... A basic question came to mind while doing some basic algebraic equations was how to preserve simplified functions during the step by step process for the sake of working it out on paper. EX: if im working with numbers like : 2?5 x 6?3 is there any way to get an answer (simplified) but not in decimal? Do you mean 2a5 * 6b3 where a,b are digits (from 0,1,..9)? Try this EXPAND((5+a*10+200)*(3+b*10+600)) Note however that the HP49 won't take in account that a and b are digits..just an algebraic expansion of polynomials. PS. This is in Algebraic mode (you seem to be usinf for the moment..). If you're familiar with RPN use (5+a*10+200)*(3+b*10+600) then EXAPND (Use EQW if you wish) __ Kamel Damned! I just realized that the font symbol I chose Damned! I just realized the symbol is now showing as ? instead of the square root symbol ( I never noticed ) it would be something like 2 [square root] 5 x 6 [square root] 3 type of thing, and I could maintain those numbers in simple form until the end of the formula. Instead of converting them to decimal. is that possible? it is much easier to work in simplified terms Hi John! I guess that you mean 2/5 x 6/3 (?) If I guessed right, then switch your calculator to exact mode. To do this, press and hold red-shift and press ENTER. If at the top of the screen you see R= X then it is OK. If you see R~ X then again press and hold red-shift and press ENTER. Now the result of 2/5 x 6/3 is 4/5 and not .8 If you already have the result .8 on stack level 1, then you can you the function XQ to turn it to 4/5 Hope this helped. Nick. Exactly as in my first answer. When in exact mode you can enter 2*SQRT(5)*6*SQRT(3) and then press EXPAND to get 12*SQRT(15). In approximate mode EXPAND would give 46.4758..... Nick. under Well, sure you can download the software (I don't think I've seen it on HP.com...) but to a collector, of course, that's not quite the same thing as having a real Xpander.... Roger Well, ok, let me explain the situation here....a little history: I am a dentist who's been in practice for a number of years. Having come up through the US pre-med system, I am familiar with students who are willing to push the envelope in any way they can--other than actually studying-- in order to score a couple of points higher on exams (i.e. cheating.) I have now gone back to college to take a couple of classes just because I find them interesting and helpful--I'm taking financial accounting right now, for example. The college I attend is of about 20,000 students and is heavily engineering oriented. The math and engineering departments have jointly decided to adopt Mathematica as the default CAS for classes and we are a T.I. campus as well (what do you expect?,,,.we're only about 15 miles from Richardson, Texas, the world headquarters of T.I.) Now, those who have taken higher calculus classes and above know full well that problems on math exams can be posed in ways such that calculators and CAS systems are of not much help--the one I always remember was from a Diff Eqn course that was Discuss: dy/dx = (x - y^2) Very simple equation, right? Well, I sat there for about an hour I guess, trying to SOLVE it and wasn't getting anywhere until I realized that the point was that we couldn't solve it and were supposed to do a qualitative discussion.) I went home and stuck this problem in Maple and to this day STILL don't understand the solution!) Now in accounting there are plenty of questions they can ask where an advanced calcualtor can't help, BUT there are also plently of problems where it can. We have received an additional handout that not only must our calculator have a display less than 1 tall, but cannot be programmable or alphanumeric either. I asked my professor what was going on--I thought that wireless Palms were possibly the problem, and some were, but the main problem had been CELL PHONES! Many students would come to the exams claiming that the only calculator thay had with them was the rudimentary 4-function one built into many models of phones. Then during the exams they would connect to their AOL IM account where they would have access to friends and essentially the whole set of lectures, etc. So, basically everything is banned on exams except for the $5.99 type of calculators. Wow, things have really changed since I was an undergraduate. Roger Metcalf Arlington, Texas pruebe a pulsar la tecla <-- mientras enciende la calculadora, puede funcionar, y si no pruebe a borrar y volver a cargar la rom y toda la memoria de nuevo. un saludo, no se si funcionara pero antes de q no funcione la maquina, (un saludo futuro ingeniero, igual q yo, pero yo quimico) I just got my HP 49G and am trying to convert a decimal number to hexadecimal. How would I go about doing this on the calculator? The manual does not really give much direction. Rob Kantor - enter your number like this: #xxxxy where xxxx is your number, and y is a lowercase letter indicating the base of the number (d for decimal, h for hexadecimal, b for binary, o for octal) - change the current base: HEX, DEC, OCT, BIN - look at the result on the stack Note that you can omit the 'y' in your number if it designated the same base as the current one. Incidentally, there's surely a better program on www.hpcalc.org, I remember having trying one for my HP48, which saved the current base, and displayed my entered number in all the 4 possible bases on the screen. I'm not so sure... ;) -- Erwann ABALEA erwann@abalea.com ----- <
B converts a positive real to its binary integer equivalent -- This message was written with 100% recycled electrons Pivo Hi Rob! First set hex mode by pressing HEX. You can get the command HEX for example by pressing the keys [blue-shift], [CONVERT] (key 6), [F2], [F1]. When HEX mode is on all binary integers are displayed in hexadecimal. Now enter your number and then press R->B. You access the command R->B by pressing the keys [blue-shift], [CONVERT] (key 6), [F2], [F5]. Nick. You mean probably the tool BACO (Base Conversion). It is slightly obsolate on hpcalc.org since at the time it was written the powerful display tools of ROM 19-6 were not yet available. Hence, load the updated version of BACO from ftp://ftp.math.fu-berlin.de/pub/usr/raut/HP49/tools/ It immediately displays a user binary in all modes HEX, DEC, OCT, BIN in one screen. The base of the input binary can be specified. All digits are shown even if the number of its binary digits is 64, the maximum number for a user binary. User binaries are special hexastrings. A system hexastring can be arbitrarily long ... - Wolfgang Does anybody know how can I acces the default Hewlett Packard's Equation Writer in a HP48GX with the MetaKernel 2.30? Ventura. Hi Aaron! I think Tal asked why doesn't it work?, not why doesn't it work faster?. Am I mistaken? Tal? Nick. Here's what you are looking for: http://www.hpcalc.org/details.php?id=3181 -- Dr. Albert Graef, Dept. of Music-Informatics Johannes Gutenberg University Mainz, Germany Dr.Graef@t-online.de, ag@muwiinfa.geschichte.uni-mainz.de http://www.musikwissenschaft.uni-mainz.de/~ag I have asked this a couple times before, but each time a different answer was given. What is the best way to add a program to the calculator? Pretend I start in the HP PC Link program. Just send it to the calc and then what do I do from there? Brandon--- It should all be in the manual(s). Good luck, Henry C. Gernhardt, III Hi Brandon! Well, if you already tranfered the programms to the calc, then you can use them. For example, suppose you just transfered the program PROG1 to the calc. Then if you press the key VARS, a menu line is displayed at the bottom of the screen. Each label of this line corresponds to a key from F1 to F6. If you press the key that is under the menu label PROG1, then PROG1 will start running. Was this what you asked? Nick The best way is the way that you like. If your question is *how* to add programs, read this: Installing Calculator Software http://www.hpcalc.org/install.php -- David Haguenauer Can someone tell me how to solve the following with my HP 49G? 2a^2x - 8a^x = 24 Solve to x. Be sure to be in real and RPN modes. Do '2*A^(2*X)-8*A^X=24' 'A^X=Y' SUBST EVAL 'Y' SOLVE 'Y=A^X' SUBST 'X' SOLVE (say yes to complex mode change) -> {'X=LN(6)/LN(A)' 'X=((2*i*n1+i)*pi+LN(2))/LN(A)'} 'n1' means an arbitray integer on the HP49G. Steen ANybody got a clue as to how to open the case to repair a sticking key? The sledge method has been suggested, but rejected. Well, HP use their Chai VM in many of their applications - HP laser printers for example - so it's not odd they want to promote it to the world. Personally, I don't mind much what HP make or don't make anymore. They are just another company to me. Steen Steen sez: WHAT YOU SAY! are Are your surprised? That's the opinion I've had since the ACO was closed It started even long before that, shortly after the ACO was formed. It became little by little clear that HP had strayed from the path it were once on, and had become just another company. They do not care to make extraordinary products, and they do not believe in supporting initiative and the little man. HP does not posses any of the qualities they once did posses - the qualities that made them different from other companies in many respects - companies like TI for example. This is not the first time I say that. If you also don't know this, I'll tell you that I have stopped 99% of my work on programs for the HP49G, and I have started a company together with some of my friends - this company will probably at some point release a handheld device, that will bring much of the old HP spirit back into this business. My '49 is not used 10% of what it was 4 months ago - I might as well start developing programs for the TI89 just for the fuin of it (I have actually had one for quite a long time - it's still in mint condition). Steen Perhaps you're right. But, what about all what HP made? You don't write more '49G programs because it will be discontinued? And so what? People keep writing programs for their HP-41C or HP-71B, despite being discontinued. There are still many resources (on-line or not) that can help. Yesterday afternoon, I ported the amazing HP100LX version of Peter Gatenby's game of LIFE to a Lotus 1-2-3 worksheet on my HP95LX. It was funny. I didn't mind that HP makes no palmtops like those anymore. Bad luck. But I still have my jaguar. And I use it. I love it. I do not collect things just to be looked at. I collect HP calculators to be used and programmed. To be enjoyed. No more HP calcs? Well, there are lots of models out there ready to be hacked deeply. Anyone care to volunteer? Bye. Jordi Hidalgo HPCC member #1046 johil@tv3mail.com - Yes, Steen! Hard to admit it, but true: Bye bye HP that we all knew :«-( A hope arises and Nick can hardly wait to become an HP2STEEN converter. :-) Hmmm, don't punish the machine for the errors of HP. Poor HP49G can't influence the CEOs at HP. Desparate Beeeeeeep. Nick. What about it? There are many great calcs among them, and that's good. No, I am not keen to support HP at this time. I have other things to use the few hours, that can be spared, to. I still like the HP4x, the 32SII, the 71 and the notebook devices (HP95/100/200). There are great products still out there, though discontinued by HP. You must understand that although this was a hobby for me, I strived for more. I wanted these calculators to evolve into much more, and HP was on that path with the ACO (and before that, the great Corvallis Team). The '49 was a stepping stone to bring us to the next level - this will not happen now. I have used very many hours working on stuff for the '49 - not just releasing my programs, but being a tiny small part of the development team. It's exiting to have influence on what direction the development will take, it's nice to be able to make a small diffference. It's nice to see people having a sincere interest in what you're saying. It's great to conversate with dedicated people like JYA, CdB and Bernard Parisse. It's nice to go to HP in Silicon Valley and see many of the faces you only knew by names - but then one realizes that these people are not that active any more. People like Detlef M237ller, Jonathan Busby, Cyrille dB, Christian Meland, Eduardo M. Kalinowski, Scott Guth, Werner Huysegoms, Wolfgang Rautenberg..... I was then introduced to the new products and got the SDK and JX25 OS with me home, and I realized in how bad shape this was. Then mails from Australia........and the closing of the ACO. The dream is over, and it cost too much to keep it alive, for the old resources to be worth anything again in this respect. If new resources take over, and try building their dream, then God bless them. My motivation is gone - in fact it is so much gone, that it's with mixed feelings that I look at the '49. It's not just a calculator. A TI89 is just a calculator for me, none of the HPs are yet.... Steen I supose you're using your calc in RPN mode, if not swtich to that mode. Put your lib in the first level of the stack then put the port number where you want to store the lib (read the documentation, but 0 should be ok), press enter Then press STO (or write it), and reboot your calc (ON+C at the same time) That's all. I recommendo you reading the 48/49 manual (available on the internet www.hpcal.org, www.hp.com/calculators), and also the FAQ (hpcalc.org) Ricardo -- Linux Registered User: 202 170 Kernel 2.4.16 http://iespgirona.xtec.es/~rblasco/ Un222os, hermanos linuxeros 640 Kb de memoria son m207s que suficientes (IBM AT Designers - 1982) Bueno, espero que esto no aparezca en la versi227n final (Bill Gates en la presentaci227n de Windows Crash Debug '98) I No need to use RCL. Just use the filer to MOVE the library to the port you want, press ON+C to reboot, finished. This should really be in the FAQ. -- Dr. Albert Graef, Dept. of Music-Informatics Johannes Gutenberg University Mainz, Germany Dr.Graef@t-online.de, ag@muwiinfa.geschichte.uni-mainz.de http://www.musikwissenschaft.uni-mainz.de/~ag Albert Graef schrieb im Newsbeitrag homedir. No, it should be in the manual... Raymond Albert Graef schrieb im Newsbeitrag homedir. charset=iso-8859-1 Actually it is in the manual (sort of) -- Users Guide pg. 7-11 and AUG pg. 11-6 (http://www.hp.com/calculators/techsupport/graphing/49g_userguide) Bye, Detlef -- `What a depressingly stupid machine' Detlef Mueller -- Marvin Detlef[DOT]M[AT]hamburg[DOT]de http://mein.hamburg.de/homepage/grendel you 11-6 But it's still one of the most frequently questions asked here. Come on, have mercy with the newbies. :) -- Dr. Albert Graef, Dept. of Music-Informatics Johannes Gutenberg University Mainz, Germany Dr.Graef@t-online.de, ag@muwiinfa.geschichte.uni-mainz.de http://www.musikwissenschaft.uni-mainz.de/~ag my girl's friend HP49G seems doesn't work! Everytime whe try to calculate an Integer, also the easiest, the calculator crash, and after few minutes appear an ?. What i have to do? The calculator is also very slow! I sent an e-mail to the HP support and they suggested to me to reset the calculator, i followed that instructions but never had changed! Waht i've to do? Excuse me for my bad english! Tanx calculator Crash, and then return a result afterwards? I don't think so. Examples please. Steen Also; supply ROM revision. Steen May Nope.. probably not.. More like you know Calculas comes after Trig (at leats here in the states ;^) Hmmm, calculus without having the complex stuff first? Oh well, many lands => many math teaching systems. Nick. I am not sure how to verify this, but does my ROM need updating? or do I have the latest release... I tried catching info on it by doing self tests etc. but was unable to find any indication of the ROM version JB> I am not sure how to verify this, but does my ROM need JB> updating? or do I have the latest release... YES! Even the best comertial ROM is not nearly as good as the latest beta (1.19-6) which is superbly stable and available freely, for example at hpcalc.org, or at http://www.epita.fr/~avenar_j/hp/49.html JB> I tried catching info on it by doing self tests etc. but was unable JB> to find any indication of the ROM version Type VERSION into the command line. - Carsten No. You need to update the ROM, as the newest is non-official, and so HP does not include it in its calcs. But it's better than its predecesors Try writting VERSION Ricardo -- Linux Registered User: 202 170 Kernel 2.4.16 http://iespgirona.xtec.es/~rblasco/ Un222os, hermanos linuxeros 640 Kb de memoria son m207s que suficientes (IBM AT Designers - 1982) Bueno, espero que esto no aparezca en la versi227n final (Presentaci227n de Windows Crash Debug '98) Hi John! Use the commands VERSION to find what ROM you have. Nick. I tried the command VERSION and this is what I see Version HP49-C revised im not sure how to interpret that where does it classify my ROM? John B. schrieb im Newsbeitrag Hmm. After that (or similar) text there should be something 'revision #1.xx-x', followed by the copyright line. To find out the version of the CAS simply type VER, followed by the ENTER key. Raymond When I run the comand VERSION ENTER the output looks something like this Version HP49-C Revision #1.18 Copyright HP 2000 Mark That means, that the you have ROM Version 1.18 (old). You should go for 1.19-6. Much better, many bugs lost (some new won), and new functions. Go for it! You won't regret it. Nick. I am looking for a TTF font file for use on a PC to develop documentation for a engineering book I'm writing. The book is on Cable Systems engineering and will be centered around the 49G but also with examples for other machines. I have the font files for the HP49G (HP49Keys.ttf) but I'm also looking for keys that could be used to show examples for algebraic calculators (heresy, I know!) such as the HP39 and TI83 etc. I have looked in the TI groups but to no avail so far. Any suggestions? Simon Simon Hughes schrieb in im Newsbeitrag: Hi!. The TI calc fonts are directly available through TI's website. Try ftp://ftp.ti.com/pub/graph-ti/sw-apps/fonts/ BTW it would be nice to know about your book when you finish it. cybernesto I will be sure to post more about the book when I'm finished. Simon hi!, the new rom for the Hp498G is abiable in a beta version in the next link, it's in spanish and i don't know if it is protected (i think it's a university): http://www.eis.uva.es/~hp48/menu.htm http://www.eis.uva.es/~hp48/menu.htm I just recently bought a hp49g calc, & am learning how to use it, I somehow set a value for X & now I can not get it to solve things like 3X+4X it gives me a long decimal, i tried resetting it, did not work, please help. If you purge the variable X all will be fine. use the filer to do this -- This message was written with 100% recycled electrons Pivo Hi Brian! If I understand you, you must have stored something in variable X. If you are in RPN mode, enter 'X' PURGE and try again to solve your equations for X. If this doesn't help, then please post what you are trying to solve, and what the result is. (And also possible messages, errors and so on.) Nick. KF> For those who are interested in such things... KF> Using the methods that lead to the QVSOP data for Zotti's Urania library, KF> I've managed to make a python extension which will allow expansion of those KF> tables. Not just for the outer planets, but also for the inner ones, to KF> within parts-per-million or better of the VSOP theory. While this is KF> intended to be useful in making updated QVSOP libraries, I suppose it would KF> have use elsewhere. Excellent! Will you or Georg make a new version of QVSOP, also covering the inner planets? - Carsten When I last spoke with Georg, he was pretty busy until at least Feb. At that time, also, I was having some crashing errors (due to ADO threading issues solved earlier this week). I'd like to make some additional libraries, but don't know yet if Urania bothers to check QVSOP for the inner planets or if it only bothers for the outer. If it does check, I can just create libs at will (well, almost -- compilation does enter into this). Note that with the inner planets, the time periods in question are much shorter -- on the order of weeks rather than the 1-year time period in the current QVSOP library. This means that libraries which include the inner planets will take up much more memory for a given time period than one might expect (30x or greater?). At the very least, I should be able to specify some parameters and dynamically generate the source code for a new library. It would take some time to generate: 20s per period at 10k-samples including resampling to generate rms and max error estimates, on my 1.2GHz desktop machine which is faster than the server (a lowly P3/500). There's also the problem of overlapping time periods with differing accuracies. But this, of course, is all part of the larger project that I'm working on for this. So the short answer is Yes, I plan to. But there's still some programming to go on to make it automated. ---------- Keith J. Farmer kfarmer@thuban.org http://www.thuban.org KF> When I last spoke with Georg, he was pretty busy until at least Feb. At KF> that time, also, I was having some crashing errors (due to ADO threading KF> issues solved earlier this week). I'd like to make some KF> additional libraries, but don't know yet if Urania bothers to check QVSOP KF> for the inner planets or if KF> it only bothers for the outer. If it does check, I can just create libs at KF> will (well, almost -- compilation KF> does enter into this). I beleive that also StarMaHP uses the lib, so Dennis will be interested as well. His lib is available for free, unlike Urania. I have actually tried several times to ask Georg Zotty for a trial verion, but never got a reply... - Carsten Hmm, I got mine a few day at the first attempt. Nice program. Maybe you should try again. Albert -- Dr. Albert Graef, Dept. of Music-Informatics Johannes Gutenberg University Mainz, Germany Dr.Graef@t-online.de, ag@muwiinfa.geschichte.uni-mainz.de http://www.musikwissenschaft.uni-mainz.de/~ag I have a lot of scratches on the screen of my HP 40G, because a glass bottle broke in the same bag as my calc was without the plastic cover that covers the screen+buttons with the result that pieces of glass scratched the screen a lot(I know, what an idea!). Anyone knows a way to remove(?) the scratches or at least make it look a little better, now it's as if my calc was several years old and I didn't take care of it...... Does it still have the original Protective screen over the LCD display or havwe you removed that already, if your calc still has it's original screen you can easilly remove it and receive a clearer better screen than the original (: and a second chance :) * if not, there is a product used for visors in the world of motorcycle and snowmobiles, its a teflon polish designed to buff out scratches, I dont know the name of it there are several brands, be warned that this is not a miracle fluid as some think, it does add much clarity to a scratched screen it will not miracly make those deep gouges dispear. good luck... Entity needless to say spoke thus: For lack of a better suggestion there is a system used for polishing acrylic plastic that removes simple scratches. Usually the kit can be found at industrial supply where they sell acrylic (Lexan, Plexiglas etc) it's that protective screen that has been scratched, where can I find a replacement and how to remove it ? (I can't fins any way to open the HP 40G, it doesn't have any screw....) John B. schreef in bericht and You might want to look on the HP Calc site, if you haven't already--removing the screen of the 39G and 40G is the same as on the 49G (please don't ask me how I know this is true.) Many folks have removed their 49G screens and modified them or left them off completely because the screens at first were of a much softer material which scratched very easily..... Roger Arlington, Texas bottle screen scratches several The easiest way is to use a small screwdriver by small flat head screwdriver (jeweler size) using a lamp look into the connectivity port on the HP49G's end you will actually see the screens underside from there. I would recommend accessing it from the right of the port, there seems to be more clearance there carefully place the screwdriver tip there (again) be sure you can physically see the tip resting on the screen and not pressing against anything else in there. (it must be a small tip) once you have established the tip is on the screen press on it, this will force the protective screen up on that corner (top left) when looking at it. Once the screen has lifted in that corner you can wedge something thin underneath it to pry it off the rest fo the way. PS. the screen is held there by double sided adhesive tape although this may not sound very strong, it quiet hard to remove from it :) good luck, and most of all be very cautious... http://sexhack.h3.to rvqrmxdeootrsxkyyppcmlymzykngptqoqtsiveorzdwodtfdhfiunpstdprgwxcjchuddmlrzwy zscvkuolplenepecwofmnnxrxpiydbxpdqqbinmfxzwzttvienwyqkoxsgzfmmykwvswmxteteci b cldeqfsgdxgqxtkjsubiepokjdzgvzrpwscvwlwudthqoyqffgfnoogoglkhxzewqmvhe And he's right. Most of the crucial extensions for the 48 run from port 0 or 1, and there's only 256 KB in there, including user memory. So even if you have a 4MB extension card in slot 2 that doesn't help you much (unless you don't mind to shuffle around libraries each time you need Jazz instead of Erable ...). My 1MB extension card is almost empty and everything is crowded in ports 0 and 1. OTOH on the 49 you already have the latest MK, Erable and hacking libraries on board. If the keyboard is not a major issue for you, get the 49. There's no other excuse. (Hmm, maybe I forgot about the screencover? ;-) -- Dr. Albert Graef, Dept. of Music-Informatics Johannes Gutenberg University Mainz, Germany Dr.Graef@t-online.de, ag@muwiinfa.geschichte.uni-mainz.de http://www.musikwissenschaft.uni-mainz.de/~ag Interesting; So I suppose application compatibility is not a big issue with most people? To me, that and the speed improvement are my biggest motivations (and maybe the added memory). Actually, I find that I don't care for the newest Java (I think I used to use the HPSauce Mild package) or Erable; I hardly use Alg48, and I can put MK on my 128k card. For basic college level math, I suppose I'll probably stick with it. Just curious though, for those of you who have 48's and 49's, what can your 49 do for you that the 48 can't? I know the wow factor of the ir on my 48 never ceases to amaze =) -e On Wed, 30 Jan 2002 04:22:10 +0100, Albert Graef I am back in school after nearly 10 years and I am taking a statistics class. I am using an HP49g but can't seem to figure out if the thing can do stats with single or 2 variable frequency distributions like the TI89 does. I had the opportunity to play with the 89 and I should say that I am impresed with the way it can handles this. I looked in hpcalc.org for an add on program that will let the 49 do the same, but so far been unable to find anything like the 89 built in stat package. Anybody? I took AP Statistics in highschool and the HP49G could do everything in the course. There are quite a few handy programs on hpcalc.org that can help you out for some of the specific tasks, but the most important statistical features are built into the HP49G. The programs I used from http://www.hpcalc.org/hp49/math/statistic/ are RPNStat, Stat49 Pro, and BAW. What do you need that the TI89 has and the HP49G does not have? -- Kenyon Ralph | kenyon321@hotmail.com | http://home.san.rr.com/ralphs/ Private First Class, United States Marine Corps do does. testĄ??? Hi everybody! In the previous parts of the trigonometry marathon we learned many things about the trigonometric and some algebraic capabilities of the HP49G. Things that will be very useful for what we are going to do in this part: Solve trigonometric equations. First of all, let it be said, there is no general method that will solve *all* trigonometric equations. But there are some groups of trigonometric equations. Any equation that belong to such a group can be solved using the same method. Of course the method for solving an equation that belongs to one group will be different from the method for solving an equation that belongs to another group. But we can make a program, that checks to which group such an equation belongs, and then acts accordinly. The general requierments for this program will be: -Recognize the group that such an equation belongs to, no matter how the equation is written. -Let as much as possible be done by the built in CAS. -When an equation doesnĪt belong to the groups that we examine here, pass it to the built in SOLVE. The commented code that represents the thoughts/ideas here, is at the end of this part. It is written solely in UserRPL. You can enter it in your HP49G, but if you think that it is too much, then tell me and IĪll mail it to you, so that you can download it to your HP49G So letĪs start! First group. A very easy kind of trigonometric equations is: a*trigfunction(x)=b where trig function can be SIN, COS or TAN. As you might have expected the HP49G can solve such equations right out of the box. Example: Solve the equation COS(X)=2/3 for X Simply enter the equation, enter X and then press SOLVE. The result is: { X=-(2*n1*Pi+ACOS(2/3)) X=2*n1*Pi+ACOS(2/3) } So for this kind, we donĪt need to program anything. :-) Second group: trigfunction(f(x))=trigfunction(g(x)) where trigfunction can be again SIN, COS or TAN (but the same for both sides of the equation) and f(x) and g(x) are two distinct functions of x. LetĪs try to solve such an equation: Enter SIN(3*X+Pi/4)=SIN(2*X-Pi/3) , enter X and if you are brave enough then press SOLVE. The HP49G needs an eternity to return some result. Actually I never was patient enough to let it finish this calculation. So perhaps it can solve such equations, but the time that it needs to do so is not acceptable. It is a bit strange that the HP49G can solve much more difficult looking equations easily, and at the same time it seems to hang with such easy things. So letĪs help it. Press ON to interrupt the calculation, if you were brave enough to start it. The equation SIN(3*X+Pi/4)=SIN(2*X-Pi/3) tells us, that X is such that the arcs 3*X+Pi/4 and 2*X-Pi/3 have equal sines. Remember the property of arcsine in part 7? There are infinite arcs whose sine in equal to SIN(3*X+Pi/4). They are ..., -4*Pi+3*X+Pi/4, -2*Pi+3*X+Pi/4, 3*X+Pi/4, 2*Pi+3*X+Pi/4, 4*Pi+3*X+Pi/4, ... and also ..., 5*Pi-3*X+Pi/4, 3*Pi-3*X+Pi/4, Pi-3*X+Pi/4, -Pi-3*X+Pi/4, -3*Pi-3*X+Pi/4, ... The two sets os solutions are represented by 2*k1*Pi+3*X+Pi/4 and by -((2*k1-1)*Pi)-3*X+Pi/4 where k1 is an arbitrary integer. The last 2 formulae are all arcs whose sine is equal to the sine of 3*X+Pi/4. The same way all arcs whose sine is equal to the sine of 2*X-Pi/3 are given through 2*l1*Pi+2*X-Pi/3 and -((2*l1-1)*Pi)-2*X-Pi/3 where m1 is another erbitrary integer. Now, we want to find X such that SIN(3*X+Pi/4)=SIN(2*X-Pi/3), which means that the arcs having these sines must also be equal. That leads us to 4 equations: 2*k1*Pi+3*X+Pi/4=2*l1*Pi+2*X-Pi/3 -((2*k1-1)*Pi)-3*X+Pi/4=-((2*l1-1)*Pi)-2*X-Pi/3 2*k1*Pi+3*X+Pi/4=-((2*l1-1)*Pi)-2*X-Pi/3 -((2*k1-1)*Pi)-3*X+Pi/4=2*l1*Pi+2*X-Pi/3 one. -5*Pi, ... That means, the quantity -((2*m1-1)*Pi) is Pi multiplied by an odd integer. This can be also represented by (2*n1+1)*Pi So the last equation turns to: 3*X+Pi/4=(2*n1+1)*Pi-2*X-Pi/3 That above means, that if we could check that the equation belongs to the group SIN(A)=SIN(B), we could replace it with the two equations A=2*Pi*n1+B and A=(2*n1+1)*Pi-B and solve these two new equations for X, instead of the original equation. How can we check that an equation belongs to the group SIN(A)=SIN(B) ? We could for example MATCH SIN(A)=SIN(B) with A=2*Pi*n1+B, check the flag that MATCH returns and act accordingly. But consider an equation of the form SIN(A)=-SIN(B). This also belongs to the same group because -SIN(B)=SIN(-B) and so the equation becomes SIN(A)=SIN(-B). If we use MATCH to replace SIN(A)=SIN(B), then cases like SIN(A)=-SIN(B), or -SIN(A)=SIN(B), or -SIN(A)=-SIN(B), and also SIN(A)-SIN(B)=0 and so on will not be MATCHed. Furthermore when the equation to solve is not factored but contains SIN(A)-SIN(B) as a factor, then we of course canĪt make a MATCH. What can we do? An easy solution is to first find all factors of the equation, build an equation with each factor equal to 0 and build a list with all these equations. If our factoring part of the program also finds a -1 and -SIN(A)+SIN(B) as factors of -(SIN(A)+SIN(B)), then the possible variations of such equations are: SIN(A)-SIN(B)=0 SIN(A)+SIN(B)=0 The built-in command FACTORS does this, but we will not use it here because it factors too much for our purposes. YouĪll see later on why it doesnĪt exactly fit here. The built in command COLLECT does factoring that better suits our needs, but it doesnĪt return a list of all factors. But we can use COLLECT and a litle bit programming get all factors from COLLECT not in an algebraic object but in a list. The part of the program that does this is commented at the end of this part of the marathon. It takes an algebraic object and returns the factors that COLLECT finds in a list. Note that it simply rejects any denominator from a factor, which can be dangerous if the denominator is 0 for the solutions of the numerator. If an equation contains factors of the form SIN(A)-SIN(B) or SIN(A)+SIN(B), this program will also return them in a list. The two forms of course canĪt be MATCHed both at once. But we can make an additional pre-check and convert one possible forms of an equation to the other form, and then replace it with the list {A=2*Pi*n1+B A=(2*n1+1)*Pi-B} which can be solved easily. So we choose SIN(A)-SIN(B)=0 to represent both possible forms of such equations and need to make an additional check that converts SIN(A)+SIN(B)=0 to SIN(A)-SIN(-B)=0. But there is an additional thing, to take care of. Suppose that we want to solve for X. The equation can in general contain factors that donĪt depend on X, like for example 2, var1-var2 and so on. This factors will later lead to equations like 2=0 or var1-var2=0, which canĪt be solved for X. We must filter out such factors. This is done with a subsequent procedure which filters out all factors that donĪt depend on the variable for which we want to solve. Exactly the same way, we can include code in the program, that solves equations like COS(A)=COS(B). With the same considerations as above, we can replace equations of the form COS(A)+COS(B)=0 with COS(A)-COS(B-Pi)=0 because COS(B)=-COS(B-Pi), then replace COS(A)-COS(B)=0 with { A=2*n1*Pi+B A=2*n1*Pi-B } For TAN(A)=TAN(B) we can replace equations of the form TAN(A)+TAN(B)=0 with TAN(A)-TAN(-B)=0 because TAN(B)=-TAN(-B), then replace TAN(A)-TAN(B)=0 with A=n1*Pi+B We are at the end of the second group, LetĪs move on to the third group. The third group contains equations of the form: trigfunction1(f(x))=trigfunction2(g(x)) where trigfunction1, trigfunction2 are two different trigonometric functions and f(x), g(x) are two different terms that contain the variable to solve for. Examples would be: COS(X-Pi)=SIN(2*X+Pi/3) TAN(X)=SIN(X/2+Pi) and so on. For equations that only contain SIN and COS but no TAN, it is easier. Take for example COS(A)=SIN(B). Since SIN(B)=COS(B-Pi/2), we can replace SIN(B) with COS(B-Pi/2) and then use the code that we already have written for the cases COS(A)-COS(B). For example the form SIN(A)+COS(B)=0 will be MATCHED to COS(A-Pi/2)+COS(B)=0 through the extra code. The resulting COS(A-Pi/2)+COS(B)=0 will be MATCHED to COS(A-Pi/2)-COS(&B-Pi)=0 the form COS(A-Pi/2)-COS(&B-Pi)=0 will be MATCHED to the equation list { &A=2*Pi*n1+&B &A=2*n1*Pi-&BĪ } also with code which is already written. In the same group we have also equations with TAN, like SIN(A)=TAN(B) where A and B are functions of the variable for which we solve. For such equations, I didnĪt find a general programmable method. It seems that the way to solve them, if there is a way, varies to much from case to case. LetĪs move on to the fourth group. This group has trigonometric equations that are algebraic in a trigonometric function. An example would be: a*SIN(X)^2+b*SIN(X)+c. If we substitute Y for SIN(X) , then the equation becomes a*Y^2+b*Y+c, which we can solve for Y. Then we have the two solutions of the quadratic equation Y=sol1 and Y=sol2. We make the back-substitution Y=SIN(X) we then we have SIN(X)=sol1 and SIN(X)=sol2, which can be solved easily. The HP49G can solve such equations without help. And because the original equation with the variable to solve for is passed to SOLVE, when none of the previous MATCHEs did anything, we donĪt need to program additional code for such cases. Amost every algebraic expression with trigonometric functions that can be factorized, can also be solved. The fifth group contains equations of the form f(SIN(X),COS(X),TAN(X))=0. A general way to work with such equations is to convert every trigonometric function that appears in the equation to a function of TAN(X/2) with the command HALFTAN. So we will have an equation where only terms with TAN(X/2). This can then be solved by the HP49G through factorisation. Many of the resulting equations contain big powers of TAN(X/2) and so canĪt be factored anylytically. But if you have set the flag -109 for numerical factorisation, then the HP49G returns numerical solutions. The nice thing is that the HP49G does solve such equations without help, when the arguments to SIN, COS and TAN, are all simply X. The not so nice thing is that the HP49G doesnĪt solve them if the arguments of SIN, COS and TAN are the same but not simply X. For example it solves SIN(X)+COS(X)-TAN(X) but it doesnĪt solve SIN(X+1)+COS(X+1)+TAN(X+1), though the equations are algebraically the same. So we need to program additional code which checks to see if there are at least two different trigonometric functions, and if the arguments of them are all the same, then substitutes, say Y for this argument, transforms everything to TAN(Y/2)-functions, solves for Y, then substitutes back Y=argument and then solves for X. The sixth group contains equations of the form: a*SIN(X)^2+b*COS(X)^2+c*SIN(X)*COS(X)+d=0 The HP49G often runs into troubles, when trying to solve such equations. It seems that often the factorisation of such equations results in factors which are difficult to solve for the CAS. ThatĪs why we didnĪt use FACTORS at the start. The equation could be factorized in such a way, that neither the form of the equation can be easily recognized, nor the equations factor=0 can be solved. First the idea for recognizing such a form. Use FDISTRIB to remove all groupings of terms. Then MATCH COS(X)^2, SIN(X)^2 and SIN(X)*COS(X) to 0. EXPANDing will then return an equation of the form d=0. Check to see if d depends on the variable to solve for. If not, then we have an equation of the above form. Now how to transform it to something easy to solve: Subtract d=0 from the equation and then add d*(SIN(X)^2+COS(X)^2) to the left hand side. Since SIN(X)^2+COS(X)^2=1 we have added and subtracted d, so the equation remains the same. But now it is in the form: a*SIN(X)^2+b*COS(X)^2+c*SIN(X)*COS(X)+d*(SIN(X)^2+COS(X)^2)=0 or (a+d)*SIN(X)^2+(b+d)*COS(X)^2+c*SIN(X)*COS(X) or A*X1^2+B*X2^2+C=0 where A=a+d, B=b+d, C=c, X1=SIN(X), X2=COS(X) Equations of the form A*X1^2+B*X2^2+C=0 can always be factored to: (2*A*X+Y*C+Y*SQRT(-(4*B*A-C^2)))* (2*A*X+Y*C-Y*SQRT(-(4*B*A-C^2)))/(4*A) (Try it yourself). The factored form of such equations can be easily solved by the CAS. If we consider that X1=SIN(X), X2=COS(X) then we can divide by COS(X) and get and equation of the form a*TAN(X)+b=0 for every factor. (Caution! we must check if the solutions are such that also COS(X)=0) So we use FACTORS to find the two factors, divide each factor by COS(X) and then use TRIGTAN to change SIN(X)/COS(X) to TAN(X). We have now two equations with only one occurence of TAN(X), which can both be solved by the built-in CAS. Before we go to the program that does all this, some things must be said. First of all, the prgram is far from being perfect, if there is such a thing like a perfect program. I tried to make it as generalized as possible, but there will be always cases, where it doesnĪt give solutions, or where it even crashes. We could add for example code for argument checking, or code for solving additonal cases, or code for fixing bugs, which can appear when some equation behaves in such a way, that it leads to errors. Also we could add code for checking the behavior of solutions, when some denominators are simply thrown away. And many many other things. And at the end, after so much blah blah, here it is. TRISOL, the program for solving trigonometric equations. (No, it is not TRIstan and ISOLde, it is TRIgonometric SOLve ;-) ) %%HP: T(3)A(R)F(.); << OVER @Make a list with the @COLLECTed equation Finding factors 1 DISP COLLECT 1 ->LIST @Put this list in local variable factors @Next routine returns all factors that @the previous COLLECT found in a list. -> factors << 20 SF @Set flag 20 WHILE 20 FS? @While flag 20 is set REPEAT 20 CF @repeat @clear flag 20 factors 1 @Put factors list @and a 1 on the stack @DOSUBS procedure starts here << -> fact @store current factor in @local variable fact << IF fact @if current factor is alg TYPE 9 == THEN @then CASE fact @case factor is a product OBJ-> { * } SWAP POS THEN DROP 20 SF @then drop the argument @count. Set flag 20 END DROPN fact OBJ-> { NEG @drop as many objects as @the argument count } SWAP POS @case the factor is negated THEN @then drop argument count DROP -1 20 SF @return -1 and set flag 20 END DROPN fact OBJ-> { / } @drop as many objects as @the argument count SWAP POS @case factor is a quotient THEN DROP2 20 SF @drop argument count and END @denominator. Set flag 20 DROPN fact @default case: drop as many @objects as the argumet count. @return current factor END ELSE fact @else current factor is @name or number. Simply return it END >> @DOSUBS procedure ends here >> DOSUBS @Apply proc to the list with the @COLLECTED equation 'factors' STO @Store factors list in local factors END @End of WHILE-REPEAT loop factors @Return factors list >> @Put 2 zeros on stack. Recall flags. @Store arguments in local variables. @ eq: The unchanged equation. @ var: The variable to solve for @ feq: List with all factors @ subs: Variable will be used if @ substitutions must be done @ subvar: Name of the substitution variable @ flags: The user flags 0 0 RCLF -> eq var feq subs subvar flags << @The factors that do not depend on @the variable to solve for will @be filtered out from feq Filtering factors 1 DISP feq 1 @Put feq and a 1 on the stack @DOSUBS procedure starts here << NSUB R->I 2 DISP @display current @factor count IF DUP TYPE 9 =/ @If current factor OVER TYPE 6 =/ AND @is not algebraic @and not name THEN DROP @then drop it ELSE @else var POS @the variable to @to solve for THEN 0 = @set it equal to 0 ELSE DROP @else drop it END END >> @DOSUBS procedure ends here DOSUBS 'feq' @Store the resulting STO @list of factors in @local variable feq. feq 1 @return filtered factors list and 1 @DOSUBS procedure starts here << @MATCH each factor to a standard @form that will be used with MATCH @later. Standardizing NSUB R->I + 1 DISP @MATCH forms with SIN and COS @(Third group -> second group) @MATCH sin(a)+cos(b)=0 to cos(a-Pi/2)+cos(b)=0 { 'SIN(&A)+COS(&B)=0' 'COS(&A-pi/2)+COS(&B)=0' } |vMATCH DROP @MATCH cos(a)+sin(b)=0 to cos(a)+cos(b-Pi/2)=0 { 'COS(&A)+SIN(&B)=0' 'COS(&A)+COS(&B-pi/2)=0' } |vMATCH DROP @MATCH sin(a)-cos(b)=0 to cos(a-Pi/2)-cos(b)=0 { 'SIN(&A)-COS(&B)=0' 'COS(&A-pi/2)-COS(&B)=0' } |vMATCH DROP @MATCH cos(a)-sin(b)=0 to cos(a)-cos(b-Pi/2)=0 { 'COS(&A)-SIN(&B)=0' 'COS(&A)-COS(&B-pi/2)=0' } |vMATCH DROP @MATCH forms with SIN only or COS only @(Find form that represents all variations of @an equation of the second group) @MATCH sin(a)+sin(b)=0 to sin(a)-sin(-b)=0 { 'SIN(&A)+SIN(&B)=0' 'SIN(&A)-SIN(-&B)=0' } |vMATCH DROP @MATCH cos(a)+cos(b)=0 to cos(a)-cos(b-pi)=0 { 'COS(&A)+COS(&B)=0' 'COS(&A)-COS(&B-pi)=0' } |vMATCH DROP @MATCH tan(a)+tan(b)=0 to tan(a)-tan(-b)=0 { 'TAN(&A)+TAN(&B)=0' 'TAN(&A)-TAN(-&B)=0' } |vMATCH DROP -> eqfact @Store current equation @factor=0 in local variable @The next local variables procedure finds @the type of the current equation factor=0. @If the equation belongs to any of the groups @that were considered in this part, then it @puts an equivalent equation in eqfact, which @can be solved much easier by the CAS << Finding type of eq NSUB R->I + 1 DISP CASE @Second group of equations eqfact @Case sin(a)-sin(b)=0 {'SIN(&A)-SIN(&B)=0' '&A=2*pi*n1+&B' } |vMATCH THEN @then put a list with @A=2*pi*n1+B and @A=(2*n1+1)*pi-B @in local eqfact Type sin(a)-sin(b)=0 1 DISP eqfact { 'SIN(&A)-SIN(&B)=0' '&A=(2*n1+1)*pi-&B' } |vMATCH DROP 2 ->LIST 'eqfact' STO END DROP eqfact @Case cos(a)-cos(b)=0 { 'COS(&A)-COS(&B)=0' '&A=2*pi*n1+&B' } |vMATCH THEN @then put a list with @A=2*pi*n1+B and @A=2*pi*n1-B @in local eqfact Type cos(a)-cos(b)=0 1 DISP eqfact { 'COS(&A)-COS(&B)=0' '&A=2*pi*n1-&B' } |vMATCH DROP 2 ->LIST 'eqfact' STO END DROP eqfact @Case tan(a)-tan(b)=0 { 'TAN(&A)-TAN(&B)=0' '&A=pi*n1+&B'} |vMATCH THEN @then put @A=pi*n1+B @in local eqfact Type tan(a)-tan(b)=0 1 DISP 'eqfact' STO END DROP @Sixth group of equations eqfact FDISTRIB @Put the fully distributed @form of eqfact in eqfact 'eqfact' STO eqfact @Case eqfact contains var SIN 2 ^ { 0 } + @at least two of the |vMATCH SWAP var COS 2 @forms a*SIN(X)^2 ^ { 0 } + |vMATCH SWAP @b*COS(X)^2 c*SIN(X)*COS(X) var COS var SIN * { 0 @and a form that does not } + |vMATCH SWAP '&A' @contain the variable to var COS * var SIN * { @solve for 0 } + |vMATCH SWAP 5 ROLLD OR 3 ->LIST GSLIST 2 >= SWAP EXPAND IF DUP { } THEN DROP 0 ELSE AXL var POS END NOT ROT AND THEN @then replace the constant Type asin178x+bcos178x+ @term with itself csinxcosx @multiplied with 1 DISP eqfact OVER - @SIN(X)^2+COS(X)^2 SWAP var SIN 2 ^ var @and factor the COS 2 ^ + * + FACTORS @resulting eqfact 1 Filtering factors, building equations 1 DISP @Another DOSUBS starts here @to filter out factors that @do not contain the variable @to solve for. The procedure @also divides each equation @by COS(X) and then applies @TRIGTAN to each factor. @It builds the equivalent @equations of the form @a*TAN(X)+b=0, which can @be solved easily by the CAS << NSUB R->I 2 DISP IF DUP TYPE 9 =/ OVER TYPE 6 =/ AND THEN DROP ELSE IF THEN var COS / TRIGTAN 0 = ELSE DROP END END >> @DOSUBS procedure ends here DOSUBS 'eqfact' STO END DROP @Fifth group of equations eqfact ->LST { } -> @Find all arguments of @trigonometric functions. @Convert algebraic to list. eqlst trigarg @Store in local variable << eqlst 1 @Return the list of the algebraic @DOSUBS procedure starts here << IF @If the current object is { SIN COS TAN } OVER @SIN COS or TAN POS THEN @Then expand the previous OVER EXPAND 'trigarg' @object and add it to the list STO+ @trigarg END EVAL @evaluate current object >> @DOSUBS procedure ends here DOSUBS DROP trigarg eqlst @return trigarg and the list @form of the algebraic >> DUP { TAN } HEAD POS 1 >= OVER @Case there are { SIN } HEAD POS 1 >= ROT @at least two { COS } HEAD POS 1 >= 3 ->LIST @of the functions GSLIST 2 >= @SIN COS TAN THEN DUP 2 @Then if all >> DOSUBS @trigonometric IF { 1 } @functions are + PILIST @the same THEN Type f(sinx,cosx,tanx) 1 DISP eqfact HALFTAN @apply HALFTAN EXPAND OVER HEAD 2 / @to the current EXPAND 'TempSolVar' 2 @equation factor=0 ->LIST |^MATCH DROP @replace each 'eqfact' STO @occurence 'TempSolVar' SWAP @of the argument HEAD 2 / EXPAND = @of trigonometric 'subs' STO var @functions with 'subvar' STO @TempSolVar, 'TempSolVar' 'var' @Store STO @TempSolVar=trigarg @for later substitution @Store variable to @solve for in subvar @Store TempSolVar @in var END END DROP @Default case CAS Type @no change of eqfact 1 DISP END eqfact @Return eqfact (original or var Solving @changed) and var. Solve NSUB R->I + 1 DISP SOLVE IF subs 0 @If subs is not 0 THEN @then back substitution Back substitution, @TempSolVar=ArgumentOfTrigFun and solution 1 DISP subs SUBST subvar SOLVE @return the original var END flags @and solve. STOF subvar 'var' STO @Restore flags which could 0 'subs' STO 0 @be changed through switch 'subvar' STO @to numeric mode >> @restore subs, subvar to 0 >> @DOSUBS procedure for solving @ends here DOSUBS >> >> If you must solve trigonometric equations, then give it a try. Next time weĪll be solving some examples with it. Boy! IĪm so tired, I see only SIN COS and TAN. Must go sleep now. (John, you got me! ;-) ) No wake up till next part, keep tuned! Solved greetings(x)=0 Nick. P.S. Dreaming of the Meta-CAS that runs on the CAS that runs on the OS. Zzzzzzzzzzzzzzzzz...... Hi again! Dreamed of bugs that attack TRISOL. And already found one! THEN Back substitution, @TempSolVar=ArgumentOfTrigFun and solution 1 DISP subs SUBST subvar SOLVE @return the original var END flags @and solve. STOF subvar 'var' STO @Restore flags which could 0 'subs' STO 0 @be changed through switch 'subvar' STO @to numeric mode >> @restore subs, subvar to 0 This should be corrected to: THEM Back substitution, @TempSolVar=ArgumentOfTrigFun and solution 1 DISP subs SUBST subvar SOLVE @return the original var subvar 'var' STO @and solve. 0 'subs' STO 0 @restore var and 'subvar' STO @restore subs, subvar to 0 END flags STOF @Restore flags which could @be changed through switch @to numeric mode >> Buggy greetings, Nick. Rats! The correction of the correction! (Too dark here, can't see the keycaps ) The corrected part of the program should be: THEN @then back substitution Back substitution, @TempSolVar=ArgumentOfTrigFun and solution 1 DISP subs SUBST subvar SOLVE @return the original var subvar 'var' STO @and solve. 0 'subs' STO 0 @restore var and 'subvar' STO @restore subs, subvar to 0 END flags STOF @Restore flags which could @be changed through switch @to numeric mode >> Hope that this time I got it right! Corrected buggy greetings, Nick. Hi all, I've been trying to assign keys on the custom keyboard and am having a little trouble. What I want to do is swap the locations of the CUSTOM and the MODE comands. The problem I am having is finding the object name assotiated with the keys proper. If I use the comand sequence 22.2 22.1 ASN ENTER the result when I push the MODE button on the USER keyboard is 22.2. Can anyone help? Mark You assign a number to a key and are amazed that it returns a number when you press it? :-) Try to assign this little program: << 22.2 KEYEVAL >> 22.1 ASN -- This message was written with 100% recycled electrons Pivo Hi Mark! First of all the syntax of the command is: object keynumber ASN or 'SKEY' keynumber ASN Object has to be the object that you want to be evaluated when you press that key. For example, if you wnat to assign a program that adds three numbers on key F1, you must do: << + + >> ENTER (the object) 11.1 ENTER (the key F1) ASN The special argument 'SKEY' restores the default function of the key. You have assigned: 22.2 22.1 ASN ENTER which assigns the *number* 22.2 to key 22.1 , so when you press the key MODE (key 22.1) then the number 22.2 is put on the stack. I suppose you wanted the key 22.2 (blue-shift MODE for CUSTOM) to be assigned on the non-shifted key 22, that is to get the custom menu when you press MODE. You should do: << 22.2 KEYEVAL >> 22.1 ASN KEYEVAL takes a key number and evaluates the corresponding key press, that is in your case it would be as if you pressed blue-shift MODES, for MENU. Similarly you must do: << 22.1 KEYEVAL >> 22.2 ASN to ASN MODE, where MENU was. Hope this helped a little. Nick. <3C592715.285A6A86@student.tnw.tudelft.nl> PG> Try to assign this little program: PG> << 22.2 KEYEVAL >> 22.1 ASN Better is probably << -22.2 KEYEVAL >> 22.1 ASN Even better: use Keyman. - Carsten Naturally! I hadn't thought of the circular reference when you also reassign 22.2 Oh, well....... -- This message was written with 100% recycled electrons Pivo Mark has anybody have an HP46G with the identifical number ID93....?? Have your calculator the rainbow effect? (shows in the screen a rare rainbow usually when you're working with natural light) Please answer me if it happends to your machine Yes. rainbow Yes. A known problem, that may or may not be solved on newer versions. Steen Mines a Chinese model CN0300.... (does that mean manufactured Mar 2000?) and I've never seen the Rainbow effect.