Last night I removed the CPUs of the VIC20 and the CBM, put them on additional sockets to make it easier to insert and remove them again without having to worry too much about their legs and I swapped them. I guess that both CPUs are fine, the CBM's worked in the VIC and the CBM still doesn't work with VIC's.
So I left the CBM without the CPU and using a socket, a breadboard and some dupont wires I connected it to the Arduino in this way:
A[15:12] = 1110 to obtain /SEL E = /IO
A[11:8] = 1000 to get x8xx
Then I tried to initialise the CRTC from the Arduino. No success, I couldn't get any sync signals. As far as I know I'm sending the data in the right way. This is a capture of part of the communication, from the CRTC's pins:
Looks fine to me.
(edit: I don't know why the forum shrinks my snapshots so much; I've uploaded it to my Drive shared folder:
https://drive.google.com/folderview...ZiWEswcFplbXNhWlp1Z3h0WmtPd2E0cG8&usp=sharing)
I didn't observe any data corruption though, like I did with the CPU/ROM the other day. I don't know if it's because the Arduino can generate stronger signals or why. In theory I'm doing pretty much what the CPU does. Am I missing something? I checked the clock on pin 21 of the CRTC and it was receiving it fine, as expected, as it doesn't depend on the CPU for anything.
Even though I didn't get any corruption by indirectly generating CS from the address lines, I also gave it a go to controlling CS directly. I changed A[15:12] to 0000 so not /SELx line was enabled (which also gave me a high /CS by default), I inverted CS in the Arduino's code and I connected it directly to pin 25 of the CRTC instead of A7 in the CPU's socket. Same disappointing result: no sync signals.
Then, a few seconds after I switched the CBM off to disconnect the Arduino and reinsert the CPU (I wanted to make sure the corruption was still happening with the CPU without touching any of the connections to the logic analyser after the last tests with the Arduino) something in the power supply side explode:
Somewhat funny that it happened after switching it off and not while powered or while switching it on.
I'm not sure what this is and what to get to replace it. From the printed units, it seems it's some combination of capacitors (3?) and inductors (2?) all in one? I can't see if in the schematics of the standard 8032 here
http://www.zimmers.net/anonftp/pub/cbm/schematics/computers/pet/8032/8032051-3.gif. But my SK's transformer isn't wired exactly like in those schematics either. So it's probably using another newer revision.
So, party poppers apart (once I fix the damage) and unless someone thinks I did something wrong while trying to initialise the CRTC with the Arduino, I think that I'll have to desolder the CRTC, solder a socket and try with the 6845 that I got, as there might be something else wrong, but apparently the 6545 isn't working either.