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.pngE11 on Rainbow-100 A
https://dl.dropboxusercontent.com/u/37819653/PC100_A__E11_Arbitrator_-_256_x_8.pngFull schematics:
MP01722_PC100-B_Rainbow_Schematic_Jul84.pdf
E13 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