Cours de déplombage 07

Note de Deckard du 14/11/2005. La plupart des cours de Godfather furent distribués gratuitement par le groupe concurrent The Brain Trust lors de la guéguerre que se livrèment l'auteur et ces pirates. Les disquettes ne provenaient pas directement de Godfather mais d'élèves qui prirent fait et cause du TBT en donnant leur version malgré l'interdit et la menace de représaille de notre cracker rédacteur. C'est ainsi que j'ai pu me procurer une grande partie du travail de GDF. Malheureusement, les élèves n'étaient pas toujours soigneux ou les disks copiés sont passés dans de mauvaises mains.
La preuve: ma version (comme celle de The White Man) est flinguée en plein milieu. Apparement un élève s'est essayé à la signature HGR en accès direct et a pourri le fichier principal du cours avec une image HGR (31 secteurs de cours sur 176 et le 2nd secteur de TSL du fichier T. COURS 7 REVISION 2.30) placée maladroitement sur les pistes $0E et $0F (32 secteurs, ordre: piste croissante, secteurs croissants). La TSL est en track $0E sector $05.

Merci à Blacky (Cochonou Crack Band) et à son superbe outil PC -que nous évoquerons bientôt- qui m'a permis en quelques clics de récupérer cette image de merde qui n'apporte hélas rien:

Ecran

Bref, ce monsieur " Le Bug " porte bien son nom et du coup, je suis à la recherche d'une version propre complète.
Si vous avez, envoyez moi un .dsk et je le mettrais en remplacement.

J'ai quand même voulu mettre ce cours en ligne malgré la coupure bestiale...
J'ai reconstitué la TSL et ai mis des espaces dans les secteurs écrasés pour que la lecture du cours puisse se faire normalement jusqu'au bout à partir de la disquette.


Mise à jour du 12/09/2006: j'ai retrouvé dans un courrier du pirate The Bytlejuice (avec qui j'avais aussi échangé des cours), l'information comme quoi en fait ce serait Godfather qui aurait miné la disquette pour faire en sorte que les personnes l'ayant obtenue sous le manteau ne puissent pas en avoir une version correcte!!! On atteint des sommets là!!!
Bref, si en bootant la touche ESC n'est pas appuyée alors une routine vicieuse écrit en plein au milieu du cours des informations empêchant par la suite la lecture... trop fort!! Je recherche donc la version qui a toujours subit un ESC au boot!!!


Lettre TBJ
Lettre TBJ


Ecran
Ecran
Ecran
Ecran
Ecran


Disk : Gdf07_TSL_Reparee.dsk
"-" files are DELETED files | "*" files are LOCKED files
----------------------------------------------------------------------
 A A$0000 (000000) L$0280 (000640) 004 COPY
 A A$0000 (000000) L$0531 (001329) 007 HELLO
 B A$0300 (000768) L$00C1 (000193) 002 HEX_DEC CONVERTER
 B A$0901 (002305) L$05D8 (001496) 007 HEX_DEC CONVERTER.S
 B A$1F92 (008082) L$6080 (024704) 098 MUS.HALLEY PROJECT
 B A$0300 (000768) L$00A4 (000164) 002 SREAD_SWRITE                 
 B A$0300 (000768) L$00A5 (000165) 002 SREAD_SWRITE.OBJ0
 B A$0901 (002305) L$049C (001180) 006 SREAD_SWRITE.S
 B A$0300 (000768) L$00A9 (000169) 002 COMMUT_2_HIRES
 T A$0000 (000000) L$B000 (045056) 176 T.COURS 7 REVISION 2.30      
 T A$0000 (000000) L$0800 (002048) 008 T.ET LA PROCHAINE FOIS...
 T A$0000 (000000) L$0F00 (003840) 015 T.GODFATHER RACONTE...       
 T A$0000 (000000) L$0B00 (002816) 011 T.INTRODUCTION
 T A$0000 (000000) L$0900 (002304) 009 T.LES PROGRAMMES DE CE DISK  
 T A$0000 (000000) L$1800 (006144) 024 T.RECHERCHE EXPLICATIONS
 B A$B6C0 (046784) L$0039 (000057) 002 VERIF.PLOMB7
 B A$0901 (002305) L$0432 (001074) 006 VERIF.PLOMB7.S
 T A$0000 (000000) L$2A00 (010752) 042 T.COURS 7...2EME FICHIER
 B A$0901 (002305) L$0862 (002146) 010 COMMUT_2_HIRES.S             
 T A$0000 (000000) L$1D00 (007424) 029 T.INFORMATIONS COURS
 B A$9000 (036864) L$00EF (000239) 002 COMMUT_D00                   
 B A$0901 (002305) L$093E (002366) 011 COMMUT_D00.S

This catalog contains 22 files. 0 were DELETED.
----------------------------------------------------------------------


Floppy
DOS 3.3
Download Cours GDF 07 rev 2.30 version abimée mais TSL réparée (gzipped)
Floppy
DOS 3.3
Download Cours GDF 07 rev 2.30 version abimée (gzipped)


Sommaire


Lien Article
Voir Introduction.
Voir Cours 7 révision 2.30.
Voir Cours 7 second fichier.
Voir Recherche explications.
Voir Les programmes de ce disk.
Voir Et la prochaine fois.
Voir Informations cours.

hr cours GDF

Introduction.


===============================================================================
INTRODUCTION...                                             Godfather / Cours 7
===============================================================================

Ce cours est là pour faire le point sur les précédents cours, mais aussi pour
introduire plusieurs routines/programmes dont je parlerais et que l'on
utilisera ensemble pour de futurs déplombages !!...

L'appendix annonce tout ce qui suit.....

             --------------------------------------------------------

COURS 7 : TRUCS EN VRAC...                                            Godfather
===============================================================================
Révision 2.30                                                          13/01/88

Après analyse et synthèse de toutes vos questions (interessantes) à propos du
contenu des cours précédents, ce COMPLEMENT #1 regroupe toutes les réponses
vraiment très détaillées... C'est ce qu'on pourrait appeler :

* Vous n'avez pas compris la théorie.. Alors je vous l'explique par la pratique

La pratique sera, pour les differents cours :

Cours 1 : Pourquoi B942:18 permet-il de lire certains originaux...?
Cours 3 : Résolution d'exercice. Le programme de copie en basic, pas à pas
Cours 5 : Retrouvez et signez une image de boot (tout expliqué par la pratique)
Cours 6 : un tout nouveau plombage par Dos Patched... version copiable..

Avec, pour vous simplifier la vie, deux super routines folles :

Pour détourner toutes les difficultés de la RWTS : SREAD/SWRITE
Pour éviter l'achat INDISPENSABLE d'une machine  : Convert' HEXA <--> DECIMAL

Avec tous les programmes du cours en catalog ainsi que la première application
des commandes SREAD/SWRITE : Le GDF SECTOR COPY 2.00...
(Dés le cours 9 révision 2.00 on utilisera cette routine galactique...)

