ÚÄÄÄÄÄÄ¿ ³ GOTO ³ by Joseph K. Horn, permanently brain damaged by BASIC. ÀÄÄÄÄÄÄÙ So you want to jump into the middle of a System RPL routine, but the Laws of RPL told you that it's impossible? It can be done! System RPL has a GOTO in it! HP's documentation didn't explain how it works, but it's simple: GOTO (foo), where (foo) is a five-nibble address (NOT a system binary!) jumps immediately to address (foo), where RPL continues. This allows us to jump smack into the middle of any operating system RPL program! However, (foo) must NOT be a program prolog. There are supported means for jumping to supported objects. GOTO is intended ONLY for jumping into the *middle* of objects. Don't worry; it can't result in spaghetti code, because it only works on fixed addresses, so you can't use it to jump around within the running program itself. There are also two conditional versions: ?GOTO jumps if TRUE is on level one; NOT?GOTO jumps if FALSE is on the stack. Both remove the flag before jumping. Neither returns; it's not a GOSUB. These occur in the HP 48 operating system more than 200 times, so don't worry that it isn't the way HP would write software... The magic addresses: 619CB GOTO jump to subsequent 5-nibble absolute address 619E0 ?GOTO if TRUE then DROP GOTO else DROP 619F3 NOT?GOTO if FALSE then DROP GOTO else DROP -jkh- EQU akcs.joehorn@hpcvbbs.cv.hp.com