Conversion cassettes MO5 en disquettes et fichiers .sd

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

Répondre
Daniel
Messages : 9739
Enregistré le : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Conversion cassettes MO5 en disquettes et fichiers .sd

Message par Daniel » 25 févr. 2015 10:44

La plupart des jeux MO5 sur cassette n'existent pas en version disquette.
Il est intéressant de les convertir, pour deux raisons :
- La cassette est peu fiable et très longue à charger
- La version disquette peut aussi être utilisée sur carte SD avec l'interface SDMOTO et le contrôleur CS91-280

Pour la plupart des jeux la conversion est relativement facile. Pour d'autres ce n'est pas le cas, en particulier quand le jeu occupe toute la mémoire et ne laisse pas assez de place pour le DOS. Par exemple l'Aigle d'Or, jeu mythique pour les thomsonistes.

J'ai donc commencé par ce jeu. Mes tentatives précédentes étaient restées infructueuses, mais cette fois j'ai pris le temps nécessaire pour reconstituer les sources, les recompiler, les translater et créer un chargeur spécial pour mettre le jeu en mémoire en écrasant le DOS. C'est un peu compliqué, mais le résultat en vaut la peine.

Les versions l-aigle-d-or_mo5.fd et l-aigle-d-or_mo5.sd sont disponibles sur le site http://dcmoto.free.fr

Image
Daniel
L'obstacle augmente mon ardeur.

Avatar du membre
jice
Messages : 55
Enregistré le : 21 avr. 2014 15:08

Re: Conversion cassettes MO5 en disquettes et fichiers .sd

Message par jice » 25 févr. 2015 12:53

Bravo Daniel !!!
TO7 - TO7/70 - TO8 - TO9+

__sam__
Messages : 3815
Enregistré le : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: Conversion cassettes MO5 en disquettes et fichiers .sd

Message par __sam__ » 25 févr. 2015 14:25

Tu utilises le minidos de la rom du contrôleur disk, ou est-ce que tu charges le jeu directement depuis les secteurs disk en mémoire sans passer par un système de fichiers ?
Samuel.
Amiga 500+GVP530(MMU/FPU) (hs), A1200(030@50mhz/fpu/64mb/cf 8go), R-Pi, TO9, TO8D, TO8.
New Teo 1.8.4 8)

Daniel
Messages : 9739
Enregistré le : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: Conversion cassettes MO5 en disquettes et fichiers .sd

Message par Daniel » 25 févr. 2015 16:09

J'ai préféré lire séquentiellement les secteurs physiques de la disquette, c'est plus facile à programmer et plus rapide à l'exécution. Ce n'est pas forcément la méthode la plus transparente, mais en étudiant les jeux commerciaux sur disquette j'ai vu que beaucoup utilisent cette technique. Les démos de PULS le font aussi, je crois.

Pour le débutant c'est surprenant, car quand il fait un DIR il ne voit pas le programme.
Daniel
L'obstacle augmente mon ardeur.

__sam__
Messages : 3815
Enregistré le : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: Conversion cassettes MO5 en disquettes et fichiers .sd

Message par __sam__ » 25 févr. 2015 19:03

Lire les secteurs est effectivement le truc le plus simple par rapport au système de fichiers.

Tant que les secteurs correspondants sont marquées comme occupés dans la FAT, alors c'est bon il n'y aura aucun risque d'écrasement si on ajoute un fichier sur la diskette.
Samuel.
Amiga 500+GVP530(MMU/FPU) (hs), A1200(030@50mhz/fpu/64mb/cf 8go), R-Pi, TO9, TO8D, TO8.
New Teo 1.8.4 8)

Daniel
Messages : 9739
Enregistré le : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: Conversion cassettes MO5 en disquettes et fichiers .sd

Message par Daniel » 26 févr. 2015 16:59

Conversion en disquette et carte SD de la cassette Crystann pour MO5.

Même difficulté que pour l'Aigle d'Or, et même solution : chargement du jeu avec écrasement du DOS à partir de secteurs physiques de la disquette, puis restauration des registres.

http://dcmoto.free.fr/programmes/crystann/index.html

Image Image
Daniel
L'obstacle augmente mon ardeur.

Avatar du membre
Carl
Modérateur
Messages : 9814
Enregistré le : 08 avr. 2007 13:21
Localisation : http://www.doledujura.fr
Contact :

