<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://fileformats.archiveteam.org/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://fileformats.archiveteam.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=SJK</id>
		<title>Just Solve the File Format Problem - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="http://fileformats.archiveteam.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=SJK"/>
		<link rel="alternate" type="text/html" href="http://fileformats.archiveteam.org/wiki/Special:Contributions/SJK"/>
		<updated>2026-05-11T18:14:17Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.19.2</generator>

	<entry>
		<id>http://fileformats.archiveteam.org/wiki/Floppy_disk</id>
		<title>Floppy disk</title>
		<link rel="alternate" type="text/html" href="http://fileformats.archiveteam.org/wiki/Floppy_disk"/>
				<updated>2024-09-05T11:41:03Z</updated>
		
		<summary type="html">&lt;p&gt;SJK: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;:''See also [[Filesystem|Filesystems]], which are contained on Floppy Disks.''&lt;br /&gt;
&lt;br /&gt;
{{FormatInfo&lt;br /&gt;
|formattype=physical&lt;br /&gt;
|thiscat=Floppy disk&lt;br /&gt;
|image=Floppy-disks.jpg&lt;br /&gt;
|caption=Some floppies, 5 1/4&amp;quot; and 3 1/2&amp;quot;.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Formats for images of floppy disk data can be found at [[Disk Image Formats]].&lt;br /&gt;
&lt;br /&gt;
The main ways in which floppy disks could differ at a recording level:&lt;br /&gt;
* The physical dimensions and physical layout – the most common sizes were 8-inch, 5¼-inch (officially the metric 130 mm, but in common parlance referred to by its inch approximation even in countries which normally use the metric system), 3½ inch (likewise officially metric 90 mm, but commonly known by the inch approximation). Note those are the sizes of the actual magnetic disk, the jacket/cartridge is larger. However, there were many other rare sizes.&lt;br /&gt;
* The method of data encoding: the earliest floppies IBM 8-inch floppies used [[FM encoding]]. Capacity was doubled, without changing the disks physically, by switching to the more efficient [[MFM encoding]]. The original FM encoded disks were called &amp;quot;single density&amp;quot;, and the MFM encoded &amp;quot;double density&amp;quot;. IBM PC 5¼-inch and 3½ inch floppies used MFM encoding; the term &amp;quot;double density&amp;quot; was later extended to &amp;quot;high density&amp;quot; and beyond, but this time it referred to changes in the magnetic material and type of disk heads rather than an encoding change. [[GCR encoding]] was also popular, particularly with systems such as Apple IIs and Commodore 64s. Some early &amp;quot;double density&amp;quot; drives used [[M2FM encoding]] (most notably Intel ISIS-II and HP 9885) which was later replaced by the simpler MFM.&lt;br /&gt;
* Magnetic recording material: more expensive media could store more data&lt;br /&gt;
* Type of magnetic disk heads: more expensive magnets could store more data&lt;br /&gt;
* Speed of rotation&lt;br /&gt;
* Constant angular velocity (CAV) versus constant linear velocity (CLV)&lt;br /&gt;
* Number of sides – early disks and drives were single-sided only and could only record on one side of the disk; later disks and drives were double-sided and supported recording on both sides. There were also &amp;quot;flippy disks&amp;quot; where a single-sided drive could be used to record on both sides of a disk by the user manually flipping the disk to access the other side.&lt;br /&gt;
* Longitudinal magnetic recording versus perpendicular magnetic recording: traditionally floppies used longitudinal; 2.88 MB floppy drives doubled the capacity over 1.44MB by switching to perpendicular&lt;br /&gt;
* Sector size: the earliest floppies had 128 byte sectors; IBM PC floppies normally had 512 byte sectors. IBM PC floppy controllers could support any power of 2 from 128 to 4096. Rarely, different tracks on a floppy could be recorded with different sector sizes, or even a single track with a mix of different sector sizes.&lt;br /&gt;
* Gap length between sectors: reducing the gap length could squeeze more sectors on to the disk but at the risk of data loss&lt;br /&gt;
* Format of track and sector headers, including CRC algorithms and any per-sector flags (e.g. IBM 3740 has a flag to mark each sector as &amp;quot;deleted&amp;quot;, a feature carried forward into IBM PC floppy formats, but almost never used in them.)&lt;br /&gt;
* Number of tracks per disk and number of sectors per track&lt;br /&gt;
&lt;br /&gt;
A given combination of floppy disk controller, floppy drive, and disk, could generally support several different variations on the same basic format, but only within certain constraints – e.g. IBM PC floppies could be formatted with a non-standard sector size or number of tracks, but not with GCR or MMFM encoding (since the floppy disk controllers used in IBM PCs did not support those encodings).&lt;br /&gt;
&lt;br /&gt;
The disk geometry, encoding, etc, is orthogonal to the filesystem – 1.44MB Apple Mac floppies were physically interoperable with IBM PC floppies, even though IBM PCs normally lacked software to read Apple's HFS filesystem; by contrast, the earlier 800KB and 400KB Apple Mac floppies were incompatible with IBM PC floppies, since IBM PC floppy drives could not physically read them, nor could those earlier Mac floppy drives physically read IBM PC floppies.&lt;br /&gt;
&lt;br /&gt;
== 2 Inch ==&lt;br /&gt;
* [[LT-1]]&lt;br /&gt;
* [[Video Floppy]]&lt;br /&gt;
&lt;br /&gt;
== 2 1/2 Inch ==&lt;br /&gt;
* [[Sharp 2.5-inch floppy disk]]&lt;br /&gt;
&lt;br /&gt;
== 3 Inch ==&lt;br /&gt;
* [[CF-2 Compact Floppy Disk]]&lt;br /&gt;
* [[MCD-1 Micro Cassette]]&lt;br /&gt;
&lt;br /&gt;
== 3 1/2 Inch ==&lt;br /&gt;
* Acorn&lt;br /&gt;
** [[Acorn double density 3 1/2&amp;quot; disk]]&lt;br /&gt;
** [[Acorn high density 3 1/2&amp;quot; disk]]&lt;br /&gt;
* [[Akai Disk Format]]&lt;br /&gt;
* Amiga&lt;br /&gt;
** [[Amiga double density disk]]&lt;br /&gt;
** [[Amiga high density disk]]&lt;br /&gt;
* Apple&lt;br /&gt;
** [[Apple double-density 3 1/2&amp;quot; disk]]&lt;br /&gt;
** [[Apple high-density 3 1/2&amp;quot; disk]]&lt;br /&gt;
* Brother&lt;br /&gt;
** [[Brother 120k]]&lt;br /&gt;
** [[Brother 240k]]&lt;br /&gt;
** [[Brother HD]]&lt;br /&gt;
* Commodore&lt;br /&gt;
** [[Commodore 1581 disk]]&lt;br /&gt;
* IBM PC and compatibles&lt;br /&gt;
** [[PC-DOS 720K format]]&lt;br /&gt;
** [[PC-DOS 1.44M format]]&lt;br /&gt;
** [[PC-DOS 2.88M format]]&lt;br /&gt;
* SAM Coupé&lt;br /&gt;
** [[SAM Coupé disk]]&lt;br /&gt;
* ZX Spectrum&lt;br /&gt;
** [[ZX Spectrum Beta Disc 3.5&amp;quot; floppy]] (see [[TR-DOS filesystem]])&lt;br /&gt;
&lt;br /&gt;
== 4 Inch ==&lt;br /&gt;
* [[IBM DemiDiskette]]&lt;br /&gt;
&lt;br /&gt;
== 5 1/4 Inch ==&lt;br /&gt;
* Acorn&lt;br /&gt;
** [[Acorn single density 5 1/4&amp;quot; disk]]&lt;br /&gt;
** [[Acorn double density 5 1/4&amp;quot; disk]]&lt;br /&gt;
* APF&lt;br /&gt;
** [[APF Imagination Machine floppy disk]]&lt;br /&gt;
* Apple&lt;br /&gt;
** [[Apple II 13 sector disk]] (Apple DOS 3.2)&lt;br /&gt;
** [[Apple II 16 sector disk]] (Apple DOS 3.3, ProDOS, Apple III SOS)&lt;br /&gt;
** [[Twiggy floppy]] (Apple Lisa)&lt;br /&gt;
* Atari&lt;br /&gt;
** [[Atari 810]]&lt;br /&gt;
* CalComp&lt;br /&gt;
** [[CalComp Vistagraphic 4500 floppy disk]]&lt;br /&gt;
* Commodore&lt;br /&gt;
** [[Commodore 2040 disk]] (and 4040; for PET computers; preceded 1541 despite higher number)&lt;br /&gt;
** [[Commodore 1541 disk]] (used with VIC-20 and C-64)&lt;br /&gt;
** [[Commodore 1571 disk]] (used with C-128)&lt;br /&gt;
* Compucolor&lt;br /&gt;
** [[Compucolor II disk]]&lt;br /&gt;
* IBM PC and compatible&lt;br /&gt;
** [[PC-DOS 160K format]]&lt;br /&gt;
** [[PC-DOS 180K format]]&lt;br /&gt;
** [[PC-DOS 320K format]]&lt;br /&gt;
** [[PC-DOS 360K format]]&lt;br /&gt;
** [[PC-DOS 1.2M format]]&lt;br /&gt;
* Kaypro&lt;br /&gt;
** [[Kaypro 2 CP/M 2.2]]&lt;br /&gt;
** [[Kaypro 4 CP/M 2.2]]&lt;br /&gt;
* North Star&lt;br /&gt;
** [[North Star MDS-A-D]]&lt;br /&gt;
* PMC&lt;br /&gt;
** [[PMC MicroMate floppy disk]]&lt;br /&gt;
* Tandy&lt;br /&gt;
** TRS-80 Model I, III, 4&lt;br /&gt;
*** [[TRS-80 single density 5.25&amp;quot; disk]]&lt;br /&gt;
*** [[TRS-80 double density 5.25&amp;quot; disk]]&lt;br /&gt;
** TRS-80 Color Computer&lt;br /&gt;
*** [[TRS-80 Color Computer single sided 5.25&amp;quot; disk]]&lt;br /&gt;
*** [[TRS-80 Color Computer double sided 5.25&amp;quot; disk]]&lt;br /&gt;
* Texas Instruments&lt;br /&gt;
** [[TI-99/4A 90K]]&lt;br /&gt;
** [[TI-99/4A 180K]]&lt;br /&gt;
** [[TI-99/4A 360K]]&lt;br /&gt;
* ZX Spectrum&lt;br /&gt;
** [[ZX Spectrum Beta Disc 5.25&amp;quot; floppy]] (see [[TR-DOS filesystem]])&lt;br /&gt;
&lt;br /&gt;
== 8 Inch ==&lt;br /&gt;
[[File:floppy-disks-8in.jpg|thumb|upright|[[Some 8&amp;quot; floppy disks]]]]&lt;br /&gt;
* DEC&lt;br /&gt;
** [[DEC RX01]]&lt;br /&gt;
** [[DEC RX02]]&lt;br /&gt;
* IBM&lt;br /&gt;
** [[IBM Type 1]] (33FD)&lt;br /&gt;
** [[IBM Type 2]] (43FD)&lt;br /&gt;
** [[IBM Type 2D]] (53FD)&lt;br /&gt;
** [[IBM 23FD]]&lt;br /&gt;
** [[IBM 3740 format]]&lt;br /&gt;
&lt;br /&gt;
== Data encoding formats ==&lt;br /&gt;
* [[FM encoding]]&lt;br /&gt;
* [[GCR encoding]]&lt;br /&gt;
* [[MFM encoding]]&lt;br /&gt;
* [[RLL encoding]]&lt;br /&gt;
&lt;br /&gt;
== Devices to read floppy disks ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.deviceside.com/fc5025.html Device Side Data FC5025 USB 5.25&amp;quot; floppy controller]&lt;br /&gt;
* [[KryoFlux]]&lt;br /&gt;
* [http://discferret.com/wiki/DiscFerret DiskFerret]&lt;br /&gt;
* [http://wiki.icomp.de/wiki/Catweasel Catweasel]&lt;br /&gt;
* [http://www.cbmstuff.com/proddetail.php?prod=SCP SuperCard Pro]&lt;br /&gt;
* [http://cowlark.com/fluxengine/index.html FluxEngine]&lt;br /&gt;
&lt;br /&gt;
== Disk transfer info ==&lt;br /&gt;
&lt;br /&gt;
* [http://retro.icequake.net/apple2pc.html Info on disk transfers between Apple II and PC/Mac]&lt;br /&gt;
* [http://xfrstn.newmuseum.org/ XFER STN (New Museum)] (available to artists for converting old-format works)&lt;br /&gt;
* [http://www.macdisk.com/lecten.php PC-Lect, program to read old disk formats] (for PC/MS-DOS; doesn't work in Windows past Win98)&lt;br /&gt;
&lt;br /&gt;
== Utilities ==&lt;br /&gt;
&lt;br /&gt;
* [http://disktype.sourceforge.net/ disktype: detect format of disk or disk image]&lt;br /&gt;
* [http://digitalcontinuity.org/post/144268258748/floppy-disk-format-identifer-tool Floppy Disk Format Identifer Tool]&lt;br /&gt;
&lt;br /&gt;
== Other links and references ==&lt;br /&gt;
&lt;br /&gt;
* [[Wikipedia:List of floppy disk formats|List of Floppy Disk Formats]], Wikipedia.&lt;br /&gt;
* [http://digitize.archiveteam.org/index.php/Floppy_Disks Digitize the Planet: Floppy Disks]&lt;br /&gt;
* Michael Haardt et al's [http://www.moria.de/~michael/floppy/ Floppy User Guide] has some information on physical, magnetic, etc formats.&lt;br /&gt;
* [http://www.retrotechnology.com/herbs_stuff/drive.html Floppy drive tech info]&lt;br /&gt;
* [http://archive.org/details/commodore_protection Commodore copy protection books and manuals]&lt;br /&gt;
* [http://www.archiveteam.org/index.php?title=Rescuing_Floppy_Disks Rescuing Floppy Disks (Archive Team)]&lt;br /&gt;
* [http://archive.org/stream/bitsavers_kaypro3318uideFeb85_2222683/3318-A_Kaypro_Robbie_Users_Guide_Feb85#page/n15/mode/2up Care of diskettes]&lt;br /&gt;
* [http://vimeo.com/64248011 Floppy disk archaeology lecture (video)]&lt;br /&gt;
* [http://goughlui.com/?p=3239 Dealing with difficult disks and drives]&lt;br /&gt;
* [http://www.theonion.com/articles/new-improved-obamacare-program-released-on-35-flop,34294/ New, Improved Obamacare Program Released On 35 Floppy Disks (The Onion; humor)]&lt;br /&gt;
* [http://superuser.com/questions/231273/what-are-the-windows-a-and-b-drives-used-for What are the Windows A: and B: drives used for?]&lt;br /&gt;
* [http://ascii.textfiles.com/archives/4226 The Flippy Disk Thing]&lt;br /&gt;
* [http://offog.org/notes/archiving/minifloppies/ Imaging 5.25&amp;quot; floppies]&lt;br /&gt;
* [http://www.dustbury.com/archives/17950 This could take a while...]&lt;br /&gt;
* [http://studioforcreativeinquiry.org/events/warhol-discovery Previously Unknown Warhol Works Discovered on Floppy Disks from 1985]&lt;br /&gt;
* [http://studioforcreativeinquiry.org/public/warhol_amiga_report_v10.pdf Detailed report on the Warhol graphic recovery (PDF)]&lt;br /&gt;
* [https://twitter.com/mikko/status/460883199690678273/photo/1/large One of the computers that would receive a nuclear launch order from the President still uses 8&amp;quot; floppy disks.]&lt;br /&gt;
* [http://www.loc.gov/preservation/resources/rfs/softgame.html Library of Congress Recommended Format Specifications: Software/Gaming]&lt;br /&gt;
* [http://qanda.digipres.org/199/settings-should-imaging-floppy-disks-using-kryoflux-device What settings should be used when imaging floppy disks using a Kryoflux device?]&lt;br /&gt;
* [https://docs.google.com/spreadsheets/d/1g_xM_cmUAl2AIYwD3d_2IulZlOG6_JmDDf7FoIRW9EM/edit Spreadsheet of floppy formats and Kryoflux settings]&lt;br /&gt;
* [https://github.com/euanc/kryofluxDiskID Kryoflux Disk ID software; tries to identify disk types in image]&lt;br /&gt;
* [http://www.openplanetsfoundation.org/blogs/2014-06-26-bulk-disk-imaging-and-disk-format-identification-kryoflux Bulk disk imaging and disk-format identification with KryoFlux]&lt;br /&gt;
* [http://www.sugarcayne.com/2013/09/exile-zip-disks-floppies/ Zip Disks &amp;amp; Floppies: musical piece by artist who formerly used those media for storing beats]&lt;br /&gt;
* [http://dmweb.free.fr/?q=node/210 Notes on copy protection of Dungeon Master and Chaos Strikes Back for Atari ST and Amiga]&lt;br /&gt;
* [http://news.softpedia.com/news/Windows-10-Preview-Removes-Floppy-Disk-Drive-Support-468177.shtml Windows 10 Preview Removes Floppy Disk Drive Support]&lt;br /&gt;
* [http://forum.kryoflux.com/viewtopic.php?f=3&amp;amp;t=630&amp;amp;hilit=8+inch Some discussion of Shugart 801 8&amp;quot; drive]&lt;br /&gt;
* [http://www.macworld.com/article/3018315/storage/star-trek-creators-lost-words-recovered-from-old-floppies.html How Star Trek creator Gene Roddenberry’s words were freed from old floppy disks]&lt;br /&gt;
* [http://openpreservation.org/blog/2016/09/01/an-8-floppy-disk-challenge/ An 8″ Floppy Disk Challenge]&lt;br /&gt;
* [http://openpreservation.org/blog/2016/09/02/digital-obsolescence-reproducing-data-cables/ Digital Obsolescence: Reproducing Floppy Data Cables]&lt;br /&gt;
* [https://www.youtube.com/watch?v=EHRc-QMoUE4 The 8-Bit Guy: How Old School Floppy Drives Worked] (video)&lt;br /&gt;
* [http://journal.code4lib.org/articles/11986 Working with Floppy Disks from the 1980s]&lt;br /&gt;
&lt;br /&gt;
See also [[Disk Imaging Software &amp;amp; Systems]].&lt;/div&gt;</summary>
		<author><name>SJK</name></author>	</entry>

	<entry>
		<id>http://fileformats.archiveteam.org/wiki/PC-DOS_360K_format</id>
		<title>PC-DOS 360K format</title>
		<link rel="alternate" type="text/html" href="http://fileformats.archiveteam.org/wiki/PC-DOS_360K_format"/>
				<updated>2024-09-05T10:30:14Z</updated>
		
		<summary type="html">&lt;p&gt;SJK: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FormatInfo&lt;br /&gt;
|formattype=physical&lt;br /&gt;
|subcat=Floppy disk&lt;br /&gt;
|wikidata={{wikidata|Q29167905}}&lt;br /&gt;
}}&lt;br /&gt;
The '''PC-DOS 360K format''' was a very common floppy disk format in the 1980s, used on IBM PCs and compatibles. It replaced earlier [[PC-DOS 160K format|160K]], [[PC-DOS 180K format|180K]], and [[PC-DOS 320K format|320K]] formats using either fewer sectors, single-sided disks, or both, with a new format getting the most out of a double-sided, double-density 5 1/4&amp;quot; floppy disk. It had 40 tracks per side, with 9 sectors per track, and 512 bytes per sector. The disk turned at 300 RPM.&lt;br /&gt;
&lt;br /&gt;
These disks were generally used with [[FAT12]] file systems under the MS-DOS or PC-DOS operating system, but (far more rarely) were used with other filesystems too (e.g CP/M-86). The sector headers, etc, were based on [[IBM 3740]] format, albeit with [[MFM encoding]] (double density) replacing the original [[FM encoding]] (single density).&lt;br /&gt;
&lt;br /&gt;
After being a commonplace format for most of the 1980s, this format declined in favor of the high-density [[PC-DOS 1.2M format]] and the 3 1/2&amp;quot; [[PC-DOS 720K format]] and [[PC-DOS 1.44M format]]. (There were compatibility issues in reading 360K disks on low-density drives after they were written to with a high-density drive, even though the writing is done in an emulation of the old format, due to the different drive head on the newer drives. The high-density drive heads were smaller, and the data written by them might not be picked up correctly by the larger low-density heads, particularly if the new data was overwriting data stored earlier using large-headed drives, which might not be completely overwritten.)&lt;br /&gt;
&lt;br /&gt;
In the late '80s and early '90s, it was common for desktop PCs to have both 5 1/4&amp;quot; and 3 1/2&amp;quot; disk drives in order to be compatible with all software and data, which might be distributed on either format. Often the 5 1/4&amp;quot; drive was drive A, and the 3 1/2&amp;quot; one was drive B. Later PCs, however, were more likely to have only a 3 1/2&amp;quot; drive, set up to respond to both drive letters. Eventually, PCs stopped having floppy disk drives altogether as other data storage and transfer media took over.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* [http://www.textfiles.com/programming/FORMATS/formats.pro Info on MS-DOS 1.x - 2.x disk formats]&lt;br /&gt;
* [http://67.185.176.54:8080/diskette_handling.html Working with old diskettes]&lt;br /&gt;
* [http://www.computerhistory.org/_static/atchm/microsoft-ms-dos-early-source-code/ Early PC-DOS source code]&lt;br /&gt;
&lt;br /&gt;
[[Category:IBM]]&lt;br /&gt;
[[Category:Microsoft]]&lt;br /&gt;
[[Category:MS-DOS]]&lt;/div&gt;</summary>
		<author><name>SJK</name></author>	</entry>

	<entry>
		<id>http://fileformats.archiveteam.org/wiki/PC-DOS_320K_format</id>
		<title>PC-DOS 320K format</title>
		<link rel="alternate" type="text/html" href="http://fileformats.archiveteam.org/wiki/PC-DOS_320K_format"/>
				<updated>2024-09-05T10:29:37Z</updated>
		
		<summary type="html">&lt;p&gt;SJK: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FormatInfo&lt;br /&gt;
|formattype=physical&lt;br /&gt;
|subcat=Floppy disk&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
The '''PC-DOS 320K format''' was one of several low-capacity 5 1/4&amp;quot; disk formats used on IBM PCs and compatibles in the early days of PC-DOS before the [[PC-DOS 360K format]] became the standard. It used a double-sided, double-density disk with 40 tracks per side with 8 sectors per track, and 512 bytes per sector. The disk turned at 300 RPM. These disks were generally used with [[FAT12]] file systems under the MS-DOS or PC-DOS operating system, but (far more rarely) were used with other filesystems too (e.g CP/M-86). The sector headers, etc, were based on [[IBM 3740]] format, albeit with [[MFM encoding]] (double density) replacing the original [[FM encoding]] (single density).&lt;br /&gt;
&lt;br /&gt;
This format was the double-sided counterpart of the [[PC-DOS 160K format]], but was soon superseded by the 360K format made possible by expanding the number of sectors per track to 9.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* [http://www.textfiles.com/programming/FORMATS/formats.pro Info on MS-DOS 1.x - 2.x disk formats]&lt;br /&gt;
* [http://www.computerhistory.org/_static/atchm/microsoft-ms-dos-early-source-code/ Early PC-DOS source code]&lt;br /&gt;
&lt;br /&gt;
[[Category:IBM]]&lt;br /&gt;
[[Category:Microsoft]]&lt;/div&gt;</summary>
		<author><name>SJK</name></author>	</entry>

	<entry>
		<id>http://fileformats.archiveteam.org/wiki/PC-DOS_180K_format</id>
		<title>PC-DOS 180K format</title>
		<link rel="alternate" type="text/html" href="http://fileformats.archiveteam.org/wiki/PC-DOS_180K_format"/>
				<updated>2024-09-05T10:29:01Z</updated>
		
		<summary type="html">&lt;p&gt;SJK: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FormatInfo&lt;br /&gt;
|formattype=physical&lt;br /&gt;
|subcat=Floppy disk&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
The '''PC-DOS 180K format''' was one of several low-capacity 5 1/4&amp;quot; disk formats used on IBM PCs and compatibles in the early days of PC-DOS before the [[PC-DOS 360K format]] became the standard. It used a single-sided, double-density disk with 40 tracks with 9 sectors per track, and 512 bytes per sector. Data was stored with [[MFM encoding]]. The disk turned at 300 RPM. These disks were generally used with [[FAT12]] file systems under the MS-DOS or PC-DOS operating system, but (far more rarely) were used with other filesystems too (e.g CP/M-86). The sector headers, etc, were based on [[IBM 3740]] format, albeit with [[MFM encoding]] (double density) replacing the original [[FM encoding]] (single density). This format had one more sector per track than the [[PC-DOS 160K format]], and was in the same format as the [[PC-DOS 360K format]] except using only one side of the disk instead of both sides. &lt;br /&gt;
&lt;br /&gt;
As with most single-sided disk formats, users often flipped the disks over to double the storage capacity, which required cutting a write-enable notch on the opposite side from the standard one. Some disks were manufactured with a second notch to cater to this use, though disk manufacturers tended to discourage double-sided use by claiming the reverse side wasn't properly certified for data (despite the fact that different single-sided formats on different platforms actually used different sides of the media) and that flipping the disks caused dust that builds up on the disk to get into the disk drive.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* [http://www.textfiles.com/programming/FORMATS/formats.pro Info on MS-DOS 1.x - 2.x disk formats]&lt;br /&gt;
* [http://www.computerhistory.org/_static/atchm/microsoft-ms-dos-early-source-code/ Early PC-DOS source code]&lt;br /&gt;
&lt;br /&gt;
[[Category:IBM]]&lt;br /&gt;
[[Category:Microsoft]]&lt;/div&gt;</summary>
		<author><name>SJK</name></author>	</entry>

	<entry>
		<id>http://fileformats.archiveteam.org/wiki/PC-DOS_160K_format</id>
		<title>PC-DOS 160K format</title>
		<link rel="alternate" type="text/html" href="http://fileformats.archiveteam.org/wiki/PC-DOS_160K_format"/>
				<updated>2024-09-05T10:28:19Z</updated>
		
		<summary type="html">&lt;p&gt;SJK: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FormatInfo&lt;br /&gt;
|formattype=physical&lt;br /&gt;
|subcat=Floppy disk&lt;br /&gt;
}}&lt;br /&gt;
The '''PC-DOS 160K format''' was one of several low-capacity 5 1/4&amp;quot; disk formats used on IBM PCs and compatibles in the early days of PC-DOS before the [[PC-DOS 360K format]] became the standard. It used a single-sided, double-density disk with 40 tracks with 8 sectors per track, and 512 bytes per sector. Data was stored with [[MFM encoding]]. The disk turned at 300 RPM. These disks were generally used with [[FAT12]] file systems under the MS-DOS or PC-DOS operating system, but (far more rarely) were used with other filesystems too (e.g CP/M-86). The sector headers, etc, were based on [[IBM 3740]] format, albeit with [[MFM encoding]] (double density) replacing the original [[FM encoding]] (single density).&lt;br /&gt;
&lt;br /&gt;
As with most single-sided disk formats, users often flipped the disks over to double the storage capacity, which required cutting a write-enable notch on the opposite side from the standard one. Some disks were manufactured with a second notch to cater to this use, though disk manufacturers tended to discourage double-sided use by claiming the reverse side wasn't properly certified for data (despite the fact that different single-sided formats on different platforms actually used different sides of the media) and that flipping the disks caused dust that builds up on the disk to get into the disk drive.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* [http://www.textfiles.com/programming/FORMATS/formats.pro Info on MS-DOS 1.x - 2.x disk formats]&lt;br /&gt;
* [http://www.computerhistory.org/_static/atchm/microsoft-ms-dos-early-source-code/ Early PC-DOS source code]&lt;br /&gt;
&lt;br /&gt;
[[Category:IBM]]&lt;br /&gt;
[[Category:Microsoft]]&lt;/div&gt;</summary>
		<author><name>SJK</name></author>	</entry>

	<entry>
		<id>http://fileformats.archiveteam.org/wiki/FAT8</id>
		<title>FAT8</title>
		<link rel="alternate" type="text/html" href="http://fileformats.archiveteam.org/wiki/FAT8"/>
				<updated>2024-09-05T05:21:27Z</updated>
		
		<summary type="html">&lt;p&gt;SJK: links to some real examples of FAT8 filesystems&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FormatInfo&lt;br /&gt;
|formattype=electronic&lt;br /&gt;
|subcat=Filesystem&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
'''FAT8''' (Original 8-bit FAT; a variety of [[FAT]], which stands for File Allocation Table) is a simple filesystem with limited capabilities. The &amp;quot;8&amp;quot; refers to the number of bits in table entries. This was the original version of [[FAT]] created at Microsoft for use with versions of [[BASIC]] that had built-in disk support; it was then adopted by Tim Patterson of Seattle Computer Products, who adapted it into [[FAT12]] for use in his disk operating system that eventually got licensed to Microsoft (and in turn to IBM) as PC-DOS / [[MS-DOS]].&lt;br /&gt;
&lt;br /&gt;
==Resources==&lt;br /&gt;
* [[wikipedia:File Allocation Table#Original 8-bit FAT|Wikipedia]]&lt;br /&gt;
* [https://retrocomputing.stackexchange.com/questions/27228/do-any-fat8-filesystem-images-survive Do any FAT8 filesystem images survive?] which links to a couple of example FAT8 disk images ([https://archive.org/details/ToshibaT100PersonalComputerTDISKBASICVersion101982 Toshiba T100 Personal Computer T-DISK BASIC (Version 1.0) (1982)] and [https://winworldpc.com/download/7922cb9c-c2aa-c592-7311-c3a5c28f1352 Microsoft BASIC-80 5.26 (10-27-1983, Alphatronic; incorrectly labelled by WinWorld as CPM-80)]&lt;br /&gt;
&lt;br /&gt;
[[Category:Microsoft]]&lt;/div&gt;</summary>
		<author><name>SJK</name></author>	</entry>

	<entry>
		<id>http://fileformats.archiveteam.org/wiki/IBM_3740_format</id>
		<title>IBM 3740 format</title>
		<link rel="alternate" type="text/html" href="http://fileformats.archiveteam.org/wiki/IBM_3740_format"/>
				<updated>2024-09-05T05:18:12Z</updated>
		
		<summary type="html">&lt;p&gt;SJK: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FormatInfo&lt;br /&gt;
|formattype=physical&lt;br /&gt;
|subcat=Floppy disk&lt;br /&gt;
|released=1973&lt;br /&gt;
}}&lt;br /&gt;
The '''IBM 3740 format''' of 8&amp;quot; floppy disks was used in the 1970s IBM 3740 data entry system, which replaced keypunch systems that stored data on [[punched card]]s.&lt;br /&gt;
&lt;br /&gt;
The disk format was single-sided, single-density, and had 73 tracks with 26 sectors storing 128 bytes per sector. The total capacity was 237.25 KB. [[FM encoding]] was used.&lt;br /&gt;
&lt;br /&gt;
Although 8-inch floppies were extremely rare on IBM PCs, the physical format of IBM PC 5.25 inch and 3.5 inch floppies is directly descended from that of the IBM 3740, with various enhancements – as well as the physical shrink in the disk size, there was also the switch to double-sided, double density ([[MFM encoding]]) instead of single density ([[FM encoding]]), and support for sectors larger than 128 bytes (most IBM PC floppy controllers support any power-of-2 sector size between 128 and 4096, but the vast majority of floppies were formatted with 512 byte sectors.) This includes inheriting various obscure and rarely used IBM 3740 features, such as &amp;quot;deleted sectors&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[DEC RX01]] use the same physical format as IBM 3740, and [[DEC RX02]] floppies are the same but double-density (MFM). 3740 was also the most popular recording format for CP/M.&lt;br /&gt;
&lt;br /&gt;
An ASCII version of the (originally EBCDIC) IBM 3740 filesystem was standardised by ECMA as ECMA-58 and ECMA-67. While many CP/M systems, Microsoft Standalone Disk Basic, and IBM PC's copied the IBM 3740 track format (sector headers, etc), CP/M and DOS did not copy the IBM 3740 filesystem. Systems that supported the IBM 3740 filesystem included IBM mainframes and mainframe peripherals, IBM midrange systems (System/32, System/34, System/36, System/38, AS/400), IBM Series/1 minicomputer, Olivetti P6060, Nixdorf 8820 (see [https://github.com/kkaempf/nixdisk/blob/main/nixdisk.rb tool to read Nixdorf 8820 floppies]). DEC also offered a utility to read the 3740 filesystem under RSTS-11, [https://github.com/hanshuebner/rsts10/blob/main/170052/flint.bas FLINT].&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* [[Wikipedia:IBM 3740|Wikipedia article]]&lt;br /&gt;
* [http://bitsavers.informatik.uni-stuttgart.de/pdf/ibm/3740/GA21-9152-2_IBM_3740_DataEntrySystem_SystemSummary_and_InstallationManual_PhysicalPlanning_Jun74.pdf Manual]&lt;br /&gt;
* [https://www.ibm.com/ibm/history/exhibits/rochester/rochester_4016.html IBM archives page]&lt;br /&gt;
&lt;br /&gt;
[[Category:IBM]]&lt;/div&gt;</summary>
		<author><name>SJK</name></author>	</entry>

	<entry>
		<id>http://fileformats.archiveteam.org/wiki/IBM_3740_format</id>
		<title>IBM 3740 format</title>
		<link rel="alternate" type="text/html" href="http://fileformats.archiveteam.org/wiki/IBM_3740_format"/>
				<updated>2024-09-05T05:15:29Z</updated>
		
		<summary type="html">&lt;p&gt;SJK: distinguish disk format from filesystem&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FormatInfo&lt;br /&gt;
|formattype=physical&lt;br /&gt;
|subcat=Floppy disk&lt;br /&gt;
|released=1973&lt;br /&gt;
}}&lt;br /&gt;
The '''IBM 3740 format''' of 8&amp;quot; floppy disks was used in the 1970s IBM 3740 data entry system, which replaced keypunch systems that stored data on [[punched card]]s.&lt;br /&gt;
&lt;br /&gt;
The disk format was single-sided, single-density, and had 73 tracks with 26 sectors storing 128 bytes per sector. The total capacity was 237.25 KB. [[FM encoding]] was used.&lt;br /&gt;
&lt;br /&gt;
Although 8-inch floppies were extremely rare on IBM PCs, the physical format of IBM PC 5.25 inch and 3.5 inch floppies is directly descended from that of the IBM 3740, with various enhancements – as well as the physical shrink in the disk size, there was also the switch to double-sided, double density ([[MFM encoding]]) instead of single density ([[FM encoding]]), and support for sectors larger than 128 bytes (most IBM PC floppy controllers support any power-of-2 sector size between 128 and 4096, but the vast majority of floppies were formatted with 512 byte sectors.) This includes inheriting various obscure and rarely used IBM 3740 features, such as &amp;quot;deleted sectors&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
An ASCII version of the (originally EBCDIC) IBM 3740 filesystem was standardised by ECMA as ECMA-58 and ECMA-67. While many CP/M systems, Microsoft Standalone Disk Basic, and IBM PC's copied the IBM 3740 track format (sector headers, etc), CP/M and DOS did not copy the IBM 3740 filesystem. Systems that supported the IBM 3740 filesystem included IBM mainframes and mainframe peripherals, IBM midrange systems (System/32, System/34, System/36, System/38, AS/400), IBM Series/1 minicomputer, Olivetti P6060, Nixdorf 8820 (see [https://github.com/kkaempf/nixdisk/blob/main/nixdisk.rb tool to read Nixdorf 8820 floppies]). DEC also offered a utility to read the 3740 filesystem under RSTS-11, [https://github.com/hanshuebner/rsts10/blob/main/170052/flint.bas FLINT].&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* [[Wikipedia:IBM 3740|Wikipedia article]]&lt;br /&gt;
* [http://bitsavers.informatik.uni-stuttgart.de/pdf/ibm/3740/GA21-9152-2_IBM_3740_DataEntrySystem_SystemSummary_and_InstallationManual_PhysicalPlanning_Jun74.pdf Manual]&lt;br /&gt;
* [https://www.ibm.com/ibm/history/exhibits/rochester/rochester_4016.html IBM archives page]&lt;br /&gt;
&lt;br /&gt;
[[Category:IBM]]&lt;/div&gt;</summary>
		<author><name>SJK</name></author>	</entry>

	<entry>
		<id>http://fileformats.archiveteam.org/wiki/IBM_3740_format</id>
		<title>IBM 3740 format</title>
		<link rel="alternate" type="text/html" href="http://fileformats.archiveteam.org/wiki/IBM_3740_format"/>
				<updated>2024-09-05T04:08:09Z</updated>
		
		<summary type="html">&lt;p&gt;SJK: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FormatInfo&lt;br /&gt;
|formattype=physical&lt;br /&gt;
|subcat=Floppy disk&lt;br /&gt;
|released=1973&lt;br /&gt;
}}&lt;br /&gt;
The '''IBM 3740 format''' of 8&amp;quot; floppy disks was used in the 1970s IBM 3740 data entry system, which replaced keypunch systems that stored data on [[punched card]]s.&lt;br /&gt;
&lt;br /&gt;
The disk format was single-sided, single-density, and had 73 tracks with 26 sectors storing 128 bytes per sector. The total capacity was 237.25 KB. [[FM encoding]] was used.&lt;br /&gt;
&lt;br /&gt;
Although 8-inch floppies were extremely rare on IBM PCs, the physical format of IBM PC 5.25 inch and 3.5 inch floppies is directly descended from that of the IBM 3740, with various enhancements – as well as the physical shrink in the disk size, there was also the switch to double-sided, double density ([[MFM encoding]]) instead of single density ([[FM encoding]]), and support for sectors larger than 128 bytes (most IBM PC floppy controllers support any power-of-2 sector size between 128 and 4096, but the vast majority of floppies were formatted with 512 byte sectors.) This includes inheriting various obscure and rarely used IBM 3740 features, such as &amp;quot;deleted sectors&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* [[Wikipedia:IBM 3740|Wikipedia article]]&lt;br /&gt;
* [http://bitsavers.informatik.uni-stuttgart.de/pdf/ibm/3740/GA21-9152-2_IBM_3740_DataEntrySystem_SystemSummary_and_InstallationManual_PhysicalPlanning_Jun74.pdf Manual]&lt;br /&gt;
* [https://www.ibm.com/ibm/history/exhibits/rochester/rochester_4016.html IBM archives page]&lt;br /&gt;
&lt;br /&gt;
[[Category:IBM]]&lt;/div&gt;</summary>
		<author><name>SJK</name></author>	</entry>

	<entry>
		<id>http://fileformats.archiveteam.org/wiki/MS-DOS_EXE</id>
		<title>MS-DOS EXE</title>
		<link rel="alternate" type="text/html" href="http://fileformats.archiveteam.org/wiki/MS-DOS_EXE"/>
				<updated>2024-09-04T21:49:55Z</updated>
		
		<summary type="html">&lt;p&gt;SJK: /* Extended Header */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FormatInfo&lt;br /&gt;
|formattype=electronic&lt;br /&gt;
|subcat=Executables&lt;br /&gt;
|extensions={{ext|exe}}&lt;br /&gt;
|pronom={{PRONOM|x-fmt/409}}&lt;br /&gt;
|kaitai struct=dos_mz&lt;br /&gt;
}}&lt;br /&gt;
'''MS-DOS EXE''' (or '''DOS EXE'''), also known as '''MZ''' format, is an executable file format used mainly by [[MS-DOS]]. It is the successor of [[DOS executable (.com)|COM]]. A number of other executable formats are extensions or hybrids of it; see [[EXE]] for those formats.&lt;br /&gt;
&lt;br /&gt;
== Format details ==&lt;br /&gt;
=== Header structure ===&lt;br /&gt;
DOS EXE files begin with a fixed 28-byte header.&lt;br /&gt;
&lt;br /&gt;
The field names in this table are taken from the IMAGE_DOS_HEADER structure defined in modern Windows SDKs. Byte order is little-endian.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Offset !! Type !! Name !! Description and remarks&lt;br /&gt;
|-&lt;br /&gt;
|0 || byte[2] || e_magic || Signature - ASCII &amp;quot;&amp;lt;code&amp;gt;MZ&amp;lt;/code&amp;gt;&amp;quot; or &amp;quot;&amp;lt;code&amp;gt;ZM&amp;lt;/code&amp;gt;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|2 || uint16 || e_cblp || If nonzero, the number of bytes in the last page&lt;br /&gt;
|-&lt;br /&gt;
|4 || uint16 || e_cp || Number of 512-byte pages in the file, not counting the &amp;quot;overlay&amp;quot; segment&lt;br /&gt;
|-&lt;br /&gt;
|6 || uint16 || e_crlc || Number of relocations&lt;br /&gt;
|-&lt;br /&gt;
|8 || uint16 || e_cparhdr || Header size, in 16-byte paragraphs&lt;br /&gt;
|-&lt;br /&gt;
|10 || uint16 || e_minalloc || Minimum allocation&lt;br /&gt;
|-&lt;br /&gt;
|12 || uint16 || e_maxalloc || Maximum allocation&lt;br /&gt;
|-&lt;br /&gt;
|14 || int16  || e_ss || Initial SS register&lt;br /&gt;
|-&lt;br /&gt;
|16 || uint16 || e_sp || Initial SP register&lt;br /&gt;
|-&lt;br /&gt;
|18 || uint16 || e_csum || Checksum - Usually unused and set to 0&lt;br /&gt;
|-&lt;br /&gt;
|20 || uint16 || e_ip || Initial IP register&lt;br /&gt;
|-&lt;br /&gt;
|22 || int16  || e_cs || Initial CS register&lt;br /&gt;
|-&lt;br /&gt;
|24 || uint16 || e_lfarlc || Relocation table offset, in bytes from the start of the file&lt;br /&gt;
|-&lt;br /&gt;
|26 || uint16 || e_ovno || Overlay number (or other custom data) - Usually unused&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The ZM signature was used by very old versions of the Microsoft linker (from while DOS 1.0 was still under development). By the time PC-DOS 1.0 was shipped, the ZM signature was already considered obsolete. However, DOS 1.0 accepted it for backwards compatibility, and that code was retained by all future DOS versions. Windows, however, rejects ZM and only accepts MZ.&lt;br /&gt;
&lt;br /&gt;
Old versions of Microsoft's development tools would calculate the checksum correctly, but DOS has always ignored it when loading EXE files. As a result, many third party tools would either calculate it using the wrong algorithm, leave it at zero or at some other fixed value. In response to this reality, Microsoft eventually gave up and stopped setting it in their own build tools too (in Microsoft LINK 5.3, which corresponds to Microsoft C/C++ 7.0, which came out in the early 1990s). Hence, while in 1980s era executables it is commonly set, executables from the 1990s onwards it is likely zero. (see also [https://entropymine.wordpress.com/2023/09/27/the-exe-checksum-field/ blog post with detailed analysis of checksum])&lt;br /&gt;
&lt;br /&gt;
==== Extended Header ====&lt;br /&gt;
DOS executables don't always contain these additional fields, but Windows and OS/2 executables always do:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Offset !! Type !! Name !! Description and remarks&lt;br /&gt;
|-&lt;br /&gt;
|28 || byte[8] || e_res || Reserved bytes&lt;br /&gt;
|-&lt;br /&gt;
|36 || uint16 || e_oemid || OEM identifier (rarely used)&lt;br /&gt;
|-&lt;br /&gt;
|38 || uint16 || e_oeminfo || OEM information (rarely used, meaning depends on OEM identifier)&lt;br /&gt;
|-&lt;br /&gt;
|40 || byte[20] || e_res2 || Reserved bytes&lt;br /&gt;
|-&lt;br /&gt;
|60 || uint32 || e_lfanew || File offset of new format executable header (NE, LE, LX or PE) &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The extended header only exists if &amp;lt;code&amp;gt;e_lfarlc&amp;lt;/code&amp;gt; is greater than 28 (0x1C); some MZ executables have the relocation table starting at offset 28 and the extended header is absent. Note however that some tools which handle newer executable formats (NE/LE/LX/PE/etc) ignore &amp;lt;code&amp;gt;e_lfarlc&amp;lt;/code&amp;gt; and always test the validity of the &amp;lt;code&amp;gt;e_lfanew&amp;lt;/code&amp;gt; offset. In particular, although NT-based Windows requires all executables and DLLs to start with an MZ header, it only actually checks the signature and the &amp;lt;code&amp;gt;e_lfanew&amp;lt;/code&amp;gt; field, and the rest can all be zeroed. Such an executable obviously will not work under DOS.&lt;br /&gt;
&lt;br /&gt;
There is some conflicting information on the purpose of the start of the &amp;lt;code&amp;gt;eres&amp;lt;/code&amp;gt; field, offset 28 or 0x1C:&lt;br /&gt;
* [https://wiki.osdev.org/MZ OSDev Wiki] claims this is &amp;quot;Overlay information&amp;quot; and that &amp;quot;Files sometimes contain extra information for the main's program overlay management&amp;quot;&lt;br /&gt;
* The file [https://github.com/microsoft/MS-DOS/blob/main/v2.0/source/DOSSYM.ASM#L585 DOSSYM.ASM] in the open sourced MS-DOS 2.0 source code claims this is a 4 byte field called &amp;quot;exe_sym_tab&amp;quot; with comment &amp;quot;offset of symbol table in file&amp;quot;. It also contains a [https://github.com/microsoft/MS-DOS/blob/main/v2.0/source/DOSSYM.ASM#L591 symbol_entry] structure definition which is likely the contents of the table. The same definitions occur in the open source MS-DOS 4.0 source code, moved to a different file ([https://github.com/microsoft/MS-DOS/blob/main/v4.0/src/INC/EXE.INC#L67 EXE.INC]). However, this field is not used anywhere in the open source DOS source code; it is unknown whether any Microsoft tools stored a symbol table offset in this field or if any executables survive with one set. Later DOS era Microsoft tooling stored the symbol table in a &amp;quot;CodeView trailer&amp;quot; at end of the executable, so if this mechanism was ever used at all, it is likely to have only been in the early-to-mid 1980s.  &lt;br /&gt;
* [https://www.ctyme.com/intr/rb-2939.htm#Table1594 Ralf Brown Interrupt List Table 1594] reports various uses for this field, including signatures for EXE packers. Under New Executable format, it mentions a 16-bit field &amp;quot;behavior bits&amp;quot; at offset 0x20 but there is limited information available on what that means (possibly used by multitasking MS-DOS 4.0; speculatively, may have stored some of the information that later ended up in PIF files, until MS worked out there was too much config required to just add it to the EXE). It also reports that Borland TLINK puts the bytes 0x01 0x00 in the field at offset 0x1C; however, some executables shipped with MS-DOS have those bytes there as well, suggesting that whatever that means, it might not be unique to Borland, since that implies Microsoft tooling sometimes generates those bytes as well.&lt;br /&gt;
&lt;br /&gt;
=== Special file positions ===&lt;br /&gt;
When analyzing DOS EXE files, especially [[Executable envelopes|&amp;quot;envelope&amp;quot; formats]], it can be helpful to calculate certain special file positions. The positions given here are in bytes, from the start of the file.&lt;br /&gt;
&lt;br /&gt;
* ''End of relocation table'': e_lfarlc + 4×e_crlc&lt;br /&gt;
* ''Start of code image segment'': 16×e_cparhdr&lt;br /&gt;
* ''Execution starting point'' (a.k.a. ''entry point''): 16×e_cparhdr + 16×e_cs + e_ip. Note that e_cs may be negative.&lt;br /&gt;
* ''Start of overlay segment'' (or ''end of code image segment''): If e_cblp=0, this is 512×e_cp. Otherwise, 512×(e_cp−1) + e_cblp.&lt;br /&gt;
&lt;br /&gt;
== Identification ==&lt;br /&gt;
See [[EXE#Identification]] for EXE format in general.&lt;br /&gt;
&lt;br /&gt;
It's not clear if there is any completely reliable way to identify a file as strictly DOS EXE, except in the negative (i.e., it looks like EXE, and is not a valid [[NE]], [[PE]], etc., file).&lt;br /&gt;
&lt;br /&gt;
If the relocation table offset is from 28 to 63, or any segment (relocation table or code image) overlaps the four bytes starting at offset 60, it is pretty certainly DOS EXE.&lt;br /&gt;
&lt;br /&gt;
Most non-DOS EXE files set the relocation table offset to 64, but it's probably not safe to rely on that.&lt;br /&gt;
&lt;br /&gt;
== Sample files ==&lt;br /&gt;
* {{DexvertSamples|executable/exe}}&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* [[Wikipedia:DOS MZ executable|Wikipedia article]]&lt;br /&gt;
* [http://wiki.osdev.org/MZ MZ], from the OSDev Wiki&lt;br /&gt;
* http://www.delorie.com/djgpp/doc/exe/&lt;br /&gt;
* [http://www.textfiles.com/programming/FORMATS/exefs.pro DOS EXE format]&lt;br /&gt;
* [http://www.mitec.cz/exe.html EXE Explorer utility]&lt;br /&gt;
* [http://www.ctyme.com/intr/rb-2939.htm Ralf Brown's Interrupt Reference] has an extensive list of (mostly older) MZ-based executable formats&lt;br /&gt;
&lt;br /&gt;
[[Category:Microsoft]]&lt;br /&gt;
[[Category:MS-DOS]]&lt;/div&gt;</summary>
		<author><name>SJK</name></author>	</entry>

	<entry>
		<id>http://fileformats.archiveteam.org/wiki/MS-DOS_EXE</id>
		<title>MS-DOS EXE</title>
		<link rel="alternate" type="text/html" href="http://fileformats.archiveteam.org/wiki/MS-DOS_EXE"/>
				<updated>2024-09-04T21:45:12Z</updated>
		
		<summary type="html">&lt;p&gt;SJK: /* Extended Header */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FormatInfo&lt;br /&gt;
|formattype=electronic&lt;br /&gt;
|subcat=Executables&lt;br /&gt;
|extensions={{ext|exe}}&lt;br /&gt;
|pronom={{PRONOM|x-fmt/409}}&lt;br /&gt;
|kaitai struct=dos_mz&lt;br /&gt;
}}&lt;br /&gt;
'''MS-DOS EXE''' (or '''DOS EXE'''), also known as '''MZ''' format, is an executable file format used mainly by [[MS-DOS]]. It is the successor of [[DOS executable (.com)|COM]]. A number of other executable formats are extensions or hybrids of it; see [[EXE]] for those formats.&lt;br /&gt;
&lt;br /&gt;
== Format details ==&lt;br /&gt;
=== Header structure ===&lt;br /&gt;
DOS EXE files begin with a fixed 28-byte header.&lt;br /&gt;
&lt;br /&gt;
The field names in this table are taken from the IMAGE_DOS_HEADER structure defined in modern Windows SDKs. Byte order is little-endian.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Offset !! Type !! Name !! Description and remarks&lt;br /&gt;
|-&lt;br /&gt;
|0 || byte[2] || e_magic || Signature - ASCII &amp;quot;&amp;lt;code&amp;gt;MZ&amp;lt;/code&amp;gt;&amp;quot; or &amp;quot;&amp;lt;code&amp;gt;ZM&amp;lt;/code&amp;gt;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|2 || uint16 || e_cblp || If nonzero, the number of bytes in the last page&lt;br /&gt;
|-&lt;br /&gt;
|4 || uint16 || e_cp || Number of 512-byte pages in the file, not counting the &amp;quot;overlay&amp;quot; segment&lt;br /&gt;
|-&lt;br /&gt;
|6 || uint16 || e_crlc || Number of relocations&lt;br /&gt;
|-&lt;br /&gt;
|8 || uint16 || e_cparhdr || Header size, in 16-byte paragraphs&lt;br /&gt;
|-&lt;br /&gt;
|10 || uint16 || e_minalloc || Minimum allocation&lt;br /&gt;
|-&lt;br /&gt;
|12 || uint16 || e_maxalloc || Maximum allocation&lt;br /&gt;
|-&lt;br /&gt;
|14 || int16  || e_ss || Initial SS register&lt;br /&gt;
|-&lt;br /&gt;
|16 || uint16 || e_sp || Initial SP register&lt;br /&gt;
|-&lt;br /&gt;
|18 || uint16 || e_csum || Checksum - Usually unused and set to 0&lt;br /&gt;
|-&lt;br /&gt;
|20 || uint16 || e_ip || Initial IP register&lt;br /&gt;
|-&lt;br /&gt;
|22 || int16  || e_cs || Initial CS register&lt;br /&gt;
|-&lt;br /&gt;
|24 || uint16 || e_lfarlc || Relocation table offset, in bytes from the start of the file&lt;br /&gt;
|-&lt;br /&gt;
|26 || uint16 || e_ovno || Overlay number (or other custom data) - Usually unused&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The ZM signature was used by very old versions of the Microsoft linker (from while DOS 1.0 was still under development). By the time PC-DOS 1.0 was shipped, the ZM signature was already considered obsolete. However, DOS 1.0 accepted it for backwards compatibility, and that code was retained by all future DOS versions. Windows, however, rejects ZM and only accepts MZ.&lt;br /&gt;
&lt;br /&gt;
Old versions of Microsoft's development tools would calculate the checksum correctly, but DOS has always ignored it when loading EXE files. As a result, many third party tools would either calculate it using the wrong algorithm, leave it at zero or at some other fixed value. In response to this reality, Microsoft eventually gave up and stopped setting it in their own build tools too (in Microsoft LINK 5.3, which corresponds to Microsoft C/C++ 7.0, which came out in the early 1990s). Hence, while in 1980s era executables it is commonly set, executables from the 1990s onwards it is likely zero. (see also [https://entropymine.wordpress.com/2023/09/27/the-exe-checksum-field/ blog post with detailed analysis of checksum])&lt;br /&gt;
&lt;br /&gt;
==== Extended Header ====&lt;br /&gt;
DOS executables don't always contain these additional fields, but Windows and OS/2 executables always do:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Offset !! Type !! Name !! Description and remarks&lt;br /&gt;
|-&lt;br /&gt;
|28 || byte[8] || e_res || Reserved bytes&lt;br /&gt;
|-&lt;br /&gt;
|36 || uint16 || e_oemid || OEM identifier (rarely used)&lt;br /&gt;
|-&lt;br /&gt;
|38 || uint16 || e_oeminfo || OEM information (rarely used, meaning depends on OEM identifier)&lt;br /&gt;
|-&lt;br /&gt;
|40 || byte[20] || e_res2 || Reserved bytes&lt;br /&gt;
|-&lt;br /&gt;
|60 || uint32 || e_lfanew || File offset of new format executable header (NE, LE, LX or PE) &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The extended header only exists if &amp;lt;code&amp;gt;e_lfarlc&amp;lt;/code&amp;gt; is greater than 28 (0x1C); some MZ executables have the relocation table starting at offset 28 and the extended header is absent. Note however that some tools which handle newer executable formats (NE/LE/LX/PE/etc) ignore &amp;lt;code&amp;gt;e_lfarlc&amp;lt;/code&amp;gt; and always test the validity of the &amp;lt;code&amp;gt;e_lfanew&amp;lt;/code&amp;gt; offset. In particular, although NT-based Windows requires all executables and DLLs to start with an MZ header, it only actually checks the signature and the &amp;lt;code&amp;gt;e_lfanew&amp;lt;/code&amp;gt; field, and the rest can all be zeroed. Such an executable obviously will not work under DOS.&lt;br /&gt;
&lt;br /&gt;
There is some conflicting information on the purpose of the start of the &amp;lt;code&amp;gt;eres&amp;lt;/code&amp;gt; field, offset 28 or 0x1C:&lt;br /&gt;
* [https://wiki.osdev.org/MZ OSDev Wiki] claims this is &amp;quot;Overlay information&amp;quot; and that &amp;quot;Files sometimes contain extra information for the main's program overlay management&amp;quot;&lt;br /&gt;
* The file [https://github.com/microsoft/MS-DOS/blob/main/v2.0/source/DOSSYM.ASM#L585 DOSSYM.ASM] in the open sourced MS-DOS 2.0 source code claims this is a 4 byte field called &amp;quot;exe_sym_tab&amp;quot; with comment &amp;quot;offset of symbol table in file&amp;quot;. It also contains a [https://github.com/microsoft/MS-DOS/blob/main/v2.0/source/DOSSYM.ASM#L591 symbol_entry] structure definition which is likely the contents of the table. The same definitions occur in the open source MS-DOS 4.0 source code, moved to a different file ([https://github.com/microsoft/MS-DOS/blob/main/v4.0/src/INC/EXE.INC#L67 EXE.INC]). However, this field is not used anywhere in the open source DOS source code; it is unknown whether any Microsoft tools stored a symbol table offset in this field or if any executables survive with one set. Later DOS era Microsoft tooling stored the symbol table in a &amp;quot;CodeView trailer&amp;quot; at end of the executable, so if this mechanism was ever used at all, it is likely to have only been in the early-to-mid 1980s.  &lt;br /&gt;
* [https://www.ctyme.com/intr/rb-2939.htm#Table1594 Ralf Brown Interrupt List Table 1594] reports various uses for this field, including signatures for EXE packers. Under New Executable format, it mentions a 16-bit field &amp;quot;behavior bits&amp;quot; at offset 0x20 but there is limited information available on what that means (possibly used by multitasking MS-DOS 4.0). It also reports that Borland TLINK puts the bytes 0x01 0x00 in the field at offset 0x1C; however, some executables shipped with MS-DOS have those bytes there as well, suggesting that whatever that means, it might not be unique to Borland, since that implies Microsoft tooling sometimes generates those bytes as well.&lt;br /&gt;
&lt;br /&gt;
=== Special file positions ===&lt;br /&gt;
When analyzing DOS EXE files, especially [[Executable envelopes|&amp;quot;envelope&amp;quot; formats]], it can be helpful to calculate certain special file positions. The positions given here are in bytes, from the start of the file.&lt;br /&gt;
&lt;br /&gt;
* ''End of relocation table'': e_lfarlc + 4×e_crlc&lt;br /&gt;
* ''Start of code image segment'': 16×e_cparhdr&lt;br /&gt;
* ''Execution starting point'' (a.k.a. ''entry point''): 16×e_cparhdr + 16×e_cs + e_ip. Note that e_cs may be negative.&lt;br /&gt;
* ''Start of overlay segment'' (or ''end of code image segment''): If e_cblp=0, this is 512×e_cp. Otherwise, 512×(e_cp−1) + e_cblp.&lt;br /&gt;
&lt;br /&gt;
== Identification ==&lt;br /&gt;
See [[EXE#Identification]] for EXE format in general.&lt;br /&gt;
&lt;br /&gt;
It's not clear if there is any completely reliable way to identify a file as strictly DOS EXE, except in the negative (i.e., it looks like EXE, and is not a valid [[NE]], [[PE]], etc., file).&lt;br /&gt;
&lt;br /&gt;
If the relocation table offset is from 28 to 63, or any segment (relocation table or code image) overlaps the four bytes starting at offset 60, it is pretty certainly DOS EXE.&lt;br /&gt;
&lt;br /&gt;
Most non-DOS EXE files set the relocation table offset to 64, but it's probably not safe to rely on that.&lt;br /&gt;
&lt;br /&gt;
== Sample files ==&lt;br /&gt;
* {{DexvertSamples|executable/exe}}&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* [[Wikipedia:DOS MZ executable|Wikipedia article]]&lt;br /&gt;
* [http://wiki.osdev.org/MZ MZ], from the OSDev Wiki&lt;br /&gt;
* http://www.delorie.com/djgpp/doc/exe/&lt;br /&gt;
* [http://www.textfiles.com/programming/FORMATS/exefs.pro DOS EXE format]&lt;br /&gt;
* [http://www.mitec.cz/exe.html EXE Explorer utility]&lt;br /&gt;
* [http://www.ctyme.com/intr/rb-2939.htm Ralf Brown's Interrupt Reference] has an extensive list of (mostly older) MZ-based executable formats&lt;br /&gt;
&lt;br /&gt;
[[Category:Microsoft]]&lt;br /&gt;
[[Category:MS-DOS]]&lt;/div&gt;</summary>
		<author><name>SJK</name></author>	</entry>

	<entry>
		<id>http://fileformats.archiveteam.org/wiki/MS-DOS_EXE</id>
		<title>MS-DOS EXE</title>
		<link rel="alternate" type="text/html" href="http://fileformats.archiveteam.org/wiki/MS-DOS_EXE"/>
				<updated>2024-09-04T21:22:39Z</updated>
		
		<summary type="html">&lt;p&gt;SJK: /* Format details */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FormatInfo&lt;br /&gt;
|formattype=electronic&lt;br /&gt;
|subcat=Executables&lt;br /&gt;
|extensions={{ext|exe}}&lt;br /&gt;
|pronom={{PRONOM|x-fmt/409}}&lt;br /&gt;
|kaitai struct=dos_mz&lt;br /&gt;
}}&lt;br /&gt;
'''MS-DOS EXE''' (or '''DOS EXE'''), also known as '''MZ''' format, is an executable file format used mainly by [[MS-DOS]]. It is the successor of [[DOS executable (.com)|COM]]. A number of other executable formats are extensions or hybrids of it; see [[EXE]] for those formats.&lt;br /&gt;
&lt;br /&gt;
== Format details ==&lt;br /&gt;
=== Header structure ===&lt;br /&gt;
DOS EXE files begin with a fixed 28-byte header.&lt;br /&gt;
&lt;br /&gt;
The field names in this table are taken from the IMAGE_DOS_HEADER structure defined in modern Windows SDKs. Byte order is little-endian.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Offset !! Type !! Name !! Description and remarks&lt;br /&gt;
|-&lt;br /&gt;
|0 || byte[2] || e_magic || Signature - ASCII &amp;quot;&amp;lt;code&amp;gt;MZ&amp;lt;/code&amp;gt;&amp;quot; or &amp;quot;&amp;lt;code&amp;gt;ZM&amp;lt;/code&amp;gt;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|2 || uint16 || e_cblp || If nonzero, the number of bytes in the last page&lt;br /&gt;
|-&lt;br /&gt;
|4 || uint16 || e_cp || Number of 512-byte pages in the file, not counting the &amp;quot;overlay&amp;quot; segment&lt;br /&gt;
|-&lt;br /&gt;
|6 || uint16 || e_crlc || Number of relocations&lt;br /&gt;
|-&lt;br /&gt;
|8 || uint16 || e_cparhdr || Header size, in 16-byte paragraphs&lt;br /&gt;
|-&lt;br /&gt;
|10 || uint16 || e_minalloc || Minimum allocation&lt;br /&gt;
|-&lt;br /&gt;
|12 || uint16 || e_maxalloc || Maximum allocation&lt;br /&gt;
|-&lt;br /&gt;
|14 || int16  || e_ss || Initial SS register&lt;br /&gt;
|-&lt;br /&gt;
|16 || uint16 || e_sp || Initial SP register&lt;br /&gt;
|-&lt;br /&gt;
|18 || uint16 || e_csum || Checksum - Usually unused and set to 0&lt;br /&gt;
|-&lt;br /&gt;
|20 || uint16 || e_ip || Initial IP register&lt;br /&gt;
|-&lt;br /&gt;
|22 || int16  || e_cs || Initial CS register&lt;br /&gt;
|-&lt;br /&gt;
|24 || uint16 || e_lfarlc || Relocation table offset, in bytes from the start of the file&lt;br /&gt;
|-&lt;br /&gt;
|26 || uint16 || e_ovno || Overlay number (or other custom data) - Usually unused&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The ZM signature was used by very old versions of the Microsoft linker (from while DOS 1.0 was still under development). By the time PC-DOS 1.0 was shipped, the ZM signature was already considered obsolete. However, DOS 1.0 accepted it for backwards compatibility, and that code was retained by all future DOS versions. Windows, however, rejects ZM and only accepts MZ.&lt;br /&gt;
&lt;br /&gt;
Old versions of Microsoft's development tools would calculate the checksum correctly, but DOS has always ignored it when loading EXE files. As a result, many third party tools would either calculate it using the wrong algorithm, leave it at zero or at some other fixed value. In response to this reality, Microsoft eventually gave up and stopped setting it in their own build tools too (in Microsoft LINK 5.3, which corresponds to Microsoft C/C++ 7.0, which came out in the early 1990s). Hence, while in 1980s era executables it is commonly set, executables from the 1990s onwards it is likely zero. (see also [https://entropymine.wordpress.com/2023/09/27/the-exe-checksum-field/ blog post with detailed analysis of checksum])&lt;br /&gt;
&lt;br /&gt;
==== Extended Header ====&lt;br /&gt;
DOS executables don't always contain these additional fields, but Windows and OS/2 executables always do:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Offset !! Type !! Name !! Description and remarks&lt;br /&gt;
|-&lt;br /&gt;
|28 || byte[8] || e_res || Reserved bytes&lt;br /&gt;
|-&lt;br /&gt;
|36 || uint16 || e_oemid || OEM identifier (rarely used)&lt;br /&gt;
|-&lt;br /&gt;
|38 || uint16 || e_oeminfo || OEM information (rarely used, meaning depends on OEM identifier)&lt;br /&gt;
|-&lt;br /&gt;
|40 || byte[20] || e_res2 || Reserved bytes&lt;br /&gt;
|-&lt;br /&gt;
|60 || uint32 || e_lfanew || File offset of new format executable header (NE, LE, LX or PE) &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The extended header only exists if &amp;lt;code&amp;gt;e_lfarlc&amp;lt;/code&amp;gt; is greater than 28 (0x1C); some MZ executables have the relocation table starting at offset 28 and the extended header is absent. Note however that some tools which handle newer executable formats (NE/LE/LX/PE/etc) ignore &amp;lt;code&amp;gt;e_lfarlc&amp;lt;/code&amp;gt; and always test the validity of the &amp;lt;code&amp;gt;e_lfanew&amp;lt;/code&amp;gt; offset. In particular, although NT-based Windows requires all executables and DLLs to start with an MZ header, it only actually checks the signature and the &amp;lt;code&amp;gt;e_lfanew&amp;lt;/code&amp;gt; field, and the rest can all be zeroed. Such an executable obviously will not work under DOS.&lt;br /&gt;
&lt;br /&gt;
There is some conflicting information on the purpose of the start of the &amp;lt;code&amp;gt;eres&amp;lt;/code&amp;gt; field, offset 28 or 0x1C:&lt;br /&gt;
* [https://wiki.osdev.org/MZ OSDev Wiki] claims this is &amp;quot;Overlay information&amp;quot; and that &amp;quot;Files sometimes contain extra information for the main's program overlay management&amp;quot;&lt;br /&gt;
* The file [https://github.com/microsoft/MS-DOS/blob/main/v2.0/source/DOSSYM.ASM#L585 DOSSYM.ASM] in the open sourced MS-DOS 2.0 source code claims this is a 4 byte field called &amp;quot;exe_sym_tab&amp;quot; with comment &amp;quot;offset of symbol table in file&amp;quot;. It also contains a [https://github.com/microsoft/MS-DOS/blob/main/v2.0/source/DOSSYM.ASM#L591 symbol_entry] structure definition which is likely the contents of the table. The same definitions occur in the open source MS-DOS 4.0 source code, moved to a different file ([https://github.com/microsoft/MS-DOS/blob/main/v4.0/src/INC/EXE.INC#L67 EXE.INC]). However, this field is not used anywhere in the open source DOS source code; it is unknown whether any Microsoft tools stored a symbol table offset in this field or if any executables survive with one set. Later DOS era Microsoft tooling stored the symbol table in a &amp;quot;CodeView trailer&amp;quot; at end of the executable, so if this mechanism was ever used at all, it is likely to have only been in the early-to-mid 1980s.  &lt;br /&gt;
* [https://www.ctyme.com/intr/rb-2939.htm#Table1594 Ralf Brown Interrupt List Table 1594] reports various uses for this field, including signatures for EXE packers. Under New Executable format, it mentions a 16-bit field &amp;quot;behavior bits&amp;quot; at offset 0x20 but there is a lack of information available on what that means. It also reports that Borland TLINK puts the bytes 0x01 0x00 in the field at offset 0x1C; however, some executables shipped with MS-DOS have those bytes there as well, suggesting that whatever that means, it might not be unique to Borland, since that implies Microsoft tooling sometimes generates those bytes as well.&lt;br /&gt;
&lt;br /&gt;
=== Special file positions ===&lt;br /&gt;
When analyzing DOS EXE files, especially [[Executable envelopes|&amp;quot;envelope&amp;quot; formats]], it can be helpful to calculate certain special file positions. The positions given here are in bytes, from the start of the file.&lt;br /&gt;
&lt;br /&gt;
* ''End of relocation table'': e_lfarlc + 4×e_crlc&lt;br /&gt;
* ''Start of code image segment'': 16×e_cparhdr&lt;br /&gt;
* ''Execution starting point'' (a.k.a. ''entry point''): 16×e_cparhdr + 16×e_cs + e_ip. Note that e_cs may be negative.&lt;br /&gt;
* ''Start of overlay segment'' (or ''end of code image segment''): If e_cblp=0, this is 512×e_cp. Otherwise, 512×(e_cp−1) + e_cblp.&lt;br /&gt;
&lt;br /&gt;
== Identification ==&lt;br /&gt;
See [[EXE#Identification]] for EXE format in general.&lt;br /&gt;
&lt;br /&gt;
It's not clear if there is any completely reliable way to identify a file as strictly DOS EXE, except in the negative (i.e., it looks like EXE, and is not a valid [[NE]], [[PE]], etc., file).&lt;br /&gt;
&lt;br /&gt;
If the relocation table offset is from 28 to 63, or any segment (relocation table or code image) overlaps the four bytes starting at offset 60, it is pretty certainly DOS EXE.&lt;br /&gt;
&lt;br /&gt;
Most non-DOS EXE files set the relocation table offset to 64, but it's probably not safe to rely on that.&lt;br /&gt;
&lt;br /&gt;
== Sample files ==&lt;br /&gt;
* {{DexvertSamples|executable/exe}}&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* [[Wikipedia:DOS MZ executable|Wikipedia article]]&lt;br /&gt;
* [http://wiki.osdev.org/MZ MZ], from the OSDev Wiki&lt;br /&gt;
* http://www.delorie.com/djgpp/doc/exe/&lt;br /&gt;
* [http://www.textfiles.com/programming/FORMATS/exefs.pro DOS EXE format]&lt;br /&gt;
* [http://www.mitec.cz/exe.html EXE Explorer utility]&lt;br /&gt;
* [http://www.ctyme.com/intr/rb-2939.htm Ralf Brown's Interrupt Reference] has an extensive list of (mostly older) MZ-based executable formats&lt;br /&gt;
&lt;br /&gt;
[[Category:Microsoft]]&lt;br /&gt;
[[Category:MS-DOS]]&lt;/div&gt;</summary>
		<author><name>SJK</name></author>	</entry>

	<entry>
		<id>http://fileformats.archiveteam.org/wiki/EXE</id>
		<title>EXE</title>
		<link rel="alternate" type="text/html" href="http://fileformats.archiveteam.org/wiki/EXE"/>
				<updated>2024-09-04T21:21:21Z</updated>
		
		<summary type="html">&lt;p&gt;SJK: /* Unrelated usage */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FormatInfo&lt;br /&gt;
|formattype=electronic&lt;br /&gt;
|subcat=Executables&lt;br /&gt;
|extensions={{ext|exe}}&lt;br /&gt;
}}&lt;br /&gt;
'''EXE''' most commonly refers to a family of executable file formats. It includes the original [[MS-DOS EXE]] format, and a number of newer formats built on top of that format. Most of them use the same '''.exe''' file extension.&lt;br /&gt;
&lt;br /&gt;
Although all members of the EXE family have a file signature of &amp;quot;MZ&amp;quot;, it seems that the term &amp;quot;MZ format&amp;quot; is generally used to mean only [[MS-DOS EXE]] (i.e. files designed for MS-DOS).&lt;br /&gt;
&lt;br /&gt;
EXE files designed for operating systems other than MS-DOS usually contain a short program (called a DOS stub) which, when executed by DOS, prints a message like &amp;quot;This program cannot be run in DOS mode&amp;quot; or &amp;quot;This program requires Microsoft Windows&amp;quot;, and immediately exits. Some programs contain a more functional DOS stub, e.g. the Windows 9x registry editor.&lt;br /&gt;
&lt;br /&gt;
== Unrelated usage ==&lt;br /&gt;
&lt;br /&gt;
Note .EXE is also used as an executable extension on some other operating systems, such as OpenVMS, TOPS-10, TOPS-20, RSX-11, etc. The file formats used by those operating systems are completely unrelated to those used by MS-DOS/PC-DOS and its descendants (OS/2, Windows, EFI, etc.) However, historically speaking, that's likely where Microsoft got the .EXE file extension from (early in Microsoft's history, they used TOPS-10 as a hosted cross-development environment for their microcomputer products, before switching to their own Unix distribution, Xenix, on PDP-11s.)&lt;br /&gt;
&lt;br /&gt;
OpenVMS VAX and Alpha used their own proprietary executable format; GNU binutils [https://github.com/bminor/binutils-gdb/blob/master/include/vms/eihd.h has some knowledge of it] (at least the Alpha version, which was based on the VAX version but with some incompatible changes). .EXE files on OpenVMS Itanium and x86-64 are in ELF format.&lt;br /&gt;
&lt;br /&gt;
== Formats ==&lt;br /&gt;
This is an incomplete outline of the EXE family of formats.&lt;br /&gt;
*  '''EXE'''&lt;br /&gt;
** [[MS-DOS EXE]]&lt;br /&gt;
** [[NE]] (New Executable, 16-bit)&lt;br /&gt;
** [[Linear Executable]]&lt;br /&gt;
*** '''LE''' (mixed 16/32-bit) &lt;br /&gt;
*** '''LX''' (32-bit)&lt;br /&gt;
** [[PE]] (Portable Executable)&lt;br /&gt;
*** '''PE32''' (32-bit Windows)&lt;br /&gt;
*** '''PE32+''' (64-bit Windows)&lt;br /&gt;
&lt;br /&gt;
== Identification ==&lt;br /&gt;
All EXE formats start with ASCII signature &amp;quot;{{magic|MZ}}&amp;quot; or, rarely, &amp;quot;{{magic|ZM}}&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The byte at offset 3 ''should'' be &amp;lt;code&amp;gt;0x00&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;0x01&amp;lt;/code&amp;gt;, as it is the high byte of a field whose valid values are 0 through 511. However, EXE files for which this is not the case do exist, and may be tolerated by the OS.&lt;br /&gt;
&lt;br /&gt;
The starting point for identifying extended formats is the field at offset 60, which if present, points to an extended header.&lt;br /&gt;
&lt;br /&gt;
== Sample files ==&lt;br /&gt;
* {{DexvertSamples|executable/exe}}&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* [http://www.ctyme.com/intr/rb-2939.htm Ralf Brown's Interrupt List], INT 21h, Function 4Bh, describes lots of the &amp;quot;older&amp;quot; style EXE formats&lt;br /&gt;
* [http://www.mitec.cz/exe.html EXE Explorer utility]&lt;br /&gt;
&lt;br /&gt;
See also the articles for the specific EXE formats.&lt;br /&gt;
&lt;br /&gt;
[[Category:Microsoft]]&lt;/div&gt;</summary>
		<author><name>SJK</name></author>	</entry>

	<entry>
		<id>http://fileformats.archiveteam.org/wiki/MS-DOS_EXE</id>
		<title>MS-DOS EXE</title>
		<link rel="alternate" type="text/html" href="http://fileformats.archiveteam.org/wiki/MS-DOS_EXE"/>
				<updated>2024-09-04T21:12:02Z</updated>
		
		<summary type="html">&lt;p&gt;SJK: /* Extended Header */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FormatInfo&lt;br /&gt;
|formattype=electronic&lt;br /&gt;
|subcat=Executables&lt;br /&gt;
|extensions={{ext|exe}}&lt;br /&gt;
|pronom={{PRONOM|x-fmt/409}}&lt;br /&gt;
|kaitai struct=dos_mz&lt;br /&gt;
}}&lt;br /&gt;
'''MS-DOS EXE''' (or '''DOS EXE'''), also known as '''MZ''' format, is an executable file format used mainly by [[MS-DOS]]. It is the successor of [[DOS executable (.com)|COM]]. A number of other executable formats are extensions or hybrids of it; see [[EXE]] for those formats.&lt;br /&gt;
&lt;br /&gt;
== Format details ==&lt;br /&gt;
=== Header structure ===&lt;br /&gt;
DOS EXE files begin with a fixed 28-byte header.&lt;br /&gt;
&lt;br /&gt;
The field names in this table are taken from the IMAGE_DOS_HEADER structure defined in modern Windows SDKs. Byte order is little-endian.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Offset !! Type !! Name !! Description and remarks&lt;br /&gt;
|-&lt;br /&gt;
|0 || byte[2] || e_magic || Signature - ASCII &amp;quot;&amp;lt;code&amp;gt;MZ&amp;lt;/code&amp;gt;&amp;quot; or &amp;quot;&amp;lt;code&amp;gt;ZM&amp;lt;/code&amp;gt;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|2 || uint16 || e_cblp || If nonzero, the number of bytes in the last page&lt;br /&gt;
|-&lt;br /&gt;
|4 || uint16 || e_cp || Number of 512-byte pages in the file, not counting the &amp;quot;overlay&amp;quot; segment&lt;br /&gt;
|-&lt;br /&gt;
|6 || uint16 || e_crlc || Number of relocations&lt;br /&gt;
|-&lt;br /&gt;
|8 || uint16 || e_cparhdr || Header size, in 16-byte paragraphs&lt;br /&gt;
|-&lt;br /&gt;
|10 || uint16 || e_minalloc || Minimum allocation&lt;br /&gt;
|-&lt;br /&gt;
|12 || uint16 || e_maxalloc || Maximum allocation&lt;br /&gt;
|-&lt;br /&gt;
|14 || int16  || e_ss || Initial SS register&lt;br /&gt;
|-&lt;br /&gt;
|16 || uint16 || e_sp || Initial SP register&lt;br /&gt;
|-&lt;br /&gt;
|18 || uint16 || e_csum || Checksum - Usually unused and set to 0&lt;br /&gt;
|-&lt;br /&gt;
|20 || uint16 || e_ip || Initial IP register&lt;br /&gt;
|-&lt;br /&gt;
|22 || int16  || e_cs || Initial CS register&lt;br /&gt;
|-&lt;br /&gt;
|24 || uint16 || e_lfarlc || Relocation table offset, in bytes from the start of the file&lt;br /&gt;
|-&lt;br /&gt;
|26 || uint16 || e_ovno || Overlay number (or other custom data) - Usually unused&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The ZM signature was used by very old versions of the Microsoft linker (from while DOS 1.0 was still under development). By the time PC-DOS 1.0 was shipped, the ZM signature was already considered obsolete. However, DOS 1.0 accepted it for backwards compatibility, and that code was retained by all future DOS versions. Windows, however, rejects ZM and only accepts MZ.&lt;br /&gt;
&lt;br /&gt;
Old versions of Microsoft's development tools would calculate the checksum correctly, but DOS has always ignored it when loading EXE files. As a result, many third party tools would either calculate it using the wrong algorithm, leave it at zero or at some other fixed value. In response to this reality, Microsoft eventually gave up and stopped setting it in their own build tools either (in Microsoft LINK 5.3, which corresponds to Microsoft C/C++ 7.0, which came out in the early 1990s). Hence, while in 1980s era executables it is commonly set, executables from the 1990s onwards it is likely zero. (see also [https://entropymine.wordpress.com/2023/09/27/the-exe-checksum-field/ blog post with detailed analysis of checksum])&lt;br /&gt;
&lt;br /&gt;
==== Extended Header ====&lt;br /&gt;
DOS executables don't always contain these additional fields, but Windows and OS/2 executables always do:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Offset !! Type !! Name !! Description and remarks&lt;br /&gt;
|-&lt;br /&gt;
|28 || byte[8] || e_res || Reserved bytes&lt;br /&gt;
|-&lt;br /&gt;
|36 || uint16 || e_oemid || OEM identifier (rarely used)&lt;br /&gt;
|-&lt;br /&gt;
|38 || uint16 || e_oeminfo || OEM information (rarely used, meaning depends on OEM identifier)&lt;br /&gt;
|-&lt;br /&gt;
|40 || byte[20] || e_res2 || Reserved bytes&lt;br /&gt;
|-&lt;br /&gt;
|60 || uint32 || e_lfanew || File offset of new format executable header (NE, LE, LX or PE) &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The extended header only exists if &amp;lt;code&amp;gt;e_lfarlc&amp;lt;/code&amp;gt; is greater than 28 (0x1C); some MZ executables have the relocation table starting at offset 28 and the extended header is absent. Note however that some tools which handle newer executable formats (NE/LE/LX/PE/etc) ignore &amp;lt;code&amp;gt;e_lfarlc&amp;lt;/code&amp;gt; and always test the validity of the &amp;lt;code&amp;gt;e_lfanew&amp;lt;/code&amp;gt; offset. In particular, although NT-based Windows requires all executables and DLLs to start with an MZ header, it only actually checks the signature and the &amp;lt;code&amp;gt;e_lfanew&amp;lt;/code&amp;gt; field, and the rest can all be zeroed. Such an executable obviously will not work under DOS.&lt;br /&gt;
&lt;br /&gt;
There is some conflicting information on the purpose of the start of the &amp;lt;code&amp;gt;eres&amp;lt;/code&amp;gt; field, offset 28 or 0x1C:&lt;br /&gt;
* [https://wiki.osdev.org/MZ OSDev Wiki] claims this is &amp;quot;Overlay information&amp;quot; and that &amp;quot;Files sometimes contain extra information for the main's program overlay management&amp;quot;&lt;br /&gt;
* The file [https://github.com/microsoft/MS-DOS/blob/main/v2.0/source/DOSSYM.ASM#L585 DOSSYM.ASM] in the open sourced MS-DOS 2.0 source code claims this is a 4 byte field called &amp;quot;exe_sym_tab&amp;quot; with comment &amp;quot;offset of symbol table in file&amp;quot;. It also contains a [https://github.com/microsoft/MS-DOS/blob/main/v2.0/source/DOSSYM.ASM#L591 symbol_entry] structure definition which is likely the contents of the table. The same definitions occur in the open source MS-DOS 4.0 source code, moved to a different file ([https://github.com/microsoft/MS-DOS/blob/main/v4.0/src/INC/EXE.INC#L67 EXE.INC]). However, this field is not used anywhere in the open source DOS source code; it is unknown whether any Microsoft tools stored a symbol table offset in this field or if any executables survive with one set. Later DOS era Microsoft tooling stored the symbol table in a &amp;quot;CodeView trailer&amp;quot; at end of the executable, so if this mechanism was ever used at all, it is likely to have only been in the early-to-mid 1980s.  &lt;br /&gt;
* [https://www.ctyme.com/intr/rb-2939.htm#Table1594 Ralf Brown Interrupt List Table 1594] reports various uses for this field, including signatures for EXE packers. Under New Executable format, it mentions a 16-bit field &amp;quot;behavior bits&amp;quot; at offset 0x20 but there is a lack of information available on what that means. It also reports that Borland TLINK puts the bytes 0x01 0x00 in the field at offset 0x1C; however, some executables shipped with MS-DOS have those bytes there as well, suggesting that whatever that means, it might not be unique to Borland, since that implies Microsoft tooling sometimes generates those bytes as well.&lt;br /&gt;
&lt;br /&gt;
=== Special file positions ===&lt;br /&gt;
When analyzing DOS EXE files, especially [[Executable envelopes|&amp;quot;envelope&amp;quot; formats]], it can be helpful to calculate certain special file positions. The positions given here are in bytes, from the start of the file.&lt;br /&gt;
&lt;br /&gt;
* ''End of relocation table'': e_lfarlc + 4×e_crlc&lt;br /&gt;
* ''Start of code image segment'': 16×e_cparhdr&lt;br /&gt;
* ''Execution starting point'' (a.k.a. ''entry point''): 16×e_cparhdr + 16×e_cs + e_ip. Note that e_cs may be negative.&lt;br /&gt;
* ''Start of overlay segment'' (or ''end of code image segment''): If e_cblp=0, this is 512×e_cp. Otherwise, 512×(e_cp−1) + e_cblp.&lt;br /&gt;
&lt;br /&gt;
== Identification ==&lt;br /&gt;
See [[EXE#Identification]] for EXE format in general.&lt;br /&gt;
&lt;br /&gt;
It's not clear if there is any completely reliable way to identify a file as strictly DOS EXE, except in the negative (i.e., it looks like EXE, and is not a valid [[NE]], [[PE]], etc., file).&lt;br /&gt;
&lt;br /&gt;
If the relocation table offset is from 28 to 63, or any segment (relocation table or code image) overlaps the four bytes starting at offset 60, it is pretty certainly DOS EXE.&lt;br /&gt;
&lt;br /&gt;
Most non-DOS EXE files set the relocation table offset to 64, but it's probably not safe to rely on that.&lt;br /&gt;
&lt;br /&gt;
== Sample files ==&lt;br /&gt;
* {{DexvertSamples|executable/exe}}&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* [[Wikipedia:DOS MZ executable|Wikipedia article]]&lt;br /&gt;
* [http://wiki.osdev.org/MZ MZ], from the OSDev Wiki&lt;br /&gt;
* http://www.delorie.com/djgpp/doc/exe/&lt;br /&gt;
* [http://www.textfiles.com/programming/FORMATS/exefs.pro DOS EXE format]&lt;br /&gt;
* [http://www.mitec.cz/exe.html EXE Explorer utility]&lt;br /&gt;
* [http://www.ctyme.com/intr/rb-2939.htm Ralf Brown's Interrupt Reference] has an extensive list of (mostly older) MZ-based executable formats&lt;br /&gt;
&lt;br /&gt;
[[Category:Microsoft]]&lt;br /&gt;
[[Category:MS-DOS]]&lt;/div&gt;</summary>
		<author><name>SJK</name></author>	</entry>

	<entry>
		<id>http://fileformats.archiveteam.org/wiki/MS-DOS_EXE</id>
		<title>MS-DOS EXE</title>
		<link rel="alternate" type="text/html" href="http://fileformats.archiveteam.org/wiki/MS-DOS_EXE"/>
				<updated>2024-09-04T12:53:49Z</updated>
		
		<summary type="html">&lt;p&gt;SJK: /* Header structure */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FormatInfo&lt;br /&gt;
|formattype=electronic&lt;br /&gt;
|subcat=Executables&lt;br /&gt;
|extensions={{ext|exe}}&lt;br /&gt;
|pronom={{PRONOM|x-fmt/409}}&lt;br /&gt;
|kaitai struct=dos_mz&lt;br /&gt;
}}&lt;br /&gt;
'''MS-DOS EXE''' (or '''DOS EXE'''), also known as '''MZ''' format, is an executable file format used mainly by [[MS-DOS]]. It is the successor of [[DOS executable (.com)|COM]]. A number of other executable formats are extensions or hybrids of it; see [[EXE]] for those formats.&lt;br /&gt;
&lt;br /&gt;
== Format details ==&lt;br /&gt;
=== Header structure ===&lt;br /&gt;
DOS EXE files begin with a fixed 28-byte header.&lt;br /&gt;
&lt;br /&gt;
The field names in this table are taken from the IMAGE_DOS_HEADER structure defined in modern Windows SDKs. Byte order is little-endian.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Offset !! Type !! Name !! Description and remarks&lt;br /&gt;
|-&lt;br /&gt;
|0 || byte[2] || e_magic || Signature - ASCII &amp;quot;&amp;lt;code&amp;gt;MZ&amp;lt;/code&amp;gt;&amp;quot; or &amp;quot;&amp;lt;code&amp;gt;ZM&amp;lt;/code&amp;gt;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|2 || uint16 || e_cblp || If nonzero, the number of bytes in the last page&lt;br /&gt;
|-&lt;br /&gt;
|4 || uint16 || e_cp || Number of 512-byte pages in the file, not counting the &amp;quot;overlay&amp;quot; segment&lt;br /&gt;
|-&lt;br /&gt;
|6 || uint16 || e_crlc || Number of relocations&lt;br /&gt;
|-&lt;br /&gt;
|8 || uint16 || e_cparhdr || Header size, in 16-byte paragraphs&lt;br /&gt;
|-&lt;br /&gt;
|10 || uint16 || e_minalloc || Minimum allocation&lt;br /&gt;
|-&lt;br /&gt;
|12 || uint16 || e_maxalloc || Maximum allocation&lt;br /&gt;
|-&lt;br /&gt;
|14 || int16  || e_ss || Initial SS register&lt;br /&gt;
|-&lt;br /&gt;
|16 || uint16 || e_sp || Initial SP register&lt;br /&gt;
|-&lt;br /&gt;
|18 || uint16 || e_csum || Checksum - Usually unused and set to 0&lt;br /&gt;
|-&lt;br /&gt;
|20 || uint16 || e_ip || Initial IP register&lt;br /&gt;
|-&lt;br /&gt;
|22 || int16  || e_cs || Initial CS register&lt;br /&gt;
|-&lt;br /&gt;
|24 || uint16 || e_lfarlc || Relocation table offset, in bytes from the start of the file&lt;br /&gt;
|-&lt;br /&gt;
|26 || uint16 || e_ovno || Overlay number (or other custom data) - Usually unused&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The ZM signature was used by very old versions of the Microsoft linker (from while DOS 1.0 was still under development). By the time PC-DOS 1.0 was shipped, the ZM signature was already considered obsolete. However, DOS 1.0 accepted it for backwards compatibility, and that code was retained by all future DOS versions. Windows, however, rejects ZM and only accepts MZ.&lt;br /&gt;
&lt;br /&gt;
Old versions of Microsoft's development tools would calculate the checksum correctly, but DOS has always ignored it when loading EXE files. As a result, many third party tools would either calculate it using the wrong algorithm, leave it at zero or at some other fixed value. In response to this reality, Microsoft eventually gave up and stopped setting it in their own build tools either (in Microsoft LINK 5.3, which corresponds to Microsoft C/C++ 7.0, which came out in the early 1990s). Hence, while in 1980s era executables it is commonly set, executables from the 1990s onwards it is likely zero. (see also [https://entropymine.wordpress.com/2023/09/27/the-exe-checksum-field/ blog post with detailed analysis of checksum])&lt;br /&gt;
&lt;br /&gt;
==== Extended Header ====&lt;br /&gt;
DOS executables don't always contain these additional fields, but Windows and OS/2 executables always do:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Offset !! Type !! Name !! Description and remarks&lt;br /&gt;
|-&lt;br /&gt;
|28 || byte[8] || e_res || Reserved bytes&lt;br /&gt;
|-&lt;br /&gt;
|36 || uint16 || e_oemid || OEM identifier (rarely used)&lt;br /&gt;
|-&lt;br /&gt;
|38 || uint16 || e_oeminfo || OEM information (rarely used, meaning depends on OEM identifier)&lt;br /&gt;
|-&lt;br /&gt;
|40 || byte[20] || e_res2 || Reserved bytes&lt;br /&gt;
|-&lt;br /&gt;
|60 || uint32 || e_lfanew || File offset of new format executable header (NE, LE, LX or PE) &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Special file positions ===&lt;br /&gt;
When analyzing DOS EXE files, especially [[Executable envelopes|&amp;quot;envelope&amp;quot; formats]], it can be helpful to calculate certain special file positions. The positions given here are in bytes, from the start of the file.&lt;br /&gt;
&lt;br /&gt;
* ''End of relocation table'': e_lfarlc + 4×e_crlc&lt;br /&gt;
* ''Start of code image segment'': 16×e_cparhdr&lt;br /&gt;
* ''Execution starting point'' (a.k.a. ''entry point''): 16×e_cparhdr + 16×e_cs + e_ip. Note that e_cs may be negative.&lt;br /&gt;
* ''Start of overlay segment'' (or ''end of code image segment''): If e_cblp=0, this is 512×e_cp. Otherwise, 512×(e_cp−1) + e_cblp.&lt;br /&gt;
&lt;br /&gt;
== Identification ==&lt;br /&gt;
See [[EXE#Identification]] for EXE format in general.&lt;br /&gt;
&lt;br /&gt;
It's not clear if there is any completely reliable way to identify a file as strictly DOS EXE, except in the negative (i.e., it looks like EXE, and is not a valid [[NE]], [[PE]], etc., file).&lt;br /&gt;
&lt;br /&gt;
If the relocation table offset is from 28 to 63, or any segment (relocation table or code image) overlaps the four bytes starting at offset 60, it is pretty certainly DOS EXE.&lt;br /&gt;
&lt;br /&gt;
Most non-DOS EXE files set the relocation table offset to 64, but it's probably not safe to rely on that.&lt;br /&gt;
&lt;br /&gt;
== Sample files ==&lt;br /&gt;
* {{DexvertSamples|executable/exe}}&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* [[Wikipedia:DOS MZ executable|Wikipedia article]]&lt;br /&gt;
* [http://wiki.osdev.org/MZ MZ], from the OSDev Wiki&lt;br /&gt;
* http://www.delorie.com/djgpp/doc/exe/&lt;br /&gt;
* [http://www.textfiles.com/programming/FORMATS/exefs.pro DOS EXE format]&lt;br /&gt;
* [http://www.mitec.cz/exe.html EXE Explorer utility]&lt;br /&gt;
* [http://www.ctyme.com/intr/rb-2939.htm Ralf Brown's Interrupt Reference] has an extensive list of (mostly older) MZ-based executable formats&lt;br /&gt;
&lt;br /&gt;
[[Category:Microsoft]]&lt;br /&gt;
[[Category:MS-DOS]]&lt;/div&gt;</summary>
		<author><name>SJK</name></author>	</entry>

	<entry>
		<id>http://fileformats.archiveteam.org/wiki/MS-DOS_EXE</id>
		<title>MS-DOS EXE</title>
		<link rel="alternate" type="text/html" href="http://fileformats.archiveteam.org/wiki/MS-DOS_EXE"/>
				<updated>2024-09-04T12:52:40Z</updated>
		
		<summary type="html">&lt;p&gt;SJK: /* Header structure */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FormatInfo&lt;br /&gt;
|formattype=electronic&lt;br /&gt;
|subcat=Executables&lt;br /&gt;
|extensions={{ext|exe}}&lt;br /&gt;
|pronom={{PRONOM|x-fmt/409}}&lt;br /&gt;
|kaitai struct=dos_mz&lt;br /&gt;
}}&lt;br /&gt;
'''MS-DOS EXE''' (or '''DOS EXE'''), also known as '''MZ''' format, is an executable file format used mainly by [[MS-DOS]]. It is the successor of [[DOS executable (.com)|COM]]. A number of other executable formats are extensions or hybrids of it; see [[EXE]] for those formats.&lt;br /&gt;
&lt;br /&gt;
== Format details ==&lt;br /&gt;
=== Header structure ===&lt;br /&gt;
DOS EXE files begin with a fixed 28-byte header.&lt;br /&gt;
&lt;br /&gt;
The field names in this table are taken from the IMAGE_DOS_HEADER structure defined in modern Windows SDKs. Byte order is little-endian.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Offset !! Type !! Name !! Description and remarks&lt;br /&gt;
|-&lt;br /&gt;
|0 || byte[2] || e_magic || Signature - ASCII &amp;quot;&amp;lt;code&amp;gt;MZ&amp;lt;/code&amp;gt;&amp;quot; or &amp;quot;&amp;lt;code&amp;gt;ZM&amp;lt;/code&amp;gt;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|2 || uint16 || e_cblp || If nonzero, the number of bytes in the last page&lt;br /&gt;
|-&lt;br /&gt;
|4 || uint16 || e_cp || Number of 512-byte pages in the file, not counting the &amp;quot;overlay&amp;quot; segment&lt;br /&gt;
|-&lt;br /&gt;
|6 || uint16 || e_crlc || Number of relocations&lt;br /&gt;
|-&lt;br /&gt;
|8 || uint16 || e_cparhdr || Header size, in 16-byte paragraphs&lt;br /&gt;
|-&lt;br /&gt;
|10 || uint16 || e_minalloc || Minimum allocation&lt;br /&gt;
|-&lt;br /&gt;
|12 || uint16 || e_maxalloc || Maximum allocation&lt;br /&gt;
|-&lt;br /&gt;
|14 || int16  || e_ss || Initial SS register&lt;br /&gt;
|-&lt;br /&gt;
|16 || uint16 || e_sp || Initial SP register&lt;br /&gt;
|-&lt;br /&gt;
|18 || uint16 || e_csum || Checksum - Usually unused and set to 0&lt;br /&gt;
|-&lt;br /&gt;
|20 || uint16 || e_ip || Initial IP register&lt;br /&gt;
|-&lt;br /&gt;
|22 || int16  || e_cs || Initial CS register&lt;br /&gt;
|-&lt;br /&gt;
|24 || uint16 || e_lfarlc || Relocation table offset, in bytes from the start of the file&lt;br /&gt;
|-&lt;br /&gt;
|26 || uint16 || e_ovno || Overlay number (or other custom data) - Usually unused&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The ZM signature was used by very old versions of the Microsoft linker (from while DOS 1.0 was still under development). By the time PC-DOS 1.0 was shipped, the ZM signature was already considered obsolete. However, DOS 1.0 accepted it for backwards compatibility, and that code was retained by all future DOS versions. Windows, however, rejects ZM and only accepts MZ.&lt;br /&gt;
&lt;br /&gt;
Old versions of Microsoft's development tools would calculate the checksum correctly, but DOS has always ignored it when loading EXE files. As a result, many third party tools would either calculate it using the wrong algorithm, leave it at zero or at some other fixed value. In response to this reality, Microsoft eventually gave up and stopped setting it in their own build tools either (in Microsoft LINK 5.3, which corresponds to Microsoft C/C++ 7.0, which came out in the early 1990s). Hence, while in 1980s era executables it is commonly set, executables from the 1990s onwards it is likely zero.&lt;br /&gt;
&lt;br /&gt;
==== Extended Header ====&lt;br /&gt;
DOS executables don't always contain these additional fields, but Windows and OS/2 executables always do:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Offset !! Type !! Name !! Description and remarks&lt;br /&gt;
|-&lt;br /&gt;
|28 || byte[8] || e_res || Reserved bytes&lt;br /&gt;
|-&lt;br /&gt;
|36 || uint16 || e_oemid || OEM identifier (rarely used)&lt;br /&gt;
|-&lt;br /&gt;
|38 || uint16 || e_oeminfo || OEM information (rarely used, meaning depends on OEM identifier)&lt;br /&gt;
|-&lt;br /&gt;
|40 || byte[20] || e_res2 || Reserved bytes&lt;br /&gt;
|-&lt;br /&gt;
|60 || uint32 || e_lfanew || File offset of new format executable header (NE, LE, LX or PE) &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Special file positions ===&lt;br /&gt;
When analyzing DOS EXE files, especially [[Executable envelopes|&amp;quot;envelope&amp;quot; formats]], it can be helpful to calculate certain special file positions. The positions given here are in bytes, from the start of the file.&lt;br /&gt;
&lt;br /&gt;
* ''End of relocation table'': e_lfarlc + 4×e_crlc&lt;br /&gt;
* ''Start of code image segment'': 16×e_cparhdr&lt;br /&gt;
* ''Execution starting point'' (a.k.a. ''entry point''): 16×e_cparhdr + 16×e_cs + e_ip. Note that e_cs may be negative.&lt;br /&gt;
* ''Start of overlay segment'' (or ''end of code image segment''): If e_cblp=0, this is 512×e_cp. Otherwise, 512×(e_cp−1) + e_cblp.&lt;br /&gt;
&lt;br /&gt;
== Identification ==&lt;br /&gt;
See [[EXE#Identification]] for EXE format in general.&lt;br /&gt;
&lt;br /&gt;
It's not clear if there is any completely reliable way to identify a file as strictly DOS EXE, except in the negative (i.e., it looks like EXE, and is not a valid [[NE]], [[PE]], etc., file).&lt;br /&gt;
&lt;br /&gt;
If the relocation table offset is from 28 to 63, or any segment (relocation table or code image) overlaps the four bytes starting at offset 60, it is pretty certainly DOS EXE.&lt;br /&gt;
&lt;br /&gt;
Most non-DOS EXE files set the relocation table offset to 64, but it's probably not safe to rely on that.&lt;br /&gt;
&lt;br /&gt;
== Sample files ==&lt;br /&gt;
* {{DexvertSamples|executable/exe}}&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* [[Wikipedia:DOS MZ executable|Wikipedia article]]&lt;br /&gt;
* [http://wiki.osdev.org/MZ MZ], from the OSDev Wiki&lt;br /&gt;
* http://www.delorie.com/djgpp/doc/exe/&lt;br /&gt;
* [http://www.textfiles.com/programming/FORMATS/exefs.pro DOS EXE format]&lt;br /&gt;
* [http://www.mitec.cz/exe.html EXE Explorer utility]&lt;br /&gt;
* [http://www.ctyme.com/intr/rb-2939.htm Ralf Brown's Interrupt Reference] has an extensive list of (mostly older) MZ-based executable formats&lt;br /&gt;
&lt;br /&gt;
[[Category:Microsoft]]&lt;br /&gt;
[[Category:MS-DOS]]&lt;/div&gt;</summary>
		<author><name>SJK</name></author>	</entry>

	<entry>
		<id>http://fileformats.archiveteam.org/wiki/MS-DOS_EXE</id>
		<title>MS-DOS EXE</title>
		<link rel="alternate" type="text/html" href="http://fileformats.archiveteam.org/wiki/MS-DOS_EXE"/>
				<updated>2024-09-04T12:50:07Z</updated>
		
		<summary type="html">&lt;p&gt;SJK: /* Header structure */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FormatInfo&lt;br /&gt;
|formattype=electronic&lt;br /&gt;
|subcat=Executables&lt;br /&gt;
|extensions={{ext|exe}}&lt;br /&gt;
|pronom={{PRONOM|x-fmt/409}}&lt;br /&gt;
|kaitai struct=dos_mz&lt;br /&gt;
}}&lt;br /&gt;
'''MS-DOS EXE''' (or '''DOS EXE'''), also known as '''MZ''' format, is an executable file format used mainly by [[MS-DOS]]. It is the successor of [[DOS executable (.com)|COM]]. A number of other executable formats are extensions or hybrids of it; see [[EXE]] for those formats.&lt;br /&gt;
&lt;br /&gt;
== Format details ==&lt;br /&gt;
=== Header structure ===&lt;br /&gt;
DOS EXE files begin with a fixed 28-byte header.&lt;br /&gt;
&lt;br /&gt;
The field names in this table are taken from the IMAGE_DOS_HEADER structure defined in modern Windows SDKs. Byte order is little-endian.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Offset !! Type !! Name !! Description and remarks&lt;br /&gt;
|-&lt;br /&gt;
|0 || byte[2] || e_magic || Signature - ASCII &amp;quot;&amp;lt;code&amp;gt;MZ&amp;lt;/code&amp;gt;&amp;quot; or &amp;quot;&amp;lt;code&amp;gt;ZM&amp;lt;/code&amp;gt;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|2 || uint16 || e_cblp || If nonzero, the number of bytes in the last page&lt;br /&gt;
|-&lt;br /&gt;
|4 || uint16 || e_cp || Number of 512-byte pages in the file, not counting the &amp;quot;overlay&amp;quot; segment&lt;br /&gt;
|-&lt;br /&gt;
|6 || uint16 || e_crlc || Number of relocations&lt;br /&gt;
|-&lt;br /&gt;
|8 || uint16 || e_cparhdr || Header size, in 16-byte paragraphs&lt;br /&gt;
|-&lt;br /&gt;
|10 || uint16 || e_minalloc || Minimum allocation&lt;br /&gt;
|-&lt;br /&gt;
|12 || uint16 || e_maxalloc || Maximum allocation&lt;br /&gt;
|-&lt;br /&gt;
|14 || int16  || e_ss || Initial SS register&lt;br /&gt;
|-&lt;br /&gt;
|16 || uint16 || e_sp || Initial SP register&lt;br /&gt;
|-&lt;br /&gt;
|18 || uint16 || e_csum || Checksum - Usually unused and set to 0&lt;br /&gt;
|-&lt;br /&gt;
|20 || uint16 || e_ip || Initial IP register&lt;br /&gt;
|-&lt;br /&gt;
|22 || int16  || e_cs || Initial CS register&lt;br /&gt;
|-&lt;br /&gt;
|24 || uint16 || e_lfarlc || Relocation table offset, in bytes from the start of the file&lt;br /&gt;
|-&lt;br /&gt;
|26 || uint16 || e_ovno || Overlay number (or other custom data) - Usually unused&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Old versions of Microsoft's development tools would calculate the checksum correctly, but DOS has always ignored it when loading EXE files. As a result, many third party tools would either calculate it using the wrong algorithm, leave it at zero or at some other fixed value. In response to this reality, Microsoft eventually gave up and stopped setting it in their own build tools either (in Microsoft LINK 5.3, which corresponds to Microsoft C/C++ 7.0, which came out in the early 1990s). Hence, while in 1980s era executables it is commonly set, executables from the 1990s onwards it is likely zero.&lt;br /&gt;
&lt;br /&gt;
==== Extended Header ====&lt;br /&gt;
DOS executables don't always contain these additional fields, but Windows and OS/2 executables always do:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Offset !! Type !! Name !! Description and remarks&lt;br /&gt;
|-&lt;br /&gt;
|28 || byte[8] || e_res || Reserved bytes&lt;br /&gt;
|-&lt;br /&gt;
|36 || uint16 || e_oemid || OEM identifier (rarely used)&lt;br /&gt;
|-&lt;br /&gt;
|38 || uint16 || e_oeminfo || OEM information (rarely used, meaning depends on OEM identifier)&lt;br /&gt;
|-&lt;br /&gt;
|40 || byte[20] || e_res2 || Reserved bytes&lt;br /&gt;
|-&lt;br /&gt;
|60 || uint32 || e_lfanew || File offset of new format executable header (NE, LE, LX or PE) &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Special file positions ===&lt;br /&gt;
When analyzing DOS EXE files, especially [[Executable envelopes|&amp;quot;envelope&amp;quot; formats]], it can be helpful to calculate certain special file positions. The positions given here are in bytes, from the start of the file.&lt;br /&gt;
&lt;br /&gt;
* ''End of relocation table'': e_lfarlc + 4×e_crlc&lt;br /&gt;
* ''Start of code image segment'': 16×e_cparhdr&lt;br /&gt;
* ''Execution starting point'' (a.k.a. ''entry point''): 16×e_cparhdr + 16×e_cs + e_ip. Note that e_cs may be negative.&lt;br /&gt;
* ''Start of overlay segment'' (or ''end of code image segment''): If e_cblp=0, this is 512×e_cp. Otherwise, 512×(e_cp−1) + e_cblp.&lt;br /&gt;
&lt;br /&gt;
== Identification ==&lt;br /&gt;
See [[EXE#Identification]] for EXE format in general.&lt;br /&gt;
&lt;br /&gt;
It's not clear if there is any completely reliable way to identify a file as strictly DOS EXE, except in the negative (i.e., it looks like EXE, and is not a valid [[NE]], [[PE]], etc., file).&lt;br /&gt;
&lt;br /&gt;
If the relocation table offset is from 28 to 63, or any segment (relocation table or code image) overlaps the four bytes starting at offset 60, it is pretty certainly DOS EXE.&lt;br /&gt;
&lt;br /&gt;
Most non-DOS EXE files set the relocation table offset to 64, but it's probably not safe to rely on that.&lt;br /&gt;
&lt;br /&gt;
== Sample files ==&lt;br /&gt;
* {{DexvertSamples|executable/exe}}&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* [[Wikipedia:DOS MZ executable|Wikipedia article]]&lt;br /&gt;
* [http://wiki.osdev.org/MZ MZ], from the OSDev Wiki&lt;br /&gt;
* http://www.delorie.com/djgpp/doc/exe/&lt;br /&gt;
* [http://www.textfiles.com/programming/FORMATS/exefs.pro DOS EXE format]&lt;br /&gt;
* [http://www.mitec.cz/exe.html EXE Explorer utility]&lt;br /&gt;
* [http://www.ctyme.com/intr/rb-2939.htm Ralf Brown's Interrupt Reference] has an extensive list of (mostly older) MZ-based executable formats&lt;br /&gt;
&lt;br /&gt;
[[Category:Microsoft]]&lt;br /&gt;
[[Category:MS-DOS]]&lt;/div&gt;</summary>
		<author><name>SJK</name></author>	</entry>

	<entry>
		<id>http://fileformats.archiveteam.org/wiki/MS-DOS_EXE</id>
		<title>MS-DOS EXE</title>
		<link rel="alternate" type="text/html" href="http://fileformats.archiveteam.org/wiki/MS-DOS_EXE"/>
				<updated>2024-09-04T12:30:20Z</updated>
		
		<summary type="html">&lt;p&gt;SJK: /* Extended Header */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FormatInfo&lt;br /&gt;
|formattype=electronic&lt;br /&gt;
|subcat=Executables&lt;br /&gt;
|extensions={{ext|exe}}&lt;br /&gt;
|pronom={{PRONOM|x-fmt/409}}&lt;br /&gt;
|kaitai struct=dos_mz&lt;br /&gt;
}}&lt;br /&gt;
'''MS-DOS EXE''' (or '''DOS EXE'''), also known as '''MZ''' format, is an executable file format used mainly by [[MS-DOS]]. It is the successor of [[DOS executable (.com)|COM]]. A number of other executable formats are extensions or hybrids of it; see [[EXE]] for those formats.&lt;br /&gt;
&lt;br /&gt;
== Format details ==&lt;br /&gt;
=== Header structure ===&lt;br /&gt;
DOS EXE files begin with a fixed 28-byte header.&lt;br /&gt;
&lt;br /&gt;
The field names in this table are taken from the IMAGE_DOS_HEADER structure defined in modern Windows SDKs. Byte order is little-endian.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Offset !! Type !! Name !! Description and remarks&lt;br /&gt;
|-&lt;br /&gt;
|0 || byte[2] || e_magic || Signature - ASCII &amp;quot;&amp;lt;code&amp;gt;MZ&amp;lt;/code&amp;gt;&amp;quot; or &amp;quot;&amp;lt;code&amp;gt;ZM&amp;lt;/code&amp;gt;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|2 || uint16 || e_cblp || If nonzero, the number of bytes in the last page&lt;br /&gt;
|-&lt;br /&gt;
|4 || uint16 || e_cp || Number of 512-byte pages in the file, not counting the &amp;quot;overlay&amp;quot; segment&lt;br /&gt;
|-&lt;br /&gt;
|6 || uint16 || e_crlc || Number of relocations&lt;br /&gt;
|-&lt;br /&gt;
|8 || uint16 || e_cparhdr || Header size, in 16-byte paragraphs&lt;br /&gt;
|-&lt;br /&gt;
|10 || uint16 || e_minalloc || Minimum allocation&lt;br /&gt;
|-&lt;br /&gt;
|12 || uint16 || e_maxalloc || Maximum allocation&lt;br /&gt;
|-&lt;br /&gt;
|14 || int16  || e_ss || Initial SS register&lt;br /&gt;
|-&lt;br /&gt;
|16 || uint16 || e_sp || Initial SP register&lt;br /&gt;
|-&lt;br /&gt;
|18 || uint16 || e_csum || Checksum - Usually unused and set to 0&lt;br /&gt;
|-&lt;br /&gt;
|20 || uint16 || e_ip || Initial IP register&lt;br /&gt;
|-&lt;br /&gt;
|22 || int16  || e_cs || Initial CS register&lt;br /&gt;
|-&lt;br /&gt;
|24 || uint16 || e_lfarlc || Relocation table offset, in bytes from the start of the file&lt;br /&gt;
|-&lt;br /&gt;
|26 || uint16 || e_ovno || Overlay number (or other custom data) - Usually unused&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Extended Header ====&lt;br /&gt;
DOS executables don't always contain these additional fields, but Windows and OS/2 executables always do:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Offset !! Type !! Name !! Description and remarks&lt;br /&gt;
|-&lt;br /&gt;
|28 || byte[8] || e_res || Reserved bytes&lt;br /&gt;
|-&lt;br /&gt;
|36 || uint16 || e_oemid || OEM identifier (rarely used)&lt;br /&gt;
|-&lt;br /&gt;
|38 || uint16 || e_oeminfo || OEM information (rarely used, meaning depends on OEM identifier)&lt;br /&gt;
|-&lt;br /&gt;
|40 || byte[20] || e_res2 || Reserved bytes&lt;br /&gt;
|-&lt;br /&gt;
|60 || uint32 || e_lfanew || File offset of new format executable header (NE, LE, LX or PE) &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Special file positions ===&lt;br /&gt;
When analyzing DOS EXE files, especially [[Executable envelopes|&amp;quot;envelope&amp;quot; formats]], it can be helpful to calculate certain special file positions. The positions given here are in bytes, from the start of the file.&lt;br /&gt;
&lt;br /&gt;
* ''End of relocation table'': e_lfarlc + 4×e_crlc&lt;br /&gt;
* ''Start of code image segment'': 16×e_cparhdr&lt;br /&gt;
* ''Execution starting point'' (a.k.a. ''entry point''): 16×e_cparhdr + 16×e_cs + e_ip. Note that e_cs may be negative.&lt;br /&gt;
* ''Start of overlay segment'' (or ''end of code image segment''): If e_cblp=0, this is 512×e_cp. Otherwise, 512×(e_cp−1) + e_cblp.&lt;br /&gt;
&lt;br /&gt;
== Identification ==&lt;br /&gt;
See [[EXE#Identification]] for EXE format in general.&lt;br /&gt;
&lt;br /&gt;
It's not clear if there is any completely reliable way to identify a file as strictly DOS EXE, except in the negative (i.e., it looks like EXE, and is not a valid [[NE]], [[PE]], etc., file).&lt;br /&gt;
&lt;br /&gt;
If the relocation table offset is from 28 to 63, or any segment (relocation table or code image) overlaps the four bytes starting at offset 60, it is pretty certainly DOS EXE.&lt;br /&gt;
&lt;br /&gt;
Most non-DOS EXE files set the relocation table offset to 64, but it's probably not safe to rely on that.&lt;br /&gt;
&lt;br /&gt;
== Sample files ==&lt;br /&gt;
* {{DexvertSamples|executable/exe}}&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* [[Wikipedia:DOS MZ executable|Wikipedia article]]&lt;br /&gt;
* [http://wiki.osdev.org/MZ MZ], from the OSDev Wiki&lt;br /&gt;
* http://www.delorie.com/djgpp/doc/exe/&lt;br /&gt;
* [http://www.textfiles.com/programming/FORMATS/exefs.pro DOS EXE format]&lt;br /&gt;
* [http://www.mitec.cz/exe.html EXE Explorer utility]&lt;br /&gt;
* [http://www.ctyme.com/intr/rb-2939.htm Ralf Brown's Interrupt Reference] has an extensive list of (mostly older) MZ-based executable formats&lt;br /&gt;
&lt;br /&gt;
[[Category:Microsoft]]&lt;br /&gt;
[[Category:MS-DOS]]&lt;/div&gt;</summary>
		<author><name>SJK</name></author>	</entry>

	<entry>
		<id>http://fileformats.archiveteam.org/wiki/EXE</id>
		<title>EXE</title>
		<link rel="alternate" type="text/html" href="http://fileformats.archiveteam.org/wiki/EXE"/>
				<updated>2024-09-03T22:30:25Z</updated>
		
		<summary type="html">&lt;p&gt;SJK: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FormatInfo&lt;br /&gt;
|formattype=electronic&lt;br /&gt;
|subcat=Executables&lt;br /&gt;
|extensions={{ext|exe}}&lt;br /&gt;
}}&lt;br /&gt;
'''EXE''' most commonly refers to a family of executable file formats. It includes the original [[MS-DOS EXE]] format, and a number of newer formats built on top of that format. Most of them use the same '''.exe''' file extension.&lt;br /&gt;
&lt;br /&gt;
Although all members of the EXE family have a file signature of &amp;quot;MZ&amp;quot;, it seems that the term &amp;quot;MZ format&amp;quot; is generally used to mean only [[MS-DOS EXE]] (i.e. files designed for MS-DOS).&lt;br /&gt;
&lt;br /&gt;
EXE files designed for operating systems other than MS-DOS usually contain a short program (called a DOS stub) which, when executed by DOS, prints a message like &amp;quot;This program cannot be run in DOS mode&amp;quot; or &amp;quot;This program requires Microsoft Windows&amp;quot;, and immediately exits. Some programs contain a more functional DOS stub, e.g. the Windows 9x registry editor.&lt;br /&gt;
&lt;br /&gt;
== Unrelated usage ==&lt;br /&gt;
&lt;br /&gt;
Note .EXE is also used as an executable extension on some other operating systems, such as OpenVMS, TOPS-10, TOPS-20, RSX-11, etc. The file formats used by those operating systems are completely unrelated to those used by MS-DOS/PC-DOS and its descendants (OS/2, Windows, EFI, etc.) However, historically speaking, that's likely where Microsoft got the .EXE file extension from (early in Microsoft's history, they used TOPS-10 as a hosted cross-development environment for their microcomputer products, before switching to their own Unix distribution, Xenix, on PDP-11s.)&lt;br /&gt;
&lt;br /&gt;
== Formats ==&lt;br /&gt;
This is an incomplete outline of the EXE family of formats.&lt;br /&gt;
*  '''EXE'''&lt;br /&gt;
** [[MS-DOS EXE]]&lt;br /&gt;
** [[NE]] (New Executable, 16-bit)&lt;br /&gt;
** [[Linear Executable]]&lt;br /&gt;
*** '''LE''' (mixed 16/32-bit) &lt;br /&gt;
*** '''LX''' (32-bit)&lt;br /&gt;
** [[PE]] (Portable Executable)&lt;br /&gt;
*** '''PE32''' (32-bit Windows)&lt;br /&gt;
*** '''PE32+''' (64-bit Windows)&lt;br /&gt;
&lt;br /&gt;
== Identification ==&lt;br /&gt;
All EXE formats start with ASCII signature &amp;quot;{{magic|MZ}}&amp;quot; or, rarely, &amp;quot;{{magic|ZM}}&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The byte at offset 3 ''should'' be &amp;lt;code&amp;gt;0x00&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;0x01&amp;lt;/code&amp;gt;, as it is the high byte of a field whose valid values are 0 through 511. However, EXE files for which this is not the case do exist, and may be tolerated by the OS.&lt;br /&gt;
&lt;br /&gt;
The starting point for identifying extended formats is the field at offset 60, which if present, points to an extended header.&lt;br /&gt;
&lt;br /&gt;
== Sample files ==&lt;br /&gt;
* {{DexvertSamples|executable/exe}}&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* [http://www.ctyme.com/intr/rb-2939.htm Ralf Brown's Interrupt List], INT 21h, Function 4Bh, describes lots of the &amp;quot;older&amp;quot; style EXE formats&lt;br /&gt;
* [http://www.mitec.cz/exe.html EXE Explorer utility]&lt;br /&gt;
&lt;br /&gt;
See also the articles for the specific EXE formats.&lt;br /&gt;
&lt;br /&gt;
[[Category:Microsoft]]&lt;/div&gt;</summary>
		<author><name>SJK</name></author>	</entry>

	<entry>
		<id>http://fileformats.archiveteam.org/wiki/MS-DOS_EXE</id>
		<title>MS-DOS EXE</title>
		<link rel="alternate" type="text/html" href="http://fileformats.archiveteam.org/wiki/MS-DOS_EXE"/>
				<updated>2024-09-03T21:55:41Z</updated>
		
		<summary type="html">&lt;p&gt;SJK: /* Format details */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FormatInfo&lt;br /&gt;
|formattype=electronic&lt;br /&gt;
|subcat=Executables&lt;br /&gt;
|extensions={{ext|exe}}&lt;br /&gt;
|pronom={{PRONOM|x-fmt/409}}&lt;br /&gt;
|kaitai struct=dos_mz&lt;br /&gt;
}}&lt;br /&gt;
'''MS-DOS EXE''' (or '''DOS EXE'''), also known as '''MZ''' format, is an executable file format used mainly by [[MS-DOS]]. It is the successor of [[DOS executable (.com)|COM]]. A number of other executable formats are extensions or hybrids of it; see [[EXE]] for those formats.&lt;br /&gt;
&lt;br /&gt;
== Format details ==&lt;br /&gt;
=== Header structure ===&lt;br /&gt;
DOS EXE files begin with a fixed 28-byte header.&lt;br /&gt;
&lt;br /&gt;
The field names in this table are taken from the IMAGE_DOS_HEADER structure defined in modern Windows SDKs. Byte order is little-endian.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Offset !! Type !! Name !! Description and remarks&lt;br /&gt;
|-&lt;br /&gt;
|0 || byte[2] || e_magic || Signature - ASCII &amp;quot;&amp;lt;code&amp;gt;MZ&amp;lt;/code&amp;gt;&amp;quot; or &amp;quot;&amp;lt;code&amp;gt;ZM&amp;lt;/code&amp;gt;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|2 || uint16 || e_cblp || If nonzero, the number of bytes in the last page&lt;br /&gt;
|-&lt;br /&gt;
|4 || uint16 || e_cp || Number of 512-byte pages in the file, not counting the &amp;quot;overlay&amp;quot; segment&lt;br /&gt;
|-&lt;br /&gt;
|6 || uint16 || e_crlc || Number of relocations&lt;br /&gt;
|-&lt;br /&gt;
|8 || uint16 || e_cparhdr || Header size, in 16-byte paragraphs&lt;br /&gt;
|-&lt;br /&gt;
|10 || uint16 || e_minalloc || Minimum allocation&lt;br /&gt;
|-&lt;br /&gt;
|12 || uint16 || e_maxalloc || Maximum allocation&lt;br /&gt;
|-&lt;br /&gt;
|14 || int16  || e_ss || Initial SS register&lt;br /&gt;
|-&lt;br /&gt;
|16 || uint16 || e_sp || Initial SP register&lt;br /&gt;
|-&lt;br /&gt;
|18 || uint16 || e_csum || Checksum - Usually unused and set to 0&lt;br /&gt;
|-&lt;br /&gt;
|20 || uint16 || e_ip || Initial IP register&lt;br /&gt;
|-&lt;br /&gt;
|22 || int16  || e_cs || Initial CS register&lt;br /&gt;
|-&lt;br /&gt;
|24 || uint16 || e_lfarlc || Relocation table offset, in bytes from the start of the file&lt;br /&gt;
|-&lt;br /&gt;
|26 || uint16 || e_ovno || Overlay number (or other custom data) - Usually unused&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Extended Header ====&lt;br /&gt;
DOS executables don't always contain these additional fields, but Windows and OS/2 executables always do:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Offset !! Type !! Name !! Description and remarks&lt;br /&gt;
|-&lt;br /&gt;
|28 || byte[8] || e_res || Reserved bytes&lt;br /&gt;
|-&lt;br /&gt;
|36 || uint16 || e_oemid || OEM identifier&lt;br /&gt;
|-&lt;br /&gt;
|38 || uint16 || e_oeminfo || OEM information&lt;br /&gt;
|-&lt;br /&gt;
|40 || byte[20] || e_res2 || Reserved bytes&lt;br /&gt;
|-&lt;br /&gt;
|60 || uint32 || e_lfanew || File offset of new format executable header (NE, LE, LX or PE) &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Special file positions ===&lt;br /&gt;
When analyzing DOS EXE files, especially [[Executable envelopes|&amp;quot;envelope&amp;quot; formats]], it can be helpful to calculate certain special file positions. The positions given here are in bytes, from the start of the file.&lt;br /&gt;
&lt;br /&gt;
* ''End of relocation table'': e_lfarlc + 4×e_crlc&lt;br /&gt;
* ''Start of code image segment'': 16×e_cparhdr&lt;br /&gt;
* ''Execution starting point'' (a.k.a. ''entry point''): 16×e_cparhdr + 16×e_cs + e_ip. Note that e_cs may be negative.&lt;br /&gt;
* ''Start of overlay segment'' (or ''end of code image segment''): If e_cblp=0, this is 512×e_cp. Otherwise, 512×(e_cp−1) + e_cblp.&lt;br /&gt;
&lt;br /&gt;
== Identification ==&lt;br /&gt;
See [[EXE#Identification]] for EXE format in general.&lt;br /&gt;
&lt;br /&gt;
It's not clear if there is any completely reliable way to identify a file as strictly DOS EXE, except in the negative (i.e., it looks like EXE, and is not a valid [[NE]], [[PE]], etc., file).&lt;br /&gt;
&lt;br /&gt;
If the relocation table offset is from 28 to 63, or any segment (relocation table or code image) overlaps the four bytes starting at offset 60, it is pretty certainly DOS EXE.&lt;br /&gt;
&lt;br /&gt;
Most non-DOS EXE files set the relocation table offset to 64, but it's probably not safe to rely on that.&lt;br /&gt;
&lt;br /&gt;
== Sample files ==&lt;br /&gt;
* {{DexvertSamples|executable/exe}}&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* [[Wikipedia:DOS MZ executable|Wikipedia article]]&lt;br /&gt;
* [http://wiki.osdev.org/MZ MZ], from the OSDev Wiki&lt;br /&gt;
* http://www.delorie.com/djgpp/doc/exe/&lt;br /&gt;
* [http://www.textfiles.com/programming/FORMATS/exefs.pro DOS EXE format]&lt;br /&gt;
* [http://www.mitec.cz/exe.html EXE Explorer utility]&lt;br /&gt;
* [http://www.ctyme.com/intr/rb-2939.htm Ralf Brown's Interrupt Reference] has an extensive list of (mostly older) MZ-based executable formats&lt;br /&gt;
&lt;br /&gt;
[[Category:Microsoft]]&lt;br /&gt;
[[Category:MS-DOS]]&lt;/div&gt;</summary>
		<author><name>SJK</name></author>	</entry>

	<entry>
		<id>http://fileformats.archiveteam.org/wiki/User_talk:MihaiPopa7</id>
		<title>User talk:MihaiPopa7</title>
		<link rel="alternate" type="text/html" href="http://fileformats.archiveteam.org/wiki/User_talk:MihaiPopa7"/>
				<updated>2024-08-29T11:04:00Z</updated>
		
		<summary type="html">&lt;p&gt;SJK: /* The password to post links */ new section&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;can you be more specific about how your trick to bypass captcha works?&lt;br /&gt;
&lt;br /&gt;
Sure. When you put a link on a page (like file samples), do with the HTTPS template, in an new tab, put Template:HTTPS and make a small edit (like httpa instead of https), save it and the page you're working on. Then undo the edit to Template:HTTPS. Problem solved!&lt;br /&gt;
&lt;br /&gt;
How would you handle archive.org links like web.archive.org/web/20160324030807/hxxp://nibblemagazine.com/KeyPerfect2.0.dsk ? (replace 'hxxp' with 'http') The embedded link ends up getting caught.&lt;br /&gt;
&lt;br /&gt;
edit: was able to get around it by omitting the http part inside the archive.org link&lt;br /&gt;
&lt;br /&gt;
edit 2: was able to get a response from wiki@textfiles.com by using a different account. Try from a different provider (like gmail)&lt;br /&gt;
&lt;br /&gt;
==Section==&lt;br /&gt;
&lt;br /&gt;
Here's my talk page!&lt;br /&gt;
&lt;br /&gt;
You can write anything on this page!&lt;br /&gt;
&lt;br /&gt;
On a new section or on this section!&lt;br /&gt;
&lt;br /&gt;
[[User:MihaiPopa7|MihaiPopa7]] ([[User talk:MihaiPopa7|talk]]) 03:24, 31 October 2023 (UTC)&lt;br /&gt;
&lt;br /&gt;
== The password to post links ==&lt;br /&gt;
&lt;br /&gt;
I emailed wiki@texfiles.com and Jason Scott gave me the password. I can't share it here because that would defeat the whole purpose of it. But if you aren't able to email him to ask for it, you could try sending him a DM via his [https://twitter.com/textfiles Twitter/X account] (assuming you have an account with that or are willing to sign up for one). His pinned tweet also provides details of his Mastodon and IRC accounts if those are an option for you. [[User:SJK|SJK]] ([[User talk:SJK|talk]]) 11:04, 29 August 2024 (UTC)&lt;/div&gt;</summary>
		<author><name>SJK</name></author>	</entry>

	<entry>
		<id>http://fileformats.archiveteam.org/wiki/Category:File_formats_with_extension_.tlb</id>
		<title>Category:File formats with extension .tlb</title>
		<link rel="alternate" type="text/html" href="http://fileformats.archiveteam.org/wiki/Category:File_formats_with_extension_.tlb"/>
				<updated>2024-08-29T10:58:58Z</updated>
		
		<summary type="html">&lt;p&gt;SJK: Created page with &amp;quot;T&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:File formats by extension|T]]&lt;/div&gt;</summary>
		<author><name>SJK</name></author>	</entry>

	<entry>
		<id>http://fileformats.archiveteam.org/wiki/Microsoft_Type_Library</id>
		<title>Microsoft Type Library</title>
		<link rel="alternate" type="text/html" href="http://fileformats.archiveteam.org/wiki/Microsoft_Type_Library"/>
				<updated>2024-08-29T10:58:34Z</updated>
		
		<summary type="html">&lt;p&gt;SJK: Created page with &amp;quot;{{FormatInfo |subcat=Development |extensions={{ext|tlb}} }} '''Microsoft Type Library''' (TLB) files store metadata on COM (Component Object Model) APIs (interfaces, methods, ...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FormatInfo&lt;br /&gt;
|subcat=Development&lt;br /&gt;
|extensions={{ext|tlb}}&lt;br /&gt;
}}&lt;br /&gt;
'''Microsoft Type Library''' (TLB) files store metadata on COM (Component Object Model) APIs (interfaces, methods, data types, etc).&lt;br /&gt;
&lt;br /&gt;
There are two main formats:&lt;br /&gt;
* the &amp;quot;original format&amp;quot; – file starts with the bytes &amp;quot;SLTG&amp;quot;. [https://www.nationalarchives.gov.uk/PRONOM/fmt/1601 PRONOM format 1601]. Additionally, the string &amp;quot;TYPELIB&amp;quot; occurs near the end of the file.&lt;br /&gt;
* the &amp;quot;new format&amp;quot; – file starts with the bytes &amp;quot;MSFT&amp;quot;, normally followed by the bytes 02,00,01,00 (which might be a version number) [https://www.nationalarchives.gov.uk/PRONOM/fmt/1602 PRONOM format 1602]&lt;br /&gt;
(PRONOM claims the TLB format is due to Borland, but that appears to be an error.)&lt;br /&gt;
&lt;br /&gt;
Additionally, you will also find .TLB files which are actually in Windows PE format, and have a type library embedded as a resource. Rarely you may even encounter .TLB files for 16-bit Windows OLE which have a type library resource inside NE format.&lt;br /&gt;
&lt;br /&gt;
The MSFT format is generated by the Windows [https://learn.microsoft.com/en-us/windows/win32/api/oleauto/nf-oleauto-createtypelib2 CreateTypeLib2] API. Conversely, the older SLTG format is generated by the Windows [https://learn.microsoft.com/en-us/windows/win32/api/oleauto/nf-oleauto-createtypelib CreateTypeLib] API.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
*[https://gist.github.com/djhohnstein/e4a346ee1506895000ca0fa93e5a0024 MSFT format reverse-engineered documentation]. The original of that document is posted [http://theircorp.byethost11.com/files/TypeLib.txt here], but that version displays incorrectly due to a character encoding issue.&lt;br /&gt;
&lt;br /&gt;
[[Category:Windows]]&lt;/div&gt;</summary>
		<author><name>SJK</name></author>	</entry>

	<entry>
		<id>http://fileformats.archiveteam.org/wiki/IBM_3363_Optical_WORM</id>
		<title>IBM 3363 Optical WORM</title>
		<link rel="alternate" type="text/html" href="http://fileformats.archiveteam.org/wiki/IBM_3363_Optical_WORM"/>
				<updated>2024-08-25T21:21:12Z</updated>
		
		<summary type="html">&lt;p&gt;SJK: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FormatInfo&lt;br /&gt;
|formattype=physical&lt;br /&gt;
|subcat=Optical Discs&lt;br /&gt;
|released=1987 (?)&lt;br /&gt;
}}&lt;br /&gt;
'''IBM 3363 Optical WORM''' discs were a predecessor to CD-Rs.&lt;br /&gt;
&lt;br /&gt;
200MB capacity, 512 byte sectors, custom filesystem.&lt;br /&gt;
&lt;br /&gt;
Sectors could be written once but thereafter could not be modified. However, sectors could be deleted after writing, but deleted sectors could not be undeleted or reused.&lt;br /&gt;
&lt;br /&gt;
* [http://www.mcamafia.de/pdf/3363_trm.pdf IBM Technical Reference Manual (1987)]&lt;/div&gt;</summary>
		<author><name>SJK</name></author>	</entry>

	<entry>
		<id>http://fileformats.archiveteam.org/wiki/IBM_3363_Optical_WORM</id>
		<title>IBM 3363 Optical WORM</title>
		<link rel="alternate" type="text/html" href="http://fileformats.archiveteam.org/wiki/IBM_3363_Optical_WORM"/>
				<updated>2024-08-25T18:40:02Z</updated>
		
		<summary type="html">&lt;p&gt;SJK: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FormatInfo&lt;br /&gt;
|formattype=physical&lt;br /&gt;
|subcat=Optical Discs&lt;br /&gt;
|released=1987 (?)&lt;br /&gt;
}}&lt;br /&gt;
'''IBM 3363 Optical WORM''' discs were a predecessor to CD-Rs.&lt;br /&gt;
&lt;br /&gt;
200MB capacity, 512 byte sectors, custom filesystem.&lt;br /&gt;
&lt;br /&gt;
Sectors could be written once but thereafter could not be modified. However, sectors could be deleted after writing, but deleted sectors could not be undeleted or reused.&lt;/div&gt;</summary>
		<author><name>SJK</name></author>	</entry>

	<entry>
		<id>http://fileformats.archiveteam.org/wiki/IBM_3363_Optical_WORM</id>
		<title>IBM 3363 Optical WORM</title>
		<link rel="alternate" type="text/html" href="http://fileformats.archiveteam.org/wiki/IBM_3363_Optical_WORM"/>
				<updated>2024-08-25T18:39:37Z</updated>
		
		<summary type="html">&lt;p&gt;SJK: Created page with &amp;quot;{{FormatInfo |formattype=physical |subcat=Optical Discs |thiscat=IBM 3363 |released=1987 (?) }} '''IBM 3363 Optical WORM''' discs were a predecessor to CD-Rs.  200MB capacity,...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FormatInfo&lt;br /&gt;
|formattype=physical&lt;br /&gt;
|subcat=Optical Discs&lt;br /&gt;
|thiscat=IBM 3363&lt;br /&gt;
|released=1987 (?)&lt;br /&gt;
}}&lt;br /&gt;
'''IBM 3363 Optical WORM''' discs were a predecessor to CD-Rs.&lt;br /&gt;
&lt;br /&gt;
200MB capacity, 512 byte sectors, custom filesystem.&lt;br /&gt;
&lt;br /&gt;
Sectors could be written once but thereafter could not be modified. However, sectors could be deleted after writing, but deleted sectors could not be undeleted or reused.&lt;/div&gt;</summary>
		<author><name>SJK</name></author>	</entry>

	<entry>
		<id>http://fileformats.archiveteam.org/wiki/Optical_Discs</id>
		<title>Optical Discs</title>
		<link rel="alternate" type="text/html" href="http://fileformats.archiveteam.org/wiki/Optical_Discs"/>
				<updated>2024-08-25T18:33:34Z</updated>
		
		<summary type="html">&lt;p&gt;SJK: /* List of formats */ mention IBM 3363 Optical WORM&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FormatInfo&lt;br /&gt;
|formattype=physical&lt;br /&gt;
|thiscat=Optical Discs&lt;br /&gt;
|image=Optical-discs.jpg&lt;br /&gt;
|caption=Some CDs and DVDs&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
An '''optical disc''' is read by a laser. They have been used extensively to store and distribute music, movies, and computer programs and data. CD drives became commonplace in personal computers in the mid-1990s, and burners to create CD-ROMs on personal computers were common by the early 2000s. Later, the higher-capacity DVD format became common both for reading and writing as well, and the even newer BluRay format won a &amp;quot;format war&amp;quot; against rival HD-DVD to get some popularity at present, though physical formats in general are on the wane as a distribution format due to the widespread deployment of the high-bandwidth Internet.&lt;br /&gt;
&lt;br /&gt;
See also:&lt;br /&gt;
* [[Disk Image Formats#Optical Disc Image Formats]]&lt;br /&gt;
* [[Filesystem]]&lt;br /&gt;
&lt;br /&gt;
== List of formats ==&lt;br /&gt;
&lt;br /&gt;
* [[Blu-ray Disc]]&lt;br /&gt;
** [[M-Disc]]&lt;br /&gt;
** [[UHD Blu-ray]]&lt;br /&gt;
* [[CD]] (Compact Disc)&lt;br /&gt;
** [[CD-DA]] (Compact Disc Digital Audio or Red Book)&lt;br /&gt;
** [[CD-MIDI]]&lt;br /&gt;
** [[CD-ROM]] (Yellow Book)&lt;br /&gt;
** [[CD-ROM XA]]&lt;br /&gt;
*** [[Linked MultiSession]]&lt;br /&gt;
** [[DD-CD]] (Double-density Compact Disc)&lt;br /&gt;
** [[Enhanced CD]]&lt;br /&gt;
** [[Photo CD]] (Beige Book)&lt;br /&gt;
*** [[CD-i]] (Green Book)&lt;br /&gt;
** [[SACD]] (Super Audio CD or Scarlet Book)&lt;br /&gt;
** [[VCD]] (Video CD or White Book)&lt;br /&gt;
*** [[Super Video CD]]&lt;br /&gt;
* [[DVD]]&lt;br /&gt;
** [[DVD-Audio]]&lt;br /&gt;
** [[DVD-ROM]]&lt;br /&gt;
** [[M-Disc]]&lt;br /&gt;
* [[Enhanced Versatile Disc]]&lt;br /&gt;
* [[GD-ROM]]&lt;br /&gt;
* [[HD-DVD]]&lt;br /&gt;
** [[China Blue High-Definition Disc]]&lt;br /&gt;
* [[Laserdisc]]&lt;br /&gt;
** [[LV-ROM]]&lt;br /&gt;
* [[MiniDisc]]&lt;br /&gt;
* Nintendo optical discs&lt;br /&gt;
** [[Nintendo GameCube Game Disc]]&lt;br /&gt;
** [[Nintendo Wii Optical Disc]]&lt;br /&gt;
** [[Nintendo Wii U Optical Disc]]&lt;br /&gt;
* [[Thomson-CSF system]]&lt;br /&gt;
* [[Ultra Density Optical]]&lt;br /&gt;
* [[Universal Media Disc]]&lt;br /&gt;
* [[IBM 3363 Optical WORM]]&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* [http://www.thexlab.com/faqs/opticalmedialongevity.html Optical media longevity]&lt;br /&gt;
* [http://www.sony.net/SonyInfo/News/Press/201403/14-0310E/index.html &amp;quot;Archival Disc&amp;quot; standard formulated for professional-use next-generation optical discs] (up to 1 TB capacity)&lt;br /&gt;
* [http://journal.code4lib.org/articles/9581 An Introduction to Optical Media Preservation] by [https://twitter.com/archivetype @archivetype]&lt;br /&gt;
* [http://www.loc.gov/preservation/resources/rfs/softgame.html Library of Congress Recommended Format Specifications: Software/Gaming]&lt;br /&gt;
* [http://arxiv.org/ftp/arxiv/papers/1309/1309.4932.pdf Developing a Robust Migration Workflow for Preserving and Curating Hand-held Media]&lt;br /&gt;
* [http://www.kurzweilai.net/5d-nanostructured-quartz-glass-optical-memory-could-provide-unlimited-data-storage-for-a-million-years 5D nanostructured quartz glass optical memory could provide ‘unlimited’ data storage for a million years] (but reference link there is already 404 Not Found!)&lt;br /&gt;
* [https://www.bitsgalore.org/2015/11/13/preserving-optical-media-from-the-command-line Preserving optical media from the command line]&lt;/div&gt;</summary>
		<author><name>SJK</name></author>	</entry>

	<entry>
		<id>http://fileformats.archiveteam.org/wiki/OS/360_Object_File_Format</id>
		<title>OS/360 Object File Format</title>
		<link rel="alternate" type="text/html" href="http://fileformats.archiveteam.org/wiki/OS/360_Object_File_Format"/>
				<updated>2024-03-03T02:19:52Z</updated>
		
		<summary type="html">&lt;p&gt;SJK: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FormatInfo&lt;br /&gt;
|formattype=electronic&lt;br /&gt;
|subcat=Executables&lt;br /&gt;
|released=~1965&lt;br /&gt;
}}&lt;br /&gt;
'''OS/360 Object File Format''' is the original executable format for IBM mainframe operating system OS/360 and its successors. It is still supported by contemporary z/OS, although officially superseded by [[GOFF]]. It is also supported on z/VM (previously VM/CMS), although likewise superseded by GOFF there as well. It is also called &amp;quot;OBJ&amp;quot;. There is also an extended version, which came after OBJ but before GOFF, called XOBJ, which has various important features, such as support for symbols with names longer than 8 bytes.&lt;br /&gt;
&lt;br /&gt;
It was also used by some other mainframe vendors which partially copied IBM's technologies, such as UNIVAC Series 90.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
*[[Wikipedia:OS/360_Object_File_Format|Wikipedia article]]&lt;br /&gt;
&lt;br /&gt;
[[Category:IBM mainframe]]&lt;/div&gt;</summary>
		<author><name>SJK</name></author>	</entry>

	<entry>
		<id>http://fileformats.archiveteam.org/wiki/GOFF</id>
		<title>GOFF</title>
		<link rel="alternate" type="text/html" href="http://fileformats.archiveteam.org/wiki/GOFF"/>
				<updated>2024-03-03T02:02:13Z</updated>
		
		<summary type="html">&lt;p&gt;SJK: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FormatInfo&lt;br /&gt;
|formattype=electronic&lt;br /&gt;
|subcat=Executables&lt;br /&gt;
|released=~1995&lt;br /&gt;
}}&lt;br /&gt;
''GOFF'' (Generalized Object File Format) is the current executable format for the IBM mainframe operating systems z/OS and z/VM. It supersedes the original [[OS/360 Object File Format]], although the later is still supported.&lt;br /&gt;
&lt;br /&gt;
On z/OS, GOFF exists in two subtypes:&lt;br /&gt;
* '''load module''': this is code which can be dynamically loaded into memory – similar in concept to a DLL or shared library on other operating systems. GOFF is the successor to XOBJ, the earlier object format for load modules, which in turn was successor to OBJ&lt;br /&gt;
* '''program object''': this is an executable format&lt;br /&gt;
&lt;br /&gt;
=== Program Objects ===&lt;br /&gt;
&lt;br /&gt;
Note the &amp;quot;program object&amp;quot; format has never been fully and officially documented outside of IBM confidential materials (possibly available under NDA, but certainly not to the general public). That said, significant chunks of it are composed out of data structures which are documented in public z/OS manuals. The biggest missing component is the initial &amp;quot;IEWPLMH&amp;quot; header. However, several of those non-public bits have been revealed in an open source project, an incomplete port of GNU binutils/GDB to z/OS: &lt;br /&gt;
&lt;br /&gt;
There is an [https://github.com/ambitus/binutils incomplete port of GNU binutils to z/OS]. The most important files are [https://github.com/ambitus/binutils/blob/program-object/bfd/po64-s390.c po64-s390.c] and [https://github.com/ambitus/binutils/blob/program-object/include/po/external.h po/external.h]&lt;br /&gt;
&lt;br /&gt;
The file starts with an 8-byte EBCDIC header (&amp;quot;eyecatcher&amp;quot; in IBM-speak) which is &amp;quot;IEWPLMH&amp;quot; followed by a single EBCDIC space. In hex that is c9c5e6d7d3d4c840.&lt;br /&gt;
&lt;br /&gt;
z/OS has two main filesystems: the traditional &amp;quot;dataset&amp;quot; filesystem, and a POSIX filesystem (originally HFS, more recently replaced by zFS; also supporting network file systems such as NFS and previously others such as DCE DFS). The traditional filesystem is based on very different concepts from POSIX; instead of files, it has &amp;quot;datasets&amp;quot;, which have explicit record structure (such as fixed vs variable). One type of dataset is known as a &amp;quot;partitioned dataset&amp;quot; (PDS), later also PDSE (Partitioned Data Set Extended), which is like a ZIP file. Anyway, traditional z/OS load modules could not be stored directly in the POSIX filesystem, only in partitioned datasets; you could archive the partitioned dataset into a POSIX file (using utilities such as IEBCOPY and XMIT), but z/OS could not actually use it until it was turned back into a partitioned dataset. By contrast, z/OS Program Objects can be stored in a Unix file directly, as well as in partitioned datasets (which have to be the new PDSE format)&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
*[[Wikipedia:GOFF|Wikipedia article]]&lt;br /&gt;
&lt;br /&gt;
[[Category:IBM mainframe]]&lt;/div&gt;</summary>
		<author><name>SJK</name></author>	</entry>

	<entry>
		<id>http://fileformats.archiveteam.org/wiki/DOS/Windows_file_attributes</id>
		<title>DOS/Windows file attributes</title>
		<link rel="alternate" type="text/html" href="http://fileformats.archiveteam.org/wiki/DOS/Windows_file_attributes"/>
				<updated>2023-05-29T09:56:46Z</updated>
		
		<summary type="html">&lt;p&gt;SJK: /* Table of attributes */ more details on &amp;quot;SMR Blob&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FormatInfo&lt;br /&gt;
|formattype=electronic&lt;br /&gt;
|subcat=Metadata&lt;br /&gt;
}}&lt;br /&gt;
The '''DOS/Windows file attributes''' are a set of standard one-bit attributes for a file or directory. The original form was a one-byte field associated with [[FAT]], but it has been extended and updated over time. Some [[archiving]] and [[filesystem]] formats have a way to store (some subset of) these attributes.&lt;br /&gt;
&lt;br /&gt;
== Table of attributes ==&lt;br /&gt;
Some of the one-letter identifiers used by the ATTRIB command are included in this table.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Value !! ID !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
|0x00000001 || R || READONLY&lt;br /&gt;
|-&lt;br /&gt;
|0x00000002 || H || HIDDEN&lt;br /&gt;
|-&lt;br /&gt;
|0x00000004 || S || SYSTEM&lt;br /&gt;
|-&lt;br /&gt;
|0x00000008 ||   || Volume label (or reserved)&lt;br /&gt;
|-&lt;br /&gt;
|0x0000000f ||   || LONG_NAME (see [[VFAT]])&lt;br /&gt;
|-&lt;br /&gt;
|0x00000010 ||   || DIRECTORY&lt;br /&gt;
|-&lt;br /&gt;
|0x00000020 || A || ARCHIVE&lt;br /&gt;
|-&lt;br /&gt;
|0x00000040 ||   || DEVICE (reserved for system use)&lt;br /&gt;
|-&lt;br /&gt;
|0x00000080 ||   || NORMAL (valid only when used alone)&lt;br /&gt;
|-&lt;br /&gt;
|0x00000100 ||   || TEMPORARY&lt;br /&gt;
|-&lt;br /&gt;
|0x00000200 ||   || SPARSE_FILE&lt;br /&gt;
|-&lt;br /&gt;
|0x00000400 ||   || REPARSE_POINT&lt;br /&gt;
|-&lt;br /&gt;
|0x00000800 ||   || COMPRESSED&lt;br /&gt;
|-&lt;br /&gt;
|0x00001000 || O || OFFLINE&lt;br /&gt;
|-&lt;br /&gt;
|0x00002000 || I || NOT_CONTENT_INDEXED&lt;br /&gt;
|-&lt;br /&gt;
|0x00004000 ||   || ENCRYPTED&lt;br /&gt;
|-&lt;br /&gt;
|0x00008000 || V || INTEGRITY_STREAM ([[ReFS]])&lt;br /&gt;
|-&lt;br /&gt;
|0x00010000 ||   || VIRTUAL (reserved for system use)&lt;br /&gt;
|-&lt;br /&gt;
|0x00020000 || X || NO_SCRUB_DATA ([[ReFS]])&lt;br /&gt;
|-&lt;br /&gt;
|0x00040000 ||   || RECALL_ON_OPEN&lt;br /&gt;
|-&lt;br /&gt;
|0x00080000 || P || PINNED ([[OneDrive]])&lt;br /&gt;
|-&lt;br /&gt;
|0x00100000 || U || UNPINNED ([[OneDrive]])&lt;br /&gt;
|-&lt;br /&gt;
|0x00400000 ||   || RECALL_ON_DATA_ACCESS&lt;br /&gt;
|-&lt;br /&gt;
|0x20000000 || B || FILE_ATTRIBUTE_STRICTLY_SEQUENTIAL (aka &amp;quot;SMR Blob&amp;quot;)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* [https://docs.microsoft.com/en-us/windows/win32/fileio/file-attribute-constants Windows Dev Center: File Attribute Constants]&lt;br /&gt;
* [[Wikipedia: File attribute#DOS and Windows]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Microsoft]]&lt;br /&gt;
[[Category:MS-DOS]]&lt;br /&gt;
[[Category:Windows]]&lt;/div&gt;</summary>
		<author><name>SJK</name></author>	</entry>

	<entry>
		<id>http://fileformats.archiveteam.org/wiki/IBM_BookManager_book</id>
		<title>IBM BookManager book</title>
		<link rel="alternate" type="text/html" href="http://fileformats.archiveteam.org/wiki/IBM_BookManager_book"/>
				<updated>2023-05-04T22:46:32Z</updated>
		
		<summary type="html">&lt;p&gt;SJK: /* External links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FormatInfo&lt;br /&gt;
|formattype=electronic&lt;br /&gt;
|subcat=Document&lt;br /&gt;
|extensions={{ext|boo}}&lt;br /&gt;
}}&lt;br /&gt;
IBM BookManager is IBM's legacy online documentation system, historically used mostly on mainframes, midrange (AS/400) and OS/2, although it also saw some use in other areas including AIX. IBM no longer uses it for documenting current versions of its products, but there is an immense quantity of surviving electronic documentation from the period when IBM actively used it (from the 1990s thru 2010s), particularly documentation CD-ROMs/DVD-ROMs and images thereof.&lt;br /&gt;
&lt;br /&gt;
The standard extension is BOO. No public documentation is known to be available for it. The header of BOO files commonly contains an EBCDIC copyright notice (this is true even for books for ASCII-based platforms such as OS/2). The file contents is almost certainly also in EBCDIC, but is not readable beyond the header. Maybe it is compressed with unknown compression algorithms (a relative of IBM's well-known proprietary algorithms such as TERSE?). However, the data seems too repetitive to be compressed–possibly it is just some obfuscation mechanism then?&lt;br /&gt;
&lt;br /&gt;
https://github.com/kev009/boo2pdf is code to convert BOO files to PDF. However, it relies on using the IBM SoftCopy Reader (for 32-bit Linux)'s JAR files and native code libraries (.so files) to actually read the file. The author of that code previously hosted a free public web service for that conversion, but discontinued it.&lt;br /&gt;
&lt;br /&gt;
Versions of IBM's SoftCopy Reader (previously known as IBM Library Reader and before that IBM BookManager READ) also existed for Windows, AIX (any other commercial Unix systems?), OS/2, DOS (meaning PC-DOS/MS-DOS, not mainframe DOS), MVS (later known as OS/390 then z/OS), VM/CMS (later known as z/VM), and OS/400 (later IBM i5/OS and then IBM i)–but apparently *not* mainframe DOS (DOS/360, DOS/VS, DOS/VSE, z/VSE). &lt;br /&gt;
&lt;br /&gt;
&amp;quot;application/book&amp;quot; is sometimes used as a MIME type but was never officially registered&lt;br /&gt;
&lt;br /&gt;
== Notes on file format ==&lt;br /&gt;
&lt;br /&gt;
* Bytes 1-2: unknown 2 bytes probably flags. second byte never zero, first byte often is (but not always). probably not a size, since 0001 is a common value. &lt;br /&gt;
* Bytes 3-6: these 4 bytes appear to always be zero&lt;br /&gt;
* Bytes 7: unknown, can be zero, probably more flags???&lt;br /&gt;
Bytes 8+: EBCDIC copyright string. Can start with one or more EBCDIC spaces (0x40), sometimes also (0xB4) (some kind of control character?)&lt;br /&gt;
&lt;br /&gt;
The header is 256 bytes long. The copyright string is padded to the end of the header with 0x40 (EBCDIC space). However, it seems to have a null terminator (0x00) at the end of the actual text, before the space padding.&lt;br /&gt;
&lt;br /&gt;
What follows from 256 bytes onwards looks like it could be some kind of compression dictionary???? Not clear.&lt;br /&gt;
&lt;br /&gt;
It looks like the file is composed of 256 byte records (so file size should be an integer multiple of 256), often with some all-zeros records appended to the end.&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
* http://www.edm2.com/index.php/BookManager – contains history of IBM BookManager releases&lt;br /&gt;
&lt;br /&gt;
[[Category:IBM mainframe]]&lt;br /&gt;
[[Category:OS/2]]&lt;/div&gt;</summary>
		<author><name>SJK</name></author>	</entry>

	<entry>
		<id>http://fileformats.archiveteam.org/wiki/IBM_BookManager_book</id>
		<title>IBM BookManager book</title>
		<link rel="alternate" type="text/html" href="http://fileformats.archiveteam.org/wiki/IBM_BookManager_book"/>
				<updated>2023-05-04T22:45:17Z</updated>
		
		<summary type="html">&lt;p&gt;SJK: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FormatInfo&lt;br /&gt;
|formattype=electronic&lt;br /&gt;
|subcat=Document&lt;br /&gt;
|extensions={{ext|boo}}&lt;br /&gt;
}}&lt;br /&gt;
IBM BookManager is IBM's legacy online documentation system, historically used mostly on mainframes, midrange (AS/400) and OS/2, although it also saw some use in other areas including AIX. IBM no longer uses it for documenting current versions of its products, but there is an immense quantity of surviving electronic documentation from the period when IBM actively used it (from the 1990s thru 2010s), particularly documentation CD-ROMs/DVD-ROMs and images thereof.&lt;br /&gt;
&lt;br /&gt;
The standard extension is BOO. No public documentation is known to be available for it. The header of BOO files commonly contains an EBCDIC copyright notice (this is true even for books for ASCII-based platforms such as OS/2). The file contents is almost certainly also in EBCDIC, but is not readable beyond the header. Maybe it is compressed with unknown compression algorithms (a relative of IBM's well-known proprietary algorithms such as TERSE?). However, the data seems too repetitive to be compressed–possibly it is just some obfuscation mechanism then?&lt;br /&gt;
&lt;br /&gt;
https://github.com/kev009/boo2pdf is code to convert BOO files to PDF. However, it relies on using the IBM SoftCopy Reader (for 32-bit Linux)'s JAR files and native code libraries (.so files) to actually read the file. The author of that code previously hosted a free public web service for that conversion, but discontinued it.&lt;br /&gt;
&lt;br /&gt;
Versions of IBM's SoftCopy Reader (previously known as IBM Library Reader and before that IBM BookManager READ) also existed for Windows, AIX (any other commercial Unix systems?), OS/2, DOS (meaning PC-DOS/MS-DOS, not mainframe DOS), MVS (later known as OS/390 then z/OS), VM/CMS (later known as z/VM), and OS/400 (later IBM i5/OS and then IBM i)–but apparently *not* mainframe DOS (DOS/360, DOS/VS, DOS/VSE, z/VSE). &lt;br /&gt;
&lt;br /&gt;
&amp;quot;application/book&amp;quot; is sometimes used as a MIME type but was never officially registered&lt;br /&gt;
&lt;br /&gt;
== Notes on file format ==&lt;br /&gt;
&lt;br /&gt;
* Bytes 1-2: unknown 2 bytes probably flags. second byte never zero, first byte often is (but not always). probably not a size, since 0001 is a common value. &lt;br /&gt;
* Bytes 3-6: these 4 bytes appear to always be zero&lt;br /&gt;
* Bytes 7: unknown, can be zero, probably more flags???&lt;br /&gt;
Bytes 8+: EBCDIC copyright string. Can start with one or more EBCDIC spaces (0x40), sometimes also (0xB4) (some kind of control character?)&lt;br /&gt;
&lt;br /&gt;
The header is 256 bytes long. The copyright string is padded to the end of the header with 0x40 (EBCDIC space). However, it seems to have a null terminator (0x00) at the end of the actual text, before the space padding.&lt;br /&gt;
&lt;br /&gt;
What follows from 256 bytes onwards looks like it could be some kind of compression dictionary???? Not clear.&lt;br /&gt;
&lt;br /&gt;
It looks like the file is composed of 256 byte records (so file size should be an integer multiple of 256), often with some all-zeros records appended to the end.&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
* http://www.edm2.com/index.php/BookManager – contains history of IBM BookManager releases&lt;/div&gt;</summary>
		<author><name>SJK</name></author>	</entry>

	<entry>
		<id>http://fileformats.archiveteam.org/wiki/IBM_BookManager_book</id>
		<title>IBM BookManager book</title>
		<link rel="alternate" type="text/html" href="http://fileformats.archiveteam.org/wiki/IBM_BookManager_book"/>
				<updated>2023-05-04T14:12:55Z</updated>
		
		<summary type="html">&lt;p&gt;SJK: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FormatInfo&lt;br /&gt;
|formattype=electronic&lt;br /&gt;
|subcat=Document&lt;br /&gt;
|extensions={{ext|boo}}&lt;br /&gt;
}}&lt;br /&gt;
IBM BookManager is IBM's legacy online documentation system, historically used mostly on mainframes, midrange (AS/400) and OS/2, although it also saw some use in other areas including AIX. IBM no longer uses it for documenting current versions of its products, but there is an immense quantity of surviving electronic documentation from the period when IBM actively used it (from the 1990s thru 2010s), particularly documentation CD-ROMs/DVD-ROMs and images thereof.&lt;br /&gt;
&lt;br /&gt;
The standard extension is BOO. No public documentation is known to be available for it. The header of BOO files commonly contains an EBCDIC copyright notice (this is true even for books for ASCII-based platforms such as OS/2). The file contents is almost certainly also in EBCDIC, but is not readable beyond the header. Maybe it is compressed with unknown compression algorithms (a relative of IBM's well-known proprietary algorithms such as TERSE?). However, the data seems to repetitive to be compressed–possibly it is just some obfuscation mechanism then?&lt;br /&gt;
&lt;br /&gt;
https://github.com/kev009/boo2pdf is code to convert BOO files to PDF. However, it relies on using the IBM SoftCopy Reader (for 32-bit Linux)'s JAR files and native code libraries (.so files) to actually read the file. The author of that code previously hosted a free public web service for that conversion, but discontinued it.&lt;br /&gt;
&lt;br /&gt;
Versions of IBM's SoftCopy Reader (previously known as IBM Library Reader and before that IBM BookManager READ) also existed for Windows, AIX (any other commercial Unix systems?), OS/2, DOS (meaning PC-DOS/MS-DOS, not mainframe DOS), MVS (later known as OS/390 then z/OS), VM/CMS (later known as z/VM), and OS/400 (later IBM i5/OS and then IBM i)–but apparently *not* mainframe DOS (DOS/360, DOS/VS, DOS/VSE, z/VSE). &lt;br /&gt;
&lt;br /&gt;
&amp;quot;application/book&amp;quot; is sometimes used as a MIME type but was never officially registered&lt;br /&gt;
&lt;br /&gt;
== Notes on file format ==&lt;br /&gt;
&lt;br /&gt;
* Bytes 1-2: unknown 2 bytes probably flags. second byte never zero, first byte often is (but not always). probably not a size, since 0001 is a common value. &lt;br /&gt;
* Bytes 3-6: these 4 bytes appear to always be zero&lt;br /&gt;
* Bytes 7: unknown, can be zero, probably more flags???&lt;br /&gt;
Bytes 8+: EBCDIC copyright string. Can start with one or more EBCDIC spaces (0x40), sometimes also (0xB4) (some kind of control character?)&lt;br /&gt;
&lt;br /&gt;
The header is 256 bytes long. The copyright string is padded to the end of the header with 0x40 (EBCDIC space). However, it seems to have a null terminator (0x00) at the end of the actual text, before the space padding.&lt;br /&gt;
&lt;br /&gt;
What follows from 256 bytes onwards looks like it could be some kind of compression dictionary???? Not clear.&lt;br /&gt;
&lt;br /&gt;
It looks like the file is composed of 256 byte records (so file size should be an integer multiple of 256), often with some all-zeros records appended to the end.&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
* http://www.edm2.com/index.php/BookManager – contains history of IBM BookManager releases&lt;/div&gt;</summary>
		<author><name>SJK</name></author>	</entry>

	<entry>
		<id>http://fileformats.archiveteam.org/wiki/IBM_BookManager_book</id>
		<title>IBM BookManager book</title>
		<link rel="alternate" type="text/html" href="http://fileformats.archiveteam.org/wiki/IBM_BookManager_book"/>
				<updated>2023-05-04T14:06:11Z</updated>
		
		<summary type="html">&lt;p&gt;SJK: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FormatInfo&lt;br /&gt;
|formattype=electronic&lt;br /&gt;
|subcat=Document&lt;br /&gt;
|extensions={{ext|boo}}&lt;br /&gt;
}}&lt;br /&gt;
IBM BookManager is IBM's legacy online documentation system, historically used mostly on mainframes, midrange (AS/400) and OS/2, although it also saw some use in other areas including AIX. IBM no longer uses it for documenting current versions of its products, but there is an immense quantity of surviving electronic documentation from the period when IBM actively used it (from the 1990s thru 2010s), particularly documentation CD-ROMs/DVD-ROMs and images thereof.&lt;br /&gt;
&lt;br /&gt;
The standard extension is BOO. No public documentation is known to be available for it. The header of BOO files commonly contains an EBCDIC copyright notice (this is true even for books for ASCII-based platforms such as OS/2). The file contents is almost certainly also in EBCDIC, but it is compressed with unknown compression algorithms (likely a relative of IBM's well-known proprietary algorithms such as TERSE, but that's speculation).&lt;br /&gt;
&lt;br /&gt;
https://github.com/kev009/boo2pdf is code to convert BOO files to PDF. However, it relies on using the IBM SoftCopy Reader (for 32-bit Linux)'s JAR files and native code libraries (.so files) to actually read the file. The author of that code previously hosted a free public web service for that conversion, but discontinued it.&lt;br /&gt;
&lt;br /&gt;
Versions of IBM's SoftCopy Reader (previously known as IBM Library Reader and before that IBM BookManager READ) also existed for Windows, AIX (any other commercial Unix systems?), OS/2, DOS (meaning PC-DOS/MS-DOS, not mainframe DOS), MVS (later known as OS/390 then z/OS), VM/CMS (later known as z/VM), and OS/400 (later IBM i5/OS and then IBM i)–but apparently *not* mainframe DOS (DOS/360, DOS/VS, DOS/VSE, z/VSE). &lt;br /&gt;
&lt;br /&gt;
&amp;quot;application/book&amp;quot; is sometimes used as a MIME type but was never officially registered&lt;br /&gt;
&lt;br /&gt;
== Notes on file format ==&lt;br /&gt;
&lt;br /&gt;
* Bytes 1-2: unknown 2 bytes probably flags. second byte never zero, first byte often is (but not always). probably not a size, since 0001 is a common value. &lt;br /&gt;
* Bytes 3-6: these 4 bytes appear to always be zero&lt;br /&gt;
* Bytes 7: unknown, can be zero, probably more flags???&lt;br /&gt;
Bytes 8+: EBCDIC copyright string. Can start with one or more EBCDIC spaces (0x40), sometimes also (0xB4) (some kind of control character?)&lt;br /&gt;
&lt;br /&gt;
The header is 256 bytes long. The copyright string is padded to the end of the header with 0x40 (EBCDIC space). However, it seems to have a null terminator (0x00) at the end of the actual text, before the space padding.&lt;br /&gt;
&lt;br /&gt;
What follows from 256 bytes onwards looks like it could be some kind of compression dictionary???? Not clear.&lt;br /&gt;
&lt;br /&gt;
It looks like the file is composed of 256 byte records (so file size should be an integer multiple of 256), often with some all-zeros records appended to the end.&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
* http://www.edm2.com/index.php/BookManager – contains history of IBM BookManager releases&lt;/div&gt;</summary>
		<author><name>SJK</name></author>	</entry>

	<entry>
		<id>http://fileformats.archiveteam.org/wiki/IBM_BookManager_book</id>
		<title>IBM BookManager book</title>
		<link rel="alternate" type="text/html" href="http://fileformats.archiveteam.org/wiki/IBM_BookManager_book"/>
				<updated>2023-05-04T13:22:41Z</updated>
		
		<summary type="html">&lt;p&gt;SJK: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FormatInfo&lt;br /&gt;
|formattype=electronic&lt;br /&gt;
|subcat=Document&lt;br /&gt;
|extensions={{ext|boo}}&lt;br /&gt;
}}&lt;br /&gt;
IBM BookManager is IBM's legacy online documentation system, historically used mostly on mainframes, midrange (AS/400) and OS/2, although it also saw some use in other areas including AIX. IBM no longer uses it for documenting current versions of its products, but there is an immense quantity of surviving electronic documentation from the period when IBM actively used it (from the 1990s thru 2010s), particularly documentation CD-ROMs/DVD-ROMs and images thereof.&lt;br /&gt;
&lt;br /&gt;
The standard extension is BOO. No public documentation is known to be available for it. The header of BOO files commonly contains an EBCDIC copyright notice (this is true even for books for ASCII-based platforms such as OS/2). The file contents is almost certainly also in EBCDIC, but it is compressed with unknown compression algorithms (likely a relative of IBM's well-known proprietary algorithms such as TERSE, but that's speculation).&lt;br /&gt;
&lt;br /&gt;
https://github.com/kev009/boo2pdf is code to convert BOO files to PDF. However, it relies on using the IBM SoftCopy Reader (for 32-bit Linux)'s JAR files and native code libraries (.so files) to actually read the file. The author of that code previously hosted a free public web service for that conversion, but discontinued it.&lt;br /&gt;
&lt;br /&gt;
Versions of IBM's SoftCopy Reader (previously known as IBM Library Reader and before that IBM BookManager READ) also existed for Windows, AIX (any other commercial Unix systems?), OS/2, DOS (meaning PC-DOS/MS-DOS, not mainframe DOS), MVS (later known as OS/390 then z/OS), VM/CMS (later known as z/VM), and OS/400 (later IBM i5/OS and then IBM i)–but apparently *not* mainframe DOS (DOS/360, DOS/VS, DOS/VSE, z/VSE). &lt;br /&gt;
&lt;br /&gt;
&amp;quot;application/book&amp;quot; is sometimes used as a MIME type but was never officially registered&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
* http://www.edm2.com/index.php/BookManager – contains history of IBM BookManager releases&lt;/div&gt;</summary>
		<author><name>SJK</name></author>	</entry>

	<entry>
		<id>http://fileformats.archiveteam.org/wiki/IBM_BookManager_book</id>
		<title>IBM BookManager book</title>
		<link rel="alternate" type="text/html" href="http://fileformats.archiveteam.org/wiki/IBM_BookManager_book"/>
				<updated>2023-05-04T13:20:54Z</updated>
		
		<summary type="html">&lt;p&gt;SJK: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FormatInfo&lt;br /&gt;
|formattype=electronic&lt;br /&gt;
|subcat=Document&lt;br /&gt;
|extensions={{ext|boo}}&lt;br /&gt;
}}&lt;br /&gt;
IBM BookManager is IBM's legacy online documentation system, historically used mostly on mainframes, midrange (AS/400) and OS/2, although it also saw some use in other areas including AIX. IBM no longer uses it for documenting current versions of its products, but there is an immense quantity of surviving electronic documentation from the period when IBM actively used it (from the 1990s thru 2010s), particularly documentation CD-ROMs/DVD-ROMs and images thereof.&lt;br /&gt;
&lt;br /&gt;
The standard extension is BOO. No public documentation is known to be available for it. The header of BOO files commonly contains an EBCDIC copyright notice (this is true even for books for ASCII-based platforms such as OS/2). The file contents is almost certainly also in EBCDIC, but it is compressed with unknown compression algorithms (likely a relative of IBM's well-known proprietary algorithms such as TERSE, but that's speculation).&lt;br /&gt;
&lt;br /&gt;
https://github.com/kev009/boo2pdf is code to convert BOO files to PDF. However, it relies on using the IBM SoftCopy Reader (for 32-bit Linux)'s JAR files and native code libraries (.so files) to actually read the file. Versions of IBM's SoftCopy Reader (previously known as IBM Library Reader and before that IBM BookManager READ) also existed for Windows, AIX (any other commercial Unix systems?), OS/2, DOS (meaning PC-DOS/MS-DOS, not mainframe DOS), MVS (later known as OS/390 then z/OS), VM/CMS (later known as z/VM), and OS/400 (later IBM i5/OS and then IBM i)–but apparently *not* mainframe DOS (DOS/360, DOS/VS, DOS/VSE, z/VSE).&lt;br /&gt;
&lt;br /&gt;
&amp;quot;application/book&amp;quot; is sometimes used as a MIME type but was never officially registered&lt;/div&gt;</summary>
		<author><name>SJK</name></author>	</entry>

	<entry>
		<id>http://fileformats.archiveteam.org/wiki/IBM_BookManager_book</id>
		<title>IBM BookManager book</title>
		<link rel="alternate" type="text/html" href="http://fileformats.archiveteam.org/wiki/IBM_BookManager_book"/>
				<updated>2023-05-04T13:19:50Z</updated>
		
		<summary type="html">&lt;p&gt;SJK: Created page with &amp;quot;{{FormatInfo |formattype=electronic |subcat=Document |extensions={{ext|boo}} }} IBM BookManager is IBM's legacy online documentation system, historically used mostly on mainfr...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FormatInfo&lt;br /&gt;
|formattype=electronic&lt;br /&gt;
|subcat=Document&lt;br /&gt;
|extensions={{ext|boo}}&lt;br /&gt;
}}&lt;br /&gt;
IBM BookManager is IBM's legacy online documentation system, historically used mostly on mainframes, midrange (AS/400) and OS/2, although it also saw some use in other areas including AIX. IBM no longer uses it for documenting current versions of its products, but there is an immense quantity of surviving electronic documentation from the period when IBM actively used it (from the 1990s thru 2010s), particularly documentation CD-ROMs/DVD-ROMs and images thereof.&lt;br /&gt;
&lt;br /&gt;
The standard extension is BOO. No public documentation is known to be available for it. The header of BOO files commonly contains an EBCDIC copyright notice (this is true even for books for ASCII-based platforms such as OS/2). The file contents is almost certainly also in EBCDIC, but it is compressed with unknown compression algorithms (likely a relative of IBM's well-known proprietary algorithms such as TERSE, but that's speculation).&lt;br /&gt;
&lt;br /&gt;
https://github.com/kev009/boo2pdf is code to convert BOO files to PDF. However, it relies on using the IBM SoftCopy Reader (for 32-bit Linux)'s JAR files and native code libraries (.so files) to actually read the file. Versions of IBM's SoftCopy Reader (previously known as IBM Library Reader) also existed for Windows, AIX (any other commercial Unix systems?), OS/2, DOS (meaning PC-DOS/MS-DOS, not mainframe DOS), MVS (later known as OS/390 then z/OS), VM/CMS (later known as z/VM), and OS/400 (later IBM i5/OS and then IBM i)–but apparently *not* mainframe DOS (DOS/360, DOS/VS, DOS/VSE, z/VSE).&lt;br /&gt;
&lt;br /&gt;
&amp;quot;application/book&amp;quot; is sometimes used as a MIME type but was never officially registered&lt;/div&gt;</summary>
		<author><name>SJK</name></author>	</entry>

	<entry>
		<id>http://fileformats.archiveteam.org/wiki/Category:File_formats_with_extension_.xmit</id>
		<title>Category:File formats with extension .xmit</title>
		<link rel="alternate" type="text/html" href="http://fileformats.archiveteam.org/wiki/Category:File_formats_with_extension_.xmit"/>
				<updated>2021-01-02T13:32:53Z</updated>
		
		<summary type="html">&lt;p&gt;SJK: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:File formats by extension|X]]&lt;/div&gt;</summary>
		<author><name>SJK</name></author>	</entry>

	<entry>
		<id>http://fileformats.archiveteam.org/wiki/Category:File_formats_with_extension_.savf</id>
		<title>Category:File formats with extension .savf</title>
		<link rel="alternate" type="text/html" href="http://fileformats.archiveteam.org/wiki/Category:File_formats_with_extension_.savf"/>
				<updated>2021-01-02T13:32:40Z</updated>
		
		<summary type="html">&lt;p&gt;SJK: Created page with &amp;quot;S&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:File formats by extension|S]]&lt;/div&gt;</summary>
		<author><name>SJK</name></author>	</entry>

	<entry>
		<id>http://fileformats.archiveteam.org/wiki/SAVF</id>
		<title>SAVF</title>
		<link rel="alternate" type="text/html" href="http://fileformats.archiveteam.org/wiki/SAVF"/>
				<updated>2021-01-02T13:30:27Z</updated>
		
		<summary type="html">&lt;p&gt;SJK: Created page with &amp;quot;{{FormatInfo |subcat=Archiving |extensions={{ext|savf}} }} '''SAVF''' is a proprietary file format used to transfer IBM i (formerly known as i5/OS and OS/400) objects between ...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FormatInfo&lt;br /&gt;
|subcat=Archiving&lt;br /&gt;
|extensions={{ext|savf}}&lt;br /&gt;
}}&lt;br /&gt;
'''SAVF''' is a proprietary file format used to transfer IBM i (formerly known as i5/OS and OS/400) objects between systems.&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
*[http://www.anerty.net/software/file/jSAVF/?lang=en Java-based application to view SAVF contents on other platforms]&lt;br /&gt;
&lt;br /&gt;
[[Category:IBM]]&lt;/div&gt;</summary>
		<author><name>SJK</name></author>	</entry>

	<entry>
		<id>http://fileformats.archiveteam.org/wiki/RFT</id>
		<title>RFT</title>
		<link rel="alternate" type="text/html" href="http://fileformats.archiveteam.org/wiki/RFT"/>
				<updated>2021-01-02T13:23:57Z</updated>
		
		<summary type="html">&lt;p&gt;SJK: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FormatInfo&lt;br /&gt;
|formattype=electronic&lt;br /&gt;
|subcat=Document&lt;br /&gt;
|extensions={{ext|rft}}&lt;br /&gt;
|pronom={{PRONOM|x-fmt/285}}&lt;br /&gt;
}}&lt;br /&gt;
[[RFT]] (Revisable Format Text) is a word processing file format which forms part of IBM's [[Wikipedia:Document_Content_Architecture#Revisable-Form_Text|Document Content Architecture]] (DCA).&lt;br /&gt;
&lt;br /&gt;
[[Category:IBM]]&lt;/div&gt;</summary>
		<author><name>SJK</name></author>	</entry>

	<entry>
		<id>http://fileformats.archiveteam.org/wiki/RFT</id>
		<title>RFT</title>
		<link rel="alternate" type="text/html" href="http://fileformats.archiveteam.org/wiki/RFT"/>
				<updated>2021-01-02T13:21:59Z</updated>
		
		<summary type="html">&lt;p&gt;SJK: Created page with &amp;quot;{{FormatInfo |formattype=electronic |subcat=Document |extensions={{ext|rft}} }} RFT (Revisable Format Text) is a word processing file format which forms part of IBM's [[Wi...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FormatInfo&lt;br /&gt;
|formattype=electronic&lt;br /&gt;
|subcat=Document&lt;br /&gt;
|extensions={{ext|rft}}&lt;br /&gt;
}}&lt;br /&gt;
[[RFT]] (Revisable Format Text) is a word processing file format which forms part of IBM's [[Wikipedia:Document_Content_Architecture#Revisable-Form_Text|Document Content Architecture]] (DCA).&lt;br /&gt;
&lt;br /&gt;
[[Category:IBM]]&lt;/div&gt;</summary>
		<author><name>SJK</name></author>	</entry>

	<entry>
		<id>http://fileformats.archiveteam.org/wiki/XML_Metadata_Interchange</id>
		<title>XML Metadata Interchange</title>
		<link rel="alternate" type="text/html" href="http://fileformats.archiveteam.org/wiki/XML_Metadata_Interchange"/>
				<updated>2021-01-02T13:13:34Z</updated>
		
		<summary type="html">&lt;p&gt;SJK: Created page with &amp;quot;{{FormatInfo |subcat=Development |extensions={{ext|xmi}} |mimetypes={{mimetype|application/vnd.xmi+xml}} }} '''XML Metadata Interchange''' ('''XMI''') is an XML-based file for...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FormatInfo&lt;br /&gt;
|subcat=Development&lt;br /&gt;
|extensions={{ext|xmi}}&lt;br /&gt;
|mimetypes={{mimetype|application/vnd.xmi+xml}}&lt;br /&gt;
}}&lt;br /&gt;
'''XML Metadata Interchange''' ('''XMI''') is an XML-based file format used to share modelling information between development tools. It is primarily used to exchange UML diagrams, but it can be used to exchange any abstract model used in designing and developing software systems.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* [[Wikipedia:XML Metadata Interchange|Wikipedia article]]&lt;br /&gt;
&lt;br /&gt;
[[Category:XML based file formats]]&lt;/div&gt;</summary>
		<author><name>SJK</name></author>	</entry>

	<entry>
		<id>http://fileformats.archiveteam.org/wiki/Category:File_formats_with_extension_.xmit</id>
		<title>Category:File formats with extension .xmit</title>
		<link rel="alternate" type="text/html" href="http://fileformats.archiveteam.org/wiki/Category:File_formats_with_extension_.xmit"/>
				<updated>2021-01-02T13:07:41Z</updated>
		
		<summary type="html">&lt;p&gt;SJK: Created page with &amp;quot;Category:File formats by extension&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:File formats by extension]]&lt;/div&gt;</summary>
		<author><name>SJK</name></author>	</entry>

	<entry>
		<id>http://fileformats.archiveteam.org/wiki/XMIT</id>
		<title>XMIT</title>
		<link rel="alternate" type="text/html" href="http://fileformats.archiveteam.org/wiki/XMIT"/>
				<updated>2021-01-02T13:07:09Z</updated>
		
		<summary type="html">&lt;p&gt;SJK: Created page with &amp;quot;{{FormatInfo |subcat=Archiving |extensions={{ext|xmit}}, {{ext|xmi}} }} '''XMIT''' is a file format used to archive files from the IBM mainframe z/OS operating system.  == Sof...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FormatInfo&lt;br /&gt;
|subcat=Archiving&lt;br /&gt;
|extensions={{ext|xmit}}, {{ext|xmi}}&lt;br /&gt;
}}&lt;br /&gt;
'''XMIT''' is a file format used to archive files from the IBM mainframe z/OS operating system.&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
*[http://www.cbttape.org/xmitview.htm Tools to view XMIT files on Windows, Java, Android and other platforms]&lt;br /&gt;
&lt;br /&gt;
[[Category:IBM mainframe]]&lt;/div&gt;</summary>
		<author><name>SJK</name></author>	</entry>

	<entry>
		<id>http://fileformats.archiveteam.org/wiki/OS/360_Object_File_Format</id>
		<title>OS/360 Object File Format</title>
		<link rel="alternate" type="text/html" href="http://fileformats.archiveteam.org/wiki/OS/360_Object_File_Format"/>
				<updated>2021-01-02T13:00:29Z</updated>
		
		<summary type="html">&lt;p&gt;SJK: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FormatInfo&lt;br /&gt;
|formattype=electronic&lt;br /&gt;
|subcat=Executables&lt;br /&gt;
|released=~1965&lt;br /&gt;
}}&lt;br /&gt;
'''OS/360 Object File Format''' is the original executable format for IBM mainframe operating system OS/360 and its successors. It is still supported by contemporary z/OS, although officially superseded by [[GOFF]]. It is also supported on z/VM (previously VM/CMS), although likewise superseded by GOFF there as well.&lt;br /&gt;
&lt;br /&gt;
It was also used by some other mainframe vendors which partially copied IBM's technologies, such as UNIVAC Series 90.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
*[[Wikipedia:OS/360_Object_File_Format|Wikipedia article]]&lt;br /&gt;
&lt;br /&gt;
[[Category:IBM mainframe]]&lt;/div&gt;</summary>
		<author><name>SJK</name></author>	</entry>

	<entry>
		<id>http://fileformats.archiveteam.org/wiki/GOFF</id>
		<title>GOFF</title>
		<link rel="alternate" type="text/html" href="http://fileformats.archiveteam.org/wiki/GOFF"/>
				<updated>2021-01-02T12:59:35Z</updated>
		
		<summary type="html">&lt;p&gt;SJK: Created page with &amp;quot;{{FormatInfo |formattype=electronic |subcat=Executables |released=~1995 }} ''GOFF'' (Generalized Object File Format) is the current executable format for the IBM mainframe ope...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FormatInfo&lt;br /&gt;
|formattype=electronic&lt;br /&gt;
|subcat=Executables&lt;br /&gt;
|released=~1995&lt;br /&gt;
}}&lt;br /&gt;
''GOFF'' (Generalized Object File Format) is the current executable format for the IBM mainframe operating systems z/OS and z/VM. It supersedes the original [[OS/360 Object File Format]], although the later is still supported.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
*[[Wikipedia:GOFF|Wikipedia article]]&lt;br /&gt;
&lt;br /&gt;
[[Category:IBM mainframe]]&lt;/div&gt;</summary>
		<author><name>SJK</name></author>	</entry>

	<entry>
		<id>http://fileformats.archiveteam.org/wiki/OS/360_Object_File_Format</id>
		<title>OS/360 Object File Format</title>
		<link rel="alternate" type="text/html" href="http://fileformats.archiveteam.org/wiki/OS/360_Object_File_Format"/>
				<updated>2021-01-02T12:57:25Z</updated>
		
		<summary type="html">&lt;p&gt;SJK: Created page with &amp;quot;{{FormatInfo |formattype=electronic |subcat=Executables }} '''OS/360 Object File Format''' is the original executable format for IBM mainframe operating system OS/360 and its ...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FormatInfo&lt;br /&gt;
|formattype=electronic&lt;br /&gt;
|subcat=Executables&lt;br /&gt;
}}&lt;br /&gt;
'''OS/360 Object File Format''' is the original executable format for IBM mainframe operating system OS/360 and its successors. It is still supported by contemporary z/OS, although officially superseded by [[GOFF]]. It is also supported on z/VM (previously VM/CMS), although likewise superseded by GOFF there as well.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
*[[Wikipedia:OS/360_Object_File_Format|Wikipedia article]]&lt;br /&gt;
&lt;br /&gt;
[[Category:IBM mainframe]]&lt;/div&gt;</summary>
		<author><name>SJK</name></author>	</entry>

	<entry>
		<id>http://fileformats.archiveteam.org/wiki/TERSE</id>
		<title>TERSE</title>
		<link rel="alternate" type="text/html" href="http://fileformats.archiveteam.org/wiki/TERSE"/>
				<updated>2021-01-02T12:53:37Z</updated>
		
		<summary type="html">&lt;p&gt;SJK: /* Software */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FormatInfo&lt;br /&gt;
|formattype=electronic&lt;br /&gt;
|subcat=Compression&lt;br /&gt;
|released=1984?&lt;br /&gt;
}}&lt;br /&gt;
'''TERSE''' is a data compression format used on OS/2, and on IBM mainframes. It is still in regular use on IBM mainframes to this day.&lt;br /&gt;
&lt;br /&gt;
More research is needed to understand the scope of what TERSE was used for, and how many versions of it there are.&lt;br /&gt;
&lt;br /&gt;
It can at least be used for single-file compression, as is done by the Advantis software listed below. This file format does not appear to have a conventional filename extension – compressed files may keep their original name.&lt;br /&gt;
&lt;br /&gt;
== Identification ==&lt;br /&gt;
At least some TERSE-compressed files start with bytes {{magic|05 01 01 00}}.&lt;br /&gt;
&lt;br /&gt;
== Related formats ==&lt;br /&gt;
The [[ZIP]] format documentation (APPNOTE) lists two &amp;quot;TERSE&amp;quot; compression methods:&lt;br /&gt;
&lt;br /&gt;
 10 - PKWARE Data Compression Library Imploding (old IBM TERSE)&lt;br /&gt;
 18 - File is compressed using IBM TERSE (new)&lt;br /&gt;
&lt;br /&gt;
So, apparently, [[PKWARE DCL Implode]] is closely related to TERSE.&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
* TERSE utility by Michael Nagy and Advantis&lt;br /&gt;
** [http://thorntonzone.com/afp/Mainframe/TERSE%20%28IBM%20mainframe%20compression%29/image-list.php?showsource=1] → [http://thorntonzone.com/afp/Mainframe/TERSE%20%28IBM%20mainframe%20compression%29/tersepc.zip tersepc.zip] - Collection of binaries for several platforms&lt;br /&gt;
** [https://www.sac.sk/download/pack/terse.zip terse.zip] - OS/2 binaries&lt;br /&gt;
** [https://www.ibm.com/support/knowledgecenter/SSB27H_6.2.0/fa2ut_part3_terse.html IBM Knowledge Center: Terse Utility]&lt;br /&gt;
* [https://github.com/openmainframeproject/tersedecompress TerseDecompress] – open source (Apache2 licensed) Java program, written by IBM, to decompress TERSE files for mainframe.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* [[Wikipedia:Terse (file format)|Wikipedia article]]&lt;br /&gt;
&lt;br /&gt;
[[Category:IBM]]&lt;br /&gt;
[[Category:OS/2]]&lt;/div&gt;</summary>
		<author><name>SJK</name></author>	</entry>

	<entry>
		<id>http://fileformats.archiveteam.org/wiki/TERSE</id>
		<title>TERSE</title>
		<link rel="alternate" type="text/html" href="http://fileformats.archiveteam.org/wiki/TERSE"/>
				<updated>2021-01-02T12:53:22Z</updated>
		
		<summary type="html">&lt;p&gt;SJK: /* Software */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FormatInfo&lt;br /&gt;
|formattype=electronic&lt;br /&gt;
|subcat=Compression&lt;br /&gt;
|released=1984?&lt;br /&gt;
}}&lt;br /&gt;
'''TERSE''' is a data compression format used on OS/2, and on IBM mainframes. It is still in regular use on IBM mainframes to this day.&lt;br /&gt;
&lt;br /&gt;
More research is needed to understand the scope of what TERSE was used for, and how many versions of it there are.&lt;br /&gt;
&lt;br /&gt;
It can at least be used for single-file compression, as is done by the Advantis software listed below. This file format does not appear to have a conventional filename extension – compressed files may keep their original name.&lt;br /&gt;
&lt;br /&gt;
== Identification ==&lt;br /&gt;
At least some TERSE-compressed files start with bytes {{magic|05 01 01 00}}.&lt;br /&gt;
&lt;br /&gt;
== Related formats ==&lt;br /&gt;
The [[ZIP]] format documentation (APPNOTE) lists two &amp;quot;TERSE&amp;quot; compression methods:&lt;br /&gt;
&lt;br /&gt;
 10 - PKWARE Data Compression Library Imploding (old IBM TERSE)&lt;br /&gt;
 18 - File is compressed using IBM TERSE (new)&lt;br /&gt;
&lt;br /&gt;
So, apparently, [[PKWARE DCL Implode]] is closely related to TERSE.&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
* TERSE utility by Michael Nagy and Advantis&lt;br /&gt;
** [http://thorntonzone.com/afp/Mainframe/TERSE%20%28IBM%20mainframe%20compression%29/image-list.php?showsource=1] → [http://thorntonzone.com/afp/Mainframe/TERSE%20%28IBM%20mainframe%20compression%29/tersepc.zip tersepc.zip] - Collection of binaries for several platforms&lt;br /&gt;
** [https://www.sac.sk/download/pack/terse.zip terse.zip] - OS/2 binaries&lt;br /&gt;
** [https://www.ibm.com/support/knowledgecenter/SSB27H_6.2.0/fa2ut_part3_terse.html IBM Knowledge Center: Terse Utility]&lt;br /&gt;
* [https://github.com/openmainframeproject/tersedecompress TerseDecompress] – open source (Apache2 licensed) Java program, written by IBM, to decompresses TERSE files for mainframe.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* [[Wikipedia:Terse (file format)|Wikipedia article]]&lt;br /&gt;
&lt;br /&gt;
[[Category:IBM]]&lt;br /&gt;
[[Category:OS/2]]&lt;/div&gt;</summary>
		<author><name>SJK</name></author>	</entry>

	<entry>
		<id>http://fileformats.archiveteam.org/wiki/TERSE</id>
		<title>TERSE</title>
		<link rel="alternate" type="text/html" href="http://fileformats.archiveteam.org/wiki/TERSE"/>
				<updated>2021-01-02T12:48:41Z</updated>
		
		<summary type="html">&lt;p&gt;SJK: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FormatInfo&lt;br /&gt;
|formattype=electronic&lt;br /&gt;
|subcat=Compression&lt;br /&gt;
|released=1984?&lt;br /&gt;
}}&lt;br /&gt;
'''TERSE''' is a data compression format used on OS/2, and on IBM mainframes. It is still in regular use on IBM mainframes to this day.&lt;br /&gt;
&lt;br /&gt;
More research is needed to understand the scope of what TERSE was used for, and how many versions of it there are.&lt;br /&gt;
&lt;br /&gt;
It can at least be used for single-file compression, as is done by the Advantis software listed below. This file format does not appear to have a conventional filename extension – compressed files may keep their original name.&lt;br /&gt;
&lt;br /&gt;
== Identification ==&lt;br /&gt;
At least some TERSE-compressed files start with bytes {{magic|05 01 01 00}}.&lt;br /&gt;
&lt;br /&gt;
== Related formats ==&lt;br /&gt;
The [[ZIP]] format documentation (APPNOTE) lists two &amp;quot;TERSE&amp;quot; compression methods:&lt;br /&gt;
&lt;br /&gt;
 10 - PKWARE Data Compression Library Imploding (old IBM TERSE)&lt;br /&gt;
 18 - File is compressed using IBM TERSE (new)&lt;br /&gt;
&lt;br /&gt;
So, apparently, [[PKWARE DCL Implode]] is closely related to TERSE.&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
* TERSE utility by Michael Nagy and Advantis&lt;br /&gt;
** [http://thorntonzone.com/afp/Mainframe/TERSE%20%28IBM%20mainframe%20compression%29/image-list.php?showsource=1] → [http://thorntonzone.com/afp/Mainframe/TERSE%20%28IBM%20mainframe%20compression%29/tersepc.zip tersepc.zip] - Collection of binaries for several platforms&lt;br /&gt;
** [https://www.sac.sk/download/pack/terse.zip terse.zip] - OS/2 binaries&lt;br /&gt;
** [https://www.ibm.com/support/knowledgecenter/SSB27H_6.2.0/fa2ut_part3_terse.html IBM Knowledge Center: Terse Utility]&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* [[Wikipedia:Terse (file format)|Wikipedia article]]&lt;br /&gt;
&lt;br /&gt;
[[Category:IBM]]&lt;br /&gt;
[[Category:OS/2]]&lt;/div&gt;</summary>
		<author><name>SJK</name></author>	</entry>

	</feed>