![]() |
|
![]() |
![]() |
![]() |
|
![]() |
|
![]() |
Disk : Gdf19.dsk
"-" files are DELETED files | "*" files are LOCKED files
----------------------------------------------------------------------
B A$1F00 (007936) L$12FF (004863) 022 COPIEUR N6
B A$3000 (012288) L$0537 (001335) 007 EPYX_FURY
B A$0901 (002305) L$19E7 (006631) 027 EPYX_FURY.S
B
A$3000 (012288) L$06F3 (001779) 008
GOGSMITH
*A A$0000 (000000) L$0208 (000520) 004 GOGSMITH.PRG
B A$0901 (002305) L$2BD3 (011219) 045 GOGSMITH.S
A A$0000 (000000) L$0CCD (003277) 014 LECTEUR.PRG
B A$0300 (000768) L$0051 (000081) 002 LECTURE PISTE AIRHEART
*A A$0000 (000000) L$00C5 (000197) 002 LECTURE WING.BAS.PRG
B A$40E8 (016616) L$0018 (000024) 002 MODULE_IOB
B A$4000 (016384) L$0400 (001024) 006 PAGE_TXT
B A$4E00 (019968) L$04B0 (001200) 006 RWTS AIRHEART
B A$4000 (016384) L$0800 (002048) 010 RWTS16
B A$4000 (016384) L$04F0 (001264) 006
RWTS18
A A$0000 (000000) L$029E (000670) 004 HELLO
T A$0000 (000000) L$8900 (035072) 137 T.COURS 19 REVISION
1.00
B A$0901 (002305) L$3730 (014128) 057 GOGSMITH 1.20.S
B A$3000 (012288) L$0762 (001890) 009 GOGSMITH 1.20
A A$0000 (000000) L$020D (000525) 004 GOGSMITH
1.20.PRG
T A$0000 (000000) L$0800 (002048) 008 T.LES PROGRAMMES DE CE DISK
T A$0000 (000000) L$0400 (001024) 004 T.INTRODUCTION
A A$0000 (000000) L$001D (000029) 000
COPYN6.PRG
B A$0901 (002305) L$059D (001437) 007 CHRCH_NIB.S
B A$1000 (004096) L$0053 (000083) 002 CHRCH_NIB
B A$1000 (004096) L$0051 (000081) 002 CHRCH_NIB2
A A$0000 (000000) L$01DB (000475) 003 CHRCH_NIB.PRG
B A$0901 (002305) L$03DD (000989) 005 CHRCH_NIB2.S
This catalog contains 27 files. 0 were DELETED.
----------------------------------------------------------------------
![]() |
DOS 3.3 |
Download Cours GDF 19 rev 1.00 (gzipped) |
Lien | Article |
![]() |
Introduction. |
![]() |
Cours 19 révision 1.00. |
![]() |
Les programmes de ce disk. |
![]() |
===============================================================================
COURS 19 : Protections BR0DERBUND / 18 secteurs par
piste. INTRODUCTION
===============================================================================
18 secteurs par piste ?.. mais vous dites n'importe quoi cher monsieur !
Tout le monde sait qu'il y a toujours 16 secteurs par piste, et pas
plus !
Pourquoi pas 43 dents par bouche ou 15 ans pour le septennat
présidentiel ?
Ma foi.. peut etre que c'est possible, non ?
En informatique Apple, on peut tout faire.. tout modifier.. tout
bidouiller..
La seule chose, c'est de savoir comment faire !..
Alors voici le comment faire !
===============================================================
Amicalement, G.
![]() |
===============================================================================
COURS 19 : Protections BR0DERBUND / 18 secteurs par
piste.
Godfather
===============================================================================
Révision
1.00
Update : 07 Mai 1988
La réalisation de ce cours n'aurait pas été aussi
brillante sans l'aide
précieuse de personnes comme Mister DD, The Gog's, Numéro
6 et bien sur,
l'auteur de tout ce bordel : Roland Gustafsson!, de chez BR0DERBUND.
Merci !
===============================================================================
1. Introduction
2. L'enregistrement magnétique des données sur le disk
3. Le stockage des données sur la disquette (nibbles)
4. La routine rwts18, lecture, ecriture, formattage, recalibrage, etc...
5. Programme de copie
6. Problemes supplémentaires : numéros de pistes sur de
mauvaises pistes, vérif
7. Adapter son copieur aux divers nouveaux broderbund
8. Historique et diagnostic de tous les derniers broderbund
9. 18 secteur par piste. qui dit mieux ?
===============================================================================
1. INTRODUCTION AU 18 SECTEURS PAR PISTE et au probleme que ca nous
pose..
===============================================================================
Au menu, aujourd'hui, le plombage courant de l'éditeur us a
sortir les softs
Apple les plus beaux, vous l'avez reconnu si je vous parle de karateka,
de
captain goodnight, de wings of fury pour ne citer que ceux-ci..
BR0DERBUND.
En bootant ce cours, vous vous etes peut etre demandé qui
était le gars
concerné par la dédicace : Roland Gustafsson. Qui c'est ce
poireau
Gustafsson, outre un rédacteur chevronné du magazine
américain NIBBLE,
est le plombeur "officiel" de Broderbund. et donc l'auteur de la
protection que
nous allons étudier ici : le 18 secteurs par piste.
>>>>>>>>>>>>>>>>>>>>
Notes de Deckard du 07/05/2007: tout d'abord dans tout le texte de GDF,
le
nom mentionné est Steven Gustavson au lieu de Roland Gustafsson. j'ai
corrigé.
Il faut savoir que Steven a un lien quand même avec Roland!
Il s'agit d'un easter eggs utilisé dans son soft PRINTSHOP
COMPANION.
Si vous bootez la face 1 du soft et tapez STEVEN suivi de la touche ESC,
et bien l'écran s'affiche à l'envers!! Inutile mais rigolo.
Ensuite Roland n'a rien écrit dans le magazine Nibble. Par contre, j'ai
retrouvé
plusieurs articles signés de sa main dans le magazine A+. Il s'est
intéressé à
la programmation du son sur Apple IIGS.
<<<<<<<<<<<<<<<<<<<<
Imaginez un disk qui contienne 18 secteur par piste de données
sur $23 pistes,
numérotées normalement de $00 à $22.. c'est
à dire autant de pistes qu'un disk
au format 3.3, mais contenant chacunes deux secteurs de données
en plus, soit
deux fois $FF octets. ($1FF octets en plus par piste!).
Le déplombage d'une protection "format", vous le savez bien,
passe toujours par
une étape de conversion de format. Le disk original a un format
non standard,
on va le convertir en premier lieu au format standard, soit en 16
secteurs
par piste!.. seulement ici, un grave probleme se pose !
Voici, pour essayer de vous l'expliquer, la "contenance" de ces deux
formats :
16 secteurs par piste pour 35 pistes à $FF octets par
secteur.....143360 octets
18 secteurs par piste pour 35 pistes à $FF octets par
secteur.....161280 octets
Vous comprenez le probleme ? non, pas encore ? alors je continue..
16 secteurs par piste pour 35 pistes : 560 secteurs de données
par face !
18 secteurs par piste pour 35 pistes : 630 secteurs de données
par face !
Ca veut dire qu'en considérant que vous retrouviez la routine de
lecture
18 secteurs dans un quelconque original broderbund, et que vous soyez
à meme,
comme toujours, de préparer la conversion de format, une
question reste posée :
Vous avez 70 secteurs "en trop" qui sont indispensables..
Où allez vous les mettre puisqu'il faut les mettre sur un disk
"déplombé" -
c'est le but du jeu - donc en 16 secteurs par piste... en se rappelant
que ces
16 secteurs par piste sont - en théorie - déjà
occupé par des données du soft!
Suis-je assez clair ?
Pierrette a un pot au lait qui ne peut contenir qu'un litre, et elle
doit
ramener au village - sous peine de cataclysme galactique et
sidéral - un litre
et demi de lait. vous avez une solution à ce probleme vous ?
Je vais essayer, avec ce cours et théoriquement un cours futur
numéro 19.2,
de vous expliquer et de vous clarifier les deux solutions qui se
présentent à
nous, après - croyez le bien - d'intenses reflexions de par la
planète entière!
===============================================================================
2. L'ENREGISTREMENT MAGNETIQUE DES DONNEES SUR LE DISK
===============================================================================
Première chose messieurs, vous allez vous ouvrir l'esprit.. etre
bien ouvert à
tout ce qui pourrait etre dit ici.. à toute nouveauté..
élargissez votre champ
de reflexion possible, concentrez vous, inspirez.., expirez.. et
comprenez!
Pour l'explication qui va suivre, et je dit ça pour les
perfectionnistes, je
vous préviens, j'ai du déformer des faits pour une
meilleure compréhension.
Par exemple, je vais sous-entendre que la tete de lecture tourne autour
des
pistes alors que c'est la disquette qui tourne sous la tete de lecture.
Vous m'accorderez bien que l'effet est identique selon le point
où l'on se
place, et vous m'accorderez également que j'ai le droit de me
permettre les
quelques "mensonges" qui vont suivre, dans votre interet.. alors si vous
decelez des anomalies - parce que vous en savez déjà trop
- vous ne pourrez
plus m'accuser ici, je m'en excuse ici par avance. Allons-y..
Je vais vous demander d'imaginer la piste d'une disquette.. piste que
l'on va
comparer pour simplifier les choses à une piste cycliste, telle
celle de bercy
si je ne m'abuse. une piste circulaire, sur laquelle se déplace
un petit
bonhomme (le coureur) à une certaine vitesse. Ce cycliste qui
fait un tour de
piste en un certain temps est à comparer, lui, avec la tete de
lecture de votre
drive qui ferait le tour d'une piste donnée en un certain temps.
Le probleme qui nous est posé est celui du formattage. Si la
lecture d'une
piste peut se faire secteur par secteurs en un temps quelconque (on
peut lire
une piste en prenant quelques secteurs à chaque fois, et si son
drive est trop
rapide ou la routine de lecture trop lent, devoir repasser une seconde
fois,
voir une troisième fois pour prendre le reste..).
Le formattage est une "découpe" d'une piste en secteurs selon un
format donné.
Pour le formattage, le probleme est différent. On découpe
le disk, et le
3eme secteur p.e., quel que soit le format, 19, 18, 16, 13 secteurs ou
autre,
doit obligatoirement se trouver enregistré pile après le
2nd (sect.physiques),
et pile après le 1er.. tout doit donc etre découpé
depuis le secteur 0,
qui marque le "début de la découpe", et jusqu'au dernier
secteur, en une seule
passe!.. en un seul tour de terrain.
On supposera que notre cycliste parte de la ligne de départ (qui
se trouvera
etre à peu de choses près aussi la ligne d'arrivée
- fin de la piste),
avec une série de 18 drapeaux, puisqu'on est dans le 18 secteurs
par piste.
Il va devoir en déposer un tous les 22.22 metres autour d'une
piste de 400
mettres de circonference..par exemple.
Il met un certain temps à saisir un drapeau et son piquet, et
encore un
certain temps à viser et à le planter pour marquer le
début d'une des coupes
de la piste, d'une des divisions qu'il veut y faire.. d'un des secteurs
de la
piste qu'il va parcourir. Le probleme, je le rapelle, est qu'il doit
planter
tous les drapeaux en un seul tour.. et si, sur ces 18 drapeaux, il
n'arrive à
en planter que 17 p.e., le formattage de cette piste est à
recommencer.. il
faut qu'il arrive au moins à en planter le nombre
désiré au départ, relatif
au format.
Vous comprenez bien que plus le cycliste roulera lentement autour de la
piste,
plus il aura de temps pour planter ces drapeaux, et donc plus il sera
en mesure
d'en planter un grand nombre.
En 1979, le DOS 3.2 ne contenait que 13 secteurs par piste pour une
question
de vitesse. le drive proposé par Apple à l'époque
n'était pas assez fiable,
aussi le formattage se faisait il plus lentement, et notre cycliste ne
pouvait
avoir le temps de ne poser guère que 13 drapeaux..
Comprenez par "drapeau", l'écriture du champ adresse, point de
séparation entre
deux secteurs de la piste, et comprenez qu"entre deux drapeaux, des
données
sont écritures (la trace du pneu reste sur la piste.. si vous
voulez (!?)).
Nous allons voir plus loin la tete de ces drapeaux et la marque de la
trace du
pneu sur chaque piste 18 secteurs, quand je parlerais du format 18'.
Maintenant, on est allé jusqu'à 16, et BR0DERBUND, avec
des drives lents,
est arrivé à formatter un disk en 18 secteurs. Si vos
drives sont d'une
vitesse sympa pas trop rapides (vous pouvez tester leur vitesse avec un
soft
tel Copy II+ 5.x, ou EDD IV v4.2), vous pourrez donc copier les
Broderbund
sans trop de problemes.. bien qu'il y ait parfois quelques
modifications à
apporter au boot (en piste $0 en général) pour avoir une
copie qui marche.
La lecture, je vous l'ai expliqué, pouvant se faire en plusieurs
fois, donc
whatever the speed of your disk drive head, les softs 18 secteurs
bootent
aussi bien sur n'importe quel drive, mais ne se copient pas partout..au
nibble
copieur. (en théorie, le copieur que l'on va réaliser
doit marcher partout,
fonctionnant à une vitesse maximale "normale".)
Apple n'a pas encore fait - et ne fera pas - de DOS 3.4 en 18 secteurs
pour
cette raison là : tous les drives, s'ils peuvent lire le 18
secteurs, ne
peuvent pas tous le formatter.
===============================================================================
3. LE STOCKAGE DES DONNEES SUR LA DISQUETTE 18 SECTEURS
===============================================================================
En général, quelques pistes (piste $00, ou bien pistes
$00 et $01) sont au
format 3.3, 16 secteurs par piste.. tout ce qu'il y a de plus normal,
et ce
sont ces pistes qui contiennent la fameuse rwts18. mais laissez moi
plutot
vous parler du format 18 secteurs dont il est question.
En fait , on parle de 18 secteurs par pistes car chaque piste contient
l'equivalent en données de 18 secteurs dos 3.3 de $FF octets,
soit $17FF octets
mais sur le disk, les données sont regroupées en macro
secteurs.
On ne compte pas, donc, 18 secteurs de $FF octets mais 6 secteurs de (3
* $FF)
octets, ce qui revient au meme compte incroyable de $17FF octets par
piste,
contre les $15FF par piste que nous offre le format 3.3.
Le premier macro-secteur correspond aux secteurs 00,06,12.
Le second macro-secteur correspond aux secteurs 01,07,13.
Le trois_ macro-secteur correspond aux secteurs 02,08,14.
Le quatr_ macro-secteur correspond aux secteurs 03,09,15.
Le cinqu_ macro-secteur correspond aux secteurs 04,10,16.
Le sixieme macro-secteur correspond aux secteurs 05,11,17...soit 18
secteurs!!
Chaque macro-secteur est constitué de la manière suivante
:
(pour avoir une comparaison avec le format 3.3, reportez vous au cours
6)
_____________________________________________________________________________
!
!
!
( LE FORMAT 18 SECTEURS ) !
!
!
! - Un champ adresse : Prologue D5
9D
!
!
!
!
Piste NN ! A TRANSFORMER A L'AIDE
D'UNE !
!
Secteur NN ! TABLE DE
CONVERSION
!
!
Checksum
NN
!
!
Epilogue
AA
!
!
!
! - Deux nibbles self-sync FF
FF
!
!
!
! - Un champ données : Prologue A4 ! variable
, selon le soft..ATTENTION! !
! (je reparlerais
de ce prologue comme "le header qui peut varier"!) !
!
!
!
Données $400 NIBBLES (4 Nibbles --> 3
Octets) !
!
Checksum
NN
!
!
Epilogue
D4
!
!_____________________________________________________________________________!
Les nibbles sont transformé en octets au fur et à mesure
de la lecture,
à l'aide d'une table de conversion. contrairement au dos 3.3,
où la conversion
(post-nibblelisation) se fait après la lecture des nibbles dans
un buffer.
D'autre part, sur certains broderbund, comme ce fut le cas pour
airheart,
la piste $1C n'existe pas. Elle était identique à la
piste $1B et portait le
numéro de piste $1B en champ adresse. mais c'est un "plus" qui
n'est pas
vraiment important quant à la protection pure "18 secteurs" et
qui n'a plus
été employé dans les tous derniers Broderbund.
donc, pas de panique!
On en reparlera dans le cours 'déplombage' mais que peu ici bas..
===============================================================================
4. LE BOOT (EXEMPLE : AIRHEART) ET LES ROUTINES DE LECTURE-ECRITURE 18'
===============================================================================
On a suivi le boot de Airheart, boot que je prendrais comme exemple
ici, mais
tout peut changer, tout changera, et - encore une fois - ceci n'est
qu'un plus
à ce cours, et importera peut pour ce que l'on veut obtenir en
fin de ce cours
c'est à dire un copieur d'un original donné plombé
en 18 secteurs...
Voici donc l'exemple du boot de Airheart.
Le soft chargeait successivement 3 routine de lecture/écriture :
- La première en $D000, est une routine read utilisée par
le boot 2 (load only)
- La seconde fait partie du Disk Operating System de Gustafsson
($0400-09FF),
et est adressée par un vecteur en $040F.
- La troisième, qui est cette fois bel et bien un routine
lecture/écriture,
est chargée en $4E00 (Airheart) au moment de
l'écriture des records.
Sur Wings of Fury, cette rwts figurait à une autre
adresse, mais c'était
comme nous allons le voir, à peu de choses près,
la meme routine.
Elle est sauvé en catalog sur ce disk sous le nom
"RWTS18".
Figure aussi sur ce disk la routine prise ds Airheart "RWTS
AIRHEART".
Après cet apparté relatif au boot, voici le principal du
sujet :
_____________________________________________________________________________
!
!
! LA LISTE DES COMMANDES DE LA
RWTS18
!
!
-----------------------------------
!
!
!
! La routine d'accès disk se trouve en $4E00. Je la labelle
RdDisk, car cette !
! adresse peut changer selon les softs. ce que je verrais plus
loin. !
!
!
! La syntaxe d'utilisation est la suivante : JSR RdDisk, suivi de un
octet de !
! commande et de 0 à 18 octets de paramètres relatifs
à cette commande , dont !
! va suivre la
liste.
!
!
!
! 3 adresses de la page zero sont modifiées à chaque
accès disk, aussi, si !
! elles sont importantes dans votre soft, il va falloir les copier dans
trois !
! autres adresses avant l'accès disk. ce sont
:
!
!
!
! $FD Numéro du Slot drive * $10. (généralement
$60 pour le slot
6) !
! $FE Numéro de piste où la pioche devra se
rendre.
!
! $FF Numéro de la piste actuelle multiplié par 2,
où se trouve la pioche !
!
!
! Voici maintenant la liste des commandes disk, suivie du nombre
de !
! paramètres necessaires, et tous les détails concernant
la commande !
! concernée et ses
paramètres.
!
!
!
! Commande 00 (2
paramètres)
!
!
-----------
!
! Mise en route du
moteur.
!
! Paramètre P1 : Drive (toujours
01)
!
! Paramètre P2 : Temporisation (souvent
0A)
!
!
!
! Commande 01 (Aucun paramètre
demandé)
!
!
-----------
!
! Arret du
moteur
!
!
!
! Commande 02 (2
paramètres)
!
!
-----------
!
! Déplacement de la tete de lecture
(seekabs).
!
! Pamamètre P1 : 00 _ Pas de controle sur la piste actelle. Le
déplacement se !
!
fait en supposant que vous etes sur la piste dont le !
!
numéro est mémorisé en $FF. (multiplié par
2) !
!
FF _ Lecture d'un champ adresse sur la piste actuelle pour !
!
définir où se trouve la tete, et assurer de bien
la !
!
déplacer sur la bonne piste
destination.
!
! Paramètre P2 : Numéro de la piste à
atteindre.
!
!
!
! Commande 03 (1
paramètre)
!
!
-----------
!
! Lecture séquentielle d'une
piste.
!
! Paramètre P1 : Numéro de la page mémoire
où doit commencer le chargement !
! ($20 fera commencer le chargement en
$2000).
!
!
!
! Commande 04 (18
paramètres)
!
!
-----------
!
! Lecture sélective de secteurs sur une
piste.
!
! Paramètres P1 à P18 : Numéros des pages
mémoires à
charger.
!
! Les valeurs 00 sont transformées en $CF, c'est à dire
que le chargement !
! s'effectue en rom : rien ne se passe!. (il n'est rien possible de
charger !
! directement en page 0, elle contient tous les paramètres
relatifs aux !
! pistes actuelle/dest..). Si vous voulez charger des données en
page 0, il !
! faut les charger ailleurs et les mover (cf cours 12) en
$00,X.
!
!
!
! Commande 05 (1
paramètre)
!
!
-----------
!
! Ecriture (analogue à la commande
03)
!
!
!
! Commande 06 (18
paramètres)
!
!
-----------
!
! Ecriture (analogue à la commande
04)
!
!
!
! Les
options
!
!
-----------
!
! Pour les commandes 03 à 06, les bits 6 et 7 du
caractère de commande sont !
! significatifs. si le bit 6 est levé, $FE sera
incrémenté à la fin de la !
! lecture. La prochaine lecture sera faite automatiquement sur la
piste !
! suivante. Si le bit 7 est levé, la lecture sera
répétée tant qu'une erreur !
! est détectée lors de l'accès disk. (avec un beau
bip sonore pour dire "je !
!
recommence").
!
!
!
! Exemple : JSR
RdDisk
!
! HEX
C3
!
! HEX
20
!
!
!
! Cette routine lit la piste dont le numéro est dans $FE, en
déplacant au !
! besoin la tete de lecture sur cette piste si elle ne s'y trouvait pas
déjà, !
! et charge les données de cette piste dés $2000.
L'opération se répète s'il !
! y a erreur lors de l'accès disk, et $FE, le numéro de
la piste, est !
! incrémenté à la fin de la lecture. A ce moment
là, le programe ci dessus !
! reprend son cours, juste après les
paramètres.
!
!_____________________________________________________________________________!
PROGRAMME DE LECTURE D'UNE PISTE
================================
VOICI UN PROGRAMME QUI PERMET DE LIRE N'IMPORTE QUELLE PISTE DE LA
DISQUETTE
AIRHEART (SAUF LES PISTES 00 ET 1C) AUX ADRESSES 2000.31FF. ON PEUT
AINSI
(ET C'EST CE QUE J'AI FAIT) COPIER TOUTE LA DISQUETTE SOUS FORME DE
FICHIERS
BINAIRES. LE RESTE N'EST PLUS QU'UNE QUESTION DE PATIENCE !
0300- A2
00
LDX #$00
0302- B5
00 BOUCLE1
LDA $00,X ;SAUVE PAGE 0
0304- 9D 00
1F
STA $1F00,X ;EN PAGE $1F
0307-
E8
INX
0308- D0
F8
BNE BOUCLE1
030A- A9
60
LDA #$60
030C- 85
FD
STA $FD
030E- 20 00
4E
JSR RdDisk ;MOTEUR EN MARCHE
0311-
00
BYT $00
0312-
01
BYT $01 ;DRIVE 1
0313-
00
BYT $00
0314- A9
A0
LDA #$A0 ;RECALIBRE LA TETE
0316- 85
FF
STA $FF ;EN PISTE 0
0318- A9
00
LDA #$00
031A- 20 E3
50
JSR $50E3
031D- A9
00
LDA #$00
031F- 85
FF
STA $FF
0321- 20 00
4E
JSR RdDisk ;DEPLACE LA TETE
0324-
02
BYT $02 ;EN PISTE 1
0325-
00
BYT $00
0326-
01
BYT $01
0327- AD 80
03
LDA $0380 ;NUM. DE PISTE EN $0380
032A- 8D 3C
03
STA PIS TE
032D- C9
15
CMP #$15
032F- 90
06
BCC INF15
0331- 20 00
4E
JSR RdDisk ;SI PISTE A LIRE >= $15
0334-
02
BYT $02 ;DEPLACE
D'ABORD LA TETE
0335-
FF
BYT $FF ;EN PISTE $19
0336-
19
BYT $19
0337- 20 00 4E
INF15 JSR RdDisk ;POSITIONNE
LA TETE
033A-
02
BYT $02
033B-
FF
BYT $FF
033C-
01
PISTE BYT $01
033D- 20 00
4E
JSR RdDisk ;LECTURE
0340-
C3
BYT $C3 ;D'UNE PISTE
0341-
20
BYT $20 ;AUX ADRESSES
$2000.31FF
0342- 20 00
4E
JSR RdDisk ;ARRET MOTEUR
0345-
01
BYT $01
0346- A2
00
LDX #$00 ;RESTAURE PAGE 0
0348- BD 00 1F
BOUCLE2 LDA $1F00,X
034B- 95
00
STA $00,X
034D-
E8
INX
034E- DO
F8
BNE BOUCLE2
0350-
60
RTS
Pour lancer ce programme, il suffit de faire :
]BLOAD RWTS
AIRHEART,A$4E00
; chargement rwts
]BLOAD LECTURE PISTE
AIRHEART,A$300
; et chargement bloader piste
]POKE 896,<NUMERO DE
PISTE>
; et mettre Airheart en drive 1
]CALL
768
; la piste se charge..
===============================================================================
5. PROGRAMMES DE COPIE 18 SECTEURS PAR PISTE
Par numero6, Mr.DD, Gog's, Gdf
===============================================================================
Plusieurs programmes de copie ont été developpé
à partir de la routine rwts de
Gustafsson. Pour l'instants, les programmes disponibles avec ce cours
sont au
nombre de deux. mais à vrai dire, ils font presque double emploi.
Le premier à ma connaissance fut celui de Numéro 6 pour
Toy Shop,
qu'il adapta peu de temps après à Where in the world is
Carmen SanDiego?.
Le second fut réalisé mi-avril par the acs et moi meme,
pour Wings of Fury.
Je ne vais pas vous en dire très long dans ce passage puisque
les programmes
sont déjà faits - et les sources disponibles sont sur ce
disk meme ! - et que
les commandes de la rwts18 qu'utilisent ces copieurs viennent à
peine d'etre
passées en revue. Il vous suffit donc pour en savoir plus de
booter un merlin,
et de charger le fichier "GOGSMITH".
On va voir plus loin les problemes que l'on peut nous greffer en plus
sur ce
plombage, et aussi le "comment adapter ce gogsmith à d'autres
Broderbund".
===============================================================================
6. PROBLEMES SUPPLEMENTAIRES : UN FAUX NUMERO DE PISTE et VERIF' AU BOOT
===============================================================================
a) UN FAUX NUMERO DE PISTE
--------------------------
Il est possible, car ca a été fait par Gustafsson, de
mettre une piste numérotée
16 à l'endroit de la piste 17.. n'est ce pas ?. Un numéro
n'est qu'un numéro.
Il faut, pour la lire, 1/ s'avoir où se trouve la pioche..
2/ se déplacer sur la piste concernée
3/ lire la piste avec le numéro quelle contient
(différent du numéro de piste où se trouve la
pioche)
Mais permettez moi de ne pas en rajouter sur ce sujet étant
donné que R.Gustaf'
a arreté de manipuler ainsi les numéro de pistes.. ca ne
vous sera donc plus
utile dans le futur.. à moins qu'il décide de s'y
remettre, cas dans lequel je
reviendrais sur ce chapitre aussitot!
Pour en apprendre plus sur le sujet, reportez vous au cours 17.2 sur
le plombage - entre autre - d'ultima 5.. la meme chose avait
été faite avec les
numéros de secteurs d'un disk prodos standard.. impressionnant!.
b) VERIF DU DISK ORIGINAL AU BOOT
---------------------------------
Je n'ai jamais travaillé avec de vrais originaux Broderbund dans
mon drive,
en effet, j'ai toujours eu des copies de taiwan entre autre, qui
bootent comme
l'original mais que je soupconnes d'avoir été
déjà un peu trafiquée..
On m'a parlé d'une vérif au boot des originaux-originaux
Broderbund qu'il
fallait oter sur une copie echo+ pour quelle boote..mais je ne peut
rien vous
en dire , ma foi ! (mais rien de bien méchant sans doute!)
Priez pour que vous receviez comme moi toujours des copies d'originaux,
sinon
on en reparlera ici meme.. (je voulais vous prévenir, ne pouvant
pour l'instant
vous en dire plus sur le sujet!)
===============================================================================
7. LE FIN DU FIN : ADAPTER LE GOGSMITH AUX DIVERS NOUVEAUX SOFTS
BR0DERBUND
===============================================================================
Pour permettre au gogsmith de venir à bout de n'importe quel
disk original de
chez Broderbund, en laissant pour l'instant le copieur
indépendant de
l'original (pour mettre le copieur au boot, c'est une autre histoire),
il faut modifier dans ce copieur, plusieurs parametres relatifs
à cet original.
1) Le plan des faces
--------------------
Le copieur permet de copier des faces "A" ou "B" (on peut modifier le
source
facilement pour prendre une touche "C" voir "D" si les parms ne sont
pas les
memes sur toutes ces faces), et fait correspondre à la face A
une table 1618.
Sur la face A de wings of fury par exemple, les deux premieres pistes
sont en
16 secteurs, les pistes $02-22 sont en 18 secteurs et enfin, à
cause du copieur
rajouté où il restait de la place, il existe une piste
$23 en 16 secteurs.
Le "plan" de la face A est donc paramétré ainsi dans le
copieur :
MAP_A HEX 161618181818181818181818181818181818
HEX
181818181818181818181818181818181816
HEX 00
Le 00 délimite la fin du disk. Ca indique ainsi aussi le nombre
de pistes pour
la ou les faces concernées par une map donnée.
Pour la face B qui ne fait que $22 pistes de 18 secteurs si je ne
m'abuse, on
a la map suivante :
MAP_B HEX 181818181818181818181818181818181818
181818181818181818181818181818181800
Il va falloir modifier ce plan des pistes pour chacune des faces en
fonction du
format de chacune des pistes de l'original concerné. Pour cela,
pour définir
pour un original quelles sont les pistes en 16 ou en 18 secteurs, il
suffit
de tenter une copie locksmith de l'original concerné. (tapez "1"
puis return
au "menu" du locksmith 6.0 fdb et mettez votre original en drive 1,
pour lire
uniquement et non pas tenter l'ecriture).
Notez ensuite toutes les pistes copiables et celles qui ne le sont pas.
Ainsi, vous releverez que les pistes copiables au locksmith rapide sont
les
pistes en 16 secteurs, et les pistes incopiables sot les pistes en 18
secteurs.
A vous ensuite de reporter, comme nous venons de le voir, ces
résultats dans le
source du gogsmith. (prière d'en creer une nouvelle version).
L'idéal serait de rajouter un paramétrage possible du
copieur avant la copie,
comme le locksmith 6.0 et sa possibilité de modifier n'importe
quelle adresse..
(reportez vous au cours 6 ou au doc on the rocks #16 pour plus de
précisions).
Mais on est tous trop fainéants..
2) Le "Header" qui peut varier.. yé! yé!
----------------------------------------
Le header qui peut varier, vous vous rappelez ? j'en parlais plus haut
lorsque
je décortiquais le format 18 secteurs, au nibble editor.
Le format, je vous le rappelle est le suivant :
D5 9D pp ss cc AA FF FF hh
(pp =
piste, ss = secteur, cc = checksum, hh = header).
Selon les originaux, le headers hh peut varier. et empecher la lecture!
C'est comme si sous dos 3.3 (reportez vous au cours 6) je mettais un D4
AA EB
au lieu de DE AA EB, ou encore une autre valeur de nibble valide
puis AA EB.
L'incompatibilité de lecture est assurée, donc pas de
copie.
Il faut parametrer ce point là donc également, non pas
dans le copieur mais
dans la rwts18 elle meme qui se charge en $4E00.
Ce header se trouve en $4E8E pour ce qui est de la routine write18.
Ce header se trouve en $5001 pour ce qui est de la routine read.18.
Deux solutions donc : modifiez la rwts18 avant de la resauver sur le
disk,
ce qui n'est pas conseillé car il faudrait avoir 15 rwts pour 15
originaux,
ou encore rajouter dans le source un couple de LDA STA pour modifier ces
adresses pour un original donné, avant la lecture ecriture 18
secteurs.
Là encore, un copieur à adresses paramétrables
ferait un malheur..
Pour mettre le copieur au boot du disk copie plombée, il vous
faudra vous
referer au accolade boot 1.00. C'est trop compliqué pour etre
expliqué ici,
puisque j'ai au de quoi en faire tout un cours : le godfather's
products 12.
===============================================================================
8. HISTORIQUE DES QUELQUES DERNIERS SOFTS PLOMBES PAR BR0DERBUND
===============================================================================
(cette rubrique reste encore à completer..)
Airheart 18 secteurs - Header
variable D4
Toy Shop 18 secteurs - Header
variable ..
Carmen USA 18 secteurs - Header variable
..
Wings of Fury 18 secteurs - Header variable 96
===============================================================================
9. 18 SECTEURS PAR PISTE , QUI DIT MIEUX ?
===============================================================================
"Le 18 secteurs par piste, on ne peut mieux!". Je cite
********************,
**************************************************************************.
Ma foi ***, tu te trompes.. et c'est encore une fois Gustafsson qui te
le prouve
avec le plombage que lui a demandé Infocom : du 19 secteurs par
piste !
Voici l'anecdote telle que la légende nous la rapporte :
Dans le monde du soft, du coté éditeurs, un disk vaut une
petite fortune...et
le lancement d'un soft se chiffre au bas mot à plus d'un million
de dollars,
rien que ca.. aussi, tout éditeur a intéret à
publier des softs occupant un
minimum de place disk. moins il y aura de disks, moins il y aura
d'investissement initial pour l'éditeur. donc, sourire sur son
visage.
Jusqu'à présent, Infocom - qui est un éditeur us
peut connu des francais sur
Apple puisqu'il ne publie que des jeux d'aventures textuels en anglais
! -
n'utilisait aucune protection (16 secteurs par piste), et pour pouvoir
mettre
un maximum de données sur un minimum de place, utilisait un
compresseur de
texte...petit programme génial, tel un compresseur graphique.
Seulement, pour un de leurs derniers softs au mois d'avril 88, TRINITY,
il leur aurait fallu, texte compressé au maximum, deux
disquettes.. et ça,
ils ne voulaient meme pas y penser.. aussi ont-ils fait appel à
Gustafsson
pour qu'ils leur parlent de son 18 secteurs par piste, ce qui, vous le
comprennez bien, aurait-pu bien arranger leur probleme!..
Seulement, après de simples calculs de longueur de data et de
nombre de
secteurs, meme les 18 secteurs n'y suffisaient pas.. il leur fallait un
19 secteurs par piste..
Ma foi, je ne peut guère vous en parler plus longuement ici car
ca
nécessiterait également un cours et des mois entiers
d'étude , believe me ,
m'enfin TRINITY est bel et bien sorti en 19 secteurs de $FF octets par
piste,
sur une seule disquette !
*** a perdu son pari.. Gustafsson a encore fait plus fort.. et
Broderbund
s'est fait b.. puisque Infocom a racheté les droits exclusifs de
ce plombage!
moralité, on verra sans doute à jamais, du 18 secteurs
sur les Broderbund,
ou dumoins, pas de 19 secteurs - sauf accord galactique
Infocom/Broderbund.
Seul chose à retenir : 18 secteurs par piste, on peut faire
mieux!
mais c'est une autre histoire! essayez déjà de bouffer
correctement ce cours!
================================================= Good luck Captain
Goodnight !
![]() |
===============================================================================
COURS 19 : Protections BR0DERBUND / 18 secteurs par
piste.
Godfather
===============================================================================
Révision
1.00
Update : 07 Mai 1988
Les programmes de ce disk sont :
1) COPYN6.PRG
-------------
Le programme de copie
d'originaux 18 secteurs de numéro 6..
Le premier qui ait jamais
été écrit par des déplombeurs.
2) GOGSMITH.PRG
---------------
Le programme de copie 18
secteurs réalisé par the gogs et moi meme.
(je revendique la
paternité du titre - toute ressemblance avec un
nom de copieur
déjà éxistant serait bien evidemment fortuite.)
On en parle dans ce cours.
La version
améliorée 1.20 est encore en chantier! (sur ce disk).
3) RWTS16
---------
Quoi de plus bete qu'une
routine de lecture/ecriture/formattage
16 secteurs relogée ?.
Toutes les commandes de
cette rwts sont expliquées dans le cours 3.
4) RWTS18
---------
Le principal sujet de ce
cours : la rwf de Gustafsson 18 secteurs.
Toutes les commandes de
cette rwts sont expliquées dans ce cours.
5) LECTURE WING.BAS.PRG
-----------------------
On reparlera de ce bete
programme dans un futur cours sur les
Broderbund relatifs aux
methodes de conversion 18/16 secteurs.
Cela permet de lire et de
visionner les pistes de Wings of fury,
un peu comme le ferait
picscan (cours 5), mais en 18 s. bien sur.
===============================================================================