[Thomson] DCMOTO nouveau
Modérateurs : Papy.G, fneck, Carl
-
- Messages : 7925
- Inscription : 18 sept. 2010 12:08
- Localisation : Brest et parfois les Flandres
Re: [Thomson] DCMOTO nouveau
MO5 et MO6 ou uniquement MO5 ?
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] DCMOTO nouveau
Merci Daniel pour le temps passé à perfectionner cet émulateur, empreint d'un travail passionné et studieux.
Re: [Thomson] DCMOTO nouveau
Uniquement MO5. Il reste à faire pareil pour les autres modèles, mais quand il y a plusieurs banques de RAM et un registre de palette ça complique un peu la restauration. Je donne le code de restauration sur MO5 si quelqu'un veut prendre la suite. Dans l'immédiat je me repose un peu En fait non, j'ai d'autres projets à terminer, en particulier l'émulation du 6309 et du MEA8000. Vous avez peut-être vu les prémices dans les options de dcmoto_nouveau.__sam__ a écrit :MO5 et MO6 ou uniquement MO5 ?
Code : Tout sélectionner
*==============================
* Secteur de boot
* Charge le secteur 2 en $9E00
*==============================
ORG $2200
FDB $E082 $207E (BRA DEBUT) crypte
ORG $227F
FCB $F3 checksum
DEBUT
LDU #$2048 adresse code commande
LDX #$9E00 adresse buffer
STX $07,U
LDX #$0000 unite 0 piste 0
STX $02,U
LDA #$02 secteur 2
STA $04,U
LDB #$02 code operation lecture
STB $00,U
SWI
FCB $26 lecture secteur
JMP $9E00 execution sdload5
END
Code : Tout sélectionner
/**************************************************\
* S D L O A D 5 *
* (c) 2016 - Daniel Coulom *
* http://dcmoto.free.fr/ *
* http://forum.system-cfg.com/ *
*--------------------------------------------------*
* 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 permet de restaurer sur un ordinateur
* Thomson une sauvegarde de dcmoto sur carte SD de
* l'etat de la memoire et des registres du MO5.
* Il initialise toute la ram sauf dernier bloc et
* lance le programme SDRUN5 charge en $1F40 et
* duplique dans les deux banques de RAM video.
* Les ports $A7C0-$A7CF sont sauves en $1FC0
* Les registres du microprocesseur en $1FD0
* SDMOTO utilise le 2eme port joystick
* Port A $A7CC
* PA5 en sortie --> SD Clock SCK DB9 pin 2
* PA6 en sortie --> SD Data IN MOSI DB9 pin 3
* PA7 en entree <-- SD Data OUT MISO DB9 pin 4
*
* SDMO utilise le port magnetophone
* Port A $A7C0 pour les donnees
* PA6 en sortie --> SD Data IN MOSI DB9 pin 3
* PA7 en entree <-- SD Data OUT MISO DB9 pin 4
* Port B $A7C2 pour l'horloge
* PA3 en sortie --> SD Clock SCK DB9 pin 2
/**************************************************\
* Version 2016.04.08 *
\**************************************************/
* Historique
* 2016.04.08 apres optimisation fonctionne avec SDHC
* 2016.04.03 sdrun5 est maintenant separe de sdload5
* 2015.07.01 version pour MO5 seul
* 2015.06.14 premiere version operationnelle sur MO5
* 2015.06.13 debut du projet
*------------------------------------------------------
* DEBUT DU PROGRAMME
*------------------------------------------------------
ORG $9E00
BRA INIT initialisations
FDB RBYTE adresse routine RBYTE
*------------------------------------------------------
* FONCTION DE LECTURE DE LA CARTE SD
*------------------------------------------------------
CMD18
FCB $52 read multiple block
FDB $0000 adresse bloc (poids fort)
FDB $0000 adresse bloc (poids faible)
FCB $FF checksum non testee
FCB $00 code retour attendu
*------------------------------------------------------
* Initialisations MO5
*------------------------------------------------------
INIT
ORCC #$50
LDD $208E octets poids fort adresse
STD CMD18+1 stockage pour commande CMD18
LDD $2090 octets poids faible adresse
STD CMD18+3 stockage pour commande CMD18
LDA #$A7 valeur initialisation DP pour MO
TFR A,DP initialisation DP
LDS #$9FFF S pointe en zone preservee
* Modification routine lecture SD pour interface SDMO
LDA $A6FF numero banque CS91-280
CMPA #$B0 test banque B0
BEQ INIT2 CS91-280 est en mode SDMOTO
LBSR RBSDMO modification RBYTE pour SDMO
BRA INIT3 suite des initialisations
* Initialisation PIA pour SDMOTO
INIT2
LDA <$CE lecture registre de controle A
ANDA #$FB raz bit 2
STA <$CE selection DDRA
LDB #$60 set bits 5 et 6
STB <$CC bits MOSI et CLOCK en sortie
ORA #$04 set b2
STA <$CE selection PA
*------------------------------------------------------
* Lancement de la commande CMD18 et saut de deux blocs
*------------------------------------------------------
INIT3
LDU #CMD18 adresse commande CMD18
JSR $A028 EXCMD = execution commande
BSR SAUT lecture bloc (secteur de boot)
BSR SAUT lecture bloc (secteur sdload5)
*------------------------------------------------------
* CHARGEMENT MEMOIRE VIDEO COULEURS
*------------------------------------------------------
LDA <$C0 lecture port a du pia systeme
ANDA #$FE selection video couleur
STA <$C0 modification port a
LDY #$0000 adresse memoire video
LDB #$10 16 blocs = 8K
BSR LOAD chargement 16 blocs video couleur
*------------------------------------------------------
* CHARGEMENT MEMOIRE VIDEO FORMES et RAM UTILISATEUR
* Le dernier bloc n'est pas chargé pour ne pas
* ecraser ce programme
*------------------------------------------------------
INC <$C0 selection video formes
LDY #$0000 adresse memoire video
LDB #$4F 79 blocs a lire
BSR LOAD chargement 79 blocs
*------------------------------------------------------
* Lancement de SDRUN5 pour chargement du dernier bloc
*------------------------------------------------------
LASTB
BSR RBYTE lecture octet
CMPA #$FE comparaison avec $FE
BNE LASTB attente debut secteur
LDS #$1FFF pile en memoire video
JMP $1F40 lancement du chargement
*------------------------------------------------------
* CHARGEMENT A L'ADRESSE Y DE B BLOCS DE 512 OCTETS
*------------------------------------------------------
LOAD
PSHS B compteur de boucles
LOAD1
BSR RBYTE lecture octet
CMPA #$FE comparaison avec $FE
BNE LOAD1 attente debut secteur
LDX #$0200 initialisation compteur
LOAD2
BSR RBYTE lecture d'un octet
STA ,Y+ stockage octet lu
LEAX -1,X decrementation compteur
BNE LOAD2 nouvelle lecture
BSR RBYTE lecture CRC1
BSR RBYTE lecture CRC2
DEC ,S decremente compteur
BNE LOAD1 chargement bloc suivant
PULS B,PC depilage B et retour
*------------------------------------------------------
* Saut de 512 octets
*------------------------------------------------------
SAUT
BSR RBYTE lecture octet
CMPA #$FE comparaison avec $FE
BNE SAUT attente debut secteur
LDX #$0200 initialisation compteur
SAUT1
BSR RBYTE lecture d'un octet
LEAX -1,X decrementation compteur
BNE SAUT1 nouvelle lecture
BSR RBYTE lecture CRC1
BSR RBYTE lecture CRC2
RTS retour
*------------------------------------------------------
* LECTURE D'UN OCTET (SDMOTO) = 175 cycles
* Valeur de l'octet dans le registre A en sortie
*------------------------------------------------------
RBYTE
LDA #$FE b0 marqueur fin de boucle (2)
RBYTE1
LDB #$7F Valeur pour test bit 7 (2)
STB <$CC clock high, di high (4)
CMPB <$CC PA b7 (bit lu) -> carry (4)
LDB #$5F clear bit 5 (2)
STB <$CC clock low, di high (4)
ROLA C (bit lu) -> b0 reg A (2)
BCS RBYTE1 suite de la boucle (3)
RTS retour (octet dans A) (5)
*------------------------------------------------------
* LECTURE D'UN OCTET (SDMO) = 175 cycles
* Valeur de l'octet dans le registre A en sortie
*------------------------------------------------------
RBYTE2
LDA #$FE b0 marqueur fin de boucle (2)
RBYTE3
LDB #$7F set bit 3 (2)
STB <$C2 clock high (4)
CMPB <$C0 read bit (PA b7) dans CC (4)
LDB #$36 clear bit 3 (2)
STB <$C2 clock low (4)
ROLA C (bit lu) -> b0 reg A (2)
BCS RBYTE3 suite de la boucle (3)
RTS retour (octet dans A) (5)
*------------------------------------------------------
* REMPLACEMENT DE LA ROUTINE RBYTE POUR SDMOTO
* PAR LA ROUTINE RBYTE2 POUR SDMO
*------------------------------------------------------
RBSDMO
LDY #RBYTE2 adresse routine SDMO
LDX #RBYTE adresse routine RBYTE
RBSDMO1
LDB ,Y+ lecture routine SDMO
STB ,X+ ecriture routine RBYTE
CMPX #RBYTE2 test de fin
BNE RBSDMO1 nouvelle boucle
RTS retour
END
Code : Tout sélectionner
/**************************************************\
* S D R U N 5 *
* (c) 2016 - Daniel Coulom *
* http://dcmoto.free.fr/ *
* http://forum.system-cfg.com/ *
*--------------------------------------------------*
* 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 fait suite a la restauration de la
* memoire du MO5 par SDLOAD5. Il charge le dernier
* bloc en $9E00-$9FFF, restaure les ports des PIA,
* les registres du processeur et lance l'execution.
* Il est charge en $1F40 dans les deux banques de
* la memoire video, pour permettre la modification
* de $A7C0 pendant l'execution du programme.
* Les ports $A7C0-$A7CF sont stockes en $1FC0
* Les registres processeur sont stockes en $1FD0
/**************************************************\
* Version 2016.04.05 *
\**************************************************/
* Historique
* 2015.04.05 restauration ports PIA systeme et manettes
* 2015.04.04 pogramme duplique dans les 2 banques video
* 2016.04.03 premiere version operationnelle
*------------------------------------------------------
* DEBUT DU PROGRAMME
*------------------------------------------------------
ORG $1F40
*------------------------------------------------------
* COPIE DE LA ROUTINE DE LECTURE D'UN OCTET
* CETTE ROUTINE EST PROGRAMMEE DANS SDLOAD5
* SON ADRESSE EST STOCKEE EN $9E02
*------------------------------------------------------
SDRUN
LDY $9E02 adresse routine RBYTE a copier
LDX #RBYTE adresse copie de la routine RBYTE
LDB #$10 nombre d'octets a copier
SDRUN1
LDA ,Y+ lecture octet
STA ,X+ copie octet
DECB decremente le compteur
BNE SDRUN1 boucle de copie
*------------------------------------------------------
* LECTURE DU DERNIER BLOC EN $9E00
*------------------------------------------------------
LDY #$9E00 adresse de chargement
SDRUN2
BSR RBYTE lecture d'un octet
STA ,Y+ stockage de l'octet
CMPY #$A000 test de fin
BNE SDRUN2 nouvelle lecture
*------------------------------------------------------
* RETABLISSEMENT ETAT NORMAL DU PIA MUSIQUE ET JEUX
*------------------------------------------------------
LDD #$0000 valeur pour CRA-CRB
STA <$CE selection DDRA-DDRB
LDB #$3F definition directions
STD <$CC selection directions
LDD #$0404 valeur pour CRA-CRB
STD <$CE selection PA-PB
LDD #$FFC0 valeur pour PA-PB
STD <$CC initialisation PA-PB
*------------------------------------------------------
* RESTAURATION DES REGISTRES DES PIA
*------------------------------------------------------
LDD PIA valeurs PA-PB du PIA systeme
STD <$C0 restauration PA-PB systeme
LDD PIA+12 valeurs PA-PB du PIA manettes
STD <$CC restauration PA-PB manettes
*------------------------------------------------------
* CHARGEMENT DES REGISTRES ET EXECUTION
*------------------------------------------------------
LDD REG+4 valeur future registre S
SUBD #$1FFF difference valeur actuelle
STD SDRUN9+2,PCR stocke increment pour LEAS
LDD REG+8 registres DP et CC
PSHS B empilage valeur pour CC
TFR A,DP retablissement registre DP
LDD REG+10 retablissement registre D
LDX REG retablissement registre X
LDY REG+2 retablissement registre Y
LDU REG+6 retablissement registre U
PULS CC retablissement registre CC
SDRUN9
LEAS $FFFF,S retablissement registre S
JMP [REG+12] retablissement registre PC
*------------------------------------------------------
* LECTURE OCTET SDMOTO ou SDMO
*------------------------------------------------------
RBYTE
RMB 16 reserve 16 octets pour RBYTE
*------------------------------------------------------
* ZONES DE SAUVEGARDE PIA ET REGISTRES
*------------------------------------------------------
ORG $1FC0
PIA
RMB 16 reserve zone stockage $A7C0-$A7CF
REG
RMB 14 zone stockage registres
END
Daniel
L'obstacle augmente mon ardeur.
L'obstacle augmente mon ardeur.
Re: [Thomson] DCMOTO nouveau
Merci Daniel pour cet ajout ! Enfin je peux accéder à des titres qui ont bercé mon enfance ! (Lorann, Las Vegas ...)
-
- Messages : 7925
- Inscription : 18 sept. 2010 12:08
- Localisation : Brest et parfois les Flandres
Re: [Thomson] DCMOTO nouveau
Le site, le zip, le binaire et la doc du zip parlent tous de 2015.06.04. Je n'ai pas trouvé la 2016.04.16. Il y a un truc?Daniel a écrit :Ce matin nouvelle version 2016.04.16 de dcmoto_nouveau à http://dcmoto.free.fr/emulateur/index.html
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] DCMOTO nouveau
La version 2015.06.04 de dcmoto est la dernière version "stable" diffusée.
L'annonce de la création de fichiers mrx_mo5.sd concerne uniquement la dernière version beta en cours de développement, intitulée dmoto_nouveau, comme indiqué dans le titre du fil de discussion.
La voici : http://dcmoto.free.fr/emulateur/dcmoto_nouveau.zip
Cette version est aujourd'hui la 2016.04.16 mais elle change très fréquemment. Il y en aura peut-être une nouvelle demain. Vous l'utilisez à vos risques et périls. En particulier l'émulation du 6309 est en chantier et ne fonctionne pas. J'ai commencé à ajouter quelques instructions mais il en manque encore beaucoup.
L'annonce de la création de fichiers mrx_mo5.sd concerne uniquement la dernière version beta en cours de développement, intitulée dmoto_nouveau, comme indiqué dans le titre du fil de discussion.
La voici : http://dcmoto.free.fr/emulateur/dcmoto_nouveau.zip
Cette version est aujourd'hui la 2016.04.16 mais elle change très fréquemment. Il y en aura peut-être une nouvelle demain. Vous l'utilisez à vos risques et périls. En particulier l'émulation du 6309 est en chantier et ne fonctionne pas. J'ai commencé à ajouter quelques instructions mais il en manque encore beaucoup.
Daniel
L'obstacle augmente mon ardeur.
L'obstacle augmente mon ardeur.
Re: [Thomson] DCMOTO nouveau
Ah....Daniel a écrit :En particulier l'émulation du 6309 est en chantier et ne fonctionne pas. J'ai commencé à ajouter quelques instructions mais il en manque encore beaucoup.
Je vois que certains font comme les petits copains
-
- Messages : 7925
- Inscription : 18 sept. 2010 12:08
- Localisation : Brest et parfois les Flandres
Re: [Thomson] DCMOTO nouveau
Ah ok. C'est que ton message avec le support des états MO5 était ambigu puisqu'il pointait sur la dernière version officielle et pas le zip de dcmoto_nouveau. En plus comme les dates correspondaient, on aurait pu croire sans problème à une typo (2016->2015).Daniel a écrit :La voici : http://dcmoto.free.fr/emulateur/dcmoto_nouveau.zip
Tu fais une émulation au cycle près ? Ca veut dire qu'en mode natif 6309 les instructions 6809 seront encore plus rapides.Cette version est aujourd'hui la 2016.04.16 mais elle change très fréquemment. Il y en aura peut-être une nouvelle demain. Vous l'utilisez à vos risques et périls. En particulier l'émulation du 6309 est en chantier et ne fonctionne pas. J'ai commencé à ajouter quelques instructions mais il en manque encore beaucoup.
JB: quand on voit le gain de performance sur OS9 via l'utilisation du 6309 on peut regretter que le TO9+ à vocation professionnelle n'en ait pas été équipé, mais l'un (6309) est de 1988 et l'autre (TO9+) de 1986. Or je pense qu'en 1988 l'avenir du 6809 chez Thomson devait être scellée et que la R&D était passé à autre chose (68000 et compatible PC).
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] DCMOTO nouveau
Je crois que nous cherchons tous à obtenir les meilleures performances possibles des Thomson, il est normal que nous avancions dans la même direction. L'idée d'utiliser le 6309 pour améliorer les temps d'accès à la carte SD date déjà de deux ans, nous avions évoqué le sujet à l'époque. D'ailleurs, depuis au moins un an mon MO5 fonctionne avec un HD63C09EP. J'ai fait alors quelques tests en mode 6309, mais depuis il est resté en mode émulation et je n'ai constaté aucune différence avec le 6809. Il y en a quelques-unes, mais en utilisation normale on a peu de chances de les rencontrer.Daniel a écrit :Je vois que certains font comme les petits copains
L'ajout du 6309 à dcmoto a pour but de permettre de développer et tester sur PC, c'est beaucoup plus pratique que sur la vraie machine. Evidemment le nombre de cycles sera respecté, et on pourra voir les gains de vitesse en émulation. Aujourd'hui on a une vitesse de 5600 octets/seconde en lecture de la carte SD. J'espère pouvoir la doubler grâce aux quelques cycles gagnés sur les instructions, mais surtout grâce aux registres supplémentaires.
Daniel
L'obstacle augmente mon ardeur.
L'obstacle augmente mon ardeur.
Re: [Thomson] DCMOTO nouveau
La seule vrai instruction qui fasse gagner du temps et beaucoup de cycle est l'instrucion TFM.
Hormis celle ci, je n'ai pas vraiment vu de gain.
Certaines sont tres pratique : OIM, AIM, EIM
On gagne un peu en gain, mais surtout en taille du code.
Si vraiment tu voudrais gagner en vitesse, il faudrait mettre le 6309 en mode natif, et pas en mode émulé.
Mais malheureusement, pour faire cela il faut réecrire une partie du basic du Thomson.
Car dans ce mode (natif), lorqu'il y a une interuption, il y a 2 nouveau registre sauvé sur la pile (E/F).
C'est surtout cette particularité qui m'a posé de gros gros probleme avec OS9
Hormis celle ci, je n'ai pas vraiment vu de gain.
Certaines sont tres pratique : OIM, AIM, EIM
On gagne un peu en gain, mais surtout en taille du code.
Si vraiment tu voudrais gagner en vitesse, il faudrait mettre le 6309 en mode natif, et pas en mode émulé.
Mais malheureusement, pour faire cela il faut réecrire une partie du basic du Thomson.
Car dans ce mode (natif), lorqu'il y a une interuption, il y a 2 nouveau registre sauvé sur la pile (E/F).
C'est surtout cette particularité qui m'a posé de gros gros probleme avec OS9
-
- Messages : 7925
- Inscription : 18 sept. 2010 12:08
- Localisation : Brest et parfois les Flandres
Re: [Thomson] DCMOTO nouveau
En émulation 6809 sur 6309 on a quand même accès à des registres supplémentaires (accu) et c'est quand même plus rapide de passer par ces registres que de passer par la RAM. Je crois que pour la lecture de carte SD on avait étudié ca, mais là google est incapable de retrouver les pages correspondantes (c'est moi, ou c'est google qui est de plus en plus mauvais?).
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] DCMOTO nouveau
Bien évidemment mon projet est d'utiliser le 6309 en mode natif. Pas besoin de réécrire le Basic pour ça. Tu n'imagines quand même pas que j'accède à la carte SD en Basicjb_jb_fr a écrit :Si vraiment tu voudrais gagner en vitesse, il faudrait mettre le 6309 en mode natif, et pas en mode émulé.
Comme je l'ai écrit ci-dessus, et comme __sam__ l'a bien compris, les registres supplémentaires font gagner un temps précieux en évitant des empilages/dépilages et des accès mémoire, en particulier pour la génération de l'horloge SPI. En y ajoutant le gain de cycles, j'espère améliorer considérablement la vitesse de transmission. Je n'ai pas encore quantifié le gain de temps, mais si vous voulez le faire voici le code à optimiser :
Code : Tout sélectionner
*------------------------------------------------------
* LECTURE D'UN OCTET (SDMOTO) = 175 cycles
* Le registre B n'est pas préservé
* Valeur de l'octet dans le registre A en sortie
* Optimisation du compteur de boucle par Samuel
* Optimisation transfert b7 avec CMPB par Daniel
*------------------------------------------------------
RBYTE
LDA #$FE b0 marqueur fin de boucle (2)
RBYTE1
LDB #$7F Valeur pour test bit 7 (2)
STB <$CC clock high, di high (4)
CMPB <$CC PA b7 (bit lu) -> carry (4)
LDB #$5F clear bit 5 (2)
STB <$CC clock low, di high (4)
ROLA C (bit lu) -> b0 reg A (2)
BCS RBYTE1 suite de la boucle (3)
RTS retour (octet dans A) (5)
Daniel
L'obstacle augmente mon ardeur.
L'obstacle augmente mon ardeur.
Re: [Thomson] DCMOTO nouveau
OulalaDaniel a écrit :Bien évidemment mon projet est d'utiliser le 6309 en mode natif. Pas besoin de réécrire le Basic pour ça. Tu n'imagines quand même pas que j'accède à la carte SD en Basic
Daniel, relis bien la doc du 6309.
Je te rappel, que les appel au noyau (donc les appels pour afficher un caractere, lire le clavier, faire une ligne, etc) se font au moyen de l'instruction SWI, qui est une Interuption logicielle.
Qui dit interuption dit empilage des registres sur la pile.
Et si un appel systeme est fait avec une transmission de parametre (dans A, dans B, dans X, etc) les offsets pour aller chercher les parametres dans la pile ne sont plus les même car je te rappel qu'il y a 2 nouveaux registres dans la pile.
Certe tu ne va pas ecrire ton code en Basic, mais comment va réagire ton MO5 si tu ne corrige pas le code qui permet de traiter les SWI , et que ton 6309 est en mode natif ?
Jacques
Re: [Thomson] DCMOTO nouveau
Pendant la transmission SPI toutes les interruptions sont masquées et il n'y a aucun appel au moniteur.
J'ai retrouvé le fil de discussion où nous parlions des tests du mode natif : http://forum.system-cfg.com/viewtopic.p ... 4&start=51
J'ai mis le 6309 dans mon MO5 pour la première fois en avril 2014 : http://forum.system-cfg.com/viewtopic.p ... 48&start=0
J'ai retrouvé le fil de discussion où nous parlions des tests du mode natif : http://forum.system-cfg.com/viewtopic.p ... 4&start=51
J'ai mis le 6309 dans mon MO5 pour la première fois en avril 2014 : http://forum.system-cfg.com/viewtopic.p ... 48&start=0
Daniel
L'obstacle augmente mon ardeur.
L'obstacle augmente mon ardeur.
-
- Messages : 7925
- Inscription : 18 sept. 2010 12:08
- Localisation : Brest et parfois les Flandres
Re: [Thomson] DCMOTO nouveau
Effectivement, en déroulant la boucle de http://forum.system-cfg.com/viewtopic.p ... 495#p83495, on tombe sur 8*(4+4+5+2)=120 cycles en mode émulation 6809 pour lire 8 bits du port SPI au lieu de 175 pour le 6809, soir une accélaration de 1.45 En natif ca fait 8*(3+3+4+1)=88cycles, sensiblement 11ko/sec au lieu de 5.7. Pas loin de 2x plus rapide
Code : Tout sélectionner
STB <$CC clock high, di high (4) [3]
CMPB <$CC PA b7 (bit lu) -> carry (4) [3]
STF <$CC clock low, di high (5) [4]
ROLA C (bit lu) -> b0 reg A (2) [1]
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