ZX Power #02
24 мая 1997
  TR-DOS  

Likbez - The structure of MS-DOS disk.

<b>Likbez</b> - The structure of MS-DOS disk.
     The structure of MS-DOS disk.

(C) 1997 Digital Man.


      Special for ZX POWER.
________________________________


   I must say that this material prednaznachaetsya for those
people who've stuffed a couple of
cones on the disc format of the system
MS-DOS.Itak all MS-DOS disks organized in the same way.
The sector size is always 512 bytes
anything else determines the capacity
Album:


 Traci Sector Capacity

 320 kb 40 8
 360 kb 40 9
 720 kb 80 9



   In contrast to TR-DOS Disk
CDs MS-DOS'a used
Special Allocation Table
File (File Alloction Table -
FAT) for abstraction of disk
File and storage space
Information about free sectors.
For security reasons, to
all disks are stored on two copies of FAT. They are stored in 
sequence starting from 0, track 0, sector 1 (sector 0 is busy 
writing the boot). The number of sectors allocated for

FAT opredelyaetsya disk size (hereinafter referred to as a table
through which we can determine Ramer FAT). There are also two 
types of construction FAT, 12-bit FAT or 16-bit

FAT. Here we consider only
12-bit recording. Because 16-bit FAT drives use to fix the AT 
since they clusters of more than 4096.


  FAT stores information about each cluster of sectors on the 
disk. Cluster - a group of standard

sectors depletion heads
read / write, and because at 5'25 inch drives RAMER only two
head the size of the cluster is two sectors (the exceptions
are one-sided disk drives, which are sometimes found
on computers). An example of the announcement is FAT on the 
disk size 720 kb:


0 Boot Sector

Table 1.6 announcement is file

9.7 Root


   Note: it must be remembered that the FAT is stored on disk
two copies!

   Each position in the file allocation table corresponds to a 
specific position in the cluster disk. Typically, the file 
takes a few clusters and the directory entry contains the 
number of seed clusters, which kept a piece of the file. Then 
on offset launch a cluster of

FAT number is taken sleduyushego
cluster, which in turn contains a number of the next
cluster in the chain (Fig. 1). For
the last cluster occupied by the
file, FAT has values ​​of
# FF8 to # FFF. Free clusters is equal to the value of # 000,
and defective sectors # FF7. Znachenioya from # FF0 # FF7 
attributed to the standby cluster. 

  Number of cluster contains 3 hexadecimal digits, which is 
necessary to store 1 1 / 2 bytes. To reduce the size

FAT numbers for the two neighboring
clusters are stored in three consecutive bytes table.

   The first three bytes of the FAT is not used for cluster 
numbers. The first byte contains the type of disk, and the next 
two bytes are # FF.Poskolku these positions are occupied, the 
clusters are numbered starting with 2, and cluster 2 and

3 is a second three bytes
table.

Code Type Disk

# FF double-sided, 8 sectors
# FE-sided, 8 sectors
# FD double-sided, 9 sectors
# FC-sided, 9 sectors
# F9 double-sided, 15 sectors


   When you work with the FAT must comply with those rules:

   To find sleduyushego
cluster file:
1.Umnozhte cluster number to 1.5.
2.Prochitayte 2 bytes with the received
  nym shift (rounding down).
3.If the cluster number is even, then

  Take the lower 12 bits, otherwise

  Take the older 12-bit.

   To convert the numbers
cluster in the physical position on the
disk requires the following calculation:
1.Umnozhte result by the number

  sectors in the cluster (usually 2)
2.Rezultat divide by the number of

  sectors in the track, thereby to
  luchite track and in balance sec
  torus. Certainly easier, and better

  do it all on the table ne
  rescheta.

   Now let's consider
disk directory structure. But for
early to determine with any
just drive we are working to analyze 0 sectors as follows:

See Length Description

# 03 8bayt system type
# 0B 1slovo Number of bytes in the sects.
# 0D 1bayt sectors per cluster
# 0E 1slovo length BOOT sector
# 10 1bayt Number of FAT copies
# 11 1slovo Number of Files
# 13 1slovo total number of sectors.
# 15 1bayt -
# 16 1slovo number of sectors of FAT
# 18 1slovo Sectors per track
# 1A 1slovo Parties
# 1C 1slovo number of hidden sects.


  Directory itself is located just behind a copy of FAT. Write 
it divided into 8 parts:


See Length of Meaning

# 00 8-byte file name
# 08 3 bytes Expansion
# 0B 1 byte attribute
# 0C 10bayt Reserved
# 16 2-byte time
# 18 2 bytes Date
# 1A 2 bytes Nach.nomer cluster
# 1C 4-byte size

Offset # 00 and # 08:

  Name and file extension normal
ASCII text, which does not require
explanations. But when creating a file
or rename it desirable not to include spaces and
special characters, and the remaining place in the record file 
name and extension to fill gaps. 

Offset # 0B:

  The file attribute is as follows:


  Bit Value
76543210

....... 1 File is read only.
...... 1. Hidden file
..... 1 .. System file
.... 1 ... Volume Label
... 1 .... Subdirectory
.. 1 ..... Archive
.1 ...... -
1 ....... -


   Subfolder (directory) is stored on disk as a file.
