home *** CD-ROM | disk | FTP | other *** search
/ Crawly Crypt Collection 1 / crawlyvol1.bin / utility / disk / zorg_134 / docs / boot.doc next >
Text File  |  1994-02-03  |  7KB  |  151 lines

  1. ZORG, Copyright Ludovic Rousseau 1993, 1994
  2.  
  3.  
  4.  
  5.                              BOOT
  6.  
  7.  
  8.  
  9.   Chaque disquette ou partition possède ce que l'on appelle un boot sector. Ce
  10. secteur renferme les caractéristiques de la disquette ou de la partition
  11. (nombre de faces, de pistes...) et peut renfermer un petit programme le cas
  12. échéant (un virus, un anti-virus, un chargeur de jeu ou autre).
  13.  
  14.  
  15. Le boot sector contient les champs suivants :
  16.  
  17. Octet Taille Label
  18.   $00   2      BRA.S  branch to boot code
  19.   $02   6      OEM
  20.   $08   3      SERIAL numéro de série
  21.   $0B   2      BPS    nombre d'octets par secteur
  22.   $0D   2      SPC    nombre de secteurs par bloc
  23.   $0E   2      RES    nombre de secteurs réservés
  24.   $10   1      NFATS  nombre de FATs
  25.   $11   2      NDIRS  nombre d'entrées à la racine
  26.   $13   2      NSECTS nombre de secteurs
  27.   $15   1      MEDIA  descripteur de MEDIA
  28.   $16   2      SPF    nombre de secteurs par FAT
  29.   $18   2      SPT    nombre de secteurs par piste
  30.   $1A   2      NSIDES nombre de faces
  31.   $1C   1      NHID   nombre de secteurs cachés
  32.  
  33.   $1D   1      ???
  34.  
  35.   $1E   2      EXECFLG
  36.   $20   2      LDMODE
  37.   $22   2      SSECT
  38.   $24   2      SECTCNT
  39.   $26   4      LDADDR
  40.   $2A   4      FATBUF
  41.   $2E   11     FNAME
  42.  
  43.   $39   1      réservé
  44.  
  45.   $3A   1C4    code assembleur le cas échéant
  46.  
  47.   $1FE  2      CheckSum
  48.  
  49.  
  50.   Si le mot de poids faible de la somme des 256 mots du secteur est égal à
  51. $1234 alors le secteur est exécutable. Lors du démarrage de l'ordinateur
  52. (boot), le système charge le secteur et effectue un JSR sur le premier octet du
  53. secteur. Pour cette raison la première instruction du boot sector est une
  54. instruction de branchement inconditionnel sur le code effectif qui se trouve un
  55. peu plus loin dans le secteur (BRA.S $3A(PC) en général). Le secteur n'est pas
  56. chargé à une adresse fixe en mémoire, pour cette raison le code exécuté ne doit
  57. pas utiliser l'adressage absolu mais seulement l'adressage relatif au compteur
  58. de programme (PC).
  59.  
  60.  
  61. L'OEM (Other Enterprise Manufactoring) n'est pas utilisé par le système. Il
  62. sert simplement de signature. Par exemple il indique le nom du programme qui a
  63. formaté le disque.
  64.  
  65. Le numéro de série (SERIAL) est très important. Il permet au système de
  66. différencier les disques. Si deux disquettes ont le même numéro de série, le
  67. système ne se rendra compte de rien lors d'un changement de disquette et ne
  68. remettra pas sa copie de la FAT à jour. Il utilisera l'ancienne FAT avec le
  69. nouveau disque croyant que c'est encore l'ancien. Ce n'est pas trop grave si on
  70. ne fait que lire le disque mais c'est catastrophique si on écrit dessus, le
  71. système écrivant l'ancienne FAT sur le nouveau disque. J'ai perdu beaucoup de
  72. disques à cause de cela en utilisant un formateur qui mettait toujours le même
  73. numéro de série.
  74.  
  75. BPS (Bytes Per Sector) donne le nombre d'octets par secteur. Normallement il y
  76. a 512 octets par secteur. ZORG ne sait pas gérer des secteurs ayant une taille
  77. différente de 512 octets.
  78.  
  79. SPC (Sectors Per Cluster) donne le nombre de secteurs que contient un bloc. La
  80. gestion du disque se fait par blocs (voir FAT.TXT). Un bloc occupe en général 2
  81. secteurs.
  82.  
  83.  
  84. RES (REServed) donne le nombre de secteurs réservés. Ce nombre est égal à 1
  85. généralement. Peut-être prend-t-il en compte le boot sector.
  86.  
  87. NFATS (Number of FATs) vaut 2. La deuxième FAT sert à pouvoir quand même
  88. récupérer le disque si la première FAT a un problème de lisibilité.
  89.  
  90. NDIRS (Number of DIRectoryS). Contrairement à un dossier, la taille du
  91. répertoire principal est fixe (voir DISK.TXT). NDIRS donne le nombre de
  92. fichiers ou dossiers que la disquette peut supporter à la racine. Ce champ vaut
  93. 112 sur une disquette 'normale' ce qui est souvent largement suffisant.
  94.  
  95. NSECTS (Number of SECTorS) donne le nombre total de secteurs sur la disquette.
  96. Il vaut Sects * Pistes * Faces si Sects est le nombre de secteurs par piste,
  97. Pistes le nombre de pistes et Faces le nombre de faces.
  98.  
  99. MEDIA n'est pas utilisé par le système.
  100.  
  101. SPF (Sectors Per FAT) est la taille de la FAT en secteur. Cette taille dépend
  102. du nombre de blocs donc de secteurs sur la disquette. Chaque bloc occupe 1.5
  103. octet dans la FAT (2 pour un disque dur). Il faut que la FAT ait une taille en
  104. rapport avec le nombre de blocs pour pouvoir tous les contenir.
  105.  
  106. SPT (Sectors Per Track) est le nombre de secteurs par piste. Il vaut 9 pour une
  107. disquette 'normale'. On peut facilement et sans aucun problème utiliser des
  108. disquettes avec 10 secteurs par pistes. L'appel système XBIOS de formatage
  109. (Flopfmt) supporte 10 secteurs par piste. Certains programmes permettent de
  110. monter jusqu'à 11 secteurs par piste (comme sur Amiga) mais à ce niveau de
  111. densité les secteurs se suivent de très près et la lecture de la disquette est
  112. fortement ralentie. Je ne vous conseille pas d'utiliser des disquettes de plus
  113. de 10 secteurs. Les nouvelles machines Atari ont des lecteurs haute densité qui
  114. permettent de doubler le nombre de secteurs par piste. 18 secteurs par piste
  115. est alors la valeur 'normale'.
  116.  
  117. NSIDES (Number of SIDES) donne le nombre de faces de la disquette. Il peut
  118. théoriquement y avoir un maximum de 65535 faces car le champ est sur 16 bits. 8
  119. bits auraient largement suffit à mon avis, surtout que ce champ n'est pas
  120. utilisé pour une partition de disque dur et donc n'ira jamais au-delà de 2 (il
  121. existe des disquettes à 3 faces ?).
  122.  
  123. NHID (Number of HIDden sectors) n'est pas utilisé par le système.
  124.  
  125.   Quelquefois, le boot sector est 'Loader', ce qui veut dire qu'il contient des
  126. informations permettant au système de charger un fichier ou des secteurs à
  127. partir de la disquette. Cette possibilité est, entre autres, utilisée par les
  128. disquettes contenant un système utilisé aux débuts du ST lorsque le système
  129. n'était pas encore en ROM et qu'il fallait le charger à partir d'une disquette.
  130. Dans ce cas le boot sector contenait des informations pour charger le fichier
  131. TOS.IMG. Pour qu'un boot sector ait ces propriétés, il faut que l'OEM soit égal
  132. à la chaîne ASCII 'Loader'.
  133.  
  134. EXECFLG (EXEC FLaG) est copié dans la variable système _cmdload en $482.
  135.  
  136. LDMODE (LoaD MODE) indique le mode de chargement. Si LDMODE est nul le fichier
  137. FNAME est recherché sinon les secteurs indiqués sont chargés.
  138.  
  139. SSECT (Start SECTor) indique le secteur de départ.
  140.  
  141. SECTCNT (SECTor CouNT) donne le nombre de secteurs à charger.
  142.  
  143. LDADDR (LoaD ADDRess) est l'adresse où sont chargés les secteurs.
  144.  
  145. FATBUF (FAT BUFfer) est l'adresse à utiliser pour la FAT.
  146.  
  147. FNAME (File NAME) est le nom du fichier à charger. Ce nom est composé de 8
  148. caractères plus une extension de 3 caractères.
  149.  
  150.   Vient  ensuite, s'il existe, le code assembleur du boot sector.
  151.