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

Avatar de l’utilisateur
6502man
Messages : 12286
Inscription : 12 avr. 2007 22:46
Localisation : VAR
Contact :

Re: Conversion cassettes MO5 en disquettes et fichiers .sd

Message par 6502man »

@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.

:D
Phil.

www.6502man.com

To bit or not to bit.
1 or 0.
Avatar de l’utilisateur
6502man
Messages : 12286
Inscription : 12 avr. 2007 22:46
Localisation : VAR
Contact :

Re: Conversion cassettes MO5 en disquettes et fichiers .sd

Message par 6502man »

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) :lol:

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 :lol: :roll:

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 :roll:

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 :lol: :lol:

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
On voit bien qu'il y a un retour au Basic à chaque mort et aussi pour choisir clavier ou manettes :lol:
Pourquoi n'ont ils pas inclus cette partie dans le code ASM :twisted:

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 :roll:
En faite je charge le binaire avec le loader et après je copie en $3010 le code gérant la partie :lol:
j'aurais aussi pu faire plus simple sauvegarder mon binaire en intégrant ce code, mais c'est moins marrant à faire :lol: :lol: :shock:

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 :lol:

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é :D
A l'époque ca à du marquer les joueurs Thomson :D

Image
JAMES.zip
(48.31 Kio) Téléchargé 226 fois
Bon cette fois je retourne à mes autres projets, je laisse ce post un peu aux autres :wink:
Phil.

www.6502man.com

To bit or not to bit.
1 or 0.
__sam__
Messages : 7923
Inscription : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: Conversion cassettes MO5 en disquettes et fichiers .sd

Message par __sam__ »

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.
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
Daniel
Messages : 17316
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: Conversion cassettes MO5 en disquettes et fichiers .sd

Message par Daniel »

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.
dakar.png
dakar.png (5.23 Kio) Consulté 8871 fois
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
L'origine du problème est peut-être là : $1000 est en plein milieu de la ram vidéo.

@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.
Avatar de l’utilisateur
6502man
Messages : 12286
Inscription : 12 avr. 2007 22:46
Localisation : VAR
Contact :

Re: Conversion cassettes MO5 en disquettes et fichiers .sd

Message par 6502man »

Daniel: je fait les modifs sur les conversion DAKAR, FBI, ATOMIK, F15 :oops:

Pour la vitesse réel je précise pour le "lecteur de disquette" pas pour le lecteur de cassette à moins d’être maso :lol:
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) !!!!
Phil.

www.6502man.com

To bit or not to bit.
1 or 0.
Avatar de l’utilisateur
6502man
Messages : 12286
Inscription : 12 avr. 2007 22:46
Localisation : VAR
Contact :

Re: Conversion cassettes MO5 en disquettes et fichiers .sd

Message par 6502man »

Voici F15 et ATOMIK.
F15.zip
(35.16 Kio) Téléchargé 206 fois
ATOMIK.zip
(39.86 Kio) Téléchargé 207 fois
Phil.

www.6502man.com

To bit or not to bit.
1 or 0.
Avatar de l’utilisateur
6502man
Messages : 12286
Inscription : 12 avr. 2007 22:46
Localisation : VAR
Contact :

Re: Conversion cassettes MO5 en disquettes et fichiers .sd

Message par 6502man »

FBI et DAKAR.
FBI.zip
(17.94 Kio) Téléchargé 205 fois
DAKAR_4x4.zip
(32.35 Kio) Téléchargé 208 fois
Phil.

www.6502man.com

To bit or not to bit.
1 or 0.
Avatar de l’utilisateur
6502man
Messages : 12286
Inscription : 12 avr. 2007 22:46
Localisation : VAR
Contact :

Re: Conversion cassettes MO5 en disquettes et fichiers .sd

Message par 6502man »

Formule 1 et Wizzball n'ont pas ce bug d'affichage.

Désolé pour ce bug visuel :(
Phil.

www.6502man.com

To bit or not to bit.
1 or 0.
Daniel
Messages : 17316
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: Conversion cassettes MO5 en disquettes et fichiers .sd

Message par Daniel »

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 :oops:
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.
__sam__
Messages : 7923
Inscription : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: Conversion cassettes MO5 en disquettes et fichiers .sd

Message par __sam__ »

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
Avatar de l’utilisateur
6502man
Messages : 12286
Inscription : 12 avr. 2007 22:46
Localisation : VAR
Contact :

Re: Conversion cassettes MO5 en disquettes et fichiers .sd

Message par 6502man »

@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 :roll:
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 :lol: :lol:

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 :wink:
Phil.

www.6502man.com

To bit or not to bit.
1 or 0.
__sam__
Messages : 7923
Inscription : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: Conversion cassettes MO5 en disquettes et fichiers .sd

Message par __sam__ »

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.
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
Avatar de l’utilisateur
6502man
Messages : 12286
Inscription : 12 avr. 2007 22:46
Localisation : VAR
Contact :

Re: Conversion cassettes MO5 en disquettes et fichiers .sd

Message par 6502man »

Oups :oops: oui bien entendu c'est le LOG du 6809 :roll: :roll:
Phil.

www.6502man.com

To bit or not to bit.
1 or 0.
Avatar de l’utilisateur
mastacut
Messages : 288
Inscription : 14 mars 2016 05:12
Localisation : Thionville-Luxembourg-Belgique (Lorraine) Moselle

Re: Conversion cassettes MO5 en disquettes et fichiers .sd

Message par mastacut »

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) :lol:
Voila je me suis encore bien amusé et merci de m'avoir lu :lol:

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é :D
A l'époque ca à du marquer les joueurs Thomson :D

Image
JAMES.zip
Bravo pour toute ces conversions.

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 :roll:
Daniel
Messages : 17316
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: Conversion cassettes MO5 en disquettes et fichiers .sd

Message par Daniel »

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

Image Image

Le Grand Saut existe aussi en disquette TO8 :
http://dcmoto.free.fr/programmes/le-gra ... index.html

Image
Daniel
L'obstacle augmente mon ardeur.
Répondre