Pour tester la mémoire construite avec les DRAMs 4116 (RAMs dynamiques), nous avons besoin d'écrire et de relire plusieurs fois entre les adresses 02EC et BFFF, c'est pourquoi nous avons implanté le programme de test dans la pile mémoire de l'adresse F800 à l'adresse F87F. Cette zone spécifique est supportée par des SRAMs 2111 (RAMs statiques). Notre hypothèse est donc que ces SRAMs 2111 fonctionnent parfaitement !

Utiliser la pile système pour faire tourner ce programme, permet de tester les mémoires DRAMs, sans risquer d'écraser le programme de test lui-même.

A la fin du programme, si tout se passe bien il affichera "OK". Mais il se peut aussi qu'il affiche "OK" brièvement avant un plantage général, par exemple si la zone mémoire non testée, celle qui va de 0000 à l'adresse 02EB est défaillante, ou pour d'autres raisons.

Ne soyez pas très surpris si votre DAI se plante après le test "OK", il se peut fort bien que la mémoire soit bonne et qu'un autre problème surgisse au niveau d'une des ROMs (mauvais contact ou autre...).

Enfin, le test mémoire est constitué de lectures et de relectures, mais un test mémoire digne de ce nom devrait implémenter des stratégies plus sophistiquée comme celles que les industriels construisant les composantes 4116 appliquaient à l'époque.

Ce programme ne fait  que 128 octets, l'entrer directement en mémoire ne constitue pas un problème mais il faut être très attentif à ce que l'on tape  (il y en a pour 10 à 15 minutes environ) Voici comment faire : entrez le texte suivant et lisez les explications jusqu’au bout avant de commencer quoi que ce soit (à moins que vous ne maîtrisiez le fonctionnement du mode UT).

F800 F5 C5 D5 E5 F3 06 00 21 FF BF EB 21 EC 02 70 CD

F810 69 F8 23 C2 0E F8 21 EC 02 78 AE C2 3B F8 CD 69

F820 F8 23 C2 19 F8 04 3E FF A8 C2 07 F8 CD 5A F8 21

F830 6F F8 CD 32 DB E1 D1 C1 F1 FB C9 CD 5A F8 E5 21

F840 72 F8 CD 32 DB E1 3E 00 06 00 4C 55 E7 12 CD 53

F850 C6 21 E3 00 CD 32 DB C3 35 F8 3E FF EF 18 3E 0C

F860 CD 95 D6 3E 0D CD 95 D6 C9 7A AC C0 7B AD C9 02

F870 4F 4B 0D 50 42 20 41 44 52 45 53 53 45 20 3A 20

Vous avez remarqué les 4 octets en rouge, ils représentent l'adresse de départ du test (02EC), quant aux 2 octets verts, ils représentent l'adresse de fin du test (BFFF).Si vous souhaitez limiter la plage de test, il vous suffira de modifier ces valeurs. Voici maintenant la procédure à suivre :

Allumez le DAI + touche Return

Tapez UT+ touche Return. Ceci vous fait entrer dans le moniteur Utility

Maintenant il faut entrer chacun des octets. Pour cela, je vous conseille vivement de le faire ligne par ligne par paquet de 16 octets. L’adresse du début de chaque ligne est en bleu.

Vous allez utiliser la commande S (Substitute). Il faut taper S immédiatement suivi de l’adresse (sans blanc) suivi immédiatement de l’appui sur la barre d’espace. Pour commencer à entrer le premier octet, il faut taper :

SF800

Et tapez tout de suite la barre d’espace sans faire return, le premier octet en F800 va apparaître, suivi d’un tiret. Saisissez ensuite

F5

suivi immédiatement de la barre d’espace et ainsi de suite. Quand vous serez arrivé au bout de la ligne (CD) vous appuierez sur la flèche gauche. Vous pourrez alors débuter la deuxième ligne de la même façon et ainsi de suite jusqu’à la ligne débutant en F870.

Surtout, tapez bien les 2 chiffres de chaque octet. Même quand vous voyez 00, il faut taper les 2 zéros, sinon vous aurez des problèmes...

Une fois que toutes les lignes seront entrées, vous pourrez vérifier l’ensemble en listant avec la commande suivante :

DF800 F87F