+ Fichier explicatif concernant la double haute résolution (+ programme!)
+ Le déplombage complet et détaillé : MIRAGE (plombé PLOMB'DISK GDF)
+ un nouvelle épisode de la Saga épique : GODFATHER RACONTE... Radio France!!
+ une copie d'original à déplomber  : THE HALLEY PROJECT (C) MINDSCAPE

             --------------------------------------------------------

Ca c'est ce qui était annoncé, et tout y est. Vous pouvez vérifier !!...

Alors bonne bidouille, bonne grenouille !

                                                        Amicalement, GODFATHER!

===============================================================================


Retour sommaire

hr cours GDF

Cours 7 révision 2.30.


=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
COURS 7 : TRUCS EN VRAC                                               Godfather
=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=

Cette fois ci, le menu est très gratiné.. vous devrez subir ça :

DOS PATCHED (POURQUOI B942:18 CA MARCHE IMPEC ??)                    (25/12/87)
RWTS (COMPRENDRE PAR L'EXEMPLE....)                                  (10/01/87)
BOOT1 (COMPRENDRE PAR LA DECORTIQUANCE)                              (13/10/87)
SIGNER LES IMAGES (PAR LA PRATIQUE SUR HALLEY PROJECT)               (22/01/87)
POUR CEUX QUI AVAIENT DES PBS : LE DEPLOMBAGE DETAILLE DE MIRAGE     (20/08/87)
PLOMBAGE : UN AUTRE TYPE DE PLOMBAGE PAR DOS PATCHED                 (16/10/87)
DES COMMANDES QUI S'AJOUTENT A CELLES DU DOS : "SREAD", "SWRITE"     (05/06/87)
CONVERTION HEXADECIMAL/DECIMAL SANS MACHINE A CALCULER...            (03/06/87)
DOUBLE HAUTE RESOLUTION.. COULEUR OU PAS COULEUR ?...                (13/01/88)

=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
Révision 2.30                                               (Update : 13/01/88)


Salut et salut,

A la demande de plusieurs d'entre vous qui se posaient encore des questions
sur le DOS PATCHED (le B942:18 du premier cours) et qui n'avaient pas su
faire les exercices du cours 3 (je l'avoue, trop balaises pour un début!)...
Pour ceux aussi, qui désirent s'entrainer à signer des images (cours 5)...

En face B de ce cours, un original à déplomber et à SIGNER :

                    THE HALLEY PROJECT, (C) MINDSCAPE 1985

...voici un complement des cours 1,3,5 qui va vous permettre de tout, je
l'espère, très bien assimiler..... Allons-y gaiement...

=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
COMPLEMENT COURS 1 : LA TECHNIQUE DU DOS PATCHED : POURQUOI CA MARCHE ?
=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=

Avant de commencer à vous parler du DOS PATCHED, je voudrais faire une petite
parenthèse :

Le terme "DOS PATCHED" vient de l'anglais "DOS Modifié"... On peut modifier le
DOS de 200 manières différentes (pour accelerer la RWTS, pour modifier le
catalog, pour modifier la longueur des fichiers sauvegardables, etc...) mais le
terme de DOS PATCHED a été employé et doit s'appliquer uniquement quand on
parle du PLOMBAGE des softs par modification des HEADERS DE FIN DE CHAMP.
(DE AA EB)

Le plombage par modification des HEADERS DE DEBUT DE CHAMP (D5 AA 96, D5 AA AD)
est beaucoup plus complexe aussi est il moins souvent employé.

Quand je dirais DOS PATCHED, je me permet une liberté de language, car en fait
je voudrais parler à la fois du DOS qui a été modifié par un B942:18, à la
fois du disk aux headers de fin de champ modifiés (qui peut se lire avec un
B942:18), et à la fois du programme de plombage par modification des headers de
fin de champ...

(Vaut il mieux dire "DOS PATCHED" ou bien "DISK PLOMBE PAR MODIFICATION DES
HEADERS DE FIN DE CHAMP" ??.. Choisis ton camp, camarade...)

Parenthèse fermée...


La question est : POURQUOI UN B942:18 PERMET DE LIRE DES DISKS SINON ILLISIBLES

Je vais vous expliquer un peu ce que fait le drive quand il cherche à lire un
secteur précis, et ensuite on va s'attaquer au dos patched :

Vous savez deja comment est divisé un disk.. (en pistes circulaires et en
secteurs organisés sur ces pistes...) mais la question est :

COMMENT LE DRIVE PEUT-IL RETROUVER UN SECTEUR PRECIS SUR UNE PISTE PRECISE...?

Au boot, le drive recalibre sa tete de lecture (que je vais appeller pioche)..
Il l'envoie valdinguer contre son arbre (le centre du drive) qui correspond à
la piste $00. Pour etre certain de bien se situer sur la piste 0 (car au
départ, il ne peut pas savoir où se trouve la tete de lecture) il va se dire
qu'il se trouve par exemple sur la piste $50 et qu'il doit revenir vers la
piste $00. Il va donc $50 fois se rapprocher de l'arbre du drive... Comme aucun
drive Apple ne peut aller jusqu'à $50 pistes, il est alors certain de bien se
trouver sur la piste $00. (C'est de là que vient le bruit du boot).

Donc dés le boot, il se recalibre et charge le dos à partir de la piste $0.
A partir de là, le dos prend la releve et place le numéro de la piste courante
en $B7EC. (Voir cours 3).

Pour lire le secteur 3 de la piste 5 par exemple, le dos sait que la pioche se
trouve par exemple en piste 2. Il va donc commencer par la déplacer de 3 pistes
vers l'exterieur de l'arbre. Il se trouvera donc en piste 5. Maintenant, il
doit selectionner quel est le secteur 3 de cette piste..Pour cela, il va devoir
trouver le champ ADRESSES de ce disk.

Le champ ADRESSES d'un disk au format normal se caractérise par ses HEADERS.

Les HEADERS à trouver pour le champ ADR. sont : D5 AA 96.

La tete de lecture lit quelque chose dés qu'on le lui demande et elle doit
donc commencer par se reperer sur sa piste.. Elle part donc à la recherche
de Nibbles FF. Elle va rechercher une suite de plusieurs Nibbles FF qui
désignent un début de champ, et elle va ensuite verifier si cette suite se
continue par les Headers D5 AA 96.

Dés qu'elle a lu une suite de FF suivie de D5 AA 96, c'est qu'elle a localisé
le champ adresses...

POUR PLUS DE FIABILITE, elle va lire les nibbles suivants à la recherche des
nibbles DE AA. (#$EB n'est pas vérifié) qui sont les Nibbles de fin de champ.

Ensuite, elle va examiner ce champ ADR. dans lequel se trouve, en autres, le
numéro de la piste actuelle et le numéro du secteur qui suit ce champ ADR.
Si le numéro du secteur est bien 3 comme on le voulait dans cet exemple, la
pioche va aller lire les nibbles suivant ce champ adresses...

Elle doit trouver après le DE AA EB une autre suite de Nibbles FF qui
représentent la séparation (je parle pas encore de synchro' pour pas tout
compliquer) entre le champ adresses qui indique un numéro de secteur et
le champ données (DATA) qui est composé des Nibbles correspondants aux
données du secteur concerné.

Pour bien trouver le début de ce champ données, il faut trouver les
HEADERS de début de champ données : D5 AA AD.
L'Apple va donc chercher, après cette seconde suite de Nibbles FF les nibbles
D5 AA AD.

Une fois localisé cette suite et les D5 AA AD, la pioche pourrait lire le
secteur (zone données) mais POUR PLUS DE FIABILITE encore, elle va vérifier
la présence, à la fin du champ données des headers de fin de champ : DE AA.
(#$EB n'est pas vérifié).

Un disk plombé en 'dos patched' est en fait plombé par 'modification des
headers de fin de champ', (voir cours 6) qui, nous l'avons vu, sont uniquement
là pour une question de fiabilité de lecture..pour pas que le drive puisse se
planter..

La RWTS d'un disk ainsi plombé contient les bonnes valeurs substituées par le
plombeur aux classiques #$DE AA. Ainsi, cette RWTS ne cherchera plus #$DE AA
mais bien les valeurs mises en remplacement... et nous l'avons vu, ces deux
vérifications de #$DE AA sont faites uniquement pour une question de FIABILITE.
Donc, pour déplomber un disk possedant des headers de FIN de champ data/adr.
modifiés, il suffit de modifier le dos de facon à ce que la lecture d'un
secteur ne se base plus QUE sur la vérification des headers de debut de champ
data/adr...     C'est suffisant si c'est la seule protecion utilisée...!
(Vous l'avez vu avec MIRAGE, l'original du cours précédent...)


B942:18 et donc cette modification... (C'est assez génial il faut dire)!

Je vais maintenant désassembler pour vous la partie qui nous concerne dans la
RWTS... Je vous situe l'action. La pioche a déjà localisé le champ adresse/dt
grace aux headers de debut et après la seconde suite de Nibbles #$FF, elle
lit les nibbles qui suivent pour chercher #$DE AA :

B92F-  BD 8C C0         LDA $C08C,X     --> Lecture de nibbles
B932-  10 FB            BPL $B92F
B934-  C9 DE            CMP #$DE        --> Est ce un #$DE..
B936-  D0 0A            BNE $B942       --> NON! Alors ------> I/O ERROR
B938-  EA               NOP
B939-  BD 8C C0         LDA $C08C,X     --> Lecture de nibbles
B93C-  10 FB            BPL $B939
B93E-  C9 AA            CMP #$AA        --> Est ce un #$AA..
B940-  F0 5C            BEQ $B99E       --> Oui alors ---> SUITE DE L'ACTION

B942-  38               SEC             --> Ce n'est pas #$DE AA alors la
B943-  60               RTS             retenue est mise à 1. (SEt Carry)

Si la pioche trouve #$DE AA, elle laisse la retenue à 0.
Si la pioche ne trouve pas #$DE AA, elle force la retenue à 1.

Puisque cette vérif est inutile (fiabilité seulement) il suffit de remplacer
le SEt Carry (Retenue à 1) par un CLear Carry (Retenue à 0)...

CLear Carry (CLC) correspond à $18 et c'est à l'adresse $B942 donc pour
permettre à une RWTS normale de lire un disk (original) plombé par modification
de ces headers de fin de champ, il suffit de faire un :

B942:18 et vous pourrez convertir le disk original avec ADVANCED DEMUFFIN 1.1

=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
COMPLEMENT COURS 3 : EXERCICE 1 : PROGRAMME DE COPIE EN BASIC / MACHINE
=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=

Voici les exercices que je vous avait donné à l'issue du cours 3... Nous allons
résoudre le plus interessant (et à la fois le plus fou), maintenant :

   "Fait moi un prog. de copie qui utilise RT.RWTS le plus rapide possible
    sachant que la lecture d'une piste est plus rapide du secteur $0F au
    secteur $00 au lieu du contraire et ce, en 4 lignes maximum. (c'est
    faisable en 2 lignes)... (DIFFICULTE : ****)"

           FAIRE UN PROGRAMME DE COPIE (RAPIDE) UTILISANT LA RWTS
           ------------------------------------------------------
  (La routine listée ci dessus s'appelle RT.RWTS et ce trouve sur ce disk)

Je vais citer ce que j'ai dit dans le cours 3 a propos des programmes de copie:

"Un programme de copie n'est rien d'autre qu'un programme qui charge
 chaque secteur du disk en mémoire avant de sauver les $FF octets de ce secteur
 sur le secteur ayant le meme numéro et sur  la meme piste du second disk..."

On fait déjà un programme qui permet de charger un seul secteur à une certaine
adresse en ram :

10 ? CHR$(4)"BLOAD RT.RWTS,A$4000"
20 PISTE = 0 : SECTEUR = 0 : CMD = 1 : DR = 1 : LOADRESS = 0 : HIADRESS = 32
30 POKE 16406,CMD                       ---> Commande = Lecture
40 POKE 16396,DR                        ---> Drive    = 1
50 POKE 16402,LO : POKE 16403,HI        ---> Adresse  = ((32*256)+0) = ($2000)
60 POKE 16398,PI                        ---> Piste 0
70 POKE 16399,SE                        ---> Secteur 0
80 CALL 16384

Si on fait ]RUN, ce programme va charger RT.RWTS puis va lire la piste 0
secteur 0 du disk en drive 1, en $2000. (Call - 151, puis 2000.20FF vous
montre les memes octets que si vous allez voir ce secteur avec un éditeur
de secteurs).

Maintenant, il faut compliquer ce programme pour qu'il lise toutes les
pistes du disque (boucle PISTE) et dans chaque piste, tous les secteurs
(boucle SECTEURS) en augmentant à chaque fois de $100 l'adresse du buffer
(Soit de 1 la variable d'adresse haute du buffer, par exemple pour $2000,
on a 32 (=$20) dans la variable HIADRESS. Il faut mettre le premier
secteur en $2000 et le second en $2100 il faut donc incrementer cette
variable une fois)...

Nous allons lire tous les secteurs de 7 pistes à la fois pour commencer. (#0-6)
et tout charger de $2000 à $8FFF. Allons y :

10 ? CHR$(4)"BLOAD RT.RWTS,A$4000"
20 CMD = 1 : DR = 1
30 POKE 16402, 0 : POKE 16403, 32       ---> Initialisation Buffer ($2000)
40 FOR PI = 0 TO 7                      ---> Boucle PISTE
50 FOR SE = 0 TO 15                     ---> Boucle SECTEUR
60 POKE 16406, CMD                      ---> Commande : Lecture
70 POKE 16396, DR                       ---> Drive : 1
80 POKE 16398, PI                       ---> Piste :   (Changeant de 0 à 35)
90 POKE 16399, SE                       ---> Secteur : (Changeant de 0 à 15)
100 CALL 16384                          ---> Accès disk
110 POKE 16403, PEEK (16403) +1         ---> Adresse haute buffer : incrémentée
                                             à chaque secteur
120 NEXT SE : NEXT PI

Voilà.. Ce programme LIT seulement les piste de 0 à 6 de $2000 à $8FFF.

On va encore le modifier pour qu'il lise ces 7 pistes puis les réécrive sur le
disk en drive 2 sur les memes pistes/secteurs.

10 ? CHR$(4)"BLOAD RT.RWTS,A$4000"
20 CMD = 1 : DR = 1 : GOSUB 30
21 CMD = 2 : DR = 2 : GOSUB 30
22 END

30 POKE 16402, 0 : POKE 16403, 32       ---> Initialisation Buffer ($2000)
40 FOR PI = 0 TO 7                      ---> Boucle PISTE
50 FOR SE = 0 TO 15                     ---> Boucle SECTEUR
60 POKE 16406, CMD                      ---> Commande : Lecture
70 POKE 16396, DR                       ---> Drive : 1
80 POKE 16398, PI                       ---> Piste :   (Changeant de 0 à 35)
90 POKE 16399, SE                       ---> Secteur : (Changeant de 0 à 15)
100 CALL 16384                          ---> Accès disk
110 POKE 16403, PEEK (16403) +1         ---> Adresse haute buffer : incrémentée
                                             à chaque secteur
120 NEXT SE : NEXT PI
130 RETURN

Ensuite, on va le modifier pour qu'il lise TOUT LE DISK par groupe de 7 pistes

10 ? CHR$(4)"BLOAD RT.RWTS,A$4000"
11 FOR P = 0 TO 5
20 CMD = 1 : DR = 1 : GOSUB 30
21 CMD = 2 : DR = 2 : GOSUB 30
22 NEXT P
23 END

30 POKE 16402, 0 : POKE 16403, 32       ---> Initialisation Buffer ($2000)
40 FOR PI = P TO P+6                    ---> Boucle PISTE
50 FOR SE = 0 TO 15                     ---> Boucle SECTEUR
60 POKE 16406, CMD                      ---> Commande : Lecture
70 POKE 16396, DR                       ---> Drive : 1
80 POKE 16398, PI                       ---> Piste :   (Changeant de 0 à 35)
90 POKE 16399, SE                       ---> Secteur : (Changeant de 0 à 15)
100 CALL 16384                          ---> Accès disk
110 POKE 16403, PEEK (16403) +1         ---> Adresse haute buffer : incrémentée
                                             à chaque secteur
120 NEXT SE : NEXT PI
130 RETURN

Ce programme est un programme de copie impec' sauf question lenteur...
On va encore le modifier pour qu'il lise les secteurs de $F à $0 et non
pas de $0 à $F.. C'est plus rapide comme je vous le dit dans l'exercice...

10 ? CHR$(4)"BLOAD RT.RWTS,A$4000"
11 FOR P = 0 TO 5
20 CMD = 1 : DR = 1 : GOSUB 30
21 CMD = 2 : DR = 2 : GOSUB 30
22 NEXT P
23 END

30 POKE 16402, 0 : POKE 16403, 32       ---> Initialisation Buffer ($2000)
40 FOR PI = P TO P+6                    ---> Boucle PISTE
50 FOR SE = 15 TO 0 STEP -1             ---> Boucle SECTEUR
60 POKE 16406, CMD                      ---> Commande : Lecture
70 POKE 16396, DR                       ---> Drive : 1
80 POKE 16398, PI                       ---> Piste :   (Changeant de 0 à 35)
90 POKE 16399, SE                       ---> Secteur : (Changeant de 0 à 15)
100 CALL 16384                          ---> Accès disk
110 POKE 16403, PEEK (16403) +1         ---> Adresse haute buffer : incrémentée
                                             à chaque secteur
120 NEXT SE : NEXT PI
130 RETURN

Et voilà le premier exercicé résolu... Le programme en mode lecture et par une
boucle PISTE parcourt toutes les pistes du disk source, puis dans chaque piste
il parcourt tous les secteurs dans l'ordre décroissant... Enfin, en mode
ecriture, il fait le meme parcourt en drive destination pour copier le disk.

Quant à ce qui est de la faire tenir en deux lignes, il n'y a pas de probléme
Il suffit de le restructurer un peu et de regrouper les instructions.. J'avais
dit cela pour vous montrer que vraiment ça pouvait etre très court et néanmoins
aussi efficace que le locksmith rapide !! (Question copie.. pas question
vitesse, sinon je serais un petit génie...!)

Il faut bien TOUT comprendre de l'UTILISATION DE LA RWTS! C'est indispensable..
Si vous n'avez pas compris avec cet exemple pratique, posez moi encore des
questions...

On peut soit tout comprendre et c'est super...

 .......soit rien comprendre et tricher un peu... C'est ce qu'on va voir ici..!
=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
LES COMMANDES "SREAD" ET "SWRITE" QUI VONT NOUS ENORMEMENT SIMPLIFIER LA VIE !!
=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=

Sur ce disk, vous trouverez une routine très utile : SREAD/SWRITE.

Vous m'avez presque tous posé pleins de questions après les cours 3/4 à propos
de la routine de lecture/écriture DOS 3.3... Ceci est peut etre la réponse à
vos angoisses...

Lancez le programme par un ]BRUN, puis essayez par exemple de taper :

]SREAD T0,S0,A8192...

Ensuite, passez en moniteur.. et allez voir ce qui se trouve en $2000.
($2000=8192).. Là, vous devez retrouver le contenu de la piste $00 Secteur $00
du disk actuellement dans le drive 1...

Meme principe pour l'écriture :

]SWRITE T0,S0,A8192

Qui va (Attention de pas recouvrir n'importe quoi !!) écrire la zone $2000-20FF
sur la piste $00 Secteur $00 du disk en drive 1.

Pour changer de drive  : POKE 913,1 ou 2.                ($391)
Pour changer le volume : POKE 914,(vol)                  ($392)

Pour analyser une eventuelle erreur disk : PEEK 924      ($39C)

Ainsi, vous pourrez faire un programme de copie TRES SIMPLE !!

Un exemple :

10 FOR T = 0 TO 34 : FOR S = 15 TO 0 STEP - 1 : POKE 913,1: ? CHR$(4);"SREAD T"
   ;T;",S";S; "A";(S*256)+8192 : NEXT S : POKE 913,2: ? CHR$(4);"SWRITE T";T;
   ",S";S; "A"; (S*256)+8192 : NEXT S : NEXT P

C'est tout simple vu comme ça....non ?

J'ai programmé pour vous le GDF SECTOR COPY 2.00 qui est en catalog sur ce disk
pour vous montrer un peu ce qu'on peut faire avec cette routine SREAD/SWRITE...

Gardez la bien précieusement, on en reparlera souvent quand on aura besoin
de la RWTS dans un environnement de DOS 3.3 !!!

Il FAUT comprendre comment utiliser la routine de lecture/ecriture RWTS du DOS
pour deux raisons, en fait :

* Pour etre capable de faire un programme (de copie comme dans cet exemple)
  sous DOS utilisant la RWTS...

* Pour etre capable de comprendre ou d'écrire un programme en machine,
  directement sur le disk, qui aurait besoin de la routine RWTS, et ce pour
  bidouiller ou programmer aussi bien que pour déplomber...

Alors, SREAD/SWRITE est là pour vous sauver du premier cas... Pour le second,
c'est vraiment à vous de vous y mettre à fond et d'essayer de piger la RWTS,
si ce n'est (oh! merci mon Dieu) déjà chose faite.

Donc, en catalog sur ce disk :

- SREAD/SWRITE           la routine objet
- SREAD/SWRITE.S         le source complet et détaillé
- GDF SECTOR COPY 2.00   la première application pratique de cette routine

=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
CONVERTION DECIMAL <--> HEXADECIMAL SANS CALCULATRICE
=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=

Sur ce disk, vous trouverez aussi un programme simple mais très utile que j'ai
déniché pour vous dans un vieux NIBBLE (un magazine US de programmation Apple)

Lancez le.. Il vous permet de d'obtenir un nombre en Hexa de 4 caractères
(mettre un "$" avant le nombre en question) en l'équivalent décimal... ou
vice-versa.

Vous n'en voyez peut etre pas l'utilité pour l'instant, mais croyez moi,
on aura très souvent l'occasion de s'en servir, à défaut de machine à calculer
assez savante, surtout quand on abordera les vérif's de disk...(Nibble Counts)

Un octet... Les adresses... tout est en HEXADECIMAL... et quand on fait un
POKE et qu'on ne sait pas donner l'adresse pour le poke en décimal; on est
très mal...

Evidemment, comme toujours, le source complet est en Catalog.

Ca c'est un programme dont on reparlera souvent... Vous verrez...

=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
COMPLEMENT COURS 4 : DOS : DECORTIQUANCE COMPLETE ET DETAILLE DU BOOT 1 DU DOS
=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
Explications demandées par Tom et Jerry...

Tous les disks en Boot 3.3 - tels les DOS 3.3 ou émules - bootent sensiblement
de la meme façon.. J'ai donc pris le boot d'un ProntoDOS (mon favori) et je
vous l'ai liste ici.. j'ai tout décortiqué et expliqué pour vous mesdames et
messieurs... alors, pour ceux qui ne peuvent pas aller plus loin dans le boot-
tracing d'un Boot 3.3, je les ignore à jamais !!

Pour arriver jusqu'ici, j'ai juste commencé classiquement le boot-t.
(*1600<C600.C700M N 16F8:4C 59 FF N 1600G puis j'ai fait *800 et *801LLLL...)

Voici le listing fou du boot1 3.3 commenté :


        0800-   01                      ; Nombre de secteurs chargés au boot1

        0801-   A5 27   LDA $27         ;
        0803-   08      PHP             ;
        0804-   EA      NOP             ;
        0805-   D0 18   BNE $081F       ;

* La routine qui suit sert à reperer la routine de boot en mémoire
* (selon les Apple elle est $C6 ou autre part, mesdames et messieurs les jurés)
* et va mettre donc, ici, $C6 en $3F et $5C en $3E. Ainsi, ca forme l'adresse
* $C65C, qui correspond, dans la routine Boot, à la lecture d'un secteur.
* (c'est la routine en $C65C qui vient de lire le secteur $00 chargé en $800,
* monsieur l'inspecteur !)

       0807-   A5 2B   LDA $2B         ; $2B correspond au slot*16 soit $60.
       0809-   4A      LSR             ; On cherche la page de la Rom Boot.
       080A-   4A      LSR             ; (normalement $C6)
       080B-   4A      LSR             ;
       080C-   4A      LSR             ; on le agagaze de $60 en $06.
       080D-   09 C0   ORA #$C0        ; et on le glumochange en $C6.
       080F-   85 3F   STA $3F         ; pour mettre le résultat en $3F = C6.

       0811-   A9 5C   LDA #$5C        ; $3E = 5C
       0813-   85 3E   STA $3E         ;

* Voila.. on sait que Boot est en $C600 donc que la routine Read_Sector
* est en $C65C. d'accord ?? Je continue...
* Bon, maintenant, retenez ça, plus le fait qu'on a en $8FD: 00 B6.. Okay ?

       0815-   18        CLC           ; Carry = 0 (on va faire un ADC)
       0816-   AD FE 08  LDA $08FE     ; On met dans A la valeur $B6.
       0819-   6D FF 08  ADC $08FF     ; On ajoute à A le nombre de sect à lire
       081C-   8D FE 08  STA $08FE     ; Et on met A dans $8FE (au lieu de $B6)

* A ce moment là, on a donc $08FE = #$B6 + #$09 = #$BF.
* Je continue... On appelera nb_sect le nombre en $08FF qui correspond au
* nombre de secteurs à charger pour le Boot2 (normalement 9, c'est la Rwts).
* Je rappelle que la Rwts se charge par la rom de boot (carte controleur)
* et que la routine en question que j'ai nommé Read_Sector est en $C65C.

       081F-   AE FF 08  LDX $08FF     ; On met dans X la valeur de nb_sect.
       0822-   30 15     BMI $0839     ; Est ce que nb_sect est déjà à #$00 ?

* Ici, on va charger en mémoire les secteurs du boot2.
* On va a chaque fois décrémenter l'adresse nb_sect, et revenir en $081F.
* ce qui explique le BMI (Branch on MInus) qui vérifie que le nombre est ou
* n'est pas négatif (après #$00). Si nb_sect est négatif, c'est que tous les
* secteurs du Boot2 sont chargés et on saute alors en $0839. Vous suivez tjrs ?

       0824-   BD 4D 08  LDA $084D,X   ; On met en A le numéro du sect à
       0827-   85 3D     STA $3D       ; en "physique".. cherchez pas !!
       0829-   CE FF 08  DEC $08FF     ; On décrémente nb_sect avant de le lire
       082C-   AD FE 08  LDA $08FE     ; On met ici la page de chargement du
       082F-   85 27     STA $27       ; secteur suivant en $27.
       0831-   CE FF 08  DEC $08FF

* Ici, c'est la lecture d'un secteur. le JMP ($003E) correspond, on l'a vu à
* un JMP $C65C car $3E = #$5C et $3F = #$C6. La routine en $C65C est Read_sect
* et est à la fin de Boot. Elle se terminera donc par un JMP $801 (comme à la
* fin normal du boot). Seule différence, $27 (page de chargement) sera
* modifiée.. (voir PHP BNE $081F !!). Le BNE $081F, soit le JMP $081F ne se
* produit que lorsque l'on est dans l'étape du chargement du Boot2. pas celle
* du boot1. Compris ?? donc, dans notre cas (ici, chargement du Boot2), le
* JMP $801 aboutira à l'adresse $081F, pour continuer la lecture du Boot2..
* You comprendre quand moi expliquer à vous, madame la contractuelle ?

       0834-   A6 2B     LDX $2B       ; On met dans X le Slot*16 soit $60.
       0836-   6C 3E 00  JMP ($003E)   ; On saute à Read_sector qui ira en $801

* Bon, ici on a terminé pour la lecture du Boot2. On poursuit ici en $0831 par
* ce qui se passe après le chargeme




<coupure David The Bug><coupure David The Bug><coupure David The Bug>




au locksmith rapide pour déjà débrouisailler et juger du type de la
protection (Voir cours 1)...

Le disk est incopiable (illisible!).. On va donc booter un Nibble editor pour
voir s'il a un format fou (1/2 pistes, 1/4 de pistes, spiralling...etc) ou bien
s'il s'agit juste d'une altération des Headers...

L'original est donc incopiable au 6.0 rapide car ses marqueurs de fin de champ
data on été modifiés!... On voit ceci au Nibble Editor :

-----------------------------------------
PTR=2200          ADR=2200         TRK=01
-----------------------------------------
2200- 9696FFD4 AAEBFFFF FFFFFFFF FFFFFFFF <= Fin Données en    : D4 AA EB
2210- FFFFFFFF FFFFD5AA 96FFFFAA AEABABFE <= Début Adresses en : D5 AA 96
2220- FAD4AAEB FFFFFFFF FFFFFFFF FFFFFFFF <= Fin Adresses en   : D4 AA EB
2230- D5AAADB9 F5ADDFE7 B6...... ........ <= Début Données en  : D5 AA AD

On voit donc que seuls les headers de fin de champ Adr/Données ont été
modifiés de DE AA EB en D4 AA EB... On va donc convertir le disk ainsi :

]BLOAD ADVANCED DEMUFFIN 1.1
]CALL-151

*B991: D4       (Au lieu de DE)
*B935: D4       (Au lieu de DE)

*800G

On aurait pu aussi bien faire un B942:18, mais quand c'est aussi simple,
faut mieux travailler de manière clean.. (rappelez vous "Fiabilité!" en ce
qui concerne les Headers de fin de champ.. c'est dans ce cours 7!)

On utilise donc l'option CONVERT DISK...

Pendant qu'on y était, on pouvait meme faire beaucoup mieux !!!..Avec le 6.0 !
On n'avait qu'à utiliser les paramètres.. Bootez le, puis tapez :

00EB (return) puis D4        (Au lieu de DE)
00F1 (return) puis D4        (Au lieu de DE)

Ca va modifier le programme à la lecture mais l'écriture, comme avec l'ADV DEM,
se fera en DE AA EB.. Ce sera donc bien une conversion de format !! avec le 6.0
           ==                               -----------------------

Ensuite.. Essayez de booter la copie!.. Ca ne marche pas!
C'est donc que la RWTS (FBoot Chip Select) vérifie les Headers de fin de champ
(pour etre bien fiable!).. On n'aura donc, en théorie, qu'à modifier 2 octets
tout comme on vient de la faire en mémoire.. mais au lieu de modifier la RWTS
3.3 qui a lu le disk lors de la conversion (ou la RWTS LOCKSMITH), on va
modifier la RWTS FBoot sur le disk!...

Bootez un programme de recherche (COPY II+ 5.x, Option SECTOR EDITOR, Touche S)
et recherchez C9 DE (CMP #$DE).. La RWTS comme tts les autres, lit des Nibbles
et recherche un #$DE.. (d'où ce compare entre le nibble lu et la valeur à lire)
Vous n'en trouvez que 2.. A vous de les modifier de DE en D4.. puisque, on
l'a vu au Nibble Editor, c'est simplement ainsi que le format (donc la RWTS)
a été modifié !!

 ...Et c'est déplombé !!!!

Si vous y etes arrivé! Bravo.. Sinon, je pourrais vous proposer un autre
crack du meme type, mais avec un programme du commerce cette fois ci...
(Je pense notamment à CRAZY MAZEY! plombé sur un DOS 3.3 non-remplaçable !)...

=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
COMPLEMENT COURS 6.2 : UN AUTRE TYPE DE PLOMBAGE PAR DOS PATCHED
=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=

On a vu dans le cours 1 deux grands types de plombage :

        - Les disks qui se copient au locksmith mais qui plantent
        - Les disks qui ne se copient pas au locksmith (rapide)

On a vu dans les cours 1 et 6 comment plomber un disk par Dos Patched contre le
locksmith, voici maintenant une autre méthode qui utilise toujours le principe
du Dos Patched mais qui laisse votre original lisible au locksmith.. néanmoins,
la copie ne bootera pas..

Pour mieux comprendre, voici la technique de ce plombage...
Comme toujours, tous les sources sont en catalog.

        1. Bootez un DOS normal
        ---------------------------------------------------------------------
        sauf un Pronto-Dos comme sur ces cours, car il utilise de la Ram que
        nous allons utiliser = dans la page #$B6.

        2. Modifiez deux octets dans le Dos : DE AA EB => DE AA EE
        ---------------------------------------------------------------------
        On modifie le dernier octet des headers de fin de champ data et
        adresses, qui comme ont le voit dans le cours 6 sont aux adresses
        suivantes :
                        $B8A8 : EE           $BCB8 : EE

        3. Modifiez dans le Dos le Boot1 (Branch_vérif + vérification plomb')
        ---------------------------------------------------------------------
        On va modifier la fin du boot 1.
        Vous etes vous déjà posé la question suivante ?
        Quand vous tapez INIT, d'où vient la piste $00 secteur $0 ?
        Vous comprenez pas la question ? Attendez, je m'explique.
        Le boot1 qui correspond à la piste $00 00 se charge au boot en $800
        seulement $800 n'est pas dans le DOS, bien au contraire c'est le début
        du buffer où se chargera un programme en basic...mais pourtant,
        meme avec un programme Basic en mémoire en $800, donc qui recouvre
        l'endroit où s'est chargé le boot1, si vous tapez INIT, le disk ainsi
        formatté aura bien le meme boot1 en piste $00 00. alors, je répète ma
        question.. quand vous tapez INIT, d'où vient la piste $00 secteur $0 ?
        La réponse est simple.. En Ram, il se retrouve en $B600. juste avant
        la Rwts en $B700.
        Bien.. Donc le boot1 (premieres routines éxécutées au boot) se trouve
        en mémoire en $B600 avant un INIT. Bien..
        Pour ce plombage, ce que l'on va faire est simple.. On va formatter un
        disk avec comme headers de fin de champ : DE AA EB. Le disk sera donc
        lisible au locksmith ?.. pourquoi ? Parce qu'il lit le disk uniquement
        avec le DE AA. Il ne tient pas compte du troisième nibble..
        Pourquoi ?? ma foi.. Rapidité ?.. G'ne sais pas.
        Bien.. Donc en formattant le disk en DE AA EE au lieu de DE AA EE, on
        aura un disk original copiable au locksmith.. seulement la copie sera
        écrite en DE AA EB !!.. Voilà la fameuse différence entre original et
        copie.. Alors que faire pour avoir un plombage ? Il suffit de glisser
        au boot du disk (au boot1 en l'occurence) une VERIFICATION du #$EE.
        Simple.. On va mettre cette vérif dans une zone mémoire inoccupée par
        le boot1 et modifier le JMP ($8FD) en $84A (fin du boot1) en JMP VERIF.
        Voici les modifications à faire au boot1...

          $B64A : 4C B4 B6        (Modifie le JMP ($08FD) = JMP $B700)
          $B6B4 : 20 C0 B6        (JSR vérification que l'on mettra en $B6C0)
          $B6B7 : 4C 00 B7        (JMP $B700 = JMP ($8FD))

        Et voici la vérification mise en $B6C0. (c'est une zone libre dans tous
        les DOS sauf dans le Pronto-Dos qui y met une sous routine de CATALOG).

          $B6C0 : A2 60        LDX #$60        ; Slot 6
          $B6C2 : BD 89 C0     LDA $C089,X     ; Disk Drive = On
          $B6C5 : BD 8E C0     LDA $C08E,X     ; Mode lecture
          $B6C8 : A9 00        LDA #$00        ;
          $B6CA : 20 A8 FC     JSR $FCA8       ; Petite attente pour le drive
          $B6CD : A9 00        LDA #$00        ; Command = Seek. (déplace tete)
          $B6CF : 20 A0 B9     JSR $B9A0       ; Seek Command / piste $00
          $B6D2 : A0 04        LDY #$04        ; Erreur Max = #$04
          $B6D4 : BD 8C C0     LDA $C08C,X     ; Lecture d'un Nibble
          $B6D7 : 10 FB        BPL $B6D4       ; Nibble valide ?
          $B6D9 : C9 DE        CMP #$DE        ; est ce un #$DE de DE AA..
          $B6DB : D0 F7        BNE $B6D4       ; Non.. alors on relit..
          $B6DD : BD 8C C0     LDA $C08C,X     ; Lecture d'un autre nibble
          $B6E0 : 10 FB        BPL $B6D4       ; Nibble valide ?
          $B6E2 : C9 AA        CMP #$AA        ; est ce un #$AA de DE AA..
          $B6E4 : D0 EE        BNE $B6D4       ; Non.. alors on relit..
          $B6E6 : BD 8C C0     LDA $C08C,X     ; Lecture d'un dernier nibble
          $B6E9 : 10 FB        BPL $B6E6       ; Nibble valide ?
          $B6EB : C9 EE        CMP #$EE        ; Enfin, est ce un #$EE ???
          $B6ED : F0 06        BEQ $B6F5       ; Oui.. alors sortie $B6F5
          $B6EF : 88           DEY             ; Un essai en moins
          $B6F0 : D0 E2        BNE $B6D4       ; Compteur d'essais.. on relit
          $B6F2 : 4C F2 B6     JMP $B6F2       ; 4 erreur.. On boucle_infini.
          $B6F5 : BD 88 C0     LDA $C088,X     ; Drive = off.
          $B6F8 : 60           RTS             ; Fin de la vérification.

        4. En bref
        ---------------------------------------------------------------------
        Pour plomber un disk par cette technique de Dos Patched.. Il faut :

              1- Boot un DOS 3.3 (sauf Pronto-Dos)
              2- Modifier en ram le derniers des headers de fin de champ (#$EE)
              3- Modifier en ram le boot 1 pour brancher la fin sur la vérif.
              4- Tapez en hexa la vérification du header #$EE en $B6C0.
              5- Taper la commande INIT HELLO.

        Maintenant, essayez de copier le disk au locksmith.. Ca marche mais la
        copie obtenu ne bootera pas !!.. on fera désormais attention entre
        "disk copiable au locksmith" et "disk lisible au locksmith"...
        Vous avez compris la différence.. énorme différence..
        Dans un cas, le disk est encore plombé.. dans l'autre il ne l'est pas.

        5. Critiques de cette nouvelle protection
        ---------------------------------------------------------------------
        La critique principe sera la suivante :

                - Ce plombage est basé sur un DOS 3.3 normal, et tout le monde
                  le connait par coeur.. aussi une modification aussi simpliste
                  dans le boot sera vue par le premier mec qui en commencera le
                  boot tracing.. il faudrait mieux la planquer.. dans un
                  programme en assembleur en catalog, et codée si possible.
                  Cette vérif vérifie le disk à l'endroit où se trouve la tete
                  de lecture.. mais ce n'est pas un pb car le disk est
                  uniformement formatté en DE AA EE. Une seule vérif au boot
                  telle quelle est bien trop visible.

                - Le disk original reste copiable, contrairement à une
                  protection genre désynchro.. Il suffirait de le copier en
                  25 secondes au Disk Muncher 8.0 (ou en modifiant les headers
                  du locksmith 6.0 - parametres vu dans le cours précédent).
                  On dira quand meme que le disk est plombé bien sur.
                  Disk incopiable au locksmith rapide = Disk plombé.

        5. Déplombage..
        ---------------------------------------------------------------------
        Il suffit de boot tracer le disk.. on trouve tout de suite la vérif.
        On la liste, on la comprend, on l'annule. Pour l'annuler, il suffit de
        remettre un JMP ($8FD) en $84A. (ou $B64A) et le boot n'y pensera plus!
        Cela, c'est néanmoins pour le mec qui s'y connait déjà...

=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=

         Voilà. J'espère que maintenant vous avez bien compris les 6 précédents
         cours et ce nouveau plombage.. Je vous laisse pour l'instant...
         Sautez vite sur le second fichier de ce cours.. ok?.. on y parle des
         originaux du cours 10, et de la double haute résolution Apple, avec
         un programme super utile en catalog.. alllllez, sautez dessus...
         La prochaine fois, on va se mettre tout ce qui touche à la recherche
         d'octets (ou de nibbles) sur disk ou en ram.. ça aussi, ca va etre
         assez marrant !!.. Alors...

                             ...A la prochaine,          Amicalement, GODFATHER


Retour sommaire

hr cours GDF

Cours 7 second fichier.


=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
COURS 7 : TRUCS EN VRAC                                               Godfather
=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
Révision 2.30                                                   Update 13/01/88


Salut et encore salut,

(ATTENTION, CECI EST RESERVE AUX PROGRAMMEURS UN PEU EXPERIMENTES TOUT DE MEME)
(POUR LES AUTRES (CAR ILS SONT NOMBREUX), LE REMEDE A CE MAL EST A LA FIN !!!!)

        Cette fois je vais vous parler de la double haute résolution..
        Ce second fichier complement de ce cours 7, sera encore amélioré,
        à savoir que je me suis plongé depuis peu dans la double haute
        par curiosité.. suite à ce qu'on m'ait filé une copie d'original de
        Dazzle Draw.. alors j'aurais surement bientot de quoi vous en
        reparler.. ok?..

        Je vous parle donc des problemes de la double haute.. pour un //c.
        Le //c n'affiche pas systématiquement la couleur, quand il est en
        double haute, mais plutot le noir et blanc, pour faire plus
        professionel sans doute.. enfin, non, je dis des c..
        ca doit dépendre en fait de la carte couleur que l'on a installée
        dans son IIe, et de celle qu'ils ont sélectionné pour le //c.

        Les programmeurs de tel ou tel boite de soft (je pense principalement
        aux mecs de chez Epyx, avec California Games, Rad warrior et World
        Games, tous les 3 en double haute.. - mais on pourrait en dire de meme
        de certains programmes Broderbund par exemple...), sont de bons
        programmeurs.

        Silence..
        Sont de bons programmeurs ?.. Il est venu pour nous dire ca ?..
        C'est interessant.. on ne le savait pas.. merci papi..

        Non.. laissez moi finir !.. il y a un "mais"..
        Sont de bons programmeurs, disait-je, mais souvent, ils ne savent pas
        que le bel Apple //c ne voit pas la double haute comme tous les
        autres Apple de la série II. Ben voila!..

        Le fait
        -------
        Bootez World Games (meme l'original) sur //c, et vous l'aurez 9 fois
        sur 10, en noir et blanc, meme si vous eteignez votre Apple avant de
        booter le disk !.. et ce donc, pour tous les Epyx en 2*Hires (sauf
        Destroyer, ma foi!), et voila et voila..

        Ce que l'on cherche
        -------------------
        On cherche à offrir à tous les possesseurs de //c, une copie plus belle
        que l'original lui meme, ne serait-ce que pour pouvoir le crier sur les
        toits...

        Le principe du comment faire
        ----------------------------
        Il suffirait de forcer l'Apple, quel qu'il soit, à afficher le mode
        double haute couleur dés le boot (de meme, on pourrait forcer le
        mode noir et blanc!).. et dés le début du soft, dés la première image,
        le soft serait ainsi en double haute !..

        Le probleme
        -----------
        Si les programmeurs de world games, savent pas comment faire, je vois
        pas trop comment on pourrait apprendre ca... pas vous ?

        La solution
        -----------
        La solution.. ben c'est ce cours voyons.. ou plutot, un des programmes
        de ce cours, à savoir COMMUT 2*HIRES. (source reconstitué en catalog).

        Le programme
        ------------
        Il suffit de bloader le programme (l'objet est en $300, mais il peut
        etre relogé, d'autant plus que vous possedez le source! ok?)..
        Ensuite, il faut poker en $3A9 le mode que vous désirez. à savoir :

                $3A9 : 00       -> Mode couleur double haute
                $3A9 : 01       -> Mode noir et blanc double haute
                $3A9 : 02       -> Mode texte (sortir de la double haute)

        Puis enfin, il faut appeler le programme, en 768 (En hexa, $300)

        Le "à quoi ca sert ?" de ce programme
        -------------------------------------
        Ce programme sert, en gros, à "forcer" à la couleur ou au n/b,
        pour la double haute.. il sert en dehors de "améliorer des softs
        qui ont été programmé en double haute sans penser aux pbs du //c",
        plus simplement, à afficher des images double haute.. etc..

        Le comment faire de la solution
        -------------------------------
        Il faut implanter la routine au boot..
        Alors comment faire ?.. En fait, tout dépend du boot considéré..
        Si c'est un boot inconnu, je ne peux pas donner de méthode infaillible,
        c'est évident.. je vais pas me mettre à vous décrire un truc que j'ai
        jamais vu, ou pire, qui peut etre n'a pas encore été programmé !..
        Alors comment faire ?.. on va s'attaquer uniquement aux boots 3.3,
        à savoir, entre autre que le boot des soft Epyx (le E_Boot) est un 3.3.
        Si vous etes sous DOS, il suffit de creer un programme basic
        supplémentaire (HELLO2?) qui BRUNe le programme en question, avant
        d'executer le programme en lui meme (le soft qui ne marche
        malheureusement pas bien souvent en double haute!).

        Pour un dos pas de problemes..
        Pour un boot inconnu, il reste inconnu..
        Pour un boot 3.3, laissez moi vous en parler..

        Le comment faire de la solution pour un boot 3.3
        ------------------------------------------------
        Première chose, on doit reloger le programme en $BB00. Pourquoi ?..
        J'ai expliqué tout ca dans un des prochains cours, lorsque l'on veut
        mettre un signature au boot, à savoir dans le cours 12..ok?
        donc patience les curieux.. et en attendant, admettez le truc..
        Relogez votre routine avec merlin pro en $BB00... mais attention,
        la fameuse adresse $3A9 aura changé.. changé en $BBA9. ok?.. on est
        d'accord ?.. ensuite, changez dans ce programme la fameuse adresse
        $xxA9. Mettez y le code (00,01 ou 02) selon le mode auquel vs voulez
        forcer votre bécane.. et tous les //c problématiques. ok?
        Ensuite, terminez le programme (sous le label "End") par un LDX #$60
        JMP $B700. ce pour permettre la suite du boot après l'affichage
        de le page désirée.. Ensuite, modifiez ce fameux Boot 3.3, on allant
        en piste $00 sect $00 avec un Sector Editor, pour remplacer en $4A,
        le JMP $B700 en un JMP $BB00. ok? (remplacez 4C 00 B7 par 4C 00 BB)
        Enfin, il faut sauver la routine sur le disk. Pour cela, ce cours
        est parfait.. il suffit de faire un BRUN SREAD/SWRITE, puis
        de charger la routine en $2000 par exempe (8192 en dec) et de faire
        un SWRITE T0,S5,A8192, mais attention !.. avec le disk concerné dans
        le drive!.. pas avec ce cours !.. faites gaffe messieurs !!!..
        Un conseil : mettez TOUT DE SUITE un autocollant de protection sur
        ce disk !.. oK?.. écoutez moi, sinon, vous avez de fortes chances
        de pouvoir le regretter.. croyez papi.

        Enfin, il se pouvait que la page $BB (secteur $5) soit déjà occupé
        par un bout de programme (ce qui est le cas dans les softs epyx, mais
        là, c'est vous qui le mettez le boot de programme qui se trouve déjà
        là.. voir cours 10 pour plus de détais..).. Si c'est le cas, il faut
        chainer les deux routines.. mettre l'une avant l'un, ou l'inverse...
        On fera ca directement en hexa sur le secteur à l'aide d'un editeur
        de secteur, genre disk fixer 4.0 ou encore celui du copy II+ 5.x...ok?

        Un exemple de ca.. pour les epyx justement.. attention, je vais
        parler ici en supposant que vous avez déjà lu le cours 10.. Si ce
        n'est pas le cas, vous cassez pas et attendez le moment venu..
 
        Exemple, pour ceux qui ont lu le cours 10 sur les softs Epyx
        ------------------------------------------------------------
        Vous devez, à la fin du déplombage, écrire un petite routine en $BB
        (première méthode de déplombage). Pour justement chainer les deux
        routines il suffit de mettre le programme LDA-STA (cf cours 10)
        juste après le ORG $BB00 dans le source de ce programme, mais
        il ne faut mettre que les LDA, STA.. pas le JMP final au décodeur.
        Par contre, comme il faut bien que ce JMP décodeur se fasse (ou fusse
        un JSR), mettez le à la fin de la routine d'affichage de la page 2*Hgr
        Pourquoi pas ?.. alors ?.. comprendo amigo ?.. Hum!... mouais,
        c'est un peu compliqué, mais ma foi, c'est pour ca que j'ai préféré
        attribué ca uniquement aux programmeurs un peu expérimentés !.. pour
        pas avoir de plaintes (!) sur ce rajout au cours 7 qui me semblait
        utile..

        Récapitulatif de la chose
        -------------------------
        1. Changer (avec Merlin Pro) le ORG $300 en ORG $BB00
        2. Changer (eventuellement) l'adr. $BBA9 pour selectionner le mode 2HGR
        3. Changez la fin du programe, par un LDX #$60 JMP $B700
        4. Modifiez le boot0 du disk en boot 3.3, Piste $00 00 4A : 4C 00 BB
        5. Ecrire le programme sur le secteur $5 de la piste $0
        6. Au cas ou la page $BB fut occupée, il faut grouper les 2 routines!

        La bonne nouvelle : LE REMEDE POUR CEUX QUI BALISENT DEVANT CE PB !
        -------------------------------------------------------------------
        Je vais mettre au point, pour completer le Epyx Boot Maker (GP's #6),
        un boot epyx contenant à la fois la routine de déplombage (décodage)
        eventuellement (selon si vs avez utilisé la méthode 1 ou 2 du cours),
        ainsi que la routine de signature du disk (vous indiquerez votre nom
        et il apparaitra au boot), et la routine de mise en place de tel ou
        tel mode graphique, après l'apparition de votre signature.. ok?
        Disponible à partir de février 1988.. Godfather's Products #6 : Epyx
        Boot Maker (dernière version).. à bientot, it's worth it !..

=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=

         La prochaine fois, on va se mettre tout ce qui touche à la recherche
         d'octets (ou de nibbles) sur disk ou en ram.. ça aussi, ca va etre
         assez marrant !!.. Alors...
 
                             ...A la prochaine,          Amicalement, GODFATHER


Retour sommaire

hr cours GDF

Recherche explications.


===============================================================================
RECHERCHE D'OCTETS (MODE D'EMPLOI)                        POM'S 29 par P.COVARE
===============================================================================
Ce programme permet de chercher, en mémoire ou sur disquette, une expression
quelconque. Il peut etre très utile, par exemple pour retrouver tous les appels
à une routine quelconque, l'endroit où une mémoire particulière est modifiée,
etc...

Ecrit en assembleur (source en catalog), le programme est rapide. Les 35 pistes
d'une disquette sont examinées en moins de 30 secondes, et une recherche en
mémoire ne demande que 2 ou 3 secondes pour 64Ko.

Commandes disponibles
---------------------
BRUN RECHERCHE lance le programme pour la première fois. Par la suite, on
pourra indifféremment utiliser & (l'amperstand) ou Ctrl-Y à partir du moniteur.

                        Les commandes "A" et "Z"
                        ------------------------
permettent de définir les adresses hexadécimales de début et de fin de
recherche en mémoire vive. Ces adresses peuvent se situer, ni dans l'espace
$C000-$C0FF réservé aux entrées/sorties (sinon bonjour les dégats!), ni dans
la plage $9500-$95FF où est conservée l'expression à rechercher. Pendant
l'execution, ces plages sont automatiquement évitées par le programme.

Si l'adresse de départ est supèrieure à l'adresse de fin, RECHERCHE boucle sur
$0000 après avoir éxaminé l'adresse $FFFF.

                        Les commandes "P" et "F"
                        ------------------------
permettent de saisir, toujours en hexadécimal, les numéros de pistes de
début et de fin de recherche. S'ils sont identiques, la recherche ne
s'effectuera que sur une seule piste.

                             La commande "D"
                             ---------------
autorise le changement de lecteur (1 ou 2)

                             La commande "E"
                             ---------------
permet d'entrer une expression à rechercher, expression composée au maximum
de 256 caractères.

Très pratique : Inclure des caractères inconnus (wildcards) en tapant un ou
plusieurs '='. Par exemple : "20 == FD" trouvera les appels à COUT ($FDED),
COUT0 ($FDF0), KEYIN ($FD1B) etc...

Afin de ne pas surcharger l'écran, seuls les 11 premiers octets sont affichés
sur le menu; néanmoins, l'expression étant conservée à l'adresse $9500, elle
peut etre visualisée par un simple appel du moniteur.

                        Les commandes "R" et "S"
                        ------------------------
lancent une recherche en mémoire ou sur disquette. Dans ce dernier cas, la
touche ESCAPE permet d'interrompre la recherche en cours.

Si des expressions identiques sont détectées, leurs adresses, et éventuellement
leurs numéros de pistes et secteurs, sont affichés.

Si rien n'a été trouvé, on revient au menu.

Pour une recherche sur disquette, l'adresse et ses deux derniers chiffres
completent l'affichage.

Exemple :        $862A   P:$12   S:$9

informe que l'expression a été trouvée à l'octet $2A du secteur 9 piste $12,
et qu'elle se trouve actuellement en mémoire à l'adresse $862A.

Lors d'une recherche sur la disquette, les pistes sont chargées une à une,
dans un buffer situé en $8000-$8FFF. (Donc attention! Si vous recherchez une
expression qui se trouvait en mémoire dans ce buffer avant une recherche disk,
et que vous le recherchez en mémoire après cette recherche disk...votre
expression aura été éffacée...faites donc EN PREMIER les recherches mémoire.!!)

Les secteurs y sont stockés dans l'ordre inverse (afin d'accelerer le temps de
lecture). (Page $80 pour le secteur $F, $81 pour $E jusqu'à $8F pour le sect 0)

Bien entendu, le programme se charge egalement de l'affichage lorsque
l' expression  est trouvée plusieurs fois sur la meme page ou le meme secteur.
(ce qui n'est pas le cas de Nibbles Away).

                             La commande "M"
                             ---------------
dirige vers le moniteur de l'Apple (retour par Ctrl-Y)

                             La commande "Q"
                             ---------------
permet de quitter le programme.


Fonctionnement technique
------------------------
La configuration mémoire suivante est utilisée :

$0000...$000A   Vecteurs page zero
$8000...$8FFF   Buffer de chargement d'une piste
$9000...$94A0   Implantation du programme
$9500...$95FF   Buffer de l'expression à rechercher
$9600...$96FF   Buffer des caractères inconnus

Le listing source est amplement commenté et ne devrait pas poser de probleme
de compréhension. Cependant, il est bon de détailler l'algorithme de recherche.

Le sous-programme de comparaison utilise les buffers EXPRESS et WILD,
initialisés lors de la saisie de l'expression. EXPRESS contient la suite
d'octets à rechercher, WILD stocke l'emplacement des caractères inconnus.

Prenons un exemple. Soit l'expression saisie "A8 =B F3". Le buffer WILD,
utilisé pour effectuer un ET logique, contient la valeur "FF0FFF". Le zero
indique la présence d'un caractère inconnu. Le buffer EXPRESS contient les
codes "A80BF3". Les espaces tapés au clavier ont été supprimés, et le
troisième caractère a été remplacé par zéro.

Si, lors de la recherche, le programme rencontre la suite d'octets "A85BF3",
celle ci est considérée comme identique car :

A8      AND     FF      =       A8
5B      AND     0F      =       0B
F3      AND     FF      =       F3

Ce qui correspond exactement au contenu du buffer EXPRESS.

Le source s'appelle T.RECHERCHE et a été crée avec BigMac...
===============================================================================


Retour sommaire

hr cours GDF

Les programmes de ce disk.


===============================================================================
LES PROGRAMMES DE CE DISK                                                 v1.31
===============================================================================

Vous trouverez, en catalog sur cette face...

1. VERIF.PLOMB7 et VERIF.PLOMB7.S

        Le source et l'objet de la vérification du plombage vu dans ce cours.
        Merlin Pro 1.24 comme d'habitude..

2. HEX/DEC CONVERTER (+ Source détaillé sous Merlin Pro!)

        Le programme qui va economiser les piles de votre calculatrice,
        (à supposer que vous ayez une calculatrice connaissant l'Hexadécimal!)
        ou l'aquisition d'un IIGS (qui comme tout le monde le sait est
        complement bugué!) Passez de l'Hexa au décimal.. ou inversement..
        Classique..? Enfantin..? Bete..? mais indispensable !!

3. SREAD/SWRITE (+ Source détaillé sous Merlin Pro!)

        La routine qui va vous simplifier la vie...
        Le mode d'emploi est détaillé dans ce cours..

4. COPY programmé par votre serviteur

        Un programme de copie en basic... pour vous montrer ce qu'on peut faire
        simplement avec le dos 3.3 !...

5. COMMUT_2*HIRES

        Ce programme est super utile ma foi, et il est expliqué dans le
        second fichier de cours!.. sautez dessus si vous n'aimez pas voir,
        par exemple, le world games en double haute noir et blanc au lieu de
        couleur sur votre //c !.. mais ca ne sert pas qu'à arranger ce genre
        de problemes.. vous allez voir.. (Fichier pour programmateurs éclairés)

La prochaine fois, 10 programmes vous seront présentés! et pas des nazes !!!!!!

        En face B, vous trouverez l'original de Halley Project..
        Le déplombage en est très simple.. but du jeu : signer l'image de boot

                                                         Amicalement, GODFATHER

===============================================================================


Retour sommaire

hr cours GDF

Et la prochaine fois.


===============================================================================
ET LA PROCHAINE FOIS, QU'EST CE QUE CE SERA, MON GENERAL...??
===============================================================================

La prochaine fois, TOUT SUR LA "RECHERCHE" D'OCTETS (Disk ou Ram) Revision 3.00

Un cours de 2 faces, avec pleins de programmes méconnus ou inédits !!!!

Les prochains cours necessitent certaines connaissances... alors pour bien se
préparer, ce cours va vous appendre TOUT (Absolument TOUT) sur :

* La recherche d'octets en mémoire
* La recherche d'octets sur un disk (au format normal)
* La recherche de données codées (EOR quelconque)
* La recherche d'octets "à trou"
* La recherche d'octets sur des disks plombés
* La recherche d'octets sur des disks 3.5" (pas encore testé)
* La recherche de tout un secteur (identique à celui en mémoire)

Avec un super éditeur de secteurs en 80 colonnes/Joystick/Souris/Clavier !!!!!!
Avec comme toujours pleins de nouveaux outils (Les 3 meilleurs sont inédits!) :

* Le CORE DISK SEARCHER (C) HARDCORE COMPUTIST
* ANSTROM 1.00 (C) DANNY SECTOR from PAD
* SCAN DISK EOR (C) KRISTO 1987
* Le COPY II+ 5.x
* Le FIND du DAVID DOS
* Le scanner d'octets de POMS 29

* GODFATHER RACONTE : Big Shits.. ERRATUM contre CHIP SELECT!..
et un fichier expliquant ce qui nous sera utile pour le cours 9 dans MERLIN PRO
si vous voulez vous lancer dans la recherche d'images compréssées !!!

                                                         Amicalement, GODFATHER
===============================================================================


Retour sommaire

hr cours GDF

Informations cours.



                        INFORMATIONS CONCERNANT LES COURS
                -------------------------------------------------
                       Fichier mis à jour ce 9 Janvier 88!


===============================================================================
DEUX NOUVEAUX COURS : La protection ORIGIN SYSTEMS 1987, et Fixez vous la vie !
-------------------------------------------------------------------------------
Vous voulez un conseil..? sautez vite sur ces cours.. ce sont d'une part les
plus longs cours que je n'ai jamais rédigé, et d'autre part peut etre à la fois
les plus balaises, et les plus interessants !.. et utiles.. puisque, en ce qui
concerne la protection origin systems 87, ils viennent d'annoncer Ultima 5 mais
aussi Autoduel 2400, qui devraient (?) etre plombés comme leurs 3 derniers
softs, et en ce qui concerne le cours sur le fixs, parce que avec toutes les
news qui arrivent sans cesse, il y a vraiment de quoi faire.. croyez pas ?
Allez, n'attendez pas !.. je vous posterai une copie de Ultima 5 et de
Roadwar 2400 dés qu'on les aura si c'est bien la meme protection géante !!!...



===============================================================================
REORGANISATION DES GODFATHER'S PRODUCTS 1988                      1er Jan. 1988
-------------------------------------------------------------------------------
Tous les programmes ont été ré-ordonnées par rapport aux divers cours, et un
nouveau programme s'y est adjoint - le plus géant, vous verrez : Wildcard Maker
Mise en catalog AUTOMATIQUE de la plupart des softs !.. oui! AUTOMATIQUE !..
Attention, quand vous commanderez un gp's, indiquez en le NOUVEAU numéro,
ET le nom du programme pour qu'il n'y ait aucune erreur possible par rapport
à l'ancien ordre des godfather's products !.. on progresse messieurs!...



===============================================================================
JE VIENS DE TERMINER...            Godfather's Products #4 : Fast Boot SAM 3.21
-------------------------------------------------------------------------------
Je viens de terminer la version 3.21 du fast boot maker pour le f_boot de sam !
Elle permet d'installer n'importe quel programme en fast boot avec une page
texte au boot !.. de plus, le fast boot est maintenant sans conteste ce que
l'on peut faire de plus rapide en matière de fast boot (copiable)..
Sautez dessus ! faites moi confiance ! vous ne le regretterez pas !!...



===============================================================================
SUR QUOI IL FAUT SAUTER AVANT QUE CA REFROIDISSE...          Cours 10 Rev. 1.61
-------------------------------------------------------------------------------
Epyx prépare pour très bientot plusieurs nouveaux softs géants.. et comme on
les connait, ils vont encore utiliser leur désynchro folle et géante !..
Que dire ?.. à la sortie de California games, Boulder cst et Rad warrior, tout
le monde a sauté sur le cours 10..ou presque.. alors maintenant, à l'aube
d'autres news, il faudrait peut etre que les autres sautent aussi dessus, de
manière à se préparer à la venue imminente de :

                - Street sports baseball                (arrivé le 15/12/87)
                - Spy vs Spy III, Artic Antics
                - Spiderbot
                - Deflexor
   mais aussi : - World Games IIe                       (arrivé le 21/12/87)

On vient juste de recevoir : Street sports baseball d'Epyx.. plombé pareil !!..
C'est l'actuel original numéro 1 du cours 10, et personne ne l'a en cracké !!..
De meme depuis ce matin, j'ai aussi World Games !.. 4 faces ?.. ca vous dirait
de déplomber ces deux super news ??!..

Sautez vite dessus avant que ca ne refroidisse !!..ainsi que sur le copieur
Epyx 1.50 et sur le Epyx boot maker, si vous voulez vraiment etre incollables
sur le sujet !!.. A très bientot j'espère avec ce cours !..

Ce nouveau soft m'a permi de faire la révision 1.52 du GP#1 : Epyx Copy 1.50..
et j'ai meme baissé son prix de plus de 30% !!.. pour l'occasion !!..



===============================================================================
EVOLUONS MESSIEURS... EVOLUONS...      Godfather's Products #5 : Epyx Copy 1.60
-------------------------------------------------------------------------------
Suite à la sortie de World Games, dont la protection (Epyx) a encore évoluée,
et que le copieur epyx 1.50 ne pouvait ainsi pas reconnaitre comme original
Epyx, j'ai passé une longue nuit de ce beau mois décembre à programmer et
fignoler la version 1.60 de ce plombeur/copieur epyx !.. le seul copieur à
pouvoir vous offrir des copies intactes de tous les originaux Epyx depuis belle
lurette et gai luron !.. De plus, le prix n'a pas changé !!...



===============================================================================
LES DERNIERES REVISIONS DES COURS...           Cours 12 Révision 1.60 + Cours 6
-------------------------------------------------------------------------------
Ajouté à ce cours le super probleme du boot par PR#6.. votre routine print par
$FDED fait tout planter !.. comment ? pourquoi ? comment l'empecher ?
Ensuite, toute la théorie et la logique de la routine cout est expliquée, ainsi
que le principe des fontes graphiques et de sonclav !.. super interessant !
Enfin, et toujours pour ce cours, ajouté le 29/11, tout une partie
supplémentaire concernant la programmation d'une vérification du texte affiché,
toujours contre les name-killers !!.. pour pas qu'on vous enleve du boot !!

Ajouté à Mirage, l'original du cours 6, un locksmith intégré au boot.
Bootez le et tapez esc dés le début du boot : ce n'est plus mirage qui se
charge mais un locksmith 6.0 compatible IIgs et déjà modifié en D4 AA EB pour
faire des copies conformes  de cet original !!...



===============================================================================
LES DERNIERES REVISIONS DES GODFATHER'S PRODUCTS    GP#6 : Epyx Boot Maker 1.22
-------------------------------------------------------------------------------
Grace à l'aide immense de Deny from The ACS-Dijon, je vous propose enfin la
version définitive provisoire (!) du fameux éditeur de catalog Epyx.. cette
version, outre toutes les super options et possibilitées du programme, contient
un méga-fichier texte expliquant le comment-fait-le-programme !..
Un cours en fait !... géant et super utile si vous avez déjà pris le cours 10!



===============================================================================
LES REVISIONS EN PROJETS                                 Cours 11 Révision 2.00
-------------------------------------------------------------------------------
A ce super cours sur les techniques folles de mise en catalog, je vais rajouter
la super technique presque toujours infaillible de Fusco Volant (un ex-cracker
américain!).. utilisant la carte language pour mettre en catalog les softs
n'utilisant pas la carte language !!...



-------------------------------------------------------------------------------
Et je le rappelle : toutes les révisions de cours sont gratuites !!


Retour sommaire