[Thomson] Extension mémoire 512K pour MO5, MO6, PC128

Placez ici vos trucs et astuces, étalez sans retenue votre savoir-faire et votre science qui va nous permettre de redonner une apparence neuve et fonctionnelle à nos bouzes.

Modérateurs : Papy.G, fneck, Carl

Fool-DupleX
Messages : 2367
Inscription : 06 avr. 2009 12:07

Re: [Thomson] Extension mémoire 512K pour MO5

Message par Fool-DupleX »

Hmm, tu as peut-être raison sur ce point. Je lis dans la doc cofadel :
Le Gate mode Page envoie les signaux [...] CSCART dans le cas où une cartouche est enfichée dans le connecteur MEMO5, démasqué par D5 de A7DD et reconnue par le signal de présence de la cartouche PRCART
Donc il faut dans l'ordre :
1. Désactiver l'émulation $A7CB interne
2. Activer la cartouche en écrivant dans $A7CB
3. Démasquer la cartouche

Je n'arrive pas à mettre la main sur le code du driver du ROMDisk NG pour OS-9/MO6, sinon j'aurais pu facilement vérifier.
Daniel
Messages : 17426
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: [Thomson] Extension mémoire 512K pour MO5

Message par Daniel »

Les mêmes commandes plantent le MO6 avec une cartouche MEMO5 insérée.
Elles ne le plantent pas en l'absence de cartouche ou avec avec l'extension 512K pour MO5.
Par contre, avec l'extension 512K, si on insère la commande POKE&HA7CB,&H0C avant de modifier $A7DD, ça plante. Il faut donc que PRCART soit à 1.

Je crois que cette discussion a été utile, et nous sommes sur la bonne voie.
Je n'ai pas le temps de tester ce soir, mais dès que possible j'écrirai un programme en assembleur pour vérifier.
Daniel
L'obstacle augmente mon ardeur.
Fool-DupleX
Messages : 2367
Inscription : 06 avr. 2009 12:07

Re: [Thomson] Extension mémoire 512K pour MO5

Message par Fool-DupleX »

C'est une réinvention de l'eau tiède. Mais en fouillant dans mes archives, je m'aperçois que je n'ai pas retrouvé d'élément tangible. C'est Jacques qui doit avoir le code du driver pour MO6.

Quoiqu'il en soit, je reste convaincu que ça fonctionne. Pour une raison simple : le ROMDisk NG fonctionne sous OS-9/MO6.
Daniel
Messages : 17426
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: [Thomson] Extension mémoire 512K pour MO5, MO6, PC128

Message par Daniel »

Dans la documentation technique Cofadel du MO6,
le bit 6 de $A7E7 en écriture est marqué "Réservé". Ca ne nous avance pas beaucoup.
a7e7_mo6.png
a7e7_mo6.png (20.1 Kio) Consulté 1403 fois

Dans la documentation technique Cofadel du MO5NR,
le bit 6 de $A7E7 est écrit à 1 pour gestion de la banque RAM de la cartouche par $A7E6 et à 0 pour gestion "Nanoréseau" (donc par $A7CB).
a7e7_mo5nr.png
a7e7_mo5nr.png (18.87 Kio) Consulté 1403 fois
J'ai forcé le bit 6 de $A7E7 à zéro, puis écrit $0C en $A7CB, puis mis à zéro le bit 5 de $A7DD (cartouche visible). Echec.

L'obstacle augmente mon ardeur, c'est écrit dans ma signature. Alors je me suis dit : c'est peut-être le contraire.
J'ai forcé le bit 6 de $A7E7 à zéro, puis écrit $0C en $A7CB, puis mis à un le bit 5 de $A7DD. Echec.

Tant qu'à faire, autant essayer toutes les combinaisons.
J'ai forcé le bit 6 de $A7E7 à un, puis écrit $0C en $A7CB, puis mis à un le bit 5 de $A7DD. Echec.
J'ai forcé le bit 6 de $A7E7 à un, puis écrit $0C en $A7CB, puis mis à zéro le bit 5 de $A7DD. Succès :D

Conclusions :
1) La documentation est grossièrement fausse.
2) L'extension mémoire 512K dans le connecteur MEMO5 fonctionne aussi bien dans le MO6 que dans le MO5.
3) Le MO6, avec 640K de RAM au total, devient l'ordinateur Thomson ayant le plus de RAM.

Merci à FoolDupleX, il avait raison et m'a mis sur la bonne piste.

Code : Tout sélectionner

