On Fri, 4 Mar 2005, John Allain wrote:
What CP/M
easter egg? That ensuing discussion lacks any useful detail.
For people who haven't read it, here's what it said:
"IIRC, Killdall stood up in court and entered a keystrokes at a PC
running MSDOS and brought up an easter egg he had programmed
into CP/M years earlier, proving they had used his code."
What we're trying to figure out is the keystrokes and the MSDOS version.
Here's another account:
http://dfarq.homeip.net/article.php?story=935
"Back in the mid-1990s, PC Magazine columnist John C. Dvorak wrote
something curious about this operating system. He said he knew of an
easter egg present in CP/M in the late 1970s that caused Kildall's name
and a copyright notice to be printed. Very early versions (presumably
before the 1.0 release) of DOS had this same easter egg."
Ahh... that does reveal a bit.
I, and I'm sure many, translated programs from 8080/z80 to 8086
with a text editor 'search and replace'. Clearly this was Intel's
intent and it worked fine; the first thing I translated was my
EPROM debugger/boot code. (It obviously required hand coding too
to make it work but the bulk of hard-won code was ported.)
So if you disassembled 8080 binary, mechanically translated the
resulting source to 8086, that would preserve the easter egg.
(Man would that be one ugly program.)
It seems entirely likely that Kildall's hack (algorithmically
obscured text within the code somewhere) would only be preserved
by some sort of mechanical translation. It's doubtful an honest
re-write even with listings side by side would result in it being
preserved.
There are few enough CP/M binaries that the sources of which could
contain such things. CCP did not become
COMMAND.COM, that is
clear, it's totally different.
MSDOS/CPM kept the same "BDOS::BIOS" relationship, jumptables and
all, but MSDOS (and 86DOS) have a totally different filesystem, so
the directory and block-management stuff is unlikely to contain
the egg.
I bet some puzzling would work out a list of the few places where
text would be brought to console out (the implication of the
accounts above).
If this were the case, I bet I (and many others) could identify
mechanically translated code by looking at it but (1) I'm rusty
and (2) I don't really give a shit, I'll wait to enjoy someone
else's work.
Gotta be 86DOS or MSDOS 1.25. The first 86DOS I wrote a BIOS for
was version (oh so clever) 0.86. It was basically 8086 CPM 1.4.
Then there was a 1.10 I think.