B8 ==== > The slide-on cover of the HP38G (high-school version of the HP48) has the > mysterious number 6.0030000004 molded into the plastic. Its mathematical > meaning has eluded the best and brightest, but not me! It was derived from > the number 48 and 38. I have discovered a simple proof which unfortunately > this newsgroup is large enough to contain: (190423*ASINH( 48 ) - 148144*ASINH( 38 ))/37911 = 6.0030000004 http://members.iinet.net.au/~ccroft/faqs_30-39.htm#35 Interesting, Joe... ;-) ==== I was looking aroung in the SysRPL manual, and saw the smiling face grob that displays on the screen. Is it possible to write a code that will display a grey grob in the stack, permanently? Even when calculating? If yes what kind of implications would that have on the speed of the calc, display visibility, and so on? What different ideas do you have for the coding? Can you replace the stack somehow? Or should the program handle everything, from keyclicks to the display? I am just interested in your ideas. Michael ==== Well, if you do > ID SS > and a varaible called SS exists, just that (ID SS) will recal the variable). > so you should do: > ' ID SS ( no eval ID SS ) > @ IT ( I do beleive that @ returns a boolean to say if the variable existed > or not ) > :: do your stuff ; > I am writing my first SYSRPL program. It calls the grob SS from memory > and then copies another grob (MRK) onto that one. But it seems that when I call it to the stack with ID SS that the > original gets replaced by the new formed grob. So I have to RCL it from memory somehow. Here is my problem. If I do > ID SS > @ > then I get external results in the stack, and I have no idea whether I > can work with that further on. Like displaying the grob. I'd like to > see the grob, not 'External'. If I put mulitple @'s in the program then my calc crashes and clears > my memory. What is the syntax to use for the @ command? Or SAFE@? ==== To locate more information about INPUT and related commands: http://groups.google.com/groups?selm=3DDE25D2.1A93CE59%40miu.edu How to use INPUT and PROMPT http://groups.google.com/groups?selm=4va8mv%24su7%40news.iastate.edu http://www.engr.uvic.ca/~aschoorl/faq/48faq-8.html#ss8.22 Other simple User-Interface Program Commands http://groups.google.com/groups?selm=5u71qo%24jgs%241%40news.iastate.edu [r->] [OFF] . ==== the sad thing is that i have the hardcopy of AUG, but version 1.0 has information only on CAS commands. thank you for the link. > The HP49G Advanced User's Guide is your friend. > See http://www.hpcalc.org/details.php?id=2998 > if you don't have a hardcopy, Markus -- fuf ==== A couple of weeks ago, I managed to repair the keyboard of a 48gx. The keyboard stop normal operation one year ago and the only way to use it was pressing the zone below the screen and above keys E and F. I wanted to repair but not to finish it (works fine if not for the keyboard) then I was afraid to open it (get no hurry because I got a new 49 last year). Finally a friend give me a really dead 48sx (will see...) that I used for experimentation (and join courage). First tip: To open the calc use the method described in this file http://www.hpcalc.org/hp48/docs/opening/openhp48.zip It works perfectly and just depending on your patience the calc can be opened (and closed) without a single scratch. (I use a wide screwdriver) Once you open it, the real problem start. The motherboard is joined to the front (keyboard and screen) by six twisted metallic things that you must untwist in order to come them apart. BE CAREFUL !! and don't break them. But take in account that I twist them three times for open (and three for close) without problem. Well, now you must change the screen. And I can't help you here :). Looking the display I agree with Steve Sousa that change the entire screen-keyboard-front combo may be the best solution. But I don't know if they are exactly the same in the two calcs. While you are there, take one second to look the little cushion(?) that press the keyboard contacts against the mother (it's the piece damaged in my calc). It's sticked to the plastic cover and can be (carefully !!) removed and sticked again. Use the one in the calc that is in better shape (mine was deflated in one side). You already must know the way back, to assemble the calc again. The tricky part is align the rubber contacts in both sides of the display. It take me some time (there I twist and untwist a couple of times the metal things) and the first time the screen became completely black. Test it before close the calc. Now my 48 works fine, but as I did it just one time, perhaps I was extremely lucky aligning the contacts. One more advice: closing the calc may became difficult because of the plastic needles that keep calc together. If you can't close it, just cut the plastic needles. Start with the six around the battery compartment (they are really useless) but try harder with the four around the IR port. I cut all of them but now I miss the last four since they made the join stronger . Good luck. Saludos Jorge M. Valenzani ==== >Does anyone know if it is possible to swap screens? Is it a soldering >iron + steady hands job or a mini-plug swap-in? Its soldering iron, plus steady hands, plus a microscope to see to align > the display lines up. You won't manage except by luck. link to the openhp48 zip file. Looking at the jpgs in the zip file was neat. I called HP....a replacement 48GX Fedex'ed to me, is about $115 ($US)... since the other 48 was a couple of bucks more than that, before taxes of 15%, in Canadian... I ordered the new one..so I will have 2...(shame on me!!!) The girl I was talking to confirmed that there is a new scientific calc with RPL in the pipeline, but it is not a graphing calc. probably only 2 or maybe 4 lines. She described it as like the 32 series (but I have no idea what one of those looks like). She knew nothing about any further graphing calcs. Geoff ==== > Seeing the photos it looks more like an actual calculator > floating in front, not a picture on a shirt. In the old days, space shuttle astronauts used to have an HP PPC attached to > their uniform with Velcro. I wouldn't be surprised at all if that's a real > HP 48GX (with a keyboard overlay) stuck on his suit. But that's just a > guess. -Joe- If you compare the pictures at the two links listed in this thread (the one at clarin.com and at time.com) you will see that the hp48 has rotated slightly between the two. The means that these are two frames from a moving picture showing the hp48 rotating freely in front of the group along with the tennis ball. If anyone can find a link to the moving picture, please post! I have searched the NASA archive but apparently that particular news about it, but got no response yet. Karl. ==== > If you compare the pictures at the two links listed in this > thread (the one at clarin.com and at time.com) you will > see that the hp48 has rotated slightly between the two. > The means that these are two frames from a moving > picture showing the hp48 rotating freely in front of the > group along with the tennis ball. Aha! You're right! To make the comparison easier, I've put 'em on a single page here: http://holyjoe.net/hp/columb7.htm > If anyone can find a link to the moving picture, please post! Yes, please! -Joe- ==== External Curl Parametrized. ParOuterLoop. (doubts) .90m using the RPLMAN ace to reference. I do not know very clearly this. I understand that it gives special control of keyboard. They could orient to me but on which it is possible to be done with this utility and like taking advantage of it to the maximum. Referring to this, I can use this ParOuterLoop in the case of having an application that making statistical calculations and periodically generating reports that update the screen, in addition, allows to execute a program when pressing immediately a key. And after this, it follows in the application of statistic? To which I want to arrive with or without the ParOuterLoop, in other words and another context, he is similar to execute a code in a microcontroller or processor, to have a button connected to an interruption pin, when pressing (generating this interruption) stops the main code and executes the interruption, soon returns to the main code. Then, I am thankful orient to me as it is the optimal form but (quick) in Sys RPL of, executing a program, to take care of the keyboard of immediate form, without having to encuestar the keyboard ([ WAIT ] in USER) and returning to the initial code. He will be better to think about ML? excuse mi bad english Mario Alberto (Col) ==== > What are the compatibility issues with the cable? I've seen the > disclaimers that it won't work with anything older than '95? The HP48 came out around 1991, so I do hope that everyone didn't have to wait around for Windows 95 to begin using it :) Unlike TI, which built special proprietary hardware into its computer cables, and also needed special proprietary software, there is nothing except the plug at the calc end of the cable which is special about an HP cable or transfer software (and even that special calc-end plug is almost identical to what was used in many computer mice, cdroms, or sound cards, enabling many cash-pressed students to make their own cable). Most 32-bit Windows programs, including the latest GUI-based file transfer accessory for these calcs, require a 32-bit Windows OS, but Columbia University's original MS-DOS Kermit still works fine under everything from MS-DOS to Windows 2000, and [Hyper]Terminal (which comes with every MS OS since Windows 3) also always works, so HP's choice of this quite universally supported software protocol (as well as the universally supported physical serial I/O interface, and the internationally standard ISO-8859-1 character set) enables this calculator series to mate with an extremely broad range An independent company even made a portable, battery-operated 3.5-inch floppy drive (Drive 95) which had only a standard serial port and used Kermit for its file transfers, which is as handy and portable for calculator backups and data file transfers as is the little IR printer (HP82240B) for hardcopy. The greatest danger to the compatibility of these calcs with PCs seems to be the latest USB-only PCs, but even then, a USB<->serial converter is a very standard item, so it's hard to see any near-term end to the ongoing compatibility of this great family of calculators with personal computers. Even those who tote around other popular new pocket computers often have their emulated HP48/49 right inside them, so no doubt the HP49 will live on, even after all the rubber keys have long since worn off :) [r->] [OFF] . ==== For those who have a newer PalmOS device, especially a colour device, this emulator is great! I have a Sony Clie T665C and the emulator works very well. He's also promising a 49G emulator too! He's based it on Emu48, but you have to try it to understand how slick he's made the interface. http://www.mindspring.com/~hildinger/Power48/ ==== ==== Maybe that's our future. Today I installed Xpander on my iPaq and after I get a Coke I'm going to look for good 48/49 emulators. Z. ==== I just spent quite a bit of time brousing the area, will check the zips I have downloaded. As long as the site listed is available will probably keep going back. That Donnelly book might be more available, and perhaps more novice / out of practice user friendly. Found only one AUG at S??? Cables for US$89 plus shipping; might have to bite the bullet. Couldn't seem to get one on line through HP parts for the roughly US$49 I guess I'll put a watch on ebay. ==== I just read part of the Adrian Drury Command Reference Guide. Had to get back to you and say that there is a lot of work put into it, and I will definately keep it on hard drive. I think it will be more useful -- ==== Well: I think this little program is the answer for your problem and for many others. http://www.hpcalc.org/hp48/math/misc/siunit211.zip Applying it to your number 936. (in*lb) / ( ft^2 * s *cP), I've got: 116076.787598 (or 1.1608E5) Hope you can find it as useful as I do. ==== The HP support the Poise unit directly (_P), and hence centipoise (_cP) too. (mass/length-time) is really written like this: (mass/(length*time)). is Use UBASE, and you'll get 116076.787598 (dimensionless). ==== to Assuming you made a typo for fluid density, i.e changing: p = 62.4 lb/cubic feet entering into calculator: 62.4_lb , rsUNITS, NXT, Mass lb 62.4_lb/ft^3 , rsUNITS, VOL, rsft^3 then enter all the other values with the final expression, looks something like the below without the () 936_ ( in lb) / ( ft^2 s cP ) , use UBASE (rsUNITS, TOOLS, UBASE) to get dimensionless numbers 116076.788 My advise is to change all the weird units to SI-UNITS immediately after entering it onto the calculator, (UBASE) then do the calculations. Try to keep it simple, because I think its the only way you can know what is happening, and be confident you don't get any conversion errors. Gjermund Skailand ==== There is an important difference between UBASE and the program I propose: entering 5cm*dyn, UBASE gives: 5e-7 kg*m^2/s^2, but the program recognizes those units and gives the good answer: 5e-7 J ==== this calculator from your suggestions. I also came up with another solution myself since I use English units much more frequently than SI units. After getting the answer of 936. (in*lb) / ( ft^2 * s *cP) I enter 1_1 to indicate a unit of one on stack 1. Then I do RS, Units, Tools, Convert. This converts all of the weird units to a unit of 1 which is dimensionless. Jim Leflar to on is ==== I have break the screen cover of my HP 49G (part with the rainbow effect So HP can't provide me one & I'm looking for someone who has one and want to sell it to me! Please, if you have this part contact me: brice.mealier@fnac.net ==== I did not apologize for my bad spanish, and you are right. However, my point is to tell speakers of english as a second language (or third...) to just participate without feeling or showing that they need to apologize. Any understanding, English-speaking reader should appreciate the effort made. How could I let 'infrarojo' slip by? ...time for a newer spellchecker... Toby la I tiene ==== Yes I agree totally with you, and I thank your attitude, as I am Spanish. Just kidding about how easy is sometimes to become hunted when you go out to hunt ;-) infrarojo, celular you can si ==== Some general comments: Having taken a look at the two new HP49G calculators I tried (both dead-on-arrival and now returned), there are some pretty noticable differences between the way HP makes its calculators now and the way it used to. As I said, the keyboards on both worked, but they're pretty much the same sort of quality you'd expect to find on some low-cost calculator or a toy. Hopefully, the legends won't wear off as the keys wear with use, but that's about all the keys have going for them. The tactile feedback (click) wasn't very noticeable, as if it's provided by only the rubber structure of the keys themselves. They are probably the sort of keys that have conductive rubber pads underneath that make contact with interlaced fingers of copper tracks on a PCB. These often become less responsive with time, as dirt gets on the PCB. Wear of the conductive rubber could also be a problem. With the batteries out, you can see that at least part of the calculator is held together by melting the plastic posts of one part where they protrude through holes in another. I normally associate with sort of construction with very low-cost toys made in China. The battery contact springs are just bits of foam rubber, and they're hard to use because the contact between adjacent cells moves around as you're trying to align the cells in position. One cell popped out while I was inserting another. The overall impression I got was cheap, cheap, cheap. I'd rather pay 10%+ more to have good-quality components used and a reasonable standard of contruction, if it meant I could be sure that (a) the damn thing would work straight out of the packaging, and (b) it would last for a quite a few problems of various sorts with the hardware quality over the years (memory, display lenses, etc...) This doesn't surprise me at all. Geoff -- Geoff Turner spamxtraktor@yahoo.com (NO SPAM) ==== Hallo I have on worked ones on my Win98 computer with software HP-IDE Development Environment copyright © 1997, 98 by Matthew Mastracci, for making out of programs in Sys RPL. After the adaptation of my system to WinXP, compiling breaks off with an error report. Is there a possibility to repair this mistake, or is there a similar tool which runs under NT-machines? Klaus ==== how about contacting the author? Raymond ==== Klaus, this is what started me down the road which led to building Debug4x. I spent some time trying to find Matthew Mastracci but had no luck! Debug4x is v2.0 of the HP Software Development Kit (SDK) called debug2, but a huge amount of work has been added since debug2 was released! Debug4x is a complete programming environment for the HP48 and HP49. You will find it easier to use then the HP-IDE and you can build libraries, directories and simple programs with ease. It works with the current EMU48 and not a specialized version. There are good examples and a large help file provided. The system includes an XModem Connectivity package and so many features I can't list them all here. Debug4x has been released to HPCalc.org but has not shown up yet on the site. Download your version from: http://bgraves.home.netcom.com/Debug4x.zip and solve all of your development software needs. -- - - - - - - - - - - - - - - - - Bill Graves RKBA! bgraves@ix.netcom.com ==== I'm in a hurry, because I have said i was going to write this data table (prontuario, as we call it in Spain) for first week of January. I have written it, but I'd like to have the small fonts in my viewer... please.. can somebody help me? ==== I see Rats - I thought that because the kernal linked into the CAS that the entire ROM would become open source. I guess I was mistaken. I don't know - I'm simply interested in having a look. Al ==== I was gone for a bit last year. Did HP consent to release the source code? Does that mean we can get a team of dedicated fans to update the 49G Rom? Sounds too good to be true somehow. [Oxford University Libraries Automation Service World Wide Web Server] ---------------------------------------------------------------------------- Archive-name: hp/hp48-faq/part3 Last-modified: 06/20/1995 ********************************************************* HP 48 S/SX/G/GX Frequently Asked Questions List ********************************************************* PART 3 of 4: Appendices A - H Currently Maintained by: Keith Maddock (madd0118@nova.gmi.edu) Originally Compiled by: Darryl Okahata Key: ! =new Q/A + =revised answer PART 3: * Appendix B: Using non-HP RAM cards in your HP 48SX: * Appendix C: What's new in the HP 48G/GX * Appendix D: The EquationWriter Bug & Rev J Bugfix * Appendix E: Compact Data Storage: * Appendix F: Various useful functions * Appendix G: Rotation rate to angular frequency conversion bug * Appendix H: How to make a Serial Cable for your HP48 ****************************************************************** Note: Since this appendix was written by Bill, I dare not modify it. GX versions. object from the stack and converts it to a string, in which each nibble of the object and its checksum is converted to a character 0-9 or A-F. (The object must be in RAM, otherwise a ROM Object error is returned.) For sake of easy after every 64 characters. converts it back into an object. When you transmit the encoded strings, string to verify that the decoding is correct. An Invalid String error is returned if the result object does not match the original object translate mode 3 so that the HP 48 will convert any CR/LF's back to LF's when the string is later downloaded. language, using SYSEVALs to execute system objects. P2 is a string that the setup program uses P1 to decode into an executable compact than the first, and also uneditable and therefore safer (but it can't be transmitted in ASCII form, which helps to make the point of this exercise). Here are the programs, contained in a directory: (start) %%HP: T(3)A(D)F(.); DIR << IF DUP TYPE 2 =/ THEN Not A String DOERR << 16 STWS #0 NEWOB SWAP DUP SIZE IF DUP 4 < THEN DROP SWAP DROP Invalid String DOERR END DUP 65 / IP - 4 - # 18CEAh SYSEVAL OVER # 61C1Ch SYSEVAL SWAP # 6641F8000AF02DCCh # 130480679BF8CC0h # 518Ah SYSEVAL # 19610313418D7EA4h # 518Ah SYSEVAL # 7134147114103123h # 518Ah SYSEVAL # 5F6A971131607414h # 518Ah SYSEVAL # 12EA1717EA3F130Ch # 518Ah SYSEVAL # 280826B3012808F4h # 518Ah SYSEVAL # 6B7028080BEE9091h # 518Ah SYSEVAL # BE5DC1710610C512h # 518Ah SYSEVAL # 705D00003431A078h # 518Ah SYSEVAL # 3D8FA26058961431h # 518Ah SYSEVAL # 312B0514h # 518Ah SYSEVAL # 18F23h SYSEVAL DUP BYTES DROP 4 ROLL IF == THEN SWAP DROP ELSE DROP Invalid String DOERR END ws STWS D9D20D29512BF81D0040D9D20E4A209000000007566074726636508813011920 140007FE30B9F060ED3071040CA1304EC3039916D9D2085230B9F06C2A201200 094E66716C696460235472796E676933A1B21300ED30FD5502C230C1C1632230 CCD20FA0008F14660CC8FB97608403104AE7D814313016913213014117414317 414706131179A6F5C031F3AE7171AE214F8082103B6280821909EEB0808207B6 215C0160171CD5EB870A13430000D50713416985062AF8D341508813044950B9 F06BBF06EFC36B9F0644230C2A201200094E66716C696460235472796E676933 A1B2130B21300373 D9D20D2951881304495032230FD5502C230A752688130ADB467FE30322306AC3 0CB916E0E30CBD30F6E30C1C1632230CCD20DC0008F14660CC8FB97608403104 AE7D8143130169174147061741431311534AC6B4415141534946908D9B026155 4A6F53131F3AE731A014C161AE215F08082103A6280821939EEC08082170A621 4C161170CD56B870A18503430000D5071351796A9F8D2D02639916D9D2085230 C2A209100025F4D402F426A6563647933A1B2130A2116B213033C0 SETUP @Automatic setup program { P1 P2 P3 SETUP } PURGE END (end) Installation instructions: 1. Edit the above text between (start) and (end) into a text file named CONV (for example). Be sure that you leave the strings exactly as entered above, with no extra spaces or other invisible characters at the beginnings or ends of the lines. 2. Set the HP 48SX into ASCII transfer mode. 3. Using Kermit, download CONV text file to the 48, verify its checksum (6C8Ah). 4. Execute CONV to make it the current directory. 5. Execute SETUP. use. be sure to set the HP 48SX in binary transfer mode before uploading. Disclaimers: + Use the programs at your own risk. Any time you delve into the SYSEVAL world, there are increased dangers. Archive your 48 memory before experimenting with these programs! Also, verify the checksums of objects defined above to make sure they have been downloaded correctly, before + I will not answer questions about how the programs work. This is not because of any great secrecy, but rather because it's hard to give any answer that doesn't lead to more questions, and more, and more... + 48 hackers are welcome to mine any nuggets they can from the programs, ****************************************************************** * Appendix B: Using non-HP RAM cards in your HP 48SX: If you use RAM cards that are NOT designed for the HP 48SX, it is possible to severely damage your HP 48SX. If you want to be safe, you should only use RAM cards designed for the HP 48SX. Here is an edited discussion from comp.sys.handhelds. There has been a substantial amount of comment regarding the memory cards for the HP48SX and their prices. My purpose in this response is not to attempt to justify any particular price, but rather to present the technical reasons why there is a substantial price difference between the memory cards and other types of expansion memory for PC's, for example, with which users are probably more familiar. Some users have correctly pointed out that the memory in the cards is static RAM rather than dynamic RAM commonly used in PC's. Dynamic RAM uses one transistor and a capacitor for each bit of memory whereas static RAM requires either four transistors and two resistors, or six transistors. The net result is that an equivalent amount of static RAM is much larger and therefore much more expensive than dynamic RAM. The advantage is that static RAM doesn't need to continually be running and drawing current (refresh cycles) to retain the contents of memory. In addition, the static memory used in the cards is not just any static memory, but is specially processed and/or selected for very low standby current. This allows the backup battery in the card to keep memory alive for a very long time, rather than requiring the user to replace it every few months. The special processing and/or special testing to select low current parts adds to the already higher cost of the static RAM chips. The standard molded plastic DIP package used for most integrated circuits, including memory chips, is relatively inexpensive because of its simplicity and the huge volumes. Unfortunately, these packages are too large to put into a memory card. Therefore, the card manufacturer mounts the individual silicon memory chips directly on a special thin PC board together with the memory support chips. Because multiple chips are being placed in a single hybrid package in a special process which has lower volume, yields are lower and this again causes the cost to be higher. Indeed, the yield becomes exponentially worse as the number of chips and interconnections increases in such a packaging process. In addition to the memory chips themselves, two more integrated circuits and several discrete components are required for power and logic control. A bipolar technology chip senses the external voltage and switches the power to the chips from the internal keep-alive battery as needed. A CMOS gate array chip protects the memory address and data lines from glitches/ESD when the card is not plugged in. This chip also generates the proper enabling signals when there are multiple memory chips in the card, as is presently the case with the 128 Kbyte RAM card. These chips must be designed for extremely low current, just as the memory chips are. In addition to the battery and the battery holder, the other mechanical parts are important, too. The molded plastic frame holds the PC board and provides the foundation for the metal overlays and the shutter-and-springs assembly which protects the contacts from ESD and from contaminants. The write-protect switch is also an important feature. It is quite expensive for the manufacturer to make the tools necessary to fabricate each of these parts as well as the tools to assemble and test the complete card. While the volume of memory cards is relatively low this tooling cost represents a significant part of the cost of each card. Admittedly, there are other alternatives, such as those presently used in PC's, to provide a memory expansion capability. To provide that kind of expansion would require the calculator to be much larger than it is and possibly more expensive. This is clearly very undesirable. Other features that were felt to be essential were the ability to distribute software applications and to share and archive/backup user-created programs and data. Other expansion alternatives do not provide these important benefits. The IO capabilities of the calculator provide these features only to a limited degree. One other item bears repeating here: Memory cards for use in the calculator will clearly indicate that they are for use with the HP48SX. Other memory cards exist which are mechanically compatible with the HP48S, but these cards cannot be relied upon to work electrically in the calculator. The HP48SX cards are designed for a lower supply voltage range. Use of the other cards may cause memory loss, and under certain circumstances may even damage your calculator electrically. My previous statement that under certain circumstances the calculator may even be damaged electrically is not a ploy. If the calculator's internal power supply voltage happens to be near the low end of the range, say 4.1 V, and the voltage at which the card's voltage control chip shuts it down happens to be near the high end of its range, say 4.2 V (this can and does occasionally occur for the non-HP48SX cards), then the calculator will start to drive the memory address lines and the card will still have these clamped to ground (that's what it does to protect itself when there is not sufficient system voltage to run). This unfortunate situation may simply trash your memory, or if the calculator tries to drive enough of the lines high at the same time, several hundred milliamps may flow...for awhile that is, until something gives up... On the other hand, your calculator and a particular non-HP48SX card may work just fine if those voltages happen to be at the other end of their ranges. These voltages are also slightly temperature sensitive. It may work in the classroom or office and not at the beach, or vice versa. The voltage trip point of the HP48SX cards has been set lower (a different voltage control chip) so that this cannot occur, regardless of part and temperature variations. One other item was brought to my attention yesterday by Preston Brown that I should have included in my original posting here. While most of us recognize that comparing ram cards to a handful of dynamic ram chips to plug into your PC is apples and oranges, it may be more interesting to compare the HP48SX cards with cards for other products, like the Atari Portfolio, the Poquet, the NEC Ultralite, etc. I believe you will find that the prices on the HP48SX cards are not at all out of line. Steve I claim all disclaimers... the non-HP48SX cards When the RAM cards detect that voltage is to low to operate they clamp the address lines to ground. This clamping is done by turning on the output drivers of a custom chip included on the card. The clamping current is speced at 2mA min at the Vol output level. Since the 48 can be trying to drive the line all the way high even more current is typical. 10mA per fight is not uncommon with totals of several hundred mAs. The VDD power supply is regulated at 4.1 - 4.9 with typical parts at the low end (4.3). The power to the cards is switched thru a transistor, creating up to a 0.1V drop. Standard Epson cards have a significant chance of seeing this voltage as to low and shutting down. We have seen cards do this in the lab. When it occurs the calculator locks up with VDD pulled down to about 2.5V and 250mA being drawn from the batteries. This current drain greatly exceeds the ratings for the power supply and can damage your calc. The least that will happen is a loss of memory. Now, why didn't we regulate VDD higher? The 48 has two power supplies VDD at 4.3 and VH at 8.5. VH cannot be regulated higher without exceeding the spec for our CMOS IC process. VH is used as the + voltage for the I/O. In order to meet a +3V output level VH must be more then 3.6V above VDD. (VDD is used as I/O ground). Our power supply system increase the battery life and reduces the cost greatly for the wired I/O. Preston ****************************************************************** * Appendix C: What's new in the HP 48G/GX? [ The following was taken from a posting by Joe Horn. ] +--------------------+ | WHAT'S NEW | | IN THE HP48 G/GX | +--------------------+ collected & annotated by Joseph K. Horn (1) AUTOMATIC LIST PROCESSING Almost all commands that did not accept list(s) as their arguments can do so now. Here are just a few examples: { 1 2 3 } SF sets flags 1, 2, and 3 { freq freq ...} { dur dur ... } BEEP can play a song with no audible hiccup between tones. Since + has always been used to concatenate lists, a new ADD function exists to add the elements of two lists, like this: { 1 2 3 } { 4 5 6 } ADD returns { 5 7 9 }, whereas { 1 2 3 } { 4 5 6 } + returns { 1 2 3 4 5 6 } as it did before. The only commands which do not have automatic list processing are: a. those which never get a Bad Argument Type error (like DUP), b. meta-object commands (like ROLL), c. program branch structures (like FOR), and d. commands that specifically work on lists (like GET). Sometimes the results are non-obvious, for example: (2) PORTS AND MEMORY The HP48G, like the 48S, only has 32K RAM. The GX, unlike the SX, has 128K RAM built-in. Card slot 1 can contain another 128K (maximum), but card slot 2 can contain up to 4 megabytes of RAM. Only port 1 can be merged in the GX. Card slot 2, which is intended for large-capacity RAM cards, is permanently free, and is automatically divided up into 128K ports, each of which becomes Port 2, Port 3, Port 4, etc. Up to 4 Megabytes can be plugged into slot 2, which would then become Port 2 through Port 33. (Although the FREE and MERGE commands were kept for HP 48SX compatibility, GX users will prefer the new FREE1 and MERGE1 commands). Therefore the maximum amount of merged main memory is 256K (unlike the SX which allowed up to 288K) after MERGE1; the maximum amount of fully online free independent memory is 4224K after FREE1. (3) LOCAL VARIABLES. Variable names prefixed with a <- (backarrow character) are compiled as local (temporary) variable name objects even if share values through local variables, which is much faster than sharing values through global variables, and they get purged automatically. (4) SPEED. CPU clock speed is double the S/SX's, but throughput is estimated to be only 40% faster, primarily due to the fact that *all* RAM & ROM is now bankswitched (on the S/SX only a 32K portion of the ROM required bank switching), and it still has the same 4-bit bus bottleneck. (5) IMPROVED COMMANDS: AXES can now also specify the spacing of the tick marks. DEPND can now also specify the initial values and tolerance for the new DIFFEQ plot type. REPL and SUB now work on arrays. (6) HP SOLVE EQUATION LIBRARY CARD COMMANDS: AMORT, amortization calculations CONLIB, starts Constants Library catalog CONST, returns value of a named CONLIB constant DARCY, calculates Darcy friction factor EQNLIB, starts Equation Library catalog F0lambda, calculates black-body power fraction FANNING, calculates Fanning friction factor LIBEVAL is a generalized form of the EQ card's ELSYSEVAL; it executes any XLIB by its library number MCALC, marks an MSOLVR variable as not user-defined MINEHUNT, starts the Minehunt video game MINIT, initializes Mpar from 'EQ' for MSOLVR MITM, customizes title & menu of MSOLVR's screen MROOT, solve for variable(s) in MSOLVR MSOLVR, shows Multiple Equation Solver menu MUSER, marks an MSOLVR variable as user-defined SIDENS, density of silicon as function of temperature SOLVEQN, starts solver for specified EqLib equation(s) TDELTA, subtracts temperatures like - ought to but doesn't TINC, adds temperatures like + ought to but doesn't TVM, shows the financial calculator (Time Value of Money) menu TVMBEG, sets payments-at-beginning-of-periods mode TVMEND, sets payments-at-end-of-periods mode TVMROOT, solves for a TVM variable ZFACTOR, calculates gas compressibility factor Z Note: The EQ Card's Periodic Table and Tetris game are not in the HP 48G/GX, but the EQ Card can be used in the GX if those applications are needed. Tetris was not included because no agreement on royalty was reached. The Periodic Table is available separately as freeware on HPCVBBS. (7) NEW ARRAY COMMANDS: COL+, inserts a column vector into a matrix or a number into a vector (like INSCOL/PUTCOL in Donnelly's Tool Library) COL-, deletes a column from a matrix or number from a vector (identical to DELCOL in Donnelly's Tool Library) (like repeated GETCOL in Donnelly's Tool Library) COND, column norm condition number of a square matrix CSWP, swaps two columns in a matrix (like EXCOL in Donnelly's Tool Library) EGV, eigenvalues and right eigenvectors of a square matrix EGVL, eigenvalues of a square matrix FFT, discrete Fourier transform IFFT, inverse discrete Fourier transform LQ, returns the LQ factorization of a matrix LSQ, minimum norm least-squares solution to an ill-determined system of linear equations LU, returns the Crout LU decomposition of a square matrix PCOEF, returns polynomial with given roots (inverse of PROOT) PEVAL, evaluates polynomial at x PROOT, finds all roots of polynomial (inverse of PCOEF) QR, returns QR factorization of a matrix RANK, rank of a rectangular matrix (uses flag -54) RANM, creates matrix with random elements RCI, multiplies elements in one row of a matrix by a scalar RCIJ, does RCI then adds the result to a row ROW+, inserts a row vector into a matrix or a number into a vector (like INSROW/PUTROW in Donnelly's Tool Library) ROW-, deletes a row from a matrix or number from a vector (identical to DELROW in Donnelly's Tool Library) (like repeated GETROW in Donnelly's Tool Library) RSWP, swaps two rows in a matrix (identical to EXROW in Donnelly's Tool Library) SCHUR, computes the Schur decomposition of a square matrix SNRM, spectral norm of an array SRAD, spectral radius of a square matrix SVD, singular value decomposition of a matrix SVL, computes the singular values of a matrix TRACE, sum of diagonal elements of a square matrix (8) GRAPHICS & PLOTTING COMMANDS: ANIMATE, displays grobs on the stack sequentially. You can use the defaults, or specify your own delay between frames (can be *very* fast), the number of times to repeat the sequence, and even the pixel coordinates. It's just like a ROLL REPL loop... except very fast. Note: Charlie Patton converted 17 seconds of the Apollo moon-walk video into HP48 GROBs and ran them with ANIMATE, and it looked very good! ATICK, specifies tick spacing on plot axes EYEPT, specifies the eye-point coordinates in a perspective plot GRIDMAP, selects the new gridmap plot type PARSURFACE, selects the new parametric surface plot type PCONTOUR, selects the new pcontour plot type PICTURE, same as GRAPH command SLOPEFIELD, selects the new slopefield plot type WIREFRAME, selects the new wireframe plot type XVOL, sets the width of the 3D plotting volume XXRNG, sets the width of the 3D target mapping range for gridmap and parametric surface plots YSLICE, selects the new yslice plot type YVOL, sets the depth of the 3D plotting volume YYRNG, sets the depth of the 3D target mapping range for gridmap and parametric surface plots ZVOL, sets the height of the 3D plotting volume (9) USER-INTERFACE COMMANDS: CHOOSE, displays a point-and-click menu dialog box INFORM, formatted multi-line input with named fields (nice!!) MSGBOX, displays text in a centered box with shadow, then WAITs NOVAL, placeholder for unspecified values in INFORM argument list (10) LIST PROCESSING COMMANDS: ADD, adds lists element-wise (see section #1 above) DOLIST, evals an object on multiple lists DOSUBS, evals a program or command taking arguments from a list ENDSUBS, returns the number of loops the current DOSUBS will do HEAD, first element in a list or first char in a string (identical to CAR in Donnelly's Tool Library) DeltaLIST, list of first finite differences of list objects SigmaLIST, sum of the elements in a list PiLIST, product of the elements in a list NSUB, returns the current list pointer value during a DOSUBS REVLIST, reverses the order of the objects in a list (like REVERSE in Donnelly's Tool Library) SEQ, list of results from repeated execution of an object (like a FOR/STEP loop but the results go into a list) SORT, sorts elements in a list into ascending order, or sorts a list of lists using each list's first element as the key (can be done with LSORT/QSORT in Donnelly's Tool Library) STREAM, executes an object on first two elements of a list, then again on the result and the 3rd element, etc. Allows easy creation of things similar to SigmaLIST and PiList. TAIL, returns a decapitated list or string (see HEAD above) (identical to CDR in Donnelly's Tool Library) (11) SYSTEM COMMANDS: CLTEACH, clears the 'EXAMPLES' directory created by TEACH CYLIN, sets polar/cylindrical coordinate mode FREE1, like 1 FREE (see section #2 above) MERGE1, like 1 MERGE (see section #2 above) PINIT, port initialize, esp. important for 4-Meg RAM card users RECT, sets rectangular coordinate mode SPHERE, sets polar/spherical coordinate mode TEACH, loads the Owner's Manual examples into a dir in HOME VERSION, returns the operating system ROM version string and a copyright notice, like this: 1: Copyright HP 1993 Note: See FAQ answer 2.4 for details about the versions. XRECV, Xmodem protocol receive (binary mode only) XSEND, Xmodem protocol send (binary mode only) (12) MATH COMMANDS: LININ, tests whether an equation is linear in a given variable NDIST, normal probability density PCOV, population covariance of SigmaDAT PSDEV, population standard deviation of SigmaDAT PVAR, population variance of SigmaDAT RKF, solves initial value problem using Runge-Kutta-Fehlberg RKFERR, change in solution and absolute error using RKF RKFSTEP, next solution step with given error tolerance using RKF RRK, solves initial value problem using Rosenbrock & RKF RRKSTEP, next solution step with given error tolerance using RRK RSBERR, change in solution and absolute error using Rosenbrock (13) MENU NUMBERS & KEY CODES. Many menu numbers have changed, so software that uses # MENU or # TMENU may not work the same as in the HP 48S/SX. (Specifically, only menu numbers 0-3, 28, 30, and 42-59 are the same). Likewise, almost all of the shifted keycodes correspond to new commands and menus, which programmers must take into account; for example, the RAD key on the S/SX had the keycode 82.2, but it's 21.2 on the G/GX. The left-shift key, which was orange on the S/SX, is now purple [officially lavender], and the right-shift key which was blue on the S/SX is now green [officially teal] on the G/GX. Also, the digit-key menus can be activated by both shift keys; left-shift gives the softkey menus like in the S/SX, but the right-shift gives the new user-friendly full-screen menus. The unshifted keys remain identical to the S/SX, except for a cosmetic color change to match the very dark green of the calculator case. (14) MANUALS The G/GX comes with two manuals, a Quick Start Guide for beginners, and a cost-cutting, slimmer owner's manual called the User's Guide which has only 21 pages about programming, since HP figures that the huge majority of all 48 owners never program it anyway. The power users can buy the optional Advanced Users Reference Manual (similar to the S/SX's Programmer's Reference Manual) which covers programming and the many commands that are not mentioned in the User's Guide. There is no Quick Reference Guide like the S/SX came with, although the case still has a pocket for one. Jim Donnelly has marketed a nice pocket guide, but it's too wide to fit in the case's pocket. The User's Guide is not spiral bound, but is made to open fully and last a long time, since it's not just glued but has sewn signatures like real books, and is printed on quality paper. (15) FLAGS Some previously unused flags are now used. They are: -14 Clear = end-of-period payment mode (for TVM calculations) Set = beginning-of-period payment mode -27 Clear = display symbolic complex numbers in coordinate form e.g. '(X,Y)' Set = display symbolic complex numbers using 'i' e.g. 'X+Y*i' -28 Clear = plot multiple equations like the S/SX does (serially) Set = plot multiple equations simultaneously -29 Clear = include axes in plots (like the S/SX does) Set = omit axes from 2D and statistics plots -30 is no longer used (it never did anything useful anyhow) -54 Clear = tiny matrix elements get rounded to zero Set = leaves matrix elements alone The default setting of all these flags is Clear (as in the S/SX). (16) FLAG BROWSER There is a System Flag browser which shows the flag number, shows whether it's set or clear, lets you toggle it, and shows in English what the current setting means. (17) CHARACTER BROWSER While programming, if you want to type any character at all, press CHARS and a screenful of ASCII characters is displayed that you can browse with the arrow keys, and not only does the screen also show the ASCII code (NUM value) and even the shortcut keyboard key sequence (if any) for each character, but if you press ECHO, it'll be typed into your program. There's no need any more for the alpha keyboard table. (18) DIRECTORY MAINTENANCE Press right-shift VAR to launch a Variable Browser which is a complete memory manager. You can tag multiple objects and copy, move, or delete them all with a single keystroke; there's even a Mark All and an Unmark All, like a real computer. It's slow, however, and has been obsoleted by the very fast PCT library. (19) FRACTIONAL UNIT POWERS The S/SX only handled integer powers of units correctly, but the G/GX can use any real number as a unit power. (20) NAME PLATE The case has a rectangular indentation in the back like the HP 95LX and 100LX, and it comes with an adhesive metal nameplate that you can get engraved with your name. ($5 at EduCALC if ordered at time of purchase). (21) XLIB NAMES All of the new commands in the GX are XLIB names, and therefore take 5.5 bytes in programs. The commands common to the SX and GX take 2.5 bytes each, as they did in the SX. (22) INPUT FORMS and CHOOSE BOXES Many operations have two menu types: the old SX style, and a new drop-down menu and input forms that have the feel of computer dialog boxes. Especially useful for the HP48 beginner. (23) ENHANCED PRECISION The internal precision of at least some of the matrix routines has been improved; INV gets better answers on square matrices than the SX did. HP has not released information about which routines were improved, how, and by how much. (24) IMPROVED DISPLAY The LCD introduced with revision M of the G/GX is easier to read since it has higher contrast between on/off pixels. It has a slower cycle response time, however, making it difficult to use for rapid-motion video games or any other rapid animation. ******************************************************************* * Appendix D: The EquationWriter Bug & Rev J Bugfix [ The following was taken from a posting by Joe Horn. ] Rev A-E EquationWriter Bug & Rev J Bugfix ----------------------------------------- observed by Joe Horn +------------------+ | Rev E behavior | +------------------+ Clear flag -53 first (the Precedence Flag). On a Rev E, put '((1+2)/(3+4))^5' on the stack and press down-arrow. You'll see: 5 / 1+2 | --- | (A) 3+4 / which is as it should be. But now press [orange-shift] [+]; see the message Implicit () off momentarily; press [left-arrow] (not backspace), then press the [EXIT] softkey. The expression gets mangled into this: 1+2 ----------- (B) (5) (3+4) which is not equal to expression (A) above! Bug, yes? Press [ON] to abort the process. Now set flag -53, then repeat the above procedure. First you see: 5 / 1+2 | --- | (C) 3+4 / which is the same as (A) above; but continuing as before, you see: (5) / 1+2 | ----- | (D) (3+4) / which *is* equal to the original. Thus the bug can be worked around by keeping flag -53 set (not a pleasant solution). +------------------+ | Rev J behavior | +------------------+ Major difference: after pressing down-arrow, Rev J goes directly into graphic mode, so you have to press ON and then EXIT to get into the equation editor (which Rev E goes directly into). But that's petty cash compared to the following big change. The same sequence of operations, first with flag -53 clear, then set, exactly as detailed above, yields these four displays in a Rev J: 5 / (1+2) | ----- | (A') 3+4 / (notice the extra parentheses?) and then: 5 / (1+2) | ----- | (B') (3+4) / which *is* equal to (A'); nothing at all like expression (B) above! and then: 5 / (1+2) | ----- | (C') 3+4 / which is the same as (A') above; and then: 5 / (1+2) | ----- | (D') (3+4) / which is also equal to (A'). No bug in Rev J. SUMMARY: Rev A-E have a bug in the EquationWriter that can mangle expressions if flag -53 is clear (the default) and if Explicit Parentheses mode is toggled. This bug has been fixed in Rev J. Unfortunately (as you can see above) Rev J *always* puts parentheses around polynomial numerators. It is therefore impossible to use the (A) above; the simplest that can be had is expression (A'). Another minor change, while I'm at it: Rev A-E don't change the menu when you press REPL; Rev J automatically flips to the appropriate RULES menu. None of these changes are documented anyplace that I'm aware of. Please post any corrections & additions you find. Thanx. -Joseph K. Horn- -Peripheral Vision, Ltd.- akcs.joehorn@hpcvbbs.cv.hp.com ****************************************************************** * Appendix E: Compact Data Storage: A simple length-encoding technique can be put to use for a free-format, very compact multi-field data storage system. Two tiny programs, SUBNUM and STRCON are here to help the process, and are listed near the end of this note. At the end of the note is a directory that may be downloaded into the HP 48 that contains the examples. The principle is to store starting indices in the beginning of a string that point to fields stored subsequently in the string. The indices are stored in field order, with an additional index at the end to accommodate the last field. There are several small points worth mentioning: 1) Fields may be 0-length using this technique. 2) The execution time is uniform across all fields. 3) This technique saves about 4 bytes per field after the first field, because the string prolog and length EXAMPLE: -------- Indices | Fields Character | 1 11111111 12222222222 Position : 1 2 3 4 |567890 12345678 90123456789 +--+--+--+--+------+--------+-----------+ String : | 5|11|19|30|Field1| Field2 | Field 3 | +--+--+--+--+------+--------+-----------+ This is a string that contains 3 fields, and therefore 4 index entries. The first field begins at character 5, the second field begins at character 11, and the third field begins at character 19. To keep the pattern consistent, notice that the index for field 4 is 30, which is one more than the length of the 29 character data string. To extract the second field, place the string on the stack, use SUBNUM on character 2 to extract the starting position, use SUBNUM on character 3 to extract the (ending position +1), subtract 1 from the (ending position+1), then do a SUB to get the field data. NOTE: The index for field 1 is stored as character code 5, NOT 5! To place the field index for field 1 in the string, you would execute data 1 5 CHR REPL. PROGRAM: -------- The following program accepts an encoded data string in level 2 and a field number in level 1: << DATA ENCODING ------------- The following program expects a series of 'n' strings on the stack and encodes them into a data string suitable for reading by the first example above. The programs SUBNUM and STRCON are used to assemble the indices. << 1 n FOR i data i SUBNUM OVER SIZE ; ... field index fieldsize + data SWAP ; ... field data index' i 1 + i + SWAP CHR REPL ; ... field data' SWAP + 'data' STO ; ... NEXT data ; data In this example, four strings are encoded: Input: 5: String 4: Str 3: STR 2: STRING 1: 4 Output: xxxxxSTRINGSTRStrString (23 character string) (The first five characters have codes 6, 12, 15, 18, and 24) VARIATION: ---------- The technique above has a practical limit of storing up to 254 characters of data in a string. To overcome this, just allocate two bytes for each field position. The code to extract the starting index for becomes a little more busy. In this case, the index is stored as two characters in hex. Indices | Fields Character | 11111 11111222 22222223333 Position : 12 34 56 78|901234 56789012 34567890123 +--+--+--+--+------+--------+-----------+ String : |09|0F|17|21|Field1| Field2 | Field 3 | +--+--+--+--+------+--------+-----------+ << OVER f 2 * SUBNUM + ; data start 16 * 3PICK f 1 + 2 * TWO VERY TINY HELPFUL PROGRAMS ------------------------------ << code CHR 'code' STO 1 count START code + NEXT A DIRECTORY YOU CAN DOWNLOAD ---------------------------- This is a directory object. Cut after the === to the end of the file and download to your HP 48 using the ASCII transfer. ======================================================================== %%HP: T(3)A(D)F(.); DIR DECODE << DUP f SUBNUM OVER f 1 + SUBNUM 1 - SUB ENCODE << DUP 2 + DUP 1 << 1 n FOR i data i SUBNUM OVER SIZE + data SWAP i 1 + SWAP CHR REPL SWAP + 'data' STO NEXT data STRCON << code CHR 'code' STO 1 count START code NEXT SUBNUM << DUP SUB NUM END ****************************************************************** * Appendix F: Various useful functions Begin OBJFIX.DOC ----------------------------------------------------------------------- OBJFIX by HP for SX and GX When a binary object received by Kermit on the HP-48 is left as a string beginning with HPHP48, OBJFIX will extract the HP-48 object if the only problem is that extra bytes got appended to the end. OBJFIX takes a variable name in stack level 1 and modifies the contents of the variable if no other problems are detected. [Note: This is like FIXIT by Horn & Heiskanen on Goodies Disk #8, but this one is by HP and so I suppose it's more reliable. Although it fails the test cases included with FIXIT, that may be because they were artifically contrived cases. Try both on real-world downloads that need fixing. Which do you like better? -jkh-] ----------------------------------------------------------------------- End OBJFIX.DOC %%HP: T(3)A(D)F(.); D9D202BA81D9F81B2040D9D20F2A26DA91629C8145126489162C23072C80CCD2 0BD0008FB9760147108134164142C2818F24D534501008B2F41643150D73B840 58405438314A161966D2BF6BF6A6F5BE16314213114334CF8208A6F58F235A04 55136D7D4EA494D231A1CA101110131CA130DBE284F8FC0760D41198F29960D4 130142119EA1408F5E0108D341503223072D70B2130B21301460 Begin FIXIT.DOC ----------------------------------------------------------------------- (Comp.sources.hp48) Item: 139 by akcs.joehorn@hpcvbbs.cv.hp.com [Joseph K. Horn] and mheiskan@hut.fi [Mika Heiskanen] Subj: Fixit v3.2, repairs bad downloads PURPOSE: ------- Converts a badly uploaded string into the original object. THEORY: ------ A lot of folks upload HP 48 objects poorly, such that when you download them, you just get strings full of garbage that look something like this: HPHP48-E#c&r$a%p@!*!... [looks familiar, eh?] That's because they uploaded it using XMODEM, or managed to screw it up some other way. The following FIXIT program takes such a string and extracts the actual HP 48 object that they originally intended to upload (if at all possible). Such object extraction can be done by hand, but it's too dangerous. FIXIT minimizes the danger of Memory Clear. It checks whether the extracted object is a valid one, and if not, drops it from the stack before the HP 48 attempts to display it. All of the many bad downloads I've archived over the years are fixed by FIXIT, whereas about half of them cause a Memory Clear when extracted manually. No guarantees, however. Use at your own risk. The actual extraction is done by a Code object written by Mika Heiskanen. The User RPL shell around this code object is what minimizes the danger of Memory Clear; it was written by Joe Horn. INSTRUCTIONS: ------------ BACKUP YOUR MEMORY, just in case the string contains a logic bomb. Place the bad download on the stack (see HPHP48-...) and run FIXIT. Possible results: (1) No error: the object was extracted successfully and is on level 1. (2) Bad Argument Type error: you didn't have a string on level 1. (3) Bad Argument Value error: the string wasn't of the proper form; it must be an HPHP48-... downloaded string. (4) Invalid Definition error: the object was mangled in transmission so badly that its end was lost; the object cannot be extracted. (5) Undefined Result error: there is no HP 48 object in the string. (6) Recover Memory? YES/NO: the string contained a bomb, and FIXIT detonated it. Press YES to sift through the shrapnel and rubble in a feeble attempt to resurrect the dead. Press NO to bury them. EXAMPLES: -------- To do the following examples, download the FIXIT directory to your HP 48 and get into it. (1) Press HI. See HPHP48-E%$@#%@..., a badly uploaded download. Before pressing FIXIT to fix it, try doing what we all used to do: press EDIT to see if we can recognize anything (usually a futile attempt). We see: HPHP48-E%@$#%$@... But looks can be deceiving; press ON to exit the editor, and then press FIXIT to extract the intended upload: (2) Press WTAV; see another garbage download. But EDIT refuses; the string contains nulls. Press FIXIT; see successfully extracted directory. (3) Press BAD1. Notice that it looks exactly like WTAV. (Press WTAV, compare, then DROP). But its ending is all messed up; manually extracting WTAV from BAD1 can cause Memory Clear. Press FIXIT and see Error: Invalid Definition indicating that the object inside BAD1 is so mangled that its end cannot be located. (4) Press BAD2. Looks like WTAV again. But its body is messed up; manually extracting it would create an External object that could cause Memory Clear if evaluated. Press FIXIT and see Error: Undefined Result indicating that there is nothing recognizable inside BAD2. ----------------------------------------------------------------------- End FIXIT.DOC %%HP: T(3)A(D)F(.); 69A20FF7CE20000000402414442340C2A203B000840584054383D25403A20FF7 2500000000403535947440D9D20E16329C2A2DBBF13013216DF1406A1C42328D BF193632B213034000407545146540D9D20E163292CF1EFFB1DBBF1EBFB150FA 193632B2130003030303034C000402414441340C2A203B000840584054383D25 469A20FF72500000000403535947440D9D20E16329C2A2DBBF13013216DF1406 A1C42328DBF193632B213034000407545146540D9D20E163292CF1EFFB1DBBF1 EBFB150FA193632B2131313131313134C000407545146540C2A203B000840584 054383D25469A20FF72500000000403535947440D9D20E16329C2A2DBBF13013 216DF1406A1C42328DBF193632B213034000407545146540D9D20E163292CF1E FFB1DBBF1EBFB150FA193632B2130003030303034C00020849420C2A20570008 40584054383D254D9D20E163284E2050841607079784E20603416D6075627936 32B2130A0BA02D456C616E63686F6C697022416269702BB28000506494859445 50D9D20E16323CE2278BF168BC1ED2A2167E1AFE22D9D203CE2278BF19C2A274 3A2C58C1C2A2031000840584054383D2167E1AFE22D9D2078BF18B9C1DBBF1AA F028DBF1CCD201200014713717917F137145142164808C5BF22D9D2033920200 0000000005150933A1B21305DF22B21305BF22D9D20339202000000000004150 933A1B21305DF223CE2278BF168BC1D8DC1167E1AFE22D9D203FBF1339202000 000000002770933A1B21305DF223CE2278BF19D1A1DBBF18DBF1E0CF1D5CE1AF E22D9D208DBF1339202000000000000030933A1B21305DF22CB2A193632B2130 B21303D4F ******************************************************************* (Shamelessly lifted from the HP-41C manual:) The LASTX function is useful in calculations where a number occurs more than once. By recovering a number using LASTX, you do not have to key that number into the calculator again. For example, calculate: 96.704 + 52.394706 -------------------- 52.394706 Keystrokes: Stack: ------------------ -------------------- 96.704 ENTER 96.704 52.304706 + 149.098706 LASTX 149.098706 52.304706 / 2.84568265351 @ This is a version of LASTX for the HP 48 %%HP: T(3)A(D)F(.); << LASTARG DEPTH n << ROLLD s 1 - DROPN ****************************************************************** * Appendix G: Rotation rate to angular frequency conversion bug [Editor's Note: A counter point to this bug report is provided at the end appendix] By: Wlodek Mier-Jedrzejowicz wlodek@ic.ac.uk (or if that fails, try wacm@doc.ic.ac.uk) ----BEGIN QUOTED MATERIAL----------- ROTATION RATE TO ANGULAR FREQUENCY CONVERSION BUG There is a rotation rate conversion bug in the HP48G/GX which I have not seen reported here before, so after discussion with the folks at Corvallis I am posting this description. Warning: it is 159 lines long! First - an example. Put the unit object 60_rpm in level 2 and the unit object 1_r/s in level 1, then execute the command CONVERT. You are asking the HP48 to convert a rotation rate of 60 revolutions per minute into an angular frequency in radians per second. 60 rpm is 1 revolution per second, or 2pi radians per second. No HP48G/GX will give this answer! Not everyone uses rpm or is even aware of the existence of this unit - it is one of the extra units in the UTILS menu of the Equation Library - so here is a second example - add 2pi radians per second to one Hertz. Put 6.2832_r/s in level 1, 1_Hz in level 1, and add. You are adding an angular frequency of two pi (one cycle) per second to a rotation rate of one per second, so the result should be a frequency of two Hertz. On an HP48S/SX that is the answer. On an HP48G/GX it is not. When units are converted, by CONVERT, or during arithmetic on unit objects, the level 2 object is first turned into base units, and then the result is converted into the units of the level 1 object. On the HP48S/SX, the base unit of angles is one rotation (or a unit circle or a revolution or a cycle). So, the angle unit of rpm (a revolution) or of Hz (a cycle if Hz is treated as a rotation rate) is already in base units - conversions to angles involving rpm and Hz automatically work correctly. On the HP48G/GX, the base unit of angles is the current angle mode (DEG, RAD or GRAD) - so any conversion from rpm or Hz (or any formula which works in cycles, rotations, revolutions, unit circles) to angles should be preceded by a conversion from the unit circle to the current angle. Apparently no-one noticed this would be necessary, because it all worked automatically on the HP48S/SX. So, when you convert 60_rpm to units of _r/s, an HP48G/GX converts not 60 rotations but 60 base angle units per minute to radians/second. In RAD mode, you get 1 radian per second. In DEG mode you get 1 degree per second, and in GRAD mode you get 1 grad per second (in each case expressed in radians). That's three different answers, none of which is correct! Exactly the same happens if you convert 1_Hz to angles per second, and the inverse mistake is made if you convert angles per time to cycles or rotations divided by time. I first learned of this bug from a member of HPCC (the British club for users of HP handhelds), Peter Embrey. He describes his troubles in Volume 13 number 1 pages 12 to 14 and V13n2p6). He was calculating the energy stored by a flywheel - given by the formula (1/2)*I*omega^2 and after a time he decided the answers had to be much too big when he CONVERTed from kg*m^2*(r/s)^2 to W*h on an HP48GX. It turns out that (r/s) are the correct units to get the right answer, but the GX was converting to degrees per second as it was in DEG mode, so his answer was too large by a factor of (360/2pi)^2 - a factor of about 3,300. In this case, his HP48SX was not much better, since it converted from radians to unit circles. The way to get the correct answer is to use an HP48G or GX in RAD mode - or to divide out the radians from the formula before using CONVERT. This is not yet a bug, but needs as much care as does use of temperature units on the HP48. But when Peter tried to deal with the problem by working in rpm, he came upon the bug described above. My thanks to Peter for putting me on the trail! Apparently this bug not been reported before - at least my friends in HP tell me that it was not on their list of known problems until I told them of it. (This means it is not fixed in the new revision R.) Why not - does everyone know about it and work around it without thinking to tell anyone else? Or does no-one use their HP48 to do calculations on rotating bodies - or do most people do calculations with rotating bodies in such a way that they do not encounter this problem? Could there be hundreds of students and engineers out there calculating and designing things on their HP48G/GX and getting wildly inaccurate results? Has anyone built a disk drive or a jet engine which rotates far too fast and will disintegrate because of this? No, of course not, all engineers know that any design calculation absolutely must be repeated on two entirely separate calculators or computer programs! :-| Maybe some students have lost marks in exams because of this though - but please, this is not intended to restart the discussion as to whether calculators should be allowed in exams! I want to underline again that apparently no-one has reported this before - which must mean that few people have been affected by it. It is therefore not a good reason to throw away your HP48G/GX or get on a high horse and demand that HP replace your HP48G/GX - but I think it is important that people be warned so they can take appropriate avoiding action. The rest of this message goes into more detail - if you never worry about rotation calculations then you can safely ignore the rest - though you might find it interesting, so don't stop yet :-) One way to avoid this would be to add a new unit to the HP48 - call it what you like - the cycle or rotation or revolution or unit see this on an HP48S/SX, put 360 degrees in level 1 and execute UBASE - the result is 1, meaning that 360 degrees are equivalent to one base unit of angle measurement, but that there is no named HP48 unit corresponding to this. In contrast, UBASE on an HP48G/GX considers the base unit of angle measurement to be the radian, even though CONVERT behaves as though the base unit is the current angle mode. There appear to be two different norms for base angle units on the HP48G/GX! The whole subject gets very little mention in HP's manuals. In the original HP48SX manual (two volumes, spiral bound), the section on Dimensionless Units of Angle in chapter 13, on page 198, warns the reader about the danger of using dimensionless units and states how angle units and scalars are treated. In the later HP48S and HP48SX manual (one volume), the same warning is given in Converting Dimensionless Units of Angle, on page 13-12. The HP48G Series User's Manual, in Converting Angular Units on page 10-7, says that conversion will interpret a scalar according to the current angle mode setting. (A scalar is a pure number with no units.) For a detailed description, look in the HP48S/SX edition of HP48 Insights Vol II, section 21.4.3. This book is written by Dr Bill the Insights books largely to provide the sort of explanations and details that get left out of manuals. A good explanation of angle units is exactly the sort of thing one can find there! He explains the pitfalls and unavoidable contradictions of working with angles in the HP48 units system and points out that the HP48S/SX make the somewhat arbitrary choice of using 2pi as the base unit of angles, thereby making conversions between angles per time and Hertz work correctly. Maybe no-one on the HP48G/GX team read this while they were making changes from the HP48S/SX! Why did they change the base unit at all? Most likely they were trying to deal with another contradiction: the units system lets you add pure numbers to angles, since both are dimensionless. If you add the number 1 in level 2 to the unit object 0_r in level 1 on an HP48S/SX, the number 1 is treated as 1 base unit, or 2pi radians, and the result is 6.2832_r - but if you take the SIN of the number 1 instead, it is not treated as 2pi, but as 1 unit of the current angle mode. The change made on the HP48G/GX does resolve this contradiction, but at the cost of introducing the bug described above. As mentioned, a way to resolve the problems involved would be to add the angle unit cycle explicitly to the HP48 units system. Hz would then be treated as cycles per second when used in calculations involving rotations - rpm would be treated as cycles per minute, and conversions would go from cycles to the appropriate angle units. This HP accept that this is a good solution - but they have not implemented it yet. In the meantime, be very, very careful when converting between units of rotation rate and units of angular frequency. I would urge everyone who does not yet have a copy of Insights II to buy one and read the relevant section - maybe that will even entice Bill Wickes into publishing his long-awaited HP48G/GX version of the book! I have not yet mentioned solid angles. In principle there should be no problem - on both the HP48S/SX and the HP48G/GX the base unit of solid angle is a unit sphere, or 4pi steradians. On the HP48S/SX you can add the pure number 1 to 0_sr and get 12.5664_sr (4pi steradians). The HP48G/GX manuals imply that exactly the same should happen, but on my (version L) HP48GX this gives the error message Inconsistent Units. This is yet another undocumented difference between the Series S and Series G but at least it is no bug! Apologies for making this description so long, I hope most people will agree that a subject like this deserves a careful description! For my next trick - some details on the HP48 Random Number Generator. ----END QUOTED MATERIAL----------- Additional insight from Eric Haas (ERICHAAS@delphi.com) The angular conversion bug is actually in the definition of the rpm unit. If you put 1_rpm on the stack, and type UBASE, you get 1.66666666667E-2_1/s. Notice that there is no angular unit in the definition. If the rpm unit is instead defined as 6_=F8/s, all conversions to and from rpms will work just fine. As an easy work-around, define the unit RPM as 6_=F8/s and use that instead of the built-in unit. If desired, one could also define the unit HZ as 60_rpm or 360_=F8/s. However, as Hz is sometimes used to describe things other than rotation rates, such a definition would not be appropriate for all circumstances. ****************************************************************** * Appendix H: How to make a Serial Cable for your HP48 pins in your calculator. If you can't find a usable connector, then you'll have to make one yourself. For this you need four pins taken from a wire-wrap IC socket (available from Radio Shack or some other shop catering for DIY electronics). The smallest IC socket available usually has 8 pins; so don't worry if you damage a pin while removing it from the hard plastic socket. The pins of the wire-wrap socket are about 1 long, thereby making soldering them easier than standard sockets. Next, solder a 'fork' from thin rigid metal wires, to hold the four IC pins spaced at exactly 2 mm while you glue them together with superglue. Glue a plastic 'handle' to the four IC pins to be able to remove the connector from the HP48. You can also indicate the top side of the connector on this handle. Note that the hole in the HP48 in which the connector should go is not symmetrical; the pins are nearer to the top of the calculator than the bottom, and you can use this to make it difficult to insert the connector the wrong way up. Connector to plug in your HP48 (F) HP48 connector (M) ______ ______ |oooo| |....| ____/ ____/ pin 4 pin 1 pin 1 pin 4 MAKING THE CONNECTIONS You can use either a 9 or a 25 pin female sub-D socket for the PC-side of the cable. 9-pin RS232 25-pin RS232 connector (F) connector (F) pin 5 pin 1 pin 13 pin 1 ------------- --------------------------- | o o o o o | | o o o o o o o o o o o o | o o o o / o o o o o o o o o o o / --------- ----------------------- pin 9 pin 6 pin 25 pin 14 Use flexible 4-wire cable to connect the four contacts of your HP48 connector to the PC connector. Pin 1 of the HP48 should be connected to the metal shield of the RS232 connector. Usually it is not easy to solder this shield; first scratching the shield bare (it has some kind of coating) using a screwdriver or a file will help. If this doesn't work, simply leave pin 1 of the HP48 disconnected. Note that pins 2 and 3 of the RS232 connector must be swapped when you use a 25-pin connector. HP to PC cable HP48 | RS232-9 | RS232-25 -----+---------+---------- 1 | shield | shield 2 | 2 | 3 3 | 3 | 2 4 | 5 | 7 Before connecting the completed cable to your HP48, check for short-circuits using an ohmmeter or multimeter set to ohms or diode test. HP TO HP CABLE If you want to use 9600 bps communication between two HP48s, then make two HP48 connectors and simply connect the two, swapping pins two and three. HP to HP cable HP#1 | HP#2 -----+----- 1 | 1 2 | 3 3 | 2 4 | 4 WARRANTY, DISCLAIMER ETC. Although the serial interface of the HP48 is protected internally, it is possible to damage the calculator when a wrong connection is made. I am not responsible for any errors in this file, or for any mistakes you may make. ****************************************************************** END PART 3 OF 4 -- Keith Maddock--madd0118@nova.gmi.edu--HomePage:http://www.gmi.edu/~madd0118 Of course I'm crazy, but that doesn't mean I'm wrong. I'm mad but not ill GMI Engineering & Mgt Inst: So2,ME-Auto, Flint, MI/Freightliner Corp,PDX,OR ==== Isn't ^% 65 euros? Surely &% is 75. Don't you just hate typos? - Michael ==== Michael F. Coyle :: It depends on keyboard layout. On my keyboard &%=65 and /&=75 :) Robert Tiismus ==== When one disassembles a library file to a directory with say OT49, and you get in the $config variable a bunch of EXTERNALE references, what is the next step to disassembly needed to display what they mean? Happy new year to all. Stan ==== How to get the remeainder of a binary division, in order to calculate CRCs ? -- . . . .:::. ### |/ ` ___ ' :(o o): . (o o) (o o) - (O o) - ooO--(_)--Ooo-ooO--(_)--Ooo-ooO--(_)--Ooo-ooO--(_)--Ooo- ==== Perhaps the situation is different in the US. My understanding, based on what I have been told in Australia, is that copyright is something that you own simply by virtue of having written the work. You do not have to assert ownership as you state below in order for it to become 'official'. The (c) convention is purely that - a convention. Simply omitting the (c) will not make it any the less yours nor will it allow someone else to somehow 'take over' ownership. Perhaps someone more legally knowledgable can comment. ==== Not exactly. The (c) lets people know that you want to retain rights. What you DO NOT have to do in the US is register with the copyright office. Lets take this example... I'm in a programming class and our assignment is to perform prime factorization. All of our assignments are posted on the schools web site for peer review. I come up with a unique way to perform this task that is unique and valuable, but being a student I did not realize it. Another student in another class looks at the site, sees my work and decides to create a product using my software ... here is what could happen... A) I did not put the (C) nor did I register with the copyright office. ... While I might still own the rights to the software my not putting the (c) may cause it to move in to the public domain. The other person could rightly assume I didn't want anything to do with it and use it to create a product. It they copyrighted it I could challenge and say it was meant for the public domain (because I forgot the (C), or even that I just forgot the (C) but that would be harder to win in court) ... See Item D. I might not be able to keep them from using the software in any current products, and would likely not be able to get any money back. I might be able to keep any new products from being created without my compensation, but may not be able to keep them from being created at all. I likly copld keep anyone else from using the software however! B) If I did put a (C). Anyone using the software should know that I didn't want to release it. If they created a product I would have the right to get compensation, stop production of current product and any new product. However the burden of proof would be on ME to prove that I was the creator of the software. (See D) C) I did register with the copyright office AND did put a (C) on/in the software. I retain all rights. The other person would have the burden of proof that there software was created before mine (that my (C) was invalid). D) The difference between a registered and non registered copyright. In the US copyrights do not have to be registered to be valid. However a registered copyright will be assumed to be valid unless there is strong proof otherwise. In the software issue I could have notarized a to myself. The sealed envelope is only weak proof of the date I came up with the software, but that along with a notarized copy of the source code is quite strong and could stand up in court. This is common practice in the US among folk musicians who do this for a tune' they are working on, before it's finished. They might do this to a copy of the melody while the work is in progress. By registering a copy of the software, or whatever, with the copyright office I would be free of the burden of proof as to the creation date. If someone challenged the date then I could go back to my notarized copy and registered letter to show an earlier date on the work in progress. Registration just makes it easier to prove ownership. Putting the (c) shows your intentions. ==== There have been some extremely intelligent contributors to this forum down through the years...but it's time folks to realize that with no new hardware being produced, it's over, done. Any further discussion, program development is a dead end. Unless everyone intends to preserve the dream with emulators? franks ==== Are you SURE that there's going to be no new hardware produced? HP just released the 9G and 9S and, though these are of probably not too much interest to the folks in this group, I think it does show that HP is not quite done with calculators just yet. And just because the 48/49 platform may be discontinued doesn't mean that the zillions of them out there all of a sudden stop working. The 48 remains a fine calculator and you know what, I don't care what anyone says, I LIKE my 49! (And lots of old-timers still swear that their ancient 67 or 41 or 28 or 10-11-15-16 was THE BEST ever made!!) It seems to me that the choice that a company has to make for the future is: will they use a dedicated platform like the 48/49 or will they use a multifunctional platform like the Journada--Xpander for the high-end calculators? Are you just trolling around for some New Year's entertainment?? Roger ==== Even if the evolution is at an end, this newsgroup is not. This newsgroup does far more than propose features for future models. We also have fun with the existing ones, of which there are many made the OLD HP WAY and still therefore perfectly functional. As long as we can program and play with numbers on these wondrous machines, and think out loud here, and read others' thoughts here too... then comp.sys.hp48 will not die, regardless of what Hewlett, Packard, and Hewlett Packard do. -Joe- -- I will not bring further death to my people. I will not risk open war! Open war is upon you whether you risk it or not. -- from Lord of the Rings: The Two Towers (the movie) Our women found long ago that those without a sword can still die upon one. -- ibid ==== be sure to understand http://www.anti-matrix.net ==== right arrow symbol and pi represents the Greek pi symbol: XQ or or The first two of these commands will also set the hp49 to exact mode, but the last leaves the current exact/approximate status unchanged. ==== Can I find a command for this in any of the menus? ==== Meta-answer: An alphabetical list of ALL the HP49G programmable commands with the menus that they're in can be found here: http://www.hpcalc.org/hp49/docs/misc/cmdsmenu.zip If that list is not up to date, lemme know. Thanx. -Joe- ==== I have an HP 28s and i sold it. ==== I wonder if anyone can help with getting access to some source code for a program that was written for the 38G on the Mac. When the HP38G was released back in about '95 some software was released with it. The Windows comms program was designed for Win 3.1 and has long since been superceded by HPGComm. The Mac version of the comms package has never been updated and is now seriously outdated. Not only was it written for a very old Mac OS but it expects responses from an HP38G and becomes highly confused by the responses it receives from an HP39G. The ADK (Aplet Development Kit) was also released, but for Win 3.1 only, which allowed editing of Notes and programs and the creation of Aplets on the PC. This still works but has never been updated except by Noda who basically hacked into the executable code and changed most of the occurances of 38 to 39 so that it would edit HP39G files and code. There are two enthusiasts here in Perth, Western Australia who are trying to produce a new version of the ADK. This is being written in editing of Notes and programs and production of new aplets. So far so good.... I've been able to get access to the original source code for the ADK (MSVC++Vers1.5) to give them pointers (no pun intended) and they seem to be doing really well - see http://members.optusnet.com.au/~the_grosvenors/ . What they would also like to try to do is to incorporate the comms ability of HPGComm into the new program. Since HPGComm is open source (as will be the final product) this has been coming along fine for the Windows side. The problem is that neither of them (nor I) have much experience with programming in the Mac environment or, in particular, with using the Mac comm ports. What they'd like to have is access to the original source code of the Mac version of the comms package, basically just so they can see how it was done last time. Cyrille de Brebisson has kindly conducted a search for me in HPs archive but apparently it was outsourced and no copy was kept. The only info I have is the About dialog box for the Mac program which says: Copyrights (c) 1995 Knowledge Engineering Pte Ltd (not my mispelling) Does anyone out there have any clues as to where I might find the source for it or know any of the people who were involved in writing it so I can ask them nicely if we can look at it? ==== No, unfortunately, only an HP49G version for Navigator. Bye, Yoann. ==== When I read about pressing ON-D on the internet, what am I supposed to press on my 49G? Is it the on button, then subtraction sign, then Alpha, and then F4(D)? Or is it something compleatly different? I just bought it today and I'm trying to figure the thing out. :) Also, I've read that ther is a tetris game you can play if you type HpMad with the quotation marks. Can you change the upper and lower case or am just doing something wrong? ==== Press the ON key, and then, while holding it down, press and release the D key (also known as the F4 key). Then release the ON key. Case matters; it MUST be HpMad, with quotation marks. And you have to put it in an input form field, e.g. press MODE CAS and then type HpMad and press ENTER. That's one of the two Tetris games in the HP49G; the other one is better. Press EQW and type MINEISBETTER and press the SIMPLIFY menu key. :-) -Joe- -- I will not bring further death to my people. I will not risk open war! Open war is upon you whether you risk it or not. -- from Lord of the Rings: The Two Towers (the movie) Our women found long ago that those without a sword can still die upon one. -- ibid ==== P.S. Oh Yes, Also does any one know of a program for the 49g to display a Smith Chart that is interactive with user input? Stan ==== I would appreciate it if someone could give me a random dots generator program that works as a noise on the whole screen of the HP48. I need the program as an introduction to another one. Tal ==== use FADE from Detlef. http://www.hpcalc.org/details.php?id=1879 It lets you fade in/out pixel-wise or nib-wise. You can also fade one GROB into another. Looks really cool. Happy New Year, Raymond ==== http://www.hpcalc.org/hp48/graphics/animations/rndscr.zip Insanely fast. Any faster and it'd just look gray. ==== I need help. I have the following equation: y=x^2[ft]) That means, x is [feet]. How I have to write this equation with my 48G to solve it? I get always errors like bad guess(es). My idea is to not only use feet, I would use also other units, and the equation has to convert automatically. How does it work? Daniel ==== Using rightshift solve, solve equation, I did the following EQ 'Y=X^2' Y: 1_ft^2 % your guess, which provides the desired units X: 2_ft % the magnitude and units of X Placing the cursor in the y field, press solve and get 4_ft^2. Now enter 1_yd^2 in the y field to change units and press solve again to get 0.4444 yd^2. You can do this in any field you want to solve for. Hope this helps Bill alternate E-dress wtstorey@ieee.org.no.spam.please (Use the obvious) ==== Can I have my 49g ROM source code now? *grin* Al www.alborowski.tk ==== Who can explain to me what is the CRC and as it used?? ==== in Luxembourg, for 85euro ==== I have an HP 28s and i sold it. ==== more info: www.hpcalc.org Guten Rutsch! Raymond ==== Hey all, I've got a nice HP 42S in great shape for trade or sale. I'm looking for guitar effects (older, working or not), speakers, tube gear, or other music related items in trade for it, or will sell for with any questions or offers. http://www3.ns.sympatico.ca/mitchdawn.lane/Misc/calc.html Mitch Lane, Windsor,N.S.,Canada mitchdawn.lane@ns.sympatico.ca ==== -- Al ==== Has anyone seen a LED demo unit before and know what it does? (It demos LED's! he said...... ;-) http://cgi.ebay.com/ws/eBayISAPI.dll?ViewItem&category=11713&item=1948283395 &rd=1 Happy holidays to all, Roger ==== Yuan, u can get hpconv from www.hpcalc.org and searching for hpconv is a DOs program, so u have to run it under dos, or its promp if u r under windows. Not always works, as it depends on the thing u r trying to convert, but most of times. I want to greet its author, as is one of the most useful programs i have ever seen. Good luck!!! ==== key and make run as a temporary menu. One of my programs is << 0 to get to this one. It works great except for one thing, when you ==== ==== i'd like to know how can I set the calculator so it orders it by the expoenent of the variable i wish and leaves the others as parameters in the coeficients. i'm using a hp49G -- right now it does what it wishes! thanks a lot ==== For one variable, all other names being constants, put the variable on the stack just below your polynomial and use the REORDER command (in RPN mode). For more than one variable, use a list of variables. ==== This may be a really stupid question, but please do help me out :) How do you make a HP 49G give solutions for simple trig equations such as sin(x) = 1/2 for x where 0 <= x <= 2pi ? Is it possible for it to give me the solutions x = pi/6 , x = 5pi/6 without graphing? I apologize once again if my question is obtuse to you. -- Al ==== without Using SOLVEVX, I get the following solutions: X=-(12*Pi*n1-5*Pi)/6 X=(12*Pi*n1+Pi)/6 If n1=0, then they are the solutions you are looking for. ==== Open the EQW and write the equation: 'SIN(X)=1/2' Press ENTER to put it on the stack and then SOLVEVX. This gives: {X=-(12*pi*n1-5+pi)/6 X=(12*pi*n1+pi)/6} For n1=0 you have your answers. Another question by the way: 'n1' SOLVE gives the error message: SOLVE Error: Parameters not allowed Why is that so? Happy New Year to everyone, by the way!!! Or, as we say in Greek: Kali Chronia Alex Markatis Civil Engineer Greece ==== I just finished college trig and had the same question awhile back. Use the ASSUME command to limit the answers. For your example it would look like this - ASSUME 'X<=2pi ASSUME 'sin(x)=1/2' 'x' ZERO (I use ZERO instead of SOLVEX, because in soft menu SOLVEX and SOLVE look the same. SOLVEX should work too) HP49 returns {5pi/6 pi/6} Make sure Numeric and Approx are unchecked in CAS mode. Use UNASSUME to clear the X values. And if I remember correctly ASSUME doesn't work no key for ASSUME or UNASSUME so you need to assign them to a user defined key. Hope this helps. Dave without ==== One little correction though, the command ZERO is actually ZEROS on my HP49... -- Al ==== You're absolutely correct! Damn them typos :-) ==== I need a program that will run on my HP48g 32kb that does analasys of cross-force (Engineering) in bending moment, angle and deflection of a beam. I have a VIVAG 4.1(24kb .lib)that is to large to install. Pleas help me! Davor ==== Ah... UPS shipping to Canada. As a rule I check the shipper with the retailer. If it's UPS then I ask for another method or cancel the order. UPS makes their money on the brokerage not the courier charge. USPS is my preferred method. ==== Whoops, forgot to mention... there is a pre-cleared UPS option but you have to be sure to ask for it. UPS international priority, I think. ==== hi, is there anyway to make the calculator simplify rational expressions in which there has been approximate calculations? in the same way, can it just don't write a numers which is 0.000E0 ? i'm using hp49G thanks a lot ==== expression which can be simplified. This works particularly well when all the numbers in your expression are integers in approximate form. ==== Is this a known bug? I've not seen any mention of it before but it seems so obvious that I can't believe that no one else has run into it. represents the assignment operator.) CHOOSE A;First choice;A;B;C;D;E: FOR B=1 TO 5; NEXT: CHOOSE D;Second choice;A;B;C;D;E: DISP 1;Choices made What happens to start with is pretty much as expected. A choose box entitled First choice appears and the first item is highlighted. You can scroll up and down and the two soft-menu items CANCEL and OK are displayed on F5 and F6. Pick any entry and press OK. Now the Second choice choose box comes up and the first item is selected. Everything is okay so far. Again, pick any entry and press OK. The Choices made message appears and then the second choose box comes back from the dead and re-appears. (The choose-box of Christmas Past perhaps? :-)) Press OK again and it reappears again. In all, the second choose box makes 4 ghostly apparitions for a total of 5 if we include the original, intended appearance. Hmm... I wonder if that 5 is related to the fact that the FOR NEXT loop runs for 5 iterations? Okay, let's change the 5 to a 3 in the FOR NEXT loop. Bingo. Only 2 re-appearances this time. If we zap the FOR..NEXT loop altogether then it works perfectly so the bug seems to be caused by its presence. Let's try adding the redundant STEP 1 to the code and see what happens... Nope, that didn't fix it. Same odd behaviour. Okay. One last oddity: change D to B so that the second CHOOSE statement uses the loop index variable as the place to store the chosen row in. The code should now look like: CHOOSE A;First choice;A;B;C;D;E: FOR B=1 TO 5 STEP 1; NEXT: CHOOSE B;Second choice;A;B;C;D;E: DISP 1;Choices made Now things are really weird. The second choose box is displayed but there is no highlight bar and there is no CANCEL menu item, only OK on F6 and the re-appearances now continue for ever. Press ON a couple of times quickly to kill it. Irritatingly I can't find any work around at the moment which means that I can't easily finish the aplet that I'm working on without a major restructuring of the code so any suggestions would be welcome. -- Bruce Horrocks Hampshire England bh@granby.demon.co.uk ==== Happy New Year to everyone. I am new to RPN. I have a question: if you calculate 3/3/3 under algebraic, the answer is 1/3. However under RPN the answar is 3 (by doing 3 3 3 //). To avoid this under RPN, you have to put brackets or calculate the first 3/3 first. Is this a shortcoming of RPN or you have some simple way(s) to avoid this wrong answer? R. Sun ==== It's NOT a shortcoming, it's a feature. In RPN, to get 1/3, you do 3 3 / 3 /. To get 3, you do 3 3 3 / /. The thing to remember is that once you press a function/command key, it is executed IMMEDIATELY on what is present on the stack. Thus: 3 3 / 3 / means: take the first and second 3's and divide them, giving 1. Divide by the third 3. 3 3 3 / / means: take the second and third 3's and divide them, giving 1. Divide the first 3 by 1. It's very easy after a short time. So easy in fact that I make much more mistakes when I am forced to think ALG. -- Thierry Morissette thm47@msn.com ==== What's happening is that you're putting three 3s on the stack, then dividing the first two (3/3=1), and then dividing the last 3 by that result (3/1=3). An algebraic translation for 3 3 3 / / is 3/(3/3)=1. To calculate 3/3/3, you'd do this: 3 [enter] 3 / 3 / and get 1/3 (or 0.33333, depending on your calculator's settings). There's no need for brackets in RPN. Welcome to the wonderful world of RPN -- give it another week and you'll never go back! Neill McKay ==== It is not a wrong answer, you are asking the wrong question. The algebraic '3/3/3' is equivalent to the algebraic '(3/3)/3' which correctly evaluates to 1/3. RPN 3 3 / 3 / is also equivalent to the algebraic '(3/3)/3' which correctly evaluates to 1/3. RPN 3 3 3 / / is equivalent to the algebraic '3/(3/3)' which correctly evaluates to 3, since the first (leftmost) RPN division must operate on the last two numbers on the stack. I suggest that you learn more about RPN before making incorrect assertions about how it is supposed to work. ==== Don't be mad over the lad. Remember, your first day in RPN, you probably made similar mistakes. I clearly remember thinking What the h-e-double hockey stick?. And after all, he did come to us to learn more about RPN. -- Thierry Morissette thm47@msn.com ==== I get 1/3 sing RPN. What are you inputting? If you are inputing 3 3 3 / / you are not doing it right. Do 3 3 / 3 /. Toby ==== This is my favorite joke upon showing my HP 48gx to friends: I ask them to calculate 2+2 . I start my introduction to RPN after they play with the calculator for a while (it happened to me too). I may not be the best way to sell RPN to them, but I do get a laugh hearing them, and it makes me look much smarter. Toby RPN. ==== ==== ==== Sorry, I didn't read the subject line. However, on the 48, just like the 49, Port 2 (and higher) is essentially non-volatile, or at least, it is independent of main battery. At least I did not stick my foot in my mouth over port 1, where there is a difference in behavior between the two calcs. Bill alternate E-dress wtstorey@ieee.org.no.spam.please (Use the obvious) ==== I've been looking for retailers in Canada or online sources who will ship to here. Anybody know of one? Don Larsen Calgary, Alberta, Canada ==== I find it hard to understand why RPN as a concept has become so unpopular. It's by far a superior numerical logic system for operating on object types. HP want to compete with Casio and TI for the college market, by producing crap build quality educational algebraic calculators which are practically useless outside college. The HP41, 32, 42, 48 and 49 were benchmark RPN calculators in their own right. Handheld computing power is now becoming software dependent, and overly complex for most simple computing tasks. As with many other electronic devices in the current era, there is little scope for user customization unless the user is prepared to spend vast amounts of time wading through documentation and learning processes in order to do simple things. My New Year's wish (and maybe many other's) is for some company, somewhere in the world to develop a programmable RPN calculator to continue where HP has left off. In my mind, the HP48/49 User-RPL and System-RPL languages are the apex of programming logic and utility, the 41/42/32 keystroke logic, a very close second best. The demise of the HP32/42 is an inconvenience, the demise of the HP48/49 is a disaster !! ==== MAJOR inconvenience ( 32sii trading for $200++ on EBay! ) 32sii was light, quick, and the RPN calculator to have for everday computing. My first HP was the 34C back in '84 and boy did I dig that baby! especially coming from one of those brain dead calculators of the time..... very very very^999 sad indeed. =( ==== I never used the ALG mode, although I have been a 2-year TI user. In fact, when I was using the Windows calculator a few weeks ago (my HP, Romulus, was upstairs and I only needed to do a quick division) I accidentally thought I was using RPN and royally screwed up my calculation. There is, in fact, an RPN program for the 89. ==== I love that program! It is faster, as you say, but the 49g has a built- in key for the EQW - convenient. ==== It just uses standard RS232 protocol, you just need to start the Kermit or Xmodem server, then use those protocols to communicate with it as you would to an external computer connected through the serial port with make it even easier, just do something like file=kermitGetFile(HOME/DIRECTORY/filename); ====