;---------------------------------
;Initialisations MO6
;---------------------------------
  LDA   $2081          ; lecture du contenu de $A7E7
  ORA   #$40           ; set bit 6 (gestion par $A7CB)
  STA   $2081          ; sauvegarde du contenu de $A7E7
  STA   $A7E7          ; maj $A7E7
  LDA   #$0C           ; pour selection MEMO5 en ecriture 
  STA   $A7CB          ; maj $A7CB
  CLRA                 ; 0 pour maj $A7E4
  STA   $A7E4          ; clear bit 0 de $A7E4
  LDA   $A7E4          ; lecture D7-D4 de $A7DD
  ANDA  #$DF           ; raz bit 5 (cartouche visible)
  ORA   #$07           ; couleur de fond 7
  STA   $A7DD          ; maj $A7DD
[EDIT] Mes tests ne prouvent pas de façon certaine que la documentation est fausse, car ils ont été faits sur MO6 et le bit 6 de $A7E7 n'est pas décrit pour cet ordinateur. Je n'ai pas de MO5NR pour essayer et prouver l'erreur. Une inversion de ce bit lors du passage du MO5NR au MO6 est toutefois très improbable.
Daniel
L'obstacle augmente mon ardeur.
Fool-DupleX
Messages : 2367
Inscription : 06 avr. 2009 12:07

Re: [Thomson] Extension mémoire 512K pour MO5, MO6, PC128

Message par Fool-DupleX »

Grossièrement fausse, je ne dirais pas cela. Difficile à comprendre, certainement.

Le gate-array est le même sur MO6/MO5NR/TO8/8D/9+. Dans chaque cas, ils n'ont simplement pas mentionné les fonctionnalités qui n'ont pas de sens dans le contexte (le MO6 n'était à l'origine pas sensé se connecter en réseau, c'était une machine purement familiale, mais ils ont changé d'avis ensuite).

C'est correct qu'il faut mettre le bit 6 de $A7E7 à 1, car c'est vu du point de vue interne. Au lieu de lire "Nanoréseau" pour le 0, il faudrait plutôt lire "Activation de l'émulation extension 64 Ko", qui est nécessaire par défaut sur le MO5NR, donc 0. Mais on ne veut pas cette fonctionnalité, donc on mettra 1.

C'est à l'évidence correct qu'il faut rendre la cartouche MEMO5 visible sur MO6 et encore évident qu'il faut activer l'extension 64 Ko, de la même manière qu'on l'active sur un MO5. Le tout est de faire les choses dans le bon ordre, pour que le CPU voie le bon mapping mémoire au bon moment ...

J'avais vaguement dans l'idée qu'il fallait trois opérations, mais je ne me souvenais pas du tout que le registre $A7DD est conditionné au prcart, d'où cet ordre très précis des opérations, d'ailleurs.
Daniel
Messages : 17426
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: [Thomson] Extension mémoire 512K pour MO5, MO6, PC128

Message par Daniel »

Fool-DupleX a écrit :Au lieu de lire "Nanoréseau" pour le 0, il faudrait plutôt lire "Activation de l'émulation extension 64 Ko"
Encore une fois tu as raison.
Nanoréseau veut dire "Remplacement de la cartouche nanoréseau par la RAM interne du MO6". A la première lecture on imagine plutôt le contraire.
La bonne interprétation est clairement indiquée cinq pages plus loin, et je ne l'avais pas lue :oops:
Cofadel a écrit :Le Gate Mode Page (IW18) pilote l'émulation de la cartouche NANORESEAU (4 pages de 16 Ko) par programmation à 0 du bit D6 de A7E7. Dans ce cas il y a transposition des bits D0 à D3 du registre A7CB (utilisé pour la programmation en mode NANORESEAU) dans le registre A7E6 dont le bit D2 a été forcé à 1.
Daniel
L'obstacle augmente mon ardeur.
Daniel
Messages : 17426
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: [Thomson] Extension mémoire 512K pour MO5, MO6, PC128

Message par Daniel »

Pour permettre l'utilisation de l'extension mémoire 512K comme RAMDISK, j'ai développé une nouvelle version de SDDRIVE.

Pour les TO il n'y a strictement aucune différence avec l'ancienne.

Pour les MO, une unité est dédiée au RAMDISK.
L'unité 4: est refusée par tous les DOS MO, même celui du BASIC 128 du MO6. Elle est remplacée, pour les MO, par l'unité 3:.
A ma connaissance l'unité 3: n'est utilisée par aucun programme commercial, et probablement par aucun programme amateur. Ce n'est donc pas gênant, sauf qu'il n'est plus possible d'utiliser l'unité 3: d'un fichier .sd avec un ordinateur MO. Cette contrainte est très peu pénalisante.

