ASM sur Thomson
Modérateurs : Papy.G, fneck, Carl
Re: ASM sur Thomson
Salut,
un To7/70 était à 3500 frs.
http://download.abandonware.org/magazin ... age183.jpg
Donc, un quart du prix de la machine!
Pour un programme de 4/8 K... au mieux 16k!
Un peu chère pour s'initier à l'assembleur...
un To7/70 était à 3500 frs.
http://download.abandonware.org/magazin ... age183.jpg
Donc, un quart du prix de la machine!
Pour un programme de 4/8 K... au mieux 16k!
Un peu chère pour s'initier à l'assembleur...
-
- Messages : 312
- Inscription : 01 févr. 2020 20:31
- Localisation : Rome - Italy
Re: ASM sur Thomson
Quelqu'un connaît-il les emplacements de mémoire pour changer la palette du tomson mo6? Je dois créer une routine d'assembleur sans fonctions système. Merci
Re: ASM sur Thomson
Résumé de la documentation technique :
Le Gate Palette intègre une RAM de 16 mots de 13 bits : 1 mot = 3 registres de 4 bits + 1 bit de marquage.
L'instruction d'attribution de couleur (PALETTE X, Y, Z) met en œuvre une routine de traitement dont les principales phases sont les suivantes :
- Ecriture dans le registre d'adresse du Gate Palette ($A7DA) de l'argument X (0 à 15), permettant d'adresser 1 parmi les 16 mots de 13 bits.
- Ecriture dans le registre couleur ($A7DB) de l'argument Y (0 à 4095), attribution d'une couleur parmi les 4096 (12 bits), et de l'argument Z (0 ou 1), bit de marquage. Cette phase nécessite deux opérations d'écriture.
Daniel
L'obstacle augmente mon ardeur.
L'obstacle augmente mon ardeur.
-
- Messages : 312
- Inscription : 01 févr. 2020 20:31
- Localisation : Rome - Italy
Re: ASM sur Thomson
Merci Daniel, ce code est-il correct?
ldy #$a7db
lda #$01 //set color 1
lsla
ora #$01 //write enable
sta, Y
ldy #a7da
lda #$ab //color green blue set
sta , Y
lda #$0c //color red set
sta , Y
ldy #$a7db
lda #$01 //set color 1
lsla
ora #$01 //write enable
sta, Y
ldy #a7da
lda #$ab //color green blue set
sta , Y
lda #$0c //color red set
sta , Y
-
- Messages : 7923
- Inscription : 18 sept. 2010 12:08
- Localisation : Brest et parfois les Flandres
Re: ASM sur Thomson
C'est quoi ce LSLA suivi par un ORA #1 ? non il ne faut pas faire ca.
Pour écrire "0BGR" dans l'entrée N de la palette il suffit d'écrire 2*N (donc oui LSLA mais pas de ORA) en $A7DB, puis "GR" en $A7DA suivi par "0B" en $A7DA encore (le poids faible suivit par le poids fort à la même adresse)
Pour écrire "0BGR" dans l'entrée N de la palette il suffit d'écrire 2*N (donc oui LSLA mais pas de ORA) en $A7DB, puis "GR" en $A7DA suivi par "0B" en $A7DA encore (le poids faible suivit par le poids fort à la même adresse)
Dernière modification par __sam__ le 15 mars 2020 21:34, 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
-
- Messages : 312
- Inscription : 01 févr. 2020 20:31
- Localisation : Rome - Italy
Re: ASM sur Thomson
Merci Sam, et pour la lecture? Il suffit d'écrire a7db puis de lire a7da deux fois?
-
- Messages : 7923
- Inscription : 18 sept. 2010 12:08
- Localisation : Brest et parfois les Flandres
Re: ASM sur Thomson
Oui voilà. Faire attention au 2*N.
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: ASM sur Thomson
En relisant la documentation, je vois qu'il y a une inversion entre $A7DB et $A7DA, et j'ai recopié cette erreur dans mon post précédent.
Et aussi la documentation oublie de mentionner que le registre d'adresse du "Gate Palette" progresse automatiquement quand on écrit dans $A7DA. Voici la routine d'initialisation de la palette du MO6 (DP=$A7 et X pointe sur la table des couleurs standard).
Et aussi la documentation oublie de mentionner que le registre d'adresse du "Gate Palette" progresse automatiquement quand on écrit dans $A7DA. Voici la routine d'initialisation de la palette du MO6 (DP=$A7 et X pointe sur la table des couleurs standard).
Code : Tout sélectionner
FC88 0FDB CLR <$DB selection de la couleur 0
FC8A 108E0010 LDY #$0010 compteur de boucles = 16
FC8E EC81 LDD ,X++ <--
FC90 D7DA STB <$DA | modification
FC92 97DA STA <$DA | de la couleur
FC94 313F LEAY -$01,Y |
FC96 26F6 BNE $FC8E -- boucle suivante
FC98 39 RTS
Daniel
L'obstacle augmente mon ardeur.
L'obstacle augmente mon ardeur.
-
- Messages : 312
- Inscription : 01 févr. 2020 20:31
- Localisation : Rome - Italy
Re: ASM sur Thomson
Est-il exact que sur Thomson Mo6, écrire l'emplacement a7cd produit du son?
J'ai écrit une fonction en assembleur, sur retroarch ça sonne, sur dcmoto no.
J'ai écrit une fonction en assembleur, sur retroarch ça sonne, sur dcmoto no.
Re: ASM sur Thomson
$A7CD est le port B du PIA musique et jeux. Les 6 bits de poids faible sont suivis du CNA.
La sortie CNA peut être supprimée par le signal "MUTE SOURIS".
Ensuite le transistor T10 mixe le CNA et le BEEP (venant du bit PB0 du PIA système).
Pour que l'écriture en $A7CD produise du son, il faut donc deux conditions :
1) Les 6 bits de poids faible du port B du PIA musique et jeux doivent être positionnés en sortie.
2) Le bit PA2 du PIA système doit être à 0.
Concrètement, voici les instructions à exécuter :
La sortie CNA peut être supprimée par le signal "MUTE SOURIS".
Ensuite le transistor T10 mixe le CNA et le BEEP (venant du bit PB0 du PIA système).
Pour que l'écriture en $A7CD produise du son, il faut donc deux conditions :
1) Les 6 bits de poids faible du port B du PIA musique et jeux doivent être positionnés en sortie.
2) Le bit PA2 du PIA système doit être à 0.
Concrètement, voici les instructions à exécuter :
Code : Tout sélectionner
;------------------------------------------------------
; Clear mute bit
;------------------------------------------------------
LDA <$C0 ;PIA systeme port A
ANDA #$FB ;clear mute bit
STA <$C0 ;modification PIA
;------------------------------------------------------
; Initialisation CNA en sortie
;------------------------------------------------------
LDA <$CF ;lecture registre de controle B
ANDA #$FB ;raz bit 2
STA <$CF ;selection DDRB
LDB #$3F ;set bits 0-5
STB <$CD ;bits CNA en sortie
ORA #$04 ;set b2
STA <$CF ;selection PB
Daniel
L'obstacle augmente mon ardeur.
L'obstacle augmente mon ardeur.
-
- Messages : 312
- Inscription : 01 févr. 2020 20:31
- Localisation : Rome - Italy
Re: ASM sur Thomson
merci beaucoup Daniel, je ne comprends pas pourquoi sur retroarch cela fonctionne simplement en écrivant l'emplacement a7cd !!!
Re: ASM sur Thomson
Un émulateur n'est jamais parfait. Il faut toujours tester avec la vraie machine pour être sûr, et ne jamais faire confiance aux émulateurs.
Daniel
L'obstacle augmente mon ardeur.
L'obstacle augmente mon ardeur.
-
- Messages : 312
- Inscription : 01 févr. 2020 20:31
- Localisation : Rome - Italy
Re: ASM sur Thomson
tu as raison. Merci vous êtes une référence
-
- Messages : 312
- Inscription : 01 févr. 2020 20:31
- Localisation : Rome - Italy
Re: ASM sur Thomson
Daniel, à la fin du code, dois-je commencer à écrire dans l'emplacement a7cd?
Re: ASM sur Thomson
Tant que les bits du CNA sont initialisés en sortie avec le bit MUTE du PIA système à zéro, tout échantillon écrit dans les 6 bits de poids faible de $A7CD est envoyé sur la sortie son du connecteur Peritel. On peut commencer tout de suite, ou plus tard, peu importe, à condition que la configuration en sortie de ces six bits n'ait pas été modifiée entre temps et que le bit MUTE soit toujours à zéro.
Daniel
L'obstacle augmente mon ardeur.
L'obstacle augmente mon ardeur.