mirror of
https://github.com/jfdelnero/HxCFloppyEmulator.git
synced 2026-09-11 09:02:45 +00:00
155 lines
6.2 KiB
C
155 lines
6.2 KiB
C
|
|
typedef struct keyword_
|
|
{
|
|
char * keyword;
|
|
int32_t state;
|
|
int32_t prev_state;
|
|
}keyword;
|
|
|
|
enum
|
|
{
|
|
ENTRY_STATE,
|
|
LIBHXCFE_VERSION,
|
|
DISK_LAYOUT,
|
|
DISK_LAYOUT_NAME,
|
|
DISK_LAYOUT_DESCRIPTION,
|
|
FILEEXT,
|
|
FILESIZE,
|
|
INTERFACE_MODE,
|
|
WRITE_PROTECT,
|
|
DOUBLE_STEP,
|
|
LAYOUT,
|
|
DISK_CRC32,
|
|
NUMBEROFTRACK,
|
|
NUMBEROFSIDE,
|
|
FORMAT,
|
|
MINNUMBEROFTRACKS,
|
|
MAXNUMBEROFTRACKS,
|
|
NUMBEROFSECTOR,
|
|
SECTORSIZE,
|
|
INTERLEAVE,
|
|
INTERLEAVE_TRACK,
|
|
BITRATE,
|
|
SKEW,
|
|
SKEW_TRACK,
|
|
SKEW_PER_TRACK,
|
|
SKEW_PER_SIDE,
|
|
GAP3,
|
|
PREGAP,
|
|
FORMATVALUE,
|
|
RPM,
|
|
TRACK_LENGTH,
|
|
SECTORIDSTART,
|
|
TRACKLIST,
|
|
TRACK,
|
|
DATAOFFSET,
|
|
FORMAT_TRACK,
|
|
NUMBEROFSECTOR_TRACK,
|
|
SECTORSIZE_TRACK,
|
|
STARTSECTORID_TRACK,
|
|
SECTORLIST,
|
|
SECTOR,
|
|
TRACKID_SECTOR,
|
|
SIZEID_SECTOR,
|
|
SECTORDATA_SECTOR,
|
|
SECTORSIZE_SECTOR,
|
|
DATAFILL_SECTOR,
|
|
DATAOFFSETSECTOR,
|
|
ADDRESSMARK_SECTOR,
|
|
DATAMARK_SECTOR,
|
|
DATACRC_SECTOR,
|
|
DATACRCSTATUS_SECTOR,
|
|
HEADERCRC_SECTOR,
|
|
HEADERCRCSTATUS_SECTOR,
|
|
SECTORID_SECTOR,
|
|
SIDEID_SECTOR,
|
|
TRACK_GAP3,
|
|
TRACK_PREGAP,
|
|
TRACK_PREGAP_US,
|
|
SET_INDEX_LENGTH,
|
|
SET_INDEX_POSITION,
|
|
FORMAT_SECTOR,
|
|
START_SECTOR_CELL,
|
|
START_DATASECTOR_CELL,
|
|
END_SECTOR_CELL,
|
|
SECTOR_SECTOR_US,
|
|
SECTOR_DURATION_US,
|
|
TRACK_LENGTH_CELLS,
|
|
TRACK_LENGTH_US
|
|
};
|
|
|
|
keyword keyword_list[]=
|
|
{
|
|
{"disk_layout", DISK_LAYOUT, ENTRY_STATE},
|
|
{"libhxcfe_version", LIBHXCFE_VERSION, DISK_LAYOUT},
|
|
{"disk_layout_name", DISK_LAYOUT_NAME, DISK_LAYOUT},
|
|
{"disk_layout_description", DISK_LAYOUT_DESCRIPTION, DISK_LAYOUT},
|
|
{"prefered_file_extension", FILEEXT, DISK_LAYOUT},
|
|
{"file_size", FILESIZE, DISK_LAYOUT},
|
|
{"interface_mode", INTERFACE_MODE, DISK_LAYOUT},
|
|
{"write_protected", WRITE_PROTECT, DISK_LAYOUT},
|
|
{"double_step", DOUBLE_STEP, DISK_LAYOUT},
|
|
{"layout", LAYOUT, DISK_LAYOUT},
|
|
{"min_number_of_tracks", MINNUMBEROFTRACKS, LAYOUT},
|
|
{"max_number_of_tracks", MAXNUMBEROFTRACKS, LAYOUT},
|
|
{"number_of_track", NUMBEROFTRACK, LAYOUT},
|
|
{"number_of_side", NUMBEROFSIDE, LAYOUT},
|
|
{"format", FORMAT, LAYOUT},
|
|
{"bitrate", BITRATE, LAYOUT},
|
|
{"sector_per_track", NUMBEROFSECTOR, LAYOUT},
|
|
{"sector_size", SECTORSIZE, LAYOUT},
|
|
{"interleave", INTERLEAVE, LAYOUT},
|
|
{"skew", SKEW, LAYOUT},
|
|
{"skew_per_track", SKEW_PER_TRACK, LAYOUT},
|
|
{"skew_per_side", SKEW_PER_SIDE, LAYOUT},
|
|
{"formatvalue", FORMATVALUE, LAYOUT},
|
|
{"gap3", GAP3, LAYOUT},
|
|
{"pregap", PREGAP, LAYOUT},
|
|
{"pregap_us", TRACK_PREGAP_US, LAYOUT},
|
|
{"rpm", RPM, LAYOUT},
|
|
{"track_len_us", TRACK_LENGTH, LAYOUT},
|
|
{"start_sector_id", SECTORIDSTART, LAYOUT},
|
|
{"track_list", TRACKLIST, LAYOUT},
|
|
{"index_len_us", SET_INDEX_LENGTH, LAYOUT},
|
|
{"add_index_us", SET_INDEX_POSITION, LAYOUT},
|
|
{"crc32", DISK_CRC32, LAYOUT},
|
|
{"track", TRACK, TRACKLIST},
|
|
{"data_offset", DATAOFFSET, TRACK},
|
|
{"format", FORMAT_TRACK, TRACK},
|
|
{"sector_per_track", NUMBEROFSECTOR_TRACK, TRACK},
|
|
{"sector_size", SECTORSIZE_TRACK, TRACK},
|
|
{"start_sector_id", STARTSECTORID_TRACK, TRACK},
|
|
{"sector_list", SECTORLIST, TRACK},
|
|
{"gap3", TRACK_GAP3, TRACK},
|
|
{"pregap", TRACK_PREGAP, TRACK},
|
|
{"pregap_us", TRACK_PREGAP_US, TRACK},
|
|
{"skew", SKEW_TRACK, TRACK},
|
|
{"interleave", INTERLEAVE_TRACK, TRACK},
|
|
{"index_len_us", SET_INDEX_LENGTH, TRACK},
|
|
{"add_index_us", SET_INDEX_POSITION, TRACK},
|
|
{"track_length_cells", TRACK_LENGTH_CELLS, TRACK},
|
|
{"track_length_us", TRACK_LENGTH_US, TRACK},
|
|
{"sector", SECTOR, SECTORLIST},
|
|
{"track_id", TRACKID_SECTOR, SECTOR},
|
|
{"side_id", SIDEID_SECTOR, SECTOR},
|
|
{"sector_id", SECTORID_SECTOR, SECTOR},
|
|
{"size_id", SIZEID_SECTOR, SECTOR},
|
|
{"data_fill", DATAFILL_SECTOR, SECTOR},
|
|
{"addressmark", ADDRESSMARK_SECTOR, SECTOR},
|
|
{"datamark", DATAMARK_SECTOR, SECTOR},
|
|
{"data_crc", DATACRC_SECTOR, SECTOR},
|
|
{"data_crc_status", DATACRCSTATUS_SECTOR, SECTOR},
|
|
{"header_crc", HEADERCRC_SECTOR, SECTOR},
|
|
{"header_crc_status", HEADERCRCSTATUS_SECTOR, SECTOR},
|
|
{"sector_data", SECTORDATA_SECTOR, SECTOR},
|
|
{"sector_size", SECTORSIZE_SECTOR, SECTOR},
|
|
{"data_offset", DATAOFFSETSECTOR, SECTOR},
|
|
{"format", FORMAT_SECTOR, SECTOR},
|
|
{"start_sector_cell", START_SECTOR_CELL, SECTOR},
|
|
{"start_datasector_cell", START_DATASECTOR_CELL, SECTOR},
|
|
{"end_sector_cell", END_SECTOR_CELL, SECTOR},
|
|
{"start_sector_us", SECTOR_SECTOR_US, SECTOR},
|
|
{"sector_duration_us", SECTOR_DURATION_US, SECTOR},
|
|
{0,0,0}
|
|
};
|