[Thomson] Extension mémoire 512K pour MO5, MO6, PC128
Modérateurs : Papy.G, fneck, Carl
[Thomson] Extension mémoire 512K pour MO5, MO6, PC128
Parallèlement à nos essais de construction d'une extension mémoire 64K (voir viewtopic.php?f=1&t=5171 ),
un autre amateur de MO5 a conçu une extension mémoire 512K. En enlevant les jumpers elle est compatible avec l'extension 64K.
Lien Github : https://github.com/6502addict/mo5-512k
Circuit imprimé : https://oshpark.com/shared_projects/e0GleW5L
La commutation des banques de 4K est toujours assurée par le registre $A7CB.
Le numéro de banque est donné par les bits 6, 5, 4, 1, 0
Les bits 2 et 3 ont le même rôle que dans l'extension 64K : Autorisation écriture et masquage de la ROM BASIC
Je prépare une nouvelle version de mon programme de test pour contrôler les 512K.
un autre amateur de MO5 a conçu une extension mémoire 512K. En enlevant les jumpers elle est compatible avec l'extension 64K.
Lien Github : https://github.com/6502addict/mo5-512k
Circuit imprimé : https://oshpark.com/shared_projects/e0GleW5L
La commutation des banques de 4K est toujours assurée par le registre $A7CB.
Le numéro de banque est donné par les bits 6, 5, 4, 1, 0
Les bits 2 et 3 ont le même rôle que dans l'extension 64K : Autorisation écriture et masquage de la ROM BASIC
Je prépare une nouvelle version de mon programme de test pour contrôler les 512K.
Dernière modification par Daniel le 19 juil. 2023 11:33, modifié 1 fois.
Daniel
L'obstacle augmente mon ardeur.
L'obstacle augmente mon ardeur.
Re: [Thomson] Extension mémoire 512K pour MO5
Le décodage d'adresse pour sélectionner l'adresse $A7CB est effectué directement à partir du bus d'adresses, sans utiliser le signal /$A7Cx.
Le fil extérieur n'est plus nécessaire.
Le fil extérieur n'est plus nécessaire.
Daniel
L'obstacle augmente mon ardeur.
L'obstacle augmente mon ardeur.
Re: [Thomson] Extension mémoire 512K pour MO5
Avec l'extension 512K le MO5 devient la machine Thomson la plus puissante : 560K de RAM contre 512K pour le TO9+
Cette extension permet de développer des jeux et des démonstrations beaucoup plus riches.
D'ores et déjà elle peut être utilisée pour faire tourner la version d'OS/9 portée sur MO5 par jb_jb_fr.
Cette extension permet de développer des jeux et des démonstrations beaucoup plus riches.
D'ores et déjà elle peut être utilisée pour faire tourner la version d'OS/9 portée sur MO5 par jb_jb_fr.
Daniel
L'obstacle augmente mon ardeur.
L'obstacle augmente mon ardeur.
Re: [Thomson] Extension mémoire 512K pour MO5
Rien que ça ! ,hum ça se laisse tenter quand mème du coup ! ,on pourrait faire pareil sur to8 ? Genre 1 MO ?
Re: [Thomson] Extension mémoire 512K pour MO5
Tout est possible, mais ça ne sert à rien si personne ne l'exploite.
Avec SDTREAM on peut déjà mettre 32 Go de mémoire séquentielle sur MO5.
C'est 64 000 000 fois plus que le TO9+, mais les utilisateurs sont encore peu nombreux.
Avec SDTREAM on peut déjà mettre 32 Go de mémoire séquentielle sur MO5.
C'est 64 000 000 fois plus que le TO9+, mais les utilisateurs sont encore peu nombreux.
Daniel
L'obstacle augmente mon ardeur.
L'obstacle augmente mon ardeur.
Re: [Thomson] Extension mémoire 512K pour MO5
C'est pour ça que je disais pour l'utilisateur lambda ça n'a pas un grand intérêt même 512 ko. Peut-être que des développeurs vont nous sortir un jeux type "mission lift off" pour MO5 !
-
- Messages : 7987
- Inscription : 18 sept. 2010 12:08
- Localisation : Brest et parfois les Flandres
Re: [Thomson] Extension mémoire 512K pour MO5
Oh tu sais la ram fait pas tout. Les modes graphiques manquants, la palette absente, l'absence de DAC font que c'est très difficile, mais va savoir ce que l'avenir nous réserve...
Samuel.
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
Re: [Thomson] Extension mémoire 512K pour MO5
Mon MO5 n'en croit pas ses oreilles !
Il est vrai que l'image est moins précise que sur TO8.
Par contre il y a un son d'enfer et la synthèse vocale à la fin.
Ça ne tiendra pas dans 512K de RAM, il faudra concevoir une extension mémoire de 4Mo...
Chaque nouvelle démo de __sam__ est une bonne surprise
Il est vrai que l'image est moins précise que sur TO8.
Par contre il y a un son d'enfer et la synthèse vocale à la fin.
Ça ne tiendra pas dans 512K de RAM, il faudra concevoir une extension mémoire de 4Mo...
Chaque nouvelle démo de __sam__ est une bonne surprise
Daniel
L'obstacle augmente mon ardeur.
L'obstacle augmente mon ardeur.
-
- Messages : 7987
- Inscription : 18 sept. 2010 12:08
- Localisation : Brest et parfois les Flandres
Re: [Thomson] Extension mémoire 512K pour MO5
Cela dit, vouloir utiliser un logiciel utilisant les 512ko de ram sur un MO5 c'est se montrer patient. En effet cela représente 4 millions de bits environ, or le lecteur de cassette (réel ou simulée par SDLep) charge à la louche 1100 bits utiles/secondes (on simplifie les bits de start/stop/checksum tout ca). Il faudra donc pas loin de 3600 secondes, soit 1h pour charger toute la ram depuis le lecteur de masse standard du MO5.
Je disais patient, très patient, mais surtout très téméraire celui qui espère dérouler une face de cassette 120mins non-stop sans rencontrer d'I/O error....et tout ca pour jouer à peine 50 secondes de son mono à 10khz Autant utiliser la cassette pour metre dessus 120mins de bonne musique hifi et stéréo.
Je disais patient, très patient, mais surtout très téméraire celui qui espère dérouler une face de cassette 120mins non-stop sans rencontrer d'I/O error....et tout ca pour jouer à peine 50 secondes de son mono à 10khz Autant utiliser la cassette pour metre dessus 120mins de bonne musique hifi et stéréo.
Dernière modification par __sam__ le 15 janv. 2021 08:14, modifié 1 fois.
Samuel.
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
Re: [Thomson] Extension mémoire 512K pour MO5
mais on est patient depuis notre enfance vu qu'on avait des TO7/70 a cassette à la maison, tu mettais un jeu a chargé et tu avais le temps d'aller te doucher et t'habiller et quand tu revenais voir au bout de 30 mins pensant jouer du joystick tu avais un joli LOAD ERROR et te voilà repartit pour 30 mins
Re: [Thomson] Extension mémoire 512K pour MO5
Pour tester l'extension mémoire 512K j'ai fait un nouveau programme.
Il peut aussi tester l'extension 64K, le choix 64K/512K est possible avant de lancer le test.
http://dcmoto.free.fr/programmes/test512kmo/index.html
Il peut aussi tester l'extension 64K, le choix 64K/512K est possible avant de lancer le test.
http://dcmoto.free.fr/programmes/test512kmo/index.html
Code : Tout sélectionner
SETLI 132
;**************************************************;
; T E S T 5 1 2 K - M O 5 ;
; (c) 2021 - Daniel Coulom ;
; http://dcmoto.free.fr/ ;
;--------------------------------------------------;
; Ce code est distribue gratuitement dans l'espoir ;
; qu'il sera utile, mais sans aucune garantie et ;
; sans engager la responsabilité de l'auteur. ;
; Vous pouvez l' utiliser, le modifier et le ;
; diffuser librement, en conservant cette licence ;
; et les références de l'auteur dans toutes les ;
; copies. L'exploitation commerciale est interdite.;
;**************************************************;
; Ce programme teste l'extension memoire du MO5.
; La taille (64K ou 512K) peut être choisie.
; 1) Tester tous les bits (valeurs 0 et 1)
; 2) Ecrire des sequences de 255 octets différents
; 3) Verifier que les memes sequences sont relues
;**************************************************;
; Version 2021.01.15 ;
;**************************************************;
; Historique
; 2021.01.15 Correction anomalie affichage $A7CB
; 2021.01.14 Selection de 64K ou 512K
; 2021.01.13 Premiere version operationnelle
;---------------------------------
;Initialisations
;---------------------------------
ORG $9000
PSHS U,Y,X,DP,B,A,CC ; empilage des registres
ORCC #$50 ; desactive les interruptions
CLRA ; A=0 (64K)
STA OPTION ; option 64K par defaut
;---------------------------------
;Selection de 64K ou 512K
;---------------------------------
SEL
LDY #TITRE ; message de titre
LBSR WSTR ; affichage message
LDY #T64K ; message extension 64K
SEL1
SWI ; appel fonction
FCB $0A ; lecture clavier
CMPB #$30 ; test'0'
BEQ TESTB0 ; selection 64K
CMPB #$31 ; test'1'
BNE SEL1 ; recommencer
LDA #$01 ; A=1 (512K)
STA OPTION ; option 512K
LDY #T512K ; message extension 512K
;---------------------------------
;Test de chaque bit
;---------------------------------
TESTB0
LBSR WSTR ; affichage message
LDY #TESTB ; message "Test des bits"
LBSR WSTR ; affichage message
LDA #$0C ; initialisation A
TESTB1
LDY #POINT ; point
LBSR WSTR ; affichage message
STA $A7CB ; selection de la banque
BSR TBITS ; test des bits de la banque
BNE ERBITS ; erreur detectee
INCA ; banque suivante
BITA #$0F ; test des quatre bits de poids faible
BNE TESTB1 ; passage a la banque suivante
TST OPTION ; test de l'option 64K/512K
BEQ TESTB2 ; arret du test pour 64K
ORA #$0C ; restauration des bits 2 et 3
BPL TESTB1 ; passage a la banque suivante
TESTB2
LDY #NOERR ; message "Aucune erreur"
LBSR WSTR ; affichage message
BRA TESTA0 ; test des adresses
;---------------------------------
;Erreur detectee sur les bits
;---------------------------------
ERBITS
LDY #ERR1 ; message "Erreur sur les bits"
LBSR WSTR ; affichage message
BRA RETOUR ; abandon du programme
;---------------------------------------
;Test des bits d'une banque memoire
;---------------------------------------
TBITS
LDX #$B000 ; adresse de debut de la banque
LDB #$55 ; valeur a ecrire en RAM
TBIT1
COMB ; inversion des bits
STB ,X ; ecriture
CMPB ,X ; lecture
BNE TBIT2 ; valeur lue incorrecte
COMB ; inversion des bits
STB ,X ; ecriture
CMPB ,X ; lecture
BNE TBIT2 ; valeur lue incorrecte
CMPX #$EFFF ; adresse de fin de la banque
BEQ TBIT2 ; fin du controle
LEAX 1,X ; adresse suivante
BRA TBIT1 ; controle adresse suivante
TBIT2
RTS
;---------------------------------
;Test de toutes les adresses
;---------------------------------
TESTA0
LDD #$0C00 ; initialisation A et B
LDY #WSEQU ; message "Ecriture sequence"
BSR WSTR ; affichage message
TESTA1
LDY #POINT ; point
BSR WSTR ; affichage message
STA $A7CB ; selection de la banque
BSR WRITE ; ecriture des sequences dans la banque
INCA ; banque suivante
BITA #$0F ; test des quatre bits de poids faible
BNE TESTA1 ; passage a la banque suivante
TST OPTION ; test de l'option 64K/512K
BEQ TESTA2 ; arret du test pour 64K
ORA #$0C ; restauration des bits 2 et 3
BPL TESTA1 ; passage a la banque suivante
TESTA2
LDD #$0C00 ; initialisation A et B
LDY #RSEQU ; message "Lecture sequence"
BSR WSTR ; affichage message
TESTA3
LDY #POINT ; point
BSR WSTR ; affichage message
STA $A7CB ; selection de la banque
BSR CTRL ; controle des sequences dans la banque
BNE ERADD ; erreur detectee
INCA ; banque suivante
BITA #$0F ; test des quatre bits de poids faible
BNE TESTA3 ; passage a la banque suivante
TST OPTION ; test de l'option 64K/512K
BEQ TESTA4 ; arret du test pour 64K
ORA #$0C ; restauration des bits 2 et 3
BPL TESTA3 ; passage a la banque suivante
LDA #$80 ; pour obtenir $7F apres DECA
TESTA4
DECA ; derniere valeur $A7CB
LDY #NOERR ; message "Aucune erreur"
BSR WSTR ; affichage message
BRA RETOUR ; retour
;---------------------------------
;Erreur adresses
;---------------------------------
ERADD
LDY #ERR2 ; message "Erreur adresses"
BSR WSTR ; affichage message
;---------------------------------
;Retour au BASIC
;---------------------------------
RETOUR
PSHS A ; sauvegarde valeur $A7CB
LDY #ADDRESS ; message "Adresse: "
BSR WSTR ; affichage message
BSR HEXVX ; affichage valeur hexa de X
LDY #BANK ; message " $A7CB= "
BSR WSTR ; affichage message
PULS A ; valeur de $A7CB
BSR HEXVA ; affichage valeur hexa de A
LDY #FINTEST ; message "Fin du test"
BSR WSTR ; affichage message
CLR $A7CB ; selection rom Basic
PULS CC,A,B,DP,X,Y,U,PC ; retour
;------------------------------------------------------
; AFFICHAGE CHAINE TERMINEE PAR ZERO (Adresse dans Y)
;------------------------------------------------------
WSTR
PSHS X,B,A ; sauvegarde registres
WSTR1
LDB ,Y+ ; caractere a ecrire
BEQ WSTR9 ; fin de la chainee
SWI ; appel fonction
FCB $02 ; $02 = envoi caractere
BRA WSTR1 ; caractere suivant
WSTR9
PULS A,B,X,PC ; retour
;-----------------------------------------------
;Ecriture des sequences dans une banque memoire
;-----------------------------------------------
WRITE
LDX #$B000 ; adresse de debut de la banque
WRITE1
INCB ; valeur suivante de $01 a $FE
CMPB #$FF ; fin de sequence
BNE WRITE2 ; ecrire la valeur
CLRB ; recommencer a zero
WRITE2
STB ,X+ ; ecriture
CMPX #$F000 ; adresse de fin de la banque
BNE WRITE1 ; ecriture adresse suivante
WRITE3
RTS
;-----------------------------------------------
;Controle des sequences dans une banque memoire
;-----------------------------------------------
CTRL
LDX #$B000 ; adresse de debut de la banque
CTRL1
INCB ; valeur suivante de $01 a $FE
CMPB #$FF ; fin de sequence
BNE CTRL2 ; controler la valeur
CLRB ; recommencer a zero
CTRL2
CMPB ,X ; comparaison
BNE CTRL3 ; valeur lue incorrecte
CMPX #$EFFF ; adresse de fin de la banque
BEQ CTRL3 ; controle adresse suivante
LEAX 1,X ; adresse suivante
BRA CTRL1 ; controle adresse suivante
CTRL3
RTS
;------------------------------------------------------
; Affichage valeur hexadecimale
;------------------------------------------------------
DISPLAYHEXA
LDY #HEXA ; valeur hexa
BSR WSTR ; affichage valeur hexa
RTS ; retour
;------------------------------------------------------
; CALCUL VALEUR HEXADECIMALE DE X
;------------------------------------------------------
HEXVX
TFR X,D ; transfert dans D
LSRA ; decalage droite
LSRA ; decalage droite
LSRA ; decalage droite
LSRA ; decalage droite
BSR HCAR ; calcul caractere
STA HEXA+1 ; stockage premier caractere
LSRB ; decalage droite
LSRB ; decalage droite
LSRB ; decalage droite
LSRB ; decalage droite
TFR B,A ; transfert dans A
BSR HCAR ; calcul caractere
STA HEXA+3 ; stockage troisieme caractere
TFR X,D ; transfert dans D
ANDA #$0F ; isole 4 bits poids faible
ANDB #$0F ; isole 4 bits poids faible
BSR HCAR ; calcul caractere
STA HEXA+2 ; stockage deuxieme caractere
TFR B,A ; transfert dans A
BSR HCAR ; calcul caractere
STA HEXA+4 ; stockage quatrieme caractere
BRA DISPLAYHEXA ; affichage de la valeur hexadecimale
;------------------------------------------------------
; CALCUL VALEUR HEXADECIMALE DE A
;------------------------------------------------------
HEXVA
PSHS A ; sauvegarde de A
LSRA ; decalage droite
LSRA ; decalage droite
LSRA ; decalage droite
LSRA ; decalage droite
BSR HCAR ; calcul caractere
STA HEXA+1 ; stockage premier caractere
PULS A ; restauration de A
ANDA #$0F ; isole 4 bits poids faible
BSR HCAR ; calcul caractere
STA HEXA+2 ; stockage deuxieme caractere
LDA #$20 ; espace
STA HEXA+3 ; stockage troisieme caractere
STA HEXA+4 ; stockage quatrieme caractere
BRA DISPLAYHEXA ; affichage de la valeur hexadecimale
;------------------------------------------------------
; CALCUL CARACTERE HEXADECIMAL (A)
;------------------------------------------------------
HCAR
CMPA #$0A ; test lettre
BLT HCAR1 ; chiffre
ADDA #$07 ; ajout de 7 pour les lettres
HCAR1
ADDA #$30 ; ajout de $30 pour valeur ASCII
RTS ; retour
;------------------------------------------------------
; Messages a afficher
;------------------------------------------------------
TITRE
FCB $0C ; effacement ecran
FCB $1B,$20,$40 ; couleur noir
FCB $1B,$20,$57 ; fond blanc
FCB $1B,$67 ; bordure blanche
FCC " -------------------------------"
FCB $0D,$0A
FCC "| Test extension memoire du MO5 |"
FCB $0D,$0A
FCC " -------------------------------"
FCB $0D,$0A,$0A
FCC "Tapez 0 (64K) ou 1 (512K)"
FCB $00
T64K
FCB $0D
FCC "Test de l'extension 64K "
FCB $00
T512K
FCB $0D
FCC "Test de l'extension 512K "
FCB $00
TESTB
FCB $0D,$0A,$0A
FCC "1) Test de chaque bit (0 et 1)"
FCB $0D,$0A,$00
WSEQU
FCB $0D,$0A,$0A
FCC "2) Ecriture sequence pour test adresses"
FCB $0D,$0A,$00
RSEQU
FCB $0D,$0A,$0A,$0A
FCC "3) Verification de la sequence ecrite"
FCB $0D,$0A,$00
ERR1
FCB $0D,$0A,$0A
FCC "ERREUR DETECTEE SUR LES BITS"
FCB $0D,$0A,$00
ERR2
FCB $0D,$0A
FCC "ERREUR DETECTEE SUR LES ADRESSES"
FCB $0D,$0A,$00
NOERR
FCB $0D,$0A
FCC "AUCUNE ERREUR DETECTEE"
FCB $0D,$0A,$00
FINTEST
FCB $0D,$0A,$0A
FCC "Fin du test"
FCB $0D,$0A,$0A,$00
ADDRESS
FCC "Adresse="
FCB $00
BANK
FCC " - $A7CB="
FCB $00
HEXA
FCB $24,$30,$30,$30,$30,$00
POINT
FCB $2E,$00
OPTION
FCB $00
Daniel
L'obstacle augmente mon ardeur.
L'obstacle augmente mon ardeur.
Re: [Thomson] Extension mémoire 512K pour MO5
Les 512K sont un bonus. Cette extension mémoire peut être utilisée uniquement en 64K, et alors elle remplace celle du nanoréseau.
Elle est aussi utilisable pour simuler toutes les cartouches MEMO5, ce qui évite d'avoir 20 cartouches différentes et de programmer leurs EPROMS.
Daniel
L'obstacle augmente mon ardeur.
L'obstacle augmente mon ardeur.
Re: [Thomson] Extension mémoire 512K pour MO5
Bonjour,
Est-ce possible de se procurer une extension 512k pour MO5 ?
Si oui, par quel moyen et à quel prix ?
D'autre part, j'envisageais de remplacer les condensateurs électrolytiques de mon MO5 non suite à un dysfonctionnement mais simplement en prévention vu leur âge avancé. Est-ce judicieux selon vous ?
Merci
Est-ce possible de se procurer une extension 512k pour MO5 ?
Si oui, par quel moyen et à quel prix ?
D'autre part, j'envisageais de remplacer les condensateurs électrolytiques de mon MO5 non suite à un dysfonctionnement mais simplement en prévention vu leur âge avancé. Est-ce judicieux selon vous ?
Merci