The Mr. Do rom verification is as follows:
for address in current_rom_bank
register a = register a + (address)
That is a adds up the values of each address in a ROM bank. Once all addresses are added up in a bank, the value of a is compared to register e
register e = 0 for rom bank 0
register e = 1 for rom bank 1
register e = 2 for rom bank 2
register e = 3 for rom bank 3
This index is later used to print out which rom bank is bad if any are bad. I am assuming the last byte in each rom bank is used to ensure that the code equals the number of the rom bank, though I do not know that for sure
From what I can gather with Mr. Do, Mr. Do has a set of tiles, 32 high and 24 wide. addresses start from 0x8c80 (lower left corner) and move the column and then right till it hits the top right corner at address 0x8f7f.
Each of these locations has a corresponding memory location that maps the foreground and background color.
These color locations are are 0x8880 - 0x8b7F
The high 4 bits is the background color, the low 4 bits is the foreground color *Note some bit patters seem to shift from colors to altered graphic tiles Note the top and bottom row are actually invisible, so addresses 0x8c80,0x8c9F,0x8ca0,0x8cb0...0x8f7f are not actualy shown
memory written to "non-invisible locations" from 0x8c0-0xb7F will show characters if there correpsonding color location has a valid color.
The character codes are
The information below has not been proven and right now theory/speculation
address 0x0038 seems to be the start of a loop (well 0x00B8) is. Mr do will often loop on a jr
sprites - 0x8080 - 0x837f seem to be graphical position for sprites, 0x89 looks like a "white outline square"
0x8480 - 0x875F - also seem to be graphics positions for sprites, FB looks like a white outline square while the corresponding addresses 0x8080-0x837f are 0x89