Format of its entries is identical to
format records the root directory. Only the number of entries
it depends on the availability of free disk space.

Offset # 0C:

   Reserved.

Offset # 16:

   Time = (hours * 2048) + (Min * 32) +

        + (Second + 2).

Offset # 18:

   Date = (Year - 1980) * 512) +

        + (Month * 32) + day.

Offset # 1A:

   Starting a cluster file.

Offset # 1C:

   File size. In this record
Added unsigned long
in 4 bytes (most significant byte comes first). Thus file can
have a pretty large size:
42946967295 bytes.


  Perhaps this is possible and complete the theory and show the 
principle of File read and decode FAT.


Reading from a file:

        Directory entry
 The name of the Extended Home
 Cluster File

MUSIC MOD 0003



           reading


         Reading Reading


  FAT


  002 005 000 008 000 FF7 FFF


   2 3 4 5 6 7 8
By reading podrozumevaetsya reading cluster from the disk.

Decoding FAT:


     ORG # 8000; top # 8000

     LD HL, BUF; download FAT

     LD B, 4; to clipboard

     LD DE, 1

     CALL LOAD

     LD DE, BUF

     LD HL, 3, in HL Room

     PUSH HL; cluster

     LD B, H; HL -> STEK

     LD C, L; HL -> BC

     AND A; BC / 2

     RR B

     RR C

     ADD HL, HL; HL * 2

     ADD HL, BC; HL + BC

     ADD HL, DE; HL + BUF

     LD D, (HL); D <- (HL)

     INC HL

     LD E, (HL); E <- (HL +1)

     POP HL

     BIT 0, L; check

     JR NZ, ODD; parity

     LD A, # 0F; care if so

     AND H

     LD H, A

     JR CONT
ODD LD B, 4; shift in
LOOP AND A; the right to

     RR H; a 16-th

     RR L; figure

     DJNZ LOOP; number of HL
CONT. ; Sleduyushego

     . ; Cluster

     .

     RET
LOAD PUSH HL; reading

     PUSH BC; sectors

     LD C, 5; drive MS-DOS

     CALL # 3D13; B-length

     POP BC; HL-where

     POP HL; DE-tr./sek.

     INC H

     LD A, E

     CP 9; count

     JR C, NET; sectors

     INC D; track

     LD E, 0
NET DJNZ LOAD

     RET
BUF DEFS 4096; allot

                   ; Place

                   4 sectors


   Well, perhaps all! And yet
Try following the write operation
file, first check the correctness of the changes FAT, and then 
perekopirovat FAT in reserve. ________________________________








Other articles:

Iron - Microprocessors Zilog: Z80, 1980, Z8000, Z80000.

Iron - Modem: Myths and Realities.

Iron - On AY-mouse (FAQ).

Iron - Serial-VCOM-for Spectrum.

Iron - Advanced screen.

Gambling - Description of the game Ghost Busters 2.

Gambling - Game description Satan 2.

Gambling - Game Description Zombi.

Interview - VIC (X-Project) - How do I start?

Interview - An Interview with Joker'om (Mafia).

TO OUR READERS - "Time for a Change"

Likbez - Fighting controllers, or about how I played the 800K floppy.

Likbez - Recovery Programs (On the causes of recovery, characterized by acteristic multifeysnogo hacking types multifeysnyh hacks recovery method of searching for old bootloader).

Likbez - The structure of MS-DOS disk.

Review - Gateway produces remnants Amiga.

Review - O computer "Silicon Graphics" (continued).

From the authors - a description of the shell, greetings and thanks, addresses and contact information.

a rest - 60 American jokes.

a rest - Bessoznanka in the army.

a rest - The Kremlin Trouble.

a rest - Minutes of the meeting for the elections chief doctor at the mental hospital N15.

first pancake - Description of the RAM-TEST v1.0.

first pancake - The path to fame ...

Perspective - Preview STS v6.0.

Perspective - Novella to play WORDS.

Perspective - On the game 3D Killer (demo version - Doommania).

Perspective - Preface to the game STALKER.

Desktop - How to work with the programs: Cache File Manager 512k.

Desktop - How to work with the programs: Corrector v2.0.

Desktop - How to work with the programs: Melon Terminal.

Desktop - How to work with the programs: Symed v1.1

Desktop - How to work with the programs: ZX-Turbo Disassembler.

Miscellaneous - Entertaining Virology.

Miscellaneous - News from the Progress, Dream Team, Rush, Phantasy, Copper Feet, etc.

Miscellaneous - On the ZX networks and not only ...

Miscellaneous - letter-carrier - a review letters from readers.

Advertising - Advertising and announcements.

Fantasy - Winnie the Pooh - 10 years later.

Fantasy - G. Garison (continued, part 4-6).

Fantasy - The story EG Nesterenko, "The Crown and the Ring" (Part 1)

Fantasy - a fantastic story theater.


Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Similar articles:
News - is nearing the end of the work to create CD-ROM.
Hints - Codes levels to the game Boovie-2 demo Free Art.
ENDets - postscript and reflections on how Pixel'a zarozhdalaks ZX scene.
Life outside the Spectrum - Is there life on Mars?

В этот день...   29 April