77 lines
2.3 KiB
Plaintext
77 lines
2.3 KiB
Plaintext
/*
|
|
* Copyright (c) 2011, ETH Zurich. All rights reserved.
|
|
*
|
|
* This file is distributed under the terms in the attached LICENSE file.
|
|
* If you do not find this file, copies can be found by writing to:
|
|
* ETH Zurich D-INFK, Universitaetstrasse 6, CH-8092 Zurich. Attn: Systems Group.
|
|
*/
|
|
|
|
/*
|
|
* fat16_direntry.dev
|
|
*
|
|
* DESCRIPTION: FAT16 file system directory entry.
|
|
*
|
|
*/
|
|
|
|
device fat_direntry msbfirst (addr b) "FAT 16 Directory Entry" {
|
|
|
|
constants attribute "directory entry attribute" {
|
|
attr_read_only = 0x01 "read only";
|
|
attr_hidden = 0x02 "hidden";
|
|
attr_system = 0x04 "system";
|
|
attr_volume_id = 0x08 "Volume ID";
|
|
attr_directory = 0x10 "Directory";
|
|
attr_archive = 0x20 "Archive";
|
|
attr_long_name = 0x0f "Long name";
|
|
};
|
|
|
|
regarray fn rw addr(b,0x00) [8] "Filename" type(uint8);
|
|
|
|
regarray ext rw addr(b,0x08) [3] "Filename extension" type(uint8);
|
|
|
|
register attr rw addr(b,0x0b) "File Attributes" {
|
|
_ 2 rsvd;
|
|
ar 1 "Archive";
|
|
dir 1 "Directory";
|
|
vlb 1 "Volume label";
|
|
sys 1 "System file";
|
|
hid 1 "Hidden";
|
|
ro 1 "Read only";
|
|
};
|
|
|
|
register lwr rw addr(b,0x0c) "Base and extension case" {
|
|
_ 3 rsvd;
|
|
el 1 "Extension is lowercase";
|
|
bl 1 "Base is lowercase";
|
|
_ 3 rsvd;
|
|
};
|
|
|
|
regtype time "Time" {
|
|
hour 5 "Hour";
|
|
min 6 "Minutes";
|
|
dsec 5 "Double seconds (0-29)";
|
|
};
|
|
|
|
regtype date "Date" {
|
|
yr 7 "Years from 1980";
|
|
mnth 4 "Month of year";
|
|
day 5 "Day of month";
|
|
};
|
|
|
|
register ctms rw addr(b,0x0d) "Creation deca-milliseconds (0-199)" type(uint8);
|
|
register ctime rw addr(b,0x0e) "Creation time" type(time);
|
|
register cdate rw addr(b,0x10) "Create date" type(date);
|
|
|
|
register adate rw addr(b,0x12) "Last access date" type(date);
|
|
|
|
// register eaind rw addr(b,0x14) "EA-Index (?)" type(uint16);
|
|
register starth rw addr(b,0x14) "Start cluster high bits (FAT32)" type(uint16);
|
|
|
|
register wtime rw addr(b,0x16) "Last write time" type(time);
|
|
register wdate rw addr(b,0x18) "Last write date" type(date);
|
|
|
|
register start rw addr(b,0x1a) "Starting cluster" type(uint16);
|
|
register size rw addr(b,0x1c) "File size" type(uint32);
|
|
|
|
};
|