Prev: Icon at top of 48gii Screen
Next: INPUT Command HP 49G+
From: CT_Surveyor on 21 Apr 2010 08:13 On Apr 20, 10:48 pm, Jacob Wall <jac...(a)surv50.ca> wrote: > If you declare: > > EXTERNAL xDISPXY > > in your Debug4x source file, it should work. > > I know there are some others also that are missing from the entry table, > some of which I know to be: > > xSTREAM > xCOL- > xCOL+ > xROW- > xROW+ > xSREPL > xSORT > x\GSLIST > > Jacob Jacob- YES!!! It works! "External xDISPXY" added to the source code solves the problem! Thanks!!!!
From: Andreas Möller on 21 Apr 2010 08:50
Hello, as a background information: There are lots of way to configure/customize debug4x to your specific needs. Most widely known is the use of header files where you can build your own commands through DEFINES and EXTERNAL declarations. Another way is to use an entry point table, like Suprom49.a Some supported entry points there are missing, some names have a mixed- up address and some are wrong which is not surprising as there are roughly 6.000 supported and several thousands additional unsupported entries points which divide into truly unsupported and into unsupported but stable (as promised by JYA who know does not work for HP anymore). And then there even more thousands unnamed pointers which can only be accessed through special techniques and which you should not do as this is very bad programming habit. They are unnamed as their address will most certainly change if code is added/removed from the ROM. To let your program run out of the box in debug4x use this source code: :: xCLEAR xCLLCD "your text string" { HXS 00010 0000000000000000 HXS 00010 0000000000000000 } %2 ( n=0 for minifont or 2 for system font ) ROMPTR xDISPXY %7 xFREEZE ; Note that I would not consider this in anyway a System-RPL program as you are *only* using User-RPL commands. Note that there is a different syntax available, if you want to use debug4x to develop User-RPL programs (check the examples). Also please search this newsgroup about FLASHPTR and ROMPTR usage in debug4x. > If you are trying to save a few bytes (at expense of execution time) A built-in 5 Nibble ROM address (a PTR) is usually faster to execute than an equivalent in RAM consisting of a 5 Nibble prolog + the rest of the object. In this specific case: %2 needs Elapsed: 0,02125ms whereas % 2 needs Elapsed: 0,03775ms both timed with debug4x and EMU48. Of course this is not always true, especially for the opcodes that have been replaced with native ARM code. HTH, Andreas http://www.software49g.gmxhome.de |