A few years back Roger Merchberger was kind enough to make available copies
of the Microsoft BASIC "capsule" for the Matsushita/Panasonic/Quasar HHC.
I haven't checked any of his actual MCM68764 EPROMs, but I found an error in
the binary image he provided. The last byte of the EPROM, at offset 0x1fff,
is 0xff, but should be 0xc8, an INY instruction.
The HHC inverts address line A12 to the ROMs, so the two halves of the
EPROM are logically swapped. The EPROM resides in the HHC address map
at 0x4000..0x5fff, so the incorrect byte is at address 0x4fff. If you
look at the source code for Microsoft 6502 BASIC (which few people have),
this byte is the first of three INY instructions generated by a REPEAT
directive shortly after the label STOMLT:
STOMLT: STX CURTOL
LDA COUNT
REPEAT 3,<INY>
STADY LOWTR ;SAVE NUMBER OF DIMENSIONS.
LOPPTA: LDXI 11 ;DEFAULT SIZE.
This is the (corrected) disassembled code:
4ffb 86 f1 stomlt: STX curtol
4ffd a5 44 LDA count
4fff c8 INY
5000 c8 INY
5001 c8 INY
5002 91 ee STA (lowtr),Y
This is part of the array indexing code. The incorrect byte 0xff is an
invalid opcode, so it probably will result in array indexing being
done wrong, and could cause memory corruption.
I found this error only because I was able to compare a disassembly
of the image to the Microsoft source code. It's remotely possible that
there could be other errors in the image. I now have an original
Microsoft BASIC ROM for the HHC, so I'll try to verify the image against
it.
The ROM image ends with some credits (presumably for the HHC port):
001ff0 4e 45 49 4c 20 4b 20 26 20 48 45 4e 52 59 20 4c >NEIL K & HENRY L<
"Neil K" is almost certainly Neil Konzen. Does anyone know who "Henry
L"
is?
Eric