Bonjour
Une routine assembleur (fonctionnant ici aussi bien en 6809 qu'en 6309) qui peut être bien utile pour basculer en mode natif du 6309 s'il est détecté. Vu dans la doc PDF du 6309 à la page 207 (je l'ai un peu modifié).
Code:
* Determine whether processor is 6309 or 6809
* Returns Z clear if 6309, set if 6809
VAL309 EQU $9000 ; Valeur 6809 ou 6309
org $8000
CHK309 PSHS D ;Save Reg-D
FDB $1043 ;6309 COMD instruction (COMA on 6809)
CMPB 1,S ;not equal if 6309
BNE CHK301
LDD #6809
BRA CHK302
CHK301 *
LDD #6309
CHK302 *
STD VAL309
PULS D ;exit, restoring D
RTS
Et après avoir sauvegardé ça en fichier CHK309.BIN il suffit d'écrire ce code Basic
Code:
10 CLEAR ,,,&h7FFF:LOADM"CHK309":EXEC &h8000
20 A=PEEK (&H9000)*256+PEEK(&H9001):cls:?a
Enfin, pour basculer en mode NATIF 6309 et FIRQ 6309, une simple instruction:
Code:
LDMD #3
Suffit! (Mais cette instruction ne fonctionne que pour le 6309. Le Codeop de cette instruction LDMD étant "
113D" (au cas où vous souhaiteriez juste l'écrire dans une routine BASIC
Je sais que bcp d'entre vous êtes des experts du 6809/6309, mais vu qu'il n'y a pas de sujet à ce propos, pour justement pouvoir basculer automatiquement dans le mode natif du 6309 et profiter de l'augmentation de la vitesse de 30%...
Par contre, dans le commentaire du FDB, je ne pige pas bien ce qu'ils ont voulu dire, vu que COMA en 6809 est le codeop 43 (et pas 1043) et comment ça peut fonctionner avec le 6809 puisqu'apparemment, les codeopération "inutilisés" dans le 6809 sont sensés être interdites. En tous cas, ça marche sous DC Moto.