Re: Conversion cassettes MO5 en disquettes et fichiers .sd

Message par Carl » 26 févr. 2015 18:24

Beau boulot Daniel !

Carl

Daniel
Messages : 9739
Enregistré le : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: Conversion cassettes MO5 en disquettes et fichiers .sd

Message par Daniel » 27 févr. 2015 18:22

Conversion en disquette et carte SD de la cassette Flipper pour MO5.

Conversion différente des précédentes : le programme ECHO.BIN de la cassette contient un "MINIDOS" permettant de charger des programmes sur disquette. C'est assez incroyable, car le catalogue officiel Thomson ne mentionne pas de version disquette, mais uniquement cassette MO5, TO7/70 et MO6.

J'ai seulement écrit un secteur de boot pour charger ECHO.BIN à partir de secteurs physiques, et ensuite ECHO.BIN charge lui-même les autres fichiers. Sauf qu'il est prévu pour des disquettes simple densité (secteurs de 128 octets), il a été nécessaire de modifier quelques instructions pour fonctionner en double densité. Vous pouvez juger vous-même du résultat. Sur MO5 (disquette ou carte SD) ou sur émulateur, le programme se lance par la commande "DOS".
http://dcmoto.free.fr/programmes/flipper/index.html

Image Image
Daniel
L'obstacle augmente mon ardeur.

Daniel
Messages : 9739
Enregistré le : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: Conversion cassettes MO5 en disquettes et fichiers .sd

Message par Daniel » 03 mars 2015 17:25

Conversion en disquette et carte SD de la cassette Sorcery pour MO5.

La partie présentation est classique : programme de chargement et d'affichage d'une image compressée. J'utilise le même fichier binaire que la version cassette, lancé par l'AUTO.BAT, avec juste une petite modification pour permettre le retour au Basic.

Le jeu lui-même est en $2140-$5A8C avec des données en $6E30-$9FFF. Ces données sont chargées par l'AUTO.BAT. Pour le jeu j'ai utilisé la même technique que pour les précédents : fichier binaire dans les secteurs physiques de la disquette, avec un programme de chargement qui écrase les vecteurs du Basic et le DOS, puis lance l'exécution.
http://dcmoto.free.fr/programmes/sorcery/index.html

Image Image
Daniel
L'obstacle augmente mon ardeur.

Daniel
Messages : 9739
Enregistré le : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: Conversion cassettes MO5 en disquettes et fichiers .sd

Message par Daniel » 05 mars 2015 20:03

Conversion en disquette et carte SD de la cassette Androïdes pour MO5.

Encore un jeu qui écrase le Basic (pas seulement le DOS). Il utilise des zones de travail dans les vecteurs de travail du Basic en $2100. C'est classique chez Infogrames. Comme il n'occupe pas toute la mémoire du MO5, j'ai pu le charger par simple LOADM à une adresse plus haute. Ensuite un programme en langage machine le copie à sa place en $2D79 et le lance en $49A9.

http://dcmoto.free.fr/programmes/androides/index.html

Image
Daniel
L'obstacle augmente mon ardeur.

__sam__
Messages : 3815
Enregistré le : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: Conversion cassettes MO5 en disquettes et fichiers .sd

Message par __sam__ » 05 mars 2015 20:29

Pour TO, j'avais fait pareil avec ANDROID dont on peut trouver ici une version compressées par EXOMIZER2. Résultat: un fichier K7 de 6ko au lieu de 20-30ko :) Pour la zone mémoire libre, je ne m'étais pas compliqué la vie. Ces 6ko sont chargés directement dans la mémoire écran et décompressés dans la zone $6000-$DFFF en écrasant tout.

Bien évidemment, avec la carte SD la compression n'est plus nécessaire pour diminuer les temps de chargement, mais l'usage de la RAM écran pour le code et pour les buffers est un truc facilement exploitable si on ne tient pas à conserver l'image de chargement.
Samuel.
Amiga 500+GVP530(MMU/FPU) (hs), A1200(030@50mhz/fpu/64mb/cf 8go), R-Pi, TO9, TO8D, TO8.
New Teo 1.8.4 8)

Daniel
Messages : 9739
Enregistré le : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: Conversion cassettes MO5 en disquettes et fichiers .sd

