[Thomson] SDDRIVE
Modérateurs : Papy.G, fneck, Carl
Re: [Thomson] SDDRIVE
SDDRIVE simule un contrôleur de disquette Thomson. Les disquettes sont remplacées par des fichiers .sd
SDDRIVE ne simule ni les cartouches MEMO7, ni les cassettes. Par contre on peut convertir sur disquette les logiciels sur cartouche ou sur cassette, il y a un sujet dédié dans le forum : viewtopic.php?f=25&t=6920
Pour la simulation des cassettes, il y a un autre projet, SDLEP-READER TFT : http://dcmoto.free.fr/bricolage/sdlep-tft/index.html
Pour remplacer les cartouches MEMO7 il y a plusieurs projets différents :
- La MEMO7 de 6502man : viewtopic.php?f=10&t=7086
- Ma MEMO7 universelle : viewtopic.php?f=18&t=12766
- La MEGAROM T.2 : viewtopic.php?f=25&t=9508
SDDRIVE ne simule ni les cartouches MEMO7, ni les cassettes. Par contre on peut convertir sur disquette les logiciels sur cartouche ou sur cassette, il y a un sujet dédié dans le forum : viewtopic.php?f=25&t=6920
Pour la simulation des cassettes, il y a un autre projet, SDLEP-READER TFT : http://dcmoto.free.fr/bricolage/sdlep-tft/index.html
Pour remplacer les cartouches MEMO7 il y a plusieurs projets différents :
- La MEMO7 de 6502man : viewtopic.php?f=10&t=7086
- Ma MEMO7 universelle : viewtopic.php?f=18&t=12766
- La MEGAROM T.2 : viewtopic.php?f=25&t=9508
Daniel
L'obstacle augmente mon ardeur.
L'obstacle augmente mon ardeur.
Re: [Thomson] SDDRIVE
Nouvelle version du programme de sélection du fichier .sd (sddrive.sel)
Disponible à la page officielle de sddrive : http://dcmoto.free.fr/bricolage/sddrive/index.html
Nouveautés de la version 2022.04.06
- Les fichiers dont l'extension n'est pas .sd ne sont plus affichés.
- La touche STOP permet de sortir du programme sans sélectionner un fichier.
Cette version de sddrive.sel peut être utilisée avec toutes les versions
récentes du contrôleur SDDRIVE, à partir de 2019.
Disponible à la page officielle de sddrive : http://dcmoto.free.fr/bricolage/sddrive/index.html
Daniel
L'obstacle augmente mon ardeur.
L'obstacle augmente mon ardeur.
-
- Messages : 7923
- Inscription : 18 sept. 2010 12:08
- Localisation : Brest et parfois les Flandres
Re: [Thomson] SDDRIVE
Le nom sur la capture me dit quelque-chose....
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] SDDRIVE
Et la mention tout en bas à gauche de l'image doit te surprendre
Daniel
L'obstacle augmente mon ardeur.
L'obstacle augmente mon ardeur.
-
- Messages : 7923
- Inscription : 18 sept. 2010 12:08
- Localisation : Brest et parfois les Flandres
Re: [Thomson] SDDRIVE
Ah oui en effet J'imagine que c'est ta machine de test privilégiée.
Dernière modification par __sam__ le 06 avr. 2022 21:15, 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 : 1254
- Inscription : 24 déc. 2021 09:46
- Localisation : Région parisienne
Re: [Thomson] SDDRIVE
Merci pour cette nouvelle version.
Sur la page de Sddrive. Il manque la dernière version là où c'est écrit :
Version officielle actuelle : sddrive_20211122.zip
Sur la page de Sddrive. Il manque la dernière version là où c'est écrit :
Version officielle actuelle : sddrive_20211122.zip
Re: [Thomson] SDDRIVE
La dernière version de l'EPROM du contrôleur SDDRIVE, sddrive_rom.bin, est bien 20211112, il n'y en a pas de plus récente.
La mise à jour d'aujourd'hui concerne uniquement le programme de sélection sddrive.sel, à copier sur la carte SD.
Dans la page officielle de SDDRIVE, ce nouveau programme sddrive.sel est quelques lignes plus bas :
Il est compatible avec la version 20211112 du contrôleur, mais aussi avec les précédentes jusqu'en 2019. Je ne les ai pas toutes testées, mais il suffit d'essayer, et s'il y a une incompatibilité revenir à la version qui fonctionnait.
Si ça intéresse quelqu'un voici le programme source :
La mise à jour d'aujourd'hui concerne uniquement le programme de sélection sddrive.sel, à copier sur la carte SD.
Dans la page officielle de SDDRIVE, ce nouveau programme sddrive.sel est quelques lignes plus bas :
Le programme sddrive.sel a été amélioré le 06/04/2022 : sddrive.sel_20220406
Il est compatible avec la version 20211112 du contrôleur, mais aussi avec les précédentes jusqu'en 2019. Je ne les ai pas toutes testées, mais il suffit d'essayer, et s'il y a une incompatibilité revenir à la version qui fonctionnait.
Si ça intéresse quelqu'un voici le programme source :
Code : Tout sélectionner
PRAGMA 6809,operandsizewarning
OPT c
;**************************************************;
; S D D R I V E _ S E L ;
; (c) 2022 - 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 selectionner un fichier .sd
; dans une liste deroulante et de monter l'image.
; Cette version est compatible avec les cartes SD
; et SDHC sur MO et sur TO
; Restrictions :
; - 364 fichiers maxi dans le repertoire principal
; - En FAT32 limitation supplementaire en fonction
; de la taille de l'unite d'allocation et de la
; taille des noms longs :
; 4096 = environ 32 fichiers de 39 caracteres
; 8192 = environ 64 fichiers de 39 caracteres
; 16Ko = environ 128 fichiers de 39 caracteres
; 32Ko = environ 256 fichiers de 39 caracteres
;
; Occupation memoire :
; - programme en $9000-$9CFF
; - buffer lecture secteur en $9D00-$9EFF
; - pile systeme deplacee en $9F00-$9FFF
; - table des noms en $5000-$8FFF (MO)
; ou $A000-$DFFF (TO)
; Pour appeler le programme SDDRIVE_SEL en BASIC
; faire CLEAR,&H4FFF (MO) ou CLEAR,&H8FFF (TO)
;
; Nota :
; La pile systeme est deplacee en $9CFF pour eviter
; que la routine d'affichage d'un caractere (WCHAR)
; ecrase la zone de travail du controleur SDDRIVE
; (SD_CMD et SD_LBA)
;**************************************************;
; Version 2022.04.06 ;
;**************************************************;
; Historique
; 2022.04.06 Correction d'erreurs d'affichage mineures
; 2022.04.05 Touche STOP pour sortir sans selection
; 2022.04.05 Message si aucun fichier .sd dans la carte
; 2022.04.05 Au retour selection video couleur si MO
; 2022.04.05 Les fichiers .sd sont les seuls affiches
; 2021.11.22 retablissement couleur bleu/cyan au retour
; 2021.11.21 copie de SD_LB0 et SD_SEL en pile systeme
; 2021.11.12 $55 ajoute a SD_SEL si selection OK
; 2021.11.08 Test SD_SEL: BMI remplace BNE
; 2021.07.16 Optimisation d'un branchement long
; 2021.06.13 Utilise l'adresse LBA de SDDRIVE
; 2021.06.12 Suppression des messages d'aide
; 2021.06.12 Zones de travail en $20D5/$60D5 (abandonne)
; 2020.09.18 Corrige bug fleche droite en fin de table
; 2019.06.04 Initialisation banque TO7/70 en BASIC 128
; 2019.05.21 Utilisation des quatre fleches + ENTREE
; 2019.02.12 Adresse du buffer dans Y pour RS512
; 2018.11.09 Annulation de la modification 2018.11.08
; 2018.11.08 LBA et type carte stockes dans secteur 1
; 2018.07.02 Deplacement SD_TYP, SD_LB0, SD_LBA
; 2018.05.24 Selection video couleur MO avant retour
; 2018.01.04 $HE02E/$HA02E devient $HE025/$HA025
; 2017.12.18 Effacement ecran apres selection
; 2017.12.17 Test TO/MO par la valeur en $FFF2
; 2017.12.15 Affichage de messages d'aide MO et TO
; 2017.12.14 Deplacement de la pile systeme en $9CFF
; 2017.12.14 Deplacement table des noms MO en $5000
; 2017.12.14 Deplacement buffer de lecture en $9D00
; 2017.12.10 Deplacement de la pile systeme en $9FFF
; 2017.12.08 Version initiale issue de SDSEL
;------------------------------------------------------
; DEFINITION DES ZONES DE TRAVAIL EN RAM
;------------------------------------------------------
SD_LB0 EQU $51 ; adresse du LBA du fichier .sd
SD_SEL EQU $57 ; type de carte SD=0x00 SDHC=0x80
SAVLB0 EQU $95 ; copie de SD_LB0 en pile systeme
SAVSEL EQU $99 ; copie de SD_SEL en pile systeme
;------------------------------------------------------
; INITIALISATIONS EN FONCTION DE L'ORDINATEUR
; Lors de l'appel du programme la commande CMD17 vient
; d'être executee. Le regitre U pointe juste apres le
; code retour. Le LBA est six octets avant.
;------------------------------------------------------
ORG $9000
INIT
STS SAVES ; sauvegarde du registre S
LDS #$9CFF ; nouvelle valeur du registre S
LEAU -6,U ; adresse du LBA pour CMD17
STU SD_LBA ; stocke l'adresse du LBA
ORCC #$50 ; desactive les interruptions
LDA #$60 ; valeur initialisation DP pour TO
LDB >$FFF2 ; poids fort du vecteur SWI3
BPL INIT0 ; positif --> TO
;------------------------------------------------------
; Initialisations speciales pour MO
;------------------------------------------------------
LDD #$A02B ; adresse fonction RS512
STD RS512 ; stockage adresse
LDD #$5000 ; adresse de la table des noms
STD TDEB ; adresse debut de table
STD TFIN ; adresse fin de table
STD TTOP ; adresse nom en haut de l'ecran
STD TSEL ; adresse nom selectionne
LDD #$9000 ; adresse table des noms + $4000
STD TMAX ; adresse haute de la table des noms
LDD #$3F82 ; affichage caractere MO = SWI #$82
STD WCHAR ; modification routine affichage
LDB #$8A ; lecture clavier MO = SWI #$8A
STD RCHAR ; modification routine lecture
LDB #$7B ; code inversion video pour MO
STB INVER1+1 ; modification code inversion video
LDA #$20 ; valeur initialisation DP pour MO
BRA INIT1 ; initialisation de l'ecran
;------------------------------------------------------
; Initialisation banque memoire TO7/70 en BASIC 128
;------------------------------------------------------
INIT0
LDB #$38 ; caractere 8
CMPB >$0009 ; test du 8 de BASIC 128
BNE INIT1 ; ce n'est pas le BASIC 128
LDB $E7CB ; charger DDRB
ANDB #$FB ; RAZ bit 2
STB $E7CB ; modifier DDRB
LDB #$0F ; valeur pour premiere banque RAM
STB $E7C9 ; stocker dans PORTB
LDB $E7CB ; charger DDRB
ORB #$04 ; positionner bit 2
STB $E7CB ; modifier DDRB
;------------------------------------------------------
; Initialisation de l'ecran
;------------------------------------------------------
INIT1
TFR A,DP ; DP = $20(MO) ou $60(TO)
SUBA #$20 ; adresse ecran poids fort
CLRB ; adresse ecran poids faible
TFR D,X ; debut ecran
ADDD #$0500 ; taille du logo
PSHS B,A ; empilage adresse fin logo
LDY #ECRAN ; adresse chaine initialisation ecran
LBSR WSTR ; affichage d'une chaine
;------------------------------------------------------
; Affichage du logo SDDRIVE
;------------------------------------------------------
LOGO
LDY #SDLOGO ; index donnees
LOGO1
LDB #$01 ; nombre octets identiques
LDA ,Y+ ; lecture octet donnee
BEQ LOGO9 ; fin des donnees
CMPA #$20 ; nombre maxi repetitions
BHI LOGO2 ; ce n'est pas une repetition
TFR A,B ; nombre de repetitions
LDA ,Y+ ; lecture octet donnee
LOGO2
ADDA #$41 ; ajouter 65
LOGO3
STA ,X ; afficher l'octet donnee
LEAX $28,X ; passage ligne suivante
CMPX ,S ; fin du logo dans l'ecran
BLO LOGO4 ; fin non encore atteinte
LEAX -$4FF,X ; debut colonne suivante
LOGO4
DECB ; decrementation compteur
BNE LOGO3 ; nouvelle repetition
BRA LOGO1 ; sequence suivante
LOGO9
PULS A,B ; depilage D
;------------------------------------------------------
; LECTURE DU PREMIER SECTEUR DE LA CARTE (MBR ou BOOT)
; Table des partitions en $1BE-$1FD
; Premiere partition en $1BE-$1CD
; - $1BE = Boot Indicator ($00=inactif, $80=actif)
; - $1BF-$1C1 = Starting CHS values
; - $1C2 = Partition type descriptor
; 04: FAT16 size less than 32 MB
; 06: FAT16 size greater or equal 32 MB
; 0B: FAT32
; - $1C3-$1C5 = Ending CHS values
; - $1C6-$1C9 = Starting sector
; - $1CA-$1CD = Partition size in sectors
; Signature en $1FE-$1FF = $55AA
;------------------------------------------------------
LBSR LINIT ; raz ligne
LDU SD_LBA ; adresse du LBA
LDD #$0000 ; numero du secteur a lire
STD ,U ; adresse physique (poids fort)
STD 2,U ; adresse physique (poids faible)
LDY >BUFFER ; adresse du buffer
JSR [RS512] ; lecture secteur 512 octets
LDX >BUFFER ; adresse du buffer
LDD #$55AA ; Signature secteur
CMPD $1FE,X ; Test signature
LBNE ERROR ; Signature incorrecte
; astuce pour differencier un MBR d'un Boot Sector
; le MBR a toujours $80 ou $00 en $1BE (pas certain)
LSL $1BE,X ; Boot indicator
BNE ABOOT1 ; Pas de MBR, donc boot record
; seule la premiere partition est exploree,
; son numero de secteur doit tenir dans deux octets
LDA $1C7,X ; LBA partition pds fort
LDB $1C6,X ; LBA partition pds faible
STD PSECT ; stockage secteur debut partition
;------------------------------------------------------
; Lecture du Boot Record
; Premier secteur au debut de la partition
; Registre D = numero secteur de debut de partition
;------------------------------------------------------
RBOOT
LDU SD_LBA ; adresse du LBA
STD 2,U ; stockage pour CMD17 si carte SDHC
TST <SD_SEL ; test du type de carte
BMI RBOOT1 ; carte SDHC, sinon calcul pour SD
ASLB ; multiplie par 2 (poids faible)
ROLA ; multiplie par 2 (poids fort)
STD 1,U ; adresse = numero secteur * $200
CLRB ; raz registre A
STB 3,U ; raz dernier octet adresse
RBOOT1
LDY >BUFFER ; adresse du buffer
JSR [RS512] ; lecture du secteur de 512 octets
;------------------------------------------------------
; Analyse du Boot Sector
; $1FE-$1FF: $55AA (signature)
; $00B-$00C: nombre d'octets par secteur (512)
; $00D: nombre de secteurs par cluster
; $00E-$00F: nombre de secteurs reserves
; $010: nombre de FATs
; $011-$012: nombre entrees directory (FAT16 seulement)
; $016-$017: nombre secteurs FAT (FAT16 seulement)
; $024-$027: nombre secteurs FAT (FAT32 seulement)
; $02C-$02D: numero cluster directory (FAT32)
; Attention: le debut des donnees commence au cluster 2
; - En FAT16: apres la directory
; - En FAT32: apres les FATs
; Pour faciliter les calculs, on retranche 2 fois le
; nombre de secteurs par cluster au debut des donnees.
;
; Calcul du secteur physique du repertoire principal
; = numero du secteur de debut de partition
; + nombre de secteurs reserves
; + nombre de secteurs FAT * nombre de FAT
;
; Calcul du secteur physique du cluster zero
; = numero du secteur du debut du repertoire principal
; + nombre d'entrees repertoire / 16 (0 en FAT32)
; - nombre de secteurs par cluster * 2
;
;------------------------------------------------------
ABOOT
LDX >BUFFER ; adresse du buffer
LDD #$55AA ; Signature secteur
CMPD $1FE,X ; Test signature
LBNE ERROR ; Signature incorrecte
ABOOT1
CLRA
LDB $0D,X ; Nombre de secteurs par cluster
STD CSIZ2 ; Stockage nbre secteurs par cluster
LDA $0F,X ; Blocs reserves pds fort ex: $00
LDB $0E,X ; Blocs reserves pds faible ex: $04
STD RSECT ; stockage nbre secteurs reserves
; taille FAT (en FAT16) dans D
LDA $17,X ; Fat16 size pds fort ex: $00
LDB $16,X ; Fat16 size pds faible ex: $F2
STD $16,X ; stockage taille FAT16
BNE ABOOT2 ; FAT16 si different de zero
; taille FAT (en FAT32) dans D
; 2 octets poids fort ignores (simplification abusive ?)
LDA $25,X ; Fat32 size pds fort ex: $03
LDB $24,X ; Fat32 size pds faible ex: $AB
; taille totale fonction du nombre de FATs
ABOOT2
DEC $10,X ; Nombre de FAT ex: $02
BEQ ABOOT3 ; Une seule FAT
ASLB ; FAT size multiplie par 2 ex: $E4
ROLA ; FAT size multiplie par 2 ex: $01
; Le registre D contient le nombre de secteurs des FATs
; Les calculs suivants sont faux si le premier numero de
; secteur des donnees ne tient pas dans deux octets
ABOOT3
ADDD RSECT ; ajout nombre de secteurs reserves
ADDD PSECT ; ajout secteur de debut de partition
STD DSECT ; stockage secteur debut repertoire
LDA $12,X ; nbre entrees repertoire (poids fort)
LDB $11,X ; nbre entrees repertoire (poids faible)
LSRA ; division par 16
RORB ; pour obtenir
LSRA ; le nombre de secteurs
RORB ; du repertoire
LSRA ; En FAT32 le nombre d'entrees
RORB ; du repertoire est nul
LSRA ; Le debut des donnees (cluster 2)
RORB ; commence apres les FATs
ADDD DSECT ; ajout secteur debut directory
SUBD CSIZ2 ; retrancher le nbre secteurs/cluster
SUBD CSIZ2 ; retrancher le nbre secteurs/cluster
STD FSECT ; stockage numero secteur du cluster 0
LDD DSECT ; secteur de debut du repertoire
;------------------------------------------------------
; LECTURE D'UN SECTEUR DU REPERTOIRE
; D contient le numero du secteur a lire
;------------------------------------------------------
RDSECT
LDU SD_LBA ; adresse du LBA
STD 2,U ; stockage pour la commande 17
TST <SD_SEL ; type de carte 0=SD 1=SDHC
BMI RDSEC1 ; carte SDHC
ASLB ; LBA multiplie par 2
ROLA ; LBA multiplie par 2
STD 1,U ; LBA multiplie par $100
CLRB
STB 3,U ; octet de poids faible a zero
RDSEC1
LDY >BUFFER ; adresse du buffer
JSR [RS512] ; Lecture du secteur
LDX >BUFFER ; Adresse du buffer
;------------------------------------------------------
; LECTURE DES ENTREES D'UN SECTEUR DU REPERTOIRE
; Le registre X pointe sur l'entree en cours
;------------------------------------------------------
; analyse d'une entree du repertoire
RDIR1
LDB ,X ; lecture premier octet
BEQ AFFIC ; $00 = fin de repertoire
CMPB #$E5 ; $E5 = entree annulee
BEQ RDIR9 ; entree suivante
LDB 11,X ; lecture attribut
ANDB #$0F ; selection demi-octet droit
CMPB #$0F ; attribut #$0F ?
BNE RDIR2 ; entree pour nom court
LBSR LNAME ; entree pour nom long
BRA RDIR9 ; entree suivante
; traitement d'un nom court
RDIR2
CLR EXTSD ; raz flag extension .sd
LDA 8,X ; 1er caractere extension
ANDA #$DF ; passage en majuscules
CMPA #$53 ; test 'S' de SD
BNE RDIR3 ; ce n'est pas un fichier .sd
LDA 9,X ; 2e caractere extension
ANDA #$DF ; passage en majuscules
CMPA #$44 ; test 'D' de SD
BEQ RDIR4 ; c'est un fichier .sd
RDIR3
INC EXTSD ; ce n'est pas un fichier .sd
RDIR4
LBSR GETLBA ; recherche du LBA
LDB [TFIN] ; premier caractere du nom
CMPB #$20 ; test espace
BNE RDIR7 ; non : il y a un nom long
LBSR SNAME ; oui : decodage nom court
; ajout d'une ligne dans la table des noms de fichiers
RDIR7
LDY TFIN ; adresse ligne courante
TST EXTSD ; test extension .sd
BNE RDIR8 ; sinon ignorer le fichier
LEAY 45,Y ; adresse ligne suivante
CMPY TMAX ; test taille de la table
BHI AFFIC ; table pleine
STY TFIN ; stockage adresse
RDIR8
LBSR LINIT ; raz ligne suivante
; passage a l'entree suivante
RDIR9
LEAX 32,X ; Adresse entree suivante
CMPX FINBUF ; Fin du buffer
BNE RDIR1 ; Traitement entree suivante
; lecture secteur suivant
LDD DSECT ; secteur debut directory
ADDD #$0001 ; secteur suivant
STD DSECT ; nouveau debut directory
LBRA RDSECT ; lecture secteur directory
;------------------------------------------------------
; TABLE VIDE (PAS DE FICHIER .SD DANS LA CARTE)
;------------------------------------------------------
TVIDE
LDY #NOFILE ; adresse message d'erreur
LBSR WSTR ; affichage d'une chaine
BSR RCHAR ; lecture du clavier
TSTB ; test de la touche
BEQ TVIDE ; pas de touche enfoncee
LBRA RETOUR ; retour au Basic
;------------------------------------------------------
; AFFICHAGE D'UNE LISTE DE 16 NOMS
;------------------------------------------------------
AFFIC
LDY TTOP ; adresse premier nom
CMPY TFIN ; test fin de table
BEQ TVIDE ; table vide
LBSR LOCAT6 ; positionnement ligne 6
LDB #$10 ; compteur de boucles
PSHS B ; empilage compteur
AFFIC1
CMPY TFIN ; test fin de table
BLS AFFIC2 ; fin de table non depassee
LEAY -45,Y ; rester en fin de table
AFFIC2
LBSR DISP ; affichage d'une ligne
DEC ,S ; decrementation compteur
BNE AFFIC1 ; ligne suivante
PULS B ; depilage compteur
;------------------------------------------------------
; TEST DU CLAVIER
;------------------------------------------------------
CLAV
BSR RCHAR ; lecture du clavier
CMPB #$0D ; ENTREE
LBEQ SETLBA ; changement image disquette
CMPB #$0A ; fleche bas
BEQ BAS ; ligne suivante
CMPB #$0B ; fleche haut
BEQ HAUT ; ligne precedente
CMPB #$09 ; fleche droite
BEQ DROITE ; ecran suivant
CMPB #$08 ; fleche gauche
BEQ GAUCHE ; ecran precedent
CMPB #$02 ; touche STOP
LBEQ STOP ; sortie sans selection
BRA CLAV ; nouveau test
;------------------------------------------------------
; LECTURE DU CLAVIER (RETOUR DANS LE REGISTRE B)
; Version pour TO remplacee par SWI #$8A pour MO
;------------------------------------------------------
RCHAR
JMP $E806 ; lecture du clavier
;------------------------------------------------------
; TRAITEMENT FLECHE DROITE
;------------------------------------------------------
DROITE
LDY TTOP ; adresse haut ecran
LEAY 720,Y ; adresse haut ecran suivant
CMPY TFIN ; test fin de table
BHS CLAV ; ne rien faire en fin de table
; changement d'ecran
STY TTOP ; haut de l'ecran precedent
STY TSEL ; stockage nouvelle adresse
BRA AFFIC ; nouvel affichage ecran complet
;------------------------------------------------------
; TRAITEMENT FLECHE GAUCHE
;------------------------------------------------------
GAUCHE
LDY TTOP ; adresse haut ecran
LEAY -720,Y ; adresse haut ecran precedent
CMPY TDEB ; test debut de table
BCS CLAV ; ne rien faire si plus petit
; changement d'ecran
STY TTOP ; haut de l'ecran precedent
STY TSEL ; stockage nouvelle adresse
BRA AFFIC ; nouvel affichage ecran complet
;------------------------------------------------------
; TRAITEMENT FLECHE VERS LE BAS
;------------------------------------------------------
BAS
LDY TSEL ; adresse ligne selectionnee
LEAY 45,Y ; adresse ligne suivante
CMPY TFIN ; test fin de table
BEQ CLAV ; ne rien faire en fin de table
STY TSEL ; stockage nouvelle adresse
; test de depassement bas ecran
LDY TTOP ; adresse haut ecran
LEAY 720,Y ; adresse haut ecran suivant
CMPY TSEL ; comparaison ligne selectionnee
BNE BAS1 ; pas de changement d'ecran
; changement d'ecran
STY TTOP ; haut de l'ecran suivant
LBRA AFFIC ; nouvel affichage ecran complet
; pas de changement d'ecran
BAS1
LDY TSEL ; adresse ligne selectionnee
LEAY -45,Y ; adresse ligne precedente
LBSR LOCATY ; positionnement sur la ligne
LBSR DISP ; affichage ligne precedente
LBSR DISP ; affichage ligne selectionnee
LBRA CLAV ; retour au test du clavier
;------------------------------------------------------
; TRAITEMENT FLECHE VERS LE HAUT
;------------------------------------------------------
HAUT
LDY TSEL ; adresse ligne selectionnee
CMPY TDEB ; test debut de table
LBEQ CLAV ; ne rien faire en debut de table
LEAY -45,Y ; adresse ligne precedente
STY TSEL ; stockage nouvelle adresse
; test de depassement haut ecran
LDY TTOP ; adresse haut ecran
LEAY -45,Y ; adresse ligne precedente
CMPY TSEL ; comparaison ligne selectionnee
BNE HAUT1 ; pas de changement d'ecran
; changement d'ecran
LEAY -675,Y ; adresse page precedente
STY TTOP ; haut de l'ecran precedent
LBRA AFFIC ; nouvel affichage ecran complet
; pas de changement d'ecran
HAUT1
LDY TSEL ; adresse ligne selectionnee
LBSR LOCATY ; positionnement sur la ligne
LBSR DISP ; affichage ligne selectionnee
LBSR DISP ; affichage ligne suivante
LBRA CLAV ; retour au test du clavier
;------------------------------------------------------
; INITIALISATION LBA POUR CHANGEMENT IMAGE DISQUETTE
;------------------------------------------------------
SETLBA
LDY TSEL ; adresse ligne selectionnee
LDA CSIZE ; nombre de secteurs par cluster
; multiplication par le nombre de secteurs/cluster
SETLB1
LSRA ; divise par 2
BEQ SETLB2
LSL 44,Y ; decalage octet 4
ROL 43,Y ; decalage octet 3
ROL 42,Y ; decalage octet 2
ROL 41,Y ; decalage octet 1
BRA SETLB1 ; nouvelle boucle
; ajout du secteur du cluster zero
SETLB2
LDD FSECT ; numero secteur cluster zero
ADDB 44,Y ; ajout octet 4
ADCA 43,Y ; ajout octet 3 + retenue
STD 43,Y ; stockage octets 3 et 4
LDD 41,Y ; octets 1 et 2
ADCB #0 ; ajout retenue
ADCA #0 ; ajout retenue
STD 41,Y ; stockage octets 1 et 2
TST <SD_SEL ; test du type de carte
BMI SETLB4 ; carte SDHC, sinon calcul pour SD
; initialisation LBA du fichier pour carte SD
SETLB3
CLRB ; zero
STB <SD_LB0+3 ; octet 4 a zero
LDB 42,Y ; octet de poids fort
LSLB ; multiplie par 2
STB <SD_LB0 ; octet 1 (sans retenue)
LDD 43,Y ; octets 2 et 3
LSLB ; multiplication par 2
ROLA ; multiplication par 2
STD <SD_LB0+1 ; stockage octets 2 et 3
BCC RET_OK ; stockage LBA dans la carte
INC <SD_LB0 ; ajout retenue
BRA RET_OK ; stockage LBA dans la carte
; initialisation LBA du fichier pour carte SDHC
SETLB4
LDD 41,Y ; deux octets de poids fort
STD <SD_LB0 ; stockage
LDD 43,Y ; deux octets de poids faible
STD <SD_LB0+2 ; stockage
;------------------------------------------------------
; RETOUR APRES SELECTION REUSSIE
;------------------------------------------------------
; SD_LB0 contient le LBA de debut du fichier .sd
; SD_SEL contient le type de carte (bit 7)
; SD_SEL est complete par $55 (indicateur de selection)
; SD_LB0 est copié dans SAVLB0 (en pile systeme)
; SD_SEL est copié dans SAVSEL (en pile systeme)
; En cas de reset à chaud de l'ordinateur,
; SD_LB0 et SD_SEL seront effaces. SAVLB0 et SAVSEL
; permettront au controleur SDDRIVE de les restaurer.
;------------------------------------------------------
RET_OK
; Positionnement de l'indicateur de selection
LDA <SD_SEL ; indicateur selection et type
ANDA #$80 ; garde le type
ORA #$55 ; ajoute l'indicateur de selection
; Copie de sauvegarde des parametres en pile systeme
STA <SD_SEL ; stockage indicateur et type
STA <SAVSEL ; copie en pile systeme
LDD <SD_LB0 ; octets 1 et 2 de LB0
STD <SAVLB0 ; copie en pile systeme
LDD <SD_LB0+2 ; octets 3 et 4 de LB0
STD <SAVLB0+2 ; copie en pile systeme
STOP
; Effacement de l'écran et selection couleurs
LDY #EFFACE ; efface et retablit bleu/cyan
BSR WSTR ; affichage d'une chaine
BSR VIDEOC ; selection video couleur MO
;------------------------------------------------------
; RESTAURATION POINTEUR DE PILE ET RETOUR
;------------------------------------------------------
RETOUR
ANDCC #$AF ; active les interruptions
LDS SAVES ; restauration du registre S
RTS
;------------------------------------------------------
; RETOUR EN ERREUR
;------------------------------------------------------
ERROR
LDY #ERREUR
BSR WSTR
BRA RETOUR
;------------------------------------------------------
; SELECTION PAGE VIDEO COULEUR POUR MO UNIQUEMENT
; Pour les MO l'adresse de démarrage est stockee en
; memoire video couleur. On doit voir a l'ecran un
; segment rose et magenta ($E935 en $001E).
; Si la memoire video forme est selectionnee on voit
; des points bleus/cyan, ce n'est pas correct.
;------------------------------------------------------
VIDEOC
LDB >$FFF2 ; poids fort du vecteur SWI3
BPL VIDEO9 ; positif --> TO
LDA $A7C0 ; chargement PA du PIA systeme
ANDA #$FE ; raz b0 (page video couleur)
STA $A7C0 ; selection video couleur
VIDEO9
RTS
;------------------------------------------------------
; LECTURE ET STOCKAGE DU CLUSTER DU FICHIER
;------------------------------------------------------
GETLBA
LDY TFIN ; Y pointe sur la zone du nom
LDA 21,X ; cluster octet 1
STA 41,Y ; LBA octet 1
LDA 20,X ; cluster octet 2
STA 42,Y ; LBA octet 2
LDA 27,X ; cluster octet 3
STA 43,Y ; LBA octet 3
LDA 26,X ; cluster octet 4
STA 44,Y ; LBA octet 4
RTS
;------------------------------------------------------
; AFFICHAGE CHAINE TERMINEE PAR ZERO (Adresse dans Y)
;------------------------------------------------------
WSTR
LDB ,Y+ ; caractere a ecrire
BEQ WSTR9 ; fin de la chainee
BSR WCHAR ; envoi caractere
BRA WSTR ; caractere suivant
WSTR9
RTS
;------------------------------------------------------
; AFFICHAGE CARACTERE (CARACTERE DANS REGISTRE B)
; Version TO remplacee par SWI #$82 pour MO
;------------------------------------------------------
WCHAR
JMP $E803 ; envoi caractere
;------------------------------------------------------
; AFFICHAGE D'UNE LIGNE POINTEE PAR Y
; AU RETOUR Y POINTE SUR LA LIGNE SUIVANTE
;------------------------------------------------------
DISP
CMPY TSEL ; test ligne selectionnee
BNE DISP1 ; ligne normale
BSR INVERS ; inversion video
DISP1
LDA #$29 ; nombre de caracteres 41
DISP2
LDB ,Y+ ; caractere a ecrire
BSR WCHAR ; envoi caractere
DECA ; decrementation compteur
BNE DISP2 ; caractere suivant
LEAY -41,Y
CMPY TSEL ; test ligne selectionnee
BNE DISP9 ; ligne normale
BSR INVERS ; retablir video normale
DISP9
LEAY 45,Y ; adresse ligne suivante
RTS
;------------------------------------------------------
; INVERSION VIDEO
;------------------------------------------------------
INVERS
LDB #$1B ; sequence d'echappement
BSR WCHAR ; envoi caractere
INVER1
LDB #$5C ; inverse video pour TO
; remplace par #$7B pour MO
BSR WCHAR ; envoi caractere
RTS
;------------------------------------------------------
; POSITIONNEMENT SUR LA LIGNE 6
;------------------------------------------------------
LOCAT6
LDB #$1F ; code de positionnement
BSR WCHAR ; envoi caractere
LDB #$46 ; ligne 6
BSR WCHAR ; envoi caractere
LDB #$41 ; colonne 1
BSR WCHAR ; envoi caractere
RTS
;------------------------------------------------------
; POSITIONNEMENT SUR LA LIGNE POINTEE PAR Y
;------------------------------------------------------
LOCATY
PSHS Y ; sauvegarde Y
LDB #$1F ; code de positionnement
BSR WCHAR ; envoi caractere
LDB #$46 ; code pour pointer ligne 6
LOC1
CMPY TTOP ; comparaison a la premiere ligne
BEQ LOC2 ; positionnement ligne B
INCB ; numero ligne suivante
LEAY -45,Y ; adresse ligne precedente
BRA LOC1 ; nouvelle boucle
LOC2
BSR WCHAR ; envoi caractere
LDB #$41 ; colonne 1
BSR WCHAR ; envoi caractere
PULS Y,PC ; retour
;------------------------------------------------------
; INITIALISATION NOUVELLE LIGNE DE 45 CARACTERES
; NOM(39 OCTETS) + CR + LF + ADRESSE(4 OCTETS)
;------------------------------------------------------
LINIT
LDY TFIN
LDD #$202D ; espace et 45 boucles
LINIT1
STA ,Y+ ; octet initialise a espace
DECB ; decrementation compteur
BNE LINIT1 ; octet suivant
LDD #$0D0A ; CR+LF
STD -6,Y ; ajout CR+LF
RTS
;------------------------------------------------------
; EXTRACTION DES CARACTERES DU NOM COURT
;------------------------------------------------------
SNAME
LDY TFIN ; Y pointe sur la zone du nom
CLRB ; compteur de caracteres
SNAME1
LDA B,X ; lecture caractere
CMPA #$20 ; test espace
BEQ SNAME3 ; ignorer les espaces
CMPA #$41 ; caractere A
BLO SNAME2 ; copier si < A
CMPA #$5A ; caractere Z
BHI SNAME2 ; copier si > Z
ORA #$20 ; passer en minuscules
SNAME2
STA ,Y+ ; stockage caractere
SNAME3
INCB ; caractere suivant
CMPB #$08 ; huitieme caractere
BNE SNAME4 ; sinon rien de plus
LDA #$2E ; ajouter un point
STA ,Y+ ; stockage point
SNAME4
CMPB #$0B ; onzieme caractere
BNE SNAME1 ; caractere suivant
RTS
;------------------------------------------------------
; EXTRACTION DES CARACTERES DU NOM LONG
; Chaque entree de repertoire contient 13 caracteres
; On lit uniquement les trois premieres entrees (1-3)
; pour retenir les 39 premiers caracteres du nom
;------------------------------------------------------
LNAME
LDY TFIN ; Y pointe sur la zone du nom
LDA #$0D ; nbre de caracteres par entree
LDB ,X ; sequence number
ANDB #$BF ; slot number
CMPB #$03 ; comparaison avec 3
BHI LNAME9 ; Si superieur ne pas traiter
MUL ; multiplier par 13
SUBD #$0D ; moins 13 --> position 1er caractere
LEAY B,Y ; Y pointe sur 1er caractere
LDA 1,X ; 1er caractere
STA ,Y+ ; stockage
LDA 3,X ; 2eme caractere
STA ,Y+ ; stockage
LDA 5,X ; 3eme caractere
STA ,Y+ ; stockage
LDA 7,X ; 4eme caractere
STA ,Y+ ; stockage
LDA 9,X ; 5eme caractere
STA ,Y+ ; stockage
LDA 14,X ; 6eme caractere
STA ,Y+ ; stockage
LDA 16,X ; 7eme caractere
STA ,Y+ ; stockage
LDA 18,X ; 8eme caractere
STA ,Y+ ; stockage
LDA 20,X ; 9eme caractere
STA ,Y+ ; stockage
LDA 22,X ; 10eme caractere
STA ,Y+ ; stockage
LDA 24,X ; 11eme caractere
STA ,Y+ ; stockage
LDA 28,X ; 12eme caractere
STA ,Y+ ; stockage
LDA 30,X ; 13eme caractere
STA ,Y+ ; stockage
LDB #$0D ; compteur pour 13 boucles
LNAME2
LDA ,-Y ; caractere du nom
BEQ LNAME3 ; test $00
INCA ; transforme $FF en $00
BNE LNAME4 ; test $FF
LNAME3
LDA #$20 ; blanc remplace $00 et $FF
STA ,Y ; stockage dans le nom
LNAME4
DECB ; decrementation compteur
BNE LNAME2 ; boucle suivante
LNAME9
RTS
;------------------------------------------------------
; Initialisation ecran
;------------------------------------------------------
ECRAN
FCB $0C ; effacement ecran
FCB $1B,$20,$40 ; couleur noire
FCB $1B,$20,$57 ; fond blanc
FCB $1B,$67 ; bordure blanche
FCB $1B,$46 ; ecriture cyan
FCB $1F,$46,$41 ; locate 1,6
FCC "Recherche des fichiers sd, patientez..."
FCB $1F,$57,$41 ; locate 1,23
FCC "Quatre fl"
FCB $16,$41,$65 ; è
FCC "ches puis ENTREE pour choisir"
FCB $1F,$58,$41 ; locate 1,24
FCC "STOP pour abandonner sans s"
FCB $16,$42,$65 ; é
FCC "lectionner."
FCB $1F,$45,$41 ; locate 1,5
FCB $1B,$40,$00 ; ecriture noire
;------------------------------------------------------
; Effacement ecran
;------------------------------------------------------
EFFACE
FCB $0C ; effacement ecran
FCB $1B,$20,$44 ; couleur bleu
FCB $1B,$20,$56 ; fond cyan
FCB $1B,$66 ; bordure cyan
FCB $00 ; fin de chaine
;------------------------------------------------------
; Messages d'erreur
;------------------------------------------------------
ERREUR
FCB $0C
FCC " Format de la carte SD non reconnu"
FCB $0D,$0A,$0D,$0A,$00
NOFILE
FCB $1B,$46 ; ecriture cyan
FCB $1F,$46,$41 ; locate 1,6
FCC "Aucun fichier .sd trouv"
FCB $16,$42,$65 ; é
FCC " dans la carte"
FCB $00 ; fin de chaine
;------------------------------------------------------
; Logo SDDRIVE avec compactage
; La chaine de caractere est terminee par un octet $00
; Si un octet est inferieur a $20, c'est le nombre de
; repetitions de l'octet suivant. Les octets utiles
; doivent être augmentes de $41.
; L'affichage se fait par colonne de gauche a droite
; et de haut en bas.
;------------------------------------------------------
SDLOGO
FDB $15BF,$02DE,$02FE,$033E,$03BE,$FE02,$BFC2,$02CE
FDB $DE04,$FE02,$DECE,$C6C0,$07BF,$0ABE,$C23E,$04BE
FDB $02BB,$BD07,$BEDE,$C204,$BF0F,$BE7F,$03BF,$3FAF
FDB $BD06,$BE3E,$DE02,$CE0F,$BE07,$BF9F,$BB10,$BEBB
FDB $3F05,$BE0A,$BF3F,$9F02,$AF05,$B702,$AF02,$9F7F
FDB $02BF,$C003,$AF02,$9F0E,$BF03,$DE03,$FE03,$3E04
FDB $BE02,$FE03,$3EC6,$0BBF,$C23E,$0CBE,$3F03,$BEBB
FDB $B79F,$BFC6,$06BF,$C2C6,$FE0D,$BE9F,$BF9F,$3FBF
FDB $C0CE,$FEB7,$7FCE,$13BE,$BB7F,$04BF,$3BBB,$9FBF
FDB $CE12,$BEBD,$AF7F,$09BF,$BBBD,$0EBE,$BBB7,$9F3F
FDB $0FBF,$3F7F,$079F,$7F3F,$0DBF,$3E1E,$FF3E,$BE07
FDB $BFFE,$0EDF,$FE07,$BF02,$BE07,$BFBE,$0EBF,$BE07
FDB $BF02,$BE07,$BFBE,$0EBF,$BE07,$BF02,$BE07,$BFAF
FDB $C70C,$C3C7,$AF07,$BFBE,$7FEF,$C702,$C316,$C102
FDB $C3C7,$EF7F,$DE1E,$CFDE,$BE07,$BFCE,$06C7,$CE07
FDB $BFCE,$07C7,$B7BE,$07BF,$BE06,$BFBE,$07BF,$BE08
FDB $BFBE,$07BF,$BE06,$BFBE,$07BF,$BBC1,$C006,$BFBE
FDB $07BF,$BBC1,$04C0,$C1BB,$0ABF,$3FFF,$DFCF,$C7C6
FDB $AFCB,$C102,$C00E,$BF02,$C0C1,$CBAF,$FFDF,$CFC7
FDB $C3C1,$C0BE,$C604,$C30E,$430C,$C346,$BD1E,$C1BD
FDB $DECF,$C702,$C3C1,$02C0,$18BF,$BDC1,$C005,$BF3F
FDB $02FF,$DF02,$CFC7,$02C3,$C102,$C00F,$BF02,$3FFF
FDB $02DF,$CF02,$C7C3,$02C1,$C005,$BF3F,$02FF,$DF02
FDB $CFC7,$02C3,$C102,$C00F,$BF02,$3FFF,$02DF,$D002
FDB $C9C3,$07BF,$BE08,$BFC0,$02C1,$C302,$C7CF,$02DF
FDB $FF02,$3F04,$BF02,$C0C1,$02C3,$C7CF,$AFCE,$C7CF
FDB $02DF,$FF02,$3F04,$BF02,$C0C1,$02C3,$C702,$CFDF
FDB $02FF,$3F08,$BFBE,$C0C1,$02C3,$C702,$CFDF,$02FF
FDB $3F14,$BFCE,$1EC7,$CEBE,$07BF,$C603,$C3C6,$06BF
FDB $C603,$C3C6,$07BF,$02BE,$07BF,$BE03,$BFBE,$06BF
FDB $BE03,$BFBE,$07BF,$02BE,$07BF,$BE03,$BFBE,$06BF
FDB $BE03,$BFBE,$07BF,$02BE,$07BF,$BE03,$BFB7,$06C7
FDB $B703,$BFBE,$07BF,$02BE,$07C0,$BE0E,$BFBE,$07C0
FDB $BE00
;------------------------------------------------------
; Zones de TRAVAIL
;------------------------------------------------------
EXTSD
FCB $00 ; extension .sd (0=oui, 1=non)
RS512
FDB $E02B ; fonction de lecture secteur (TO)
CSIZ2
FCB $00 ; nombre de secteurs par cluster (sur 2 octets)
CSIZE
FCB $00 ; nombre de secteurs par cluster (sur 1 octet)
RSECT
FDB $0000 ; nombre de secteurs reserves
PSECT
FDB $0000 ; numero secteur debut partition
DSECT
FDB $0000 ; numero secteur debut directory
FSECT
FDB $0000 ; numero secteur de data cluster 0
BUFFER
FDB $9D00 ; adresse buffer de lecture carte SD
FINBUF
FDB $9F00 ; adresse de fin du buffer de lecture
TDEB
FDB $A000 ; adresse debut table des noms (TO)
TFIN
FDB $A000 ; adresse fin table des noms
TTOP
FDB $A000 ; adresse nom en haut d'ecran (TO)
TSEL
FDB $A000 ; adresse nom selectionne (TO)
TMAX
FDB $E000 ; limite haute de la table des noms (TO)
SAVES
FDB $0000 ; sauvegarde du registre S
SD_LBA
FDB $0000 ; adresse LBA pour CMD17
END
Daniel
L'obstacle augmente mon ardeur.
L'obstacle augmente mon ardeur.
Re: [Thomson] SDDRIVE
Il ne faut pas rêver, je n'ai pas porté sonic2 sur MO5, il ne fonctionne que sur TO8/TO8D/TO9+
C'était juste pour voir si quelqu'un remarquerait l'anomalie
Daniel
L'obstacle augmente mon ardeur.
L'obstacle augmente mon ardeur.
-
- Messages : 1254
- Inscription : 24 déc. 2021 09:46
- Localisation : Région parisienne
Re: [Thomson] SDDRIVE
Autant pour moi, je n'ai pas fait très attention.
Re: [Thomson] SDDRIVE
Bonjour,
je voudrais en commander un pour mon MO5 , cela permet t'il d'enregistrer nos programmes? merci de votre réponse.
Cordialement.
je voudrais en commander un pour mon MO5 , cela permet t'il d'enregistrer nos programmes? merci de votre réponse.
Cordialement.
Re: [Thomson] SDDRIVE
Bonjour acdan, et bienvenue dans le forum !
SDDRIVE simule deux lecteurs de disquettes, en écriture comme en lecture, et permet donc de sauver des programmes et d'écrire des fichiers pour les réutiliser ensuite. Pour un développeur c'est l'outil idéal, car il permet de programmer directement avec l'ordinateur Thomson, mais aussi de créer les applications sur PC avec des outils modernes et de les transférer par carte SD vers l'ordinateur Thomson pour les tester.
La plupart des démonstrations récentes de musique et de vidéo, ainsi que quelques jeux (en particulier kandykrush et sudoku) ont été développés en utilisant SDDRIVE. Les développeurs actifs sur Thomson ont presque tous (sauf un réfractaire ) un contrôleur SDDRIVE. Le seul argument du réfractaire est que SDDRIVE n'existait pas dans les années 1980, et il veut utiliser uniquement du matériel d'époque.
Pour le MO5, SDDRIVE est un très bon choix. En complément il est conseillé de lui adjoindre une extension musique et jeux pour bénéficier du son des démonstrations de vidéo et de musique, et aussi de la synthèse vocale et de la musique de certains jeux (Karaté, SuperTennis, etc.).
SDDRIVE simule deux lecteurs de disquettes, en écriture comme en lecture, et permet donc de sauver des programmes et d'écrire des fichiers pour les réutiliser ensuite. Pour un développeur c'est l'outil idéal, car il permet de programmer directement avec l'ordinateur Thomson, mais aussi de créer les applications sur PC avec des outils modernes et de les transférer par carte SD vers l'ordinateur Thomson pour les tester.
La plupart des démonstrations récentes de musique et de vidéo, ainsi que quelques jeux (en particulier kandykrush et sudoku) ont été développés en utilisant SDDRIVE. Les développeurs actifs sur Thomson ont presque tous (sauf un réfractaire ) un contrôleur SDDRIVE. Le seul argument du réfractaire est que SDDRIVE n'existait pas dans les années 1980, et il veut utiliser uniquement du matériel d'époque.
Pour le MO5, SDDRIVE est un très bon choix. En complément il est conseillé de lui adjoindre une extension musique et jeux pour bénéficier du son des démonstrations de vidéo et de musique, et aussi de la synthèse vocale et de la musique de certains jeux (Karaté, SuperTennis, etc.).
Daniel
L'obstacle augmente mon ardeur.
L'obstacle augmente mon ardeur.
Re: [Thomson] SDDRIVE
Merci de votre réponse, je découvre le MO5, j'ai toujours été sur C64, je dois recevoir d'ici peu mon MO5 mais sans lecteur cassette et franchement si je peu m'en passer c'est mieux ainsi, comment faire pour commander le SDDRIVE et le payer?
Je vois que vous avez aussi pas mal de documentation pour la programmation sur MO5, c'est vraiment bien et cela sera très utile.
Je vois que vous avez aussi pas mal de documentation pour la programmation sur MO5, c'est vraiment bien et cela sera très utile.
Re: [Thomson] SDDRIVE
Bienvenue dans l'univers Thomson. Le MO5 n'est pas l'ordinateur le plus puissant de la gamme, mais il est très attachant. C'était mon premier ordinateur personnel et il reste mon favori. En complément de la documentation du site dcmoto, le forum system-cfg est le meilleur moyen pour obtenir de l'aide.
Le lecteur de cassette peut intéresser les collectionneurs pour reconstituer une configuration "d'époque", mais franchement il vaut mieux ne pas s'en servir. C'est une perte de temps incroyable par sa lenteur, son manque de fiabilité, la difficulté pour lire et écrire des cassettes avec un PC.
Pour commander SDDRIVE c'est ici : viewtopic.php?f=10&t=9196
Il suffit de poster un message dans le fil de discussion. Après accord sur la configuration exacte et le paiement par transfert paypal, l'expédition du matériel est immédiate.
Le lecteur de cassette peut intéresser les collectionneurs pour reconstituer une configuration "d'époque", mais franchement il vaut mieux ne pas s'en servir. C'est une perte de temps incroyable par sa lenteur, son manque de fiabilité, la difficulté pour lire et écrire des cassettes avec un PC.
Pour commander SDDRIVE c'est ici : viewtopic.php?f=10&t=9196
Il suffit de poster un message dans le fil de discussion. Après accord sur la configuration exacte et le paiement par transfert paypal, l'expédition du matériel est immédiate.
Daniel
L'obstacle augmente mon ardeur.
L'obstacle augmente mon ardeur.
Re: [Thomson] SDDRIVE
Les programmes sont sauvegardés dans une image de disquette au format .sd de la carte microSD.
La liste des fichiers de la disquette est donnée par la commande DIR.
Pour les communiquer à un autre utilisateur, il suffit de lui transmettre le fichier .sd, en le copiant avec un PC à partir de la carte.
Si cet autre utilisateur possède SDDRIVE, il peut copier le fichier .sd sur sa carte microSD et accéder aux programmes avec l'ordinateur Thomson.
Sinon, avec un PC, il peut ouvrir le fichier .sd avec l'émulateur dcmoto pour exécuter les programmes, les copier, les modifier, les lister, les imprimer, etc.
Daniel
L'obstacle augmente mon ardeur.
L'obstacle augmente mon ardeur.