ASM sur Thomson

Cette catégorie traite de développements récents pour nos vieilles machines, applications, jeux ou démos... Amis programmeurs, c'est ici que vous pourrez enfin devenir célèbres!

Modérateurs : Papy.G, fneck, Carl

Xavier_AL

Re: ASM sur Thomson

Message par Xavier_AL »

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...
dinoprodest
Messages : 312
Inscription : 01 févr. 2020 20:31
Localisation : Rome - Italy

Re: ASM sur Thomson

Message par dinoprodest »

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
Daniel
Messages : 17316
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: ASM sur Thomson

Message par Daniel »

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.
dinoprodest
Messages : 312
Inscription : 01 févr. 2020 20:31
Localisation : Rome - Italy

Re: ASM sur Thomson

Message par dinoprodest »

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
__sam__
Messages : 7923
Inscription : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: ASM sur Thomson

Message par __sam__ »

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)
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
dinoprodest
Messages : 312
Inscription : 01 févr. 2020 20:31
Localisation : Rome - Italy

Re: ASM sur Thomson

Message par dinoprodest »

Merci Sam, et pour la lecture? Il suffit d'écrire a7db puis de lire a7da deux fois?
__sam__
Messages : 7923
Inscription : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: ASM sur Thomson

Message par __sam__ »

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
Daniel
Messages : 17316
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: ASM sur Thomson

Message par Daniel »

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).

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.
dinoprodest
Messages : 312
Inscription : 01 févr. 2020 20:31
Localisation : Rome - Italy

Re: ASM sur Thomson

Message par dinoprodest »

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.
Daniel
Messages : 17316
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: ASM sur Thomson

Message par Daniel »

$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).

cna_mo6.png
cna_mo6.png (40.73 Kio) Consulté 3589 fois
beep_mo6.png
beep_mo6.png (41.11 Kio) Consulté 3589 fois

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.
dinoprodest
Messages : 312
Inscription : 01 févr. 2020 20:31
Localisation : Rome - Italy

Re: ASM sur Thomson

Message par dinoprodest »

merci beaucoup Daniel, je ne comprends pas pourquoi sur retroarch cela fonctionne simplement en écrivant l'emplacement a7cd !!!
Daniel
Messages : 17316
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: ASM sur Thomson

Message par Daniel »

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.
dinoprodest
Messages : 312
Inscription : 01 févr. 2020 20:31
Localisation : Rome - Italy

Re: ASM sur Thomson

Message par dinoprodest »

tu as raison. Merci vous êtes une référence :roll:
dinoprodest
Messages : 312
Inscription : 01 févr. 2020 20:31
Localisation : Rome - Italy

Re: ASM sur Thomson

Message par dinoprodest »

Daniel, à la fin du code, dois-je commencer à écrire dans l'emplacement a7cd?
Daniel
Messages : 17316
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: ASM sur Thomson

Message par Daniel »

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.
Répondre