Message par Daniel » 05 mars 2015 21:08

Je crois que nous avons les mêmes méthodes, j'utilise aussi ce procédé "bestial" : chargement de toute la ram avec une sauvegarde de dcmoto. Le loader et la pile système sont en mémoire vidéo :
http://dcmoto.free.fr/programmes/sdloadm5/index.html

Image

Dans mes conversions de cassettes MO5 sur disquette, j'essaye de faire mieux, pour respecter au maximum le programme original. En particulier je garde les écrans de présentation et les étapes du chargement. Par exemple, dans Androïdes, il y a l'écran de présentation avec l'ancien logo "Infogrames" et la mention "patience, le programme se charge", puis le chargement des décors annoncé pour durer 3 minutes (en réalité il dure 1/2 seconde), et enfin l'écran d'accueil. Même souci du respect de l'enchaînement pour Flipper, Sorcery, Crystann et l'Aigle d'Or. Le but est de retrouver les jeux à l'identique sur carte SD, sauf que le chargement dure 8 secondes contre 15 minutes avec la cassette.

Code : Tout sélectionner

********************************
*  CHARGEUR JEU ANDROIDES      *
*  Daniel Coulom - 04/03/2015  *
********************************
*
* Le chargeur affiche l'ecran
* d'accueil, copie la RAM de
* $5D79-$9F8C a $2D79-$6F8C
* et lance le jeu en $44A9.

********************************  
* Affichage ecran attente
********************************  
  ORG    $9E20
  LDX    #ECRAN             
ECRAN1
  LDB    ,X+                   
  SWI
  FCB    $02     initialisation ecran         
  CMPB   #$04           
  BNE    ECRAN1              
  LDY    ,X++    $0292   
  LDD    ,X++    $1604   
  LDB    $A7C0              
  ANDB   #$FE                 
  STB    $A7C0   selection video couleur          
ECRAN2
  LDB    LOGO+3  compteur de colonnes $04            
  PSHS   Y            
ECRAN3
  INC    $A7C0   selection video forme              
  LDA    ,X+           
  STA    ,Y      octet forme     
  DEC    $A7C0   selection video couleur        
  LDA    ,X+           
  STA    ,Y+     octet couleur     
  DECB                 
  BNE    ECRAN3          
  PULS   Y            
  LEAY   $28,Y        
  DEC    LOGO+2  compteur de lignes $16        
  BNE    ECRAN2             
  RTS

********************************  
DONNEES
********************************  
ECRAN
  FDB $1f20,$201f,$1214,$1b60
  FDB $1b50,$1b47,$0c1f,$464f
  FDB $1b47,$2049,$4e46,$4f47
  FDB $5241,$4d45,$531f,$4950
  FDB $1b47,$2070,$7265,$7365
  FDB $6e74,$651f,$4f4f,$1b43
  FDB $2020,$414e,$4452,$4f49
  FDB $4445,$5320,$201f,$5644
  FDB $1b43,$2070,$6174,$6965
  FDB $6e63,$652c,$6a65,$2063
  FDB $6861,$7267,$6520,$6c65
  FDB $2070,$726f,$6772,$616d
  FDB $6d65,$2021
  FCB $04
LOGO  
  FDB $0292,$1604
  FDB $0000,$3f50,$fc50,$0000
  FDB $0750,$c057,$0357,$e050
  FDB $f854,$0007,$0007,$1f51
  FDB $8154,$8057,$0007,$0151
  FDB $8254,$4057,$0007,$0151
  FDB $8454,$4057,$0007,$0151
  FDB $8454,$4657,$0007,$0151
  FDB $8354,$8957,$0007,$0151
  FDB $8054,$0457,$8e57,$0151
  FDB $8754,$f457,$9257,$0151
  FDB $8454,$1757,$2257,$0151
  FDB $8454,$1057,$2457,$0151
  FDB $8454,$7f57,$9c57,$0151
  FDB $8454,$5057,$8057,$0151
  FDB $8454,$5357,$fe57,$0151
  FDB $8454,$5257,$8257,$0151
  FDB $8454,$5257,$8257,$0151
  FDB $8454,$5257,$8257,$0151
  FDB $8454,$5257,$8257,$0151
  FDB $fc54,$5257,$8257,$1f51
  FDB $0340,$5257,$8357,$e050
  FDB $0000,$7357,$8357,$0000

