[Commodore Amiga 500] remise en route

A partir de maintenant la course à l'armement est lancée.

Modérateurs : Papy.G, fneck, Carl

Répondre
Patrick
Messages : 974
Enregistré le : 16 mai 2009 09:30
Localisation : Clermont-Ferrand

[Commodore Amiga 500] remise en route

Message par Patrick » 09 nov. 2019 16:00

Un de mes Amiga 500 révision 5 (ce détail a son importance) n'a jamais fonctionné. A la mise sous tension, il affiche un magnifique écran vert et la LED power clignote 10 fois rapidement plus une fois plus longtemps. Les recherches sur ces symptômes indiquent soit un problème avec le composant spécialisé Fat Agnus, soit avec la RAM.

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.
Une fois les kits réceptionnés et montés, je peux installer la ROM de diagnostic, sur son adaptateur, en lieu et place de la ROM masquée d'origine :
Image

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
Première constatation, l'exécution est interrompue car le système ne dispose pas de RAM exploitable. En étudiant les résultats du test de RAM, je constate qu'il est constitué d'écritures et relectures de valeurs 32 bits, décomposées en opérations 16 bits. La mémoire de 512 ko est en fait implémentée par 16 circuits MM41256 (262144 bits).
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 :
Image

Je retire le composant U18, installe un support et insère une nouvelle RAM MM41256 :
Image

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!
Le diagnostic affiche un menu avec plusieurs options pour tester les différents composants de l'Amiga (ACIA, mémoire, son, lecteur de disquettes...). Je fais quelques tests complémentaires et tout semble correct.
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.
Patrick

Avatar du membre
Carl
Modérateur
Messages : 10661
Enregistré le : 08 avr. 2007 13:21
Localisation : http://www.doledujura.fr
Contact :

Re: [Commodore Amiga 500] remise en route

Message par Carl » 09 nov. 2019 17:35

Bravo Patrick pour cette restauration et le partage de cette expérience de détection et remise en route d’un A500

Carl

Brochiman
Messages : 92
Enregistré le : 02 juin 2019 11:26

Re: [Commodore Amiga 500] remise en route

Message par Brochiman » 09 nov. 2019 23:57

Qu'est ce que j'aimerais savoir faire tout ça... mais j'en suis à des années lumière :lol: :lol:

Avatar du membre
fneck
Site Admin
Messages : 12894
Enregistré le : 01 avr. 2007 12:03
Localisation : Drôme Provençale (26)
Contact :

Re: [Commodore Amiga 500] remise en route

Message par fneck » 10 nov. 2019 10:07

C'est génial ces ROM de diagnostic. Bien joué 8)

Avatar du membre
Totor le Butor
Messages : 1520
Enregistré le : 07 sept. 2011 16:14
Localisation : Paris

Re: [Commodore Amiga 500] remise en route

Message par Totor le Butor » 10 nov. 2019 11:11

Bravo !
J'adore ce type de réparation chirurgicale 8)
Born to bricole
[Rch] Vieux composants électroniques et circuits intégrés toute époque et vieilles cartes .

Patrick
Messages : 974
Enregistré le : 16 mai 2009 09:30
Localisation : Clermont-Ferrand

Re: [Commodore Amiga 500] remise en route

Message par Patrick » 10 nov. 2019 11:42

Merci à tous pour vos commentaires.
J'essaie de documenter ces réparations et de donner des liens vers les outils utilisés pour donner des pistes à ceux qui rencontrent les mêmes problèmes.
J'espère que cela pourra vous être utile (ou pas, je préfère que votre matériel soit fonctionnel :D).
Patrick

DrDestroy
Messages : 3
Enregistré le : 26 juil. 2019 15:02
Localisation : A quelques pas de Montpellier

Re: [Commodore Amiga 500] remise en route

Message par DrDestroy » 10 nov. 2019 12:48

Super, vivement la suite !

Avatar du membre
6502man
Messages : 9539
Enregistré le : 12 avr. 2007 22:46
Localisation : VAR
Contact :

Re: [Commodore Amiga 500] remise en route

Message par 6502man » 10 nov. 2019 20:11

Félicitations pour cette nouvelle réparation :D

Tu es dans ta période restauration massive :lol: :wink:
Phil.

www.6502man.com

To bit or not to bit.
1 or 0.

Répondre