Maybe the kanji-assisting modes with half-width characters below 8 pixels do not work in 8-bit RAM mode. The V6366 has half of the RAM data pins disconnected in the Schneider PC7640.
Hmm, we tried attribut 7, attribut 87 (normal + blinking) and 78 (inverse + dark gray foreground), and with 24 = 1 we always have the same display? No change in color and no change on repetition?
Your findings about register 24 are consistent with the dumps we have: your PC has 02 there (character cell 8 pixels), whereas CGA emulation on MDA (which outputs standard MDA timing) ha 03 there (character cell 9 pixels, which is correct for MDA).
I propose to skip testing the unusual text modes for now, as they might need a different hardware configuration. No way to fit kanjis into a 4K character ROM.
Perhaps the card considers all those characters double-width and tries to fetch the second half by asserting an address bit that is not connected (RA4 comes to mind...)
There might also be the intention to latch character codes into further address lines for a way bigger prom.
I did a PhD in physics in 2011. But let's not get in details in a publicly recorded chat room. I have no idea who is going to scrape the data from stackexchange in the next 10 years.
I am not responsible for split seconds lost on the computer timer caused by the program forcefully resetting the IRQ0 timer channel...
I do that to make sure the timer is in a mode that counts "properly".
IRQ0 also works in square-wave output mode (remember, ISA IRQs are edge triggered), but in squared-wave mode, the time chip counts the high phase and the low phase by 2, so getting a proper count reading is more difficult.
The observed difference between my expected value and the actual value is most likely due to my program not considering the baseline time needed to read the timer chip.
I am still baffled that the PC7640 has logic to decode the character code for 9th-column-expansion, if that computer does not intend to drive 720-pixel panels or MDA monitors...
The MDA compatibility (especially detecting HGC vs MDA) of the V6363 is known to be flaky. I would not rely on knowledge about bits of less importance in the status register.
Bits 02 and 04 are lightpen inputs on the CGA card. I don't see why they should be hidden in "MDA mode". Yeah, feel free to skip it.
We are still looking for a bit that enables AD14 as bank select bit. You should recheck the register 25 bits that didn't do anything in text mode, whether they unlock banks two and three.
Color depth is a bit difficult to probe with the internal plasma display, though. If the machine were here, I would connect it to my EIZO FlexScan monitor in 64-color-mode.
If it happens to be a rebadged Hantarex MDU 1231, it would be a grayscale VGA monitor. This matches a forum post I have seen about someone getting your Olivetty monitor bundled with a PS/2 Model 30 computer. That computer has a 15-pin video socket (but it can produce CGA compatible timing).
In 1 or 2 bit modes, there should be vertical stripes on the pixels not provided, and the right half of the image should be stretched out between the stripes.
The chip is claimed to do 4-bit parallel transfer to a 640x200 panel and pixel serial transfer to a CGA monitor at the same time.
however, if the external monitor can be driven at 640x400, that would be terrific as that means I can make a simple level converter to drive a VGA monitor
Well, you can not. The VGA monitor expects 31.5 kHz horizontal frequency, and to reach that at 640 pixels with a sensible amount of blanking, you need 25MHz pixel clock.
The product brief claims that palette registers can even be used with RGB output, so they are not just for hatching. But it is likely that hatching is auto-enabled on the panel output if palette mode is enabled.
palette on monochrome monitor / flat panel configures the hatching. Yamaha claims you can also use the palette on color monitors (to get the "out of 64" and "out of 512" color modes).
Keep in mind that underlining is determined by bits 0 to 2 (mask 07). You need blue enabled, and green and red disabled at the same time to get underlining.
On the other hand, typically, underline location is configured by setting the scanline number that the underline should appear in. If no underline is wanted, set underline location to 31 or something like that.