FCB - Standard DOS File Control Block

      Offset Size		Description

	-7   byte	if FF this is an extended FCB  ╪
	-6  5bytes	reserved  ╪
	-1   byte	file attribute if extended FCB	╪
	00   byte	drive number (0 for default drive, 1=A:, 2=B:, ...)
	01  8bytes	filename, left justified with trailing blanks
	09  3bytes	filename extension, left justified w/blanks
	0C   word	current block number relative to beginning of the
			file, starting with zero
	0E   word	logical record size in bytes
	10   dword	file size in bytes
	14   word	date the file was created or last updated

		│F│E│D│C│B│A│9│8│7│6│5│4│3│2│1│0│ 15,14 (Intel reverse order)
		 │ │ │ │ │ │ │ │ │ │ │ └─┴─┴─┴─┴─ day 1-31
		 │ │ │ │ │ │ │ └─┴─┴─┴────────── month 1-12
		 └─┴─┴─┴─┴─┴─┴───────────────── year + 1980

	16   word	time of last write

		│F│E│D│C│B│A│9│8│7│6│5│4│3│2│1│0│ 17,16 (Intel reverse order)
		 │ │ │ │ │ │ │ │ │ │ │ └─┴─┴─┴─┴── secs in 2 second increments
		 │ │ │ │ │ └─┴─┴─┴─┴─┴─────────── minutes (0-59)
		 └─┴─┴─┴─┴────────────────────── hours (0-23)

	18  8bytes	see below for version specific information  ╪
	1A   dword	address of device header if character device  ╪
	20   byte	current relative record number within current BLOCK
	21   dword	relative record number relative to the beginning of
			the file, starting with zero; high bit omitted if
			record length is 64 bytes


DOS 2.x Values for reserved fields at offsets 18h-1Ah ╪

Offset Size Description 18 byte │7│6│5│4│3│2│1│0│ │ │ └─┴─┴─┴─┴─┴─── unknown │ └────────────── 1 = open └─────────────── 1 = logical device 19 word starting cluster number ╪

DOS 3.x Values for reserved fields at offsets 18h-19h ╪

Offset Size Description 18 byte System File Table (SFT) entry for file ╪ 19 byte attributes ╪ │7│6│5│4│3│2│1│0│ attributes │ │ └─┴─┴─┴─┴─┴──── unknown └─┴─ share status 00 = SHARE not loaded block device 01 = SHARE not loaded characted device 10 = SHARE loaded, remote file 11 = SHARE loaded local file

DOS 3.x with SHARE, local file reserved offsets 1Ah-1Eh ╪

Offset Size Description 1A word starting cluster number 1C word offset within SHARE of sharing record 1E byte file attribute

DOS 3.x with SHARE, remote file reserved offsets 1Ah-1Eh ╪

Offset Size Description 1A word sector number containing directory entry 1C word last cluster accessed relative to beginning of file 1E byte absolute cluster number of last cluster accessed

DOS 3.x without SHARE reserved offsets 1Ah-1Fh ╪

Offset Size Description 1A byte ((device attribute word low byte) & 0Ch) || (open mode) 1B word starting cluster number 1D word sector number containing directory entry 1F byte number of directory entry within sector The following are FCB related DOS functions: INT 21,F Open file using FCB INT 21,10 Close file using FCB INT 21,11 Search for first entry using FCB INT 21,12 Search for next entry using FCB INT 21,13 Delete file using FCB INT 21,14 Sequential read using FCB INT 21,15 Sequential write using FCB INT 21,16 Create a file using FCB INT 21,17 Rename file using FCB INT 21,21 Random read using FCB INT 21,22 Random write using FCB INT 21,23 Get file size using FCB INT 21,24 Set relative record field for FCB INT 21,27 Random block read using FCB INT 21,28 Random block write using FCB INT 21,29 Parse filename for FCB ╪ see Bibliography reference to "Undocumented DOS" - see XFCB INT 21,52