Cours de déplombage 17.2
Disk : Gdf17_2.dsk
"-" files are DELETED files | "*" files are LOCKED files
----------------------------------------------------------------------
A A$0000 (000000) L$0C94 (003220) 014 HELLO
B A$0800 (002048) L$14FB (005371) 022 ADVANCED DEMUFFIN 1.1
B A$0800 (002048) L$17FF (006143) 026 DISK MUNCHER ULTIMA
B A$2700 (009984) L$08FF (002303) 011 RWTS.ULTIMA5
T A$0000 (000000) L$6600 (026112) 102 T.COURS 17 ULTIMA 5
T A$0000 (000000) L$2801 (010241) 040 T.DOC LOCKSMITH 6.0
T A$0000 (000000) L$0700 (001792) 007 T.INTRODUCTION
This catalog contains 7 files. 0 were DELETED.
----------------------------------------------------------------------

|
DOS 3.3
|
Download Cours GDF 17.2 rev 1.00 (gzipped)
|
Sommaire
Lien |
Article |
 |
Introduction. |
 |
Cours 17 rev 1.00 Ultima V. |
 |
Doc de Locksmith 6.0. |
Introduction.
===============================================================================
INTRODUCTION COURS
17.2
REVISION 1.00
===============================================================================
Salut et salut,
Quand on dit Origin Systems,
on pense aussitot à la série des Ultima,
maintenant au nombre de 5,
mais encore à la série naissante d'Autoduel
(en effet 2400AD attend une
suite!)... De très bons produits, mais
aussi de très bonnes
protections, qui se regroupent au nombre de trois,
en deux cours :
Cours 17 : Tout
sur les protections Origin Systems 1985-1987.
(avec comme originaux :
Autoduel et 2400AD, 2 ex. de ces 2 plombages)
Cours 17.2 : La protection
d'Ultima 5 , la dernière protection de O.S.
(avec comme original :
Ultima 5 - Warriors of Destiny)
Trois protections, trois
originaux ou plus, deux cours..
Tout origin systems!.. pour
le passé et pour l'avenir..
En effet, Origin Systems
vient d'annoncer une suite pour 2400AD, ainsi
qu'un programme de
Basketball (jeu de stratégie) : Homecourt, et un jeu
de role galactique : Space
Rogue. donc, encore des softs à venir,
et à déplomber
vous meme!...dés leur arrivée!
Vous voici maintenant au
cours 17.2...
Alors une question se pose :
On va tous les bouffer ?
======================================================== Amicalement,
Godfather
Retour sommaire
Cours 17 rev 1.00 Ultima V.
.PS^
===============================================================================
COURS 17.2 : Les protections ORIGIN SYSTEMS en notre belle année
88 / Godfather
===============================================================================
Révision
1.00
Update : 16/04/88
Salut et salut,
Depuis quelques
années, Origin systems et Lord British nous abreuvent
sur Apple de leurs
chefs-d'oeuvres logiciels.. Quand on parle d'OSI
(stands for Origin Systems)
dans le milieu de la micro, on pense tout
de suite à la vaste
série des Ultima qui furent meme traduits pour
certains par des
éditeurs français, aux Autoduel, à Moebius, etc..
Tous ses softs, du point du
vue du déplombage, se disputaient deux
protections.. protections
décortiquées dans le premier cours 17 qui
permettait ainsi à
tout le monde de déplomber tous les softs osi_Apple
sauf.. sauf, et ce
malgré mon pari à ce sujet :
ULTIMA 5 - THE WARRIORS OF DESTINY
J'ai gagné quand
à la prévision de la protection de 2400AD, mais perdu
quand à ULTIMA 5.. on
ne peut pas gagner à tous les coups, ma foi !..
enfin, je me rattrape ici
avec ce cours qui tente de décortiquer de
A à Z cette fameuse
troisieme protection osi_Apple, utilisée pour U5,
mais qui le sera surement
encore sur les softs à venir !
Softs à venir de chez
Origin systems, ils sont au nombre de trois
mais je vous en parlerai
plus loin.
===============================================================================
Le cours que vous allez
suivre se découpera de la façon suivante :
1. Découverte et étude de la protection au nibble editor
Nibbles Away II
2. Analyse du disk : savoir manipuler le disk editor du Locksmith
6.0
3. Demuffin, comment-faire ?
4. Faire booter le disk converti au format 3.3
5. Copie des originaux plombés ainsi, il faut un copieur
adapté
6. Plombage : comment plomber vos disks ( ProDOS ) avec cette protection
7. Un mot sur la doc du locksmith 6.0
===============================================================================
1. DECOUVERTE ET ETUDE DE LA
PROTECTION
15/04/88
===============================================================================
La première chose que l'on fasse quand on est en face d'un
nouvel original est
toujours de booter un locksmith rapide pour "tester" la protection,
pour juger
de quelle type elle est (type format ou pas! ce qui est un début
indispensable)
A vrai dire, parfois, quand certaines personnes m'apportent un original
à
déplomber que je n'ai jamais vu, elle s'étonnent de ne
pas me voir en premier
le booter..mais d'y preferer le boot d'un locksmith rapide !...
c'est simple.. on a tellement hate de le cracker qu'on veut tout de
suite en
savoir plus, peut importe la beauté du soft!.. bien que le
booter pourrait
nous apporter enormement d'élements supplémentaires sur
le plombage, à savoir
par exemple quel systeme dos est employé (3.3, ProDOS, Boot3.3,
Fastboot,
ou autre spiralling..ce qui vous permettra parfois de me croiser
l'oreille
collée à mon drive pour écouter le bruit du
boot..mais ceci est une autre
histoire!).. je referme ce paragraphe.
Première chose donc, booter un locksmith 6.0 rapide (fdb) pour
essayer de
copier l'original, qui, ma foi, refuse d'etre bien lu par ce copieur!
La (première) protection à analyser est donc un
protection format.. ce qui
ne nous étonne guère, chers amis, après les deux
précédentes protections
format vues dans le précédent cours 17 osi...n'est ce pas
?
On essaye de copier les autres faces du jeu qui se lisent impec..
on peut penser (et ca se vérifiera bien par la suite) que la
première face est
la seule face plombée. on ne s'occupera donc que de cette face
à moi que ce
crack ne nous mene sur une autre face.. en attendant, on
considèrera les autres
disks comme nom plombés. (une seule face suffit, vous diront
certains
editeurs!)
On essayera de booter ensuite par exemple un Disk Muncher 8.00 qui est
censé
copier plus de formats que ne peut en copier le locksmith rapide,
à savoir
les formats patched par modification de fin de champs et autres simples
modifs
(referez vous au cours 6). On remarquera ici un phénomère
bizarre c'est que
tout le disk original se lit bien, mais la réécriture des
pistes n'est bonne
que pour les piste $00-02.. après, ca délire!.. pourquoi
? c'est ce que nous
allons voir messieurs, dames !
Bien.. protection format et boot simple en ProDOS.. c'est donc un
ProDOS modifié.. nous allons vite etre fixés en bootant
(2eme programme à
toujours avoir sous la main!) un Nibble Editor..
A ce niveau là, vous avez le choix entre celui du locksmith
(option "D" pour
Disk Editor) mais je lui préfère et
préfèrerais toujours le Nibbles Away II
version C3 Nibble Editor (qui est dans le ENFOIRES COPY DISK, comme
tous les
bons softs d'aide à la déplombe).
Vous etes sous nibbles away, donc. faites "T" pour Track/Bit Editor,
puis
Ctrl-R pour Read (en partant de la piste $3 comme toujours pour les
protections
format car, comme on l'a déjà vu dans de
précédents cours, souvent un boot/dos
occupe les piste $0-2 et - contenant la read-routine - n'est pas du
meme format
disk que le programme lui meme...). Vous voici devant des nibbles lus
de la
piste $3.. Si vous avez une imprimante, le mieux est de les sortir sur
papier
pour mieux les étudier, en tapant Ctrl-P pour Print.
J'ai obtenu ceci (exemple, tout peux varier dans le fond selon le
secteur lu,
soit l'emplacement où se trouvait sur la piste lue la pioche
avant la lecture,
si vous voyez ce que je veux dire..) :
----------------------------------------
2200-FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF
2210-FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF
2220-FFFFFFFF D5AA96AA ABABABAA BBABBBAB
2230-FFF9BA93 FFFFFFFF FFFFD5AA ADE6FEF4
2240-CFB5CFF4 9BCDACEE CFB9FFF6 E5F3E9F2
----------------------------------------
Je décortique ca, pour ceux qui n'ont pas encore lu le cours 6
(un conseil,
dés la fin de ce cours-ci, sautez dessus car il est reelement
indispensable!)
sur les formats disks modifiés!
D'abord, un grand nombre de FF. Ceci caractérise le début
du premier secteur
de la piste concernée (ici la piste $03 du disk Ultima 5
original). c'est ce
qu'on appelle des nibbles de synchro. Ca permet - en gros - à la
pioche de
se fixer sur le début réel du premier secteur de la
piste, comme point de
repère pour atteindre ensuite tous les secteurs de la piste
concernée au choix.
Ensuite, les premiers paramètres du format : D5AA96
Ce sont les headers de début de champ adresse, qui sont normaux..
la modification format n'a donc pas été faite à ce
premier niveau. on continue.
Le numéro du Volume
---------------------------
( format 3.3 )
Ensuite, le numéro de volume du disk original sur cette piste
(en 4&4) : AA AB
Je vous décortique ça vite fait pour qu'on puisse
retrouver ce fameux numéro de
volume.. le principe de décodage est le suivant, en
décomposant le numéro de
volume ainsi (en 8 bits numérotés de 7 à 0) :
Data byte - D7 D6 D5 D4 D3
D2 D1 D0
xx - 1 D7 1 D5 1 D3 1 D1
yy - 1 D6 1 D4 1 D2 1 D0
Je m'explique.. le champ adresse se constitue de D5AA96 puis du
numéro de
volume sous la forme xx yy codée si dessus.. on a ici AA AB, on
décompose
ces nombres, ce qui nous donne :
xx = $AA = %10101010
yy = $AB = %10101011
--------------------
volume =
%00000001
Ce qui nous donne si on extrait les D0-D7, le nombre en binaire suivant
:
volume = $01
Le volume est de 1.. c'est un paramètre modifié - sauf si
l'on concoit que
le soft vérifie ce volume pour un protection - on en a rien
à faire.
A noter, ultima 5 fait plusieurs faces. et il se pourrait - comme dans
l'ancestral Alternate Reality (The City) de Datasoft - que les faces
soient
numérotées par le numéro de volume. en effet, nous
sommes bien sur la face 1.
On devra repasser sur ce point à la fin du crack (y a-t-il bien
reconnaissance
des diverses faces du jeu par le soft, n'y a t'il pas de vérifs
du volume..?),
mais aussi quand on parlera de faire des copies intactes de ces
originaux.
Le numéro de la Piste
-----------------------------
( format 3.3 )
Ensuite suit le numéro de la piste... qui se décode de la
meme façon,
mais pour vous donner la possibilité d'éviter ces calculs
bizarres, voici une
table pour trouver les numéros habituels track/sector :
NIBBLES
VALEUR
NIBBLES
VALEUR
NIBBLES VALEUR
---------
-------- ---------
-------- --------- --------
AA
AA
00 AE
AE
0C AE
BA 18
AA
AB
01 AE
AF
0D AE
BB 19
AB
AA
02 AF
AE
0E AF
BA 1A
AB
AB
03 AF
AF
0F AF
BB 1B
AA
AE
04 AA
BA
10 AE
BE 1C
AA
AF
05 AA
BB
11 AE
BF 1D
AB
AE
06 AB
BA
12 AF
BE 1E
AB
AF
07 AB
BB
13 AF
BF 1F
AE
AA
08 AA
BE
14 BA
AA 20
AE
AB
09 AA
BF
15 BA
AB 21
AF
AA
0A AB
BE
16 BB
AA 22
AF
AB
0B AB
BF
17 BB
AB 23
Après le numéro de volume, vient le numéro de
piste. on trouve : AB AB
ce qui correspond bien (regardez la table ci-dessus ou bien
décodez les
nibbles 4&4 vous memes comme je viens de le faire pour le
numéro de volume)
à la piste que nous venons de lire, soit la piste $3. Essayez
d'aller lire
une autre piste (un nibble editor peut aussi servir pour verifier
l'eventuelle
présence d'une piste $23 au format quelconque du moment que
basé sur ce type
de format originel (3.3)) et de verifier que le numéro
trouvé ds la table
correspond bien au numéro de la piste lue, et vous vous
apercevrez vite que
les numéros de pistes sont normaux également.. on passe
à la suite.. le
numéro de secteur.
Le numéro du Secteur
----------------------------
( format 3.3 )
Ah! le numéro du secteur!
En fait, c'est là que réside toute la protection !
Le premier numéro de secteur que j'avais trouvé
était censé etre celui
du premier secteur étant donné la présence juste
avant du timing gap, ce
bloc de dizaines de nibbles de synchro $FF qui en général
est juste avant
le premier secteur de chaque piste.. le numéro de secteur
trouvé donc
après le D5AA96 xx yy xx yy (volume, piste,..) était AA
BB soit (d'après ma
table) $11 au lieu de $00. si on continue (fleche "->" pour passer
à la
page suivante de nibbles sous nibbles away II), on voit ensuite
l'équivalent
de $12, $13, etc.. mais jamais de $00 à $10.. puis ainsi
jusqu'à l'équivalent
de $20 pour le plus grand numéro de secteur de chaque piste,
normalement $0F.
On conclut vite : le plombeur a rajouté $11 à chaque
numéro de secteur pour
le plombage de la face de boot d'ultima 5.
ILS ONT RAJOUTE $11 AU
NUMERO DES SECTEURS DE CHAQUE PISTE !!!
(les numéros des secteurs étant comme toujours
codés en 4&4 dans le chp adress)
Question format, le disk est également en dos patched (pas de DE
AA EB en fin
de champ adresse uniquement) comme nous l'indique le nibble away II
(cours 6).
===============================================================================
2. SAVOIR MANIPULER LE DISK EDITOR DU LOCKSMITH 6.0
===============================================================================
Si je n'utilise jamais ce nibble editor pour lui préférer
nibbles away II, ce
n'est pas que je le trouve nul, bien au contraire.. et meme, si je peux
vous
donner un conseil, essayez de bien vous faire à celui-ci,
seulement, vous savez
ce que c'est, quand on prend de l'age, on a du mal à changer ses
vieilles
habitudes!.. et c'est exactement le cas par rapport aux nibbles editor!
Le pire étant que je me rende parfaitement compte que je ne suis
plus dans le
coup.. m'enfin ?
J'ai fait un effort, et voici une analyse des originaux ultima quasi
automatique!.. je me lance..
Bootez un locksmith pleine face 6.0, et au menu général,
tapez "N" pour
"Nibble / Disk Editor". Ensuite, introduisez ds le drive votre face A
(plombée)
d'ultima 5, et tapez Ctrl-R pour "Read Track / Lecture Piste" et entrez
le
numéro de la première piste à lire.. comme on l'a
dit : $03 (ou autre $03-22).
Les zones en inverse (comme dans nibbles away II après avoir
fait la meme
commande Ctrl-R, ma foi) sont les champs adresse.. le reste ce sont soit
le contenu de ce champ adresse, soit le champ données. (data
field).
A ce point là, tapez "D" - commande oh! combien magique et utile
du locksmith
pour le déplombeur - et vous obtenez quelque chose comme ca
(piste$3) :
________________________________________
!
!
!
DISK
EDITOR
!
!
!
! 20BD V01 03/18 ? 2244 V01 03/19 ? !
! 23CA V01 03/1A ? 2550 V01 03/1B ? !
! 26D7 V01 03/1C ? 285C V01 03/1D ? !
! 29E2 V01 03/1E ? 2B67 V01 03/1F ? !
! 2CEE V01 03/20 ? 2EDB V01 03/11 ? !
! 3067 V01 03/12 ? 31EE V01 03/13 ? !
! 3374 V01 03/14 ? 34FC V01 03/15 ? !
! 3683 V01 03/16 ? 380B V01 03/17 ? !
! 3991 V01 03/18 ? 3B18 V01 03/19 ? !
! 3C9F V01 03/1A ? 3E25 V01 03/1B ? !
! 3FAC V01 03/1C ? 4131 V01 03/1D ? !
! 42B7 V01 03/1E ? 443C V01 03/1F ? !
! 45C3 V01 03/20 ? 47B0 V01 03/11 ? !
! 493C V01 03/12 ? 4AC3 V01 03/13 ? !
! 4C49 V01 03/14 ? 4DD1 V01 03/15 ? !
! 4F58 V01 03/16 ? 50E0 V01 03/17 ? !
!________________________________________!
Ca veut dire quoi ?..
Pour que vous compreniez bien en détail cette fonction du
locksmith, qui est
la fonction de décodage du champ adresse des disks en format 16
secteurs,
vous pouvez vous referer à la documention du locksmith 6.0 que
j'ai faite
completement traduire en français pour vos beaux yeux, et qui se
trouve en
catalog sur ce disk (et dans le menu fichiers de ce cours).
Pour pas que j'ai à plagier la doc originale, en voici le
passage utile :
_____________________________
!
! Avec N vous passez en mode Editeur de Disque (en
fait c'est un Nibble
! Editor).
!
! Le curseur se déplace avec les touches
I,J,K,M ou avec les flèches sur
! les //e et //c. Les touches '<' et '>'
font avancer/reculer d'une
! page en mémoire. Les touches ',' et '.'
permettent de se déplacer dans
! le buffer.
!
! 'D' est la commande de
décodage de l'adresse en 16 secteurs. Les 4
! premiers
nombres sont l'adresse du buffer suivi de la lettre V
! et du
n° de volume en hexa, un nombre à deux chiffres avec (/)
! puis
encore une nombre à deux chiffres pour la piste/secteur. A
! la suite,
on trouve '?', 'CS', ou '**'. Le '?' signifie que le
! checksum
ou le prologue est incorrect. 'CS' signifie que le
! checksum
du champ de données est incorrect et '**' signifie que
! les
données sont incorrectes ou qu'on est en 13 secteurs.
Comprendo ?.. l'analyse que nous venons de faire faire automatiquement
au 6.0
nous confirme donc sur plusieurs points :
- le volume du disk original
face A est bien V=$01
- le checksum ou/et le
prologue peut etre incorrect
De plus, en étudiant les numéros de secteurs
donnés ici, on remarque tout de
suite qu'ils se situent tous entre $11 et $20, au lieu de $00 et $0F..
mais
l'écart est le meme entre ces deux couples de valeurs : on voit
donc bien que
- pour obtenir les
numéros de secteurs en format normal, il faut
enlever $11
à leur valeur.
===============================================================================
3. DEMUFFIN, COMMENT FAIRE ?
===============================================================================
On n'a plus besoin de lire les DE AA EB, on est en dos patched, on doit
rajouter $11 avant la lecture de chaque secteur du disk dés la
piste $03
et uniquement dés la piste $03.. on va donc patcher un dos 3.3
(le boot de
l'original est un ProDOS.. vous avez déjà essayé
de boot-tracer du ProDOS ?
C'est bien balaise, ma foi !)
On boote donc un dos 3.3, on tape CALL-151 puis $B98BL. On tombe sur
ceci :
B98B- BD 8C C0
LDA $C08C,X
10
FB BPL *-3
C9
DE CMP #$DE
D0
AE BNE $B942
EA
NOP
BD 8C
C0 LDA $C08C,X
10
FB BPL *-3
C9
AA CMP #$AA
D0
A4 BNE $B942
18
CLC
60
RTS
C'est la routine de lecture du dos 3.3 des headers de fin de champ
adresse.
On en a plus besoin comme on vient de le voir, on va donc remplacer
cette
routine par une routine qui rajoute $11 au numéro du secteur
à écrire (c'est
pile à ce moment là qu'on doit le changer par exemple
pour que ca marche).
Mettez ici ceci (sachant que le numéro du secteur est
gardé en $2D) :
B98B- A5
2D LDA $2D
38
SEC
E9
11 DEC $11
18
CLC
85
2D STA $2D
EA
NOP
EA
NOP...jusqu'en $B99D
18
CLC
60
RTS
Pour convertir le disk original, il suffit de charger juste avant de
faire
ces modifications, un ADVANCED DEMUFFIN 1.1 en $800, puis de le lancer
après.
Tapez 800G, commencez le démuffin dés la piste $03, et ca
marche ! ça lit impec
Pour convertir les premières pistes, faites un bete B942:18 du
cours 1,
et ca marchera. (conversion des piste $00,01,02 only).
Vous avez ainsi une copie 3.3 du disk Ultima 5 original. mais
boote-t-elle ?
Pour les fainéants de la frappe hexa, sachez que le fichier
RWTS.MODULE
d'ultima 5 est sur ce disk de cours. il vous suffit de le charger en
page $B7
à partir du menu d'Advanced Demuffin 1.1. et de l'utiliser comme
si vous
veniez de faire les dites modifications au dos.
*** Il faut convertir les pistes $00-02 en patched
*** Il faut convertir les pistes $03-22 avec ces modifications dans le
dos
===============================================================================
4. FAIRE BOOTER LE DISK CONVERTI AU FORMAT 3.3
===============================================================================
Une fois que vous aurez obtenu la version demuffin de votre original,
ce qui se
fait en cinq minutes ma foi, vous allez tout de suite essayer de la
booter.. et
elle bootera impec! Pourtant, si l'on s'interroge.. on a d'un
coté l'original
avec des numéros de secteurs que lit la rwts prodos du boot de
l'original,
et qui ont $11 de plus que la normale... et de l'autre coté, on
a la copie
demuffin, qui a des numéros de secteurs "normaux".. et si les
deux bootent,
c'est que la meme routine de lecture sait reconnaitre quel format il y
a ?
ok.. mais pourquoi ?..
Je me suis longuement posé la question.. une rwts peut lire un
format modifié
quand elle connait ce format, mais alors pourquoi la meme rwts a-t-elle
été
prévue pour lire deux formats : le format original, et pour
ainsi dire,
le format "déplombé" ?.. le format normal 3.3 ?..
Je me suis longuement posé la question.. et la réponse
est venue.
Les plombeurs avaient décidé de ne protéger que la
face de boot, la face A,
avec une protection format. A ce niveau, il fallait tout de meme que la
routine de lecture lise les data disk (autres faces au format normal)..
et c'est pour cette raison que nous n'avons aucune modification
à apporter
au boot de notre version demuffin d'ultima 5 : la rwts est bi-format!
Pour ceux qui se demandent pleins de choses à propos du
"comment" de la chose,
la réponse va venir dans une rubrique suivante de ce cours :
"quelques mots à
propos du plombage".
===============================================================================
5. COPIE DES ORIGINAUX PLOMBES AVEC CETTE PROTECTION
===============================================================================
Le disk est au départ en format patched..et il me fallait
essayer de faire au
plus vite pour ce cours un copieur d'originaux avec ce plombage. je
n'allais
donc pas tout reprendre à zero, mais plutot essayer de reprendre
un copieur du
marché, et l'adapter..ce qui serait plus rapide certainement que
mon programme
fait à la va-vite, et également plus facile.
Je me suis donc mis en catalog un disk muncher 8.00, pour aller
l'étudier de
plus pret. Comme je le disait au début de ce cours, ce copieur
copie bien les
3 premières pistes, lit bien les autres, mais les
ré-écrit mal.. à cause des
numéros de secteurs trop élevé.. il fallait
modifier ce test de numéro de
secteur pour qu'il accepte ces "grands" numéros.
A l'aide d'un copy II+ 5.x, j'ai donc recherché dans ce fichier
un CMP #$10
à savoir que c'est le premier numéro de secteur
invalide.. le dernier valide
étant bien sur $0F. et j'ai modifié cette valeur de $10
en $21 ($10+11 pour
plus de sécurité, je crois meme avoir mis $10+12).. et ca
marche, la copie se
fait impec, seulement elle ne boote pas suite à un test à
la lecture venant
surement du numéro de volume ou autre petit probleme..
A ce jour je n'ai pas encore eu le temps de régler ca,
d'où la "mauvaise" copie
d'original que je vous ai donné avec ce cours, mais ce probleme
sera réglé au
plus vite, si Dieu m'offre le temps de m'en occuper bientot.
===============================================================================
6. PLOMBAGE (quelques mots)
===============================================================================
Sur la copie demuffin d'ultima 5 (ProDOS) on trouve en piste $01 04 81,
une
routine de lecture de nibbles DE AB (au lieu de normalement DE AA EB si
je
ne m'abuse) puis en $93 la routine suivante :
LDA $5D
SBC #$11
STA $5D
CLC
RTS
===============================================================================
7. UN MOT SUR LA DOC DU LOCKSMITH 6.0
===============================================================================
Je vous ai copié sur ce disk la doc traduite du locksmith 6.0
(qui ne fait pas
comme l'indique automatiquement le catalog 040 secteurs mais 256+40
soit 296
secteurs de texte!..hum!) et comme je m'en doute, vous n'allez pas
pouvoir
l'ingurgiter entière en une fois.. néanmoins, en la
relisant, j'ai relevé ce
passage interessant.. alors je l'ai coupé et je le recolle
ici,pour vous servir
_____________________________
!
! FORMAT DES PISTES (13 et 16 secteurs):
!
! Sur Apple II, il y a
plusieurs systèmes de formatages. Par
! exemple, on peut utiliser 13 secteurs par piste ou,
sur les modèles
! récents utilisant des algotrithmes
perfectionnés, on peut avoir 16
! secteurs par piste.
!
! Ces deux formats sont
fondamentalements identiques, seule la
! manière de coder les informations est
différente. De plus les
! Prologues adresse diffèrent de
manière à identifier le système
! utilisé. Puisque le format 13 secteurs est
tombé en désuétude, nous
! perlerons du format 16 secteurs et ensuite nous
pointerons les
! différences entre les deux sytèmes.
!
! Une piste est
formée de secteurs (16 ou 13): chaque secteur
! contient un champ adresse et un champ
données. Le champ adresse
! contient des informations sur le champ
données qui le suit. Le schamps
! sont séparés par des 'vides' remplis
d'octets de synchro. Ces octets
! sont des nibbles spéciaux qui obligent la
carte controleur à se
! synchroniser, rendant possible la lecture du champ
suivant.
!
! Les champs adresse et
données contiennent chacun un Prologue, des
! informations et un Epilogue. Les Prologues du champ
adresse sont D5 AA
! 96 (ou D5 AA B5 en 13 secteurs), suivis de 4
informations codées en
! double nibbles. Deux nibbles consécutifs
indiquent le n° de volume, le
! n° de piste, le n° de secteur et le
checksum. Ce checksum est un OU
! exclusif des trois autres données. Vous
trouverez une table dans ce
! manuel pour convertir ces doubles nibbles en les
valeurs qu'ils
! représentent. Ensuite vient l'Epilogue du
champ adresse: DE AA.
!
! Après les
octets de synchro, on trouve le champ de données: il y
! a un prologue (D5 AA AD), suivi de 342 nibbles (ou
410, en format 13
! secteurs). Ces nibbles sont codés suivant
une table 6 bits (voir la
! table "Data Field Nibble Encoding"). En 13 secteurs
on utilise une
! table 5-bits. après les données il y
a un octet de checksum puis
! l'épilogue DE AA.
!
! Certaines protections
sont basées sur des modifications des
! Prologues et Epilogues.
Amicalement, Godfather
===============================================================================
Retour sommaire
Doc de Locksmith 6.0.
Cette DOC du 6.0 vous est offerte gracieusement par :
le célèbre B.CAPSLOCK
LOCKSMITH 6.0
(C) ALPHA LOGIC BUSINESS SYSTEMS
4119 NORTH UNION ROAD, WOODSTOCK, ILL 60098
Matériel nécessaire:
Apple II, Apple
II+, Apple //e, Apple //c, ou compatible. Il faut
au moins 48K de mémoire. On peut
utiliser ce logiciel avec 1 ou 2
lecteurs de disquettes.
Matériel supplémentaire en
option:
Cartes RAM de
16K, 32K, 64K, 128K, 256K ou toute autre carte d
emémoire RAM additionnelle. Une
imprimante est conseillée, mais non
nécessaire.
LES TOUCHES DE COMMANDES:
Les commandes suivantes peuvent ètre
tapées à tout moment:
CTRL-Z - l'écran texte est
imprimé sur l'imprimante connectée en
slot1. On peut changer ce slot par le paramètre PRT.SLOT.
ESC - annule
l'opération en cours et vous ramène au menu
précédent.
RESET - reboote la disquette
Note: Laissez la disquette LOCKSMITH dans le
drive 1 jusqu'à ce que le
programme vous avertisse que vous pouvez
l'oter. Cependant, vous
devrez la remettre à chaque changement
d'opération (à partir du menu
principal).
Les 7 premières lignes affichent
l'opération en cours. Les pistes sont
numérotées de 0-23 (hex) soit
0-36 (decimal). On peut également
utiliser les 1/4 et 1/2 pistes.
MENU PRINCIPAL:
Lors du boot de LS, vous arrivez dans le menu
principal. Les messages
en inverse vous indiquent quelles sont les
touches à enfoncer pour
obtenir l'option désirée.
(B) BACKUP/COPY - Copie de logiciels utilisant
des routines de
protection.
(F) FAST BACKUP - Copie rapide de logiciels
non protégés. Cette option
utilise la mémoire additionnelle pour accélérer le
processus de copie.
(/) CLR STATUS - Effacer les
informations présentes sur la ligne en
dessous des n° de pistes.
(N) DISK EDITOR - Il s'agit du NIBBLE EDITOR
permettant la lecture, la
modification, la recherche .... de données situées
sur la disquette (format SECTOR ou NIBBLE). On peut
aussi éditer des données situées en RAM.
(L) LOAD RAM CD - Permet de charger dans la
RAM du slot 0 les données
situées sur les pistes 12, 13 et 14 (hex) de la
disquette LS. On l'utilise pour charger Inspector ou
Watson. La touche I permettra ensuite d'appeler ces
fonctions une fois que ces utilitaires seront en
mémoire.
(*) PARAMETERS - Permet de modifier les
paramètres utilisés par LS.
(T) TEXT EDITOR - Edition de fichiers en
LANGAGE DE PROGRAMMATION
LOCKSMITH (LPL), qui peuvent ètre chargés et sauvés
sur le disque de paramètres. La fonction BACKUP
permet alors de faire des copies de logiciels en
donnant leurs noms.
(R) RAMCD UTILS - Permet de tester les cartes
RAM situées dans votre
Apple. Il y a deux tests: un simple et un complet.
Ces tests peuvent se faire de manière complète ou
partielle pour déterminer une erreur précise. De
plus, le contenu de chaque banc 16K de la carte RAM
peut ètre copié en mémoire principale puis
édité
avec le DISK EDITOR et ensuite relogé en mémoire
RAM.
(Q) SCAN DISK - Permet d'afficher
sur l'écran Haute Résolution une
image de votre dique, piste par piste. Très pratique
pour déterminer quelles sont les pistes réellement
utilisées.
(A) BOOT TRACER - C'est un débugger
très sophistiqué simulant le
fonctionnement du processeur 6502. Du fait de la
simulation des accès disques, on peut booter un
disque (protégé ou non) sous controle du debugger et
suivre le boot à la trace.
(C)CERTIFY DISK - Ceci permet de
vérifier le bon état de la disquette
en écrivant certaines informations sur les pistes.
(U) 16-S UTILS - Appel un menu
permettant certaines opérations sur
les disques en format 16 secteurs/piste.
(D) DOS3.3 UTIL - Appel d'un menu
d'utilitaires DOS 3.3.
(X) DSK RECOVER - Permet de lire un disque
endommagé et d'en faire une
copie de meilleure qualité sur une autre disquette.
Très utile pour recopier une disquette écrite avec
un lecteur ayant ses tètes mal alignées.
(S) DISK SPEED - Permet de modifier la
vitesse de rotation des
lecteurs.
(E) ERASE DISK - Efface tout ou partie
d'une disquette.
(I) INSPECTOR - Appel de Inspector
ou de Watson s'ils ont été
préalablement chargés par la fonction L.
Backup/Copy Disk:
En tapant B, on peut copier la majorité
des logiciels utilisant une
protection.
En tapant F, on passe en copie rapide: ceci ne
fonctionne qu'avec des
disquettes au format standard; de plus toute
la mémoire RAM disponible
est utilisée. Voici les commandes
disponibles:
12
Copie du lecteur 1 vers le lecteur 2
21
Copie du lecteur 2 vers le lecteur 1
11
Copie du lecteur 1 vers le lecteur 1
22
Copie du lecteur 2 vers le lecteur 2
1 Lecture du disque 1
2 Lecture du disque 2
10
Copie du lecteur 1 vers la mémoire
20
Copie du lecteur 2 vers la mémoire
01
Copie de la mémoire vers le lecteur 1
02
Copie d ela mémoire vers le lecteur 2
V Permet de mettre/oter la vérification lors
de la copie
(SPACE ou RETURN) pour commencer
De plus on peut modifier certains
paramètres ce qui permettra la
lecture/écriture avec des formats non
standards. Voici la liste de ces
paramètres:
0007=00 N° de volume désiré
ou 0 si c'est le mème que l'original
0008=00 N° de piste de départ
0009=22 N° de piste de fin
0010=08 Nombre de d'essais de lecture maximum:
1 à 9 et A à Z
0011=03 Nombre maxi de vérifications
après l'écriture.
0012=10 Délai de mise en route du
moteur pour la lecture. Maxi 7F.
0013=10 Délai de mise en route du
moteur pour l'écriture. Maxi 7F.
0014=80 Délai de positionnement du bras
(Seek Off) en lecture. Le DOS
utilise FF, valeur maxi. Un délai de 00 est suffisant et
permet de gagner 1s lors de la copie.
0015=80 Délai de positionnement du bras
(Seek Off) en écriture. Ne pas
mettre de valeur inférieure à 80 sinon le lecteur va
commencer
à écrire avant que le bras soit positionné.
0016=0B Nombre d'octets de synchro avant le
champ adresse (il y en a
toujours 5 de plus que le nombre indiqué). La valeur par
défaut met 16 octets de synchro, la valeur 01 en met seulement
6. Une valeur trop basse va permettre l'écriture par dessus le
champ adresse suivant; une valeur trop grande ne permettra pas
d'écrire les 16 secteurs sur la piste.
0017=08 Nombre d'octets de synchro avant le
champ de donnée (voir
0016).
0018=00 Ecriture alternée sur les
lecteurs 1 et 2. La valeur FF permet
d'écrire alternativement sur les deux disques et permet de
gérer au mieux la mémoire en optimisant les duplications.
Pour modifier un paramètre, taper les 4
chiffres de son adresse et
taper RETURN: la valeur utilisée est
affichée. Tapez alors une autre
valeur.
CLEAR TRACK STATUS DISPLAY:
La ligne située sous les numéros
de piste ne s'efface pas
automatiquement. Avec la commande /, vous
effectuez le
rafraichissement de cette zone à
volonté.
EDITEUR DE DISQUE D'OCTET ET DE MEMOIRE:
Avec N vous passez en mode Editeur de Disque
(en fait c'est un Nibble
Editor).
Le curseur se déplace avec les touches
I,J,K,M ou avec les flèches sur
les //e et //c. Les touches '<' et
'>' font avancer/reculer d'une
page en mémoire. Les touches ',' et '.'
permettent de se déplacer dans
le buffer.
CTRL-A vous activez/désactivez
l'affichage ASCII. Avec 'B' vous passez
du
mode byte au mode nibble. En mode nibble, les octets de
synchro sont en inverse.
CTRL-R permet de charger une piste dans le
buffer.
CTRL-W va écrire le buffer sur une
piste. (Si vous ne spécifiez pas
les
pistes de départ et de fin, LS attend que le buffer soit
plein avant d'écrire).
CTRL-V permet de vérifier le
début de piste: placez le curseur sur le
nibble à partir duquel se fera la vérification.
CTRL-I permet d'insérer des nibbles
dans le buffer, à droite de votre
curseur.
CTRL-D efface des nibbles
CTRL-F recherche de nibbles. En tapant RETURN,
on cherche la chaine de
nibbles stockés dans PATO, 'L' vous demande la longueur (1-F).
CTRL-B déplace le curseur sur le
début de piste
CTRL-E déplace le curseur sur la fin de
piste
'(' définit la
position du curseur comme étant le début de piste
')' définit la
position du curseur comme étant la fin de piste
'S' le nibble sous le
curseur devient l'octet de synchro
'N' remet le nibble en
état normal
'C' passe en mode CHANGE
'H' affiche le buffer sur
l'écran HGR
'HG' imprime l'écran HGR
(si l'imprimante est graphique).
L'initialisation de l'imprimante se fait avec le paramètre
GR.CHARS.
'G' à partir du mode
texte, va afficher une représentation du
buffer en mode texte.
- (.) veut dire que les nibbles de la chaine sont normaux
- ( ) en inverse caractérise les octets de synchro
- (+) signifie une combinaison de normaux et de synchro
'D' est la commande de
décodage de l'adresse en 16 secteurs. Les 4
premiers nombres sont l'adresse du buffer suivi de la lettre V
et
du n° de volume en hexa, un nombre à deux chiffres avec (/)
puis
encore une nombre à deux chiffres pour la piste/secteur. A
la
suite, on trouve '?', 'CS', ou '**'. Le '?' signifie que le
checksum ou le prologue est incorrect. 'CS' signifie que le
checksum du champ de données est incorrect et '**' signifie que
les
données sont incorrectes ou qu'on est en 13 secteurs. En
tapant '#' on affiche la piste dans le buffer de '(' à ')'.
CTRL-S effectue l'analyse du mode de lecture de la piste afin
de
positionner les pointeurs en vue de la prochaine écriture.
CERTIFIER LES DISQUES:
Cette fonction
s'appelle en tapant C à partir du menu principal
de LS. Cela permet de vérifier si une
disquette n'est pas abimée
physiquement.
ATTENTION: cet utilitaire détruit le
contenu de la disquette à
certifier.
Indiquez le
lecteur de disque concerné, la piste de départ et de
fin ainsi que l'incrément. Mettez la
disquette à certifier et tapez
ESPACE.
Cette fonction
écrit une suite d'octets sur chaque piste. Ensuite
les pistes sont relues et si la suite d'octets
qui s'y trouve n'est
pas conforme à l'original, LS
affiche une erreur sur la piste
concernée. Il y a trois sources
d'erreurs: ce peut ètre du à un
mauvais fonctionnement du lecteur de disquette
tant en lecture qu'en
écriture, ou plus vraissemblablement il
s'agit d'une altération
physique de la disquette.
Chaque piste
correctement écrite/lue est marquée par un point (.)
et les erreurs sont signalées par un
(*).
LES UTILITAIRES 16 SECTEURS:
Ceci vous donne
la possibilité de traficoter les disques au
format 16 secteurs normal (Dos
3.3,Prodos,CP/M...). Ces fonctions
s'appellent par 'U' à partir du menu
principal.
La Vérification en 16 secteurs:
En tapant 'V'
à partir de ce menu, vous passez dans l'utilitaire
FAST DISK VERIFY. Indiquez le n° du
lecteur où se trouve la disquette
à tester et LS va tester les pistes 0
à $22.
Chaque piste
correctement lue est marquée par un point (.) et les
erreurs sont signalées par un (*). S'il
y a un chiffre, cela
représente le nombre de fois que le
lecteur a du recommencer sa
lecture pour lire correctement les 16 secteurs
de la piste. Sous les
pistes se trouvent les indications relatives
aux secteurs:
- un point (.) signifie que le secteur
concerné a été correctement lu
du premier coup.
- un 'A' inverse signifie qu'une erreur est
intervenue dans la lecture
des champs adresses. Un 'D'
inverse signifie qu'une erreur est
intervenue dans le champ
données.
- un nombre indique le nombre de fois que la
lecture a été faite avant
de décoder correctement les
informations.
Le Formatage en 16 secteurs:
Tapez 'F' pour
formatter une disquette. Cet utilitaire permet de
ne formatter qu'une partie de la disquette
avec le n° de volume de
votre choix. Avec cet utilitaire, on peut
reformater une piste abimée.
Mais ATTENTION, les données
situées sur la piste reformatée sont
définitivement perdue.
Indiquez le
lecteur utilisé, la piste de départ et de fin et
l'incrément puis le n° de volume.
Comparaison de disques 16 secteurs:
Tapez 'C' pour
accéder à cette fonction. Chaque secteur de la
disquette est lu et un double octet (16-bit)
de checksum lui est
associé et est comparé au
checksum du secteur original. S'ils ne
correspondent pas, un 'C' apparait en regard
du secteur. Lors de la
première lecture, il est normal d'avoir
beaucoup de C: on n'a pas de
référents en mémoire.
Lorsque le dique
à comparer est stocké en mémoire (par ses octets
de checksum), mettez la deuxième
disquette et tapez ESPACE: la
comparaison se fait. Chaque comparaison
réussie se traduit par un
point (.) en face du secteur correspondant. En
cas de non identité, un
'C' est affiché. On peut aussi obtenir
des 'A' ou des 'D' inverse
selon qu'on a détecté ou non des
erreurs dans les champs adresses ou
données.
Signature 16 Secteurs Synchronisée:
Cet utilitaire
permet de détecter la synchronisation des pistes
sur un disque 16 secteurs. Indiquez le drive
utilisé: la lecture
commence piste $00 secteur $00, ensuite on
passe à la piste 1 et le n°
du premier secteur lu est affiché; on
passe à la suite jusqu'à la
piste $22.
La signature de
la synchronisation est affichée sans fin et va
varier en fonction des fluctuations de vitesse
de la tète de lecture.
Vous quittez la fonction par ESC à tout
moment.
On peut aussi
utiliser cette routine pour déterminer quel
programme de copie a été
utilisé pour dupliquer la disquette.
Cette signature
est normalement constituée d'une suite de
chiffres hexa en sens croissant ou
décroissant. Exemple:
0FEDCBA9876543210FEDCBA9876543210FE
Cette
progression est décroissante de (-1): chaque nombre est
plus petit que son prédécesseur
de 1. La table suivante donne la
signature caractéristique de certains
copieurs. Notez que la seule
écriture sur disque ne modifie pas la
signature; il faut
impérativement qu'il y ait formatage.
Program Signature
Identificateur
------------ ------------- --------------
Dos Init 0DA741EB85... (-3)
Locksmith
Format 048C048C... (+4)
Locksmith
Fast Backup 0FEDCBA987... (-1)
Penulta Copy 0ECA8... (-2)
Copywriter
(no verify) 0000000... (+0)
Copywriter
(verify) 0FEDCBA987... (-1)
Disk Muncher 0D852FC964... (**)
Rack Pat 0D85630DA5... (**)
La signature
à la mème progression uniquement si le formatage a
été fait en une seule passe. Par
exemple, la signature suivante a été
générée par Locksmith
FAST DISK BACKUP en une seule passe avec une
carte 128K.
0FEDCBA9876543210FEDCBA9876543210FE
Chaque nombre hexa est inférieur de 1
au précédent, conformément à la
table spécifiée plus haut.
Maintenant examinez la signature suivante:
0FEDCBA9873210FEDCBA6543210FED98765
!
! !
Dans ce cas la
progression est encore de (-1), sauf aux trois
endroits marqués par un ! où la
progression est de (-4). Ceci provient
du fait que ce disque a été
créé par Locksmith FAST DISK BACKUP sans
carte RAM. Toutes les 10 pistes, une
interruption du processus de
copie se produit (on lit la disquette
originale par tranche de 10
pistes). Si la copie avait été
effectuée avec l'option VERIFY du
Locksmith FAST DISK BACKUP, la progression
aurait été de (-3). Ainsi à
partir de cette signature on peut
découvrir pas mal de choses
interessantes sur l'origine de la disquette.
LES UTILITAIRES DOS 3.3:
En tapant 'D'
à partir du menu principal, vous passez dans les
utilitaires DOS 3.3..
Catalog Disk:
L'option 'C' du
menu UTILITIES permet d'afficher le catalog du
disque. Les fichiers effacés sont
marqués avec un"D".
Load fichiers DOS en mémoire:
L'option 'L'
permet de charger un fichier en mémoire pour
l'éditer. Le fichier est chargé
entre $2000 et $7EFF. La TSL
(track/sector list) est placée à
partir de $7F00, ainsi on peut sauver
le fichier sur disque à partir de
l'éditeur.
Carte d'occupation du disque:
La touche 'M'
affiche la carte d'occupation du disque. Les
secteurs libres sont marqués par '-' et
les secteurs utilisés par '#'.
Les secteurs vont de bas en haut et de gauche
à droite. Tapez ESPACE
pour revenir au menu.
Modifier le nombre de secteurs utilisés:
Certaines
erreurs DOS modifient le décompte des secteurs utilisés
par un fichier. En tapant 'K' dans ce menu,
vous corrigez
automatiquement ces erreurs. Les secteurs
utilisés par le fichiers
sont dénombrés et le
résultat est comparé avec l'information du
catalogue. En cas de différence, les
deux nombres sont affichés et LS
vous demande de taper ESPACE pour faire les
corrections (ESC permet de
quitter).
Vérifier la validité du VTOC:
La VTOC (volume
table of contents) est une bit-map des secteurs
libres d'un disque. Le catalogue est la liste
des noms de fichiers
avec une ou plusieurs TSL (track/sector lists)
par fichier indiquant
quels sont les secteurs attribués
à chaque fichier. Si vous faites une
erreur de manipulation alors que des fichiers
sont ouverts, il se peut
que la VTOC et le catalogue ne correspondent
désormais plus à la
réalité.
Avec l'option
'V', vous vérifierez la validité du VTOC/Catalog.
L'affichage ressemble à celui de
lacarte d'occupation (option M): il y
a les "-" (secteurs libres) et les "#"
(secteurs utilisés). De plus 3
types d'erreurs peuvent ètre
détectés et affichés:
- les secteurs
marqués dans la bit-map mais non utilisés par un
fichier sont notés par un "A" inverse.
- les secteurs
utilisés par un fichier mais non notés sont
affichés par "U" inverse. Dans ce cas, certaines informations
du
fichier pourront ètre effacées par les prochaines
sauvegardes. La seule solution consiste à ne plus utiliser la
diquette pour faire des sauvegardes et à copier les fichiers
sur
une nouvelle disquette avec l'utilitaire FID de la
disquette DOS 3.3 MASTER.
- les secteurs
alloués à plusieurs fichiers en mème temps sont
notés par "2" inverse (2 fichiers en mèlme temps) ou "3",
etc.
Ceci
signifie qu'un fichier est écrit par dessus un autre. Dans
ce
cas, copiez les fichiers sur une autre disquette avec
l'utilitaire FID de la disquette DOS 3.3 MASTER.
Oter le DOS du disque:
En tapant 'R',
vous otez le DOS du disque et libérez ainsi 32
secteurs pour sauvegarder vos fichiers. Ces 32
secteurs appartiennent
aux pistes $1 et $2. On peut également
libérer la piste $0, mais vous
ne pourrez sauver de fichier sur cette piste,
mème si elle est
déclarée libre.
La carte
d'occupation est affichée, en tapant ESPACE, le DOS est
oté, la VTOC est remise à jour
et la carte d'occupation est réaffichée
(avec les pistes $1 et $2 libres !)
UN-DELETE un fichier:
En tapant 'U'
vous pourrez récupérer un fichier préalablement
effacé sous réserve qu'aucune
sauvegarde n'ait été effectuée depuis
l'effacement du fichier. Tapez ESPACE pour
revenir au menu.
Trier le catalogue:
Tapez 'A' pour
trier le catalogue puis tapez ESPACE pour
conserver ce catalogue trié sur
disquette.
Coder un fichier:
Après
avoir tapé 'E' et donné le nom du fichier à coder,
le
catalogue est lu pour vérifier la
présence du fichier et on vous
demande un mot de passe. Celui-ci n'est pas
affiché et on vous
demandera de le taper une deuxième fois
pour confirmer. Ce mot de
passe sert à coder le fichier; ne
l'oubliez pas: c'est le seul moyen
de décrypter le fichier ! Si vous le
perdez, votre fichier ne pourra
plus jamais ètre décodé.
Décoder un fichier
En tapant 'D'
vous décoderez un fichier préalablement codé. Cette
fonction est la symétrique de la
précédente. Si vous ne donnez pas le
mot de passe ayant servi à coder le
fichier, vous obtiendrez un
résultat curieux !
Notez que vous
pouvez coder un fichier deux fois de suite. Par
exemple une fois avec le mot de passe "LOCK"
puis avec le mot de passe
"SMITH", le décodage se fera en ordre
inverse: d'abord avec "SMITH"
puis "LOCK".
Faites une copie
de sécurité des fichiers cryptés: en effet toute
tentative de décryptage avec un mauvais
mot de passe va coder une fois
de plus le fichier. Pour décoder un
fichier altéré par une tentaive de
décodage erronée, il faut
d'abord recoder le fichier avec le mème mot
de passe (et réciproquement).
ADVANCED DISK RECOVERY:
Lorsque des
erreurs de type I/O se produisent sur votre
disquette, il est temps de procéder
à une analyse de celle-ci. En
effet, il se peut que votre diquette a
été écrite avec un drive
défectueux.
Locksmith
Advanced Disk Recovery (ADR) permet de récupérer les
informations écrites sur un disque et
que vous ne pouvez plus
reprendre pour une des raisons suivantes:
- piste mal alignée
- vitesse de rotation du lecteur non conforme
- décentrage de la disquette
Un mauvais
alignement de la tète de lecture est un problème qui
ne pourra qu'empirer avec le temps pusi qu'il
est lié à l'usure du
mécanisme du drive.
Le
réalignement de la tète de lecture ne peut se faire que
par un
technicien compétent. Cependant voici
les signes avant-coureur d'une
telle situation: une disquette écrite
sur un drive ne peut ètre lue
par un autre lecteur. Un décalage de
1/4 de piste est suffisant pour
produire une erreur, spécialement sur
les pistes centrales (pistes
$20, $21, $22) où la densité des
informations est plus importante.
Les
problèmes de décentrage (courants sur les vieux lecteurs
où
sur les disquettes sans anneau central de
renforcement) sont
imprévisibles et très graves.
Lorsque vous fermez la porte du drive,
le sytème d'entrainement descend au
centre de la disquette. Si
celle-ci est mal centrée, le
sytème la repositionne correctement. Mais
il arrive que la disquette reste mal
positionnée: lors de la lecture,
vous entendrez un bruit d'enfer; il suffit
alors d'ouvrir et de
refermer la porte du lecteur pour que la
disquette se repositionne
correctement. Cependant, si cette erreur de
positionnement se fait
lors du formatage ou de l'écriture, les
données seront écrites avec un
disque mal centré et elles ne pourront
ètre relues lorsque le disque
sera positionné correctement.
L'écriture avec un lecteur tournant trop vite va faire que la fin
d'un secteur va mordre sur le champ adresse.
Donc le champ données est
correct mais la disparition du champ adresse
causera une erreur I/O
lors de la lecture.
Locksmith
Advanced Disk Recovery va permettre de relire une
disquette avec les pistes
mal-alignées, avec un mauvais centrage ou
une vitesse non conforme. Les données
seront alors écrites sur un
disque vierge préalablement
formatté.
Indiquez les
disques source et destination ainsi que
l'intervalle à recopier (normalement
$00 à $22) et Locksmith Advanced
Disk Recovery va lire le disque abimé.
si vous voulez simplement voir
si LS peut lire le disque altéré
sans ré-écrire les informations sur
un dique vierge, tapez 0 pour le n° du
lecteur destination. Les pistes
sont lues 6 par 6; la ligne du haut affiche le
résultat du processus
et la partie inférieure de
l'écran affiche les secteurs lus (dans
l'ordre naturel c'est à dire
(0,7,E,6,D,...). Voici ce que LS va
indiquer en face de chaque n° de secteur:
- (.) lecture correcte sur l'original
- (A inverse) prologue adresse non
trouvé
- (D inverse) prologue adresse trouvé,
mais prologue donné non lu
- (+) lecture effectuée sur le 1/4 ou
1/2 piste supérieure
- (-) lecture effectuée sur le 1/4 ou
1/2 piste inférieure
- (;) indique qu'il manque un champ adresse,
mais que le problème est
corrigé
Remarquez que
seuls les messages A et D inverse signifient que la
lecture a été impossible.
Voici un exemple
de disquette décentrée dont les données ont
été
relues par LS:
DSK RECOVER
.00
.25
.50
.75
HEX 000000000000000011111111111111110000
TRK 0123456789ABCDEF0123456789ABCDEF0123
0++--.+.-.+.-+.-.+.-.+.--+.--+.--+.-0
7+.--++--.+-.+.-++--.+.-.+.--+.-.+.-7
E+.-.+.-.++-.+-.+.--.+--.+.-.+--.+--E
6+.-.+.-.+.-.+-.+.-.+.--.+--..--.+--6
D+--.+.-.+.-+.-.+.-.+.-.+.--..--+.--D
5.--++--++.-+.-++--.+.-.+.-.+.-.+.--5
C.-.+.-.++--+.-+.--.+--.+.-.+--.+.-.C
4.-.+.-.+.-.+-.+.-.+.--.+--.+--.+--.4
BD-++.-.+.-.+-.+.-.+.-.+.--.+--+.--+B
3A.++--++.-..-.+--.+.-.+.-.+.-.+.--+3
AA.+.-.++--+.-+.--+.--.+.-.+.-.+--.+A
2A.+.-.+.-.+.-+.-.+.--+.--.+.-..--.+2
9.++.-.+.-.+-.+.-.+.-.+.--+.-.+.--.+9
1.++--++.-.+-.+--.+.-.+.-.+.-.+.-.+.1
8+.+-.++--++-.+-.+.--.+.-.+.-.+--.+.8
F.+.-.+.-.+.-+.-.+.--+.--.+--+.--.+-F
Il arrive qu'en
relisant un disque décentré, certaines données
situées sur la piste 0 ne soient pas
récupérables. Ceci provient du
fait qu'il faudrait lire en dessous de la
piste 0, et que c'est
physiquement impossible. En
général cela ne pose pas de problème,
puisque cette piste contient le DOS.
TEST DE VITESSE:
Avec 'S' vous
passez en mesure de vitesse de rotation du lecteur.
Il faut indiquer à quelle vitesse vous
voulez effectuer le test: la
première est 300 RPM. C'est la vitesse
normale recommandée par le
fabriquant.
Le second choix
sert à calibrer votre lecteur à sa vitesse
optimale: c'est à dire à une
vitesse plus petite que la normale (à
utiliser pour les copies). Avec cette vitesse,
vous ètes sur de copier
toute la piste de l'original
indépendamment du drive ayant servi à la
créer.
La
troisième option sert à calibrer votre lecteur à
la mème
vitesse que l'original. Vous devrez
insérer l'original pour que LS
détermine la vitesse à laquelle
les données ont été enregistrées.
Ensuite vous aurez trois possibilités
d'affichage des résultats.
Normallement vous prendrez FINE ADJUST. Les
deux autres options ne
sont utilisées que pour les diques dont
les vitesses sont tellement
éloignées de la normale qu'on ne
pourrait lire le résultat en FINE
ADJUST. Ensuite indiquez le nombre de fois que
la vitesse sera
controlée avant que le résultat
soit affiché. En principe un test par
affichage suffit. Lorsque cela est fait, on
vous demande de mettre un
disque vierge dans le lecteur à tester
et de presser ESPACE. Alors LS
va écrire/lire des données sur
la piste 0 (c'est pour cela qu'on
utilise un disque vierge: la piste 0 sera en
effet détruite).
EFFACER LES DIQUES:
Avec 'E' on
efface tout ou partie d'une disquette. Le message de
mise en garde suivant est affiché:
THIS UTILITY DESTROYS DATA ON THE TARGET DISK.
Lorsque le
disque est effacé, les E sur la ligne du haut
indiquent quelles sont les pistes
effacées.
Certaines
protections consistent à détecter si une piste (ou
plusieurs) sont vierges. La seule façon
de reproduire la protection
est donc d'effacer la (les) piste (s)
précédemment effacées.
INSPECTOR/WATSON:
Si vous avez
chargé Inspector/Watson en carte RAM en tapant 'L'
dans le menu principal, il suffit de booter la
disquette contenant ces
utilitaires pour qu'ils soient chargés
en RAM. Vous y accédez ensuite
en tapant I à partir de Locksmith.
Les programmes
Inspector/Watson fonctionnent alors normalement à
une exception près: lorsque
Inspector/Watson redonnent le controle à
LS, le buffer par défaut sera $4000 au
lieu de $0800, car $800 est
utilisé par LS.
Si vous n'avez
que Inspector, le controle sera passé à cet
utilitaire. Si vous avez Inspector ET Watson,
le controle sera passé à
Watson. Toutes les commandes sont alors
disponibles sauf ESC. Pour
quitter Inspector/Watson tapez 'Ctrl C' et
voius repassez à LS.
Si
Inspector/Watson est en RAM du slot 0, ESC permet également de
revenir à LS. Si Inspector/Watson est
en ROM, vous devrez utiliser
'Ctrl C' pour quitter.
Pour de plus
amples informations sur Inspector/Watson, veuillez
consulter leurs manuels respectifs.
FORMAT DES PISTES (13 et 16 secteurs):
Sur Apple II, il
y a plusieurs systèmes de formatages. Par
exemple, on peut utiliser 13 secteurs par
piste ou, sur les modèles
récents utilisant des algotrithmes
perfectionnés, on peut avoir 16
secteurs par piste.
Ces deux formats
sont fondamentalements identiques, seule la
manière de coder les informations est
différente. De plus les
Prologues adresse diffèrent de
manière à identifier le système
utilisé. Puisque le format 13 secteurs
est tombé en désuétude, nous
perlerons du format 16 secteurs et ensuite
nous pointerons les
différences entre les deux
sytèmes.
Une piste est
formée de secteurs (16 ou 13): chaque secteur
contient un champ adresse et un champ
données. Le champ adresse
contient des informations sur le champ
données qui le suit. Le schamps
sont séparés par des 'vides'
remplis d'octets de synchro. Ces octets
sont des nibbles spéciaux qui obligent
la carte controleur à se
synchroniser, rendant possible la lecture du
champ suivant.
Les champs
adresse et données contiennent chacun un Prologue, des
informations et un Epilogue. Les Prologues du
champ adresse sont D5 AA
96 (ou D5 AA B5 en 13 secteurs), suivis de 4
informations codées en
double nibbles. Deux nibbles
consécutifs indiquent le n° de volume, le
n° de piste, le n° de secteur et le
checksum. Ce checksum est un OU
exclusif des trois autres données. Vous
trouverez une table dans ce
manuel pour convertir ces doubles nibbles en
les valeurs qu'ils
représentent. Ensuite vient l'Epilogue
du champ adresse: DE AA.
Après les
octets de synchro, on trouve le champ de données: il y
a un prologue (D5 AA AD), suivi de 342 nibbles
(ou 410, en format 13
secteurs). Ces nibbles sont codés
suivant une table 6 bits (voir la
table "Data Field Nibble Encoding"). En 13
secteurs on utilise une
table 5-bits. après les données
il y a un octet de checksum puis
l'épilogue DE AA.
Certaines
protections sont basées sur de smodifications des
Prologues et Epilogues.
ANALYSEUR DE BITS DE SYNCHRO (Framing Bit
Analyzer):
Les bits de
synchro sont les bits 0 qui se trouvent entre les
octets de données sur le disque. Ces
nibbles sont appelés octets de
synchronisation. Les disques 16 secteurs
utilisent une synchro en
10-bits ou 2 framing bits. L'analyse
statistique utilise un
décomptage précis du temps pour
décoder les données. On appelle
l'analyseur par '$' à partir de
l'éditeur de disque et en lisant une
piste.
Exemple: Passez
en mode Editeur de Disque et tapez CTRL-R pour
lire une piste. Placez le pointeur '(' au
début du champ adresse (D5
AA 96). Descendez le curseur d'environ
10 lignes et placez le
pointeur de fin ')'. Ensuite reculez le
curseur sur DE AA après le
début du champ adresse.
L'analyseur
utilise les données à partir du pointeur de départ
jusqu'à l'octet immédiatement
avant le curseur comme une 'clef'. Si
vous mettez le '(' avant l'octet D5 et le
curseur sur l'octet DE, la
longueur de la clef sera de $0B octets.
Passez dans
l'analyseur en tapant '$'. L'affichage montre les
données analysées à
gauche et les statistiques à droite.
Les commandes
suivantes sont alors opérantes:
SPACE fait une
pause, vous pouvez examiner les statistiques
RETURN pour
recommencer
< et >
font défiler
T passage des
statistiques de timing aux nibbles
A droite de l'écran, vous lirez une
information du type:
R=0007
F=07
??
-- ++
0 02
1 00 25
2 25 03
3 02 00
4 01 01
5 00 18
6 0B 00
7 00 07
8 03
La valeur R est le nombre de lectures
effectuées; F= est le nombre de
lectures où la 'clef' des
données a été trouvée. Comme le buffer est
limité, si on donne une grande zone de
données il se peut que le
buffer ne contienne pas totalement les
données spécifiées. Le tableau
représente les différences entre
la donnée lue et les valeurs
"idéales" 10, 20, 30, etc. Ces
différences sont comprises entre -7 et
+7, avec 00 comme valeur idéale. Par
exemple, dans le tableau
précédent, le décompte
pour +1 est 25 (hex). Cela signifie qu'il y a
25 fois des nibbles avec des valeurs de timing
plus grand de 1 par
rapport aux valeurs idéales (11, 21,
31, etc.). Le décompte pour "8"
est 03; cela signifie qu'il y 3 fois des
valeurs de timing situées
juste au milieu des valeurs idéales.
Cela indique qu'il faut
poursuivre l'analyse. Le "??" est
affiché lorsque les valeurs pour les
décomptes +- 6,7, et 8 sont
différents de zéro et indiquent donc qu'il
faut plus d'informations.
Lorsque les
octets sont affichés à gauche de l'écran,
l'état
inverse/normal des octets indique le nombre de
framing bits après
l'octet. Le mode normal signifie qu'il n'y a
pas de framing bit, les
deux chiffres en inverse pour 2 framing bits
et un chiffre en inverse
pour 1 framing bit. Le mode flash signifie
qu'il y a au moins 3
framing bits.
Si l'octet de
donnée à le bit fort off, cela veut dire qu'au moins
une lecture s'est produite avec la
donnée qui ne correspondait pas
après la clef. Cela provient parfois
d'une perte de la synchro lors de
la lecture ou par une clef trop petite ce qui
fait que plusieurs
parties de la piste sont analysées et
non une seule.
`LOAD RAM CARD:
En tapant L
à partir du menu principal, on charge les pistes $12,
$13, et $14 aux adresses $D000-$FFFF de la
carte RAM située dans le
slot 0 (ou les 16K supérieurs des //e
et //c).
On peut donc
charger Inspector ou Watson par ce procédé:
1. Booter Inspector ou Watson.
2. Entrer dans Inspector ou
Watson, mettre le disque LS et taper:
B D 0 <return>
T 1 2 <return>
CTRL-W
3. taper CTRL-I 15 fois.
Ceci va écrire Inspector ou Watson sur
la disquette LS.
Normalement, LS
contient le BASIC INTEGER et le Moniteur sur les
pistes $13 et $14. Inspector/Watson sera
sur la piste $12.
LES PARAMETRES:
En tapant '*'
vous afficherez et modifierez certains paramètres
en utilisant le Langage de Programmation LS.
Pour afficher un
paramètre, tapez "SHOW" suivi du nom du
paramètre. Par exemple, pour
lister le contenu du paramètre SLOT,
tapez SHOW SLOT. Pour changer une
valeur, tapez le nom du paramètre suivi
de la nouvelle valeur: exemple
SLOT 4. en cas d'erreur, LS va émettre
un bip et refusera la
modification.
Voici un patch
très pratique pour lire un disque où les secteurs
sont normalement non lisibles. Ce patch de la
RWTS va empècher le
recalibrage du bras après une erreur
I/O: BDCC 4C C1 BD. Pour remettre
la valeur normale, taper BDCC 10 F3 AD. Pour
remettre les valeurs
originales aux paramètres, rebootez
votre disquette LS.
Copie avec des paramètres particuliers:
La fonction Text
Editeur permet de sélectionner un fichier de
paramètre pour faire une copie. Pour
cela tapez 'N' pour NEW (effacer
le buffer) puis 'B' pour copier (Backup).
Si le disque de
paramètre n'est pas dans le lecteur, un message
vous invite à le mettre et la liste des
fichiers disponibles est
affichée. Déplacez la barre
lumineuse avec les flèches pour faire
votre choix (ou CTRL-K, CTRL-J). CTRL-N
et CTRL-P permettent de
changer de page. Vous pouvez aussi taper la
première lettre du nom du
fichier pour vous déplacer rapidement
dans la liste. Tapez RETURN pour
confirmer la sélection.
Charger un fichier de paramètres:
Tapez 'L' pour
charger un fichier de paramètres et suivez les
indications pour effectuer la copie.
Sauver un fichier de paramètres:
'S' va sauver le
fichier sur la disquette de paramètres. Vous
pouvez créer votre propre fichier ou
transférer un fichier d'un disque
sur un autre.
New - créer un espace de travail vierge:
'N' efface
l'Editeur de Texte et permet de rentrer les
paramètres.
l'Editeur de Texte:
Pour entrer dans
l'Editeur de Texte, tapez 'E'. Vous quittez
l'éditeur avec ESC . Avec 'N' vous
effacez la zone de travail pour
saisir un autre fichier.
L'Editeur de
Texte est un éditeur avec numérotation des lignes:
elles apparaissent automatiquement en inverse
à gauche de l'écran.
Elles sont exprimées en hexa et celles
qui font référence à une
portion du fichier avec ".I" sont
exprimées en langage LPL (Locksmith
Programming Language).
Une ligne est
constituée de 38 cractères plus les deux caratères
pour la numérotation. Si une
entrée doit tenir sur plusieurs lignes,
la première ligne doit se terminer par
le signe -
Il y a deux
curseurs dans l'Editeur: si le n° de la ligne
clignote, le curseur est sur la ligne. Si un
caractère clignote, le
curseur est à cet endroit. On peut
insérer des caractères à partir de
la position du curseur avec CTRL-I, et en
effacer avec CTRL-D.
Utilisez 'X'
pour vérifier la syntaxe de votre texte une fois que
vous avez terminé la saisie.
RAM CARD UTILITIES:
Avec 'R' on
sélectionne les utilitaires RAM card. Ils sont très
documentés et on dispose d'un test de
la RAM card avec copie de la RAM
vers la mémoire principale (2000-5FFF)
et réciproquement.
2000-2FFF RAM card pages D0-DF alternate
3000-3FFF "
" D0-DF
4000-4FFF "
" E0-EF
5000-5FFF "
" F0-FF
SCAN DISK:
'Q' permet de
déterminer quelles sont les pistes réellement
utilisées sur le dique à
dupliquer. Cette option cherche les zones du
disque contenant des données.
L'affichage se fait en HGR et se lit du
bas vers le haut. La première fois que
vous utilisez cet utilitaire,
prenez un disque DOS 3.3 normal pour vous
familiariser avec
l'affichage d'un disque normal. Les
séries de points sous chaque piste
correspondent aux octets de synchro entre
chaque secteur. Normalement
sur un disque 16 secteurs, il doit y avoir 16
ou 17 points, un disque
13 secteurs en a 13 ou 14. Sur un disque 16
secteurs, il y a un point
plus gros que les autres: c'est ce qui
correspond aux octets de
synchro de la piste 0. Vous noterez le
décalage des points d'une piste
à l'autre: ceci est du au temps mis par
la tète de lecture pour passer
d'une piste à l'autre.
Ensuite, essayez
de scanner de la piste .5 à 22.5 par pas de 1.
Vous verrez de longues lignes blanches sans
forme particulière: cela
veut dire qu'il n'y a rien sur ces pistes.
Les pistes en
spirales (1/4 de pistes) affichent des lignes
blanches séparées par des zones
noires.
LE BOOT TRACER:
Le Boot Tracer
s'adresse aux utilisateurs chevronnés. Il simule
le fonctionnement du processeur 6502 avec une
vitesse permettant de
suivre le déroulement des
opérations lors du boot d'une disquette
normale ou protégée.
Vous appelez
cette fonction avec 'A'; il faut une carte RAM d'au
moins 16K (les 16K supérieurs des //e
et //c conviennent
parfaitement). LS vous demande le slot
où se situe votre carte RAM:
normalement vous répondez 0.
L'écran
est effacé et une ligne en inverse apparait en haut de
l'écran. Tapez RESET pour entrer dans
le debugger et bootez un disque
par 6CTRL-P. Si le disque boote dans la carte
RAM, cela va détruire le
fonctionnement du debugger.
La ligne d'informations:
La ligne du haut
affiche normalement:
FA62
CLD A=00 X=00 Y=00 P=34 S=FD
Les 4 premiers
caractères sont le contenu de PC avec
l'instruction à exécuter;
ensuite vous trouvez les registres A, X, et
Y puis le registre d'état P et la
valeur du pointeur de pile.
Tapez alors 'R'
puis une touche de A à Z: la barre d'affichage
sera placé à un autre endroit de
l'écran (avec Y et Z on ote
l'affichage de l'écran).
Le mode Attente:
Le simulateur
est en mode ATTENTE. Le programme fonctionne et
s'est interrompu à l'adresse
indiquée.
Tapez CTRL-C
pour rendre opérantes les instructions du 65C02 si
vous possédez un //e kitté ou un
//c.
La touche 'S'
permet de lancer l'exécution du programme sous
controle du débugger. L'affichage va
changer rapidement lors de
l'exécution du boot. Le "beep" que vous
entendrez est différent du bip
normal.
Pour stopper le
simulateur, tapez CTRL-Z et vous passez en mode
ATTENTE. On peut redéfinir la
touche d'arrèt (par ex si CTRL-Z est
utilisé par votre programme). Pour
cela, stopez avec CTRL-Z, puis
tapez CTRL-X suivi de la touche qui servira
désormais de commande
d'interruption.
Passez en mode
ATTENTE et tapez ESPACE pour faire avancer le
programme pas à pas. Un "+" ou un "-"
apparait après les branchements
conditionnels selon qu'ils ont
été réussis ou pas.
En mode ATTENTE,
CTRL-Y vous fait passer en mode moniteur et vous
pouvez désassembler le programme avec
'L'. Vous revenez dans le
simulateur en tapant alors CTRL-Y
<RETURN>. Avant de passer en mode
moniteur, le simulateur sauvegarde les pages
00 à 07 dans la carte
RAM. Lorsque vous reviendrez dans le
simulateur, il re-transferrera
ces pages dans la mémoire principale
pour poursuivre correctement le
déroulement du programme.
Les autres
commandes diponibles en mode ATTENTE:
T - Trace jusqu'à ce qu'un JSR ou RTS soit rencontré
CTRL-R - simule un RESET: le
PC contient le contenu de $FFFC.
CTRL-I - simule une
interruption IRQ
CTRL-F - déconnecte
les interruptions IRQ
CTRL-N - simule une
interruption NMI
CTRL-Q - quitter le
simulateur et passer en moniteur
1 - mode single-cycle: utilisez ESPACE pour effectuer un cycle
du 6502 au lieu de l'instruction complète.
0 - mode instruction: valide uniquement si une instruction est
effectuée complètement
B - connecte/déconnecte le beep
C - connecte/déconnecte le clic
CTRL-C -
connecte/déconnecte le 65C02
K - place la valeur de la prochaine touche pressée dans le
buffer clavier. Lorsqu'une instruction lit le clavier,
cette commande permet de rentrer une commande clavier sans
passer en mode EXECUTION.
ESC -
passer au menu du simulateur
Les fenètres du simulateur:
Tapez ESC
à partir du mode ATTENTE: une fenètre est affichée
et
le curseur est positionné en haut
à gauche.
Utilisez RETURN
et les flèches DROITE et GAUCHE pour vous
déplacer dans la fenètre.
Positionnez le curseur sur une valeur à
changer et tapez la nouvelle valeur. Vous
revenez en mode ATTENTE en
tapant de nouveau ESC; à noter que
CTRL-C annule les modifications
faites.
Sur la ligne du
haut de la fenètre le PC est décalé à
droite et
aucune instruction n'est
désassemblée. Le nombre à gauche sert à
lire,
écrire et éditer un octet de la
mémoire. Tapez une valeur suivie de
'R' pour lire, 'W' pour écrire et 'E'
pour éditer.
Pour changer le
mode d'affichage (texte, graphique, haute
résolution ou basse résolution,
page 1 ou 2, plein écran ou mixte),
tapez l'adresse de commutation ($C050-$C057)
puis 'R'. Lorsque vous
débuggez un programme utilisant le mode
graphique, placez la ligne
d'information avec U, V, W, ou X et passez en
mode mixte (4 lignes en
bas de l'écran).
Pour
éditer, tapez 'E' et le contenu de la mémoire est
affiché en
haxa et ASCII. Déplacez le curseur avec
les flèches et tapez RETURN.
La seconde ligne
de la fenètre contient:
RU=65 0=I 1=I 2=I 3=S 4=I 5=I 6=D 7=I
"RU=65" (decimal 101) est la valeur de mise
à jour du registre, c'est
le nombre d'instructions simulées avant
que PC et les registres soient
affichés à l'écran en
mode EXECUTION. Si ce chiffre est petit, les
registres sont mis à jour après
chaque instruction. A ce moment le
simulateur fonctionne beaucoup plus lentement
du fait du temps mis
pour les affichages fréquents.
Désigner les Slots:
Le reste de la
seconde ligne affiche les n° de slots et leurs
utilisations. Comme le simulateur est en RAM
(indiqué par 'S' comme
SYSTEM dans l'affichage des slots), il doit
savoir où se trouvent les
autres cartes pour les utiliser correctement.
Au départ, les slots
sont marqués 'I' (INVALID). tout
accès à un de ces slots invalide va
interrompre le simulateur et vous fera passer
en mode ATTENTE. Les
valeurs de désignation des slots sont:
S - system (simulateur)
I - invalid
D - carte controleur de disquette
A - RAM card de 16K ou 32K
B - RAM card de 64K ou plus
F - carte Firmware ou carte ROM
T - transparent
Si la désignation est T, toute commande
pour le périphérique connecté
à ce slot se fera sans conversion. Le
mode TRANSPARENT sera utilisé
pour:
Les cartes ROM
et RAM sélectionnant les bancs entre $D000-$FFFF,
qui est utilisé par le simulateur.
Les
périphériques où le temps d'accès est
critique (ex: les
lectaurs de disque).
Les
périphériques utilisant des accès mémoire
directs pour
modifer les contenus de $0000-$07FF, puisque
cette zone est utilisée
par le simulateur.
Comparaison d'Adresse et Stop:
La
troisième ligne commence par "PC": c'est la Comparaison
d'Adresse et Stop. On peut mettre
jusqu'à 4 valeurs de comparaisons.
Si le PC contient une des valeurs
indiquées, le simulateur effectue un
arrèt (STOP) et passe en mode ATTENTE.
De plus, une zone de
comparaison peut ètre indiquée.
Pour spécifier les valeurs de
compraison ou la zone de comparaison,
modifier la valeur (0 au
départ) pour indiquer le nombre
d'adresses et tapez ces adresses. Si
vous remettez 0, vous annulez les comparaisons.
La ligne "MR"
est la ligne de 'comparaison avec la mémoire lors
de la lecture pour stopper'. On peut aussi
spécifier 4 valeurs et 1
zone. Lorsque le simulateur lit une de ces
adresses, soit par
adressage direct, indirect ou par la pile, il
passe en mode ATTENTE.
La ligne "MW"
est la ligne de 'comparaison avec la mémoire lors
de l'écriture pour stopper'. Elle
fonctionne comme la ligne 'MR'.
Changement du contenu du PC:
La zone "PCSW"
de la fenètre permet de faire des échanges de
valeur dans le PC. On peut spécifier 4
paires de valeurs. Si le PC
contient la première valeur d'une
paire, le simulateur lui met
immédiatement la deuxième et
l'exécution se poursuit. Ceci est
pratique pour sauter les boucles non
indispensables (ex les boucles de
ralentissement). Au départ, 3 paires de
valeurs sont données:
FCA8 FCB3 - routine d'attente moniteur
BA00 BA10 - délai de calibrage du bras en DOS 3.3
BD9E BDAB - délai de mise en route du moteur en DOS 3.3
Tableau des valeurs du PC:
Les 8
dernières lignes contiennent les 64 dernières valeurs du
PC.
Les interruptions du programme:
On interrompt le
déroulement du programme suivi par le simulateur
et on passe en mode ATTENTE quand une des
conditions suivantes est
remplie:
- la touche STOP est tapée
- Un opcode non valide est rencontré (il est
désassemblé
sous la forme ???)
- un JSR ou un RTS est rencontré alors qu'on est en mode "T"
(trace)
- lecture ou écriture sur un périphérique dont le
slot est
marqué "I" (invalide)
- une comparaison avec une valeur de STOP pour PC, MR, ou MW
est rencontrée en cours d'exécution
- on essai d'écrire sur disquette
- on essaie d'accèder à certaines routines d'erreurs (en
particulier $C060 et $C068 pour la lecture et l'écriture)
Remarques diverses:
La lecture de
disquette se fait en lisant une piste complète puis
en passant les octets un à un au
simulateur. Lorsque le simulateur a
besoin d'un octet, le premier octet du buffer
est envoyé. Comme le
simulateur n'a pas besoin que le bit de poids
fort soit analysé, les
temps de framing bit ne sont pas
présevés. De plus la piste lue n'est
pas synchronisée avec les autres
pistes. Et enfin on ne peut écrire
sur disquette.
Lorqu'on lit une
diquette, la piste lue est conservée en RAM tant
qu'une autre piste (d'un autre rang) n'est pas
lue ou que le slot
n'est pas changé. Ce n'est que si cette
image de la piste n'est pas
valide que la disquette est lue une
deuxième fois. Cependant, si
l'utilisateur effectue un CATALOG sous
controle du debugger, puis
qu'il change la disquette et qu'il fasse un
deuxième CATALOG, le
contenu du catalogue de la première
disquette sera affiché car cette
opération n'a pas obligé la
tète à lire une autre piste. Pour vider le
buffer, changez la désignation du slot
en mettant 'I' puis 'D' lorsque
le simulateur est en fonction
Le simulateur
est doté d'une analyse de secteur: c'est à dire que
si le programme lit des octets et qu'il
effectue une comparaison avec
$D5, le simulateur trouve le prochain $D5 dans
le buffer et le
transmet au programme, au lieu d'attendre que
tous les octets soient
lus en attendant de trouver un $D5.
Les adresses du
joystick ($C064-$C067 et $C06C-$C06F) sont
simulées correctement si l'instruction
utilisée est semblable à la
routine moniteur en $FB1E ($PREAD). Si ce
n'est pas le cas, on passe
en mode ATTENTE.
Une
dernière remarque: le simulateur RALENTI l'exécution du
programme. Les 30 secondes de boot d'un disque
vont durer pas loin de
40 minutes avec le débugger ! Cependant
les informations ainsi
obtenues sont parfois précieuses ! Il
faut savoir ètre patient !
LE LANGAGE DE PROGRAMMATION LOCKSMITH:
Ce langage LPL
est un outil permettant de donner des directives à
Locksmith. Ainsi vous pourrez définir
des procédures de copie très
particulières, rechercher des suites
d'octets, restaurer des disques
endommagés ...etc. Les commandes
LPL sont tapées au clavier et
stockées dans un fichier sur disque.
La commande .I (Include):
Les fichiers
sont sauvés avec un nom rappelant leur utilité. par
exemple, si un fichier de paramètres
s'appelle "BRODERBUND", on peut
raisonnablement supposer que cela concerne la
copie de softs de cette
maison d'édition. Pour utiliser ce
fichier, tapez la commande
.I BRODBUND
Le .I doit ètre en début de
ligne, puis on doit mettre un espace et
enfin le nom du fichier. Pour
récupérer une partie d'un fichier,
indiquez les lignes de départ et de fin:
.I TESTFILE,4-1F
Dans cet exemple, on récupère la
partie du fichier TESTFILE comprise
entre les lignes 4 et 1F. On peut mettre
autant de .I qu'on le désire;
la seule limite étant qu'on ne peut
avoir plus de $FF lignes dans le
fichier.
Chaque ligne du
fichier LPL est numérotée en hexa (et affichée en
inverse). Ces numéros ne servent
qu'à référencer les lignes . Chaque
ligne ne peut excéder 38
caractères. Voici un exemple de ligne LPL:
FIND D5 AA 96
Ceci était une commande simple. si on
met plusieurs commandes, on les
sépare avec deux points:
SLOT 6 : IN.DRIVE 1 : OUT.DRIVE 2
Les espaces avant et après les : ne
sont pas indispensables. Si une
ligne dépasse les 38 caractères,
on peut la continuer sur la ligne
suivante en la terminant par "-"
DEPOSIT (DF) (F4) (DF) (D4) (FF) -
D5 AA 96 AA AA
On peut mettre des commentaires en les faisant
précéder d'un
astérisque (*).
* SET SLOT NUMBER : SLOT 6
SLOT 6 : * SET SLOT NUMBER
Ces deux lignes sont équivalentes: les
deux points séparateurs
indiquent que ce qui suit est une commande.
Les instructions LPL:
On utilise des
codes pour représenter des variables, des
constantes, des noms de paramètres ou
des routines. On sépare ces
codes par des espaces. Il y a 4
catégories de codes:
les commentaires
les instructions
les désignations
les commandes
On peut précéder une instruction
par une désignation de label. Ceci
sert à effectuer les branchements.
LABEL READ.TRACK.AGAIN :
GOTO READ.TRACK.AGAIN
LABEL A2:ERROR:PRT "LENGTH ERROR"
GOTO A2.ERROR
Les constantes:
Voci les
différents types de constantes utilisés en LPL:
un octet en Hexa:
D5
6
00
(FF) un octet entre parenthèse indique un octet de synchro
plusieurs octets
en hexa:
(FF) D5 AA 96
00 10 20 30 40 50 60 70 80
deux octets en
hexa:
1A70 ce sont en général de sadresses ou des longueurs.
des valeurs de
pistes en hexa:
12.5
1A.75
11.0
0.
Ces valeurs contiennent un point pour indiquer qu'il s'agit
de pistes.
un
caractère
"X"
'X' on utilise les guillemets ou l'apostrophe
plusieurs
caratères:
"DON'T FORGET TO COVER NOTCH."
Si un des guillemets fait partie du message, utilisez
l'autre pour la délimitation de la
chaine.
on peut
mélanger les valeurs hexa et ASCII:
89 'GRD' 8D
les valeurs
spéciales:
? - représente une valeur dont on ne tient pas compte (dans
une séquence de recherche par exemple)
les indicateurs
YES
NO
ON
OFF
Equivalents à 0-FF, mais bien plsu 'parlants'
Les types de variables:
Les variables
sont de différents types selon leur usage.
Variables pour
un octet:
SLOT
IN.DRIVE
OUT.DRIVE
Variables pour
plusierurs octets/caractères:
GR.CHARS
PAT1
SYNC.PAT
Les variables Pattern/chaine sont de longueur variable et
ont un octet de longueur en début.
Cependant cette longueur ne peut
excéder 15 (decimal).
Variables pour
plusieurs octets:
RD.NIB.TRANS
SEC.TRANS
SELECT.TAB
Ces variables font référence à des zones de
plusieurs octets
(par exemple des tables de conversion).
Si vous devez utiliser un seul octet dans une
variable faite pour
plusieurs octets, faites
précéder la référence dans la table par un
plus (+)
NIB.TRANS +2F
Les pointeurs
à deux octets
START
END
TRK.LEN
CURSOR
PTR.W
PTR.X
PTR.Y
PTR.Z
ces pointeurs peuvent également représenter des longueurs
les variables de
pistes
BEGIN.TRK
END.TRK
INCR.TRK
SYNC.TRK
on peut utiliser des valeurs entières ou par 1/4, 1/2 ou 3/4
les indicateurs
SYNC
COUNT
SHOW.ADDR
ce sont des variables à un seul octet contenant un indicateur
YES/NO, ON/OFF, ou FF/0 et agissant comme des
switches pouvant ètre
testés et modifiés. Si vous
utilisez d'autres valeurs que celles
spécifiées, les résultats
seront imprévisibles.
Assignation de valeur:
Pour donner une
valeur à une variable. On peut lui donner une
valeur constante ou variable. Cependant la
variable et la constante
doivent ètre de mème type. Par
exemple, une variable pointeur ne peut
étre assignée qu'à une
autre variable pointeur.
START CURSOR - assigne à la variable START (début de la
piste
de données) la variable CURSOR
(position du curseur)
CURSOR 2040 - la variable CURSOR pointe en 2040.
SLOT 6 - la var SLOT à un octet contient 6
BEGIN.TRK 12.5 - la var de piste BEGIN.TRK contient 12.5
COUNT YES - la var indicateur contient la valeur yes.
PAT4 D5 AA 96
PAT4 PAT7 - encore deux exemples corrects
GR.CHARS 89 'GRD' - la var chaine GR.CHARS contient 4 octets:
la valeur hexa 89 (CTRL-I) suivi des valeurs
ASCII 'GRD'.
DF.HDR3 B4 : AF.HDR3 DD - le 3ème octet du prologue de
données
contient B4 (normalement AD) et le
troisème octet du prologue adresse
contient DD.
AF.TRL1.TEST IGNORE.TRL
AF.TRL2.TEST IGNORE.TRL
DF.TRL1.TEST IGNORE.TRL
DF.TRL2.TEST IGNORE.TRL - permet d'indiquer à la RWTS
d'ignorer les prologues Adresse et
Données.
AF.TRL1.TEST NORM.TRL1
DF.TRL1.TEST NORM.TRL1 - remet la RWTS avec des prologues
normaux
AF.CSUM.TEST IGNORE.CSUM
DF.CSUM.TEST IGNORE.CSUM
AF.CSUM.TEST NORM.AF.CSUM
DF.CSUM.TEST NORM.DF.CSUM - pour que la RWTS ignore ou utilise
les checksums des prologues Adresse et
Donnée
AF.HDR1 D5
AF.HDR2 AA
AF.HDR3 96
AF.TRL1 DE
AF.TRL1 AA
DF.HDR1 D5
DF.HDR2 AA
DF.HDR3 AD
DF.TRL1 DE
DF.TRL1 AA - la valeur par défaut des Epilogues et Prologues
des Adresses et Données pour la lecture.
DF.HDR1.WRT D5
DF.HDR2.WRT AA
DF.HDR3.WRT DD
DF.TRL1.WRT DE
DF.TRL2.WRT AA
DF.CSUM.SEED.WRT 00 - indique la valeur des Epilogues et
Prologues Données en ecriture. La
dernière instruction sert au calcul
du checksum pour écrire les
données.
Les Routines du LPL:
Ces routines LPL
(les algorithmes des précédentes versions) sont
accessibles par l'utilisateur. Certaines sont
complexes et nécessitent
l'emploi de plusieurs variables et d'autres ne
nécessitent qu'une ou
deux variables. Certaines routines
utilisent des paramètres
constitués de constantes ou de
pointeurs et d'autres n'ont pas besoin
de paramètres. La syntaxe exacte de ces
routines est décrite en
Appendix. Cependant nous allons en
étudier quelques unes
immédiatement. Le disque de
Paramètres contient de bons exemples
d'utilisation de ces routines.
ABORT "DATA NOT FOUND" - interrompt l'opération en cours et
revient au menu LS
PAUSE "ENTER 1,2 OR 3:" - après la frappe d'une touche, la
valeur de la touche est placée dans
KEY.IN
PRT "DISK MUST BE WRITE/ENABLED" - affiche un message à
l'écran. Si le dernier caractère
est un espace, le curseur reste sur
la mème ligne.
SHOW SLOT - affiche le contenu de la variable SLOT. Si
l'indicateur SHOW.ADDR est YES ou NO,
l'addresse de la variable SLOT
est aussi affiché.
GOTO READ.AGAIN - Branchement au label READ.AGAIN
FIND D5 AA 96 - Recherche à partir de la position du curseur
jusqu'au pointeur END de la séquence D5
AA 96.
FIND PAT4 - identique au précédent, mais la recherche se
fait
sur la chaine contenue dans PAT4.
ERROR '5' - le caractère '5' est placé sur la ligne
d'état
sous le n° de la piste
PAT4 D4 DD FF
PAT5 D5 AA 96
CHANGE PAT4 PAT5 - Remplace toutes les occurences de la
première chaine par la deuxième
chaine entre START et END.
ERASE - efface la piste sur le disque Output
FORWARD TRK.LEN
BACK TRK.LEN - Déplace le CURSEUR en avant ou en arrière
selon
la valeur comprise dans TRK.LEN. On peut aussi
coder ces routines avec
une constante sur 2 octets: FORWARD 024E ou
BACK 0042
CODE AD CUR.TRK 0A 0A 0A 0A 60 - la routine CODE est appelée,
les paramètres sont
décodés puis placés dans une zone mémoire
et le
controle est donné à une
instruction JSR.
PRT "ASCII TEXT TO PRINT" - la routine PRT affiche des
informations à l'écran. si le
dernier carctère est un espace, le
curseur reste sur la mème ligne.
Exemple:
PRT "TRACK INCREMENT IS " : SHOW INCR.TRK
Certaines routines fonctionnent
différemment selon qu'on est en mode
Nibble ou Byte. Si la dernière commande
de lecture ou d'écriture était
NREAD ou NWRITE, on passe ne mode nibble. Si
la dernière commande de
lecture ou d'écriture était
SREAD, SWRITE, TREAD ou TWRITE on passe ne
mode byte.
Les routines fonctionnant différemment
selon qu'on est en mode byte ou
nibble sont: FIND, VER, et CHANGE.
En mode nibble, une valeur nulle dans le
pattern spécifié agit comme
une valeur à ne pas tenir compte. On
peut mettre soit "?" soit "0".
En mode byte (utilisé lors de la
lecture ou de l'écriture de
secteurs), une valeur nulle est significative:
NREAD : FIND D5 00 96
On fait une lecture de nibbles de la piste, on
place le curseur sur la
première valeur D5 rencontrée,
suivie de n'importe quelle valeur et
suivi enfin de la valeur 96.
Les routines suivantes acceptent soit des
variables chaine soit des
constantes à plusieurs octets:
FIND
VER
REP
DEPOSIT
Le mode nibble ou byte peut se changer
manuellement ou en mettant
l'indicateur BYTE.MODE à YES pour le
mode byte et à NO pour le mode
nibble.
les procédures de Piste:
Une
procédure de piste est une séquence d'instructions LPL qui
seront exécutées pour chaques
pistes copiées. La procédure de piste
est définie par BEGIN.PROC et END.PROC.
La procédure est ensuite
appelée pour chaque piste copiée
par la routine appelant la procédure
de piste. Il n'y a actuellement qu'une
procédure permettant cela:
c'est COPY. La procédure en cours
est la dernière définie. Si aucune
procédure n'est définie, c'est
la procédure LPL par défaut qui sera
utilisée:
BEGIN.PROC
...
... procédure de piste A
...
END.PROC
COPY 12 18 2
BEGIN.PROC
...
... procédure de piste B
...
END.PROC
COPY 1 9 2
COPY 13 19 2
Dans cet exemple, les 2 premières
procédures de copie utilisent la
procédure de piste A, et les deux
suivantes utilisent B.
Les instructions
LPL avec les procédures de piste peuvent ètre
employées selon deux modes: nibble et
byte. Le mode nibble avec les
routines NREAD, NWRITE, NVERIFY, qui traitent
les pistes sous forme de
nibbles; et le mode secteur avec les routines
TREAD, TWRITE, TVERIFY
qui traitent les pistes sous forme de 16
secteurs séparés.
La commande COPY
s'utilise comme ceci:
COPY
<begin track> <end track> <track increment>.
Les valeurs sont stockées dans les
variables BEGIN.TRK, END.TRK, et
INCR.TRK.
Si les pistes
doivent ètre synchronisées ou si on veut utiliser
le nibble-count, mettez les variables de piste
SYNC ou COUNT à YES.
Ces variables SYNC et COUNT ne sont pas mis
à YES comme dans la
version 5.0 du LS.
Les codes d'erreur du LPL:
Pendant
l'exécution du programme LPL, des erreurs peuvent se
produire qui n'auront pas été
détectées par le syntax checking.
Lorsqu'une erreur se produit, le processus en
cours est interrompu et
le message suivant est affiché:
LPL CODE ABORTED
ERROR CODE xx
où xx est un des numéros
suivants:
01 GOTO sans LABEL correspondant
02 BEGIN.PROC rencontré alors qu'on est
déja en procédure piste
03 END.PROC rencontré alors qu'on a
déja quitté une procédure piste
04 COPY rencontré alors qu'on est en
procédure piste. La procédure
COPY fait en effet appel
à une procédure piste et ne peut donc ètre
utilisée dans une
autre procédure piste.
05 USE.DEFAULT.PROC rencontré alors
qu'on est en procédure piste.
Table de Codage des Nibbles:
La table de
transformation suivante sert à calculer les checksums
des champs données (voir le chapitre
traitant la commande D)
00:96 01:97 02:9A
03:9B
04:9D 05:9E 06:9F
07:A6
08:A7 09:AB 0A:AC
0B:AD
0C:AE 0D:AF 0E:B2
0F:B3
10:B4 11:B5 12:B6
13:B7
14:B9 15:BA 16:BB
17:BC
18:BD 19:BE 1A:BF
1B:CB
1C:CD 1D:CE 1E:CF
1F:D3
20:D6 21:D7 22:D9
23:DA
24:DB 25:DC 26:DD
27:DE
28:DF 29:E5 2A:E6
2B:E7
2C:E9 2D:EA 2E:EB
2F:EC
30:ED 31:EE 32:EF
33:F2
34:F3 35:F4 36:F5
37:F6
38:F7 39:F9 3A:FA
3B:FB
3C:FC 3D:FD 3E:FE
3F:FF
Table de décodage des pistes:
00:AA AA 01:AA AB 02:AB AA 03:AB AB 04:AA
AE 05:AA AF 06:AB AE 07:AB AF
08:AE AA 09:AE AB 0A:AF AA 0B:AF AB 0C:AE AE
0D:AE AF 0E:AF AE 0F:AF AF
10:AA AB 11:AA BB 12:AB BA 13:AB BB 14:AA BE
15:AA BF 16:AB BE 17:AB BF
18:AE BA 19:AE BB 1A:AF BA 1B:AF BB 1C:AE BE
1D:AE BF 1E:AF BE 1F:AF BF
20:BA AA 21:BA AB 22:BB AA 23:BB AB
Table de décodage des secteurs:
NIBBLES VALUE NIBBLES VALUE
------- ----- ------- -----
AA AA 00 AE AA 08
AA AB 01 AE AB 09
AB AA 02 AF AA 0A
AB AB 03 AF AB 0B
AA AE 04 AE AE 0C
AA AF 05 AE AF 0D
AB AE 06 AF AE 0E
AB AF 07 AF AF 0F
Table de décodage des Nibbles:
0:AA AA 20:BA AA 40:AA EA 60:BA EA 80:EA
AA A0:FA AA C0:EA EA E0:FA EA
1:AA AB 21:BA AB 41:AA EB 61:BA EB 81:EA
AB A1:FA AB C1:EA EB E1:FA EB
2:AB AA 22:BB AA 42:AB EA 62:BB EA 82:EB
AA A2:FB AA C2:EB EA E2:FB EA
3:AB AB 23:BB AB 43:AB EB 63:BB EB 83:EB
AB A3:FB AB C3:EB EB E3:FB EB
4:AA AE 24:BA AE 44:AA EE 64:BA EE 84:EA
AF A4:FA AE C4:EA EE E4:FA EE
5:AA AF 25:BA AF 45:AA EF 65:BA EF 85:EA
AF A5:FA AF C5:EA EF E5:FA EF
6:AB AE 26:BB AE 46:AB EE 66:BB EE 86:EB
AE A6:FB AE C6:EB EE E6:FB EE
7:AB AF 27:BB AF 48:AB EF 67:BB EF 87:EB
AF A7:FB AF C7:EB EF E7:FB EF
8:AE AA 28:BE AA 48:AE EA 68:BE EA 89:EE
AA A8:FE AA C8:EE EA E8:FE EA
9:AE AB 29:BE AB 49:AE EB 69:BE EB 90:EE
AB A9:FE AB C9:EE EB E9:FE EB
A:AF AA 2A:BF AA 4A:AF EA 6A:BF EA 8A:EF
AA AA:FF AA CA:EF EA EA:FF EA
B:AF AB 2B:BF AB 4B:AF EB 6B:BF EB 8B:EF
AB AB:FF AB CB:EF EB EB:FF EB
C:AE AE 2C:BE AE 4C:AE EE 6C:BE EE 8C:EE
AE AC:FE AE CC:EE EE EC:FE EE
D:AE AF 2D:BE AF 4D:AE EF 6D:BE EF 8D:EE
AF AD:FE AF CD:EE EF ED:FE EF
E:AF AE 2E:BF AE 4E:AF EE 6E:BF EE 8E:EE
AF AE:FF AE CE:EF EE EE:FF EE
F:AF AF 2F:BF AF 4F:AF EF 6F:BF EF 8F:EF
AF AF:FF AF CF:EF EF EF:FF EF
0:AA BA 30:BA BA 50:AA FA 70:BA FA 90:EA
BA B0:FA BA D0:EA FA F0:FA FA
1:AA BB 31:BA BB 51:AA FB 71:BA FB 91:EA
BB B1:FA BB D1:EA FB F1:FA FB
2:AB BA 32:BB BA 52:AB FA 72:BB FA 92:EB
BA B2:FB BA D2:EB FA F2:FB FA
3:AB BB 33:BB BA 53:AB FB 73:BB FB 93:EB
BB B3:FB BB D3:EB FB F3:FB FB
4:AA BE 34:BA BE 54:AA FE 74:BA FE 94:EA
BE B4:FA BE D4:EA FE F4:FA FE
5:AA BF 35:BA BF 55:AA FF 75:BA FF 95:EA
BF B5:FA BF D5:EA FF F5:FA FF
6:AB BE 36:BB BE 56:AB FE 76:BB FE 96:EB
BE B6:FB BE D6:EB FE F6:FB FE
7:AB BF 37:BB BF 57:AB FF 77:BB FF 97:EB
BF B7:FB BF D7:EB FF F7:FB FF
8:AE BA 38:BE BA 58:AE FA 78:BE FA 98:EE
BA B8:FE BA D8:EE FA F8:FE FA
9:AE BB 39:BE BB 59:AE FB 79:BE FB 99:EE
BB B9:FE BB D9:EE FB F9:FE FB
A:AF BA 3A:BF BA 5A:AF FA 7A:BF FA 9A:EF
BA BA:FF BA DA:EF FA FA:FF FA
B:AF BB 3B:BF BB 5B:AF FB 7B:BF FB 9B:EF
BB BB:FF BB DB:EF FB FB:FF FB
C:AE BE 3C:BE BE 5C:AE FE 7C:BE FE 9C:EE
BE BC:FE BE DC:EE FE FC:FE FE
D:AE BF 3D:BE BF 5D:AE FF 7D:BE FF 9D:EE
BF BD:FE BF DD:EE FF FD:FE FF
E:AF BE 3E:BF BE 5E:AF FE 7E:BF FE 9E:EF
BE BE:FF BE DE:EF FE FE:FF FE
F:AF BF 3F:BF BF 5F:AF FF 7F:BF FF 9F:EF
BF BF:FF BF DF:EF FF FF:FF FF
Table de translation Physique -> Logique:
Les n° de secteurs contenus dans le champ
adresse d'une disquette
formatée en 16 secteurs apparaissent en
ordre croissant ($0 to $F).
Ces n° de secteurs physiques sont
convertis par le système
d'exploitataion en nombres logiques pour
permettre des
écritures/lectures de plusieurs
secteurs à la fois. La table
ci-dessous montre la relation entre les n°
physiques et les n°
logiques des secteurs.
PHYSIQUE LOGIQUE
-------- -------
0 0
1 7
2 E
3 6
4 D
5 5
6 C
7 4
8 B
9 3
A A
B 2
C 9
D 1
E 8
F F
Cette DOC du 6.0 vous est offerte gracieusement par :
le célèbre B.CAPSLOCK
Retour sommaire