I've done a brief comparison of the CEGMONs posted recently and found the following:
Cegmon0.rom posted by Osi:
This is 48x16 and unsurprisingly the major differences concern the screen dimensions but as mentioned above, some CEGMON images have the IRQ and NMI changed to point to 0x235 and 0x237 rather than the original 0x1C0 and 0x130 used by MONUK01 and NEWMON. This seems to have been some attempt to move the interrupt handlers out of the stack page and into the first free bytes in page 2. However it was done incorrectly as the addresses are the start of code execution rather than two byte vectors, so you would need at least 3 bytes between the IRQ and NMI addresses to insert a suitable JMP instruction and thus these changes would cause problems with an NMI handler which would jump into the last byte of the IRQ jump instruction.
With Cegmon0.rom, the IRQ and NMI vectors point to the original 0x1C0 and 0x130 addresses but when you set a breakpoint in the machine code monitor, the IRQ handler for the breakpoint is copied to 0x235 rather than 0x1C0 so this seems to be a hybrid / incompletely patched version and it crashes due to this when using breakpoints so this version is not recommeded for use.
CEGMON-48x16.rom posted by uk101fan:
This is only 5 bytes different from the 48x14 version mentioned in my initial post and those changes just concern the window size with the IRQ, NMI and breakpoint handler all using the original addresses. However, judging by uk101fan's other UK101 posts about the RAM expansion, it looks like his machine is the one that was on ebay recently (please correct me if I'm wrong) which ultimately came from a collector/restorer who had passed away and the photos show the CEGMON on that machine with a recent looking handwritten label so it could possibly be a patched version of the 48x14 variant.
CEGMON.ROM posted by peterw810
This is 48x28 so not the 48x16 I was looking for but it is different yet again to the 48x28 already available on the internet as it has the original IRQ, NMI and breakpoint addresses rather than the page 2 incorrect versions. As peterw810 mentions this is likely an original dump it is possible that the 48x28 and 48x14 were original variants and they later changed to 48x32 and 48x16 or vice-versa (The manual found online indicates that 48x16 was available at some point).
So, thanks to all concerned for contributing but I think the hunt for a confirmed dump of an original 48x16 ROM goes on although uk101fan's version is certainly the best one to use so far.
Cegmon0.rom posted by Osi:
This is 48x16 and unsurprisingly the major differences concern the screen dimensions but as mentioned above, some CEGMON images have the IRQ and NMI changed to point to 0x235 and 0x237 rather than the original 0x1C0 and 0x130 used by MONUK01 and NEWMON. This seems to have been some attempt to move the interrupt handlers out of the stack page and into the first free bytes in page 2. However it was done incorrectly as the addresses are the start of code execution rather than two byte vectors, so you would need at least 3 bytes between the IRQ and NMI addresses to insert a suitable JMP instruction and thus these changes would cause problems with an NMI handler which would jump into the last byte of the IRQ jump instruction.
With Cegmon0.rom, the IRQ and NMI vectors point to the original 0x1C0 and 0x130 addresses but when you set a breakpoint in the machine code monitor, the IRQ handler for the breakpoint is copied to 0x235 rather than 0x1C0 so this seems to be a hybrid / incompletely patched version and it crashes due to this when using breakpoints so this version is not recommeded for use.
CEGMON-48x16.rom posted by uk101fan:
This is only 5 bytes different from the 48x14 version mentioned in my initial post and those changes just concern the window size with the IRQ, NMI and breakpoint handler all using the original addresses. However, judging by uk101fan's other UK101 posts about the RAM expansion, it looks like his machine is the one that was on ebay recently (please correct me if I'm wrong) which ultimately came from a collector/restorer who had passed away and the photos show the CEGMON on that machine with a recent looking handwritten label so it could possibly be a patched version of the 48x14 variant.
CEGMON.ROM posted by peterw810
This is 48x28 so not the 48x16 I was looking for but it is different yet again to the 48x28 already available on the internet as it has the original IRQ, NMI and breakpoint addresses rather than the page 2 incorrect versions. As peterw810 mentions this is likely an original dump it is possible that the 48x28 and 48x14 were original variants and they later changed to 48x32 and 48x16 or vice-versa (The manual found online indicates that 48x16 was available at some point).
So, thanks to all concerned for contributing but I think the hunt for a confirmed dump of an original 48x16 ROM goes on although uk101fan's version is certainly the best one to use so far.
Statistics: Posted by IanB — Fri Feb 16, 2024 12:38 am