From the Shoutbox:
R. Belmont: Bav: if you're around, I have a question about your vtvideo patch. is the case 0x0b: meant to fall through into 0x0c?
'0x0a' and '0x0b' are separate cases. Truth is, i changed the polarity of 'reverse_field' -late- to get correct colors (both in SETUP and the video test on the diag.disk).
Perhaps my idea of a reverse characters is wrong?
VT-180 specs, chapter 6-43 says: "reverse characters are (an) XOR of reverse video and reverse screen" and i came up with
invert = invert ^ m_reverse_field ^ m_basic_attribute;
..which looked good. There is also a separate logic to handle 'blank' space (bit = m_reverse_field ^ m_basic_attribute).
I spent quite some time to reconcile my code with the docs, and verify character attributes. There was even a truth table in the VT100 tech.manual i implemented (see reference a. below).
It should be possible to iron out the remaining bugs. I assume a complete rewrite might be overkill for a business machine.
REFERENCES:a. complete truth table (for attributes) from TABLE 4-6-4 (in VT100 technical manual)
b. VT-180 manual 6-30 (for screen attributes)
c. VT-180 specs, chapter 6-43 (where multiple attributes are described