Index du forum




Un petit coup de main... Vous pouvez nous aider à mettre ce site à jour: n'hésitez pas à me contacter !!!

* Connexion   * Inscription

* FAQ
Nous sommes actuellement le 01 Déc 2025, 10:15

Index du forum » Z80 Coding

Le fuseau horaire est UTC+1 heure


FDC Read Track

Modérateur: poulette73



Publier un nouveau sujet Répondre au sujet  Page 2 sur 2
 [ 25 message(s) ]  Aller vers la page Précédent  1, 2
  Aperçu avant impression Sujet précédent | Sujet suivant 
Auteur Message
dlfrsilver
 Sujet du message :
Message Publié : 30 Sep 2007, 21:36 
Hors-ligne
Rulezzzzz
Rulezzzzz

Inscription : 29 Août 2007, 12:04
Message(s) : 2009
Localisation : seine et marne 77
markerror a écrit :
Bonsoir,

Euh, c'est surtout super chiant à faire :-(. Et le plus difficile n'est pas de decoder le loader/ récupérer les données d'un jeu, mais réussir à le faire fonctionner en format fichier (s'il y a des rechargements et si la ram est utilisée à 99%, ce qui arrivait quand même de temps en temps).
Si le nombre de crackers s'est réduit à la fin de la vie du CPC, c'est aussi que la Multiface ne suffisait plus pour faire des cracjs propres :-)).

T&J/GPA


tu te sers du loader, c'est à dire que tu vas modifier le loader pour qu'il te charge les données normalement, sauf que tu vas mettre une routine qui va
halter le chargement. J'explique simplement par rapport à ce que je sais :

1) Le loader vient de se charger, maintenant le z80 a la tache de le décrypter.
2) Il est décrypté -> sauvegarde sur une disquette vierge.
3) Examen du loader avec les routine de chargement spéciale pour lire
les pistes dotées de secteurs de taille 6.
4) trouver la routine qui ressemble à :

table de fichier :

Fichier 01 Piste 02 à 05 / offset &500 à &4500
Fichier 02 Piste 06 à 08 / offset &4500 à &4800

et ainsi de suite. L'déal, c'est de se débrouiller pour ripper TOUTES les pistes en RAM. Avec les émulateurs on a accès à 512 ko de RAM. Donc y a
pas de pb la dessus.

Si on rippe par fichier, alors on va modifier le loader afin qui charge par
le nombre du fichier exemple :

fichier 01
fichier 02
fichier 03 etc....

Dans le loader 01 dans le nom du fichier doit être utilisé comme variable.
et donc faire comprendre au jeu qu'au lieu de charger la piste X,Y,Z
faut charger le fichier 01, 02 ou 03.

ça permet de niquer la gueule aux jeux MFM et qui utilisent un changement de format.

Des idées messieurs ?

:lol:


Haut
 Profil  
 
PhilA
 Sujet du message :
Message Publié : 03 Oct 2007, 21:41 
Hors-ligne
Rulez
Rulez
Avatar de l’utilisateur

Inscription : 20 Sep 2007, 00:02
Message(s) : 41
PhilA a écrit :
Ah tiens, puisque vos mémoires semblent être en meilleur état que la mienne, je suis à la recherche d'un défragmenteur de disquettes dont le listing avait dû être publié dans Amstrad 100% ou CPC infos.

Quelqu'un aurait ça SVP ?

Edit:
J'allais oublier (ma pauvre mémoire :roll:), je cherche aussi la version fichier ROM de DEStext. J'ai trouvé le DSK sur le net mais pas la ROM :?

P'tit bump ;)


Haut
 Profil  
 
Babar
 Sujet du message : Re:
Message Publié : 16 Nov 2008, 01:47 
Hors-ligne
Rulezz
Rulezz

Inscription : 07 Avr 2008, 20:45
Message(s) : 141
Localisation : Paris
Quelques éléments de réponse pour PhilA:

1) Comme le dit Markerror, l'utilitaire Floppy dans Hercule II a une fonction de Lire Piste et de mémoire on peut même sauvegarder le résultat dans un fichier.

2) Cette fonction n'a pas l'air de marcher sur les émulateurs sur PC, donc à essayer sur CPC.

3) Dans le post http://cpcrulez.free.fr/forum/viewtopic.php?f=6&t=223&st=0&sk=t&sd=a&start=97 on s'amuse à cracker Hercule II, et j'en suis justement au niveau du test de la protection, qui utilise une routine de LirePiste, exactement ce que tu recherches ! N'hésite pas à regarder dans quelques semaines aux alentours de la page 9 ou 10, car pour l'instant je n'ai rien écrit là-dessus (c'est un peu compliqué à comprendre...)

