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 : Carl, Papy.G, fneck

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

Re: Conversion cassettes MO5 en disquettes et fichiers .sd

Message par 6502man » 29 nov. 2015 22:35

@Daniel: c'est la première chose que j'ai essayé mais reste le problème de l'adresse d’exécution que je n'arrive pas à trouver :roll: :?
N'y a t'il pas un pointeur en RAM du Basic qui contiendrais cette adresse après l’exécution de la commande LOADM"" ???
Phil.

www.6502man.com

To bit or not to bit.
1 or 0.

__sam__
Messages : 4022
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__ » 30 nov. 2015 00:05

Je pense qu'une idée est de sauver la quasi intégralité de la RAM mo5 utilisé (pile comprise), par la suite un loader ad-hoc restore toute la RAM depuis le disk (en passant par du code et un buffer en ram video). Enfin, une fois toute la RAM restorée, on charge les registres avec les valeurs que l'on avait dans le debuggeur lors de la sauvegarde de la mémoire sous DCMOTO. Le compteur programme reprends alors comme si de rien n'était sur un vrai MO5.

Bref dans cette approche le point d'entrée est le compteur program tel qu'il était lors du dump depuis l'outil de debug. Il ne faut pas aussi oublier de restorer les autres registres du CPU et peut-être les pia etc (si le programme joue avec, ce qui dans le cas du MO5 est peut être rare).

Sur le papier ca pourrait être automatisable à partir du fichier état mrx.
Samuel.
A500 Vampire V2+, A1200(030@50mhz/fpu/64mb/cf 8go),
GVP530 (MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8. New Teo 1.8.4 8)

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

Re: Conversion cassettes MO5 en disquettes et fichiers .sd

Message par 6502man » 30 nov. 2015 11:45

Merci Sam mais ce n'est pas ce que je veux faire :?
Dans l'idée c'est de compresser le programme présent en RAM avant exécution et donc de connaitre l'adresse d’exécution :roll:

Pour pouvoir l’exécuter une fois décompressé en RAM.
Phil.

www.6502man.com

To bit or not to bit.
1 or 0.

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

Re: Conversion cassettes MO5 en disquettes et fichiers .sd

Message par Daniel » 30 nov. 2015 12:02

6502man a écrit :N'y a t'il pas un pointeur en RAM du Basic qui contiendrais cette adresse après l’exécution de la commande LOADM"" ???
Oui, en $223F-$2240.
Daniel
L'obstacle augmente mon ardeur.

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

Re: Conversion cassettes MO5 en disquettes et fichiers .sd

Message par Daniel » 30 nov. 2015 13:17

__sam__ a écrit :Je pense qu'une idée est de sauver la quasi intégralité de la RAM mo5 utilisé (pile comprise), par la suite un loader ad-hoc restore toute la RAM depuis le disk....
C'est déjà fait ici --> http://dcmoto.free.fr/programmes/sdloadm5/index.html

J'ai commencé à en faire une nouvelle version entièrement automatique : une option dans dcmoto générant une image disque (ou carte SD) bootable. Je l'ai testé, ça marche bien, mais je ne l'ai pas encore diffusée.
Daniel
L'obstacle augmente mon ardeur.

__sam__
Messages : 4022
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__ » 30 nov. 2015 14:02

c'est bien ca comme option. C'est pour MO5 uniquement ou toutes les machines?
Samuel.
A500 Vampire V2+, A1200(030@50mhz/fpu/64mb/cf 8go),
GVP530 (MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8. New Teo 1.8.4 8)

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

Re: Conversion cassettes MO5 en disquettes et fichiers .sd

Message par Daniel » 30 nov. 2015 14:36

Pour l'instant SDLOAD existe pour deux types de machines :
- MO5, MO5E d'une part
- MO5NR, MO6 et PC128 d'autre part. Ici --> http://dcmoto.free.fr/programmes/sdloadm6/index.html

