Metropoli BBS
VIEWER: lib_rom.tip MODE: TEXT (ASCII)
Date: Wed, 9 Jan 1991 06:52 CST
Subject: RAM (or ROM) card contents (was: Hidden EQ Library)
Lines: 40

In article <1991Jan8.131352@ee.ubc.ca> jmorriso@ee.ubc.ca writes:
>Some new SYSEVALS:
>These SYSEVALS are for the EQ Lib only, plugged into port 1. I take no
>responsibility
>for whatever bad things happen to you if you use these!

Actually, the addresses below are not correct if you have a RAM card
in port 2 and it is MERGEd with the main memory. In such a case,
HP48SX swaps the adresses of the cards so that port2 becomes
80000-BFFFF and port1 becomes C0000-FFFFF.

>Addres Name    Number  Size(bytes)
>80000: FIN     (270)    3184.0
>818E0: EQLIB   (273)    7168.0
.
.
>Evaluating theses sysevals just leaves the library on the stack where
>you can play with
>it ( STO. ATTACH. it is an ordinary object).
.
.
>Add 40000h to all these values if it is in port 2.

Anyway, here is an easier way to get all variables (or pointers to
them) of a port to the stack:

%%HP: T(3)A(D)F(.);
@ input is a port number (real)
\<< # 18CEAh SYSEVAL @ convert real to short
    # 21922h SYSEVAL @ get all variables in the port to the stack
    # 18DBFh SYSEVAL @ convert the count to a real
    DUP 2 + ROLL DROP @ remove the port number from the stack
\>>
@ output is port variables and the number of them (real)

As you have probably noticed, you can't get variables (libraries) in a
ROM card or in write-protected RAM card by << :portno:libraryno RCL >>.
This is probably meant as a primitive copy protection of ROM cards.

        Antti
[ RETURN TO DIRECTORY ]