Amiga

Two special Amiga 4000s: Repairing Jops

Last time I worked on Jops, I left myself a lot of work to do. This weekend I picked it up again to work on. So, here is the update!

Alice socket

The first thing I did was solder a socket for Alice, popped Alice in, powered it up and was getting absolute junk out of DiagROM still. I decided to do a couple of things:

  • Remove U891, just in case that was pinning the bus.
  • Ultrasonic clean the board.

I usually leave the ultrasonic clean until the end, but there was so much corrosion everywhere, that I figured it would help with the diagnosis. This is the end result:

It is certainly easier to see things now, and it looks like I might need to replace fewer things than I originally thought.

DiagROM

From here, I popped in Alice DiagROM, the CPU and some Chip RAM. The bootup seems a little more human, at least something I can work with.

There are words that appear to have special characters after each letter. Very odd. Let’s take a look at the hex mode of Moserial.

So, there are lots of 0x00s pumped out and 0xFE as the gap between the characters. This gave me an idea as to what is up, but to explain it, I have to dig into the DiagROM source code. This is a snippet from the serial printing code, don’t worry if you can’t read 68000 assembly, I’ll walk through the important parts.

.timeoutloop: 
 move.b $bfe001,d1   ; just read crapdata, we do not care but reading from CIA is slow... for timeout stuff only
 sub.l #1,d2    ; count down timeout value
 cmp.l #0,d2    ; if 0, timeout.
 beq .endloop
 move.w $dff018,d1
 btst #13,d1    ; Check TBE bit
 beq.s .timeoutloop

When a byte has been sent to the serial port, this loop checks the SERDATR register, which is Paula register 018 (full address is 0xDFF018). It checks for bit 13, which is the TBE bit, the TBE bit indicates that the write is complete.

If the TBE bit cannot be read properly, that would certainly cause the serial port buffer to be constantly overwritten and do weird things.

So, data bit line 13 on Paula is DRD bus line 29. The DRD bus is connected to the main data bus via Bridgette. Sure enough, when I checked the DRD29 pin on Bridgette, I found it wasn’t soldered properly. This makes sense, there was corrosion there to begin with.

I resoldered this pin and tested again.

Great news! The DiagROM output is now correct. But there is also some bad news.

Display issues

Whilst the serial output is completely correct, the display just has a black screen. I tried with a VGA output instead of my usually SCART, this uses H+VSync instead of CSync. But still no joy, that monitor didn’t even see a signal. The H and V sync is definitely being generated.

To my untrained eye, they look about what I would expect them to be. I have an idea about how to diagnose this further, but I ran out of time this weekend to work on it further.

Next time

Getting this machine to boot correctly is huge progress. But there are still quite a few things left to do:

  • Fix the display issue.
  • Solder a socket for Buster.
  • Replace the ICs next to the RAM that I removed, and patch as needed.
  • Replace the SIMM sockets (maybe? They are in good condition, I’m not sure yet).
  • Recap.
  • Testing.

Once I have the display issue fixed, the rest I should be able to do pretty quickly. This is turning out to be a long project, but it is definitely worth it!

LinuxJedi

Recent Posts

Restoration of a barn find Amiga 2000: part 3

All the motherboard issues were resolved in my previous post in this series, now it…

4 hours ago

Restoration of a barn find Amiga 2000: part 2

With this Amiga 2000, I previously got it into a state where it would boot…

5 days ago

Restoration of a barn find Amiga 2000: part 1

I recently acquired an Amiga 2000 for £350 which was in an unknown state, but…

2 weeks ago

Diagnosing an Amiga 1200 Data Path Fault

I recently acquired an Amiga 1200 motherboard in a spares/repairs condition for about £100 recently.…

4 weeks ago

Bare Metal “Hello World” on an STM32MP135F-DK

Whilst I do like working with STM32 development boards, some basic information I need can…

4 weeks ago

Two special Amiga 4000s: Diagnosing Jops

When I last left this blog series, the first of Stoo Cambridge's A4000s had gone…

1 month ago