J'ai dans un premier temps échangé le composant Fat Agnus avec celui d'un autre Amiga 500 fonctionnel. Cela ne présente pas de difficulté mais comme le composant est au format PLCC, il faut utiliser une pince spéciale pour ne pas risquer d'endommager les composants (ça tombe bien, j'ai cette pince). Les résultats de cet échange confirment que le Fat Agnus n'est pas en cause. Reste la RAM.
Sur Amiga 500, un problème de RAM peut-être causé par un composant RAM lui-même soit par un des composants qui constituent le Data Path.
Plusieurs techniques sont possibles pour déterminer quel est le fautif : Piggy back des composants RAM, détection de chaleur excessive, sonde logique, oscilloscope...
Dans ce cas, le Piggy back n'a rien donné, mais ce n'est pas une technique efficace à 100 %. La sonde logique n'a rien indiqué de probant non plus.
Je me suis donc orienté vers une ROM de diagnostic. Il est clair que le système fonctionne à minima, car l'écran vert indique que les vérifications de base du Kickstart sont exécutées. Il existe une ROM de diagnostic DiagROM, écrite par John "Chucky/The Gang" Hertell. Je télécharge donc la version la plus récente de DiagROM, pour Amiga 500. La ROM doit être écrite sur une 27C400.
Maintenant, se posent plusieurs problèmes :
- Mon TL866CS ne gère pas nativement ce type d'EPROM. Il existe cependant des adaptateurs. Je commande un adaptateur en kit à Keir Fraser (auteur de FlashFloppy pour Gotek).
- Un défaut de conception de la révision 5 de la carte mère de l'Amiga 500 (connu sous le nom de Oops bug) empêche l'utilisation d'EPROM. Il faut donc rerouter la ligne A17. Pour des problèmes de stabilité, il faut également ajouter des résistances de pull-up. J'achète un adaptateur en kit qui effectue efficacement ces modifications.
Pour obtenir des informations utiles et en l'absence d'affichage, il faut relier par un câble série l'Amiga a un ordinateur puis ouvrir un terminal. Voici un extrait des informations transmises par l'Amiga :
Code : Tout sélectionner
Connect to serial port COM1 at 9600
Garbage before this text was binary numbers: 1, 2, 4, 8, 16, 32, 64, 128, 240, 15, 170 and 85
To help you find biterrors to paula. Now starting normal startuptext etc
Amiga DiagROM V1.2 - 13-Aug-19 - By John (Chucky/The Gang) Hertell
Testing if serial loopbackadapter is installed: <> NOT DETECTED
- Parallel Code $ff - Start of ROM, CPU Seems somewhat alive
Checking status of mousebuttons for different startups:
Set all Interrupt enablebits (INTENA $dff09a) to Disabled: Done
Set all Interrupt requestbits (INTREQ $dff09c) to Disabled: Done
Set all DMA enablebits (DMACON $dff096) to Disabled: Done
Testing if OVL is working: OK
- Parallel Code $fe - Test UDS/LDS line
- Test of writing word $FFFF to $400 FAILED
- Test of writing word $00FF to $400 FAILED
- Test of writing word $FF00 to $400 OK
- Test of writing word $0000 to $400 OK
- Test of writing byte (even) $ff to $400 OK
- Test of writing byte (odd) $ff to $401 FAILED
- Parallel Code $fd - Start of chipmemdetection
Addr $00000400
Write: $55555555 01010101010101010101010101010101
Read: $55515551 01010101010100010101010101010001 FAILED
Write: $0F0F0F0F 00001111000011110000111100001111
Read: $0F0B0F0B 00001111000010110000111100001011 FAILED
Write: $0F0FF0F0 00001111000011111111000011110000
Read: $0F0BF0F0 00001111000010111111000011110000 FAILED
NO Chipmem detected
- Parallel Code $fc - Trying to find some fastmem (as no chipmem found)
- Parallel Code $fb - Memorydetection done
- Parallel Code $80 - NO Chipmem detected
- NO MEMORY FOUND - HALTING SYSTEM
Seconde constatation, quelle que soit la valeur du bit 2 écrite en RAM, en lecture, le bit est toujours à 0.
La consultation du Technical Reference Manual indique que le bit 2 est géré par le composant U18 :
Je retire le composant U18, installe un support et insère une nouvelle RAM MM41256 :
Je démarre l'ordinateur et cette fois-ci, le diagnostic valide la RAM :
Code : Tout sélectionner
Connect to serial port COM1 at 9600
Garbage before this text was binary numbers: 1, 2, 4, 8, 16, 32, 64, 128, 240, 15, 170 and 85
To help you find biterrors to paula. Now starting normal startuptext etc
Amiga DiagROM V1.2 - 13-Aug-19 - By John (Chucky/The Gang) Hertell
Testing if serial loopbackadapter is installed: <> NOT DETECTED
- Parallel Code $ff - Start of ROM, CPU Seems somewhat alive
Checking status of mousebuttons for different startups:
Set all Interrupt enablebits (INTENA $dff09a) to Disabled: Done
Set all Interrupt requestbits (INTREQ $dff09c) to Disabled: Done
Set all DMA enablebits (DMACON $dff096) to Disabled: Done
Testing if OVL is working: OK
- Parallel Code $fe - Test UDS/LDS line
- Test of writing word $FFFF to $400 OK
- Test of writing word $00FF to $400 OK
- Test of writing word $FF00 to $400 OK
- Test of writing word $0000 to $400 OK
- Test of writing byte (even) $ff to $400 OK
- Test of writing byte (odd) $ff to $401 OK
- Parallel Code $fd - Start of chipmemdetection
Addr $00000400 OK Number of 32K blocks found: $01
Addr $00008400 OK Number of 32K blocks found: $02
Addr $00010400 OK Number of 32K blocks found: $03
Addr $00018400 OK Number of 32K blocks found: $04
Addr $00020400 OK Number of 32K blocks found: $05
Addr $00028400 OK Number of 32K blocks found: $06
Addr $00030400 OK Number of 32K blocks found: $07
Addr $00038400 OK Number of 32K blocks found: $08
Addr $00040400 OK Number of 32K blocks found: $09
Addr $00048400 OK Number of 32K blocks found: $0A
Addr $00050400 OK Number of 32K blocks found: $0B
Addr $00058400 OK Number of 32K blocks found: $0C
Addr $00060400 OK Number of 32K blocks found: $0D
Addr $00068400 OK Number of 32K blocks found: $0E
Addr $00070400 OK Number of 32K blocks found: $0F
Addr $00078400 OK Number of 32K blocks found: $10 Addr $00080400
Chipmem Shadowram detected, guess there is no more chipmem, stopping here
Startaddr: $00000400 Endaddr: $0007FFFF
- Fastmemcheck skipped as we found chipmem
- Parallel Code $fb - Memorydetection done
Using $0006CCEC as start of workmem (Base)
- Parallel Code $fa - Starting to use detected memory
Testing if serial loopbackadapter is installed: <> NOT DETECTED
Detecting if we have a working raster: DETECTED
Detected Chipmem: 512kB
Detected Motherboard Fastmem: 0kB
Basememory address: $0006CCEC
As a very fast test of variable area working this SHOULD read OK: OK!
Je retire la ROM de diagnostic et réinstalle le Kickstart d'origine. Le démarrage s'effectue parfaitement. Cette fois-ci, j'arrive à l'écran qui demande l'insertion d'une disquette.
Malheureusement, le lecteur de disquette Chinon FB-354 ne fonctionne pas.
Ce sera l'étape suivante de la réparation.