Jose R. Valverde wrote:
Then, all I can think of is the other approach I
mentioned: that the
original authors first wrote prf.c, had a look at the assembly generated
and then tweaked the assembly code generated from sys*.c by hand and
reproduced some similar patterns.
prf.c has another author than the source files I've got the problem with.
prf.c was "developed" by the guys at EAW who created WEGA. Developed means
here, they disassembled the ZEUS objects and created C files out of the
ASM listing like I do. Probably they didn't figured out the "ldl rr4,rr2"
part of the original ZEUS object (which was probably there) too and they
decided that how it is done now has the same effect.
So - you can say all sources which contain german text are created based
on ZEUS disassembled objects so they are not "original" ZEUS. all the
source files containing a "whatstring" from the version control system
are files created by me by disassembling the original ZEUS objects.
One interesting thing for example can be found in the WEGA-debug.c:
is the ASM code from the original object
What they've tryed at EAW when writing the debug.c file was:
#define UMASK 0x3f00ffffL
#define KMASK 0x7f00ffffL
kadr = (unsigned int *)((long)(gethex() & UMASK) & KMASK);
But this gets compiled into:
which is the same because - when the AND with 16128 happend, an AND with
any higher value won't change the register - so the optimizer probably
decided to remove the and with 32512 - which is not removed in the
Well, if I can find some time to install SystemIII for
VAX on SIMH, may
be I will be able to reproduce this, but I seriously doubt it as they
are different architectures.
A friend of mine is working on a P8000 emulator - 8Bit is kinda done,
16bit part is "in progress" - no idea how long it will take him to
complete it since I have no circuit plans of the 16Bit part - only the
original (good documented) Firmware Sources.
When it is done and it can be released officially you can all enjoy the
feeling on working with a P8000! ;)