This is the commented source CODE of the 11111 Handler It is used to simplify the updates of the OS. The third part SysRPL programs will not have to be reassembled. It is used for 3 kinds of entry. FlashPtrs in Bank1 Jump table for entries in Bank 0 Access to 38/39/40-type Global variables Note that CQIF is now able to extract SysRPL and FPTR objects behind "11111" Have fun! *11111 GOVLNG 2A196 @ *2A196 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % a 11111 entry is a RPL entry, so its called by: % A=DAT0 D0+5 PC=(A) % So the adress of the virtual entry is in A.A % As the 11111 Handler is used for many use, it will first look % where do you come from. % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% LC 2EE5A A=A-C A GOC 2A1F3 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % In this part of the mem (2EE5A->~2F40A) % the 11111 entry are assumed to be flash Ptr, where % EntryAdr - 2EE5A is the number of the Prg in the first Flash Bank % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% A=A+1 A CD0EX RSTK=C % Save D0 D0= 81082 % 81082 is part of the reserved memory not to allocate mem % each time a 11111 FlahPtr is needed LC 001026AC % This Hexa Code is the First Bytes of a FlashPtr object (FPTR 1 ...) DAT0=C 8 D0+8 DAT0=A 4 % A.4 is the number of the entry in the first flash Bank C=RSTK CD0EX % Restore D0 D=D-1 A % we are about to push the flash ptr into the stack GONC 2A1D6 % we have enough memory GOSBVL 03416 % Handle low mem exeption *2A1D6 D1-5 LC 81082 DAT1=C % Push the object in the Stack LC 02749 A=C A % Object which might execute the FlashPtr GOVLNG 02D9D % Jump to DOCOL (Evaluate the 02749 object) *2A1F3 A=A+C A % A.A = Adress of the entry LC 2E76A A=A-C A GONC 2A22B % if the entry is before 2E76A, Continue, else go to 2A22B *2A201 A=A+C A LC 25E67 A=A-C A GOC 2A22B % parts before 25E67 are Globals variables %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % 11111 Entry between 25E67 and 25F33 are registered in a table localised from % 2598A to 25D86. the Handler just get the value and jump to the right SysRpl Prg % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % C.A=2598A + A.A*5 LC 2598A C=C+A A A=A+A A A=A+A A C=C+A A CD0EX A=DAT0 A CD0EX % Get the real entry adress in the table PC=(A) % Jump to it in the RPL way *2A22B GOVLNG 2E73D %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % this part is the more amazing... % this entries are Access routines for some kind of globals variables. % It appears to be for for compatibility with the HP38/39/40 % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% *2E73D LC 08D66 % this is the adress of a RCL-like prg ?ABIT=1 0 -> 2E752 % one entry is for storing, the other for recalling LC 2C54F % this is the adress of a STO-like prg *2E752 RSTK=C % we will RTN to it. ASRB A % remember there is 2 entry for 1 variable % the 100 variable space are after 8086A LC 8086A C+A.A A+A.A % C.a=8086A+5*A.a A+A.A C+A.A RTN *2C54F A=DAT1 A D1+5 D=D+1 A % Get the Object on the stack GOVLNG 08D1C % Store it @