We might need 23-090B1 for a more faithful emulation, just like the PLA in a C-64.
I * guess * the E13 / 23-090B1 is a 256 x 8 lookup table; Needed for -external- DMA access to lower memory (shared between Z80 and 8088).
Even more important: the arbitration chip also decides which of the two CPUs (Z80 or 8088) has access to contended, shared memory (< 64 K).
We observe strange floppy errors on writes (even with newest wd_fdc code). One explanation is that the arbitration slows down RAM accesses and floppy routines currently run too fast
. Just a theory... WAIT is also wired on the Z80, but i dont ´get´ the logic behind it.
E13 on Rainbow-100 B https://dl.dropboxusercontent.com/u/37819653/ARBITRATOR.png
E11 on Rainbow-100 Ahttps://dl.dropboxusercontent.com/u/37819653/PC100_A__E11_Arbitrator_-_256_x_8.png
MP01722_PC100-B_Rainbow_Schematic_Jul84.pdfE13 inputs (A = address lines)
+SH5 RF SH REQ H -> Pin 19 (A7) shared memory request / refresh ?
+ 1K -> +5 V -> Pin 18 (A6) < UNUSED >
+SH 2 BDL ACK (L) -> Pin 17 (A5) BUNDLE OPTION: IRQ acknowledged (*)
+SH 2 NONSHRCYC H -> Pin 5 (A4) unshared memory cycle is in progress
+SH 2 PRECHARGE H -> Pin 4 (A3)
+SH 2 SHMUX 88 ENB -> Pin 3 (A2) shared memory
+SH2 DO REFRESH H -> Pin 2 (A1) indicates that extended memory must be refreshed -> on J6 as (L)
+SH10 BDL REQ (L) -> Pin 1 (A0) BUNDLE OPTION wishes to use shared memory (*)
(*) BDL ACK + BDL REQ from external J4 connector Additional header files required for the keyboard workaround
(to test drive the Rainbow):https://dl.dropboxusercontent.com/u/37819653/BANNISTER/RAINBOW-100_KEYBOARD_WORKAROUND.7z