En version automatique avec génération des fichiers .fd et .sd par dcmoto je n'ai fait que la version MO5. L'idée était de rendre la fonction indépendante du format MRX. Ce format évolue au gré des versions de dcmoto. Les programmes SDLOADM5 et SDLOADM6 sont compatibles avec la version 2013.03, mais plus avec les versions actuelles. La génération directe de fichiers .fd et .sd supprime cette contrainte de compatibilité.

Le problème de ces développements : c'est beaucoup de travail pour zéro ou un utilisateur, deux ou trois au maximum. Il vaudrait mieux que chaque utilisateur programme lui-même ce dont il a besoin, quitte à en faire profiter d'autres s'il y a une demande.

Pour ma part je n'utilise pas cette méthode, je préfère convertir les cassettes en disquettes, c'est plus propre et l'oeuvre originale est beaucoup mieux respectée, avec la succession écran de chargement, écran d'accueil, jeu proprement dit. En restaurant uniquement le contenu de la ram il n'est pas possible de reproduire cet enchaînement.
Daniel
L'obstacle augmente mon ardeur.

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

Re: Conversion cassettes MO5 en disquettes et fichiers .sd

Message par 6502man » 30 nov. 2015 16:45

Merci Daniel :D

@sam: ton utilitaire plante lorsque j'essaie de compresser un binaire brut "exporter par save dans l'outil de mise au point de DCmoto" :(
Je me doute que ton compresseur lit les adresses contenu dans un binaire crée par SAVEM"", et je n'ai pas vu d'options pour préciser ces adresses manuellement :roll:

Il reste la solution de Daniel charger le binaire en lisant directement les secteurs, l'idée que j'avais était de charger par le DOS même si après décompression le DOS seras de toutes manières écrasé car souvent le binaire est trop gros :wink:
Phil.

www.6502man.com

To bit or not to bit.
1 or 0.

__sam__
Messages : 4022
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__ » 30 nov. 2015 17:04

6502man a écrit :@sam: ton utilitaire plante lorsque j'essaie de compresser un binaire brut "exporter par save dans l'outil de mise au point de DCmoto" :(
Oui c'est un otuil qui compresse les BINaires thomson. L'outil de débug de DCMoto sort un format BRUT (même s'il a l'extension BIN). Les deux ne sont pas compatible. Il faut habiller le brut des infos de chargement début/longueur/lancement. Un script à 2 centimes doit pouvoir faire ca, ou sinon comme le source est dispo il est toujours possible de le modifier.
Modifié en dernier par __sam__ le 30 nov. 2015 21:04, modifié 1 fois.
Samuel.
A500 Vampire V2+, A1200(030@50mhz/fpu/64mb/cf 8go),
GVP530 (MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8. New Teo 1.8.4 8)

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

Re: Conversion cassettes MO5 en disquettes et fichiers .sd

Message par 6502man » 30 nov. 2015 20:54

J'ai bien entendu rajouté au début et à la fin les infos au binaires, si je me trompe pas :

octets en debut :
00 = binaire.
HHLL = longueur des données contenu dans le binaire.
HHLL = adresse de chargement.

octets en fin :

0000 = fin de donnèes ???
HHLL = adresse d'execution.

