View Single Post
Old 23 April 2016, 18:17   #210
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 45
Posts: 24,538
Some CD32 undocumented features after few days of poking around with mon and asmone . Was already posted in cd32load thread.

- It seems unmapped addresses don't "float", all invalid reads seem to always return zeros.
- CIA chip select, address bits 12 and 13 are CIA selects. Gary: 0=none,1=A,2=B,3=A+B, Gayle: 0=none,1=A,2=B,3=none, Akiko: 0=A,1=A,2=B,3=B
- CIA address space: Gary: $A00000-$BFFFFF, Gayle: $BFDxxx and $BFExxx, Akiko: $BFE000-$BFFFFF.
- Custom register mirror at $B90000-$B9FFFF! (This is really weird..)
- Akiko addresses are mapped from $B80000 to $B87FFF and has 64 byte mirroring.
- Full Akiko ID at $B80000.l is $C0CACAFE (KS only checks for $CAFE)
- All write-only registers seem to read same data as nearby read-only register. (not random data/bus noise like other write-only registers)
- Interrupt registers only have bits 24 to 31 writable, other bits always read as zeros.
- Config ($B80024) register has bits 23 to 31 writable, other bits always read as zeros.
- Subchannel arrived interrupt bit is set at boot for some unknown reason, subchannel index register ($B80018) works strangely and has unexpected value at boot ($C2).
- Akiko internal CIAs don't have external TOD input pins. CIA-A TOD which normally counts vsyncs or power supply ticks count rate is selected with $B80020 bit 23 (0=50Hz, 1=60Hz). CIA-B (hsync) timing logic is not known yet but it is also internally generated.
Toni Wilen is offline  
 
Page generated in 0.04246 seconds with 10 queries