Conversion cassettes MO5 en disquettes et fichiers .sd
Modérateurs : Papy.G, fneck, Carl
Re: Conversion cassettes MO5 en disquettes et fichiers .sd
Nouvelle conversion sur disquette :
Arkanoïd : http://dcmoto.free.fr/programmes/arkanoid/index.html
Toujours le même scénario, avec écrasement du DOS.
Arkanoïd : http://dcmoto.free.fr/programmes/arkanoid/index.html
Toujours le même scénario, avec écrasement du DOS.
Daniel
L'obstacle augmente mon ardeur.
L'obstacle augmente mon ardeur.
Re: Conversion cassettes MO5 en disquettes et fichiers .sd
Nouvelle conversion sur disquette :
Game Over : http://dcmoto.free.fr/programmes/game-over/index.html
Conversion un peu plus compliquée car le jeu est en deux parties. Il nécessite deux loaders différents en mémoire vidéo pour charger chacune des parties à partir des secteurs physiques de la disquette, en écrasant le DOS.
Game Over : http://dcmoto.free.fr/programmes/game-over/index.html
Conversion un peu plus compliquée car le jeu est en deux parties. Il nécessite deux loaders différents en mémoire vidéo pour charger chacune des parties à partir des secteurs physiques de la disquette, en écrasant le DOS.
Daniel
L'obstacle augmente mon ardeur.
L'obstacle augmente mon ardeur.
Re: Conversion cassettes MO5 en disquettes et fichiers .sd
Nouvelle conversion sur disquette :
Labyrinthe : http://dcmoto.free.fr/programmes/labyrinthe/index.html
Labyrinthe est un programme en Basic, ce n'est pas une conversion mais une simple copie. La version originale en blanc sur fond gris n'est pas assez contrastée avec un téléviseur LCD, j'en ai fait une autre en noir sur fond gris. Le Basic est très lent, soyez indulgent pour le programmeur
Labyrinthe : http://dcmoto.free.fr/programmes/labyrinthe/index.html
Labyrinthe est un programme en Basic, ce n'est pas une conversion mais une simple copie. La version originale en blanc sur fond gris n'est pas assez contrastée avec un téléviseur LCD, j'en ai fait une autre en noir sur fond gris. Le Basic est très lent, soyez indulgent pour le programmeur
Daniel
L'obstacle augmente mon ardeur.
L'obstacle augmente mon ardeur.
Re: Conversion cassettes MO5 en disquettes et fichiers .sd
Ce matin je me suis amusé a essayer de convertir ATOMIK en version disquette, et la solution de Daniel reste certainement la plus simple à cause du manque de place en RAM avec le DOS, pour la compression ca n'a pas était concluant !!!
Par contre je me suis aperçu de 2 choses en essayant d’écrire directement dans des secteurs:
1) les docs techniques (clefs pour MO5 et assembleur des périphériques) sont bourrés d'erreurs ou omissions et des erreur dans la typographie des adresses ....
2) Au départ je voulais utiliser l'utilitaire de Daniel DCFDutils pour stocker le binaire en temps que fichiers dans un .fd vide et fraichement formaté, et en ayant l'espoir que le fichier serait crée défragmenté sur des secteurs contigües.
L'utilitaire crée bien un fichier sur des secteurs contigües mais dans un ordre décroissant et de plus avec le système de fichiers et de bloc de demi piste ce n'est pas possible de le relire
Par contre si je fait un SAVEM"" sous DCMOTO de la zone mémoire concerné sur une disquette vierge j'obtiens un fichier sur des secteurs contigües dans un ordre croissant
Mais par contre impossible de le relire 'brut' par secteur évidemment
Finalement pour intégrer mon binaire "brut" dans le .fd j'ai opté pour cette solution :
- créer une nouvelle disquette formaté avec le DOS
- sous DCMOTO SAVEM"TOTO",&H3200,&HAFFF,&H3200 (uniquement pour créer un fichier et allouer les blocs du système de fichier, avec de la marge en plus, aucune importance du contenu, puisque impossible de charger le binaire complet avec le DOS)
- sous DCMOTO reboot avec le DOS
- dans l'outil mise au point injecter le binaire "brut" à partir de $3200
- 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
- ne surtout pas retourner dans l'emu mais modifier au préalable l'adresse PC par $1000.
- retourner dans l'emu et la il écrit le binaire dans les secteurs
- une fois terminé le jeu démarre, on peut rebooter et finir en écrivant le loader binaire sur le .fd.
Le plus compliqué c'est de trouver les secteurs occupés par le fichier crée par SAVEM, il faut obligatoirement utiliser un éditeur hexadécimal, et bien décortiquer la FAT
J'ai rencontré un problème lors du chargement en RAM en utilisant les chargement de secteurs par le moniteur, dès que j'écrit dans le zone RAM en $9E00-$9FFF, je pense à un problème de pile (le registre S est dans cette zone en Basic) mais je ne connais pas assez le MO5 pour affirmer et contourner ce problème
Merci Daniel, grâce à toi Je me suis bien amusé et programmé un nouveau truc
Voici mon modeste outil pour écrire directement dans les secteurs :
Voici mon modeste code pour lire directement les secteurs :
Par contre je me suis aperçu de 2 choses en essayant d’écrire directement dans des secteurs:
1) les docs techniques (clefs pour MO5 et assembleur des périphériques) sont bourrés d'erreurs ou omissions et des erreur dans la typographie des adresses ....
2) Au départ je voulais utiliser l'utilitaire de Daniel DCFDutils pour stocker le binaire en temps que fichiers dans un .fd vide et fraichement formaté, et en ayant l'espoir que le fichier serait crée défragmenté sur des secteurs contigües.
L'utilitaire crée bien un fichier sur des secteurs contigües mais dans un ordre décroissant et de plus avec le système de fichiers et de bloc de demi piste ce n'est pas possible de le relire
Par contre si je fait un SAVEM"" sous DCMOTO de la zone mémoire concerné sur une disquette vierge j'obtiens un fichier sur des secteurs contigües dans un ordre croissant
Mais par contre impossible de le relire 'brut' par secteur évidemment
Finalement pour intégrer mon binaire "brut" dans le .fd j'ai opté pour cette solution :
- créer une nouvelle disquette formaté avec le DOS
- sous DCMOTO SAVEM"TOTO",&H3200,&HAFFF,&H3200 (uniquement pour créer un fichier et allouer les blocs du système de fichier, avec de la marge en plus, aucune importance du contenu, puisque impossible de charger le binaire complet avec le DOS)
- sous DCMOTO reboot avec le DOS
- dans l'outil mise au point injecter le binaire "brut" à partir de $3200
- 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
- ne surtout pas retourner dans l'emu mais modifier au préalable l'adresse PC par $1000.
- retourner dans l'emu et la il écrit le binaire dans les secteurs
- une fois terminé le jeu démarre, on peut rebooter et finir en écrivant le loader binaire sur le .fd.
Le plus compliqué c'est de trouver les secteurs occupés par le fichier crée par SAVEM, il faut obligatoirement utiliser un éditeur hexadécimal, et bien décortiquer la FAT
J'ai rencontré un problème lors du chargement en RAM en utilisant les chargement de secteurs par le moniteur, dès que j'écrit dans le zone RAM en $9E00-$9FFF, je pense à un problème de pile (le registre S est dans cette zone en Basic) mais je ne connais pas assez le MO5 pour affirmer et contourner ce problème
Merci Daniel, grâce à toi Je me suis bien amusé et programmé un nouveau truc
Voici mon modeste outil pour écrire directement dans les secteurs :
Code : Tout sélectionner
;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
.ORG $1000
; ECRITURE DANS DES SECTEURS D'UN BINAIRE
PSHS A,B,X,Y
LDX #$3200 ; 7E 32 D6 7E 32 58
LDY #$22
PISTEADD2
LDB #$01
WRITESECTOR
STX BUFFER
STY PISTE
STB SECTEUR
LDA #$00
STA DRIVE
LDA #WRITE
STA REGISTER
PSHS X,B,Y
SWI
FCB $26
PULS Y,B,X
TBA
LDB #$FF
ABX
INX
CPX #$9E00
BHS GO
TAB
INCB
CMPB #17
BNE WRITESECTOR
INY
JMP PISTEADD2
GO
PULS Y,X,B,A
JMP $8350
Voici mon modeste code pour lire directement les secteurs :
Code : Tout sélectionner
;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
.ORG $1000
LDX #$3200 ; 7E 32 D6 7E 32 58
LDY #$0022
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 #$9E00
BHS GO
TAB
INCB
CMPB #17
BNE READSECTOR
INY
JMP PISTEADD
GO
JMP $8350
Re: Conversion cassettes MO5 en disquettes et fichiers .sd
L'allocation des clusters de disquette ne se fait pas dans l'ordre physique. Le système privilégie les clusters proches de la piste 20, pour optimiser les déplacements de têtes. On ne peut pas prédire facilement l'ordre, il vaut mieux écrire soi-même les secteurs, et surtout ne pas oublier de les marquer "occupés" dans la FAT, sinon ils seront écrasés par les prochaines allocations.
Dans toutes les opérations de chargement direct en ram, il faut faire très attention de ne pas écraser des zones utilisées par le système, en particulier les variables du moniteur, les variables du Basic, et surtout la pile système. Ecraser le DOS n'est pas un problème si on ne l'utilise plus. Ecraser les variables du Basic est possible si on travaille uniquement en langage machine. Ecraser les variables du moniteur est possible si on n'appelle aucune fonction système. Ecraser la pile système est toujours fatal. Il faut la placer dans une plage de mémoire non impactée.
Dans toutes les opérations de chargement direct en ram, il faut faire très attention de ne pas écraser des zones utilisées par le système, en particulier les variables du moniteur, les variables du Basic, et surtout la pile système. Ecraser le DOS n'est pas un problème si on ne l'utilise plus. Ecraser les variables du Basic est possible si on travaille uniquement en langage machine. Ecraser les variables du moniteur est possible si on n'appelle aucune fonction système. Ecraser la pile système est toujours fatal. Il faut la placer dans une plage de mémoire non impactée.
Daniel
L'obstacle augmente mon ardeur.
L'obstacle augmente mon ardeur.
Re: Conversion cassettes MO5 en disquettes et fichiers .sd
Pour finir la semaine j'ai fait un petit programme pour gérer la FAT des disquettes (40 pistes), ca me permet de "réserver" les pistes pour le chargement directement des secteurs
Je l'ai fait en basic et ca fonctionne bien et c'est très pratique, on peut faire mieux et l'améliorer
Du coup j'ai aussi converti F15 STRIKE EAGLE en disquette, cette fois ci je n'ai pas écrit de fichier pour le binaire mais réservé avec mon programme les secteurs (30 à 39)
Daniel si tu pense qu'il y a une erreur quelque part ou que ma méthode n'est pas correcte n'hésite pas à le signaler
Je vais essayer de faire la conversion de DAKAR 4x4 ....
Je l'ai fait en basic et ca fonctionne bien et c'est très pratique, on peut faire mieux et l'améliorer
Code : Tout sélectionner
0 REM GESTION DE LA FAT DES DISQUETTES 40 PISTES
1 REM ------------------------------------------
2 REM (c) 2015 6502MAN
3 REM ------------------------------------------
5 CLEAR 2000
8 DIM PISTE(40,2)
10 FAT$=DSKI$(0,20,2)
100 B=2:FOR A=1 TO 40
110 PISTE(A,1)=ASC(MID$(FAT$,B,1)):B=B+1
120 PISTE(A,2)=ASC(MID$(FAT$,B,1)):B=B+1
150 NEXT
190 SCREEN 7,0,0:CLS:LOCATE 5,0:PRINT"PISTE 0 à 39":PRINT
200 FOR A=1 TO 20
205 IF A<11 THEN TB$=" " ELSE TB$=""
210 P=A:B=1:GOSUB 1000:COLOR 7:PRINT TB$;A-1;" ";:COLOR COUL:PRINT BLOC$;
212 P=A:B=2:GOSUB 1000:PRINT " ";:COLOR COUL:PRINT BLOC$;
214 P=A+20:B=1:GOSUB 1000:PRINT " ";:COLOR COUL:PRINT BLOC$;
216 P=A+20:B=2:GOSUB 1000:PRINT " ";:COLOR COUL:PRINT BLOC$;" ";:COLOR 7:PRINT A+19
220 NEXT
300 LOCATE 23,05:COLOR 1:PRINT"X";:COLOR 7:PRINT " BLOC RESERVE"
310 LOCATE 23,06:COLOR 3:PRINT"F";:COLOR 7:PRINT " BLOC OCCUPE"
320 LOCATE 23,07:COLOR 2:PRINT"O";:COLOR 7:PRINT " BLOC LIBRE"
330 LOCATE 22,15:PRINT"X=RESERVER PISTE":LOCATE 22,16:PRINT "F=OCCUPER PISTE":LOCATE 22,17:PRINT"T=SAUVEGARDER FAT"
335 LOCATE 0,23:PRINT "COMMANDE : ";
340 K$=INKEY$:IF K$="" THEN 340
350 IF K$="X" THEN INPUT"RESERVER PISTE :",X:GOTO 2000
360 IF K$="F" THEN INPUT"OCCUPER PISTE :",X:GOTO 3000
370 IF K$="T" THEN 4000
380 GOTO 335
999 END
1000 IF PISTE(P,B)=254 THEN BLOC$="X":COUL=1 : REM reservé
1010 IF PISTE(P,B)=255 THEN BLOC$="O":COUL=2 : REM libre
1020 IF PISTE(P,B)<254 THEN BLOC$="F":COUL=3 : REM occupé
1030 RETURN
2000 Y=X+1
2005 PISTE(Y,1)=254:PISTE(Y,2)=254
2020 GOTO 190
3000 Y=X+1
3005 PISTE(Y,1)=Y*2:PISTE(Y,2)=(Y*2)+1
3020 GOTO 190
4000 FAT2$=CHR$(0)
4005 B=2:FOR A=1 TO 40
4010 FAT2$=FAT2$+CHR$(PISTE(A,1)):B=B+1
4020 FAT2$=FAT2$+CHR$(PISTE(A,2)):B=B+1
4030 NEXT
4040 FAT2$=FAT2$+LEFT$(FAT$,LEN(FAT$)-((b)))
4050 DSKO$ 0,20,2,FAT2$:GOTO 190
Daniel si tu pense qu'il y a une erreur quelque part ou que ma méthode n'est pas correcte n'hésite pas à le signaler
Je vais essayer de faire la conversion de DAKAR 4x4 ....
Re: Conversion cassettes MO5 en disquettes et fichiers .sd
Ca me parait trop facile je viens de convertir DAKAR 4x4 en disquette
J'ai un gros doute sur la zone RAM $9E00 - $9FFF ????
J'ai un gros doute sur la zone RAM $9E00 - $9FFF ????
-
- Messages : 7970
- Inscription : 18 sept. 2010 12:08
- Localisation : Brest et parfois les Flandres
Re: Conversion cassettes MO5 en disquettes et fichiers .sd
Hey, tu deviens un expert des FATs et de la structure DISK thomson. Bravo!
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
SAM: merci
Je viens de vérifier DAKAR 4x4 et il n'y pas de donnée stocké en $9E00-$9FFF donc c'est tout bon
Daniel tu peux les rajouter sur ton site bien entendu
je vais essayer de faire FBI ...
Je viens de vérifier DAKAR 4x4 et il n'y pas de donnée stocké en $9E00-$9FFF donc c'est tout bon
Daniel tu peux les rajouter sur ton site bien entendu
je vais essayer de faire FBI ...
Re: Conversion cassettes MO5 en disquettes et fichiers .sd
Ca y est j'ai réussi à convertir FBI
la difficulté pour celui la était qu'il y avait un mécanisme d’exécution du binaire pas classique, les adresses $223F-$2240 ne comporté pas la bonne adresse d’exécution et le jeu planté
Après réflexion il m'a fallu mettre un point d’arrêt dans le debugger et faire du pas à pas pour trouver l'adresse d’exécution
Un de plus
la difficulté pour celui la était qu'il y avait un mécanisme d’exécution du binaire pas classique, les adresses $223F-$2240 ne comporté pas la bonne adresse d’exécution et le jeu planté
Après réflexion il m'a fallu mettre un point d’arrêt dans le debugger et faire du pas à pas pour trouver l'adresse d’exécution
Un de plus
Re: Conversion cassettes MO5 en disquettes et fichiers .sd
Les conversions se succèdent à un tel rythme que j'ai du mal à suivre
Ce matin j'ai ajouté les trois dernières disquettes créées au site dcmoto, ainsi que les versions .sd pour les contrôleurs CS91-28x.
http://dcmoto.free.fr/programmes/_html/ ... mo_sd.html
Ce matin j'ai ajouté les trois dernières disquettes créées au site dcmoto, ainsi que les versions .sd pour les contrôleurs CS91-28x.
http://dcmoto.free.fr/programmes/_html/ ... mo_sd.html
Daniel
L'obstacle augmente mon ardeur.
L'obstacle augmente mon ardeur.
Re: Conversion cassettes MO5 en disquettes et fichiers .sd
Aujourd'hui 3 nouvelles conversions, comme le disait Daniel ca devient plus facile à chaque conversion
J'ai peaufiné mon loader de secteurs, avec le positionnement de la pile si besoin
J'utilise toujours les pistes 30-39 c'est plus qu'ils n'en faut
Pour Crocky je n'ai fait que de copier directement les fichiers sur la disquette, le jeux était compatible avec le DOS
oui c'était un peu trop facile
J'en laisse pour les autres, j'ai d'autres projets encours ...
J'ai peaufiné mon loader de secteurs, avec le positionnement de la pile si besoin
J'utilise toujours les pistes 30-39 c'est plus qu'ils n'en faut
Pour Crocky je n'ai fait que de copier directement les fichiers sur la disquette, le jeux était compatible avec le DOS
oui c'était un peu trop facile
J'en laisse pour les autres, j'ai d'autres projets encours ...
Dernière modification par 6502man le 07 déc. 2015 16:49, modifié 1 fois.
-
- Messages : 7970
- Inscription : 18 sept. 2010 12:08
- Localisation : Brest et parfois les Flandres
Re: Conversion cassettes MO5 en disquettes et fichiers .sd
10 secteurs d'utilisés? C'est peut pour une diskette. Ca vaudrait presque le coup de faire des "compils" avec 15 jeux k7 par D7 pour rentabiliser la place.
Pour wizzball, la version du splahscreen faite par pulkomandy est mieux que l'originale je trouve:
(http://www.logicielsmoto.com/phpBB/view ... 4008#p4008)
Pour wizzball, la version du splahscreen faite par pulkomandy est mieux que l'originale je trouve:
(http://www.logicielsmoto.com/phpBB/view ... 4008#p4008)
Dernière modification par __sam__ le 07 déc. 2015 15:45, modifié 1 fois.
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
C'est sûr, il y a des jeux plus facile à convertir que d'autres, ça repose après les cas difficiles
Les trois nouveaux sont ajoutés au site dcmoto. Merci à 6502man !
Le DOS prend beaucoup trop de place en ram, c'est là le principal problème. Pour convertir un jeu sur cassette, 90% du DOS est inutile, on utilise seulement deux commandes : LOAD et LOADM. J'ai eu l'idée de créer un DOS réduit, avec ces deux seules commandes, mais je n'ai pas su le faire. Il faudrait chercher davantage, ce serait une excellente application, très utile dans le cas des conversions.
Les trois nouveaux sont ajoutés au site dcmoto. Merci à 6502man !
Le DOS prend beaucoup trop de place en ram, c'est là le principal problème. Pour convertir un jeu sur cassette, 90% du DOS est inutile, on utilise seulement deux commandes : LOAD et LOADM. J'ai eu l'idée de créer un DOS réduit, avec ces deux seules commandes, mais je n'ai pas su le faire. Il faudrait chercher davantage, ce serait une excellente application, très utile dans le cas des conversions.
Daniel
L'obstacle augmente mon ardeur.
L'obstacle augmente mon ardeur.
Re: Conversion cassettes MO5 en disquettes et fichiers .sd
J'ai regardé 2/3 autres jeux par curiosité et certains utilise un programme BASIC avec des appels à des routines ASM, ils occupent beaucoup de mémoire en RAM, avec le DOS ca va être compliqué
SAM: j'ai écrit une bêtise c'est pas 10 secteurs mais 10 pistes que je réserve pour stocker le binaire, je rectifie mon message.
En faite j'ai pris beaucoup de marge ( 10 * 16 * 256 = 40960 octets ) , on pourrais ce contenter du stricte nécessaire pour faire une compil (au plus 7 pistes pour les plus gros jeux) ?
SAM: j'ai écrit une bêtise c'est pas 10 secteurs mais 10 pistes que je réserve pour stocker le binaire, je rectifie mon message.
En faite j'ai pris beaucoup de marge ( 10 * 16 * 256 = 40960 octets ) , on pourrais ce contenter du stricte nécessaire pour faire une compil (au plus 7 pistes pour les plus gros jeux) ?