(...) I was just laying out the docs for why RDAT is like it is. It might be that the bytes are supposed to be cleared, set or complemented as they are read out but nothing says that anywhere.
Whenever DBIN is asserted on the 7220, a RMW cycle (memory access) takes place (display cycles
are entirely seperate). Reading also means writing or updating & refreshing the memory (to "simplify external glue logic").
I assume RDAT works the same way as WDAT does - at least parameters look exactly the same for both (p.215 and 216 of the Rainbow Graphics Option Manual)
An external logic (named "Combiner" in Tony Duell's schematics (page 10)
kicks in whenever the GDC's WRITE_MASK is set to all onesReference It appears there are yet no hooks to change the bit mask before an update.
As i am no hardware guy, i have now disassembled most of the Graphcis Diagnostic Disk with IDA Free
(and hope it clears things up) Some unresolved questions keep bugging me:
- what does the Graphics MMU actually do (see schematics)...?
- the Graphics Option Manual from DEC
talks about "synchronization of RMW cycles" (when writing to the special port 50).
Assumption: this simply sets the external WRITE_MASK to FFFF and sets the external ALU (a PAL16L8) to zero (for replace).
Comments are welcome. P.S.
: i have aquired (somewhat rare) German docs for the GDR clone of the NEC 7220 (U82720). Is Bitsavers interested in foreign language manuals?