********************************  
* Transfert de $5C00 a $2D79
********************************  
  ORG    $9F80
  LDX    #$5C00
  LDY    #$2D79
MOVE  
  LDD    ,X++
  STD    ,Y++
  CMPX   #$9E14
  BNE    MOVE 
  JMP    $44A9

  END

===========================
AUTO.BAT
===========================
10 CLEAR,&H5BFF
20 LOCATE0,0,0
30 LOADM"LOADER",,R
40 LOADM"ANDROIDE"
50 LOADM"DECORS"
60 EXEC&H9F80

Daniel
L'obstacle augmente mon ardeur.

__sam__
Messages : 3815
Enregistré le : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: Conversion cassettes MO5 en disquettes et fichiers .sd

Message par __sam__ » 05 mars 2015 21:33

Oui 8secs, et sans "?IO Error" au bout de 14mins de bruits incessants.

Chapeau pour l'esprit du respect de l'œuvre originale. Il faut beaucoup de temps et de patience.
Samuel.
Amiga 500+GVP530(MMU/FPU) (hs), A1200(030@50mhz/fpu/64mb/cf 8go), R-Pi, TO9, TO8D, TO8.
New Teo 1.8.4 8)

Avatar du membre
6502man
Messages : 8512
Enregistré le : 12 avr. 2007 22:46
Localisation : VAR
Contact :

Re: Conversion cassettes MO5 en disquettes et fichiers .sd

Message par 6502man » 07 mars 2015 00:03

Sacrée boulot de conversion, et chapeau pour le respect de l’œuvre originale :D
C'est une bonne lesson d'humilité :wink:

Pour les jeux qui chargent des données au court du jeu ca risque de poser problème pour la conversion ?
Phil.

www.6502man.com

To bit or not to bit.
1 or 0.

Daniel
Messages : 9739
Enregistré le : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: Conversion cassettes MO5 en disquettes et fichiers .sd

Message par Daniel » 07 mars 2015 08:50

6502man a écrit :Pour les jeux qui chargent des données au court du jeu ca risque de poser problème pour la conversion ?
C'est ce qui fait la difficulté (et l'intérêt) de la conversion :D

Conversion en disquette et carte SD de la cassette Super Tennis pour MO5.

Le programme de présentation en Basic est exécuté normalement avec le DOS. Il lance ensuite un chargeur spécial en mémoire vidéo, qui lit le jeu dans des secteurs physiques de la disquette et le charge en RAM en écrasant le DOS.
http://dcmoto.free.fr/programmes/super- ... index.html

Image Image

Code : Tout sélectionner

********************************
*  CHARGEUR JEU SUPER-TENNIS   *
*  Daniel Coulom - 06/03/2015  *
********************************
*
* Le chargeur initialise la 
* RAM du MO5 de $4150 a $9FFF
* et lance le jeu en $5500.
* Le dump memoire est dans
* les secteurs physiques de
* la disquette a partir du 
* secteur 1 de la piste 3.

*****************************  
* Lecture memoire
* $4150-$9FFF
*****************************  
  ORG  $1F40
  PSHS CC       empile registre CC
  LDS  #$1FFF   pile systeme en memoire video
  ORCC #$50     desactive interrruptions
  LDA  #$20     valeur pour DP
  TFR  A,DP     initialise DP
  LDA  #$02     lecture secteur
  STA  <$48     code commande
  LDX  #$4150   adresse du buffer
  LDD  #$0300   piste et secteur
LECT  
  INCB          secteur suivant 
  BSR  LSECT    lecture secteur
  LEAX 256,X    buffer suivant
  CMPX #$A050   test de fin
  BEQ  REST     chargement termine
  CMPB #$10     test secteur 16
  BNE  LECT     secteur suivant
  INCA          piste suivante
  CLRB          raz secteur
  BRA  LECT     secteur suivant

*****************************  
* Restauration registre CC
*****************************  
REST  
  PULS CC
  JMP  $5500  
  
*****************************  
* Lecture secteur B piste A
* Adresse du buffer dans X
*****************************  
LSECT
  STX  <$4F    adresse du buffer
  STD  <$4B    piste et secteur
  JSR  $A004   lecture secteur
  RTS
  
  END
Daniel
L'obstacle augmente mon ardeur.

Répondre