File: Gdf04.dsk
Disk: DOS 3.3 Volume 254
Name
Type Auxtyp Modified
Format Length
------------------------------------------------------------------------------
DISKET-SCOPIE
BAS $0801 [No
Date]
DOS 1997
*DOS.CDI.S
BIN $0901 [No
Date]
DOS 31686
*DOS.FILE.MANAGER.S
BIN $0901 [No
Date]
DOS 26371
T.COURS 4 REVISION
2.65 TXT
$0000 [No Date]
DOS 25781
T.ET LA PROCHAINE
FOIS... TXT $0000
[No Date]
DOS 1193
T.INTRODUCTION
TXT $0000 [No
Date]
DOS 2894
HELLO
BAS $0801 [No
Date]
DOS 1639
T.COURS 4
EXERCICES
TXT $0000 [No
Date]
DOS 3393
T.LES PROGRAMMES DE CE DISK
TXT $0000 [No
Date]
DOS 1438
T.DAVID
DOS.DOC
TXT $0000 [No
Date]
DOS 11792
MODIF.DOS.PLOMBAGE
BAS $0801 [No
Date]
DOS 4062
------------------------------------------------------------------------------
File: Gdf04_Complement.dsk
Disk: DOS 3.3 Volume 254
Name
Type Auxtyp Modified
Format Length
------------------------------------------------------------------------------
T.COURS 4
EXERCICES
TXT $0000 [No
Date]
DOS 3851
T.LES PROGRAMMES DE CE DISK
TXT $0000 [No
Date]
DOS 2238
T.COURS 4
PROTECTION
TXT $0000 [No
Date]
DOS 7344
CHANGE_ERR
MESS
BAS $0801 [No
Date]
DOS 852
DISK
HELPER
BAS $0801 [No
Date]
DOS 4477
DISK
SORT
BAS $0801 [No
Date]
DOS 4204
DISK
SORT.RWTS
BIN $0800 [No
Date]
DOS 64
HELLO
BAS $0801 [No
Date]
DOS 1674
------------------------------------------------------------------------------
DOS 3.3 |
Download Cours GDF 04 rev 2.65 (gzipped) |
|
DOS 3.3 |
Download Cours GDF 04 complément (gzipped) |
|
DOS 3.3 |
Download Disk Recovery (gzipped) |
|
Many DOS 3.3 clones |
Download DOS LIBRARY (gzipped) |
__ Introduction
__________________________________________________________
!
!
! Salut et
salut,
Update 23/08/87 !
!
!
! Voici enfin la révision 1.60 du cours 4.. Tout ce qu'un
pirate doit !
! savoir du DOS 3.3... sympa comme cours.. Pas très
balaise en fait, mais !
!
indispensable..!
!
!__________________________________________________________________________!
__________________________________________________________________________
!
!
! Question - Puisqu'on parle de DOS... Y'aurait pas un disk
où pleins de !
! DOS
sont rassemblés
??
!
! Réponse - Oui, bien sur !! Ca s'appelle DOS
LIBRARY 1.00 et ca boote en !
!
Epyx-Boot (voir GP #5). J'ai fait ça, pour le plaisir
en !
!
angleterre, en juillet 87.. Tous les meilleurs DOS y
sont !
!
réunis en une face.. Seul le DOS EOR n'y est pas
utilisable !
!
sans notice
explicative...
!
! Question - Et bien sur il est en face B de ce
disk...
!
! Réponse - Comme
toujours..
!
! Question - Et on peut le filer autour de nous
??
!
! Réponse - Contrairement au cours, là, ca a
été fait pour se répandre !! !
!__________________________________________________________________________!
__________ Mais y'a bien des bouquins qui parlent de
ça, non ?? __________
!
!
! Mouais.. Y'a bien BENEATH APPLE DOS.. C'est en anglais..
Génial mais !
! trop balaise pour le moment.. Vous pouvez le commander chez
: !
!
!
!
QUALITY
SOFTWARE
!
!
21601 MARILLA
STREET
!
!
CHATSWORTH, CA 91311,
USA
!
!
!
! Y'a aussi DOS 3.3 GUIDE DU PROGRAMMEUR.. En francais,
éditions SYBEX.. !
! Je l'ai pas encore lu...je juge donc
pas
!
!__________________________________________________________________________!
Bonne chance avec ce cours... Dés le 5, on commence des
cours super longs et
fous.. alors accrochez vous et à la prochaine...
Amicalement, GODFATHER
COURS DEPLOMBAGE 4 / GODFATHER 13 Janvier 1987 /
Révision 2.65 / Update 29/8/87
TOUT CE QU'IL FAUT SAVOIR SUR L'ORGANISATION DES FICHIERS SUR UN
DISK DOS 3.3
===============================================================================
Salut et salut,
Avant de commencer ce cours j'aurais voulu juste faire une remarque sur
le
déplombage en général. Depuis le cours 1 sur le
DOS PATCHED, on n'a étudié que
des protections simples.... Tu pourrais te dire :'Ah! c'est ca le
déplombage'
En fait, c'est ca pour beaucoup de softs... enfin plutot,
c'était ca...
Mais les protections 85-86 et 87 sont bien plus balaises...
Il faut avoir tout plein de connaissances en cracking et commencer par
des
choses simples. Il y a encore pas mal a apprendre avant de pouvoir
s'attaquer
à la partie la plus interessante : les plombages employés
actuellement par des
éditeurs tels que les plombages Electronic Arts ou autres
BR0DERBUND...
Tu peux quand meme te demander : "Mais à quoi ce cours va t il
me servir ???"
Fais moi confiance, tu verras plus tard que c'est pas inutile du tout
de tout
savoir sur le DOS. Avant d'étudier des routines de lectures
folles, étudie
d'abord celle du DOS 3.3 le plus simple...
Un proverbe chinois dit un truc du genre :
"Avant de chercher à connaitre l'ennemi, cherche à te
connaitre toi meme !"
Et ne te dis pas trop : "Ah! c'est simple en fait !!!" car je te
promets de
bons moments à venir...
-------------------------------------------------------------------------------
On a vu dans la dernière fois que :
- La VTOC (ou TRACK/SECTOR/MAP abrégé TSM (PLAN P/S)) se
trouve en piste $11/0
- La VTOC indique le premier secteur du CATALOG qui va indiquer les
autres...
- Le CATALOG se trouve en piste 17 ($11) sur un disk en DOS 3.3 normal
(!)
Il y a deux excellents ouvrages pour Apple qui traitent de DOS et
autres.
Ce sont : CLEFS pour APPLE //c et LE MANUEL DOS.
Ce fichier va traiter - inévitablement - en partie des memes
choses mais
si ce n'etait qu'une recopie de ses livres, je te les aurait
prétés.
En partie seulement on retrouvera les memes informations mais ici, il y
a
pleins de trucs fous en plus... Alors bonne chance...
==========
Il faut bien distinguer : DIRECTORY (le catalogue sur le disk ou
'répertoire')
CATALOG (la commade qui affiche le DIRECTORY)
Moi, je distingue pas...Le CATALOG, c'est le CATALOG... je te dis juste
ça
car certains fous disent DIRECTORY, d'autres REPERTOIRE et moi CATALOG.
Il faut
pouvoir se comprendre.
Je vais ici rappeller certains petits trucs du cours précedent
mais j'y suis
obligé pour une meilleure compréhension. On va
élargir le probleme du CATALOG
a la galette entière pour bien comprendre comment est
organisé chaque
fichier du CATALOG sur le disque. (Fichier Basic, Binaire ou Texte...)
Je sais, ça n'est pas vraiment du déplombage à
l'état pur mais ce sont des
connaissances qu'on ne peut pas négliger si l'on veut devenir un
déplombeur fou
Pourquoi faut-il absolument avoir ces
connaissances sur le dos ???
------------------------------------------------------------------
- Parce que les plombeurs les connaissent et LES EXPLOITENT BIEN pour
nous
compliquer la tache ! (Souvent les CATALOG sont
déplacés, les prompt sont
cachés au boot, les VTOC sont modifiées en
fonction du nombre de pistes
(-> ça nous apprend le nombre de piste du disk
original), et pleins d'autres
ruses que l'on peut, si on les connait, éviter...)
- Parce que l'on peut ainsi proteger SES PROPRES PROGRAMMES sous DOS...
(Dans MIAMI SOUND MACHINE MAKER, une musique que QTIPS avait
planquée sur une
autre piste posait à tous un super défi... Elle
etait tout simplement sur une
autre piste... Très peu de monde à trouvé
et il y avait 10 disks à gagner !!)
Mais ne serait ce que pour la première raison : LES PLOMBEURS
CONNAISSENT TOUT!
Il faut bien comprendre qu'il y a une multitude de plombeurs...
Certains connaissent certains trucs, d'autres connaissent d'autres
trucs...
Mais le déplombeur, lui, se trouve souvent seul devant un truc
plombé et il se
doit donc de TOUT savoir sur TOUT !!!
Avec ceci en tete, on va s'en aller apprendre de bien belles choses...
COMMENT LE DOS SE COMPOSE..
ET OU C'EST SUR LE DISK EN DOS ??
-------------------------------------------------------------------------------
On a deux choses à voir... Le DOS en lui meme que l'on
étudiera par étape de
boot, et La piste du CATALOG.
Le DOS boote en 3 étapes.. D'abord le boot 0 chargé par
la ROM...
Ensuite, la Routine de Lecture/Ecriture d'une Piste/Secteur. (RWTS)
Ensuite, le Command Handler (ou "File Manager") où sont
gérés toutes les
commandes du DOS (LOAD,SAVE,BLOAD,BSAVE,INIT,CATALOG..etc)
La piste du catalog se décompose en 2 parties... D'abord le
CATALOG en lui
meme (les données qui sont lues et éxaminées avant
l'affichage du CATALOG,
le chargement ou la sauvegarde d'un fichier sur disk) puis la VTOC.
VTOC signifie Volume Table Of Contents.. Elle contient le plan
(codé en
binaire) de tous les secteurs libres d'un disk sous DOS.
Evidemment, au départ, quand on formatte un disk par INIT, la
VTOC indique bien
que les pistes contenant le DOS et la piste du CATALOG sont
occupées et de meme
pour les secteurs contenant le programme de boot (HELLO?). Normal...
Sinon
sauver un programme pourrait "écraser" le DOS ou le CATALOG !!...
Voici le plan d'un disk sous DOS sans aucun programme dessus.
Ne tenez pas compte du Buffer RWTS que vous croiserez ici,
on en reparlera dans un prochain cours.. (Cours 12)
Les caracteres indiquent les trucs suivants : "0" .Boot 0
du DOS 3.3
"R" .RWTS du DOS
Horizontal : Les
pistes
"B" .BUFFER RWTS du DOS
Vertical : Les
secteurs
"D" .COMMAND HANDLER du DOS
"C" .Secteurs du CATALOG
"V" .VTOC
"." .Secteurs libres
___________________________________________________________________________
!
!
! P / 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2
2 2 !
! 0 1 2 3 4 5 6 7 8 9 A B C D E F 0 1 2 3 4 5 6
7 8 9 A B C D E F 0 1 2 !
!
!
! 00 0 D D . . . . . . . . . . . . . . V . . . . . . . . . . . .
. . . . . !
! 01 R D D . . . . . . . . . . . . . . C . . . . . . . . . . . .
. . . . . !
! 02 R D D . . . . . . . . . . . . . . C . . . . . . . . . . . .
. . . . . !
! 03 R D D . . . . . . . . . . . . . . C . . . . . . . . . . . .
. . . . . !
! 04 R D D . . . . . . . . . . . . . . C . . . . . . . . . . . .
. . . . . !
! 05 B D . . . . . . . . . . . . . . . C . . . . . . . . . . . .
. . . . . !
! 06 R D . . . . . . . . . . . . . . . C . . . . . . . . . . . .
. . . . . !
! 07 R D . . . . . . . . . . . . . . . C . . . . . . . . . . . .
. . . . . !
! 08 R D . . . . . . . . . . . . . . . C . . . . . . . . . . . .
. . . . . !
! 09 R D . . . . . . . . . . . . . . . C . . . . . . . . . . . .
. . . . . !
! 0A . D . . . . . . . . . . . . . . . C . . . . . . . . . . . .
. . . . . !
! 0B D D . . . . . . . . . . . . . . . C . . . . . . . . . . . .
. . . . . !
! 0C D D . . . . . . . . . . . . . . . C . . . . . . . . . . . .
. . . . . !
! 0D D D . . . . . . . . . . . . . . . C . . . . . . . . . . . .
. . . . . !
! 0E D D . . . . . . . . . . . . . . . C . . . . . . . . . . . .
. . . . . !
! 0F D D . . . . . . . . . . . . . . . C . . . . . . . . . . . .
. . . . . !
!___________________________________________________________________________!
Le Boot est simple.. La piste $00/00 (Boot 0) est chargée par la
ROM $C600,
et charge (toujours avec la ROM) la RWTS des secteurs $1-9 de la piste
$00
en $B700. (Secteur $1 en $B700, Secteur $2 en $B800... Le Buffer RWTS
qui
est en secteur $5 se trouve donc chargé en $BB00). La RWTS (JMP
$B700)
charge ensuite le DOS lui meme de la piste $2 4 à la piste $0 en
secteurs
et pistes décroissantes. Simple...
LE
'FILE MANAGER' DU DOS 3.3 (ORGANISATEUR DE FICHIERS)
-------------------------------------------------------------------------------
ON A TOUJOURS VU COMMENT CA MARCHE, ON A JAMAIS COMPRIS COMMENT
CA MARCHE !
On va ici parler de : VTOC, CATALOG, FICHIER A/B/T, TS Lists..
LA VTOC (Piste $11 Secteur $00)
===============================
La VTOC constitue une liste des secteurs vides ou utilisés du
disk. Chaque piste
est codée sur deux octets. Pour en voir une, charge un Editeur
de Secteur
quelconque et va en Piste $11/0.
Voici un exemple de VTOC, commentaires à l'appui:
READ: $11 $00
----------------------------
$00: 04 11 0F 03 00 00 FE 00 ; Octet $01 : Piste du premier
secteur du CATALOG
$08: 00 00 00 00 00 00 00 00 ; Octet $02 : Premier secteur du
CATALOG
$10: 00 00 00 00 00 00 00 00 ; Octet $03 : Type de DOS (Ici DOS
3.3)
$18: 00 00 00 00 00 00 00 00 ; Octet $06 : Numéro de
volume (254)
$20: 00 00 00 00 00 00 00 7A ; Octet $27 : Nbre de sect. maxi
dans une TS List
$28: 00 00 00 00 00 00 00 00 ; Octet $34 : Nbre de pstes maxi par
disk (35)
$30: 0D FF 00 00 23 10 00 01 ; Octet $36 ! (256) octets par
secteur
$38: FF FF 00 00 FF FF 00 00 ; Octet $37 ! (00 01) = (FF + 01) =
256
$40: FF FF 00 00 FF FF 00 00
$48: FF FF 00 00 FF FF 00 00 ; Les FF qui suivent forment la TSM
$50: FF FF 00 00 FF FF 00 00 ; (TSM en anglais TRACK SECTOR MAP.)
$58: FF FF 00 00 FF FF 00 00 ; (en francais PLAN PISTES SECTEURS)
$60: FF FF 00 00 FF FF 00 00 ;
$68: FF FF 00 00 FF FF 00 00 ;
$70: FF FF 00 00 FF FF 00 00 ;
$78: FF FF 00 00 FF FF 00 00 ;
$80: FF FF 00 00 FF FF 00 00 ;
$88: FF FF 00 00 FF FF 00 00 ;
$90: FF FF 00 00 FF FF 00 00 ;
$98: FF FF 00 00 FF FF 00 00 ;
$A0: FF FF 00 00 FF FF 00 00 ;
$A8: FF FF 00 00 FF FF 00 00 ;
$B0: FF FF 00 00 FF FF 00 00 ;
$B8: FF FF 00 00 FF FF 00 00 ;
$C0: FF FF 00 00 00 00 00 00 ;
$C8: 00 00 00 00 00 00 00 00 ;
$D0: 00 00 00 00 00 00 00 00 ;
$D8: 00 00 00 00 00 00 00 00 ;
$E0: 00 00 00 00 00 00 00 00 ;
$E8: 00 00 00 00 00 00 00 00 ;
$F0: 00 00 00 00 00 00 00 00 ;
$F8: 00 00 00 00 00 00 00 00 ;
Voici pourquoi on a crée la VTOC : - Pour indiquer la
piste/secteur du CATALOG
- Pour savoir quels sont les secteurs libres
Voici ce qui nous interesse dans la VTOC : - La piste et le secteur du
CATALOG
(en tant que déplombeurs
fous)
- Le nombre de pistes de l'original
Si tu veux, je t'expliquerais comment les secteurs vides ou
occupés sont
indiqués dans ce PLAN du disk. Aucun bouquin correct ne parle de
ça, meme
des bouquins Américains ou Anglais.
Voici la liste non hexaustive des divers programmes permettant de voir
la TSM
- COPY
II+
- Option TRACK SECTOR MAP
- DISK MUNCHER 8.0 - Option CATALOG
SOURCE ou TARGET (TARGET = Cible)
- DISKFIXER 4.0 -
Option 'V' pour VTOC EDITOR (pour modifier la TSM)
- THE VTOC CONSTRUCTOR - Programmé par KRISTO (à
paraitre dans HEBDOGICIEL)
On a vu dans un des cours précédents que la VTOC
était 'pointée' dans le DOS
par les adresses suivantes :
- $AC01 pour la piste (Dans un dos normal : 11)
STocké en $B5FA
- $B00D pour le secteur (Dans un dos normal : 00) STocké ds Y
QUE SE PASSE T'IL QUAND ON TAPE CATALOG ???
===========================================
Si on liste le DOS à partir de $AC00, on a :
AC00- A9 11 LDA
#$11 ; Piste de la VTOC
AC02- 8D FA B5 STA $B5FA...
Si on liste le DOS à partir de $B009, on a :
B009- AE FA B5 LDX $B5FA
B00C- A0 00 LDY
#$00 ; Secteur de la VTOC
B00E- 4C 52 B0 JMP $B052
Si on liste le DOS à partir de $B052, on a :
B052- 8E EC B7 STX $B7EC ; $B7EC correspond à
la piste à lire
B055- 8C ED B7 STY $B7ED ; $B7ED correspond au
secteur à lire
et peut après se trouve un accès RWTS pour lire le
secteur de la VTOC. OK?
Le DOS vient donc de charger en mémoire le secteur de la VTOC,
Il va ensuite
éxaminer les octets $01 et $02 pour aller trouver le premier
secteur du CATALOG
et le lire.
Ici, c'est un DOS 3.3 normal et il va trouver 11 0F. Il lit donc la
piste $11/F
et inscrit à l'écran le début du CATALOG avant,
s'il reste des programmes, de
passer au secteur suivant du CATALOG...
Plusieurs questions se posent alors :
- Comment est organisé le CATALOG ?
- Comment sait il que c'est la fin du CATALOG ?
- Comment sont codés le type du fichier, sa longueur, son nom ?
- Comment sont inscrits les fichiers effacés ?
(on peut les dé-éffacer avec le COPY II+ 5.x
Option UNDELETE FILES)
TOUT SUR LE CATALOG
===================
READ: $11 $0F (D'après les octets $01 et $02 de la VTOC)
*---------------------------------------*
! $00: 00 11 0E 00 00 00 00 00 ........ !
! $08: 00 00 00 12 0F 82 C8 C5 ......HE !
! $10: CC CC CF A0 A0 A0 A0 A0 LLO !
! $18: A0 A0 A0 A0 A0 A0 A0
A0 !
! $20: A0 A0 A0 A0 A0 A0 A0
A0 !
! $28: A0 A0 A0 A0 06 00 14 0F .... !
! $30: 81 C9 CE D4 C5 C7 C5 D2 .INTEGER !
! $38: A0 A0 A0 A0 A0 A0 A0
A0 !
! $40: A0 A0 A0 A0 A0 A0 A0
A0 !
! $48: A0 A0 A0 A0 A0 A0 A0
12 . !
! $50: 00 15 0F 80 D4 C5 D8 D4 ....TEXT !
! $58: C5 A0 A0 A0 A0 A0 A0 A0
E !
! $60: A0 A0 A0 A0 A0 A0 A0
A0 !
! $68: A0 A0 A0 A0 A0 A0 A0
A0 !
! $70: A0 A0 03 00 16 0F 81 C1 .....A !
! $78: D0 D0 CC C5 D3 CF C6 D4 PPLESOFT !
! $80: A0 A0 A0 A0 A0 A0 A0
A0 !
! $88: A0 A0 A0 A0 A0 A0 A0
A0 !
! $90: A0 A0 A0 A0 A0 06 00 17 ... !
! $98: 0F 84 C2 C9 CE C1 C9 D2 ..BINAIR !
! $A0: C5 A0 A0 A0 A0 A0 A0 A0
E !
! $A8: A0 A0 A0 A0 A0 A0 A0
A0 !
! $B0: A0 A0 A0 A0 A0 A0 A0
A0 !
! $B8: 1A 00 00 00 00 00 00 00 ........ !
! $C0: 00 00 00 00 00 00 00 00 ........ !
! $C8: 00 00 00 00 00 00 00 00 ........ !
! $D0: 00 00 00 00 00 00 00 00 ........ !
! $D8: 00 00 00 00 00 00 00 00 ........ !
! $E0: 00 00 00 00 00 00 00 00 ........ !
! $E8: 00 00 00 00 00 00 00 00 ........ !
! $F0: 00 00 00 00 00 00 00 00 ........ !
! $F8: 00 00 00 00 00 00 00 00 ........ !
*---------------------------------------*
Dans chaque secteur du CATALOG, on trouve :
- Octets $01 et $02 : Piste et secteur du secteur suivant du CATALOG
- Octets $0B à $2D : - La piste de la liste des secteurs du
programme 1 (en $B)
- Le secteur de la liste des sect. du programme 1 (en $C)
- Le type du programme 1 (en $D) (voir tableau TYPE)
- Le nom du programme 1 en ASCII (30 caractères)
- Le nombre de secteurs du programme (en $2C)
- Un octet d'espacement pour le programme 2 ($2D:00)
et on recommence ainsi (pareil qu'en $0B) pour le programme suivant...
- Octets $2E à $50 : - Description programme 2
- Octets $51 à $73 : - Description programme 3
- Octets $74 à $96 : - Description programme 4
- Octets $97 à $B9 : - Description programme 5
- Octets $BA à $DC : - Description programme 6
- Octets $DD à $FF : - Description programme 7
TABLEAU DES TYPES DE PROGRAMMES : - 80 : FICHIER TEXTE
******************************* - 81 : FICHIER INTEGER
- 82 : FICHIER APPLESOFT
- 84 : FICHIER BINAIRE
Lorsque le DOS lit des 00 a l'emplacement suivant des programmes du
CATALOG,
il estime que c'est la fin du CATALOG. Ainsi, ici, il va voir le
premier fichier
et l'inscrire à l'écran, va passer au second et ainsi de
suite jusqu'au
quatrième. Quand il cherchera les data concernant le cinquieme,
il ne verra que
des 00 et arretera là le CATALOG.
Ceci explique que : - On trouve en piste $11 02 aux octets $1/2 : 11 01
et - La piste $11 01 n'indique aucun autre secteur suivant...
C'est pour limiter le CATALOG à 14 secteurs (de $F à $1)
soit à 15*7 programmes
donc 105 programmes par disk. Il est evidemment possible d'augmenter ce
nombre
en 'détournant' les secteurs du CATALOG pour en mettre plus de
14 utilisables.
On à vu dans un cours précedent comment avoir un CATALOG
INFINI. Ceci n'est
evidemment pas possible si le disk comporte moins de 6 programmes car
le DOS
va reperer la fin du CATALOG dés la lecture du premier secteur.
EXERCICE
-------------------------------------------------------------------------------
Si vous tapez CATALOG avec le disk contenant un tel CATALOG en piste
$11/F, que
va-t-on voir s'afficher ?
-------------------------------------------------------------------------------
On a vu que les 2 premiers octets avant chaque programme concernent le
secteur
où se trouve la TS List concernant le programme en question...
TOUT SUR LA TS List
===================
Voici la tete d'une TS List : (ici pour le programme HELLO)
$00: 00 00 00 00 00 00 00 00 ! Dans le cas où la TS list ne
puisse pas
$08: 00 00 00 00 12 0F 12 0E ! tenir dans un seul secteur, les octets
$10: 12 0D 12 0C 13 0F 13 0E ! $01 et $02 indiqueront le secteur de la
$18: 00 00 00 00 00 00 00 00 ! suite de la TS list comme pour le
catalog...
Je résume rapidement avec un petit organigramme nul:
===============================================================================
COMMANDE 'LOAD HELLO'
A ==> Lis la VTOC
B ==> Lis le premier secteur du CATALOG
C ==> Cherche
'HELLO
'
D --> Trouvé ==> Charge la TS list de HELLO (GOTO H)
E --> Pas trouvé ==> Passe au secteur suivant du
CATALOG
F --> C'est le dernier ==> Affiche
'FILE NOT FOUND'
G --> Ce n'est pas le dernier ==>
lis le secteur (GOTO C)
H ==> Lis les secteurs du programme un par un en mémoire...
I --> La TS list est finie... ==>
GOTO FIN
J --> La liste fait deux secteurs
==> Lecture du second secteur + GOTO H
FIN ==> Rend la main à l'utilisateur. Le programme HELLO
vient de se charger.
===============================================================================
A QUELLE ADRESSE LE FICHIER VA T-IL SE CHARGER ???
==================================================
POUR LES FICHIERS BINAIRES
==========================
Il se présente deux cas... Le cas où l'adresse est
indiquée par l'utilisateur
et le cas où elle ne l'est pas...
1er CAS : ]BLOAD BINAIRE,A$2000. BINAIRE va obligatoirement se charger
en $2000
2em CAS : ]BLOAD BINAIRE. Tout dépend du type du fichier !!!
Pour bien comprendre où le fichier va se charger dans le
deuxième cas, il faut
bien comprendre le contenu des secteurs d'un fichier sur disk...
QUESTION - Vous tapez BLOAD BINAIRE. Il est evident que le fichier
BINAIRE ne
va pas se
charger n'importe où en mémoire mais au contraire toujours
à
la meme place à chaque BLOAD. Où donc sur le disk se
trouve
l'adresse
de départ de BINAIRE.? (ou 'STARTING
ADDRESS') ???
Le tableau ci dessous explique tout :
-------------------------------------------------------------------------------
TYPE DU FICHIER SECTEUR OCTET (Hex)
CONTENU
BASIC
1er
0
Longueur du programme (Adresse Basse)
1
Longueur du programme (Adresse Haute)
2 à FF Début du
programme...
TEXTE
NE PEUT ETRE CHARGE Représentation des
caractères par
(PAS D'ADRESSE DE DEPART) leur valeur ASCII. Un caractère
par
Octet. (00 indique la fin du fichier)
BINAIRE
1er
0
Adresse de début en RAM (Adr. Basse)
1
Adresse de début en RAM (Adr. Haute)
2
Longueur de la zone en RAM (.Basse)
3
Longueur de la zone en RAM (.Haute)
4 à FF DATA BINAIRES...
-------------------------------------------------------------------------------
Donc, pour revenir à notre 2em CAS : ]BLOAD BINAIRE va entrainer
les opérations
suivantes par le DOS:
- Charge la VTOC
- Charge les secteurs du CATALOG un à un jusqu'à ce que
le DOS trouve 'BINAIRE'
- Charge la TS list de BINAIRE
- Charge les secteurs indiqués par la TS list en mémoire
à l'adresse indiquée
par les octets $00 et $01 du premier secteur de BINAIRE
chargé dans un
BUFFER du DOS.
==========================================
QUELLE ADRESSE POUR LES FICHIERS BASIC ???
==========================================
L'adresse de chargement d'un fichier BASIC est indiquée en page
0 aux adresses
suivantes:
$67 : Adresse basse de chargement du programme BASIC (Initialement 01)
$68 : Adresse haute de chargement du programme BASIC (Initialement 08)
On peut modifier ces adresses avant un LOAD pour charger le programme
ailleurs
en mémoire afin d'éviter une routine logée en $800
ou $900 par exemple...
L'adresse de fin d'un programme BASIC est en $AF et $B0.
Ces quatre adresses dépendent de la ROM BASIC, pas du DOS mais
le DOS s'en sert
(Exemple : LA BETE DU GEVAUDAN. Le programme principal en BASIC est
chargé en
$7800 ou environs et s'execute parfaitement normalement... Des routines
machine
sont en $800 et environs)
LES FICHIERS EFFACES PUIS UNDELETéS
===================================
(Grace au COPY II+ 5.x)
LORSQUE L'ON TAPE ]DELETE HELLO, tous les secteurs du programme ne vont
pas
etre éffacés, ca ferait perdre du temps et surtout, la
possibilité de récuperer
le programme.
En fait, les seules différences se trouvent :
- dans la TSM (TRACK SECTOR MAP) dans laquelle les secteurs
précedemment
occupés par HELLO sont marqués comme libres...
- dans le CATALOG dans lequel le programme est noté comme
éffacé.
Un programme éffacé du DOS est différent d'un
programme éxistant juste par deux
octets :
Sur un programme effacé :
-------------------------
- le dernier octet du nom est remplacé par la piste de la TS
list du programme
- l'octet piste de la TS list est mis à $FF
Aussi quand le COPY II+ 5.x fait réapparaitre un programme du
CATALOG, ce n'est
pas un miracle. C'est juste qu'aucun secteur du programme n'a pas
été éffacé
et qu'il replace l'octet piste à sa place initiale, laissant le
dernier octet
du nom à $A0 (un espace).
J'espere que tu as tout compris sur le DOS et compagnie...
En attendant, voici un bref inventaire de tous les meilleurs DOS
actuellement
en circulation..
Inventaire des DOS disponibles
===============================================================
1. DOS TRACER (ou PAUL DOS)
-------------------------------------------------------------------------------
Il affiche en bas à droite de l'écran la piste, le
secteur et la commande
donnée avant l'accès RWTS. Pratique pour retrouver sur
quel secteur agit une
vérif' de disk faite à travers la RWTS du DOS d'un
original.. (ex : Opium)
2. DOS TRACER PATCHMAN
-------------------------------------------------------------------------------
En cours de réalisation au 22/08/87. C'est un DOS TRACER
amélioré...
3. FLASH DOS par INDIANA DISK
-------------------------------------------------------------------------------
Aucun commentaire pour le moment.. je le décortique avant d'en
parler..
4. PRONTO DOS
-------------------------------------------------------------------------------
Commande très sympa : TYPE pour lire un fichier texte
5. ZDOS 2.2
-------------------------------------------------------------------------------
Commande très sympa : HIDE pour faire disparaitre un fichier du
catalog sans
pour autant l'effacer du disk.. on peut toujours le
RUN/BRUN/BLOAD/LOADer !!
6. DAVID DOS (ou HIDOS)
-------------------------------------------------------------------------------
Commandes sympa : FIND pour trouver des octets (on va voir ca dans le
cours 8),
TLOAD, TLIST pour lire des fichiers, AL pour connaitre l'adresse de
départ et
de fin du dernier fichier chargé, DISA pour désassembler
la mémoire à l'écran..
et pleins d'autres...
7. DAVID DOS II
-------------------------------------------------------------------------------
Le meme que le 1er, sans la commande FIND (ils craignent les pirates ou
quoi?).
Commande très sympa en plus : TSAVE !!! c'est un éditeur
de texte complet quoi!
8. DOS 3.3 MASTER
-------------------------------------------------------------------------------
Question commandes, question programmation, c'est le premier donc le
plus nul,
mais souvent, des programmes de plombages ne plomberont que si le disk
à
plomber boote sur un DOS 3.3 MASTER $9600 ou meme des fois, $1600 comme
à
l'aube des temps...
9. DOS $1600 (ou "WILD-DOS")
-------------------------------------------------------------------------------
Utile pour la mise en catalog. On en reparlera au moment du cours 11.
10. DOS SREAD/SWRITE
-------------------------------------------------------------------------------
Voir futur cours 7. SREAD permet de lire un secteur et SWRITE de
l'écrire..
Plus besoin de se casser avec la RWTS comme dans le cours 3.
11. DOS EOR 1.00
-------------------------------------------------------------------------------
Voir GODFATHER'S PRODUCTS #2... Sans cesse révisé..
12. DOS CODE SECTEURS 1.00
-------------------------------------------------------------------------------
Voir GODFATHER'S PRODUCTS #7... Sans cesse révisé..
...A la
prochaine.
Amicalement, GODFATHER!
===============================================================================
COURS 4 /
EXERCICES
Update 04/09/87
===============================================================================
Révision 3.61
J'essaye à chaque cours d'associer un original à
déplomber mais pour certains
cours tels que celui ci, ce n'est pas possible, le sujet traité
n'étant pas
directement attaché au déplombage... Pour compenser, je
vous ai fait ce fichier
à exercice...
Attention! Le cours doit obligatoirement précéder la
lecture de ce fichier.
Bossez bien le cours et revenez par ici ensuite..
Exercice 1 : Retrouver un Catalog caché
---------------------------------------------
Où est DISK RECOVERY ???
Je vous ai déjà parlé de l'outil de
déplombe de ce cours : DISK RECOVERY
or, ce programme n'est pas, comme d'habitude en CATALOG. Mais alors, je
vous en parle, je vous dit que je vous l'ai copié et il n'est
pas sur ce
disk ?? QUID ?? Alors, comment le faire réapparaitre ???
Je vous aide : ce second catalog est placé sur la piste $10 de
la face B de
ce cours !!
L'EXERCICE est donc de récupérer ce fichier et de
le sauver en
=========== CATALOG normal sur ce disk. Pour le retrouver, pensez
(DIFFICULTE : **) à la piste que vous avez : SON NOM 'DISK
RECOVERY'...
donc le nom que vous devez chercher sur ce disk. Pour le recuperer,
pensez
aux adresses qui permettent de faire CATALOG avec un CATALOG sur une
autre
piste que la piste habituelle $11. Pour le sauver sur un disk vierge,
pensez
à remettre les valeurs normales à ces adresses et
à chercher son adresse de
départ et de fin dans le DOS... Ce n'est pas dur si vous avez
tout bien
assimilé des deux derniers cours...alors je vous souhaite Bonne
chance !!!
ATTENTION !! N'ALLEZ PAS
PLUS LOIN !! VOICI LA SOLUTION !!
1. Où est Disk Recovery ???
-------------------------------------------------------------------------------
L'adresse primordiale à avoir retenu est : $AC01.
Elle se trouve dans la routine CATALOG du DOS, et son contenu indique
au DOS
la piste sur laquelle se trouve situé le catalog du disk en DOS
dans le drive.
Je vous ait dit que la piste du second catalog était la piste
$10.
Il suffit donc de faire : ]CALL-151 puis *AC01 : 04 puis *A56EG (ou
CATALOG).
Et là, le catalog apparait avec le programme que l'on
recherchait comme seul
fichier !!..
Il suffit ensuite de faire un Bload, de regarder le contenu des adresses
$AA72,$AA73,$AA60,$AA61, de rectifier la piste du catalog en $AC01 ($11)
puis de faire un BSAVE sur un disk quelconque, en ayant
mémorisé le contenu
des 4 adresses précédemment éxaminées qui,
comme on le voit dans le cours,
correspondent à l'adresse de départ et à la
longueur du dernier fichier
à avoir été chargé par le DOS. (LOAD,
BLOAD, BRUN, RUN...), donc A$ et L$
pour le fichier DISK RECOVERY !! (]BSAVE DISK RECOVERY,A$803,L$2AFD,
car $AA72 : 03 08 et $AA60 : FD 2A)
Après le cours 8 (recherches en tout genre), vous auriez
été capable de
trouve la piste du catalog uniquement en recherchant le nom du fichier
en
ASCII, depuis la piste $00.. sans que je vous dise quelle était
le numéro
de cette piste !...
Amicalement, GODFATHER
===============================================================================
_ Les programmes de ce disk
________________________________________________
!
!
! DOS.CDI.S et DOS.FILE.MANAGER.S sont les 2 sources qui
composent le nerf !
! du DOS. Avec le source de toute la RWTS 3.3 donné dans
le précédent cours, !
! vous avez un DOS entièrement relogeable et modifiable
à volonté !!! !
! Ces 3 sources qui forment le Dos sont un véritable
trésor pour n'importe !
! quel programmeur éclairé
!
!
!
!
! DISKFILLER 3.1 est un programme sympa dont je suis l'auteur
avec mon cher !
! college Kristo.. Je vous en parle pas plus, y'a tout un fichier
dessus... !
!
!
! DISK RECOVERY est un autre programme sympa.. très simple
d'utilisation.. !
! mais il n'apparait pas au CATALOG.. !! C'est l'objet d'un
exercice... !
! allez voir le fichier
exercices..
!
!
!
! DISKET-SCOPIE est un programme de "visualitation de la
Vtoc"..
!
! Vous savez ainsi ce qui est libre.. ce qui est occupé..
agaga.. agaga.. !
!____________________________________________________________________________!
- Et là prochaine fois, mon capitaine ??..
- Ah! La prochaine fois, on va s'amuser..
- S'amuser, mon général ??
- Oui moussaillon.. s'amuser à signer les images des disks que
l'on a déplombé!
- Mais c'est facile.. On tape CATALOG puis..
- Oui mais s'il n'y a pas de catalog.. prenez un ELECTRONIC ARTS par
exemple
- Ben justement.. et ces techniques là, c'est classé TOP
SECRET !!!
- Ouah !!!...Alors à la prochaine capitaine..
COURS 5 : Signez vos disks
déplombés...
22/01/87 Par Godfather
===============================================================================
Révision 3.00
- COMMENT SIGNER LES DISKS QUE VOUS AVEZ DEPLOMBE ?!?...
(Les images qui se chargent en accès direct du disk et
nom pas en catalog)
- Pleins de nouveaux outils complètement TOP-SECRET :
- SMART SCAN + ERROR (C)
DAVID MICROCOSM
- CHASSEUR D'IMAGES
(C) HEBDOGICIEL (Prix 10000F Concours mensuel)
- QUICK
SEEKER (C) COCHONOU CRACK BAND
- PICTURE
FINDER (C) MISTER DD (TMC)
-
PICSCAN
(C) THE ALIEN
(NEW) -
AUTOSCAN
(C) CHIP SELECT
(NEW) - MANUAL
SCAN (C) COPYART
(NEW) - INDISCRETION 2.00 (C) PATCHMAN
-------------------------------------------------------------------------------
David Dos
Doc.
Godfather
-------------------------------------------------------------------------------
Salut!
Voici la doc complete du
David Dos 1, encore inédit à ma connaissance
dans la doc-teque des
applemaniaques francais..
Tout y est.. en anglais
malheureusement...
Bossez la bien! c'est un Dos
de pirate super utile !!
Amicalement, Godfather
-------------------------------------------------------------------------------
Page 1
DAVID-DOS
COPYRIGHT 1982 DAVID WESTON
INSTRUCTION MENU
1-SCROLLING
2-INSTALLING DAVID-DOS
3-USING DAVID-DOS
4-MACHINE NOTES
5-COPY PROTECTION
6-DISCLAIMER & NOTICE
(PRESS NUMBER)
PRESS ESC TO RETURN TO MAIN MENU
***************************************
SCROLLING
SCROLLING IS STOPPED WITH ANY KEY. THE SECOND PRESS, (ANY KEY),
RESTARTS
THE SCROLL AND DETERMINES YOUR SPEED UNTIL THE NEXT PAIR OF KEY PRESSES.
TYPICAL SPEEDS FOR THE SECOND KEY PRESS ARE:
B.......FASTEST
<-
->
SPC BAR
/
;.......SLOWEST
SCROLLING IS TERMINATED BY USING THE RETURN KEY ON THE SECOND KEY PRESS.
***************************************
INSTALLING DAVID-DOS
DOS, (RHYMES WITH MOSS), RESIDES ON YOUR DISKS IN TRACKS ZERO, ONE AND
TWO.
DAVID-DOS UPDATES DOS WITHOUT TOUCHING YOUR DISK PROGRAMS. YOU
MAY REMOVE
DAVID-DOS BY USING THE 'MASTER CREATE' PROGRAM ON YOUR DOS 3.3 SYSTEM
MASTER.
IF YOU HAVE A DISK WITH A SPECIAL DOS ON IT, THEN MAKE A BACK-UP OF IT
FIRST WITH COPYA ON THE APPLE SYSTEM MASTER AND INSTALL DAVID-DOS ON THE
BACK-UP COPY. THE SPECIAL DOS ON YOUR DISK MAY BE NECESSARY TO
RUN ITS
PROGRAMS, IN WHICH CASE DAVID-DOS MAY NOT WORK.
ALL INSTALLING IS DONE WITH ONE DISK DRIVE. YOU MAY PROCEED WITH
ALL THE
INSTALLATION FEATURES ON THE MENU WITH- OUT REINSERTING THE INSTALLATION
DISK.
YOUR ORIGINAL HELLO PROGRAM NAME AND TYPE ARE AUTOMATICALLY PRESERVED
DURING THE INSTALLATION.
THERE ARE THREE VERSIONS OF DAVID-DOS. NORMALLY YOU WILL USE NUMBER ONE.
Page 2
IF A PROGRAM WILL NOT RUN WITH DAVID- DOS (NO1) THE PROGRAM PROBABLY
REQUIRES A STANDARD CATALOG HEADING. USE DAVID- DOS WITHOUT FREE SPACE
(NO2), WHICH HAS A STANDARD CATALOG HEADING.
GREAT CARE WAS TAKEN TO KEEP DAVID-DOS STANDARD WITH ALL ENTRY ADDRESSES
PRESERVED AND ONLY TWO ROUTINES MOVED.
IN THE RARE INSTANCE YOUR PROGRAM STILL WILL NOT RUN THEN USE BARE-BONES
DAVID-DOS (NO3) WHICH HAS THE SPEED BUT NOT THE EXTRA COMMANDS OF NO1
& 2.
DAVID-DOS (NO3) DOES HAVE ONE EXTRA COMMAND: TLOD. NOTE THE SHORT
SPELLING.
INSTALLING (NO3) LEAVES YOUR ORIGINAL DOS INTACT EXCEPT FOR THE INIT
AREAS.
USE THE INIT FEATURE ON THE MENU FOR BLANK DISKS. THE INIT FEATURE
FORMATS
YOUR DISK AND INSTALLS DAVID-DOS. NOW YOU MUST SAVE YOUR HELLO PROGRAM.
SAVE THE PROGRAM USING THE HELLO NAME YOU YOU CHOSE. MAKE SURE
THE PROGRAM
TYPE YOU SAVE MATCHES THE TYPE YOU INITED WITH, (BASIC, BINARY, OR
EXEC).
THE DATE COMMAND (NO4) INSTALLS ON TOP OF THE FIRST TWO VERSIONS OF
DAVID-DOS. IT KNOWS IF YOU'RE USING THE WRONG DISK AND STOPS WITH A
MESSAGE. TO REMOVE THE DATE COMMAND SIMPLY RE-INSTALL
DAVID-DOS. THE DATE
COMMAND ROUTINE IS SET UP FOR THE MOUTAIN HARDWARE CLOCK CARD.
SEE THE
CATALOG FOR OTHER CLOCK CARDS.
***************************************
USING DAVID-DOS
WHEN LOADING OR RUNNING AN APPLESOFT OR INTEGER PROGRAM DAVID-DOS
SEARCHES
ALL THE SLOTS FOR THAT LANGUAGE. IF THE LANGUAGE IS FOUND THE RAM OR ROM
CARD IS AUTOMATICALLY TURNED ON. THIS ALSO APPLIES WITH HIDOS.
DAVID-DOS HAS THESE ADDED COMMANDS:
/......CATALOG
TLOAD..SPEED LOAD ALL TEXT FILES
TLIST..LIST ALL TEXT FILES
DUMP...BINARY/ASCII
DISA...DISASSEMBLE BINARY
AL.....ADDRESS/LENGTH OF LAST LOAD
HIDOS..MOVE DOS IN MEMORY TO CARD#0
FIND...FIND HEX CHARACTER SEQUENCES
DATE...PRINT MOUNTAIN HARDWARE DATE
(SPARE)FUTURE USE
HERE ARE THE COMMAND PARAMATERS:
TLOAD..A(DDR..L(EN..S(LOT..D(RIVE..V(OL
/...................S......D.......V
TLIST
DUMP...A......L
DISA...A......L
AL
HIDOS
FIND...HEX BYTES
DATE
THE A AND L MAY ALSO BE $A AND $L. ALL THESE COMMANDS
MAY BE USED IN
BASIC PROGRAMS USING D$ IN THE NORMAL WAY.
BASIC AND BINARY PROGRAMS ARE SPEED LOADED BYTE BY BYTE ON THE FIRST AND
LAST PAGES AND PAGE BY PAGE ON THE MIDDLE SECTORS. THIS GIVES
TOTALLY
ACCURATE HIGH SPEED LOADS. ALL SAVES ARE VERIFIED.
Page 3
TLOAD SPEED LOADS A RANDOM OR SEQUENTIAL TEXT FILE STARTING AT $1000 OR
ANY
ADDRESS YOU CHOOSE WITH THE 'A' PARAMETER. IF YOU WANT LESS
THEN THE
WHOLE FILE USE THE 'L' PARAMETER, OTHERWISE, TLOAD ALWAYS LOADS THE
WHOLE
TRACK & SECTOR LIST ALLOTTED TO THE FILE. THIS IS NECESSARY
BECAUSE DOS
NEVER RECORDS THE LAST BYTE OF A TEXT FILE. WE CAN'T LOOK FOR THE
FIRST
'0' AS THE END MARK BECAUSE WE ALSO LOAD RANDOM FILES AND THEY DON'T
USE AN
'0'. THEREFORE, TLOAD WITHOUT 'L' LOADS THE ENTIRE LAST SECTOR EVEN IF
THE
FILE ENDS IN THE MIDDLE OF THE SECTOR. YOU CAN, IF DESIRED, MAKE TLOADS
TO
EXACT LENGTH WITH 'L'.
THE TLIST COMMAND LISTS THE LAST TLOAD YOU HAVE MADE AND LISTS IT TO
WHATEVER LENGTH YOU LOADED IT.
YOU WILL GET A "FILE NOT FOUND" MESSAGE IF THERE HAS BEEN A LOAD OR A
BLOAD
BETWEEN TLOAD AND TLIST. RESULTS COULD BE UNPREDICTABLE IF THIS
SAFE-GUARD
WERE ABSENT.
STRETCHES OF ZEROS ARE EXCLUDED DURING TLISTING. IF YOUR TFILE IS
LESS
THAN ONE SECTOR LONG THERE MAY BE GARBAGE SHOWN PAST THE END OF
IT. THIS
IS NORMAL AND DUE TO THE WAY DOS HANDLES ONE SECTOR. THE GARBAGE
IS NOT
PART OF YOUR FILE.
SEE THE 'CREATE TLOAD STRING VARIABLES' UTILITY FOR APPLESOFT VARIABLES.
A RANDOM TEXT FILE WITH R>256 PUTS GAPS IN THE TRACK & SECTOR
LIST AND
TLOAD WILL STOP AT THE FIRST GAP.
THE DUMP AND DISA COMMANDS START AT $0 OR YOUR 'A'.
EXAMPLES: DUMP,A2048 OR DUMP,A$800
TO MAKE THEM 50 BYTES LONG USE 'L'.
EXAMPLE: DISA,A2048,L50
THE DUMP COMMAND SKIPS THE SOFT SWITCH- ES AT $C000. THE DISA COMMAND
DOES
NOT.
THE AL COMMAND SHOWS THE ADDRESS AND LENGTH OF THE LAST LOAD, BLOAD,
TLOAD,
DUMP, OR DISA WITH ONE EXCEPTION. THE AL COMMAND SHOWS L65059 FOR
A TLOAD
THAT DIDN'T SPECIFY 'L'.
THE AL COMMAND MAY BE USED FOR HANDY HEX/DECIMAL CONVERSION. START A
DUMP
AT THE NUMBER OF INTEREST, STOP IT AND HIT AL.
THE / COMMAND, (UNSHIFTED ?), IS A CONVENIENT WAY TO QUERY YOUR DISK. TO
EXIT THE CATALOG ON ANY PAGE, PRESS CTRL C INSTEAD OF RETURN. THE
CATALOG
HAS ALSO BEEN FIXED TO SHOW FILE LENGTHS UP TO 65535 SECTORS.
THE HIDOS COMMAND FIRST CHECKS FOR A LANGUAGE CARD IN SLOT #0, THEN
CHECKS
FOR A DAVID-DOS DISK IN THE DRIVE. YOU WILL GET AN ERROR MESSAGE IF A
DAVID- DOS DISK IS NOT IN THE DRIVE. IF YOU ARE USING ONERR GOTO,
THE
NUMBER FOR THIS ERROR IS 32.
HIDOS THEN LOADS DOS RESIDING IN MEMORY TO THE CARD AT $DD00.
HIMEM: IS
SET AT $BE00. MAXFILES IS AUTOMATICALLY LIMITED TO FIVE.
ALL BASIC
PROGRAMS WHICH DO NOT PEEK OR POKE DOS DIRECTLY WILL RUN FINE.
HIDOS
CLEARS MEMORY FROM $9500 TO $BFFF DURING EXECUTION.
THE CATALOG SHOWS HIDOS AS 'VOL-H-FREE'
Page 4
HIDOS MAY BE USED IN BASIC PROGRAMS. YOU CAN MAKE AN APPLESOFT TURNKEY
HELLO PROGRAM WITH IT.
EXAMPLE: 10 D$ = CHR$(4): POKE 217,0
20 PRINT
D$"HIDOS"
30 POKE
103,1: POKE 104,8
40 D$ =
CHR$(4)
50 PRINT
D$"PR#3"
60 THE
REST OF YOUR PROG.
LINE 10 CLEARS THE INTEGER LINE# PTR.
LINE 30 RESETS THE PROGRAM 1ST STATEMENT ADDRESS TO $801. STRING
STATEMENTS
SUCH AS A$="FUN" OR DIM A$(X,Y) SHOULD COME AFTER LINE 30. WE
REDID LINE
10 BECAUSE THE D$ STRING WAS LOST DURING THE EXECUTION OF HIDOS.
LINE 50
IS FOR TURNING ON IIE 80 COL CARD IF DESIRED.
FIND AND DATE ARE AVAILABLE IN THE HIDOS MODE ONLY.
FIND SEARCHES FOR ANY HEX SEQUENCE UP TO 31 BYTES LONG. HIT
RETURN BEFORE
ENTERING THE BYTES. PUT A SPACE BETWEEN EACH BYTE.
EXAMPLE:
KEYBOARD ENTRY SCREEN
FIND
FIND
HIT RETURN FIND HEX:
20 58 FC
FIND HEX:20 58 FC
HIT RETURN (FOUND
ADDRESSES)
FIND IS AN INPUT TYPE COMMAND. WHEN FIND IS USED IN A PROGRAM
THERE MUST
BE AN INPUT BEFORE THE PROGRAM CONTINUES.
TYPE DATE TO PRINT: DATE 12/31/82
USE CALL IN A PROGRAM:
10 PRINT "WE SHIPPED TODAY,";
20 CALL 48659
30 PRINT ", BY UPS."
WE SHIPPED TODAY, 12/31/82, BY UPS.
FOR PRINTING THESE INSTRUCTIONS AND FOR MORE EXAMPLES AND UTILITIES, SEE
THE CATALOG ON THIS DISK.
***************************************
MACHINE NOTES
TWO EXTRA VARIABLES ARE USED IN ZERO PAGE. THEY ARE $1D & $1E. THEY
USUALLY
HAVE THE ENDING ADDR OF LOADS IN THEM.
DURING LOADS THE VALUES OF $20-$24 ARE SAVED, THE VARIABLES USED, THEN
THE
ORIGINAL VALUES RESTORED.
THE L PARAMETER HAS BEEN CHANGED FROM 7FFF TO FFFF ALLOWING ANY LENGTH
SAVE.
$45 IS NOT USED IN D-D0S, ELIMINATING INTERRUPT CRASHES.
Page 5
HIDOS LOCATIONS OF INTEREST:
HIDOS............$DD00
INDIRECT JUMPS...$D000
FIND.............$D054
DATE.............$D0E4
BANKSW CALL DATE.$BE13
SWITCH TO DOS....$BF68
SWITCH TO BASIC..$BEA1
LENGTH...........$BF60
ADDRESS..........$BF72
FMGRLIST.........$BFBB
IOB..............$BFE8
DAVID-DOS INSTALLATION IMAGE:
RAM $4000 DISK T6-S1
$64FF T8-S5
THE FIND COMMAND READS $D000.$FFFF ON THE MOTHER BOARD AS DOES DISA AND
DUMP. PATCH $D0AB:EA B1 4E TO HAVE FIND READ THE LANGUAGE CARD IN SLOT
ZERO.
***************************************
COPY PROTECTION
I HAVE LEFT DAVID-DOS UNPROTECTED TO MAKE IT MOST CONVENIENT AND USEFUL
FOR
YOU. I TRUST YOU WILL RESPECT MY POLICY. TO MAKE A BACK-UP USE
COPYA ON
THE DOS 3.3 SYSTEM MASTER.
FOR THOSE FEW WHO LIKE TO GIVE OUT OR SELL COPIES THERE IS A SERIAL
NUMBER
IN THE CODE AND RECORDS ARE KEPT FOR TRACING DOWN ILLEGAL COPIES.
IF YOU RECEIVED DAVID-DOS FREE AND YOU FIND THAT IT IS WORTH $39.95 TO
YOU,
SEND THE AMOUNT TO ME AND I WILL SEND YOU DAVID-DOS WITH THE LATEST
LIBRARY
OF UTILITIES AND SOFTWARE PATCHS.
I WILL BE HAPPY TO RECEIVE YOUR IDEAS AND COMMENTS ABOUT DAVID-DOS AND
YOUR
NEW APPLICATIONS OF IT.
THANK YOU FOR BUYING MY SOFTWARE.
DAVID WESTON
***************************************
DISCLAIMER OF ALL WARRANTIES
DAVID DATA & APPLE COMPUTER, INC. MAKE NO WARRANTIES, EXPRESS OR
IMPLIED,
ABOUT THE QUALITY, PERFORMANCE, MERCHANTABILITY, OR FITNESS FOR ANY
PARTICULAR PURPOSE OF THIS SOFTWARE AND INSTRUCTIONS. THE ENTIRE
RISK AND
COST IS WITH THE BUYER FOR ANY DIRECT, INDIRECT, INCIDENTAL, OR
CONSEQUENTIAL DAMAGES OR EXPENSES RESULTING FROM THE USE OF THIS
SOFTWARE
AND INSTRUCTIONS, EVEN IF DAVID DATA HAS BEEN ADVISED OF THE
POSSIBILITY OF
SUCH DAMAGES. SOME STATES DO NOT ALLOW ALL OF THE ABOVE.
NOTICE: DAVID DATA RESERVES THE RIGHT TO MAKE IMPROVEMENTS IN
THIS PRODUCT
AT ANY TIME AND WITHOUT NOTICE.
***************************************
===============================================================================
COURS 4 PROTECTION FICHIERS
DOS
Update 01/09/88
===============================================================================
Révision 1.00
Cet update au cours 4 découle du cours 21.. des choses que
j'avais pour ainsi
dire oublié de vous dire et qui se reveleront utiles très
bientot.. dés
maintenant à vrai dire, si vous souhaitez proteger vos
données sur disk,
ou bien dans l'avenir avec de nombreux originaux dont le Starglider de
Rainbird Software du méga-cours 21.
Les chiffres ne veulent rien dire, vous le savez.. alors sachez aussi
que
vous pouvez - si vous penser maitriser un minimum les instructions
assembleur -
dés maintenant commander ce cours 21, super interessant croyez
le bien..
Je ne vais ici developper qu'un très infime aspect de la
protection trouvée sur
starglider, et retrouvée sur de nombreux autres originaux..
(dont - de mémoire
- Ultima 4..) dans ce cours car vous allez le voir, cela tourne autour
du dos,
à l'origine.. mais on peut aller plus loin que ca, comme on va
le voir.
Le probleme est le suivant. Le programme à protéger est
en catalog. on a
plombé - exemple - son disk, planqué son catalog comme je
l'ai fait sur ce
cours (2eme catalog : voir exercices) - etc.. - et on veut encore
rajouter
quelque chose. On veut que, meme si le pirate arrive à retrouver
et à afficher
le bon catalog contenant le programme "SECRET" par exemple, il n'arrive
pas à
le charger normalement.
L'effet est simple, c'est un peu comme un tour de magie..
On tape CATALOG pour avoir ceci (exemple) :
DISK VOLUME 254
B 019 PROGRAMME1
B 034 PI.PROPAGANDE
A 005 SECRET
Le programme1 ne nous interesse par, l'image non plus, car on se sent
beaucoup
plus attiré par le programme "secret".. c'est humain, n'est ce
pas..
donc, ce programme étant en basic, on essaye de taper ]LOAD
SECRET.
seulement, le dos, après avoir fait un accès disk au
catalog nous renvoie le
message "FILE NOT FOUND".. et pourtant, le fichier est bien
présent sur la
disquette.. on le voit bien au catalog.. !
Vous aurez beau rééssayer autant de fois que vous le
penserez utile, cela
n'aura aucun effet de plus que ce message file not found.
Logiquement, la seule solution à ce fait est que le fichier ne
s'appelle pas
simplement "SECRET" mais que d'autres caractères s'ajoutent
à ce nom.. mais
attention, des caractères INVISIBLES bien sur puisqu'ils ne
s'affichent pas
au catalog, donc des caractères - c'est la seule solution
logique - de
controle !.. (ctrl-a par exemple, est un caractère de controle.
rappelez vous
cette touche au milieu tout à gauche de votre clavier).
Alors comment faire, si c'est bien la solution pour voir quels sont ces
caractères.. ma foi.. et bien la seule solution est d'aller voir
sur le disk
directement.. dans ce catalog.
Il se présente alors deux cas.. si le catalog est en piste $11
et s'il ne
l'est pas.
Si le catalog est en piste $11, il suffit de booter copy II+ 5.x du disk
copy enfoires et d'utiliser les options complémentaires à
l'option
catalog de cet utilitaire universel dos. Faites donc CATALOG /HIDDEN
CHARS
et inserez le disk concerné dans le drive.. vous aurez ainsil
l'affichage
des caractères cachés, de quels caracteres, dans quels
programmes, et à
quel endroit dans le nom de chaque programme protégé
ainsi anti analyse...
Je ne vous conseille aucunement de le renommer sans caractères
de controle
pour pouvoir le charger plus simplement car s'il est utile au pirate (au
déplombage) c'est qu'il est chargé par le soft en
question donc quelque part
sur l'original se trouve un LOAD ou BLOAD (etc..) suivi du nom avec
caract.
de ctrl_ pour trouver ce fichier. si vous changez ce nom dans le
catalog,
le programme ne marchera plus !!
La seule chose à faire est donc de bien noter ce nom avec les
emplacement des-
et les caractères de controle. et de faire comme tout à
l'heure un load ou un
bload en tapant CTRL-? aux bons moments lors de la frappe du nom du
programme
à charger et étudier.
Si le catalog (c'était le 2nd cas à voir) ne se trouve
pas en $11 00, il faut
l'y mettre. Pour cela, vous devrez travailler sur une copie de ce soft
- que
vous jeterez après car on va se la bousiller rien que pour
retrouver le nom de
ce soft - et copiez le secteur $00 de la piste du catalog en piste $11
00
quoi qu'il y ait à cet endroit là (sauf un bout dudit
catalog!)...
ensuite, bootez copy II+ 5.x et faites ce que j'ai cité deux
paragraphes
ci-dessus. mais n'oubliez pas que vous venez de killer le secteur $11
00 de
cette copie donc jetez là et travailler sur une bonne copie
dés que vous
aurez trouvé le vrai nom du fichier que vous cherchez à
recuperer.
Si le disk en question est en format plombé, il faudra le
déplomber (convertir
tout au moins, au format 3.3) avant d'aller voir les vrais nom de ses
fichiers.
Il y a d'autres méthodes - avec le diskfixer 4.00 notamment -
mais c'est la
methode la plus logique et simple (et de toutes facons, cette conversion
s'avere etre une étape indispensable à ce
déplombage!.. alors...)
Maintenant, il faut noter que ce type de ruses par caractères
invisibles peut
aussi etre utilisé dans des programme basic pour en
protéger le listing..
(et comble, ds des prg basic protégés en catalog par des
car.de ctrl. why not?)
Par exemple, Ctrl-D est l'équivalent de CHR$(4).
Ce caractère de controle dit au dos d'effectuer la commande dos
qui suit.
Dans un programme basic, ceci aura pour effet de charger l'image
PI.PROPAGANDE
de notre exemple :
10 PRINT CHR$(4);"BLOAD PI.PROPAGANDE,A$2000"
mais ceci aura le meme effet :
10 PRINT "<ctrl-D>BLOAD PI.PROPAGANDE,A$2000"
(prenez <ctrl-D> comme le caractère control-D ou encore
^D).
Ainsi, on peut faire executer un commande dos par un simple list si on
la glisse dans un rem. Tapez ceci :
00 REM BONJOUR MAMAN
List affichera cette ligne comme vous la voyez ci-dessus. Tapez
maintenant :
00 REM FP
FP est une commande dos qui a pour fonction de réinitialiser le
dos et de
passer au basic en effacant le programme basic actuellement en
mémoire.
List affichera simplement cette ligne, comme toute autre ligne texte.
mais si on y glisse le fameux Ctrl-D... ca peut faire un malheur.
00 REM <ctrl-D>FP
List aura l'effet d'un PRINT "<ctrl-D>FP" d'accord, donc
effectuera ladite commande!
donc List effacera votre programme dés que ceci s'affichera, et
pourquoi pas,
dés la ligne 00 si vous tapez un tel REM.
C'est clean, et c'est puissant.. mais je n,ose pas vous dire d'essayer
autre
chose que <ctrl-D>FP. genre INIT ou quoi..
Reflechissez aux possibilités de ces caractères de
controle dans vos programmes
en guise de protection, ca peut faire BEAUCOUP de choses très
invisibles pour
qui ne connait pas ce domaine. seulement nous, les déplombeurs
fous, comme je
dis toujours, il faut tout connaitre si on veut venir à bout de
tout sans
avoir de "abandonnés" à son tableau de chasse !..
m'enfin...
J'espère vous avoir bien introduit à ce monde -
très simple mais efficace -
des caracteres de controle dans le domaine de la protection logicielle
bete
et méchante.
Si vous avez des idées originales de protection par ce type de
caractères,
merci de m'en informer, je pourrais en parler ici avec vous!.. alors
pensez-y.
Amicalement, papi.
===============================================================================
_ Les programmes de ce disk
________________________________________________
!
!
! DOS.CDI.S et DOS.FILE.MANAGER.S sont les 2 sources qui
composent le nerf !
! du DOS. Avec le source de toute la RWTS 3.3 donné dans
le précédent cours, !
! vous avez un DOS entièrement relogeable et modifiable
à volonté !!! !
! Ces 3 sources qui forment le Dos sont un véritable
trésor pour n'importe !
! quel programmeur éclairé
!
!
!
!
! DISKFILLER 3.1 est un programme sympa dont je suis l'auteur
avec mon cher !
! college Kristo.. Je vous en parle pas plus, y'a tout un fichier
dessus... !
!
!
! DISK RECOVERY est un autre programme sympa.. très simple
d'utilisation.. !
! mais il n'apparait pas au CATALOG.. !! C'est l'objet d'un
exercice... !
! allez voir le fichier
exercices..
!
!
!
! DISKET-SCOPIE est un programme de "visualitation de la
Vtoc"..
!
! Vous savez ainsi ce qui est libre.. ce qui est occupé..
agaga.. agaga.. !
!
!
! NEW DOS MAKER pour modifier le dos en mémoire, et le
personnaliser! !
!
!
! ERROR MESSAGES pour avoir de nouveaux messages d'erreur
dos..
!
!
!
! DISK HELPER , quelques utilitaires dos toujour
utiles..
!
!
!
! DISK SORT pour classer par types ou par ordre logique, votre
catalog. !
!
!
! DISK MAP.. un plan "graphique" du disk.. assez
sympa.
!
!____________________________________________________________________________!
===============================================================================
COURS 4 /
EXERCICES
Update 04/09/87
===============================================================================
Révision 3.61
J'essaye à chaque cours d'associer un original à
déplomber mais pour certains
cours tels que celui ci, ce n'est pas possible, le sujet traité
n'étant pas
directement attaché au déplombage... Pour compenser, je
vous ai fait ce fichier
à exercice...
Attention! Le cours doit obligatoirement précéder la
lecture de ce fichier.
Bossez bien le cours et revenez par ici ensuite..
Exercice 1 : Retrouver un Catalog caché
---------------------------------------------
Où est DISK RECOVERY ???
Je vous ai déjà parlé de l'outil de
déplombe de ce cours : DISK RECOVERY
or, ce programme n'est pas, comme d'habitude en CATALOG. De meme que
n'est
pas en catalog un fichier basic du nom de DEFI.
Mais alors, je vous en parle, je vous dit que je vous l'ai copié
et il n'est
pas sur ce disk ?? QUID ?? Alors, comment le faire réapparaitre
???
Je vous aide : ce second catalog est placé sur la piste $17 de
la face B de
ce cours !!.. et il y en a un autre en piste $10 de la meme face!
Vous croyez ca ?.. 3 catalog/s sur la meme face !
L'EXERCICE est donc de récupérer ce fichier et de
le sauver en
=========== CATALOG normal sur ce disk. Pour le retrouver, pensez
(DIFFICULTE : **) à la piste que vous avez : SON NOM "DEFI"...
Un second ficher , binaire cette fois ci , est à
récuperer : "DISK RECOVERY"
donc le nom que vous devez chercher sur ce disk. Pour le recuperer,
pensez
aux adresses qui permettent de faire CATALOG avec un CATALOG sur une
autre
piste que la piste habituelle $11. Pour le sauver sur un disk vierge,
pensez
à remettre les valeurs normales à ces adresses et
à chercher son adresse de
départ et de fin dans le DOS... Ce n'est pas dur si vous avez
tout bien
assimilé des deux derniers cours...alors je vous souhaite Bonne
chance !!!
ATTENTION !! N'ALLEZ PAS
PLUS LOIN !! VOICI LA SOLUTION !!
1. Où est le programme basic 'DEFI' et 'DISK RECOVERY' ???
-------------------------------------------------------------------------------
L'adresse primordiale à avoir retenu est : $AC01.
Elle se trouve dans la routine CATALOG du DOS, et son contenu indique
au DOS
la piste sur laquelle se trouve situé le catalog du disk en DOS
dans le drive.
Je vous ait dit que la piste du second catalog était la piste
$17.
Il suffit donc de faire : ]CALL-151 puis *AC01 : 17 puis *A56EG (ou
CATALOG).
Et là, le catalog apparait avec le programme que l'on
recherchait comme seul
fichier !!..
Vous voyez en catalog le programme basic qui nous interesse. Vous
n'aurez qu'à
faire un LOAD DEFI puis SAVE DEFI sur un autre disk en dos 3.3.
Dans le cas d'un programme binaire, il aurait fallu faire ainsi pour le
sauver:
Il suffit ensuite de faire un Bload, de regarder le contenu des adresses
$AA72,$AA73,$AA60,$AA61, de rectifier la piste du catalog en $AC01 ($11)
puis de faire un BSAVE sur un disk quelconque, en ayant
mémorisé le contenu
des 4 adresses précédemment éxaminées qui,
comme on le voit dans le cours,
correspondent à l'adresse de départ et à la
longueur du dernier fichier
à avoir été chargé par le DOS. (LOAD,
BLOAD, BRUN, RUN...), donc A$ et L$
pour le fichier DEFI.BINAIRE !! (]BSAVE DEFI.BINAIRE,A$____,L$____)
Après le cours 8 (recherches en tout genre), vous auriez
été capable de
trouve la piste du catalog uniquement en recherchant le nom du fichier
en
ASCII, depuis la piste $00.. sans que je vous dise quelle était
le numéro
de cette piste !...
Amicalement, GODFATHER
===============================================================================