dcvg5k: chargement et sauvegarde de programmes

Couvre tous les domaines de l'émulation logicielle ou de la virtualisation ainsi que les discussions sur les divers outils associés.

Modérateurs : Papy.G, fneck, Carl

joaopa
Messages : 512
Inscription : 14 sept. 2013 12:17

dcvg5k: chargement et sauvegarde de programmes

Message par joaopa »

Bonjour Daniel,
dans dcvg5k, les routines de chargement et de sauvegardes de programmes sont interceptées pour écrire dans un fichier.
Cependant, puisque il y a un projet de développement de roms pour VG5000, pour développer sous dcvg5k, on ne peut pas utiliser les routines en roms. Il faut donc réimplémenter ces routines et l'on perd l'interception.

Peux-tu remédier à ce problème?
Merci d'avance.
Daniel
Messages : 17316
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: dcvg5k: chargement et sauvegarde de programmes

Message par Daniel »

Oui, effectivement, les adresses des routines de lecture et l'écriture d'un octet cassette sont testées pour permettre à dcvg5k de lire et écrire dans une copie du fichier .k7 stockée en mémoire.

Tel que l'émulateur est conçu, le contournement du problème pourrait être relativement simple : Il faudrait fournir les adresses de ces routines en paramètres, par exemple dans les options. Je vais y réfléchir...
Daniel
L'obstacle augmente mon ardeur.
Daniel
Messages : 17316
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: dcvg5k: chargement et sauvegarde de programmes

Message par Daniel »

Si la ROM à tester est dans le fichier dcvg5k.rom (avec cette ROM sélectionnée dans les options), j'ai trouvé une solution simple :

Il y a cinq adresses à fournir :
k7read : adresse routine de lecture d'un octet cassette
k7write : adresse routine d'ecriture d'un octet cassette
k7test : adresse routine de test du debit de la cassette
k7fin : adresse de branchement en fin de cassette Basicode
k7sync : adresse routine d'envoi du signal de synchronisation

Avec les ROMs officielles (version 1.0 et version 1.1), ces adresses sont les suivantes :
k7read = 0x3b48;
k7write = 0x3aa9;
k7test = 0x3af3;
k7fin = 0x1e00;
k7sync = 0x3a81;

La version 2018.05.15 de dcvg5k (attention : non testée) recherche les adresses dans le fichier dcvg5k.rom, à la suite de la ROM.
Il suffit d'ajouter les 5 adresses binaires, soit 10 octets. Elles sont attendues dans l'ordre ou je les ai citées, octet de poids fort d'abord.
dcvg5k_20170515.zip
(171.58 Kio) Téléchargé 103 fois

Par contre, si les routines sont en RAM, je n'ai pas de solution simple à proposer. Il faut d'une part modifier les routines, d'autre part les intercepter lors du déroulement du programme. En ROM on peut les patcher une fois pour toute à l'initialisation, on est sûr qu'elles ne seront pas modifiées. En RAM tout peut changer, on n'est sûr de rien, c'est difficile à automatiser.
Daniel
L'obstacle augmente mon ardeur.
joaopa
Messages : 512
Inscription : 14 sept. 2013 12:17

Re: dcvg5k: chargement et sauvegarde de programmes

Message par joaopa »

Désolé de t'embêter Daniel, mais ça ne serait pas possible que dvg5k lis et et écrit directement dans des fichiers WAV?

Je voudrais tester mes routines d'entrées sorties sur dcvg5k. Avec les interceptions de routines, je ne peux pas.
Daniel
Messages : 17316
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: dcvg5k: chargement et sauvegarde de programmes

Message par Daniel »

Tout est possible, mais il faut du temps. Dans l'immédiat je ne suis pas assez disponible pour le faire, mais je le note pour plus tard.
Sinon, n'importe quel autre programmeur peut le faire dans la version SDL de dcvg5k : http://dcvg5k.free.fr/v2/dcvg5kv2fr.html
Daniel
L'obstacle augmente mon ardeur.
Répondre