Amiga 1000
September 12, 2022
I'll start this post out with some shots of the box that the A1000
originally came in. I'd say that the box has held up pretty well
considering that it is will be 4 decades old in a few more years.
I started out by unplugging the power supply form the main board and
testing the voltages at each pin. Once I was satisfied that it was
working properly I plugged it back into the motherboard. I then took a
look at all of the electrolytic caps and they seemed to be in good
shape. So it was time to plug it into its original 1080 monitor and
fire it up. When the power was applied I saw a slight flicker on the
monitor but it never went through the gray shades or white screen. I
also noticed that the boot up jingle did not play. The power light came
on dim and then eventually went to full brightness. There was a single
flash of the caps lock LED on the keyboard. The floppy disc drive also
started spinning after a few seconds but no stepping of the head. The
kickstart screen did not appear.
I looked over the system for a while and also reseated all of the
socketed chips to no avail. I also looked up screen color codes during
the boot up and what they indicated. The problem was that I wasn't
really seeing a color change on the monitor just a bit of a flicker as
the power switch was applied. So now it was time to break out the
scope and see if there is any activity on the CPU pins. I checked the
clock line and low behold there was no 7 MHz clock! I looked over at
the cage where the clock signal is sourced and there was no clock
oscillator present!
I headed out to my spare parts box and finally located the 14.63... MHz
clock that was supposed to be there. I soldered in a DIP socket and
then loaded the clock into it. I'm not sure why I had removed this but
it may have been related to the Lucas accelerator board. Now that it
was back in place I fired the machine up and was greeted by the
Kickstart screen!!!
The next step was to insert a kickstart 1.3 disc and try to boot the
system. Unfortunately when I put the disc into the floppy drive nothing
happened. The disc was spinning but the head was not stepping. So back
out to look for a spare floppy drive that might work. I found one and
hooked it up to the motherboard and the kickstart seemed to be loading
in. Unfortunately when it was finished stepping through the tracks it
didn't produce a workbench but instead flashed a gray screen and then
went to solid white. I tried a soft boot but the same thing happened
again. I'm starting to wonder if there is something wrong with the WCS
board that the kickstart is loaded into although it must have passed
the pre-boot test.
A view of the upper deck WCS board of
the A1000 and a 256K expansion in the front slot. Note the silver 14.63
MHz clock that has been restored to its position in the clock cage at
the upper middle of the shot.
I have ordered a diag ROM to perform some further testing of the
system. I have a blank kickstart board that I can put it in to test
with. I also need to pick up a 1.3 ROM to possibly bypass the WCS if
that turns out to be a problem and isn't easily repaired. I am
hopefully though since I was at least able to get to kickstart and hear
some audio and test some basic video and floppy disc access.
September 21, 2022
The DiagRom flash board that I order came in today so I built up the
A1000 kickstart board that I had on hand. This board requires some
modifications to the Amiga WCS board to work properly. PAL U6J was
desoldered from the WCS and socketed so that pin 17 could be easily
isolated from the board. A 4.7k resistor is also required across pins 1
and 20 of U4K. A jumper is also required from pin 13 of U6L over to the
new kickstart board. All of these mods were made with removable jumpers
on the Amiga WCS board so that it can be easily changed back to the
original configuration. The final requirement is to remove the boot
ROMs U5N and U5P.
This is the assembled kickstart board
for the A1000 with the DiagRom (actually a flash board) inserted. The
68000 from the Amiga will need to be loaded at position U2 and the
jumper wire from the Amiga WCS board will attach at the single jumper
position below the ROM.
It looks like DiagRom has already paid
for itself by detecting some memory issues in the low part of chip RAM.
The error appears to be in bit 5 (bit 6 DiagRom convention) and runs
from 0x4000 to 0x41FF. I think that it is actually bit 13 since this is
a 16-bit processor with big endian memory access. The other
complication will be trying to determine which 64K bank of chips this
is in since it isn't readily apparent from the Cardinal schematic set.
I did find a source of some MB81464 DRAM chips that I can get from
Florida for a reasonable price so I ordered 4 of them to have a couple
of spares.
Using the memory editor function of Diagrom I was able to determine
that bit 13 in the 0x4000 to 0x41FF range seems to be mirroring bit 12.
If I write the pattern 0x22 to it it reads back as 0x02. However if I
write the pattern 0x33 it reads back as 0x33.
September 24, 2022
The DRAM chips arrived today so it was time to try and figure out which
chip needs to be changed. Using a scope with 16 digital channels the
DRAM *CAS signal that is activated when DiagRom writes to location
0x4000 was identified. A trigger pattern on the scope checked for all
address lines in the range of A13 to A20 low except for A14. D5
(actually D13) had to be high along with a low on the *WR line. Note
that *UDS also needed to be low for this trigger. The Amiga has 4 CAS
lines and I was only monitoring 2 at a time with the scope so it took
two attempts. In this trace we see that *CAS 2 is active and is the signal
from U1H pin 15. This CAS signal is routed to DRAM chips U2B and U2C.
Data line D13 is on U2B so that will be the chip that gets replaced.
The DRAM chip U2B was removed and a
socket added in its place. One of the new MB81464-12 DRAM chips was
plugged into the socket. Note that the Amiga was built with -15 (150ns)
parts and these replacement parts are faster -12 (120ns) but will
work just fine. This screen shot shows that the memory test has now
made it up to 255kB which is well beyond the prior problem range of 0x4000 to
0x41FF. Chipram is now good once again!
Note the odd dots in the display and the fact that the right portion of
the display is completely blank. I discovered that tapping on one end of the
Denise chip would reduce or increase the flicker so I decided to touch
up the solder on all of the custom chip sockets. That however did not
resolve the problem. After further investigation I noted that if I
slightly lifted one end of Denise out of the socket all of the display
issues went away so some cleaning of the socket may be in order.
With the DRAM and display issues out of the way I decided to try and
re-enable the WCS kickstart board and attempt to load kickstart from
disk. That seemed to go OK with the drive spinning and the head
advancing through the tracks. However it never gets to the point of
requesting the Workbench disk. The screen briefly flashes to gray
after
the disk activity stops and then changes to a lighter gray. Nothing else
happens after that point. I'm wondering if there is a DRAM issue on the WCS
board (DiagRom doesn't test that memory) or there is some problem with
loading in Kickstart. Further
investigation to come but at least I am knocking out some of the
issues.
September 28, 2022
Tonight I decided to spend some time trying to figure out where the
boot process is hanging. Since there is a disassembled listing of
Kickstart 1.2 on the web I'll start with that disk and my 16-channel
digital capture scope to debug the issue. A couple of different gray
colors were observed on the screen so I knew that it was partial
running kickstart. The scope was set up to trigger on address FC0258
which is the medium gray color switch. The scope confirmed that
kickstart was running to at least that point.
Several other points were observed on the scope:
- FC03CC - Set up the exception vector table
- FC043E - Checksum the ExecBase
- FC0454 - Set up the first task
- FC04A4 - Make this task the current task
The next point that was tried was
FC0500 which scan for RomTags but that address never triggered on the
scope. The last observed address on the scope was FC04C2 which is right
after the supervisor bit is turned off. From there the CPU started
executing at FC0C52 which is the start of the Level 1 autovector
interrupt routine. Further checking on the scope suggested that the CPU
was continually being interrupted with a level 1 interrupt. That would
explain why the Workbench prompt was never presented. CPU is too busy
handling interrupts! Level 1 handles serial transmit, disk block
finished and software interrupts that shouldn't be occurring at this
point. Further investigation is necessary.
September 29, 2022
After researching the interrupt signals of the custom Paula chip and
also the 68000 it was time for further probing with the scope. I
attached probes to pins 13-18 on Paula which cover IPL0 -
IPL2, Int2, Int3 and Int6. After booting up the machine into
kickstart there was no activity on any of these lines. A level 1
interrupt shouldn't be occurring since IPL0 - IPL2 were all
inactive. So the next step was to probe the interrupt lines at the CPU
and also the various control signals to trigger the scope on an
interrupt. What was found is that IPL0 was not in the same state as
what Paula was providing and indeed the CPU was seeing a Level 1
interrupt being signaled.
So I powered down the machine and ran a continuity test between Paula
IPL0 and the CPU IPL0 pin. Sure enough there was no continuity between
the two pins. I decided to touch up the solder on all of the CPU pins
since some of the pins looked as though they had very little solder at
all. That however did not resolve the lack of continuity. It seems that
the pin of the CPU is not making good contact with that socket pin. To
resolve the issue that leg of the CPU was bent slightly to put some
pressure on the socket contact and that provided continuity back to the
Paula signal. I think that the socket was worn out by my use of the
Francis accelerator board and should be replaced in the future.
The motherboard was put back into the machine and the power turned on.
The machine booted up and requested the kickstart disk. After loading
kickstart there was a request for Workbench! Success at last! I was
able to open up a clock window and also a note pad. Workbench was now
running and seemed to be stable. To celebrate the achievement it was
now time to pop in the Marble Madness disk!
My
first real computer running Marble Madness 36 years later. I spent lots
of time playing games and doing homework on this machine. I was happy
to get it up and running again!
The next steps will be to try and get the original floppy disc drive
working so that the machine can be reassembled. I'll probably take
a look at replacing the CPU socket so that the CPU doesn't get stuck in
an infinite interrupt loop again. I haven't decided whether to try out
the Francis accelerator board or the SCSI addon. I might keep this
machine stock and use the A1200 for my accelerator needs.