Pour utiliser ce RAMDISK avec le MO5 et le MO5E il suffit de connecter l'extension mémoire 512K, il n'y a rien de plus à faire.
Avec le MO5NR, le MO6 et le PC128 il faut en plus initialiser les registres pour accéder à l'extension mémoire :

Code : Tout sélectionner

;---------------------------------
;Initialisations MO6
;---------------------------------
  LDA   $2081          ; lecture du contenu de $A7E7
  ORA   #$40           ; set bit 6 (gestion par $A7CB)
  STA   $2081          ; sauvegarde du contenu de $A7E7
  STA   $A7E7          ; maj $A7E7
  LDA   #$0C           ; pour selection MEMO5 en ecriture 
  STA   $A7CB          ; maj $A7CB
  CLRA                 ; 0 pour maj $A7E4
  STA   $A7E4          ; clear bit 0 de $A7E4
  LDA   $A7E4          ; lecture D7-D4 de $A7DD
  ANDA  #$DF           ; raz bit 5 (cartouche visible)
  ORA   #$07           ; couleur de fond 7
  STA   $A7DD          ; maj $A7DD
Cette nouvelle version de SDDRIVE a été testée en partie et semble bien fonctionner, mais elle reste expérimentale.
Je la tiens à disposition des éventuels développeurs qui voudraient utiliser cette nouvelle ressource pour accélérer leurs programmes.
Daniel
L'obstacle augmente mon ardeur.
dinoprodest
Messages : 312
Inscription : 01 févr. 2020 20:31
Localisation : Rome - Italy

Re: [Thomson] Extension mémoire 512K pour MO5, MO6, PC128

Message par dinoprodest »

Cela paraît bien !!!!! la mémoire d'extension est-elle également visible depuis basic via l'instruction BANK ou uniquement via ASSEMBLER ?
Daniel
Messages : 17426
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: [Thomson] Extension mémoire 512K pour MO5, MO6, PC128

Message par Daniel »

L'extension mémoire 512K est dans la même plage d'adresses que le BASIC, on ne peut donc pas y accéder directement en BASIC.
Le registre $A7CB est utilisé pour la sélectionner et définir le numéro de banque. Il faut le modifier en assembleur, et quand l'extension mémoire est sélectionnée on n'a plus accès au BASIC..

Par contre, avec la fonction RAMDISK ajoutée à la version spéciale de SDDRIVE, l'extension mémoire est vue comme une unité de disquette (unité 3:) et peut être utilisée en BASIC avec les commandes classiques d'accès à la disquette : DSKINI, DEVICE, DIR, LOAD, SAVE, BACKUP etc.
Daniel
L'obstacle augmente mon ardeur.
dinoprodest
Messages : 312
Inscription : 01 févr. 2020 20:31
Localisation : Rome - Italy

Re: [Thomson] Extension mémoire 512K pour MO5, MO6, PC128

Message par dinoprodest »

tant qu'on y est, je présente mon extension de 512k à 16k pages adressables avec des écritures de ffe0 à ffff. Il vient de ma conception de cartouche flash 512k. J'ai changé le flash en ram. :D
Pièces jointes
FB_IMG_1690026690544.jpg
FB_IMG_1690026690544.jpg (166.77 Kio) Consulté 1162 fois
Daniel
Messages : 17426
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: [Thomson] Extension mémoire 512K pour MO5, MO6, PC128

Message par Daniel »

Pour les membres du forum qui construisent l'extension mémoire 512K, voici les équations des deux GAL :

U3 = GAL16V8 à gauche (EXT512K A7CB)

Code : Tout sélectionner

Name     EXT512K A7CB ;
PartNo   00 ;
Date     17/05/2023 ;
Revision 01 ;
Designer dc ;
Company  dcmoto ;
Assembly None ;
Location  ;
Device  g16v8a ;

/***************** INPUT PINS *********************/
PIN  1 = A7;    /* Adresse A7                     */ 
PIN  2 = A8;    /* Adresse A8                     */ 
PIN  3 = A9;    /* Adresse A9                     */ 
PIN  4 = A10;   /* Adresse A10                    */ 
PIN  5 = A11;   /* Adresse A11                    */ 
PIN  6 = A13;   /* Adresse A13                    */ 
PIN  7 = A12;   /* Adresse A12                    */ 
PIN  8 = A15;   /* Adresse A15                    */ 
PIN  9 = A14;   /* Adresse A14                    */ 
PIN 11 = A6;    /* Adresse A6                     */ 
PIN 12 = A5;    /* Adresse A5                     */ 
PIN 13 = A4;    /* Adresse A4                     */ 
PIN 14 = A3;    /* Adresse A3                     */ 
PIN 17 = A2;    /* Adresse A2                     */ 
PIN 18 = A1;    /* Adresse A1                     */ 
PIN 19 = A0;    /* Adresse A0                     */ 

