Inscription : 29 Août 2007, 12:04 Message(s) : 1990 Localisation : seine et marne 77
Thomas, je te demanderais de ne pas poster de fichier SCP sur mon topic. Ce topic concerne les dumps effectués avec le kryoflux, je fais partie de l'équipe, et ils ne veulent pas être associé ou qu'une personne faisant partie de SPS soit rattaché avec le système SCP.
Je ne veux avoir aucune réflexion ni remarque à ce sujet, les auteurs du kryo ne peuvent pas saquer le père Drew !
Ensuite, pour en avoir parlé avec un français qui s'occupe de préservation au Japon, le SCP a un problème avec l'index. Le kryo est le seul matos étant OK (j'avoue que ça m'a surpris quand il m'a dit ça, mais il a fait des tests poussés avec le SCP sur un grand nombre de logiciels japonais, et ça le fait clairement pas, et ceci sans pousser jusqu'à la création d'IPFs (99% des logiciels japonais, même protégés ne sont pas vu comme dupliqués donc pas d'IPF).
_________________ SPS Community Expert (SPS CE) / SPS France
Denis, si je comprends ton point de vue, j'aurais apprécié un déplacement de post plutôt qu'une édition pure et simple. Egalement, je te serais gré, lors de tes éditions de modération, de ne pas y inclure tes opinions, que l'on pourrait prendre pour les miennes. Merci d'avance.
Je lancerais donc un nouveau topic sur le sujet pour ne pas polluer celui-ci.
Inscription : 29 Août 2007, 12:04 Message(s) : 1990 Localisation : seine et marne 77
Lone a écrit :
Denis, si je comprends ton point de vue, j'aurais apprécié un déplacement de post plutôt qu'une édition pure et simple. Egalement, je te serais gré, lors de tes éditions de modération, de ne pas y inclure tes opinions, que l'on pourrait prendre pour les miennes. Merci d'avance.
Je lancerais donc un nouveau topic sur le sujet pour ne pas polluer celui-ci.
Le fait est que j'ai déjà demandé par le passé de ne pas poster sur ce topic au sujet du SCP.
Je n'inclue pas mes opinions, si tu avais été là à la BNF, il t'aurait dit la même chose.
Ce qu'il m'a dit n'est pas une opinion mais un fait. Les deux systèmes ont été testés au Japon de manière extensive, et le SCP a un problème avec l'index. Si tu veux en savoir plus, je peux te mettre en contact avec mon homologue Français au Japon, il t'expliquera les choses plus en détail.
_________________ SPS Community Expert (SPS CE) / SPS France
Ce qu'il m'a dit n'est pas une opinion mais un fait. Les deux systèmes ont été testés au Japon de manière extensive, et le SCP a un problème avec l'index. Si tu veux en savoir plus, je peux te mettre en contact avec mon homologue Français au Japon, il t'expliquera les choses plus en détail.
Inscription : 29 Août 2007, 12:04 Message(s) : 1990 Localisation : seine et marne 77
Lone a écrit :
dlfrsilver a écrit :
Ce qu'il m'a dit n'est pas une opinion mais un fait. Les deux systèmes ont été testés au Japon de manière extensive, et le SCP a un problème avec l'index. Si tu veux en savoir plus, je peux te mettre en contact avec mon homologue Français au Japon, il t'expliquera les choses plus en détail.
Ca sera avec grand plaisir !
Ok, dès que je le vois en ligne, je lui en parle
_________________ SPS Community Expert (SPS CE) / SPS France
Inscription : 12 Juin 2008, 20:29 Message(s) : 1709
J'ai fait un analyse rapide du loader HEXAGON de << Les Chevaliers (UK) (Face 1) (1990) (1. BlackTiger - 2. Strider - 5. Led Storm) [Original] [COMPILATION] >> : pour le chargement de Black Tiger (choix 1 du menu)
Code :
; Analyse du loader des Chevaliers (UK) (1990) (Face 1) (U.S.Gold - Capcom) ; Chargement des données de Black Tiger
org #754a ; -----------------------------> data ; db #00,#08,#18,#01 nop ex af,af' jr #754f ; -----------------------------> debut du loader ld sp,#c000 push af ; a = #41 ld a,#01 call #bc0e ld bc,#0000 .l755a call #bc38 call l75d7 ; changement des couleurs -> noir pop af ld c,a and #0f ; a=#01 ld (l7653),a cp c ; c != a ld a,#0a ld ix,#c000 call z,l75ef ; on va pas en #75ef ei ld hl,l755a ; on va prendre les couleurs entre &755a et &754a ld a,#10 .l7577 dec hl dec a push af push hl ld b,(hl) ld c,b call #bc32 pop hl pop af jr nz,l7577 ; bon c'est fini on a mis des couleurs en fonction du debut des donnees du loader ! call l75e4 ; wait the new colors set... ; -----------------------------> recuperation des donnes ld a,#0b ; numero de piste ld ix,#0500 ; emplacement des datas call l75ef ; go ! ; -----------------------------> recuperation des donnes ld a,#0c ld ix,#ac00 call l75ef ; -----------------------------> recuperation des donnes ld a,#0d ld ix,#0100 call l75ef ; -----------------------------> recuperation des donnes call l75ca ; colors #10->#00 to black
; org #0000 ; di ; jp #0100 ; cela prepare un rst #00 ;-) dans la suite du code !?
ld sp,#c000 jp #0500
;org #0500 ;di ;jp #305a ; suite du chargement et initalisation du jeu !
.l75ca ; colors #10->#00 to black ld bc,#7f10 .l75cd out (c),c ld a,#54 out (c),a dec c ret m jr l75cd .l75d7 ; changement couleurs -> noir ld a,#10 .l75d9 ld bc,#0000 dec a push af call #bc32 pop af jr nz,l75d9 .l75e4 call #bc41 ; Gets the periods with which the colours of the border and PENs flash - HL = &0a0b inc l ld b,l .l75e9 call #bd19 ; Waits until a frame flyback occurs djnz l75e9 ; wait some vbls ret ; -----------------------------> get the data .l75ef di ld (l7652),a ; numero de la piste ld a,#05 ld (l77f9),a ; ? call l76df ; demarrage du moteur du lecteur de disquette avec a = &05 ! .l75fb push ix push ix ld bc,#fb7e .l7602 call l777c ; send command and get result ld a,(hl) ; a = (hl=&77f2) or a jr nz,l7602 ld a,(l77fa) ; a = (hl=&77fa) or a jr nz,l7648 dec a .l7610 inc a call l7761 ; go to track call l777c ; check status ld a,(l77f8) cp #06 ld a,(l77f1) ; a=track number jr nz,l7610 ld hl,l7918 push hl push hl ld bc,#0000 ld de,#01f8 ;;;;;;;;;;;;;;;;; call l771d ; get &01f8 data to hl (=&7918) pop iy pop hl ld e,#24 ld c,#0e .l7636 ld d,(iy+#05) ld b,c .l763a ; decode data with d=(iy+#05) (example, first block key in #7918 = (#7918+#05)=#35)) ld a,(hl) xor d ld (hl),a inc hl djnz l763a ld (iy+#05),d ; keep d value to (#7918+#05)=#35 add iy,bc ; next bloc bc=&000e , iy+&000e dec e jr nz,l7636 .l7648 ld a,#01 ld (l77fa),a ld ix,l7918 ; .l7653 equ $ + 2 .l7652 equ $ + 1 ld de,#0000 ; de = #0100 + (#7652)=#0b 1st time ld bc,#0000 .l7657 ; check checksum ? add ix,bc ld c,#0e ld a,(ix+#00) and #0f cp d jr nz,l7657 ld a,(ix+#01) cp e jr nz,l7657
ld a,(ix+#0b) ld (l76eb),a ld l,(ix+#0c) ld h,(ix+#0d) ld (l76ed),hl pop hl ld a,(ix+#06) ld (l76f9),a ld a,(ix+#05) push af ld a,(ix+#00) ld (l76fb),a ld e,(ix+#07) ld d,(ix+#08) rla jr nc,l769c and a sbc hl,de ld c,(ix+#09) ld b,(ix+#0a) add hl,bc .l769c ld a,(ix+#02) ld c,(ix+#03) ld b,(ix+#04) push hl push de call l771d ; get data from tracks ; ------------------------- calculate checksum of datas... pop de ; de=&5ce5 data to go pop hl ; hl=&0d1b push de push hl ld c,#00 .l76b0 ; decode data ld a,(hl) xor c ld c,a ; xor with previous data inc hl dec de ld a,d or e jr nz,l76b0 pop hl pop de pop af ; a=#90 pop ix ; ix=#0500 sub c jr z,l76e5 ; z=0 -> go to #76e5 ld hl,l77f9 dec (hl) jp nz,l75fb ld hl,l76d5 push hl ld de,#bf00 ld bc,#0009 ldir ret .l76d5 call l76de ld bc,#7f80 out (c),c rst #00 .l76de ; fdd motor off sub a .l76df ; fdd motor on if a = &01 ld bc,#fa7e out (c),a ret ; ------------------------ decode data loaded .l76e5 ; ------------------------ decode data loaded
; 1st time ; hl =#0d1b ; de =#5ce5 ; ix =#0500 ; bc =#fb90
; second time ; hl =#acd0 ; de =#0150 ; ix =#ac00 ; bc =#fbc0
; third time ; hl =#0107 ; de =#01e1 ; ix =#0100 ; bc =#fb72
; 4th time ; hl =#f449 ; de =#0bb7 ; ix =#f200 ; bc =#fbf2
call l76de ; set fdd motor off push de ; de= (length of data) (1st time #5ce5) push hl ; hl= (adr data) (1st time #0d1b= .l76eb equ $ + 1 ld c,#00 ; first byte to decode (1st example c=#2a) .l76ec ld a,(hl) .l76ed xor e ; e is always changing because of "dec de" after xor c ; c always the same ld (hl),a inc hl dec de ld a,d or e jr nz,l76ec ;----------- data is all decoded ! pop hl ; hl= #0d1b (data loaded & decoded 1st address) pop de ; de= #5ce5 (length) .l76f9 equ $ + 1 ld c,#00 ; c = &e2 .l76fb equ $ + 1 ld a,#00 ; a= &c1 rla ret nc .l76fe ; move data (and decompress if any same data) to ix=&0500 ld b,#01 ld a,(hl) cp c jr nz,l770f ; a != c -> 770f - if one data only, not a block of same data inc hl dec de ld a,(hl) or a ld a,c jr z,l770f ld b,(hl) inc hl dec de ld a,(hl) .l770f ld (ix+#00),a ; data to ix=#0500... inc ix djnz l770f ; do it b time if there is a block of same data ! inc hl dec de ld a,d or e jr nz,l76fe ; end !?
; end 1st time ; hl =#6a00 ; de =#0000 ; ix =#6a00 ; bc =#00e2
; second time ; hl =#ae20 ; de =#0000 ; ix =#ae20 ; bc =#00ef
; third time ; hl =#02e8 ; de =#0000 ; ix =#02e8 ; bc =#00fc
; 4th time ; hl =#0000 ; de =#0000 ; ix =#0000 ; bc =#00ef
ret
.l771d ld (l77f1),a ld (l778f),bc ld (l77a9),hl ld (l7740),de ; length of data to load ld bc,#fb7e .l772e ld a,(l77f1) call l7761 ld hl,#18a0 ; length of data ! #18a0 = 6304 ld de,(l778f) and a sbc hl,de ex de,hl .l7740 equ $ + 1 ld hl,#0000 ; length of data to load sbc hl,de jr nc,l774b add hl,de ex de,hl sub a ld h,a ld l,a .l774b ld (l7740),hl ld (l77ac),de push af ld hl,l77e1 ; send command to fdc in &77e1 - load sector to ... call l777f ld hl,l77f1 inc (hl) ; next track pop af jr nz,l772e ret .l7761 ; go to track ld (l77f1),a ld (l77e4),a .l7767 ld hl,l77ee ; send command to fdc in &77ee - go to track call l777f .l776d ld hl,l77df ; send command to fdc in &77df - check if fdd as reached the right track number call l777f bit 5,(hl) ; check first result fdc data (&77f2) = &20 (if ok) jr z,l776d bit 3,(hl) ; check first result fdc data (&77f2) = &08 (if bad) jr nz,l7767 ret .l777c ; send command to fdc in &77eb ld hl,l77eb .l777f ; send command to fdc ld e,(hl) .l7780 inc hl .l7781 in a,(c) add a jr nc,l7781 ld a,(hl) inc c out (c),a dec c dec e jr nz,l7780 .l778f equ $ + 1 ld hl,#0000 jr l77a1 .l7793 in a,(c) jp p,l7793 and #20 jr z,l77c7 inc c in a,(c) dec c dec hl .l77a1 ld a,h or l jr nz,l7793 ld (l778f),hl .l77a9 equ $ + 1 ld hl,#0000 .l77ac equ $ + 1 ld de,#0000 jr l77bb .l77b0 ld a,d or e jr z,l77bb dec de inc c in a,(c) dec c ld (hl),a inc hl ; -----------------------------> get result of the cmd from the fdc .l77bb in a,(c) jp p,l77bb and #20 jr nz,l77b0 ld (l77a9),hl .l77c7 ld hl,l77f2 push hl .l77cb in a,(c) bit 4,a jr z,l77dd cp #c0 jr c,l77cb inc c in a,(c) dec c ld (hl),a inc hl jr l77cb .l77dd pop hl ret .l77e4 equ $ + 5 .l77e1 equ $ + 2 .l77df db #01,#08,#09,#46,#00,#00,#00,#01 .l77ee equ $ + 7 .l77eb equ $ + 4 db #06,#01,#2a,#ff,#02,#4a,#00,#03 .l77f2 equ $ + 3 .l77f1 equ $ + 2 db #0f,#00,#00,#00,#00,#00,#00,#00 .l77fa equ $ + 3 .l77f9 equ $ + 2 .l77f8 equ $ + 1 db #00,#00,#00,#00,#00,#00,#00,#00 db #00,#00,#00,#00,#00,#00,#00,#00 db #00,#00,#00,#00,#00,#00,#00,#00 db #00,#00,#00,#00,#00,#00,#00,#00 db #00,#00,#00,#00,#00,#00,#00,#00 db #00,#00,#00,#00,#00,#00,#00,#00 db #00,#00,#00,#00,#00,#00,#00,#00 db #00,#00,#00,#00,#00,#00,#00,#00 db #00,#00,#00,#00,#00,#00,#00,#00 db #00,#00,#00,#00,#00,#00,#00,#00 db #00,#00,#00,#00,#00,#00,#00,#00 db #00,#00,#00,#00,#00,#00,#00,#00 db #00,#00,#00,#00,#00,#00,#00,#00 db #00,#00,#00,#00,#00,#00,#00,#00 db #00,#00,#00,#00,#00,#00,#00,#00 db #00,#00,#00,#00,#00,#00,#00,#00 db #00,#00,#00,#00,#00,#00,#00,#00 db #00,#00,#00,#00,#00,#00,#00,#00 db #00,#00,#00,#00,#00,#00,#00,#00 db #00,#00,#00,#00,#00,#00,#00,#00 db #00,#00,#00,#00,#00,#00,#00,#00 db #00,#00,#00,#00,#00,#00,#00,#00 db #00,#00,#00,#00,#00,#00,#00,#00 db #00,#00,#00,#00,#00,#00,#00,#00 db #00,#00,#00,#00,#00,#00,#00,#00 db #00,#00,#00,#00,#00,#00,#00,#00 db #00,#00,#00,#00,#00,#00,#00,#00 db #00,#00,#00,#00,#00,#00,#00,#00 db #00,#00,#00,#00,#00,#00,#00,#00 db #00,#00,#00,#00,#00,#00,#00,#00 db #00,#00,#00,#00,#00,#00,#00,#00 db #00,#00,#00,#00,#00,#00,#00,#00 db #00,#00,#00,#00,#00,#00,#00,#00 db #00,#00,#00,#00,#00,#00,#00,#00 db #00,#00,#00,#00,#00,#00,#00,#00 db #00,#00,#00,#00,#00,#00,#00,#00 .l7918 equ $ + 1 db #00,#00,#00,#00,#00,#00,#00,#00 db #00,#00,#00,#00,#00,#00,#00,#00 db #00,#00,#00,#00,#00,#00,#00,#00 db #00,#00,#00,#00,#00,#00,#00,#00 db #00,#00,#00,#00,#00,#00,#00,#00 db #00,#00,#00,#00,#00,#00,#00,#00 db #00,#00,#00,#00,#00,#00,#00,#00 db #00,#00,#00,#00,#00,#00,#00,#00 db #00,#00,#00,#00,#00,#00,#00,#00 db #00,#00,#00,#00,#00,#00,#00,#00 db #00,#00,#00,#00,#00,#00,#00,#00 db #00,#00,#00,#00,#00,#00,#00,#00 db #00,#00,#00,#00,#00,#00,#00,#00 db #00,#00,#00,#00,#00,#00,#00,#00 db #00,#00,#00,#00,#00,#00,#00,#00 db #00,#00,#00,#00,#00,#00,#00,#00 db #00,#00,#00,#00,#00,#00,#00,#00 db #00,#00,#00,#00,#00,#00,#00,#00 db #00,#00,#00,#00,#00,#00,#00,#00 db #00,#00,#00,#00,#00,#00,#00,#00 db #00,#00,#00,#00,#00,#00,#00,#00 db #00,#00,#00,#00,#00,#00,#00,#00 db #00,#00,#00,#00,#00,#00,#00,#00 db #00,#00,#00,#00,#00,#00,#00,#00 db #00,#00,#00,#00,#00,#00,#00,#00 db #00,#00,#00,#00,#00,#00,#00,#00 db #00,#00,#00,#00,#00,#00,#00,#00 db #00,#00,#00,#00,#00,#00,#00,#00 db #00,#00,#00,#00,#00,#00,#00,#00 db #00,#00,#00,#00,#00,#00,#00,#00 db #00,#00,#00,#00,#00,#00,#00,#00 db #00,#00,#00,#00,#00,#00,#00,#00 db #00,#00,#00,#00,#00,#00,#00,#00 db #00,#00,#00,#00,#00,#00,#00,#00 db #00,#00,#00,#00,#00,#00,#00,#00 db #00 ...
ce que j'y vois c'est un chargement des pistes 8k avec #18a0 = 6304 données exactement... donc il faut que ces 6304 données soient exactes puisque que calcul d'un checksum (cf code ci-dessus) !
sinon, ce que j'y ai vu : - calcul de checksum avec clé dépendante des données - decodage avec clé dépendante des données et même un petit decrunch si un block de données est avec la même donnée identique !!!
Inscription : 29 Août 2007, 12:04 Message(s) : 1990 Localisation : seine et marne 77
Merci, c'est donc la variante Hexagon $18A0. Il doit y avoir une subtilité, parce que le CTA ne la reconnait pas.
ce qui nous met la puce à l'orteil, c'est la ligne suivante : ld hl,#18a0 ; length of data ! #18a0 = 6304
En tout cas, le mec qui a pondu ce loader, s'est inspiré des loaders en trackload de l'Amiga, c'est exactement le même principe que ces derniers utilisent.
J'ai adoré le :
ld sp,#c000 jp #0500
pour Black Tiger !
C'est carrément brutal comme méthode de chargement, et hop direct en $0500 !
_________________ SPS Community Expert (SPS CE) / SPS France
Inscription : 12 Juin 2008, 20:29 Message(s) : 1709
@dlfrsilver :
en analyse rapide entre le dsk sur cpc-p0wer : Secret Agent - Sly Spy (UK) (Face A) (1990) (UK retail version) [Original] qui fonctionne mais avec une piste trop importante... et celui-ci la fin des pistes n'est pas exactement la même avant l'index : ce qui pourrait expliquer le pb de chargement (visible au lancement du première level par un beau plantage) !
Megachur : Pour cette piste 1, le CTRaw correspond exactement au dump que tu mentionnes. (Il fonctionne bien, en tout cas sur les deux premier niveaux !)
C'est assez curieux tout de même : Les FF après l'index (dans le cas de la piste 1) correspondent à des 00 avec bit clock/data inversés.
Autre remarque, la piste 8 : Dans la version correcte, on n'a pas de shift au passage d'index (E5 tout du long). La version dsk présente ci dessus , elle, est complétée par un tas de '00' dont la présence est inexpliquée... Sauf par une erreur de génération de dsk quelconque.
Inscription : 29 Août 2007, 12:04 Message(s) : 1990 Localisation : seine et marne 77
Megachur a écrit :
@dlfrsilver :
en analyse rapide entre le dsk sur cpc-p0wer : Secret Agent - Sly Spy (UK) (Face A) (1990) (UK retail version) [Original] qui fonctionne mais avec une piste trop importante... et celui-ci la fin des pistes n'est pas exactement la même avant l'index : ce qui pourrait expliquer le pb de chargement (visible au lancement du première level par un beau plantage) !
puis que des zéros !!! 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000
mais il faudrait également analyser le loader pour voir combien il lit de données, quel checksum dans les datas (ou à la fin) ?!
Salut Megachur,
(j'ai bien reçu tes cassettes. J'ai traité Matchday II en version hitsquad, c'est la même version que celle qu'on a sur CPCrulez et CPCpower, le speedlock est identique, c'est un speedlock v6 1650 bauds.)
Concernant Sly Spy Secret Agent, la version sur cpc p0wer/CPCrulez est ancienne. Cette nouvelle version est tirée de ma disquette originale, et les eDSK ont été crée avec Samdisk v4.0.
La Face A est composée comme suit :
1 piste bootloader speedlock en 512 x 9, puis 8 pistes speedlock de 6K SANS checksum, mais AVEC variation de densité !
Les pistes dans l'eDSK font 6400 octets, dont 6224 octets utilisés, ça fait $1850 par pistes.
sur le dump lourd, les pistes speedlock font entre 6272 et 6290 octets.
Qu'est-ce qui vous chagrine ? Les eDSKs sont fonctionnels, ils fonctionnent avec sugarbox et CPCE.
Je note qu'il merde avec Caprice Forever (tiens tiens), et ton ému Megachur.....
Vous avez une couille dans le potage.....
_________________ SPS Community Expert (SPS CE) / SPS France
Inscription : 29 Août 2007, 12:04 Message(s) : 1990 Localisation : seine et marne 77
Lone a écrit :
Megachur : Pour cette piste 1, le CTRaw correspond exactement au dump que tu mentionnes. (Il fonctionne bien, en tout cas sur les deux premier niveaux !)
C'est assez curieux tout de même : Les FF après l'index (dans le cas de la piste 1) correspondent à des 00 avec bit clock/data inversés.
Autre remarque, la piste 8 : Dans la version correcte, on n'a pas de shift au passage d'index (E5 tout du long). La version dsk présente ci dessus , elle, est complétée par un tas de '00' dont la présence est inexpliquée... Sauf par une erreur de génération de dsk quelconque.
la génération a été faite avec Samdisk v4.0 ; mais il s'agit d'un problème d'émulation.....
Je sais pas pourquoi, mais j'ai l'impression que c'est le dilemme de la poule et de l'oeuf, je veux dire par là que la nouvelle version de samdisk rabote les piste pour faire pile 6305 octets maximum (6400 octets structure comprise). Seulement voilà, comme on est en sectoriel, y a un loupé quelque part.
J'ai bien saisi que le FDC se cale avec un timing précis pour lire une piste, si ça s'arrête trop tot ou trop tard, ça merde.....
Il faut absolument caler les eDSKs sur le FDC et non le FDC sur les eDSKs :/
_________________ SPS Community Expert (SPS CE) / SPS France
--> à partir de là, ce n'est plus comme le dsk généré à partir du CTRAW ??? --> donc il y a peut-être un correctif de données à voir par Lone ce qui se passe à ce moment dans son analyseur/correcteur de données...
donc clairement, les données ne sont pas alignés comme il devrait l'être dans l'eDSK car on devrait se retrouver (avec correctif de données et alignement pas le data separator ?) comme sur le premier eDsk existant pour moi...
bon dès que j'aurai 5 minutes j'irai voir le loader pour savoir combien de données il lit et comment il contrôle le tout (ou pas puisque qu'il ne bloque pas à ce stade du chargement même si les données sont fausses) !
Inscription : 12 Juin 2008, 20:29 Message(s) : 1709
Bon, je vais vous passez le détail de l'analyse du loader mais en gros ce que j'ai vu
le loader se sert des premiers octets lus sur le secteur #c8 en piste 0 qu'il utilise mais j'ai pas pris le temps de comprendre plus : = "01 01 01 40 02 03 11 7E" then E5 E5 ...
ensuite les datas qui sont lus : (break en &a829 si cela intéresse quelqu'un ?) Piste 0 secteur #c8 : hl = #a8a1 = address to store data loaded de = #0000 = length of data to read donc premier coup on lit #ffff data !!!
bon... on n'y va à fond cette fois, vas-y FDC !!! mais non...on s'arrête à de = #FE00 grâce au result du fdc qui dit fin de secteur après #200 (=512 bytes) lus comme demandé par la commande FDC Command=4c-00 00 00 c8 02 c8 2a ff
ouf !
next
Piste 1 secteur #c1 : hl = #c000 = address to store data loaded de = #1800 = length of data to read
next
Piste 2 secteur #c1 #d800 #1800
--> le screen d'intro apparait en &c000 !!!
next
Piste 3 secteur #c1 #f000 #1000 on en lit moins cette fois !!!
même piste
Piste 3 secteur #c1 #1400 #0800 on en lit encore moins cette fois !!!
Piste 4 secteur #c1 #1C00 #1800 ouf, on reprend la cadence !
Piste 5 secteur #c1 #3400 #1800
Piste 6 secteur #c1 #4c00 #1800
Piste 7 secteur #c1 #6400 #1800
Piste 8 secteur #c1 #7c00 #1600 un peu moins...mais c'est fini pour la face A !
Code :
et voilà la fin du loader .la6c9 ; end of loading exx ld bc,#fa7e ; motor off ! out (c),c .la6d1 equ $ + 2 ld hl,la718 ld de,la719 ld bc,#0180 ld (hl),a ldir ld hl,la600 ld de,la601 ld bc,#00e5 ld (hl),a ldir di ld hl,#1400 ld de,#0000 ld bc,#2c02 ldir ld sp,#3a00 ld hl,la70a ld de,#3000 ld bc,#0010 ldir ld bc,#7f8c out (c),c xor a ex af,af' exx jp (hl) ; on va où ? .la70a ; et bien pas là mais en #3000 ld hl,#912f ld de,#bfff ld bc,#4002 lddr jp #0078
et en #3000 ld hl,#912f ld de,#bfff ld bc,#4002 lddr jp #0078
si ça peut aider... pas vu de décodage ou de calcul checksum !!!
donc si le jeu plante après...c'est uniquement dû à une erreur de lecture sur les datas !
Utilisateur(s) parcourant ce forum : Aucun utilisateur inscrit et 7 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