4) Sinon, le plus simple c'est d'obtenir un scan du livre "Le livre du lecteur de disquette sur Amstrad" aux éditions Micro Application, que je cherche depuis longtemps sur le net sans succès...si quelqu'un l'a en papier, merci de penser à en faire un scan !! Sinon on en voit passer raremetn sur eBay.


Haut
 Profil  
 
hERMOL
 Sujet du message : Re: FDC Read Track
Message Publié : 16 Nov 2008, 11:02 
Hors-ligne
Site Admin
Avatar de l’utilisateur

Inscription : 20 Août 2007, 18:21
Message(s) : 5103
Citer :
4) Sinon, le plus simple c'est d'obtenir un scan du livre "Le livre du lecteur de disquette sur Amstrad" aux éditions Micro Application, que je cherche depuis longtemps sur le net sans succès...si quelqu'un l'a en papier, merci de penser à en faire un scan !! Sinon on en voit passer raremetn sur eBay.


si quelqu'un a une version papier, je suis biensur partant pour en faire un scan/ocr et le mettre en ligne sur le site..


Haut
 Profil  
 
Babar
 Sujet du message : Re: FDC Read Track
Message Publié : 17 Nov 2008, 00:01 
Hors-ligne
Rulezz
Rulezz

Inscription : 07 Avr 2008, 20:45
Message(s) : 141
Localisation : Paris
PhilA, si tu es toujours là un an après !!

Voici le code de LIRE_PISTE qui se trouve dans le test de la protection d'HERCULE II:

Code :
'PROGRAMME DE LECTURE_PISTE DU LECTEUR DE DISQUETTE AMSTRAD

ld c,#07
call #b90f
ld de,#2500     où DE contient le numéro de la piste
call #c045
di
ld hl,TABLE     voir tout en bas (codes correspondant à LIRE_PISTE)
ld bc,#fb7e
ld e,#09

la0ba:          cette boucle envoie au FDC les 9 octets de l'instruction lire piste
ld a,(hl)
call #c95c
inc hl
dec e
jr nz,la0ba
ld hl,ADRESSE   c'est l'adresse où on veut que les données soient stockées
ld de,#1800     c'est le nombre d'octets que l'on veut lire
jr la0d4

la0ca:          boucle de lecture piste (attention on y entre par la0d4: )
ld a,d
or e
jr z,la0d4      lit tant que DE n'est pas nul
inc c
in a,(c)        lit l'octet suivant
ld (hl),a       stocke dans HL l'octet lu
inc hl
dec c
dec de
la0d4:
in a,(c)
jp p,la0d4
and #20
jr nz,la0ca

ei
call #c91c

' ici les 3 flags de résultat de la lecture de la piste se trouvent en:
' #BE4C, #BE4D, #BE4E

RET