Suivi de Return. Essayez de contrôler colonne par colonne avec ce qu’il y a sur le papier. Peut-être avez-vous envie de sauver le programme sur cassette ? Dans ce cas, si votre magnétophone est prêt, mettez le en position enregistrement et entrez la commande suivante

WF800 F87F testmem

Suivi de return et si tout va bien le DAI vous demandera d’appuyer sur la touche espace après avoir mis le magnétophone en position d'enregistrement. Pendant que vous y êtes, faites en 2 ou 3 copies c’est plus sûr…

Il est l'heure de sortir de l’UT et pour cela, rien de plus facile, il suffit de taper

B

Vous êtes prêt à effectuer le test, il ne vous reste qu'à entrer la commande suivante :

CALLM #F800

Et attendre... Quand la mémoire est bonne, le test dure un bon quart d'heure !  Il y a 12 343 020 écritures et lectures. Si un problème de mémoire est détecté, le programme s’arrêtera en  donnant l’adresse de la première mémoire en défaut.

Si la mémoire est bonne, ça finira par un écran avec le mot « OK »... Enfin si vous arrivez à le lire...

A vous de jouer ! Pour les curieux, voici le code source du programme :

N°ligne Adresse Code généré Labels Mnémonique
001
002

004
005
006
007
008
009
010
011
012
013
014
015
016
017
018
019
020
021
022
023
024
025
026
027
028
029
030
031
032
033
034
035
036
037
038
039
040
041
042
043
044
045
046
047
048
049
050
051
052
053
054
055
056
057
058
059
060
061
062
063
064
065
066
067
068
069
070
 



F800
F801
F802
F803
F804
F805
F807
F80A
F80B
F80E
F80F
F812
F813
F816
F819
F81A
F81B
F81E
F821
F822
F825
F826
F828
F829
F82C
F82F
F832
F835
F836
F837
F838
F839
F83A
F83B
F83E
F83F
F842
F845
F846
F848
F84A
F84B
F84C
F84D
F84E
F851
F854
F857
F85A
F85C
F85D
F85E
F860
F863
F865
F868
F869
F86A
F86B
F86C
F86D
F86E
F86F
F870
F872
F873
F880
 


F5
C5
D5
E5
F3
0600
21FFBF
EB
21EC02
70
CD69F8
23
C20EF8
21EC02
78
AE
C23BF8
CD69F8
23
C219F8
04
3EFF
A8
C207F8
CD5AF8
216FF8
CD32DB
E1
D1
C1
F1
FB
C9
CD5AF8
E5
2172F8
CD32DB
E1
3E00
0600
4C
55
E7
12
CD53C6
21E300
CD32DB
C335F8
3EFF
EF
18
3E0C
CD95D6
3E0D
CD95D6
C9
7A
AC
C0
7B
AD
C9
02
4F4B
0D
504220
 
ADDEB
ADFIN
ORG






SUIV

ECR
ECR1




CTRL












FIN





ERREUR














CLS







TESTFI





OK

PB


 
EQU :02EC
EQU :BFFF
:F800
PUSH PSW
PUSH B
PUSH D
PUSH H
DI
MVI B,:0
LXI H,ADFIN
XCHG
LXI H,ADDEB
MOV M,B
CALL TESTFI
INX H
JNZ ECR1
LXI H,ADDEB
MOV A,B
XRA M
JNZ ERREUR
CALL TESTFI
INX H
JNZ CTRL
INR B
MVI A,:FF
XRA B
JNZ SUIV
CALL CLS
LXI H,OK
CALL :DB32
POP H
POP D
POP B
POP PSW
EI
RET
CALL CLS
PUSH H
LXI H,PB
CALL :DB32
POP H
MVI A,:0
MVI B,0
MOV C,H
MOV D,L
RST :4
DATA :12
 CALL :C653
LXI H,:E3
CALL :DB32
JMP FIN
MVI A,:FF
RST 5
DATA :18
MVI A,:0C
CALL :D695
MVI A,:0D
CALL :D695
RET
MOV A,D
XRA H
RNZ
MOV A,E
XRA L
RET
DATA 2
ASC 'OK'
DATA 13
ASC 'PB ADRESSE : '
END
 

Copyright 2004-2023 © Bruno VIVIEN tous droits réservés.