do
{
file_no=0;
finfo.drive = 0x00; /* αριθμός κίνησης για το Α:*/
finfo.head = head; /* επικεφαλής αριθμός δίσκων*/
finfo.track = track; /* αριθμός διαδρομής*/
finfo.sector= sector; /* αριθμός τομέα */
finfo.nsectors=1; /* αρίθμηση τομέα */
finfo.buffer = buf; /* απομονωτής στοιχείων */
result = _bios_disk(_DISK_READ, &finfo); /* Διαβάστε τον τομέα */
if( (result & 0xff00) != 0) /* Εάν διαβασμένο λάθος, μήνυμα λάθους επίδειξης και έξοδος*/
{
printf("Διαβάστε το λάθος");
getch();
exit(0); // Επιστρέψτε στο DOS
}
/// Σχήμα οθόνης επίδειξης πληροφοριών \\\
clrscr();
gotoxy(9,1);
cprintf("ΕΠΙΔΕΙΞΗ CYLN:%u, HEAD: %u, SECTOR: %u",
track, head, sector);
gotoxy(9,2);
cprintf("ΜΈΓΕΘΟΣ ΈΝΑΡΞΗΣ ΙΔΙΟΤΉΤΩΝ ΑΠΟΣΠΑΣΜΑΤΟΣ ΟΝΌΜΑΤΟΣ FNO");
gotoxy(7,3);
cprintf("--------------------------------------------");
/* Ένας τομέας τη φορά. Κάθε αρχείο/το λήμμα DIR παίρνει την ψηφιολέξη 32 */
for(i=0;i<512;i+=32)
{
for(j=0;j<8;j++)
{
///Βρείτε το αρχείο/το όνομα Dir\\\
root[file_no].name[j]=buf[j+i];
}
for(j=8;j<11;j++)
{
/// Βρείτε την επέκταση \\\
root[file_no].ext[j-8]=buf[i+j];
}
j=11;
root[file_no].attribute=buf[i+j]; /// Ιδιότητες
/// Αρχική συστάδα \\\
root[file_no].start=(0xff & buf[27+i])*16*16 + (0xff & buf[26+i]);
|