===== 07 DIC DMA DICR | BIOS 19951204 System ROM Version 3.0 11/18/96 A BadVaddr as the group starts: 00000480 DICR around a 16 word OTC (channel 6: enable bit 22, flag bit 30). psx-spx sets the flag only with bit 23 and bit 22 (dmachannels.txt:184-186), nocash with bit 22 alone (channels.txt:122-123). IRQ3 is I_STAT bit 3, acknowledged before each OTC. DICR 00000000 reads 00000000 (IRQ3 0); after OTC 00000000, IRQ3 0 DICR 00400000 reads 00400000 (IRQ3 0); after OTC 40400000, IRQ3 0 DICR 00800000 reads 00800000 (IRQ3 0); after OTC 00800000, IRQ3 0 DICR 00C00000 reads 00C00000 (IRQ3 0); after OTC C0C00000, IRQ3 1 DICR 00C00040 reads 00C00000 (IRQ3 0); after OTC C0C00000, IRQ3 1 DICR 00400040 reads 00400000 (IRQ3 0); after OTC 40400000, IRQ3 0 DICR 00BF0000 reads 00BF0000 (IRQ3 0); after OTC 00BF0000, IRQ3 0 DICR 00FF0000 reads 00FF0000 (IRQ3 0); after OTC C0FF0000, IRQ3 1 DICR 00008000 reads 80008000 (IRQ3 1); after OTC 80008000, IRQ3 0 DICR 00C08000 reads 80C08000 (IRQ3 1); after OTC C0C08000, IRQ3 0 DICR 0000003F reads 0000003F (IRQ3 0); after OTC 0000003F, IRQ3 0 A flag, then its enables taken away: after OTC: wrote 00C00000, reads C0C00000, IRQ3 1 bit 22 off: wrote 00800000, reads C0800000, IRQ3 0 bit 23 off too: wrote 00000000, reads 40000000, IRQ3 0 bit 23 on: wrote 00800000, reads C0800000, IRQ3 1 bit 23 on again: wrote 00800000, reads C0800000, IRQ3 0 flag acknowledged: wrote 40800000, reads 00800000, IRQ3 0 bit 31 written: wrote 80800000, reads 00800000, IRQ3 0 Flag with bit 22 alone, then bit 23: after OTC: wrote 00400000, reads 40400000, IRQ3 0 bit 23 on: wrote 00C00000, reads C0C00000, IRQ3 1 Bit 15 set, then a flag: bit 15 and 22 and 23: wrote 00C08000, reads 80C08000, IRQ3 1 after OTC: wrote 00C08000, reads C0C08000, IRQ3 0 bit 15 off: wrote 00C00000, reads C0C00000, IRQ3 0 flag acknowledged: wrote 40C00000, reads 00C00000, IRQ3 0 Two flags, one acknowledged: after first OTC: wrote 00C00000, reads C0C00000, IRQ3 1 after second OTC: wrote 00C00000, reads C0C00000, IRQ3 0 flag acknowledged: wrote 40C00000, reads 00C00000, IRQ3 0 after third OTC: wrote 00C00000, reads C0C00000, IRQ3 1 OTC with bit 28 alone (no start, otc.c) and DICR 00C00000: after: wrote 00C00000, reads 00C00000, IRQ3 0 Done.