/***************** OUTPUT PINS ********************/
PIN 16  = A7CB; /* Adresse A7CB                   */ 

/***************** LOGIC EQUATIONS ****************/
A7CB = A0 & A1 & !A2 & A3 & !A4 & !A5 & A6 & A7 & A8 & A9 & A10 & !A11 & !A12 & A13 & !A14 & A15 ;

U4 = GAL16V8 au centre (EXT512K LOGIC)

Code : Tout sélectionner

Name     EXT512K LOGIC ;
PartNo   00 ;
Date     27/05/2023 ;
Revision 01 ;
Designer dc ;
Company  dcmoto ;
Assembly None ;
Location  ;
Device  g16v8a ;

/***************** INPUT PINS ************************/
PIN  5 = A7CB;  /* Adresse $A7CB (0=non 1=oui)       */ 
PIN  7 = CSC;   /* Selection cartouche (0=non 1=oui) */ 
PIN  8 = E;     /* Signal E (0 ou 1)                 */ 
PIN  9 = RW;    /* 0=ecriture 1=lecture              */ 
PIN 11 = RESET; /* 0=initialisation 1=tension stable */ 
PIN 13  = B3;   /* b3 de $A7CB  0=lecture seule      */ 

/***************** OUTPUT PINS ***********************/
PIN 12  = CLK;  /* Clock 74LS273                     */ 
PIN 16  = !WE;  /* /write enable RAM                 */ 
PIN 17  = !OE;  /* /output enabled RAM               */ 
PIN 18  = !CS;  /* /chip select RAM                  */ 
PIN 19  = CLR;  /* Clear 74LS273                     */ 

/***************** LOGIC EQUATIONS *******************/
CLK = A7CB & !RW & E; 
WE = !RW & B3;
OE = !CSC & E & RW;
CS = !CSC & E;
CLR = RESET;

Fichiers .jed pour les deux GAL :
gal_jed.zip
(912 octets) Téléchargé 27 fois
Daniel
L'obstacle augmente mon ardeur.
Brochiman
Messages : 3545
Inscription : 02 juin 2019 11:26
Localisation : Angers

Re: [Thomson] Extension mémoire 512K pour MO5, MO6, PC128

Message par Brochiman »

Merci Daniel 😁
Brochiman
Messages : 3545
Inscription : 02 juin 2019 11:26
Localisation : Angers

Re: [Thomson] Extension mémoire 512K pour MO5, MO6, PC128

Message par Brochiman »

Hello,

Voici un petit boitier réalisé par stouf49 (Merci a lui 🙂) pour l'extension 512K MO5. Celui-ci reprend le design du boitier qu'il avait déjà dessiné pour la Multirom de 6502man.
IMG20230930124947.jpg
IMG20230930124947.jpg (105.27 Kio) Consulté 539 fois
IMG20230930124954.jpg
IMG20230930124954.jpg (114.93 Kio) Consulté 539 fois
IMG20230930124312.jpg
IMG20230930124312.jpg (170.84 Kio) Consulté 539 fois
IMG20230930124320.jpg
IMG20230930124320.jpg (154.79 Kio) Consulté 539 fois
Boitier.rar
(56.37 Kio) Téléchargé 26 fois
Daniel
Messages : 17426
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: [Thomson] Extension mémoire 512K pour MO5, MO6, PC128

Message par Daniel »

[HS]
Sur la dernière photo je vois un SDDRIVE avec la version 2021-10 du circuit imprimé. Cet exemplaire est extrêmement rare, car la version 2021-10 n'a jamais été commercialisée. Dans quelques années elle vaudra une fortune. Il en existe à ma connaissance trois exemplaires, c'est moins que les Apple 1 :wink:
[/HS]

Très beau boîtier pour l'extension mémoire ! Merci à stouf49. Il me reste à trouver une imprimante 3D...
Daniel
L'obstacle augmente mon ardeur.
Brochiman
Messages : 3545
Inscription : 02 juin 2019 11:26
Localisation : Angers

Re: [Thomson] Extension mémoire 512K pour MO5, MO6, PC128

Message par Brochiman »

En réponse au HS de Daniel: Tu avais mis les fichiers a disposition à l'époque, je m'étais fabriqué une série de 10 sddrive (début 2022), 9 sont chez moi pour mes Thomson et j'en ai offert un à stouf49 😁😁😁.
Répondre