TABLE: def #42,0,#24,0,#c1,2,#c1,#2a,#ff
(de mémoire ces codes n'ont pas grande importance, à part les 2 premiers; à vérifier dans le livre sur le "lecteur de disquette")

Et une autre manière de procéder, tout simplement télécharger Hercule II (sur ce site dans la partie Utilitaires) et lister le Basic du programme FLOPPY qui contient l'instruction Lire_Piste, mais au final ça doit ressembler au ci-dessus.

Merci de me confirmer que le code ci-dessus fonctionne bien !

hERMOL, si tu le juges utile, tu peux placer ce programme dans la partie de CPCrulez autour de http://cpcrulez.free.fr/coding_asm38b.htm ou 36b qui décrivent du code pour gérer des pistes et secteurs...


Haut
 Profil  
 
Megachur
 Sujet du message : Re: FDC Read Track
Message Publié : 29 Nov 2008, 09:15 
Hors-ligne
VIP
VIP
Avatar de l’utilisateur

Inscription : 12 Juin 2008, 20:29
Message(s) : 1726
TABLE: def #42,0,#24,0,#c1,2,#c1,#2a,#ff
(de mémoire ces codes n'ont pas grande importance, à part les 2 premiers; à vérifier dans le livre sur le "lecteur de disquette")

voilà ce qui est demandé exactement au FDC :

&42 01000010
Send Command READ A TRACK
avec "non" to SK Skip SK stands for Skip Deleted Data Address Mark
avec "oui" to MFM ??? If MF is low, FM mode is selected and if it is high, MFM mode is selected.

&00 00000000
lecteur de disquette = A
Tête du lecteur = 0

#24

numéro du cylindre = 36

0

numéro de tête de lecture = 0

&c1

numéro de secteur = &c1

&02

numéro de data du secteur

#c1

fin de piste

#2a

GPL stands for the length of Gap 3 (spacing between sectors excluding VCO Sync field)

#ff

When N is defined as 00, DTL stands for the data length which users are going to read out or write into the sector.



pour info également, je réalise en ce moment un programme z80 pour piloter le fdc et j'ai vu que winape ne savait pas faire la commande "read id" du FDC !!!


Haut
 Profil  
 
dlfrsilver
 Sujet du message : Re: FDC Read Track
Message Publié : 29 Nov 2008, 16:36 
Hors-ligne
Rulezzzzz
Rulezzzzz

Inscription : 29 Août 2007, 12:04
Message(s) : 2009
Localisation : seine et marne 77
mdrrrrr !!!! Comme quoi hein, moi qui pensait que wilson avait un peu mieux bidouillé ou recodé
sa partie FDC, ben ça pue bien de la gueule son truc !

vivement qu'ils recodent tous cette partie :(

_________________
SPS Community Expert (SPS CE) / SPS France


Haut
 Profil  
 
Babar
 Sujet du message : Re: FDC Read Track
Message Publié : 07 Déc 2008, 01:04 
Hors-ligne
Rulezz
Rulezz

Inscription : 07 Avr 2008, 20:45
Message(s) : 141
Localisation : Paris
Megachur a écrit :
pour info également, je réalise en ce moment un programme z80 pour piloter le fdc et j'ai vu que winape ne savait pas faire la commande "read id" du FDC !!!
Salut Megachur, intéressant, sur la base de ton expérience quel est l'émulateur qui émule le mieux le FDC ?

(après quelques petits tests sans prétention, personnellement j'avais conclu à WinAPE car il arrivait à faire tourner le copieur Hercule II. Mais vu ce que tu nous dis sur "read id"...)


Haut
 Profil  
 
Megachur
 Sujet du message : Re: FDC Read Track
Message Publié : 07 Déc 2008, 07:49 
Hors-ligne
VIP
VIP
Avatar de l’utilisateur

Inscription : 12 Juin 2008, 20:29
Message(s) : 1726
En fait, je me suis avancé un peu vite...

Il se trouve que l'émulation de winape est finalement mieux que celle de CPCE par exemple.

Car le Read Id doit renvoyer le secteur qui est juste lisible en ce moment par le FDC :
winape me renvoyait jamais le même (après un seek à la piste 0)
alors que cpce me renvoyait toujours "&c1"

et en fait c'est l'émulation fdc de winape qui est la mieux car c'est normal que lorsqu'on y arrive pas avec le même timing, la tête de lecture ne soit pas toujours à la même place !!!

Sinon, j'ai implémenté la commande "read data" également -> ce qui est bizarre, c'est qu'il ne faut pas fournir le paramètre GAP3 (GPL) sinon le FDC renvoie un 'abnormal termination of command' ou selon les valeurs 'end of cylinder'...
je pense que cela ne doit être utile que pour le write, et que pour le reste, en lecture, il lit juste ce qu'il y a sur le disque en fonction du secteur id (ex : &c1 pour un disc formaté en data standard) et de la longueur attendu (ex : &02 pour un disc formaté en data standard)...

dans l'exemple :

TABLE: defb #42,0,#24,0,#c1,2,#c1,#2a,#ff

#2a et #ff sont inutiles et devrait être à 0 !

#2a car cela ne semble servir à rien au FDC (juste à faire un Abnormal Termination of command ou un 'j'ai dépassé le cylindre')
#ff est inutile car le paramètre N n'est pas à 0 (mais à 2) !!!

:winner:


Haut
 Profil  
 
dlfrsilver
 Sujet du message : Re: FDC Read Track
Message Publié : 07 Déc 2008, 08:24 
Hors-ligne
Rulezzzzz
Rulezzzzz

Inscription : 29 Août 2007, 12:04
Message(s) : 2009
Localisation : seine et marne 77
Je rebondis sur ce que tu dis, même si winape a l'air de mécaniquement tourner de façon plus "correcte" que CPCE voir les autres,

c'est pourtant avec lui dans la pratique que la compatibilité avec les originaux est la moindre....

_________________
SPS Community Expert (SPS CE) / SPS France


Haut
 Profil  
 
Afficher les messages publiés depuis :  Trier par  
Publier un nouveau sujet Répondre au sujet  Page 2 sur 2
 [ 25 message(s) ]  Aller vers la page Précédent  1, 2

Index du forum » Z80 Coding

Le fuseau horaire est UTC+1 heure


Qui est en ligne ?

Utilisateur(s) parcourant ce forum : Aucun utilisateur inscrit et 17 invité(s)


Vous ne pouvez pas publier de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas insérer de pièces jointes dans ce forum

Aller vers :  
Powered by phpBB® Forum Software © phpBB Group
Traduit en français par Maël Soucaze.