The following warnings occurred:
Warning [2] Undefined array key 25877 - Line: 275 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.15 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 275 errorHandler->error_callback
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined array key 25885 - Line: 275 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.15 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 275 errorHandler->error_callback
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined array key 25886 - Line: 275 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.15 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 275 errorHandler->error_callback
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined array key 25897 - Line: 275 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.15 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 275 errorHandler->error_callback
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined array key 25899 - Line: 275 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.15 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 275 errorHandler->error_callback
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined array key 25910 - Line: 275 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.15 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 275 errorHandler->error_callback
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined variable $thread - Line: 295 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.15 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 295 errorHandler->error_callback
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Trying to access array offset on value of type null - Line: 295 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.15 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 295 errorHandler->error_callback
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined variable $fid - Line: 295 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.15 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 295 errorHandler->error_callback
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined array key 25910 - Line: 331 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.15 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 331 errorHandler->error_callback
/inc/plugins/threaded_mode.php 332 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 332 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 332 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 332 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 332 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 304 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined variable $theme - Line: 3 - File: inc/plugins/threaded_mode.php(305) : eval()'d code PHP 8.1.2-1ubuntu2.15 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php(305) : eval()'d code 3 errorHandler->error_callback
/inc/plugins/threaded_mode.php 305 eval
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Trying to access array offset on value of type null - Line: 3 - File: inc/plugins/threaded_mode.php(305) : eval()'d code PHP 8.1.2-1ubuntu2.15 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php(305) : eval()'d code 3 errorHandler->error_callback
/inc/plugins/threaded_mode.php 305 eval
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined variable $theme - Line: 3 - File: inc/plugins/threaded_mode.php(305) : eval()'d code PHP 8.1.2-1ubuntu2.15 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php(305) : eval()'d code 3 errorHandler->error_callback
/inc/plugins/threaded_mode.php 305 eval
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Trying to access array offset on value of type null - Line: 3 - File: inc/plugins/threaded_mode.php(305) : eval()'d code PHP 8.1.2-1ubuntu2.15 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php(305) : eval()'d code 3 errorHandler->error_callback
/inc/plugins/threaded_mode.php 305 eval
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined variable $lang - Line: 5 - File: inc/plugins/threaded_mode.php(305) : eval()'d code PHP 8.1.2-1ubuntu2.15 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php(305) : eval()'d code 5 errorHandler->error_callback
/inc/plugins/threaded_mode.php 305 eval
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Attempt to read property "messages_in_thread" on null - Line: 5 - File: inc/plugins/threaded_mode.php(305) : eval()'d code PHP 8.1.2-1ubuntu2.15 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php(305) : eval()'d code 5 errorHandler->error_callback
/inc/plugins/threaded_mode.php 305 eval
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks





August 1979 PPC Calculator Journal



#2

I am looking for the following information from the August 1979 PPC Calculator Journal. Detailed Byte structure to construct compiled GTO's and XEQ's. Is there some place where I can download this document?
Jeff


#3

Jeff: You owe it to yourself to buy the PPC CDs. Among other things, they contain the _entire_ collection of PPC journals in PDF format.

Now to answer your question, here's an excerpt from V6N5P21:

- - - - -

Three byte local GTO's and local executes contain one byte from the Postfix Table which specifies the label of interest. The remaining bits are used to remember the address of the label once it has been found by a LBL search. This technique allows improved execution speed since the slow label search process is only done once. On all subsequent executions of the GTO or XEQ function the location of the label is known and no search is needed.

A three byte GTO 22 instruction has the following form immediately after it has been keyed into progam memory:

Function Byte 1 Byte 2 Byte 3

GTO 22 D0 00 16

If LBL 22 was the third byteof a register, 30 registers away from the GTO 22 instruction, the GTO 22 would have the following form after being executed:

Function Byte 1 Byte 2 Byte 3

GTO 22 D6 16 16

If the three bytes are put end to end, the entire instruction may be viewed as:

[Diagram comes here.]

Thus the first four bits give the type of instruction (GTO), the next three bits give the location of the LBL within the register where it is stored, the next nine bits give the distance from the GTO to that register, the next bit tells whether the register is before or after the GTO and the last seven bits retain the name of the LBL. The name of the LBL must be retained in case program modifications invalidate the address retained in the first two bytes. Any addition or deletion of program steps sets all address bits in all GTO's and XEQ's to zero.

The local XEQ function is analogous except that the first four bits are hexadecimal E instead of D.

- - - - -

I hope I didn't make any mistakes while retyping that!

X<>Y

-Ernie (6594)


#4

Hi, Ernie;

