Differences between HP50g and emulator
Hello,
I've been playing for some time with my new 50g, and I often use the
emulator on the PC to test things and programs.
I've noticed some differences, that surprise me because both use the
same ROM version.
For example, the easter eggs: the "second" Tetris game (the one you
activate from inside the Equation Writer) only works on the actual
calculator, and nothing happens on the emulator; while the ON+D easter
eggs (showing grayscale photos of the developers) only work on the
emulator. When pressing On+D on the calc, I get a completely different
menu.
What's happening here? Why do I get different results?
Thanks,
Cristian
Re: Differences between HP50g and emulator
Another thing... I just noticed that the Minehunt built-in game is
gone... I get a "blank" softkey where it used to be. Maybe it was
removed from ROM 2.10.7? Can anyone confirm this?
Cristian
Re: Differences between HP50g and emulator
On Fri, 13 Apr 2007 14:07:10 -0500, Cristian wrote:
[color=blue]
> I've been playing for some time with my new 50g,
> and I often use the emulator on the PC to test things and programs.
> I've noticed some differences, that surprise me
> because both use the same ROM version.[/color]
Except for two parts of the complete rom --
the Emulator's "Boot block" (which is still from 49G)
vs. the real calc's "Boot loader"
(containing Saturn emulator, diagnostics, and all other ARM stuff).
[color=blue]
> For example, the easter eggs: the "second" Tetris game (the one you
> activate from inside the Equation Writer) only works on the actual
> calculator, and nothing happens on the emulator; while the ON+D easter
> eggs (showing grayscale photos of the developers) only work on the
> emulator. When pressing On+D on the calc,
> I get a completely different menu.
> What's happening here? Why do I get different results?[/color]
The developer photos are IIRC in the 49G "boot block"
(which wasn't filled, hence had room for added fun stuff);
ON+D likewise uses diagnostics in "Boot block" vs. "Boot loader."
I don't know where the EQW Tetris resides, but if emulator
and real calc don't correspond, it could be either
in the boot block area, or else so hardware-dependent
that it's too low-level for the emulator to duplicate.
[r->] [OFF]
Re: Differences between HP50g and emulator
[email]usenet1.20.quaxo@spamgourmet.com[/email] wrote:[color=blue]
> Hello,
> I've been playing for some time with my new 50g, and I often use the
> emulator on the PC to test things and programs.
> I've noticed some differences, that surprise me because both use the
> same ROM version.
> For example, the easter eggs: the "second" Tetris game (the one you
> activate from inside the Equation Writer) only works on the actual[/color]
I think you just dreamed it, cause they are exactly the same ROM. Exact
same thing on emulator and real machine.
ON-D goes into the boot loader which doesn't exist on the emulator.
JY
Re: Differences between HP50g and emulator
John,
Thank you for the reply... I was thinking (wrongly, it seems) that the
ROM bootloader "ended its task" after... well, bootloading. I thought
that no part of it remained "active" until next cold-boot, which I
thought made sense because otherwise if there's a bug in the
bootblock, it can't be fixed (as it's in ROM) and can affect the
calculator's functions...
This means that the ROM bootblock area is mapped with the main memory,
and is accessible during normal operations?
On a side note, is there no way to give a 50g bootblock to the
emulator, so that it behaves exacly like the actual calculator?
Thanks
Cristian
Re: Differences between HP50g and emulator
[email]usenet1.20.quaxo@spamgourmet.com[/email] wrote:[color=blue]
> Another thing... I just noticed that the Minehunt built-in game is
> gone... I get a "blank" softkey where it used to be. Maybe it was
> removed from ROM 2.10.7? Can anyone confirm this?[/color]
MINEHUNT is included in the equation-library - not in ROM anymore:-(
Re: Differences between HP50g and emulator
On Sat, 14 Apr 2007 05:45:29 -0500, Cristian wrote:
[color=blue]
> I was thinking that the ROM bootloader "ended its task"
> after... well, bootloading.[/color]
The 49G "Boot block" contains diagnostics like ON+D,
and the vital "ROM update" function, which loads
the *other* ROM banks, not itself (the 49G's flash
even generally has that area "locked" as "read only").
The "Boot loader" of the ARM-based calcs has the same jobs,
but since it's based on another processor and hardware
architecture, it is entirely rewritten for those calcs.
The ARM-based "Boot loader" can even replace itself,
but using a different file than normal "ROM updates";
however, there has long been no change (v 4.01.03.03
is the last I've heard of), and even V3 is quite adequate
(minor details about ROM update via SD card were since adjusted),
and there's not likely going to be any need for update anyway,
so why care about replacing it?
[color=blue]
> I thought that no part of it remained "active" until next cold-boot,
> which I thought made sense because otherwise if there's a bug in the
> bootblock, it can't be fixed (as it's in ROM)[/color]
As above.
[color=blue]
> This means that the ROM bootblock area is mapped with the main memory,
> and is accessible during normal operations?[/color]
I think not; even the "user flash" (port 2) is not "mapped into memory"
except temporarily, one segment at a time, for copying parts into RAM,
just like ports 2 and up in the HP48GX.
But what is "main memory," anyway?
The part which you deal with is "Saturn memory,"
in which only a part of "Saturn ROM" remains mapped all the time,
while other parts get "swapped in" as needed, so at any moment,
some of those 2^20 "Saturn" nibbles (512K bytes)
represent ROM (only "Saturn" ROM), another part is RAM
(both temporary and "user"), and another part is for
dynamic re-mapping of ports; meanwhile, the ARM processor
has its own memory -- some ROM, and some RAM (the latter is
"stolen" from what used to be 256K of "Port 1 ERAM" in the 49G,
which is found reduced to 128K in 50G/49G+/48Gii).
Do we care? "What, me worry?" [Alfred E Neuman :]
[color=blue]
> On a side note, is there no way to give a 50g bootblock to the
> emulator, so that it behaves exacly like the actual calculator?[/color]
The original "Saturn" emulator EMU48 knows nothing about ARM processors,
so it has to emulate a 49G (although the Debug4x version has been
modified to handle a larger screen when needed, and to recognize
some special expanded Saturn instructions, to return what
an ARM-based Saturn emulator would return for each newer model,
thus being able to fool the "Saturn ROM" code into believing
that it is running on an ARM-based Saturn emulator, even though
it's actually still running on a PC-based Saturn emulator :)
When there's a PC-based ARM processor emulator instead
(or is there already?), then even that "Boot loader"
can be emulated (and more importantly, HPGCC,
which uses the ARM processor natively) -- however,
you will then lose those neat developer greyscale photos :)
[and perhaps also not be able to emulate a plain old 49G,
nor 48S/G models, which I use a lot]
But what's so important about emulating the diagnostics
hidden in a "Boot block/loader" anyway?
Unanswered question:
Won't a Saturn emulated by an ARM emulated by a PC
likely be slower than a Saturn emulated directly by a PC?
(it's mighty fortunate that PCs are now so fast anyway,
but some programs [e.g. max. precision numeric integration]
run so long that we might still care about speed :)
[r->] [OFF]
Re: Differences between HP50g and emulator
On Sat, 14 Apr 2007 05:38:57 -0500:
[color=blue]
> ON-D goes into the boot loader which doesn't exist on the emulator.[/color]
Emu48 acts just like the 49G, complete with the greyscale pix
of you ACO guys -- just as you all used to look back then :)
[r->] [OFF]
Re: Differences between HP50g and emulator
Hello JY,
[color=blue]
> I think you just dreamed it, cause they are exactly the same ROM. Exact
> same thing on emulator and real machine.[/color]
I dreamed what? The Tetris games? I can "load" them both without
problems (in a reproducible way) on the calc. But only one of them in
the emulator. I tried holding the calc in front of the computer, and
making the very same keypresses on both (Go to EQW, alpha lock, type
MINEISBETTER, alpha unlock, select the text with arrow up, press the
"SIMP" softkey - there it is, the "better" tetris). After quitting the
tetris, back on the EQW you get the number of lines you "cleared"
during your game. In the emulator pressing SIMP gives nothing.
[color=blue]
>
> ON-D goes into the boot loader which doesn't exist on the emulator.[/color]
ON-D, on the emulator, gives me a menu named "Tests" with the
following entries:
1: Hard
2: Cpu
3: Kbd1
4: Kbd2
5: FastROM
6: FastRAM
7: FullROM
8: FullRAM
9: FROM Format
E: RS232
Q: Reboot
And the "hidden" photos pressing various keys. The menu entries
actually work.
On the actual calc, ON-D gives a screen with the message "Version:
04.01 Build number: 0093"
and after a couple of seconds, a menu with the following entries:
1. LCD
2. KEY
3. FLASH
4. SRAM
5. USB
6. RS232
7. BUZZER
8. IRDA
9. CARD
A. AUTOTEST
So, what part of all this did I "just dream"? :)
Cristian
Re: Differences between HP50g and emulator
On Apr 14, 4:35 pm, "John H Meyers" <jhmey...@nomail.invalid> wrote:
[color=blue]
> But what is "main memory," anyway?
>
> The part which you deal with is "Saturn memory,"
> in which only a part of "Saturn ROM" remains mapped all the time,
> while other parts get "swapped in" as needed, so at any moment,
> some of those 2^20 "Saturn" nibbles (512K bytes)
> represent ROM (only "Saturn" ROM), another part is RAM
> (both temporary and "user"), and another part is for
> dynamic re-mapping of ports; meanwhile, the ARM processor
> has its own memory -- some ROM, and some RAM (the latter is
> "stolen" from what used to be 256K of "Port 1 ERAM" in the 49G,
> which is found reduced to 128K in 50G/49G+/48Gii).
>
> Do we care? "What, me worry?" [Alfred E Neuman :]
>
> The original "Saturn" emulator EMU48 knows nothing about ARM processors,
> so it has to emulate a 49G (although the Debug4x version has been
> modified to handle a larger screen when needed, and to recognize
> some special expanded Saturn instructions, to return what
> an ARM-based Saturn emulator would return for each newer model,
> thus being able to fool the "Saturn ROM" code into believing
> that it is running on an ARM-based Saturn emulator, even though
> it's actually still running on a PC-based Saturn emulator :)[/color]
John,
Thanks a lot for a very informative answer. I wasn't thinking about
the "ARM emulating Saturn" part.
Why is it that reading your answer, I get the impression that I opened
the famous "can of worms"? ;)
Thanks again
Cristian
Re: Differences between HP50g and emulator
[email]usenet1.20.quaxo@spamgourmet.com[/email] wrote:
[color=blue]
> I dreamed what? The Tetris games? I can "load" them both without
> problems (in a reproducible way) on the calc. But only one of them in
> the emulator. I tried holding the calc in front of the computer, and[/color]
Both Tetris are available.
Set your calculator to have the same flags, then do as usually
(especially the flag controlling CAS step-by-step mode).
The EQW tetris is located with the EQW source code, they are identical
between emulator and real machine.
The only thing different between the emulator and the real machine is
the bootloader as John described.
Except that the original HP49 bootloader is in fact present for all new
HP49g+/50/48gii, but isn't used to boot. However it is used as it
contains primary routine like xmodem, writing to flash etc.
The 49g+ and 50g has additional code (about 180kB more) for all ARM
related routine (including the emulator: codename Saturnator).
JY
Re: Differences between HP50g and emulator
mats wrote:[color=blue]
> [email]usenet1.20.quaxo@spamgourmet.com[/email] wrote:[color=green]
>> Another thing... I just noticed that the Minehunt built-in game is
>> gone... I get a "blank" softkey where it used to be. Maybe it was
>> removed from ROM 2.10.7? Can anyone confirm this?[/color]
> MINEHUNT is included in the equation-library - not in ROM anymore:-([/color]
it is.
Try MINEHUNT2 instead
I renamed the command to fix what was mentioned here.
I guess it was a poorly fix, I can't remember why I did it the way I did
:) (couldn't be bothered really)
I reverted those changes, just in case....
From: "John H Meyers" <jhmeyers@nomail.invalid>
Newsgroups: comp.sys.hp48
Subject: Re: HP 49G+ Display [TrigLib bug]
Date: Wed, 11 Oct 2006 22:17:02 -0500
Organization: (real domain is miu.edu)
On Wed, 11 Oct 2006 12:32:50 -0500, David Boyd wrote:
MINEHUNT is in the equation libraries, amusingly enough.
Those must be loaded separately when updating the ROMs.
You have just discovered a Library conflict!
(or rather, a *duplicate* command name in the Equation library)
By viewing 2275 MENU (the menu for Equation library 227),
you can see that library 227 not only contains MINEHUNT,
but also contains a command name
(MSOLVR, ROMPTR E2 2) duplicating the name
of an already-existing built-in user command
(MSOLVR, ROMPTR AB 72), where "AB" (library 171)
contains many built-in commands added for the 48G series
and continued for the 49 series.
Unfortunately, it turns out that
when library 227 is installed and attached,
any user program containing the command name MSOLVR
now compiles a ROMPTR reference to library 227,
rather than a reference to the already *built*in*
Multiple Equation Solver [MES, menu 116] command from
library 171, and this has probably been happening ever since
ROM version 2.00 (if that was where the Equation Library
was first added).
This means that if anyone compiles a user program
containing the built-in user command MSOLVR
when the Equation Library happens to be installed,
it will compile into a binary program which anyone
who has not installed the Equation Library can not run,
even though the already built-in MSOLVR command
is already part of the main ROM, and should not depend
in any way upon the installation of an *optional*
Equation Library.
It looks to me as if it would be prudent to get rid of that
*duplicate* command *name* MSOLVR from HP library 227
(without, of course, changing the *numbering*
of the other user-accessible commands of library 227).
By the way, menu 114 also seems to contain a reference
to the SOLVEQN command of the *optional* equation library,
whether or not that library is attached (and menu 113,
also just like its HP48G counterpart, mentions EQLIB
whether or not it's installed).
Such typical problems are often encountered
when trying to separate Siamese twins
to give them independent lives :)
It ought to be possible for HP to perform
the very minor corrective cosmetic surgery
to repair these little glitches of the quickly done
original Equation library separation, and best wishes.
[r->] [OFF]