Le programme "MEMO5 chargeur" n'avait pas encore été testé avec un MO6. Je viens de l'essayer avec l'extension mémoire 64K, et effectivement il fonctionne bien. Ces extensions se trouvent de temps en temps sur ebay pour une dizaine d'euros. Attention, quand le vendeur dit qu'il l'a testée il ment effrontément, car l'extension est incompatible avec le BASIC et seul un programme en assembleur peut vérifier le bon fonctionnement de la ram et de la commutation des banques.
Sinon, il y a une solution soft beaucoup plus propre : en modifiant légèrement le programme "MEMO5 chargeur" il peut très facilement utiliser les banques mémoire du MO6 à la place de l'extension mémoire 64k. Il suffit de remplacer la commutation via $A7CB par le mécanisme de changement de banque du MO6 avec le registre $A7E6. A toutes fins utiles voici les sources de MEMO5 Chargeur :
Code : Tout sélectionner
=======================================================
MEMO5 Chargeur - Chargement MEMO5 en extension memoire
=======================================================
10 'Chargement extension memoire MO5
11 DATA ADRESSES,Carnet d'adresses
12 DATA AGENDA,Agenda
13 DATA AIRBUS,Airbus
14 DATA BLITZ!,Blitz!
15 DATA GEMINI,Gémini
16 DATA GLOUTON,Glouton
17 DATA MASS6809,Assembleur 6809
18 DATA MELIMEMO,Mélimémot
19 DATA MELODIA,Mélodia
20 DATA MINER,Miner 2049er
21 DATA MOTUS,Motus
22 DATA PICTOR,Pictor
23 DATA SCRIPTOR,Scriptor
24 DATA TRAP,Trap
25 DATA TRIDI444,Tridi 4x4x4
26 DATA "1:AMEDEE",La maison d'Amédée
27 DATA "1:BARRE",La pêche à la barre
28 DATA "1:GRILLE",Grille
29 DATA FIN
40 CLS:SCREEN7,0,0
41 DEFINTA-Z:CLEAR,&H5E00:DIMP$(26):N=0
42 LOCATE4,1,0:PRINT"CHARGEMENT D'UNE CARTOUCHE MEMO5"
43 LOCATE6,2:PRINT"DANS L'EXTENSION MEMOIRE 64K"
44 BOX(24,4)-(296,27)
50 READNOM$:IFNOM$="FIN"THEN60
51 READLIB$:N=N+1:P$(N)=NOM$
52 LOCATE6,N+4:PRINTCHR$(N+64);" = ";LIB$
53 GOTO50
60 LOCATE3,24:PRINT"Tapez la lettre de la cartouche...";
61 LOCATE0,0
62 A$=INKEY$:IFA$=""THEN62
63 A=ASC(A$)-64
64 IFA<1 THENPLAY"O1DO":GOTO62
65 IFA>N THENPLAY"O1DO":GOTO62
70 CLS:LOCATE1,9,0:PRINT"Chargement de la cartouche ";P$(A);"...";
71 PROG$="860CB7A7CB8E6000108EB000EC81EDA18CA00026F78604B7A7CB6E9FFFFE"
72 X=&H5E00:Y=X
80 FORI=1TOLEN(PROG$)STEP2
81 POKEY,VAL("&H"+MID$(PROG$,I,2)):Y=Y+1:NEXT
90 LOADMP$(A):EXECX
---------------------------------
Langage machine
---------------------------------
5E00 860C LDA #$0C
5E02 B7A7CB STA $A7CB
5E05 8E6000 LDX #$6000
5E08 108EB000 LDY #$B000
5E0C EC81 LDD ,X++ <--
5E0E EDA1 STD ,Y++ |
5E10 8CA000 CMPX #$A000 |
5E13 26F7 BNE $5E0C --
5E15 8604 LDA #$04
5E17 B7A7CB STA $A7CB
5E1A 6E9FFFFE JMP [$FFFE]
Il y a eu, en 2012, une démonstration pour le module TO8SD utilisant ce principe (chargement en RAM du MO6 sans utiliser d'extension mémoire).
Elle s'appelle MO6-MEMO5 et se trouve ici :
http://dcmoto.free.fr/bricolage/to8sd/index.html
Il suffirait de l'adapter au contrôleur CS91-280 avec l'interface SDMOTO.