Difference between revisions of "File format"

From SizeCoding
Jump to: navigation, search
(initial version of file formats)
 
m (Linux: add details of Linux ELF file format)
 
(3 intermediate revisions by one other user not shown)
Line 8: Line 8:
 
* Tape file formats, as they have a higher overhead usually
 
* Tape file formats, as they have a higher overhead usually
  
==MS-DOS==
+
==IBM PC==
 +
 
 
===COM===
 
===COM===
 
System: MS-DOS
 
System: MS-DOS
Line 22: Line 23:
 
File extension: .com
 
File extension: .com
  
==Commodore==
+
===EXE===
 +
System: Windows
 +
 
 +
Header: 200+
 +
 
 +
Native size unit: Bytes
 +
 
 +
Loads to:
 +
 
 +
Starts at:
 +
 
 +
File extension: .exe
 +
 
 +
===ELF===
 +
System: Linux
 +
 
 +
Header: 45 - 100+
 +
 
 +
Native size unit: Bytes
 +
 
 +
Loads to: Random location (see [https://en.wikipedia.org/wiki/Address_space_layout_randomization#Linux here])
 +
 
 +
Starts at: from 0x10000 to around 0x80000000 for 32bit binaries
 +
 
 +
File extension: none
 +
 
 +
==Atari ST==
 +
===TOS===
 +
System: Atari ST
 +
 
 +
Header: 32 Bytes
 +
 
 +
Native size unit: ???
 +
 
 +
Loads to:
 +
 
 +
Starts at: 
 +
 
 +
File extension: 
 +
 
 +
 
 +
==Amiga==
 +
===...===
 +
System: Amiga
 +
 
 +
Header:
 +
 
 +
Native size unit: ???
 +
 
 +
Loads to:
 +
 
 +
Starts at: 
 +
 
 +
File extension: 
 +
 
 +
==Commodore 64==
 
===PRG===
 
===PRG===
 
System: CBM-DOS (Commodore, e.g. C64)
 
System: CBM-DOS (Commodore, e.g. C64)
Line 49: Line 105:
 
File extension: .p00
 
File extension: .p00
  
==Atari==
+
==Atari 8bit==
 
===XEX, EXE, COM===
 
===XEX, EXE, COM===
 
System: Atari
 
System: Atari

Latest revision as of 10:41, 10 February 2022

File formats

File formats describe the content of a file.

This page is not about:

  • File systems which organize files on a partition
  • Disk images which save a (disk) file system within one file
  • Tape file formats, as they have a higher overhead usually

IBM PC

COM

System: MS-DOS

Header: 0 bytes see here

Native size unit: Bytes

Loads to: 0100h

Starts at:

File extension: .com

EXE

System: Windows

Header: 200+

Native size unit: Bytes

Loads to:

Starts at:

File extension: .exe

ELF

System: Linux

Header: 45 - 100+

Native size unit: Bytes

Loads to: Random location (see here)

Starts at: from 0x10000 to around 0x80000000 for 32bit binaries

File extension: none

Atari ST

TOS

System: Atari ST

Header: 32 Bytes

Native size unit: ???

Loads to:

Starts at:

File extension:


Amiga

...

System: Amiga

Header:

Native size unit: ???

Loads to:

Starts at:

File extension:

Commodore 64

PRG

System: CBM-DOS (Commodore, e.g. C64)

Header: 2 bytes (= start address)

Native size unit: Blocks (256 bytes including 2 bytes linking to next block)

Loads to: given address in header

Starts at: given address in header

File extension: .prg

P00

System: CBM-DOS / PC64 Emulator

Header: extended 26 bytes; also includes the name; see here

Native size unit: Blocks

Loads to: given address in header

Starts at: given address in header

File extension: .p00

Atari 8bit

XEX, EXE, COM

System: Atari

Header: 6 bytes or more (FF FF <start address> <end address>); see also here

Native size unit: ???

Loads to: given start address in header

Starts at: given end address in header

File extension: .exe .com .xex (any ending possible)

Amstrad

BIN

System: AMSDOS (Amstrad CPC)

Header: 128 bytes (includes filename, start address, end address, etc.; 95 unused bytes; see also AMSDOS-Header

Native size unit: kb

Loads to: given start address in header

Starts at: given end address in header

File extension: .bin (on PC)

Spectrum

Binary

System: ZX Spectrum

Header: none

Native size unit: ???

Loads to: special loader required; usually a BASIC program

Starts at: see above

File extension: ??? usually delivered within a disk image (.trd)