Difference between revisions of "File format"

From SizeCoding
Jump to: navigation, search
m (Sorted descencding by bit, added Amiga template)
m (Linux: add details of Linux ELF file format)
 
Line 36: Line 36:
 
File extension: .exe
 
File extension: .exe
  
===Linux===
+
===ELF===
 
System: Linux
 
System: Linux
  
Header: ca. 100
+
Header: 45 - 100+
  
 
Native size unit: Bytes
 
Native size unit: Bytes
  
Loads to:  
+
Loads to: Random location (see [https://en.wikipedia.org/wiki/Address_space_layout_randomization#Linux here])
  
Starts at:  
+
Starts at: from 0x10000 to around 0x80000000 for 32bit binaries
  
 
File extension: none
 
File extension: none

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)