*** LONG ANSWERS TO SHORT QUESTIONS ABOUT ENTRY POINTS *** by Joe Horn HCLIMER@UTCVM.BITNET [Harold Climer] writes: > When someone talks about Entry Points is this the same as SYSEVAL > commands? Short answer: Yes. Better answer: Suppose you want to turn a string object into a name object. There's a System RPL program called $>ID which does that. It resides in ROM, beginning at hex address #5B15h. So if you jump into ROM at 5B15, you run the $>ID program. You can do this by typing #5B15h SYSEVAL (make sure there's a string on level 1 first!). The SYSEVAL command merely tells the HP48, "jump to this address and evaluate whatever you find there," and in this case it finds the $>ID program there and runs it. Of course, SYSEVAL is like driving a car into a multi-car garage; if you don't aim at an actual Entry Point, you'll Crash. Using SYSEVAL on addresses that are not actual entry points can cause the system to crash. Likewise, you'll crash if you do it without the right things on the stack, which would be like driving into your garage with your vacation luggage piled high on the roof of your car. You get the idea. > Also what is the difference between Supported and Un-Supported Entry > Points? As HP debugs and improves the HP48, each new ROM version obviously has a lot of changes in it; some code gets changed, some code gets added, some code gets removed. This causes many entry points to move. But that would make programs no longer run correctly, since they'd be jumping into what used to be valid entry points but no longer are, usually resulting in a system crash. Like the time I awoke in the middle of the night in a motel, but in my stupor I thought I was at home, turned to walk into the bathroom, and *whack* walked right into the wall. New entry points. Bummer. But over 2,000 of the objects in the bottom 224K of ROM are so useful that HP has told software developers about them, what they do, what they're called, and best of all, has promised to leave them at the same addresses so that System RPL programmers won't have to recompile their programs every time a new ROM version comes out. Since HP is "supporting" the use of these entry points (and discouraging the use of all others since their use can cause the machine to crash in other ROM versions), they're called Supported Entry Points. $>ID is one such System RPL command; it is and will be at address 5B15 in every HP48, regardless of ROM version. There's a whole 'nuther discussion raging about the "supported entry points" that are in the 70000h block in the S/SX, and have all been moved in the G/GX, but they aren't really "Entry Points" per se anyhow, just addresses of useful bits of system RAM, so I won't get into that here. If you see references to "unfrozen entry points", don't worry; no frozen ROM programs have moved. (Knock on wood). > How will the differences between the SX and GX affect programmers > ability to adapt their SX programs to the GX. Not much, as long as they stick to supported entry points. > Will strictly User RPL programs written for the S/SX run on the GX > without adaptation? Yes, because the entire User RPL vocabulary is Supported. You have NO IDEA how difficult it was for HP to decide to do this. They intended not to support User RPL from the S/SX to the G/GX, with the excuse that if somebody really wanted to port User RPL to the G/GX, all they'd have to do is transfer it in ASCII mode and it'd automatically recompile. But that was ignoring the huge corpus of HP48 software already existing which is a hybrid of System RPL and User RPL. They finally gave in, not long before the G series was announced, and decided to freeze the addresses of the S/SX User RPL command set. Thank goodness. > Is the command set of the GX a Super Set of the SX Command Set? Yes. The S/SX command set resides in Library 2 and Library 1792. The G/GX has those libraries, plus Library 171, in which reside all of the new G/GX commands. -jkh-