C'est un programme de __sam__. Il faudrait voir avec lui s'il peut le modifier pour étendre la compatibilité aux nouvelles versions.
- Le type de carte (SD ou SDHC) est passé du bit 0 au bit 7 de <$57
- L'indicateur de sélection ($55) du fichier .sd est passé des bits 0-6 de <$58 aux bits 0-6 de <$57
- Le LBA de début du fichier .sd est resté en <$51, comme en version 20180702. Dans les versions précédentes il était en <$8E.
Voici un exemple de ce que je fais pour retrouver le LBA dans les 3 cas différents (avant 20180702, 20180702-20210211, 20210212 et suivantes).
Pour tester le type de carte il suffit de remplacer BNE <$57 par BMI <$57 s'il y a $55 dans les bits 0-6 de <$57.
Code : Tout sélectionner
;------------------------------------------------------
; Initialisations TO7
; L'adresse de SD_LB0 est passee de $608E a $6051 pour
; tous les controleurs a partir de la version 20180702
; S'il y a $55 en $6058 (valeur de SD_SEL) on utilise
; la nouvelle adresse, sinon l'ancienne
; A partir de la version 20210212 de SDDRIVE
; - le type de carte en $6057 passe de b0 a b7
; - SD_SEL passe de $6058 a $6057 b0-b6
;------------------------------------------------------
INIT
ORCC #$50
; Calcul adresse SD_LB0
LDX #$6051 ; adresse LB0 des versions recentes
LDA $6058 ; SD_SEL contient $55 depuis 20180702
CMPA #$55 ; test version 20180702-20210211
BEQ INIT1 ; version 20180702-20210211
LDA $6057 ; SD_SEL en $6057 b0-b7 depuis 20210212
ANDA #$7F ; isole b0-b6
CMPA #$55 ; test version 20210212 ou plus recente
BEQ INIT1 ; version 20210212 ou plus recente
LDX #$608E ; adresse LB0 des versions anciennes
INIT1