j'ai fait l'essai avec Atomik, et ça fonctionne pour la page d'intro mais par contre pour le programme principal le compresseur retour une erreur :
Can't write below page 0 ($3200) ???
J'ai essayé de préciser différentes valeurs à l'option -X 0000, 1000 ... mais rien ne fonctionne :(

Ci joint les fichiers que j'ai utilisés :

Ecran.bin et .exo = écran de présentation (c'était uniquement pour un essai aucun intéret de compresser 2Ko)
Atomik_$3200_$9FFF... c'est le dump RAW de la RAM du MO5 de la partie du programme (avec DCMOTO).
ATO.bin le même fichier avec les infos necessaires pour exobin.

A ton avis comment je dois procéder ?
Atomik.zip
(25.62 Kio) Téléchargé 25 fois
Phil.

www.6502man.com

To bit or not to bit.
1 or 0.

__sam__
Messages : 4022
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__ » 30 nov. 2015 21:07

6502man a écrit :j'ai fait l'essai avec Atomik, et ça fonctionne pour la page d'intro mais par contre pour le programme principal le compresseur retour une erreur :
Can't write below page 0 ($3200) ???
Ah oui c'est une protection pour éviter d'écrire n'importe où sur TO7. Il faudrait l'adapter au mapping mémoire MO5. Je vais voir ce que je peux faire ce soir, une fois que j'aurais mis la main sur la carte mémoire MO...
Samuel.
A500 Vampire V2+, A1200(030@50mhz/fpu/64mb/cf 8go),
GVP530 (MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8. New Teo 1.8.4 8)

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

Re: Conversion cassettes MO5 en disquettes et fichiers .sd

Message par 6502man » 30 nov. 2015 22:31

Sur MO5 :

$0000 - $1FFF = mémoire écran (paginé formes et couleurs)
$2200 - $9FFF = ram utilisateur (sans le DOS)

Avec le DOS la ram utilisateur est de $4A70 à $9FFF faudrait la confirmation de Daniel j'en pas absolument sur :roll:
Phil.

www.6502man.com

To bit or not to bit.
1 or 0.

__sam__
Messages : 4022
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__ » 30 nov. 2015 22:49

voilà:

Code : Tout sélectionner

Usage: exobin.exe [?|-h|--help] [-mo] [-raw<START>,<EXEC>]] [-x[HEXADDR]]
       <files.bin or folder>

Compresse un binaire thomson. Le fichier resultat est place a cote
du fichier source, mais avec l'extension EXO au lieu de BIN.

Options:
-x   Produit une binaire auto-extractible. HEXADDR contient l'addresse
     hexadecimale du chargement. Si HEXADDR est absent, une adresse
     est choisie automatiquement (eventuellement en ram video).

-mo  Utilise la carte memoire du MO5, sans elle le binaire produit
     ne marchera que sur TO7 et suivants.

-raw Charge le fichier comme un binaire brut a partir de l'adresse
     <START> avec <EXEC> comme adresse de lancement.
Remarque bien l'option -raw (toutes les adresses sont implicitement en hexa).
Fichiers joints
exobin.zip
(34.1 Kio) Téléchargé 27 fois
Samuel.
A500 Vampire V2+, A1200(030@50mhz/fpu/64mb/cf 8go),
GVP530 (MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8. New Teo 1.8.4 8)

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

Re: Conversion cassettes MO5 en disquettes et fichiers .sd

Message par 6502man » 30 nov. 2015 23:15

Superbe exactement les options auquel je pensais :lol:

Par contre il plante avec cette ligne de commande :
exobin.exe -mo -raw3200,8350 ATO.bin

Il ne trouve pas le fichier binaire à compresser :(
Pourtant il est bien dans le même répertoire devant mes yeux :shock:


edit: en faite le compresseur plante sans message d'erreur dans la console :roll:
Phil.

www.6502man.com

To bit or not to bit.
1 or 0.

__sam__
Messages : 4022
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__ » 01 déc. 2015 01:32

Ah oui je reproduis le soucis :(

il affiche "can not write in rom space ($A000)" et plante. En effet ato.bin chargé en $3200 déborde de $A000. Il faudrait le rabotter. J'ai aussi trouvé la cause. C'est corrigé dans l'archive jointe.
exobin.zip
(34.11 Kio) Téléchargé 27 fois
Par contre la compression réduit le binaire à 11ko. Mais il ne reste pas 11Ko de libre en mémoire (8ko maxi en ram video). Il faudrait que je creuse le compresseur un peu plus. Il me semble qu'on peut lui faire décompresser sur lui-même en gardant une marge de sécurité.
Samuel.
A500 Vampire V2+, A1200(030@50mhz/fpu/64mb/cf 8go),
GVP530 (MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8. New Teo 1.8.4 8)

Répondre