my questions go a bit beyond. If someone is building a program for the HP41 and want to record it in a custom ROM module, does the final program keep orginal byte-equivalence with the same program in RAM? As the ALPHA global labels need specific definition, what's the structure needed to record "XROM" labels? How to make them "visible" for the O.S.?

Is this sort of information easy to find?


#5

>If someone is building a program for the HP41 and want to record it in a custom ROM module, does the final program keep orginal byte-equivalence with the same program in RAM?

Yes. Byte counts remain the same. That's the reason why HP decided to record distances between GTO and LBL, not absolute addresses.

>As the ALPHA global labels need specific definition, what's the structure needed to record "XROM" labels? How to make them "visible" for the O.S.?

Alpha labels are always searched, as far as I remember, beginning with the .END. and going _upwards_ (i.e., the opposite direction of search for compiled GTOs). Alpha labels in ROM become "visible" automatically when the module is plugged in and the calculator is powered up. At this time, also, all XROM mm,nn instructions reveal their true identity, such as PRPLOTP or 7P<>S.

-Ernie


#6

Hi, Ernie;

You wrote:

> At this time, also, all XROM mm,nn instructions reveal their true identity, such as PRPLOTP or 7P<>S.

That's still intriguing: how does the system connect an XROM mm,nn to a LBL'name inside the module? I know it's the same "procedure" taken when "connecting" an XROM mm,nn to a function name built into a ROM module. For that, the ROM must keep a refernce table, with the function name as an ASCII sequance and it's XROM reference, right?

That's why I asked about the ROM structure for a program. If it's the same as the RAM structure, the ROM program would be recognized as a user program, not a ROM program. I thought all ALPHA global names in programs contained in ROM modules were different, with a different code, so they could be "seen" by the O.S. as an XROM call instead of a LBL call.

Am I reasoning correctly? What did I miss?

Thank you for your answer.


#7

XROM mm,nn instructions refer to the FAT at the beginning of a ROM Module. If I am correct one bit in the FAT indicates if it is a user program or Mcode (I do not have all the docs at hand). The FAT is actually a collection of pointers to ROM locations, which can be a label in a user program, where the name is read from. Multiple Alpha labels in a signle user program can exist in the FAT (the PPC ROM uses this frequently. I am not certain if an Alpha label can be used inside an ROM that does not appear in the FAT.
Actually, if you do a CAT 2, the machine runs through all FATs and find the string for it.

There is no cross reference table in a ROM. If you type an XEQ "ROM LABEL NAME" all ROMS are searched for this label using the FAT and will be decoded to an XROM mm,nn. If you have the XROM number, the '41 only has to look at the XROM number (the first entry in a ROM) and the entry in the FAT, and obviously that is much faster.

Bottom line is that a user program in ROM is almost exactly the same as in RAM, but the trick is building the right FAT. It is the HP41 operating system that treats FAT entries for Mcode and User code totally different.

Hope this helps for you.

Meindert


Possibly Related Threads…
Thread Author Replies Views Last Post
  Updated PPC DVD Version 2.10: HP-41 Searchable Program Files and Scannable Barcode Jake Schwartz 3 1,844 09-27-2013, 09:51 PM
Last Post: Olivier (Wa)
  PPC ROM Price Fouad M. Kaadou 7 2,272 05-17-2013, 01:03 PM
Last Post: Dave Shaffer (Arizona)
  PPC Rom Barcodes John Abbott (S. Africa) 7 2,218 05-11-2013, 09:05 AM
Last Post: John Abbott (S. Africa)
  Another PPC DVD Update: 30th Year of Datafile + HP Conference Index Jake Schwartz 0 960 03-31-2013, 01:40 PM
Last Post: Jake Schwartz
  Updated PPC DVD Disk w/HHC2012 Materials Jake Schwartz 1 1,251 01-26-2013, 02:45 AM
Last Post: Walter B
  Complete list of PPC members Gonzalo Fernandez 0 888 01-04-2013, 03:01 PM
Last Post: Gonzalo Fernandez
  All PPC program listings Meindert Kuipers 3 1,402 11-30-2012, 02:57 AM
Last Post: Didier Lachieze
  2013 CES - free registration ends August 31 Eric Smith 3 1,438 08-15-2012, 08:58 AM
Last Post: Eddie W. Shore
  Two PPC ROMs with the same serial# Michael Craig 10 3,034 06-25-2012, 12:10 PM
Last Post: Jake Schwartz
  Test HP-41C PPC ROM and STANDARD modules Robert (Simi Valley) 2 1,438 06-14-2012, 08:05 AM
Last Post: Frido Bohn

Forum Jump: