Conversion cassettes MO5 en disquettes et fichiers .sd
Modérateurs : Papy.G, fneck, Carl
Re: Conversion cassettes MO5 en disquettes et fichiers .sd
@Daniel: y a t'il une possibilité de rajouter 2 options dans DCMOTO ?
- Vitesse réel de l'émulation du lecteur de disquettes.
- Log du Z80.
- Vitesse réel de l'émulation du lecteur de disquettes.
- Log du Z80.
Re: Conversion cassettes MO5 en disquettes et fichiers .sd
Je viens de faire une dernière conversion et c'était beaucoup plus long que je le croyais, et un peu plus compliqué avec la reprogrammation en assembleur d'une partie du jeu qui était en Basic, les appels au moniteur mon un peu fait c***r (chanter)
J'ai du contourner 3 problèmes pour cette conversion :
- Binaire écrassant le DOS
- Programme basic gérant la partie ( lancement du jeu et recommencer une partie après être mort, ...)
- Impossible d'implanter une routine en RAM vidéo car lors des retours => possible pagination et la un beau CRASH
Dans ce contexte impossible de faire comme précédemment charger le binaire en écrasant bêtement le DOS, car lors du retour au Basic plantage assuré, de plus impossible avec le DOS de faire un CLEAR inférieur à $5000, et vu que le binaire ce charge en $3100
Donc j'ai trouvé comme seul solution de refaire le programme Basic en Assembleur pour ne faire aucun retour au Basic et éviter les plantages, et ca fonctionne très bien
Voici le code Basic original:
On voit bien qu'il y a un retour au Basic à chaque mort et aussi pour choisir clavier ou manettes
Pourquoi n'ont ils pas inclus cette partie dans le code ASM
Bon j'ai opté pour un loader du binaire en RAM vidéo et la gestion du jeu en $3010 avec la PILE en $3000
En faite je charge le binaire avec le loader et après je copie en $3010 le code gérant la partie
j'aurais aussi pu faire plus simple sauvegarder mon binaire en intégrant ce code, mais c'est moins marrant à faire
Voici le LOADER en VRAM:
Pour les curieux voici le code gérant la partie (remplacement du code Basic):
Voila je me suis encore bien amusé et merci de m'avoir lu
J'ai était agréablement surpris par les animations du personnage, malheureusement les déplacements sont très lents
Les décors sont très beau je trouve pour la machine, et très coloré
A l'époque ca à du marquer les joueurs Thomson
Bon cette fois je retourne à mes autres projets, je laisse ce post un peu aux autres
J'ai du contourner 3 problèmes pour cette conversion :
- Binaire écrassant le DOS
- Programme basic gérant la partie ( lancement du jeu et recommencer une partie après être mort, ...)
- Impossible d'implanter une routine en RAM vidéo car lors des retours => possible pagination et la un beau CRASH
Dans ce contexte impossible de faire comme précédemment charger le binaire en écrasant bêtement le DOS, car lors du retour au Basic plantage assuré, de plus impossible avec le DOS de faire un CLEAR inférieur à $5000, et vu que le binaire ce charge en $3100
Donc j'ai trouvé comme seul solution de refaire le programme Basic en Assembleur pour ne faire aucun retour au Basic et éviter les plantages, et ca fonctionne très bien
Voici le code Basic original:
Code : Tout sélectionner
10 CLEAR 100,&H31FF,2:POKE &H2019,8:PRINT CHR$(20):CLS:SCREEN 3,0,0
12 LOCATE 14,12:PRINT "PATIENCE..."
15 DEFGR$(0)=12,24,60,114,126,112,60,0
16 DEFGR$(1)=24,36,60,114,126,112,60,0
20 LOADM "PAGE":ADR=&H6000:POKE ADR-6,0:POKE ADR-5,0:POKE ADR-4,40:POKE ADR-3,200:POKE ADR-2,97:POKE ADR-1,0:EXEC ADR:FOR I=1 TO 3000:NEXT:POKE ADR-2,107:EXEC ADR
50 LOADM "JAMES",-&H3000:LOADM "GRAPHIS"
60 A0=PEEK(&H2073):A1=PEEK(&H2074):POKE &H2073,&H59:POKE &H2074,&H00
100 CLS:ADR=&H3203:ATTRB 1,1:LOCATE 4,8:PRINT "1- AVEC MANETTE":LOCATE 4,12:PRINT "2- SANS MANETTE"
110 A$=INKEY$:IF A$="1" THEN POKE ADR,0 ELSE IF A$="2" THEN POKE ADR,1 ELSE 110
150 CLS:EXEC &H3200:A=PEEK(ADR)
152 IF A=0 THEN 200
155 IF A=1 THEN A$=" Gagn"+GR$(0)+"! mission accomplie. ":X=6:GOTO 160
156 IF A=2 THEN A$="Perdu! vous n'avez pas tenu vos d"+GR$(0)+"lais.":X=0:GOTO 160
157 IF A=3 THEN A$=" Perdu! vous "+GR$(1)+"tes "+GR$(0)+"puis"+GR$(0)+"... ":X=6
160 ATTRB 0,1:LOCATE X,4:PRINT A$
170 A$=INKEY$:IF A$="" THEN 170
200 CLS:ATTRB 0,1:LOCATE 2,10:PRINT "Voulez-vous une autre partie (O/N) ?"
210 A$=INKEY$:IF A$="O" OR A$="o" THEN 100 ELSE IF A$<>"N" AND A$<>"n" THEN 210
220 ATTRB 0,0:POKE &H2073,A0:POKE &H2074,A1:CLS:NEW
Pourquoi n'ont ils pas inclus cette partie dans le code ASM
Bon j'ai opté pour un loader du binaire en RAM vidéo et la gestion du jeu en $3010 avec la PILE en $3000
En faite je charge le binaire avec le loader et après je copie en $3010 le code gérant la partie
j'aurais aussi pu faire plus simple sauvegarder mon binaire en intégrant ce code, mais c'est moins marrant à faire
Voici le LOADER en VRAM:
Code : Tout sélectionner
; 6502man
; (c) 2015
;
; LECTURE ET ECRITURE D'UN BINAIRE
; DANS DES SECTEURS D'UN DISK
;-------------------
;FDD
;-------------------
REGISTER EQU $2048
EXECUTE EQU $26
DRIVE EQU $2049
PISTE EQU $204A ;( 16 bits)
SECTEUR EQU $204C
BUFFER EQU $204F ;(16 bits)
STATE EQU $204E
INIT EQU $01
READ EQU $02
WRITE EQU $08
; PROG
DEBUT EQU $3100
FIN EQU $A0FF
EXEC EQU $3200
PILE EQU $3000
ORG $1EE0
LDS #PILE
LDX #DEBUT
LDY #30
PISTEADD
LDB #$01
READSECTOR
STX BUFFER
STY PISTE
STB SECTEUR
LDA #$00
STA DRIVE
LDA #READ
STA REGISTER
PSHS X,B
SWI
FCB $26
PULS B,X
TBA
LDB #$FF
ABX
INX
CPX #FIN
BHS DUMPGO
TAB
INCB
CMPB #17
BNE READSECTOR
INY
CPY #$99
BNE PISTEADD
DUMPGO
LDB #FINDUMP-GO
LDX #$3010
LDY #GO
BOUCLEDUMP
LDA 0,Y+
STA 0,X+
DECB
BNE BOUCLEDUMP
JMP $3010
GO
FCB $BD,$30,$64,$7E,$30,$39,$BD,$32,$00,$B6,$32,$03,$81,$01,$27,$09
FCB $8E,$30,$85,$BD,$30,$59,$7E,$30,$2F,$8E,$30,$69,$BD,$30,$59,$8E
FCB $30,$8E,$BD,$30,$59,$3F,$0C,$27,$FC,$8E,$30,$AA,$BD,$30,$59,$3F
FCB $0A,$C1,$31,$27,$06,$C1,$32,$27,$09,$20,$F4,$86,$00,$B7,$32,$03
FCB $20,$C4,$86,$01,$B7,$32,$03,$20,$BD,$E6,$84,$27,$06,$3F,$02,$30
FCB $01,$20,$F6,$39,$C6,$0C,$3F,$02,$39,$0C,$0A,$0A,$47,$41,$47,$4E
FCB $45,$21,$20,$4D,$49,$53,$53,$49,$4F,$4E,$20,$41,$43,$43,$4F,$4D
FCB $50,$4C,$49,$45,$00,$0C,$0A,$0A,$50,$45,$52,$44,$55,$00,$0A,$0D
FCB $0A,$56,$41,$4C,$49,$44,$45,$52,$20,$50,$4F,$55,$52,$20,$52,$45
FCB $43,$4F,$4D,$4D,$45,$4E,$43,$45,$52,$00,$0A,$0A,$0A,$0D,$31,$3D
FCB $4D,$41,$4E,$45,$54,$54,$45,$20,$20,$32,$3D,$43,$4C,$41,$56,$49
FCB $45,$52,$00
FINDUMP
Pour les curieux voici le code gérant la partie (remplacement du code Basic):
Code : Tout sélectionner
ORG $3010
JSR CLS
JMP CHOIXMANCLA
GO
JSR EXEC
LDA $3203
CMPA #01
BEQ AFFICHEGAGNE
LDX #PERDU
JSR AFFICHE
JMP AFFICHERECOM
AFFICHEGAGNE
LDX #GAGNE
JSR AFFICHE
AFFICHERECOM
LDX #RECOMMENCE
JSR AFFICHE
TOUCHE
SWI
FCB $0C
BEQ TOUCHE
CHOIXMANCLA
LDX #MANETTE
JSR AFFICHE
TOUCHEM
SWI
FCB $0A
CMPB #$31
BEQ SELMAN
CMPB #$32
BEQ SELCLA
BRA TOUCHEM
SELMAN
LDA #00
STA $3203
BRA GO
SELCLA
LDA #01
STA $3203
BRA GO
AFFICHE
LDB 0,X
BEQ FINAFFICHE
SWI
FCB $02
INX
BRA AFFICHE
FINAFFICHE
RTS
CLS
LDB #12 ; CLS
SWI
FCB $02
RTS
GAGNE
FCB 12,10,10
FCB "GAGNE! MISSION ACCOMPLIE"
FCB 0
PERDU
FCB 12,10,10
FCB "PERDU"
FCB 0
RECOMMENCE
FCB 10,13,10
FCB "VALIDER POUR RECOMMENCER"
FCB 0
MANETTE
FCB 10,10,10,13
FCB "1=MANETTE 2=CLAVIER"
;FCB 27,64,31,64
FCB 0
Voila je me suis encore bien amusé et merci de m'avoir lu
J'ai était agréablement surpris par les animations du personnage, malheureusement les déplacements sont très lents
Les décors sont très beau je trouve pour la machine, et très coloré
A l'époque ca à du marquer les joueurs Thomson
Bon cette fois je retourne à mes autres projets, je laisse ce post un peu aux autres
-
- Messages : 7970
- Inscription : 18 sept. 2010 12:08
- Localisation : Brest et parfois les Flandres
Re: Conversion cassettes MO5 en disquettes et fichiers .sd
Ah oui j'ai vu "James Debug le grand saut" en diskette sur TO9 vers les années 90. Je dois encore avoir la D7 dans une compile. Ca vaut une fortune de nos jours: http://www.leboncoin.fr/informatique/849232543.htm
Il y a d'autres James Debug:
Il y a quand même pas mal de bavures dans les couleurs, mais le sprite n'est pas monochrome ce qui est un bel effort.
Il y a d'autres James Debug:
Il y a quand même pas mal de bavures dans les couleurs, mais le sprite n'est pas monochrome ce qui est un bel effort.
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: Conversion cassettes MO5 en disquettes et fichiers .sd
En testant sur un vrai MO5, je m'aperçois qu'il y a un bug dans l'écran de présentation de Dakar4x4, de F15 Strike Eagle et de FBI :
Une bande horizontale de quelques lignes au milieu de l'écran, comme si l'image avait été écrasée par d'autres informations. Sinon les jeux semblent fonctionner, mais je ne les ai pas testés très sérieusement.
@6502man :
Pour les demandes d'améliorations de dcmoto :
- Je peux mettre une option pour que les fonctions cassettes fonctionnent à vitesse réelle, mais à quoi cela peut-il bien servir
- Qu'est-ce que tu entends par "Log du Z80"
Une bande horizontale de quelques lignes au milieu de l'écran, comme si l'image avait été écrasée par d'autres informations. Sinon les jeux semblent fonctionner, mais je ne les ai pas testés très sérieusement.
L'origine du problème est peut-être là : $1000 est en plein milieu de la ram vidéo.6502man a écrit :- injecter en $1000 un petit outil en ASM que j'ai créer pour copier les données dans les secteurs réservé précédemment par le SAVEM
@6502man :
Pour les demandes d'améliorations de dcmoto :
- Je peux mettre une option pour que les fonctions cassettes fonctionnent à vitesse réelle, mais à quoi cela peut-il bien servir
- Qu'est-ce que tu entends par "Log du Z80"
Daniel
L'obstacle augmente mon ardeur.
L'obstacle augmente mon ardeur.
Re: Conversion cassettes MO5 en disquettes et fichiers .sd
Daniel: je fait les modifs sur les conversion DAKAR, FBI, ATOMIK, F15
Pour la vitesse réel je précise pour le "lecteur de disquette" pas pour le lecteur de cassette à moins d’être maso
Ca permet justement lorsque l'on fait un programme qui utilise les accès disk pour savoir si le délai de chargement est trop long (par exemple) !!!!
Pour la vitesse réel je précise pour le "lecteur de disquette" pas pour le lecteur de cassette à moins d’être maso
Ca permet justement lorsque l'on fait un programme qui utilise les accès disk pour savoir si le délai de chargement est trop long (par exemple) !!!!
Re: Conversion cassettes MO5 en disquettes et fichiers .sd
Voici F15 et ATOMIK.
Re: Conversion cassettes MO5 en disquettes et fichiers .sd
Formule 1 et Wizzball n'ont pas ce bug d'affichage.
Désolé pour ce bug visuel
Désolé pour ce bug visuel
Re: Conversion cassettes MO5 en disquettes et fichiers .sd
Les nouvelles versions semblent bonnes, sauf James Debug Le Grand Saut : il reste un tout petit bout de données parasites en bas à droite de l'image de présentation, sous l'inscription COKTEL VISION. C'est insignifiant, mais visible pendant le chargement du jeu.
@6502man : J'avais mal lu, tu avais bien écrit lecteur de disquette
Il est possible de le ralentir, mais très difficile de simuler la vitesse réelle car les délais dépendent à la fois du contrôleur, du lecteur de disquette, du facteur d'entrelacement (que je ne connais pas dans dcmoto), etc. Je vais voir s'il est possible d'introduire un délai moyen à peu près réaliste pour la lecture et l'écriture des secteurs.
@6502man : J'avais mal lu, tu avais bien écrit lecteur de disquette
Il est possible de le ralentir, mais très difficile de simuler la vitesse réelle car les délais dépendent à la fois du contrôleur, du lecteur de disquette, du facteur d'entrelacement (que je ne connais pas dans dcmoto), etc. Je vais voir s'il est possible d'introduire un délai moyen à peu près réaliste pour la lecture et l'écriture des secteurs.
Daniel
L'obstacle augmente mon ardeur.
L'obstacle augmente mon ardeur.
-
- Messages : 7970
- Inscription : 18 sept. 2010 12:08
- Localisation : Brest et parfois les Flandres
Re: Conversion cassettes MO5 en disquettes et fichiers .sd
Au cas où, j'inique que sous TEO, le lecteur de D7 tourne avec les bon timings. Préhisto a bossé dessus si j'ai bonne mémoire. C'est vraiment plus lent que sous DCMoto, et ca dépend de plein de trucs comme l'entrelacement et de ce qu'on fait entre les secteurs chargés. Il y a tout un savoir faire dans l'optimisation de chargement de disquettes.
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: Conversion cassettes MO5 en disquettes et fichiers .sd
@daniel: Oui pour James Debug le problème est comme je l'expliquais la routine de chargement est plus longue avec la partie du jeu refaite en ASM et ne peux ce loger en $1F40, pour ca j'ai était obligé d'empiété sur la partie visible
Il y a une solution c'est d'inclure le code ASM du jeu que j'ai fait avec le binaire et de refaire le loader pour le placer en $1F40
Je n'aurais pas le temps d'ici 15 jours si c'est nécessaire ?
Pour la vitesse du lecteur de disquette approximativement ca iras très bien aussi, on est pas à 20 millisecondes prêt
Sinon concernant le LOG du Z80 ce que je proposé c'est d'avoir un LOG soit en fichier externe soit dans une fenêtre du code désassemblé exécuté pas à pas par le Z80, on le trouve sur certains émulateurs et c'est très pratique dans certains cas
Il y a une solution c'est d'inclure le code ASM du jeu que j'ai fait avec le binaire et de refaire le loader pour le placer en $1F40
Je n'aurais pas le temps d'ici 15 jours si c'est nécessaire ?
Pour la vitesse du lecteur de disquette approximativement ca iras très bien aussi, on est pas à 20 millisecondes prêt
Sinon concernant le LOG du Z80 ce que je proposé c'est d'avoir un LOG soit en fichier externe soit dans une fenêtre du code désassemblé exécuté pas à pas par le Z80, on le trouve sur certains émulateurs et c'est très pratique dans certains cas
-
- Messages : 7970
- Inscription : 18 sept. 2010 12:08
- Localisation : Brest et parfois les Flandres
Re: Conversion cassettes MO5 en disquettes et fichiers .sd
Attention, sur thomson c'est un 6809e et pas un Z80. Oh le blasphème !
Par log tu entends une trace d'exécution infinie, c'est ca? Il y aurait un autre truc utile: c'est un bitmap des zones mémoires écrites par le 6809. Ainsi tu saurait quel zone mémoire minimale sauvegarder avec des trous au milieu (le format BIN thomson permet ca), ce qui doit être plus court que la sauvegarde de toute la RAM.
Par log tu entends une trace d'exécution infinie, c'est ca? Il y aurait un autre truc utile: c'est un bitmap des zones mémoires écrites par le 6809. Ainsi tu saurait quel zone mémoire minimale sauvegarder avec des trous au milieu (le format BIN thomson permet ca), ce qui doit être plus court que la sauvegarde de toute la RAM.
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: Conversion cassettes MO5 en disquettes et fichiers .sd
Oups oui bien entendu c'est le LOG du 6809
- mastacut
- Messages : 288
- Inscription : 14 mars 2016 05:12
- Localisation : Thionville-Luxembourg-Belgique (Lorraine) Moselle
Re: Conversion cassettes MO5 en disquettes et fichiers .sd
Bravo pour toute ces conversions.6502man a écrit :Je viens de faire une dernière conversion et c'était beaucoup plus long que je le croyais, et un peu plus compliqué avec la reprogrammation en assembleur d'une partie du jeu qui était en Basic, les appels au moniteur mon un peu fait c***r (chanter)
Voila je me suis encore bien amusé et merci de m'avoir lu
J'ai était agréablement surpris par les animations du personnage, malheureusement les déplacements sont très lents
Les décors sont très beau je trouve pour la machine, et très coloré
A l'époque ca à du marquer les joueurs Thomson
Je ne trouve pas ce Jeux pour TO8 ou TO9, le portage a t'il été fait, je vois une version disquette dans le bon coin pour TO9, le dump n'a pas été possible, ou disquette était indisponible jusqu'a ce jour ?
https://www.leboncoin.fr/informatique/8 ... tm?ca=15_s
PS : Je trouve ce jeux sympa
Re: Conversion cassettes MO5 en disquettes et fichiers .sd
Le Mystère de l'Ile Perdue est un autre jeu. Il est sur le site dcmoto en version disquette TO8/TO9 :
http://dcmoto.free.fr/programmes/le-mys ... index.html
Le Grand Saut existe aussi en disquette TO8 :
http://dcmoto.free.fr/programmes/le-gra ... index.html
http://dcmoto.free.fr/programmes/le-mys ... index.html
Le Grand Saut existe aussi en disquette TO8 :
http://dcmoto.free.fr/programmes/le-gra ... index.html
Daniel
L'obstacle augmente mon ardeur.
L'obstacle augmente mon ardeur.