1284194Sdelphij#------------------------------------------------------------------------------
2284194Sdelphij# $File: filesystems,v 1.108 2015/01/01 17:43:47 christos Exp $
3284194Sdelphij# filesystems:  file(1) magic for different filesystems
4284194Sdelphij#
5284194Sdelphij0	name	partid  
6284194Sdelphij>0	ubyte	0x00	Unused
7284194Sdelphij>0	ubyte	0x01	12-bit FAT
8284194Sdelphij>0	ubyte	0x02	XENIX /
9284194Sdelphij>0	ubyte	0x03	XENIX /usr
10284194Sdelphij>0	ubyte	0x04	16-bit FAT, less than 32M
11284194Sdelphij>0	ubyte	0x05	extended partition
12284194Sdelphij>0	ubyte	0x06	16-bit FAT, more than 32M
13284194Sdelphij>0	ubyte	0x07	OS/2 HPFS, NTFS, QNX2, Adv. UNIX
14284194Sdelphij>0	ubyte	0x08	AIX or os, or etc.
15284194Sdelphij>0	ubyte	0x09	AIX boot partition or Coherent
16284194Sdelphij>0	ubyte	0x0a	O/2 boot manager or Coherent swap
17284194Sdelphij>0	ubyte	0x0b	32-bit FAT
18284194Sdelphij>0	ubyte	0x0c	32-bit FAT, LBA-mapped
19284194Sdelphij>0	ubyte	0x0d	7XXX, LBA-mapped
20284194Sdelphij>0	ubyte	0x0e	16-bit FAT, LBA-mapped
21284194Sdelphij>0	ubyte	0x0f	extended partition, LBA-mapped
22284194Sdelphij>0	ubyte	0x10	OPUS
23284194Sdelphij>0	ubyte	0x11 	OS/2 DOS 12-bit FAT
24284194Sdelphij>0	ubyte	0x12 	Compaq diagnostics
25284194Sdelphij>0	ubyte	0x14 	OS/2 DOS 16-bit FAT <32M
26284194Sdelphij>0	ubyte	0x16 	OS/2 DOS 16-bit FAT >=32M
27284194Sdelphij>0	ubyte	0x17 	OS/2 hidden IFS
28284194Sdelphij>0	ubyte	0x18 	AST Windows swapfile
29284194Sdelphij>0	ubyte	0x19 	Willowtech Photon coS
30284194Sdelphij>0	ubyte	0x1b 	hidden win95 fat 32
31284194Sdelphij>0	ubyte	0x1c 	hidden win95 fat 32 lba
32284194Sdelphij>0	ubyte	0x1d	hidden win95 fat 16 lba
33284194Sdelphij>0	ubyte	0x20 	Willowsoft OFS1
34284194Sdelphij>0	ubyte	0x21 	reserved
35284194Sdelphij>0	ubyte	0x23 	reserved
36284194Sdelphij>0	ubyte	0x24	NEC DOS
37284194Sdelphij>0	ubyte	0x26 	reserved
38284194Sdelphij>0	ubyte	0x31 	reserved
39284194Sdelphij>0	ubyte	0x32	Alien Internet Services NOS
40284194Sdelphij>0	ubyte	0x33 	reserved
41284194Sdelphij>0	ubyte	0x34 	reserved
42284194Sdelphij>0	ubyte	0x35 	JFS on OS2
43284194Sdelphij>0	ubyte	0x36 	reserved
44284194Sdelphij>0	ubyte	0x38 	Theos
45284194Sdelphij>0	ubyte	0x39 	Plan 9, or Theos spanned
46284194Sdelphij>0	ubyte	0x3a 	Theos ver 4 4gb partition
47284194Sdelphij>0	ubyte	0x3b 	Theos ve 4 extended partition
48284194Sdelphij>0	ubyte	0x3c 	PartitionMagic recovery
49284194Sdelphij>0	ubyte	0x3d 	Hidden Netware
50284194Sdelphij>0	ubyte	0x40 	VENIX 286 or LynxOS
51284194Sdelphij>0	ubyte	0x41	PReP
52284194Sdelphij>0	ubyte	0x42	linux swap sharing DRDOS disk
53284194Sdelphij>0	ubyte	0x43	linux sharing DRDOS disk
54284194Sdelphij>0	ubyte	0x44	GoBack change utility
55284194Sdelphij>0	ubyte	0x45	Boot US Boot manager
56284194Sdelphij>0	ubyte	0x46	EUMEL/Elan or Ergos 3
57284194Sdelphij>0	ubyte	0x47	EUMEL/Elan or Ergos 3
58284194Sdelphij>0	ubyte	0x48	EUMEL/Elan or Ergos 3
59284194Sdelphij>0	ubyte	0x4a	ALFX/THIN filesystem for DOS
60284194Sdelphij>0	ubyte	0x4c	Oberon partition
61284194Sdelphij>0	ubyte	0x4d 	QNX4.x
62284194Sdelphij>0	ubyte	0x4e 	QNX4.x 2nd part
63284194Sdelphij>0	ubyte	0x4f 	QNX4.x 3rd part
64284194Sdelphij>0	ubyte	0x50 	DM (disk manager)
65284194Sdelphij>0	ubyte	0x51 	DM6 Aux1 (or Novell)
66284194Sdelphij>0	ubyte	0x52 	CP/M or Microport SysV/AT
67284194Sdelphij>0	ubyte	0x53 	DM6 Aux3
68284194Sdelphij>0	ubyte	0x54	DM6 DDO
69284194Sdelphij>0	ubyte	0x55	EZ-Drive (disk manager)
70284194Sdelphij>0	ubyte	0x56	Golden Bow (disk manager)
71284194Sdelphij>0	ubyte	0x57	Drive PRO
72284194Sdelphij>0	ubyte	0x5c	Priam Edisk (disk manager)
73284194Sdelphij>0	ubyte	0x61	SpeedStor
74284194Sdelphij>0	ubyte	0x63	GNU HURD or Mach or Sys V/386
75284194Sdelphij>0	ubyte	0x64	Novell Netware 2.xx or Speedstore
76284194Sdelphij>0	ubyte	0x65	Novell Netware 3.xx
77284194Sdelphij>0	ubyte	0x66	Novell 386 Netware
78284194Sdelphij>0	ubyte	0x67	Novell
79284194Sdelphij>0	ubyte	0x68	Novell
80284194Sdelphij>0	ubyte	0x69	Novell
81284194Sdelphij>0	ubyte	0x70	DiskSecure Multi-Boot
82284194Sdelphij>0	ubyte	0x71	reserved
83284194Sdelphij>0	ubyte	0x73	reserved
84284194Sdelphij>0	ubyte	0x74	reserved
85284194Sdelphij>0	ubyte	0x75	PC/IX
86284194Sdelphij>0	ubyte	0x76	reserved
87284194Sdelphij>0	ubyte	0x77	M2FS/M2CS partition
88284194Sdelphij>0	ubyte	0x78	XOSL boot loader filesystem
89284194Sdelphij>0	ubyte	0x80	MINIX until 1.4a
90284194Sdelphij>0	ubyte	0x81	MINIX since 1.4b
91284194Sdelphij>0	ubyte	0x82	Linux swap or Solaris
92284194Sdelphij>0	ubyte	0x83	Linux native
93284194Sdelphij>0	ubyte	0x84	OS/2 hidden C: drive
94284194Sdelphij>0	ubyte	0x85	Linux extended partition
95284194Sdelphij>0	ubyte	0x86	NT FAT volume set
96284194Sdelphij>0	ubyte	0x87	NTFS volume set or HPFS mirrored
97284194Sdelphij>0	ubyte	0x8a	Linux Kernel AiR-BOOT partition
98284194Sdelphij>0	ubyte	0x8b	Legacy Fault tolerant FAT32
99284194Sdelphij>0	ubyte	0x8c	Legacy Fault tolerant FAT32 ext
100284194Sdelphij>0	ubyte	0x8d	Hidden free FDISK FAT12
101284194Sdelphij>0	ubyte	0x8e	Linux Logical Volume Manager
102284194Sdelphij>0	ubyte	0x90	Hidden free FDISK FAT16
103284194Sdelphij>0	ubyte	0x91	Hidden free FDISK DOS EXT
104284194Sdelphij>0	ubyte	0x92	Hidden free FDISK FAT16 Big
105284194Sdelphij>0	ubyte	0x93	Amoeba filesystem
106284194Sdelphij>0	ubyte	0x94	Amoeba bad block table
107284194Sdelphij>0	ubyte	0x95	MIT EXOPC native partitions
108284194Sdelphij>0	ubyte	0x97	Hidden free FDISK FAT32
109284194Sdelphij>0	ubyte	0x98	Datalight ROM-DOS Super-Boot
110284194Sdelphij>0	ubyte	0x99	Mylex EISA SCSI
111284194Sdelphij>0	ubyte	0x9a	Hidden free FDISK FAT16 LBA
112284194Sdelphij>0	ubyte	0x9b	Hidden free FDISK EXT LBA
113284194Sdelphij>0	ubyte	0x9f	BSDI?
114284194Sdelphij>0	ubyte	0xa0	IBM Thinkpad hibernation
115284194Sdelphij>0	ubyte	0xa1	HP Volume expansion (SpeedStor)
116284194Sdelphij>0	ubyte	0xa3	HP Volume expansion (SpeedStor)
117284194Sdelphij>0	ubyte	0xa4	HP Volume expansion (SpeedStor)
118284194Sdelphij>0	ubyte	0xa5	386BSD partition type
119284194Sdelphij>0	ubyte	0xa6	OpenBSD partition type
120284194Sdelphij>0	ubyte	0xa7	NeXTSTEP 486
121284194Sdelphij>0	ubyte	0xa8	Apple UFS
122284194Sdelphij>0	ubyte	0xa9	NetBSD partition type
123284194Sdelphij>0	ubyte	0xaa	Olivetty Fat12 1.44MB Service part
124284194Sdelphij>0	ubyte	0xab	Apple Boot
125284194Sdelphij>0	ubyte	0xae	SHAG OS filesystem
126284194Sdelphij>0	ubyte	0xaf	Apple HFS
127284194Sdelphij>0	ubyte	0xb0	BootStar Dummy
128284194Sdelphij>0	ubyte	0xb1	reserved
129284194Sdelphij>0	ubyte	0xb3	reserved
130284194Sdelphij>0	ubyte	0xb4	reserved
131284194Sdelphij>0	ubyte	0xb6	reserved
132284194Sdelphij>0	ubyte	0xb7	BSDI BSD/386 filesystem
133284194Sdelphij>0	ubyte	0xb8	BSDI BSD/386 swap
134284194Sdelphij>0	ubyte	0xbb	Boot Wizard Hidden
135284194Sdelphij>0	ubyte	0xbe	Solaris 8 partition type
136284194Sdelphij>0	ubyte	0xbf	Solaris partition type
137284194Sdelphij>0	ubyte	0xc0 	CTOS
138284194Sdelphij>0	ubyte	0xc1 	DRDOS/sec (FAT-12)
139284194Sdelphij>0	ubyte	0xc2 	Hidden Linux
140284194Sdelphij>0	ubyte	0xc3 	Hidden Linux swap
141284194Sdelphij>0	ubyte	0xc4 	DRDOS/sec (FAT-16, < 32M)
142284194Sdelphij>0	ubyte	0xc5 	DRDOS/sec (EXT)
143284194Sdelphij>0	ubyte	0xc6 	DRDOS/sec (FAT-16, >= 32M)
144284194Sdelphij>0	ubyte	0xc7 	Syrinx (Cyrnix?) or HPFS disabled
145284194Sdelphij>0	ubyte	0xc8 	Reserved for DR-DOS 8.0+
146284194Sdelphij>0	ubyte	0xc9 	Reserved for DR-DOS 8.0+
147284194Sdelphij>0	ubyte	0xca 	Reserved for DR-DOS 8.0+
148284194Sdelphij>0	ubyte	0xcb 	DR-DOS 7.04+ Secured FAT32 CHS
149284194Sdelphij>0	ubyte	0xcc 	DR-DOS 7.04+ Secured FAT32 LBA
150284194Sdelphij>0	ubyte	0xcd	CTOS Memdump
151284194Sdelphij>0	ubyte	0xce 	DR-DOS 7.04+ FAT16X LBA
152284194Sdelphij>0	ubyte	0xcf 	DR-DOS 7.04+ EXT LBA
153284194Sdelphij>0	ubyte	0xd0 	REAL/32 secure big partition
154284194Sdelphij>0	ubyte	0xd1 	Old Multiuser DOS FAT12
155284194Sdelphij>0	ubyte	0xd4 	Old Multiuser DOS FAT16 Small
156284194Sdelphij>0	ubyte	0xd5 	Old Multiuser DOS Extended
157284194Sdelphij>0	ubyte	0xd6 	Old Multiuser DOS FAT16 Big
158284194Sdelphij>0	ubyte	0xd8 	CP/M 86
159284194Sdelphij>0	ubyte	0xdb 	CP/M or Concurrent CP/M
160284194Sdelphij>0	ubyte	0xdd 	Hidden CTOS Memdump
161284194Sdelphij>0	ubyte	0xde 	Dell PowerEdge Server utilities
162284194Sdelphij>0	ubyte	0xdf 	DG/UX virtual disk manager
163284194Sdelphij>0	ubyte	0xe0 	STMicroelectronics ST AVFS
164284194Sdelphij>0	ubyte	0xe1 	DOS access or SpeedStor 12-bit
165284194Sdelphij>0	ubyte	0xe3 	DOS R/O or Storage Dimensions
166284194Sdelphij>0	ubyte	0xe4 	SpeedStor 16-bit FAT < 1024 cyl.
167284194Sdelphij>0	ubyte	0xe5	reserved
168284194Sdelphij>0	ubyte	0xe6	reserved
169284194Sdelphij>0	ubyte	0xeb 	BeOS
170284194Sdelphij>0	ubyte	0xee	GPT Protective MBR
171284194Sdelphij>0	ubyte	0xef	EFI system partition
172284194Sdelphij>0	ubyte	0xf0 	Linux PA-RISC boot loader
173284194Sdelphij>0	ubyte	0xf1 	SpeedStor or Storage Dimensions
174284194Sdelphij>0	ubyte	0xf2 	DOS 3.3+ Secondary
175284194Sdelphij>0	ubyte	0xf3	reserved
176284194Sdelphij>0	ubyte	0xf4	SpeedStor large partition
177284194Sdelphij>0	ubyte	0xf5	Prologue multi-volumen partition
178284194Sdelphij>0	ubyte	0xf6 	reserved
179284194Sdelphij>0	ubyte	0xf9 	pCache: ext2/ext3 persistent cache
180284194Sdelphij>0	ubyte	0xfa 	Bochs x86 emulator
181284194Sdelphij>0	ubyte	0xfb 	VMware File System
182284194Sdelphij>0	ubyte	0xfc 	VMware Swap
183284194Sdelphij>0	ubyte	0xfd 	Linux RAID partition persistent sb
184284194Sdelphij>0	ubyte	0xfe	LANstep or IBM PS/2 IML
185284194Sdelphij>0	ubyte	0xff 	Xenix Bad Block Table
186284194Sdelphij
187284194Sdelphij0	string	\366\366\366\366	PC formatted floppy with no filesystem
188284194Sdelphij# Sun disk labels
189284194Sdelphij# From /usr/include/sun/dklabel.h:
190284194Sdelphij0774	beshort		0xdabe		
191284194Sdelphij# modified by Joerg Jenderek, because original test
192284194Sdelphij# succeeds for Cabinet archive dao360.dl_ with negative blocks
193284194Sdelphij>0770	long		>0		Sun disk label
194284194Sdelphij>>0	string		x		'%s
195284194Sdelphij>>>31	string		>\0		\b%s
196284194Sdelphij>>>>63	string		>\0		\b%s
197284194Sdelphij>>>>>95	string		>\0		\b%s
198284194Sdelphij>>0	string		x		\b'
199284194Sdelphij>>0734	short		>0		%d rpm,
200284194Sdelphij>>0736	short		>0		%d phys cys,
201284194Sdelphij>>0740	short		>0		%d alts/cyl,
202284194Sdelphij>>0746	short		>0		%d interleave,
203284194Sdelphij>>0750	short		>0		%d data cyls,
204284194Sdelphij>>0752	short		>0		%d alt cyls,
205284194Sdelphij>>0754	short		>0		%d heads/partition,
206284194Sdelphij>>0756	short		>0		%d sectors/track,
207284194Sdelphij>>0764	long		>0		start cyl %d,
208284194Sdelphij>>0770	long		x		%d blocks
209284194Sdelphij# Is there a boot block written 1 sector in?
210284194Sdelphij>512    belong&077777777	0600407	\b, boot block present
211284194Sdelphij
212284194Sdelphij# Joerg Jenderek: Smart Boot Manager backup file is 25 (MSDOS) or 41 (LINUX) byte header + first sectors of disk
213284194Sdelphij# (http://btmgr.sourceforge.net/docs/user-guide-3.html)
214284194Sdelphij0		string	SBMBAKUP_	Smart Boot Manager backup file
215284194Sdelphij>9		string	x		\b, version %-5.5s
216284194Sdelphij>>14		string	=_		
217284194Sdelphij>>>15		string	x		%-.1s
218284194Sdelphij>>>>16		string	=_		\b.
219284194Sdelphij>>>>>17		string	x		\b%-.1s
220284194Sdelphij>>>>>>18	string	=_		\b.
221284194Sdelphij>>>>>>>19	string	x		\b%-.1s
222284194Sdelphij>>>22		ubyte	0		
223284194Sdelphij>>>>21		ubyte	x		\b, from drive 0x%x
224284194Sdelphij>>>22		ubyte	>0		
225284194Sdelphij>>>>21		string	x		\b, from drive %s
226284194Sdelphij>>>535		search/17	\x55\xAA	
227284194Sdelphij>>>>&-512	indirect	x	\b; contains 
228284194Sdelphij
229284194Sdelphij# updated by Joerg Jenderek at Nov 2012
230284194Sdelphij# DOS Emulator image is 128 byte, null right padded header + harddisc image
231284194Sdelphij0	string	DOSEMU\0			
232284194Sdelphij>0x27E	leshort	0xAA55			
233284194Sdelphij#offset is 128
234284194Sdelphij>>19	ubyte	128			
235284194Sdelphij>>>(19.b-1)	ubyte	0x0	DOS Emulator image
236284194Sdelphij>>>>7	ulelong	>0		\b, %u heads
237284194Sdelphij>>>>11	ulelong	>0		\b, %d sectors/track
238284194Sdelphij>>>>15	ulelong	>0		\b, %d cylinders
239284194Sdelphij>>>>128	indirect	x	\b; contains 
240284194Sdelphij
241284194Sdelphij# added by Joerg Jenderek at Nov 2012
242284194Sdelphij# http://www.thenakedpc.com/articles/v04/08/0408-05.html
243284194Sdelphij# Symantec (Peter Norton) Image.dat file consists of variable header, bootrecord, part of FAT and root directory data
244284194Sdelphij0	string	PNCIHISK\0		Norton Utilities disc image data
245284194Sdelphij# real x86 boot sector with jump instruction
246284194Sdelphij>509	search/1026	\x55\xAA\xeb	
247284194Sdelphij>>&-1	indirect	x		\b; contains 
248284194Sdelphij# http://file-extension.net/seeker/file_extension_dat
249284194Sdelphij0	string	PNCIUNDO		Norton Disk Doctor UnDo file
250284194Sdelphij#
251284194Sdelphij
252284194Sdelphij# DOS/MBR boot sector updated by Joerg Jenderek at Sep 2007,May 2011,2013
253284194Sdelphij# for any allowed sector sizes
254284194Sdelphij30		search/481	\x55\xAA	
255284194Sdelphij# to display DOS/MBR boot sector (40) before old one (strength=50+21),Syslinux bootloader (71),SYSLINUX MBR (37+36),NetBSD mbr (110),AdvanceMAME mbr (111)
256284194Sdelphij# DOS BPB information (70) and after DOS floppy (120) like in previous file version
257284194Sdelphij!:strength +65
258284194Sdelphij# for sector sizes < 512 Bytes
259284194Sdelphij>11		uleshort	<512		
260284194Sdelphij>>(11.s-2)	uleshort	0xAA55		DOS/MBR boot sector
261284194Sdelphij# for sector sizes with 512 or more Bytes
262284194Sdelphij>0x1FE		leshort		0xAA55		DOS/MBR boot sector
263284194Sdelphij
264284194Sdelphij# keep old DOS/MBR boot sector as dummy for mbr and bootloader displaying
265284194Sdelphij# only for sector sizes with 512 or more Bytes
266284194Sdelphij0x1FE          leshort         0xAA55         	DOS/MBR boot sector
267284194Sdelphij#
268284194Sdelphij# to display information (50) before DOS BPB (strength=70) and after DOS floppy (120) like in old file version
269284194Sdelphij!:strength +65
270284194Sdelphij>2		string		OSBS		OS/BS MBR
271284194Sdelphij# added by Joerg Jenderek at Feb 2013 according to http://thestarman.pcministry.com/asm/mbr/
272284194Sdelphij# and http://en.wikipedia.org/wiki/Master_Boot_Record
273284194Sdelphij# test for nearly all MS-DOS Master Boot Record initial program loader (IPL) is now done by 
274284194Sdelphij# characteristic assembler instructions: xor ax,ax;mov ss,ax;mov sp,7c00
275284194Sdelphij>0	search/2	\x33\xc0\x8e\xd0\xbc\x00\x7c	MS-MBR
276284194Sdelphij# Microsoft Windows 95A and early ( http://thestarman.pcministry.com/asm/mbr/STDMBR.htm )
277284194Sdelphij# assembler instructions: mov si,sp;push ax;pop es;push ax;pop ds;sti;cld
278284194Sdelphij>>8	ubequad		0x8bf45007501ffbfc		
279284194Sdelphij# http://thestarman.pcministry.com/asm/mbr/200MBR.htm
280284194Sdelphij>>>0x16	ubyte		0xF3				\b,DOS 2
281284194Sdelphij>>>>219	regex		Author\ -\ 			Author:
282284194Sdelphij# found "David Litton" , "A Pehrsson  "
283284194Sdelphij>>>>>&0	string		x				"%s"
284284194Sdelphij>>>0x16	ubyte		0xF2				
285284194Sdelphij# NEC MS-DOS 3.30 Rev. 3 . See http://thestarman.pcministry.com/asm/mbr/DOS33MBR.htm
286284194Sdelphij# assembler instructions: mov di,077c;cmp word ptrl[di],a55a;jnz
287284194Sdelphij>>>>0x22	ubequad	0xbf7c07813d5aa575		\b,NEC 3.3
288284194Sdelphij# version MS-DOS 3.30 til MS-Windows 95A (WinVer=4.00.1111)
289284194Sdelphij>>>>0x22	default	x				\b,D0S version 3.3-7.0
290284194Sdelphij# error messages are printed by assembler instructions: mov si,06nn;...;int 10 (0xBEnn06;...)
291284194Sdelphij# where nn is string offset varying for different languages
292284194Sdelphij# "Invalid partition table"				nn=0x8b for english version
293284194Sdelphij>>>>>(0x49.b)	string		Invalid\ partition\ table		english
294284194Sdelphij>>>>>(0x49.b)	string		Ung\201ltige\ Partitionstabelle		german
295284194Sdelphij>>>>>(0x49.b)	string		Table\ de\ partition\ invalide		french
296284194Sdelphij>>>>>(0x49.b)	string		Tabela\ de\ parti\207ao\ inv\240lida	portuguese
297284194Sdelphij>>>>>(0x49.b)	string		Tabla\ de\ partici\242n\ no\ v\240lida	spanish
298284194Sdelphij>>>>>(0x49.b)	string		Tavola\ delle\ partizioni\ non\ valida	italian
299284194Sdelphij>>>>>0x49	ubyte		>0			at offset 0x%x
300284194Sdelphij>>>>>>(0x49.b)	string		>\0			"%s"
301284194Sdelphij# "Error loading operating system"			nn=0xa3 for english version
302284194Sdelphij# "Fehler beim Laden des Betriebssystems"		nn=0xa7 for german version
303284194Sdelphij# "Erreur en chargeant syst\212me d'exploitation"	nn=0xa7 for french version
304284194Sdelphij# "Erro na inicializa\207ao do sistema operacional"	nn=0xa7 for portuguese Brazilian version
305284194Sdelphij# "Error al cargar sistema operativo"			nn=0xa8 for spanish version
306284194Sdelphij# "Errore durante il caricamento del sistema operativo"	nn=0xae for italian version
307284194Sdelphij>>>>>0x74	ubyte		>0			at offset 0x%x
308284194Sdelphij>>>>>>(0x74.b)	string		>\0			"%s"
309284194Sdelphij# "Missing operating system"				nn=0xc2 for english version
310284194Sdelphij# "Betriebssystem fehlt"				nn=0xcd for german version
311284194Sdelphij# "Syst\212me d'exploitation absent"			nn=0xd2 for french version
312284194Sdelphij# "Sistema operacional nao encontrado"			nn=0xd4 for portuguese Brazilian version
313284194Sdelphij# "Falta sistema operativo"				nn=0xca for spanish version
314284194Sdelphij# "Sistema operativo mancante"				nn=0xe2 for italian version
315284194Sdelphij>>>>>0x79	ubyte		>0			at offset 0x%x
316284194Sdelphij>>>>>>(0x79.b)	string		>\0			"%s"
317284194Sdelphij# Microsoft Windows 95B to XP (http://thestarman.pcministry.com/asm/mbr/95BMEMBR.htm)
318284194Sdelphij# assembler instructions: push ax;pop es;push  ax;pop ds;cld;mov si,7c1b
319284194Sdelphij>>8	ubequad		0x5007501ffcbe1b7c		
320284194Sdelphij# assembler instructions: rep;movsb;retf;mov si,07be;mov cl,04
321284194Sdelphij>>>24		ubequad	0xf3a4cbbebe07b104		9M
322284194Sdelphij# "Invalid partition table"				nn=0x10F for english version
323284194Sdelphij# "Ung\201ltige Partitionstabelle"				nn=0x10F for german version
324284194Sdelphij# "Table de partition erron\202e"				nn=0x10F for french version
325284194Sdelphij# "\216\257\245\340\240\346\250\256\255\255\240\357 \341\250\341\342\245\254\240 \255\245 \255\240\251\244\245\255\240"	nn=0x10F for russian version
326284194Sdelphij>>>>(0x3C.b+0x0FF)	string	Invalid\ partition\ table		english
327284194Sdelphij>>>>(0x3C.b+0x0FF)	string	Ung\201ltige\ Partitionstabelle		german
328284194Sdelphij>>>>(0x3C.b+0x0FF)	string	Table\ de\ partition\ erron\202e	french
329284194Sdelphij>>>>(0x3C.b+0x0FF)	string	\215\245\257\340\240\242\250\253\354\255\240\357\ \342\240\241\253\250\346\240	russian
330284194Sdelphij>>>>0x3C		ubyte	x			at offset 0x%x+0xFF
331284194Sdelphij>>>>(0x3C.b+0x0FF)	string	>\0			"%s"
332284194Sdelphij# "Error loading operating system"			nn=0x127 for english version
333284194Sdelphij# "Fehler beim Laden des Betriebssystems"		nn=0x12b for german version
334284194Sdelphij# "Erreur lors du chargement du syst\212me d'exploitation"	nn=0x12a for french version
335284194Sdelphij# "\216\350\250\241\252\240 \257\340\250 \247\240\243\340\343\247\252\245 \256\257\245\340\240\346\250\256\255\255\256\251 \341\250\341\342\245\254\353"	nn=0x12d for russian version
336284194Sdelphij>>>>0xBD		ubyte	x			at offset 0x1%x
337284194Sdelphij>>>>(0xBD.b+0x100)	string	>\0			"%s"
338284194Sdelphij# "Missing operating system"				nn=0x146 for english version
339284194Sdelphij# "Betriebssystem fehlt"				nn=0x151 for german version
340284194Sdelphij# "Syst\212me d'exploitation manquant"			nn=0x15e for french version
341284194Sdelphij# "\216\257\245\340\240\346\250\256\255\255\240\357 \341\250\341\342\245\254\240 \255\245 \255\240\251\244\245\255\240"	nn=0x156 for russian version
342284194Sdelphij>>>>0xA9		ubyte	x			at offset 0x1%x
343284194Sdelphij>>>>(0xA9.b+0x100)	string	>\0			"%s"
344284194Sdelphij# http://thestarman.pcministry.com/asm/mbr/Win2kmbr.htm
345284194Sdelphij# assembler instructions: rep;movsb;retf;mov BP,07be;mov cl,04
346284194Sdelphij>>>24		ubequad	0xf3a4cbbdbe07b104		XP
347284194Sdelphij# where xxyyzz are lower bits from offsets of error messages varying for different languages
348284194Sdelphij>>>>0x1B4	ubelong&0x00FFFFFF	0x002c4463	english
349284194Sdelphij>>>>0x1B4	ubelong&0x00FFFFFF	0x002c486e	german
350284194Sdelphij# "Invalid partition table"				xx=0x12C for english version
351284194Sdelphij# "Ung\201ltige Partitionstabelle"				xx=0x12C for german version
352284194Sdelphij>>>>0x1b5	ubyte		>0			at offset 0x1%x
353284194Sdelphij>>>>(0x1b5.b+0x100)	string	>\0			"%s"
354284194Sdelphij# "Error loading operating system"			yy=0x144 for english version
355284194Sdelphij# "Fehler beim Laden des Betriebssystems"		yy=0x148 for german version
356284194Sdelphij>>>>0x1b6	ubyte		>0			at offset 0x1%x
357284194Sdelphij>>>>(0x1b6.b+0x100)	string	>\0			"%s"
358284194Sdelphij# "Missing operating system"				zz=0x163 for english version
359284194Sdelphij# "Betriebssystem nicht vorhanden"			zz=0x16e for german version
360284194Sdelphij>>>>0x1b7	ubyte		>0			at offset 0x1%x
361284194Sdelphij>>>>(0x1b7.b+0x100)	string	>\0			"%s"
362284194Sdelphij# Microsoft Windows Vista or 7
363284194Sdelphij# assembler instructions: ..;mov ds,ax;mov si,7c00;mov di,..00
364284194Sdelphij>>8	ubequad		0xc08ed8be007cbf00		
365284194Sdelphij# Microsoft Windows Vista (http://thestarman.pcministry.com/asm/mbr/VistaMBR.htm)
366284194Sdelphij# assembler instructions: jnz 0729;cmp ebx,"TCPA"
367284194Sdelphij>>>0xEC		ubequad	0x753b6681fb544350		Vista
368284194Sdelphij# where xxyyzz are lower bits from offsets of error messages varying for different languages
369284194Sdelphij>>>>0x1B4	ubelong&0x00FFFFFF	0x00627a99	english
370284194Sdelphij#>>>>0x1B4	ubelong&0x00FFFFFF	?		german
371284194Sdelphij# "Invalid partition table"				xx=0x162 for english version
372284194Sdelphij# "Ung\201ltige Partitionstabelle"				xx=0x1?? for german version
373284194Sdelphij>>>>0x1b5	ubyte		>0			at offset 0x1%x
374284194Sdelphij>>>>(0x1b5.b+0x100)	string	>\0			"%s"
375284194Sdelphij# "Error loading operating system"			yy=0x17a for english version
376284194Sdelphij# "Fehler beim Laden des Betriebssystems"		yy= 0x1?? for german version
377284194Sdelphij>>>>0x1b6	ubyte		>0			at offset 0x1%x
378284194Sdelphij>>>>(0x1b6.b+0x100)	string	>\0			"%s"
379284194Sdelphij# "Missing operating system"				zz=0x199 for english version
380284194Sdelphij# "Betriebssystem nicht vorhanden"			zz=0x1?? for german version
381284194Sdelphij>>>>0x1b7	ubyte		>0			at offset 0x1%x
382284194Sdelphij>>>>(0x1b7.b+0x100)	string	>\0			"%s"
383284194Sdelphij# Microsoft Windows 7 (http://thestarman.pcministry.com/asm/mbr/W7MBR.htm)
384284194Sdelphij# assembler instructions: cmp ebx,"TCPA";cmp
385284194Sdelphij>>>0xEC		ubequad	0x6681fb5443504175		Windows 7
386284194Sdelphij# where xxyyzz are lower bits from offsets of error messages varying for different languages
387284194Sdelphij>>>>0x1B4	ubelong&0x00FFFFFF	0x00637b9a	english
388284194Sdelphij#>>>>0x1B4	ubelong&0x00FFFFFF	?		german
389284194Sdelphij# "Invalid partition table"				xx=0x163 for english version
390284194Sdelphij# "Ung\201ltige Partitionstabelle"				xx=0x1?? for german version
391284194Sdelphij>>>>0x1b5	ubyte		>0			at offset 0x1%x
392284194Sdelphij>>>>(0x1b5.b+0x100)	string	>\0			"%s"
393284194Sdelphij# "Error loading operating system"			yy=0x17b for english version
394284194Sdelphij# "Fehler beim Laden des Betriebssystems"		yy=0x1?? for german version
395284194Sdelphij>>>>0x1b6	ubyte		>0			at offset 0x1%x
396284194Sdelphij>>>>(0x1b6.b+0x100)	string	>\0			"%s"
397284194Sdelphij# "Missing operating system"				zz=0x19a for english version
398284194Sdelphij# "Betriebssystem nicht vorhanden"			zz=0x1?? for german version
399284194Sdelphij>>>>0x1b7	ubyte		>0			at offset 0x1%x
400284194Sdelphij>>>>(0x1b7.b+0x100)	string	>\0			"%s"
401284194Sdelphij# http://thestarman.pcministry.com/asm/mbr/Win2kmbr.htm#DiskSigs
402284194Sdelphij# http://en.wikipedia.org/wiki/MBR_disk_signature#ID
403284194Sdelphij>>0x1b8	ulelong		>0				\b, disk signature 0x%-.4x
404284194Sdelphij# driveID/timestamp for Win 95B,98,98SE and ME. See http://thestarman.pcministry.com/asm/mbr/mystery.htm
405284194Sdelphij>>0xDA	uleshort		0			
406284194Sdelphij>>>0xDC 	ulelong		>0			\b, created
407284194Sdelphij# physical drive number (0x80-0xFF) when the Windows wrote that byte to the drive
408284194Sdelphij>>>>0xDC	ubyte		x			with driveID 0x%x
409284194Sdelphij# hours, minutes and seconds 
410284194Sdelphij>>>>0xDf	ubyte		x			at %x
411284194Sdelphij>>>>0xDe	ubyte		x			\b:%x
412284194Sdelphij>>>>0xDd	ubyte		x			\b:%x
413284194Sdelphij# special case for Microsoft MS-DOS 3.21 spanish
414284194Sdelphij# assembler instructions: cli;mov $0x30,%ax;mov %ax,%ss;mov 
415284194Sdelphij>0	ubequad		0xfab830008ed0bc00		
416284194Sdelphij# assembler instructions: $0x1f00,%sp;mov $0x80cb,%di;add %cl,(%bx,%si);in (%dx),%ax;mov 
417284194Sdelphij>>8	ubequad		0x1fbfcb800008ed8		MS-MBR,D0S version 3.21 spanish
418284194Sdelphij# Microsoft MBR IPL end
419284194Sdelphij
420284194Sdelphij# dr-dos with some upper-, lowercase variants
421284194Sdelphij>0x9D	string	Invalid\ partition\ table$	
422284194Sdelphij>>181	string	No\ Operating\ System$		
423284194Sdelphij>>>201	string	Operating\ System\ load\ error$	\b, DR-DOS MBR, Version 7.01 to 7.03
424284194Sdelphij>0x9D	string	Invalid\ partition\ table$	
425284194Sdelphij>>181	string	No\ operating\ system$		
426284194Sdelphij>>>201	string	Operating\ system\ load\ error$	\b, DR-DOS MBR, Version 7.01 to 7.03
427284194Sdelphij>342	string	Invalid\ partition\ table$	
428284194Sdelphij>>366	string	No\ operating\ system$		
429284194Sdelphij>>>386	string	Operating\ system\ load\ error$	\b, DR-DOS MBR, version 7.01 to 7.03
430284194Sdelphij>295	string	NEWLDR\0				
431284194Sdelphij>>302	string	Bad\ PT\ $				
432284194Sdelphij>>>310	string	No\ OS\ $				
433284194Sdelphij>>>>317	string	OS\ load\ err$				
434284194Sdelphij>>>>>329	string	Moved\ or\ missing\ IBMBIO.LDR\n\r	
435284194Sdelphij>>>>>>358	string	Press\ any\ key\ to\ continue.\n\r$	
436284194Sdelphij>>>>>>>387	string	Copyright\ (c)\ 1984,1998	
437284194Sdelphij>>>>>>>>411	string	Caldera\ Inc.\0		\b, DR-DOS MBR (IBMBIO.LDR)
438284194Sdelphij#
439284194Sdelphij# tests for different MS-DOS Master Boot Records (MBR) moved and merged
440284194Sdelphij#
441284194Sdelphij#>0x145	string	Default:\ F				\b, FREE-DOS MBR
442284194Sdelphij#>0x14B	string	Default:\ F				\b, FREE-DOS 1.0 MBR
443284194Sdelphij>0x145	search/7	Default:\ F			\b, FREE-DOS MBR
444284194Sdelphij#>>313		string	F0\ .\ .\ .			
445284194Sdelphij#>>>322		string	disk\ 1				
446284194Sdelphij#>>>>382	string	FAT3				
447284194Sdelphij>64	string	no\ active\ partition\ found	
448284194Sdelphij>>96	string	read\ error\ while\ reading\ drive	\b, FREE-DOS Beta 0.9 MBR
449284194Sdelphij# Ranish Partition Manager http://www.ranish.com/part/
450284194Sdelphij>387	search/4	\0\ Error!\r			
451284194Sdelphij>>378	search/7	Virus! 				
452284194Sdelphij>>>397	search/4	Booting\ 			
453284194Sdelphij>>>>408	search/4	HD1/\0	 			\b, Ranish MBR (
454284194Sdelphij>>>>>416	string	Writing\ changes...		\b2.37
455284194Sdelphij>>>>>>438	ubyte		x			\b,0x%x dots
456284194Sdelphij>>>>>>440	ubyte		>0			\b,virus check
457284194Sdelphij>>>>>>441	ubyte		>0			\b,partition %c
458284194Sdelphij#2.38,2.42,2.44
459284194Sdelphij>>>>>416	string	!Writing\ changes...		\b
460284194Sdelphij>>>>>>418	ubyte	1				\bvirus check,
461284194Sdelphij>>>>>>419	ubyte	x				\b0x%x seconds
462284194Sdelphij>>>>>>420	ubyte&0x0F	>0			\b,partition
463284194Sdelphij>>>>>>>420	ubyte&0x0F	<5			\b %x
464284194Sdelphij>>>>>>>420	ubyte&0x0F	0Xf			\b ask
465284194Sdelphij>>>>>420	ubyte		x			\b)
466284194Sdelphij#
467284194Sdelphij# SYSLINUX MBR moved
468284194Sdelphij# http://www.acronis.de/
469284194Sdelphij>362	string	MBR\ Error\ \0\r			
470284194Sdelphij>>376	string	ress\ any\ key\ to\ 			
471284194Sdelphij>>>392	string	boot\ from\ floppy...\0			\b, Acronis MBR
472284194Sdelphij# added by Joerg Jenderek
473284194Sdelphij# http://www.visopsys.org/
474284194Sdelphij# http://partitionlogic.org.uk/
475284194Sdelphij>309	string	No\ bootable\ partition\ found\r	
476284194Sdelphij>>339	string	I/O\ Error\ reading\ boot\ sector\r	\b, Visopsys MBR
477284194Sdelphij>349	string	No\ bootable\ partition\ found\r	
478284194Sdelphij>>379	string	I/O\ Error\ reading\ boot\ sector\r	\b, simple Visopsys MBR
479284194Sdelphij# bootloader, bootmanager
480284194Sdelphij>0x40	string	SBML				
481284194Sdelphij# label with 11 characters of FAT 12 bit filesystem
482284194Sdelphij>>43	string	SMART\ BTMGR			
483284194Sdelphij>>>430	string	SBMK\ Bad!\r			\b, Smart Boot Manager
484284194Sdelphij# OEM-ID not always "SBM"
485284194Sdelphij#>>>>3	strings	SBM				
486284194Sdelphij>>>>6	string	>\0                             \b, version %s
487284194Sdelphij>382	string	XOSLLOADXCF			\b, eXtended Operating System Loader
488284194Sdelphij>6	string	LILO				\b, LInux i386 boot LOader
489284194Sdelphij>>120	string	LILO				\b, version 22.3.4 SuSe
490284194Sdelphij>>172	string	LILO				\b, version 22.5.8 Debian
491284194Sdelphij# updated by Joerg Jenderek at Oct 2008
492284194Sdelphij# variables according to grub-0.97/stage1/stage1.S or
493284194Sdelphij# http://www.gnu.org/software/grub/manual/grub.html#Embedded-data
494284194Sdelphij# usual values are marked with comments to get only informations of strange GRUB loaders
495284194Sdelphij>342		search/60	\0Geom\0	
496284194Sdelphij#>0		ulelong		x		%x=0x009048EB ,	0x2a9048EB  0
497284194Sdelphij>>0x41		ubyte		<2		
498284194Sdelphij>>>0x3E		ubyte		>2		\b; GRand Unified Bootloader
499284194Sdelphij# 0x3 for 0.5.95,0.93,0.94,0.96 0x4 for 1.90 
500284194Sdelphij>>>>0x3E	ubyte		x		\b, stage1 version 0x%x
501284194Sdelphij#If it is 0xFF, use a drive passed by BIOS
502284194Sdelphij>>>>0x40	ubyte		<0xFF		\b, boot drive 0x%x
503284194Sdelphij# in most case 0,1,0x2e for GRUB 0.5.95
504284194Sdelphij>>>>0x41	ubyte		>0		\b, LBA flag 0x%x
505284194Sdelphij>>>>0x42	uleshort	<0x8000		\b, stage2 address 0x%x
506284194Sdelphij#>>>>0x42	uleshort	=0x8000		\b, stage2 address 0x%x (usual)
507284194Sdelphij>>>>0x42	uleshort	>0x8000		\b, stage2 address 0x%x
508284194Sdelphij#>>>>0x44	ulelong		=1		\b, 1st sector stage2 0x%x (default)
509284194Sdelphij>>>>0x44	ulelong		>1		\b, 1st sector stage2 0x%x
510284194Sdelphij>>>>0x48	uleshort	<0x800		\b, stage2 segment 0x%x
511284194Sdelphij#>>>>0x48	uleshort	=0x800		\b, stage2 segment 0x%x (usual)
512284194Sdelphij>>>>0x48	uleshort	>0x800		\b, stage2 segment 0x%x
513284194Sdelphij>>>>402		string	Geom\0Hard\ Disk\0Read\0\ Error\0
514284194Sdelphij>>>>>394	string	stage1			\b, GRUB version 0.5.95
515284194Sdelphij>>>>382		string	Geom\0Hard\ Disk\0Read\0\ Error\0
516284194Sdelphij>>>>>376	string	GRUB\ \0		\b, GRUB version 0.93 or 1.94
517284194Sdelphij>>>>383		string	Geom\0Hard\ Disk\0Read\0\ Error\0
518284194Sdelphij>>>>>377	string	GRUB\ \0		\b, GRUB version 0.94
519284194Sdelphij>>>>385		string	Geom\0Hard\ Disk\0Read\0\ Error\0
520284194Sdelphij>>>>>379	string	GRUB\ \0		\b, GRUB version 0.95 or 0.96
521284194Sdelphij>>>>391		string	Geom\0Hard\ Disk\0Read\0\ Error\0
522284194Sdelphij>>>>>385	string	GRUB\ \0		\b, GRUB version 0.97
523284194Sdelphij# unknown version
524284194Sdelphij>>>343		string	Geom\0Read\0\ Error\0	
525284194Sdelphij>>>>321		string	Loading\ stage1.5	\b, GRUB version x.y
526284194Sdelphij>>>380		string	Geom\0Hard\ Disk\0Read\0\ Error\0
527284194Sdelphij>>>>374		string	GRUB\ \0		\b, GRUB version n.m
528284194Sdelphij# SYSLINUX bootloader moved
529284194Sdelphij>395	string	chksum\0\ ERROR!\0		\b, Gujin bootloader
530284194Sdelphij# http://www.bcdwb.de/bcdw/index_e.htm
531284194Sdelphij>3	string	BCDL				
532284194Sdelphij>>498	string	BCDL\ \ \ \ BIN			\b, Bootable CD Loader (1.50Z)
533284194Sdelphij# mbr partition table entries updated by Joerg Jenderek at Sep 2013
534284194Sdelphij# skip Norton Utilities disc image data
535284194Sdelphij>3		string		!IHISK		
536284194Sdelphij# skip Linux style boot sector starting with assember instructions mov 0x7c0,ax;
537284194Sdelphij>>0		belong		!0xb8c0078e		
538284194Sdelphij# not Linux kernel 
539284194Sdelphij>>>514		string		!HdrS			
540284194Sdelphij# not BeOS
541284194Sdelphij>>>>422		string		!Be\ Boot\ Loader	
542284194Sdelphij>>>>>32769	string    CD001
543284194Sdelphij>>>>>>0	use cdrom
544284194Sdelphij# jump over BPB instruction implies DOS bootsector or AdvanceMAME mbr 
545284194Sdelphij>>>>>0		ubelong&0xFD000000	=0xE9000000	
546284194Sdelphij# AdvanceMAME mbr
547284194Sdelphij>>>>>>(1.b+2)	ubequad		0xfa31c08ed88ec08e	
548284194Sdelphij>>>>>>>446	use		partition-table
549284194Sdelphij# mbr, Norton Utilities disc image data, or 2nd,etc. sector of x86 bootloader
550284194Sdelphij>>>>>0		ubelong&0xFD000000	!0xE9000000	
551284194Sdelphij# skip FSInfosector
552284194Sdelphij>>>>>>0		string		!RRaA		
553284194Sdelphij# skip 3rd sector of MS x86 bootloader with assember instructions cli;MOVZX EAX,BYTE PTR [BP+10];MOV ECX,
554284194Sdelphij# http://thestarman.pcministry.com/asm/mbr/MSWIN41.htm
555284194Sdelphij>>>>>>>0	ubequad		!0xfa660fb64610668b	
556284194Sdelphij# skip 13rd sector of MS x86 bootloader
557284194Sdelphij>>>>>>>>0	ubequad		!0x660fb64610668b4e	
558284194Sdelphij# skip sector starting with DOS new line
559284194Sdelphij>>>>>>>>>0	string		!\r\n			
560284194Sdelphij# allowed active flag 0,80h-FFh
561284194Sdelphij>>>>>>>>>>446	ubyte		0			
562284194Sdelphij>>>>>>>>>>>446	use		partition-table
563284194Sdelphij>>>>>>>>>>446	ubyte		>0x7F			
564284194Sdelphij>>>>>>>>>>>446	use		partition-table
565284194Sdelphij# TODO: test for extended bootrecord (ebr) moved and merged with mbr partition table entries
566284194Sdelphij# mbr partition table entries end
567284194Sdelphij# http://www.acronis.de/
568284194Sdelphij#FAT label=ACRONIS\ SZ
569284194Sdelphij#OEM-ID=BOOTWIZ0
570284194Sdelphij>442	string	Non-system\ disk,\ 	
571284194Sdelphij>>459	string	press\ any\ key...\x7\0		\b, Acronis Startup Recovery Loader
572284194Sdelphij# updated by Joerg Jenderek at Nov 2012, Sep 2013
573284194Sdelphij# DOS names like F11.SYS or BOOTWIZ.SYS are 8 right space padded bytes+3 bytes
574284194Sdelphij# display 1 space
575284194Sdelphij>>>447	ubyte	x		\b 
576284194Sdelphij>>>477	use	DOS-filename
577284194Sdelphij#
578284194Sdelphij>185	string	FDBOOT\ Version\ 			
579284194Sdelphij>>204	string	\rNo\ Systemdisk.\ 			
580284194Sdelphij>>>220	string	Booting\ from\ harddisk.\n\r		
581284194Sdelphij>>>245	string	Cannot\ load\ from\ harddisk.\n\r	
582284194Sdelphij>>>>273 string	Insert\ Systemdisk\ 			
583284194Sdelphij>>>>>291 string and\ press\ any\ key.\n\r		\b, FDBOOT harddisk Bootloader
584284194Sdelphij>>>>>>200 string	>\0                             \b, version %-3s
585284194Sdelphij>242	string	Bootsector\ from\ C.H.\ Hochst\204	
586284194Sdelphij# http://freecode.com/projects/dosfstools	dosfstools-n.m/src/mkdosfs.c
587284194Sdelphij# updated by Joerg Jenderek at Nov 2012. Use search directive with offset instead of string
588284194Sdelphij# skip name "C.H. Hochstaetter" partly because it is sometimes written without umlaut
589284194Sdelphij>242	search/127	Bootsector\ from\ C.H.\ Hochst			
590284194Sdelphij>>278	search/127	No\ Systemdisk.\ Booting\ from\ harddisk	
591284194Sdelphij# followed by variants with point,CR-NL or NL-CR
592284194Sdelphij>>>208	search/261	Cannot\ load\ from\ harddisk.			
593284194Sdelphij# followed by variants CR-NL or NL-CR
594284194Sdelphij>>>>236	search/235	Insert\ Systemdisk\ and\ press\ any\ key.	
595284194Sdelphij# followed by variants with point,CR-NL or NL-CR
596284194Sdelphij>>>>>180	search/96	Disk\ formatted\ with\ WinImage\ 	\b, WinImage harddisk Bootloader
597284194Sdelphij# followed by string like "6.50 (c) 1993-2004 Gilles Vollant"
598284194Sdelphij>>>>>>&0	string		x 					\b, version %-4.4s
599284194Sdelphij>(1.b+2)	ubyte		0xe			
600284194Sdelphij>>(1.b+3)	ubyte		0x1f			
601284194Sdelphij>>>(1.b+4)	ubyte		0xbe			
602284194Sdelphij# message offset found at (1.b+5) is 0x77 for FAT32 or 0x5b for others
603284194Sdelphij>>>>(1.b+5)	ubyte&0xd3	0x53			
604284194Sdelphij>>>>>(1.b+6)	ubyte		0x7c			
605284194Sdelphij# assembler instructions: lodsb;and al,al;jz 0xb;push si;mov ah,
606284194Sdelphij>>>>>>(1.b+7)	ubyte		0xac			
607284194Sdelphij>>>>>>>(1.b+8)	ubyte		0x22			
608284194Sdelphij>>>>>>>>(1.b+9)	ubyte		0xc0			
609284194Sdelphij>>>>>>>>>(1.b+10)	ubyte	0x74			
610284194Sdelphij>>>>>>>>>>(1.b+11)	ubyte	0x0b			
611284194Sdelphij>>>>>>>>>>>(1.b+12)	ubyte	0x56			
612284194Sdelphij>>>>>>>>>>>>(1.b+13)	ubyte	0xb4			\b, mkdosfs boot message display
613284194Sdelphij# FAT1X version
614284194Sdelphij>>>>>>>>>>>>>(1.b+5)	ubyte	0x5b			
615284194Sdelphij>>>>>>>>>>>>>>0x5b	string	>\0			"%-s"
616284194Sdelphij# FAT32 version
617284194Sdelphij>>>>>>>>>>>>>(1.b+5)	ubyte	0x77			
618284194Sdelphij>>>>>>>>>>>>>>0x77	string	>\0			"%-s"
619284194Sdelphij>214	string	Please\ try\ to\ install\ FreeDOS\ 	\b, DOS Emulator boot message display
620284194Sdelphij#>>244	string	from\ dosemu-freedos-*-bin.tgz\r	
621284194Sdelphij#>>>170	string	Sorry,\ could\ not\ load\ an\ 		
622284194Sdelphij#>>>>195	string	operating\ system.\r\n		
623284194Sdelphij#
624284194Sdelphij>103	string	This\ is\ not\ a\ bootable\ disk.\ 	
625284194Sdelphij>>132	string	Please\ insert\ a\ bootable\ 		
626284194Sdelphij>>>157	string	floppy\ and\r\n				
627284194Sdelphij>>>>169	string	press\ any\ key\ to\ try\ again...\r	\b, FREE-DOS message display
628284194Sdelphij#
629284194Sdelphij>66	string	Solaris\ Boot\ Sector    		
630284194Sdelphij>>99	string	Incomplete\ MDBoot\ load.		
631284194Sdelphij>>>89	string	Version 				\b, Sun Solaris Bootloader
632284194Sdelphij>>>>97	byte	x					version %c
633284194Sdelphij#
634284194Sdelphij>408	string	OS/2\ !!\ SYS01475\r\0			
635284194Sdelphij>>429	string	OS/2\ !!\ SYS02025\r\0			
636284194Sdelphij>>>450	string	OS/2\ !!\ SYS02027\r\0			
637284194Sdelphij>>>469	string	OS2BOOT\ \ \ \ 				\b, IBM OS/2 Warp bootloader
638284194Sdelphij#
639284194Sdelphij>409	string	OS/2\ !!\ SYS01475\r\0			
640284194Sdelphij>>430	string	OS/2\ !!\ SYS02025\r\0			
641284194Sdelphij>>>451	string	OS/2\ !!\ SYS02027\r\0			
642284194Sdelphij>>>470	string	OS2BOOT\ \ \ \ 				\b, IBM OS/2 Warp Bootloader
643284194Sdelphij>112		string	This\ disk\ is\ not\ bootable\r			
644284194Sdelphij>>142		string	If\ you\ wish\ to\ make\ it\ bootable		
645284194Sdelphij>>>176		string	run\ the\ DOS\ program\ SYS\  			
646284194Sdelphij>>>200		string	after\ the\r					
647284194Sdelphij>>>>216		string	system\ has\ been\ loaded\r\n			
648284194Sdelphij>>>>>242	string	Please\ insert\ a\ DOS\ diskette\ 		
649284194Sdelphij>>>>>271	string	into\r\n\ the\ drive\ and\ 			
650284194Sdelphij>>>>>>292	string	strike\ any\ key...\0		\b, IBM OS/2 Warp message display
651284194Sdelphij# XP
652284194Sdelphij>430	string	NTLDR\ is\ missing\xFF\r\n		
653284194Sdelphij>>449	string	Disk\ error\xFF\r\n			
654284194Sdelphij>>>462	string	Press\ any\ key\ to\ restart\r		\b, Microsoft Windows XP Bootloader
655284194Sdelphij# DOS names like NTLDR,CMLDR,$LDR$ are 8 right space padded bytes+3 bytes
656284194Sdelphij>>>>417		ubyte&0xDF	>0			
657284194Sdelphij>>>>>417	string		x			%-.5s
658284194Sdelphij>>>>>>422	ubyte&0xDF	>0			
659284194Sdelphij>>>>>>>422	string		x 			\b%-.3s
660284194Sdelphij>>>>>425	ubyte&0xDF	>0			
661284194Sdelphij>>>>>>425	string		>\ 			\b.%-.3s
662284194Sdelphij#
663284194Sdelphij>>>>371		ubyte		>0x20			
664284194Sdelphij>>>>>368	ubyte&0xDF	>0			
665284194Sdelphij>>>>>>368	string		x 			%-.5s
666284194Sdelphij>>>>>>>373	ubyte&0xDF	>0			
667284194Sdelphij>>>>>>>>373	string		x 			\b%-.3s
668284194Sdelphij>>>>>>376	ubyte&0xDF	>0			
669284194Sdelphij>>>>>>>376	string		x 			\b.%-.3s
670284194Sdelphij#
671284194Sdelphij>430	string	NTLDR\ nicht\ gefunden\xFF\r\n		
672284194Sdelphij>>453	string	Datentr\204gerfehler\xFF\r\n		
673284194Sdelphij>>>473	string	Neustart\ mit\ beliebiger\ Taste\r	\b, Microsoft Windows XP Bootloader (german)
674284194Sdelphij>>>>417		ubyte&0xDF	>0			
675284194Sdelphij>>>>>417	string		x			%-.5s
676284194Sdelphij>>>>>>422	ubyte&0xDF	>0			
677284194Sdelphij>>>>>>>422	string		x 			\b%-.3s
678284194Sdelphij>>>>>425	ubyte&0xDF	>0			
679284194Sdelphij>>>>>>425	string		>\ 			\b.%-.3s
680284194Sdelphij# offset variant
681284194Sdelphij>>>>379	string	\0					
682284194Sdelphij>>>>>368	ubyte&0xDF	>0			
683284194Sdelphij>>>>>>368	string		x 			%-.5s
684284194Sdelphij>>>>>>>373	ubyte&0xDF	>0			
685284194Sdelphij>>>>>>>>373	string		x 			\b%-.3s
686284194Sdelphij#
687284194Sdelphij>430	string	NTLDR\ fehlt\xFF\r\n			
688284194Sdelphij>>444	string	Datentr\204gerfehler\xFF\r\n		
689284194Sdelphij>>>464	string	Neustart\ mit\ beliebiger\ Taste\r	\b, Microsoft Windows XP Bootloader (2.german)
690284194Sdelphij>>>>417		ubyte&0xDF	>0			
691284194Sdelphij>>>>>417	string		x			%-.5s
692284194Sdelphij>>>>>>422	ubyte&0xDF	>0			
693284194Sdelphij>>>>>>>422	string		x 			\b%-.3s
694284194Sdelphij>>>>>425	ubyte&0xDF	>0			
695284194Sdelphij>>>>>>425	string		>\ 			\b.%-.3s
696284194Sdelphij# variant
697284194Sdelphij>>>>371		ubyte		>0x20			
698284194Sdelphij>>>>>368	ubyte&0xDF	>0			
699284194Sdelphij>>>>>>368	string		x 			%-.5s
700284194Sdelphij>>>>>>>373	ubyte&0xDF	>0			
701284194Sdelphij>>>>>>>>373	string		x 			\b%-.3s
702284194Sdelphij>>>>>>376	ubyte&0xDF	>0			
703284194Sdelphij>>>>>>>376	string		x 			\b.%-.3s
704284194Sdelphij#
705284194Sdelphij>430	string	NTLDR\ fehlt\xFF\r\n			
706284194Sdelphij>>444	string	Medienfehler\xFF\r\n			
707284194Sdelphij>>>459	string	Neustart:\ Taste\ dr\201cken\r		\b, Microsoft Windows XP Bootloader (3.german)
708284194Sdelphij>>>>371		ubyte		>0x20			
709284194Sdelphij>>>>>368	ubyte&0xDF	>0			
710284194Sdelphij>>>>>>368	string		x 			%-.5s
711284194Sdelphij>>>>>>>373	ubyte&0xDF	>0			
712284194Sdelphij>>>>>>>>373	string		x 			\b%-.3s
713284194Sdelphij>>>>>>376	ubyte&0xDF	>0			
714284194Sdelphij>>>>>>>376	string		x 			\b.%-.3s
715284194Sdelphij# variant
716284194Sdelphij>>>>417		ubyte&0xDF	>0			
717284194Sdelphij>>>>>417	string		x			%-.5s
718284194Sdelphij>>>>>>422	ubyte&0xDF	>0			
719284194Sdelphij>>>>>>>422	string		x 			\b%-.3s
720284194Sdelphij>>>>>425	ubyte&0xDF	>0			
721284194Sdelphij>>>>>>425	string		>\ 			\b.%-.3s
722284194Sdelphij#
723284194Sdelphij>430	string	Datentr\204ger\ entfernen\xFF\r\n	
724284194Sdelphij>>454	string	Medienfehler\xFF\r\n			
725284194Sdelphij>>>469	string	Neustart:\ Taste\ dr\201cken\r		\b, Microsoft Windows XP Bootloader (4.german)
726284194Sdelphij>>>>379		string		\0			
727284194Sdelphij>>>>>368	ubyte&0xDF	>0			
728284194Sdelphij>>>>>>368	string		x 			%-.5s
729284194Sdelphij>>>>>>>373	ubyte&0xDF	>0			
730284194Sdelphij>>>>>>>>373	string		x 			\b%-.3s
731284194Sdelphij>>>>>>376	ubyte&0xDF	>0			
732284194Sdelphij>>>>>>>376	string		x 			\b.%-.3s
733284194Sdelphij# variant
734284194Sdelphij>>>>417		ubyte&0xDF	>0			
735284194Sdelphij>>>>>417	string		x			%-.5s
736284194Sdelphij>>>>>>422	ubyte&0xDF	>0			
737284194Sdelphij>>>>>>>422	string		x 			\b%-.3s
738284194Sdelphij>>>>>425	ubyte&0xDF	>0			
739284194Sdelphij>>>>>>425	string		>\ 			\b.%-.3s
740284194Sdelphij#
741284194Sdelphij
742284194Sdelphij#>3	string	NTFS\ \ \ \ 				
743284194Sdelphij>389	string	Fehler\ beim\ Lesen\ 
744284194Sdelphij>>407	string	des\ Datentr\204gers
745284194Sdelphij>>>426	string	NTLDR\ fehlt				
746284194Sdelphij>>>>440	string	NTLDR\ ist\ komprimiert
747284194Sdelphij>>>>>464 string	Neustart\ mit\ Strg+Alt+Entf\r		\b, Microsoft Windows XP Bootloader NTFS (german)
748284194Sdelphij#>3	string	NTFS\ \ \ \ 				
749284194Sdelphij>313	string	A\ disk\ read\ error\ occurred.\r
750284194Sdelphij>>345	string	A\ kernel\ file\ is\ missing\ 	
751284194Sdelphij>>>370	string	from\ the\ disk.\r		
752284194Sdelphij>>>>484	string	NTLDR\ is\ compressed		
753284194Sdelphij>>>>>429 string	Insert\ a\ system\ diskette\ 	
754284194Sdelphij>>>>>>454 string and\ restart\r\nthe\ system.\r		\b, Microsoft Windows XP Bootloader NTFS
755284194Sdelphij# DOS loader variants different languages,offsets
756284194Sdelphij>472	ubyte&0xDF	>0
757284194Sdelphij>>389	string	Invalid\ system\ disk\xFF\r\n		
758284194Sdelphij>>>411	string	Disk\ I/O\ error			
759284194Sdelphij>>>>428	string	Replace\ the\ disk,\ and\ 		
760284194Sdelphij>>>>>455 string	press\ any\ key				\b, Microsoft Windows 98 Bootloader
761284194Sdelphij#IO.SYS
762284194Sdelphij>>>>>>472	ubyte&0xDF	>0			
763284194Sdelphij>>>>>>>472	string		x 			\b %-.2s
764284194Sdelphij>>>>>>>>474	ubyte&0xDF	>0			
765284194Sdelphij>>>>>>>>>474	string		x 			\b%-.5s
766284194Sdelphij>>>>>>>>>>479	ubyte&0xDF	>0			
767284194Sdelphij>>>>>>>>>>>479 string		x 			\b%-.1s
768284194Sdelphij>>>>>>>480	ubyte&0xDF	>0			
769284194Sdelphij>>>>>>>>480	string		x 			\b.%-.3s
770284194Sdelphij#MSDOS.SYS
771284194Sdelphij>>>>>>>483	ubyte&0xDF	>0			\b+
772284194Sdelphij>>>>>>>>483	string		x 			\b%-.5s
773284194Sdelphij>>>>>>>>>488	ubyte&0xDF	>0			
774284194Sdelphij>>>>>>>>>>488	string		x 			\b%-.3s
775284194Sdelphij>>>>>>>>491	ubyte&0xDF	>0			
776284194Sdelphij>>>>>>>>>491	string		x 			\b.%-.3s
777284194Sdelphij#
778284194Sdelphij>>390	string	Invalid\ system\ disk\xFF\r\n		
779284194Sdelphij>>>412	string	Disk\ I/O\ error\xFF\r\n		
780284194Sdelphij>>>>429	string	Replace\ the\ disk,\ and\ 		
781284194Sdelphij>>>>>451 string	then\ press\ any\ key\r			\b, Microsoft Windows 98 Bootloader
782284194Sdelphij>>388	string	Ungueltiges\ System\ \xFF\r\n		
783284194Sdelphij>>>410	string	E/A-Fehler\ \ \ \ \xFF\r\n		
784284194Sdelphij>>>>427	string	Datentraeger\ wechseln\ und\ 		
785284194Sdelphij>>>>>453 string	Taste\ druecken\r			\b, Microsoft Windows 95/98/ME Bootloader (german)
786284194Sdelphij#WINBOOT.SYS only not spaces (0xDF)
787284194Sdelphij>>>>>>497	ubyte&0xDF	>0			
788284194Sdelphij>>>>>>>497	string		x 			%-.5s
789284194Sdelphij>>>>>>>>502	ubyte&0xDF	>0			
790284194Sdelphij>>>>>>>>>502	string		x 			\b%-.1s
791284194Sdelphij>>>>>>>>>>503	ubyte&0xDF	>0			
792284194Sdelphij>>>>>>>>>>>503	string		x 			\b%-.1s
793284194Sdelphij>>>>>>>>>>>>504	ubyte&0xDF	>0			
794284194Sdelphij>>>>>>>>>>>>>504 string		x 			\b%-.1s
795284194Sdelphij>>>>>>505	ubyte&0xDF	>0			
796284194Sdelphij>>>>>>>505	string		x 			\b.%-.3s
797284194Sdelphij#IO.SYS
798284194Sdelphij>>>>>>472	ubyte&0xDF	>0			or
799284194Sdelphij>>>>>>>472	string		x 			\b %-.2s
800284194Sdelphij>>>>>>>>474	ubyte&0xDF	>0			
801284194Sdelphij>>>>>>>>>474	string		x 			\b%-.5s
802284194Sdelphij>>>>>>>>>>479	ubyte&0xDF	>0			
803284194Sdelphij>>>>>>>>>>>479 string		x 			\b%-.1s
804284194Sdelphij>>>>>>>480	ubyte&0xDF	>0			
805284194Sdelphij>>>>>>>>480	string		x 			\b.%-.3s
806284194Sdelphij#MSDOS.SYS
807284194Sdelphij>>>>>>>483	ubyte&0xDF	>0			\b+
808284194Sdelphij>>>>>>>>483	string		x 			\b%-.5s
809284194Sdelphij>>>>>>>>>488	ubyte&0xDF	>0			
810284194Sdelphij>>>>>>>>>>488	string		x 			\b%-.3s
811284194Sdelphij>>>>>>>>491	ubyte&0xDF	>0			
812284194Sdelphij>>>>>>>>>491	string		x 			\b.%-.3s
813284194Sdelphij#
814284194Sdelphij>>390	string	Ungueltiges\ System\ \xFF\r\n		
815284194Sdelphij>>>412	string	E/A-Fehler\ \ \ \ \xFF\r\n		
816284194Sdelphij>>>>429	string	Datentraeger\ wechseln\ und\ 		
817284194Sdelphij>>>>>455 string	Taste\ druecken\r			\b, Microsoft Windows 95/98/ME Bootloader (German)
818284194Sdelphij#WINBOOT.SYS only not spaces (0xDF)
819284194Sdelphij>>>>>>497	ubyte&0xDF	>0			
820284194Sdelphij>>>>>>>497	string		x 			%-.7s
821284194Sdelphij>>>>>>>>504	ubyte&0xDF	>0			
822284194Sdelphij>>>>>>>>>504	string		x 			\b%-.1s
823284194Sdelphij>>>>>>505	ubyte&0xDF	>0			
824284194Sdelphij>>>>>>>505	string		x 			\b.%-.3s
825284194Sdelphij#IO.SYS
826284194Sdelphij>>>>>>472	ubyte&0xDF	>0			or
827284194Sdelphij>>>>>>>472	string		x 			\b %-.2s
828284194Sdelphij>>>>>>>>474	ubyte&0xDF	>0			
829284194Sdelphij>>>>>>>>>474	string		x 			\b%-.6s
830284194Sdelphij>>>>>>>480	ubyte&0xDF	>0			
831284194Sdelphij>>>>>>>>480	string		x 			\b.%-.3s
832284194Sdelphij#MSDOS.SYS
833284194Sdelphij>>>>>>>483	ubyte&0xDF	>0			\b+
834284194Sdelphij>>>>>>>>483	string		x 			\b%-.5s
835284194Sdelphij>>>>>>>>>488	ubyte&0xDF	>0			
836284194Sdelphij>>>>>>>>>>488	string		x 			\b%-.3s
837284194Sdelphij>>>>>>>>491	ubyte&0xDF	>0			
838284194Sdelphij>>>>>>>>>491	string		x 			\b.%-.3s
839284194Sdelphij#
840284194Sdelphij>>389	string	Ungueltiges\ System\ \xFF\r\n		
841284194Sdelphij>>>411	string	E/A-Fehler\ \ \ \ \xFF\r\n		
842284194Sdelphij>>>>428	string	Datentraeger\ wechseln\ und\ 		
843284194Sdelphij>>>>>454 string	Taste\ druecken\r			\b, Microsoft Windows 95/98/ME Bootloader (GERMAN)
844284194Sdelphij# DOS names like IO.SYS,WINBOOT.SYS,MSDOS.SYS,WINBOOT.INI are 8 right space padded bytes+3 bytes
845284194Sdelphij>>>>>>472	string		x 			%-.2s
846284194Sdelphij>>>>>>>474	ubyte&0xDF	>0			
847284194Sdelphij>>>>>>>>474	string		x 			\b%-.5s
848284194Sdelphij>>>>>>>>479	ubyte&0xDF	>0			
849284194Sdelphij>>>>>>>>>479	string		x 			\b%-.1s
850284194Sdelphij>>>>>>480	ubyte&0xDF	>0			
851284194Sdelphij>>>>>>>480	string		x 			\b.%-.3s
852284194Sdelphij>>>>>>483	ubyte&0xDF	>0			\b+
853284194Sdelphij>>>>>>>483	string		x 			\b%-.5s
854284194Sdelphij>>>>>>>488	ubyte&0xDF	>0			
855284194Sdelphij>>>>>>>>488	string		x 			\b%-.2s
856284194Sdelphij>>>>>>>>490	ubyte&0xDF	>0			
857284194Sdelphij>>>>>>>>>490	string		x 			\b%-.1s
858284194Sdelphij>>>>>>>491	ubyte&0xDF	>0			
859284194Sdelphij>>>>>>>>491	string		x 			\b.%-.3s
860284194Sdelphij>479	ubyte&0xDF	>0
861284194Sdelphij>>416	string	Kein\ System\ oder\ 			
862284194Sdelphij>>>433	string	Laufwerksfehler				
863284194Sdelphij>>>>450	string	Wechseln\ und\ Taste\ dr\201cken	\b, Microsoft DOS Bootloader (german)
864284194Sdelphij#IO.SYS
865284194Sdelphij>>>>>479	string		x 			\b %-.2s
866284194Sdelphij>>>>>>481	ubyte&0xDF	>0			
867284194Sdelphij>>>>>>>481	string		x 			\b%-.6s
868284194Sdelphij>>>>>487	ubyte&0xDF	>0			
869284194Sdelphij>>>>>>487	string		x 			\b.%-.3s
870284194Sdelphij#MSDOS.SYS
871284194Sdelphij>>>>>>490	ubyte&0xDF	>0			\b+
872284194Sdelphij>>>>>>>490	string		x 			\b%-.5s
873284194Sdelphij>>>>>>>>495	ubyte&0xDF	>0			
874284194Sdelphij>>>>>>>>>495	string		x 			\b%-.3s
875284194Sdelphij>>>>>>>498	ubyte&0xDF	>0			
876284194Sdelphij>>>>>>>>498	string		x 			\b.%-.3s
877284194Sdelphij#
878284194Sdelphij>376	search/41	Non-System\ disk\ or\ 		
879284194Sdelphij>>395	search/41	disk\ error\r			
880284194Sdelphij>>>407	search/41	Replace\ and\ 			
881284194Sdelphij>>>>419	search/41	press\ 				\b,
882284194Sdelphij>>>>419	search/41	strike\ 			\b, old
883284194Sdelphij>>>>426	search/41	any\ key\ when\ ready\r		MS or PC-DOS bootloader
884284194Sdelphij#449			Disk\ Boot\ failure\r		MS 3.21
885284194Sdelphij#466			Boot\ Failure\r			MS 3.30
886284194Sdelphij>>>>>468 search/18	\0				
887284194Sdelphij#IO.SYS,IBMBIO.COM
888284194Sdelphij>>>>>>&0	string		x 			\b %-.2s
889284194Sdelphij>>>>>>>&-20	ubyte&0xDF	>0			
890284194Sdelphij>>>>>>>>&-1	string		x 			\b%-.4s
891284194Sdelphij>>>>>>>>>&-16	ubyte&0xDF	>0			
892284194Sdelphij>>>>>>>>>>&-1	string		x 			\b%-.2s
893284194Sdelphij>>>>>>&8	ubyte&0xDF	>0			\b.
894284194Sdelphij>>>>>>>&-1	string		x 			\b%-.3s
895284194Sdelphij#MSDOS.SYS,IBMDOS.COM
896284194Sdelphij>>>>>>&11	ubyte&0xDF	>0			\b+
897284194Sdelphij>>>>>>>&-1	string		x 			\b%-.5s
898284194Sdelphij>>>>>>>>&-6	ubyte&0xDF	>0			
899284194Sdelphij>>>>>>>>>&-1	string		x 			\b%-.1s
900284194Sdelphij>>>>>>>>>>&-5	ubyte&0xDF	>0			
901284194Sdelphij>>>>>>>>>>>&-1	string		x 			\b%-.2s
902284194Sdelphij>>>>>>>&7	ubyte&0xDF	>0			\b.
903284194Sdelphij>>>>>>>>&-1	string		x 			\b%-.3s
904284194Sdelphij>441	string	Cannot\ load\ from\ harddisk.\n\r
905284194Sdelphij>>469	string	Insert\ Systemdisk\ 			
906284194Sdelphij>>>487	string	and\ press\ any\ key.\n\r		\b, MS (2.11) DOS bootloader
907284194Sdelphij#>43	string	\224R-LOADER\ \ SYS			=label					
908284194Sdelphij>54	string	SYS
909284194Sdelphij>>324	string	VASKK
910284194Sdelphij>>>495	string	NEWLDR\0				\b, DR-DOS Bootloader (LOADER.SYS)
911284194Sdelphij#
912284194Sdelphij>98	string	Press\ a\ key\ to\ retry\0\r		
913284194Sdelphij>>120	string	Cannot\ find\ file\ \0\r		
914284194Sdelphij>>>139	string	Disk\ read\ error\0\r			
915284194Sdelphij>>>>156	string	Loading\ ...\0				\b, DR-DOS (3.41) Bootloader
916284194Sdelphij#DRBIOS.SYS
917284194Sdelphij>>>>>44		ubyte&0xDF	>0			
918284194Sdelphij>>>>>>44	string		x			\b %-.6s
919284194Sdelphij>>>>>>>50	ubyte&0xDF	>0			
920284194Sdelphij>>>>>>>>50	string		x 			\b%-.2s
921284194Sdelphij>>>>>>52	ubyte&0xDF	>0			
922284194Sdelphij>>>>>>>52	string		x 			\b.%-.3s
923284194Sdelphij#
924284194Sdelphij>70	string	IBMBIO\ \ COM				
925284194Sdelphij>>472	string	Cannot\ load\ DOS!\ 			
926284194Sdelphij>>>489	string	Any\ key\ to\ retry			\b, DR-DOS Bootloader
927284194Sdelphij>>471	string	Cannot\ load\ DOS\ 			
928284194Sdelphij>>487	string	press\ key\ to\ retry			\b, Open-DOS Bootloader
929284194Sdelphij#??
930284194Sdelphij>444	string	KERNEL\ \ SYS					
931284194Sdelphij>>314	string	BOOT\ error!				\b, FREE-DOS Bootloader
932284194Sdelphij>499	string	KERNEL\ \ SYS				
933284194Sdelphij>>305	string	BOOT\ err!\0				\b, Free-DOS Bootloader
934284194Sdelphij>449	string	KERNEL\ \ SYS				
935284194Sdelphij>>319	string	BOOT\ error!				\b, FREE-DOS 0.5 Bootloader
936284194Sdelphij#
937284194Sdelphij>449	string	Loading\ FreeDOS			
938284194Sdelphij>>0x1AF		ulelong		>0			\b, FREE-DOS 0.95,1.0 Bootloader
939284194Sdelphij>>>497		ubyte&0xDF	>0			
940284194Sdelphij>>>>497		string		x 			\b %-.6s
941284194Sdelphij>>>>>503	ubyte&0xDF	>0			
942284194Sdelphij>>>>>>503	string		x 			\b%-.1s
943284194Sdelphij>>>>>>>504	ubyte&0xDF	>0			
944284194Sdelphij>>>>>>>>504	string		x 			\b%-.1s
945284194Sdelphij>>>>505		ubyte&0xDF	>0			
946284194Sdelphij>>>>>505	string		x 			\b.%-.3s
947284194Sdelphij#
948284194Sdelphij>331	string	Error!.0				\b, FREE-DOS 1.0 bootloader
949284194Sdelphij#
950284194Sdelphij>125	string	Loading\ FreeDOS...\r			
951284194Sdelphij>>311	string	BOOT\ error!\r				\b, FREE-DOS bootloader
952284194Sdelphij>>>441		ubyte&0xDF	>0			
953284194Sdelphij>>>>441		string		x 			\b %-.6s
954284194Sdelphij>>>>>447	ubyte&0xDF	>0			
955284194Sdelphij>>>>>>447	string		x 			\b%-.1s
956284194Sdelphij>>>>>>>448	ubyte&0xDF	>0			
957284194Sdelphij>>>>>>>>448	string		x 			\b%-.1s
958284194Sdelphij>>>>449		ubyte&0xDF	>0			
959284194Sdelphij>>>>>449	string		x 			\b.%-.3s
960284194Sdelphij>124	string	FreeDOS\0				
961284194Sdelphij>>331	string	\ err\0					\b, FREE-DOS BETa 0.9 Bootloader
962284194Sdelphij# DOS names like KERNEL.SYS,KERNEL16.SYS,KERNEL32.SYS,METAKERN.SYS are 8 right space padded bytes+3 bytes
963284194Sdelphij>>>497		ubyte&0xDF	>0			
964284194Sdelphij>>>>497		string		x 			\b %-.6s
965284194Sdelphij>>>>>503	ubyte&0xDF	>0			
966284194Sdelphij>>>>>>503	string		x 			\b%-.1s
967284194Sdelphij>>>>>>>504	ubyte&0xDF	>0			
968284194Sdelphij>>>>>>>>504	string		x 			\b%-.1s
969284194Sdelphij>>>>505		ubyte&0xDF	>0			
970284194Sdelphij>>>>>505	string		x 			\b.%-.3s
971284194Sdelphij>>333	string	\ err\0					\b, FREE-DOS BEta 0.9 Bootloader
972284194Sdelphij>>>497		ubyte&0xDF	>0			
973284194Sdelphij>>>>497		string		x 			\b %-.6s
974284194Sdelphij>>>>>503	ubyte&0xDF	>0			
975284194Sdelphij>>>>>>503	string		x 			\b%-.1s
976284194Sdelphij>>>>>>>504	ubyte&0xDF	>0			
977284194Sdelphij>>>>>>>>504	string		x 			\b%-.1s
978284194Sdelphij>>>>505		ubyte&0xDF	>0			
979284194Sdelphij>>>>>505	string		x 			\b.%-.3s
980284194Sdelphij>>334	string	\ err\0					\b, FREE-DOS Beta 0.9 Bootloader
981284194Sdelphij>>>497		ubyte&0xDF	>0			
982284194Sdelphij>>>>497		string		x 			\b %-.6s
983284194Sdelphij>>>>>503	ubyte&0xDF	>0			
984284194Sdelphij>>>>>>503	string		x 			\b%-.1s
985284194Sdelphij>>>>>>>504	ubyte&0xDF	>0			
986284194Sdelphij>>>>>>>>504	string		x 			\b%-.1s
987284194Sdelphij>>>>505		ubyte&0xDF	>0			
988284194Sdelphij>>>>>505	string		x 			\b.%-.3s
989284194Sdelphij>336	string	Error!\ 				
990284194Sdelphij>>343	string	Hit\ a\ key\ to\ reboot.		\b, FREE-DOS Beta 0.9sr1 Bootloader
991284194Sdelphij>>>497		ubyte&0xDF	>0			
992284194Sdelphij>>>>497		string		x 			\b %-.6s
993284194Sdelphij>>>>>503	ubyte&0xDF	>0			
994284194Sdelphij>>>>>>503	string		x 			\b%-.1s
995284194Sdelphij>>>>>>>504	ubyte&0xDF	>0			
996284194Sdelphij>>>>>>>>504	string		x 			\b%-.1s
997284194Sdelphij>>>>505		ubyte&0xDF	>0			
998284194Sdelphij>>>>>505	string		x 			\b.%-.3s
999284194Sdelphij# added by Joerg Jenderek
1000284194Sdelphij# http://www.visopsys.org/
1001284194Sdelphij# http://partitionlogic.org.uk/
1002284194Sdelphij# OEM-ID=Visopsys
1003284194Sdelphij>478		ulelong	0					
1004284194Sdelphij>>(1.b+326)	string	I/O\ Error\ reading\ 			
1005284194Sdelphij>>>(1.b+344)	string	Visopsys\ loader\r			
1006284194Sdelphij>>>>(1.b+361)	string	Press\ any\ key\ to\ continue.\r	\b, Visopsys loader
1007284194Sdelphij# http://alexfru.chat.ru/epm.html#bootprog
1008284194Sdelphij>494	ubyte	>0x4D					
1009284194Sdelphij>>495	string	>E					
1010284194Sdelphij>>>495	string	<S					
1011284194Sdelphij#OEM-ID is not reliable
1012284194Sdelphij>>>>3	string	BootProg				
1013284194Sdelphij# It just looks for a program file name at the root directory
1014284194Sdelphij# and loads corresponding file with following execution.
1015284194Sdelphij# DOS names like STARTUP.BIN,STARTUPC.COM,STARTUPE.EXE are 8 right space padded bytes+3 bytes
1016284194Sdelphij>>>>499			ubyte&0xDF	>0		\b, COM/EXE Bootloader 
1017284194Sdelphij>>>>>499		use		DOS-filename
1018284194Sdelphij#If the boot sector fails to read any other sector,
1019284194Sdelphij#it prints a very short message ("RE") to the screen and hangs the computer.
1020284194Sdelphij#If the boot sector fails to find needed program in the root directory,
1021284194Sdelphij#it also hangs with another message ("NF").
1022284194Sdelphij>>>>>492		string		RENF		\b, FAT (12 bit)
1023284194Sdelphij>>>>>495		string		RENF		\b, FAT (16 bit)
1024284194Sdelphij#If the boot sector fails to read any other sector,
1025284194Sdelphij#it prints a very short message ("RE") to the screen and hangs the computer.
1026284194Sdelphij# x86 bootloader end
1027284194Sdelphij
1028284194Sdelphij# added by Joerg Jenderek at Feb 2013 according to http://thestarman.pcministry.com/asm/mbr/MSWIN41.htm#FSINFO
1029284194Sdelphij# and http://en.wikipedia.org/wiki/File_Allocation_Table#FS_Information_Sector
1030284194Sdelphij>0		string		RRaA		
1031284194Sdelphij>>0x1E4		string		rrAa		\b, FSInfosector
1032284194Sdelphij#>>0x1FC	uleshort	=0		SHOULD BE ZERO
1033284194Sdelphij>>>0x1E8	ulelong		<0xffffffff	\b, %u free clusters
1034284194Sdelphij>>>0x1EC	ulelong		<0xffffffff	\b, last allocated cluster %u
1035284194Sdelphij
1036284194Sdelphij# updated by Joerg Jenderek at Sep 2007
1037284194Sdelphij>3	ubyte	0			
1038284194Sdelphij#no active flag
1039284194Sdelphij>>446	ubyte	0			
1040284194Sdelphij# partition 1 not empty
1041284194Sdelphij>>>450	ubyte	>0			
1042284194Sdelphij# partitions 3,4 empty
1043284194Sdelphij>>>>482		ubyte	0			
1044284194Sdelphij>>>>>498	ubyte	0			
1045284194Sdelphij# partition 2 ID=0,5,15
1046284194Sdelphij>>>>>>466	ubyte	<0x10			
1047284194Sdelphij>>>>>>>466	ubyte	0x05			\b, extended partition table
1048284194Sdelphij>>>>>>>466	ubyte	0x0F			\b, extended partition table (LBA)
1049284194Sdelphij>>>>>>>466	ubyte	0x0			\b, extended partition table (last)
1050284194Sdelphij
1051284194Sdelphij# DOS x86 sector separated and moved from "DOS/MBR boot sector" by Joerg Jenderek at May 2011
1052284194Sdelphij
1053284194Sdelphij>0x200	lelong	0x82564557		\b, BSD disklabel
1054284194Sdelphij
1055284194Sdelphij# by Joerg Jenderek at Apr 2013
1056284194Sdelphij#	Print the DOS filenames from directory entry form with 8 right space padded bytes + 3 bytes for extension
1057284194Sdelphij#	like IO.SYS. MSDOS.SYS , KERNEL.SYS , DRBIO.SYS
1058284194Sdelphij0	name			DOS-filename
1059284194Sdelphij# space=0x20 (00100000b) means empty 
1060284194Sdelphij>0			ubyte&0xDF	>0		
1061284194Sdelphij>>0			ubyte		x 		\b%c
1062284194Sdelphij>>>1			ubyte&0xDF	>0		
1063284194Sdelphij>>>>1			ubyte		x 		\b%c
1064284194Sdelphij>>>>>2			ubyte&0xDF	>0		
1065284194Sdelphij>>>>>>2			ubyte		x 		\b%c
1066284194Sdelphij>>>>>>>3		ubyte&0xDF	>0		
1067284194Sdelphij>>>>>>>>3		ubyte		x 		\b%c
1068284194Sdelphij>>>>>>>>>4		ubyte&0xDF	>0		
1069284194Sdelphij>>>>>>>>>>4		ubyte		x 		\b%c
1070284194Sdelphij>>>>>>>>>>>5		ubyte&0xDF	>0		
1071284194Sdelphij>>>>>>>>>>>>5		ubyte		x 		\b%c
1072284194Sdelphij>>>>>>>>>>>>>6		ubyte&0xDF	>0		
1073284194Sdelphij>>>>>>>>>>>>>>6		ubyte		x 		\b%c
1074284194Sdelphij>>>>>>>>>>>>>>>7	ubyte&0xDF	>0		
1075284194Sdelphij>>>>>>>>>>>>>>>>7	ubyte		x 		\b%c
1076284194Sdelphij# DOS filename extension
1077284194Sdelphij>>8			ubyte&0xDF	>0		\b.
1078284194Sdelphij>>>8			ubyte		x 		\b%c
1079284194Sdelphij>>>>9			ubyte&0xDF	>0		
1080284194Sdelphij>>>>>9			ubyte		x 		\b%c
1081284194Sdelphij>>>>>>10		ubyte&0xDF	>0		
1082284194Sdelphij>>>>>>>10		ubyte		x 		\b%c
1083284194Sdelphij#	Print 2 following DOS filenames from directory entry form
1084284194Sdelphij#	like IO.SYS+MSDOS.SYS or ibmbio.com+ibmdos.com
1085284194Sdelphij0	name			2xDOS-filename
1086284194Sdelphij# display 1 space
1087284194Sdelphij>0			ubyte		x		\b 
1088284194Sdelphij>0			use		DOS-filename
1089284194Sdelphij>11			ubyte		x		\b+
1090284194Sdelphij>11			use		DOS-filename
1091284194Sdelphij
1092284194Sdelphij# http://en.wikipedia.org/wiki/Master_boot_record#PTE
1093284194Sdelphij# display standard partition table
1094284194Sdelphij0	name				partition-table
1095284194Sdelphij#>0		ubyte		x	PARTITION-TABLE
1096284194Sdelphij# test and display 1st til 4th partition table entry
1097284194Sdelphij>0		use			partition-entry-test
1098284194Sdelphij>16		use			partition-entry-test
1099284194Sdelphij>32		use			partition-entry-test
1100284194Sdelphij>48		use			partition-entry-test
1101284194Sdelphij#		test for entry of partition table
1102284194Sdelphij0	name				partition-entry-test
1103284194Sdelphij# partition type ID > 0
1104284194Sdelphij>4		ubyte		>0
1105284194Sdelphij# active flag 0
1106284194Sdelphij>>0		ubyte		0	
1107284194Sdelphij>>>0		use		partition-entry
1108284194Sdelphij# active flag 0x80, 0x81, ... 
1109284194Sdelphij>>0		ubyte		>0x7F	
1110284194Sdelphij>>>0		use		partition-entry
1111284194Sdelphij#		Print entry of partition table
1112284194Sdelphij0	name				partition-entry
1113284194Sdelphij# partition type ID > 0
1114284194Sdelphij>4		ubyte		>0	\b; partition
1115284194Sdelphij>>64		leshort		0xAA55	1
1116284194Sdelphij>>48		leshort		0xAA55	2
1117284194Sdelphij>>32		leshort		0xAA55	3
1118284194Sdelphij>>16		leshort		0xAA55	4
1119284194Sdelphij>>4		ubyte		x	: ID=0x%x
1120284194Sdelphij>>0		ubyte&0x80	0x80	\b, active
1121284194Sdelphij>>0		ubyte		>0x80	0x%x
1122284194Sdelphij>>1		ubyte		x	\b, start-CHS (
1123284194Sdelphij>>1		use		partition-chs
1124284194Sdelphij>>5		ubyte		x	\b), end-CHS (
1125284194Sdelphij>>5		use		partition-chs
1126284194Sdelphij>>8		ulelong		x	\b), startsector %u
1127284194Sdelphij>>12		ulelong		x	\b, %u sectors
1128284194Sdelphij#		Print cylinder,head,sector (CHS) of partition entry
1129284194Sdelphij0	name				partition-chs
1130284194Sdelphij# cylinder
1131284194Sdelphij>1		ubyte		x	\b0x
1132284194Sdelphij>1		ubyte&0xC0	0x40	\b1
1133284194Sdelphij>1		ubyte&0xC0	0x80	\b2
1134284194Sdelphij>1		ubyte&0xC0	0xC0	\b3
1135284194Sdelphij>2		ubyte		x	\b%x
1136284194Sdelphij# head
1137284194Sdelphij>0		ubyte		x	\b,%u
1138284194Sdelphij# sector
1139284194Sdelphij>1		ubyte&0x3F	x	\b,%u
1140284194Sdelphij
1141284194Sdelphij# FATX 
1142284194Sdelphij0		string		FATX		FATX filesystem data
1143284194Sdelphij
1144284194Sdelphij# romfs filesystems - Juan Cespedes <cespedes@debian.org>
1145284194Sdelphij0	string		-rom1fs-	romfs filesystem, version 1
1146284194Sdelphij>8	belong	x			%d bytes,
1147284194Sdelphij>16	string	x			named %s.
1148284194Sdelphij
1149284194Sdelphij# netboot image - Juan Cespedes <cespedes@debian.org>
1150284194Sdelphij0	lelong		0x1b031336L	Netboot image,
1151284194Sdelphij>4	lelong&0xFFFFFF00	0
1152284194Sdelphij>>4	lelong&0x100	0x000		mode 2
1153284194Sdelphij>>4	lelong&0x100	0x100		mode 3
1154284194Sdelphij>4	lelong&0xFFFFFF00	!0	unknown mode
1155284194Sdelphij
1156284194Sdelphij0x18b	string	OS/2	OS/2 Boot Manager
1157284194Sdelphij
1158284194Sdelphij# updated by Joerg Jenderek at Oct 2008 and Sep 2012
1159284194Sdelphij# http://syslinux.zytor.com/iso.php
1160284194Sdelphij# tested with versions 1.47,1.48,1.49,1.50,1.62,1.76,2.00,2.10;3.00,3.11,3.31,;3.70,3.71,3.73,3.75,3.80,3.82,3.84,3.86,4.01,4.03 and 4.05
1161284194Sdelphij# assembler instructions: cli;jmp 0:7Cyy (yy=0x40,0x5e,0x6c,0x6e,0x77);nop;nop
1162284194Sdelphij0	ulequad&0x909000007cc0eafa	0x909000007c40eafa	
1163284194Sdelphij>631	search/689	ISOLINUX\ 	isolinux Loader
1164284194Sdelphij>>&0	string		x		(version %-4.4s)
1165284194Sdelphij# http://syslinux.zytor.com/pxe.php
1166284194Sdelphij# assembler instructions: jmp 7C05
1167284194Sdelphij0	ulelong	0x007c05ea		pxelinux loader (version 2.13 or older)
1168284194Sdelphij# assembler instructions: pushfd;pushad
1169284194Sdelphij0	ulelong	0x60669c66		pxelinux loader
1170284194Sdelphij# assembler instructions: jmp 05
1171284194Sdelphij0	ulelong	0xc00005ea		pxelinux loader (version 3.70 or newer)
1172284194Sdelphij# http://syslinux.zytor.com/wiki/index.php/SYSLINUX
1173284194Sdelphij0	string	LDLINUX\ SYS\ 		SYSLINUX loader
1174284194Sdelphij>12	string	x			(older version %-4.4s)
1175284194Sdelphij0	string	\r\nSYSLINUX\ 		SYSLINUX loader
1176284194Sdelphij>11	string	x			(version %-4.4s)
1177284194Sdelphij# syslinux updated and separated from "DOS/MBR boot sector" by Joerg Jenderek at Sep 2012
1178284194Sdelphij# assembler instructions: jmp yy (yy=0x3c,0x58);nop;"SYSLINUX"
1179284194Sdelphij0	ulelong&0x80909bEB	0x009018EB	
1180284194Sdelphij# OEM-ID not always "SYSLINUX"
1181284194Sdelphij>434	search/47	Boot\ failed		
1182284194Sdelphij# followed by \r\n\0 or :\ 
1183284194Sdelphij>>482	search/132	\0LDLINUX\ SYS		Syslinux bootloader (version 2.13 or older)
1184284194Sdelphij>>1	ubyte		0x58			Syslinux bootloader (version 3.0-3.9)
1185284194Sdelphij>459	search/30	Boot\ error\r\n\0	
1186284194Sdelphij>>1	ubyte		0x58			Syslinux bootloader (version 3.10 or newer)
1187284194Sdelphij# SYSLINUX MBR updated and separated from "DOS/MBR boot sector" by Joerg Jenderek at Sep 2012
1188284194Sdelphij# assembler instructions: mov di,0600h;mov cx,0100h
1189284194Sdelphij16	search/4	\xbf\x00\x06\xb9\x00\x01		
1190284194Sdelphij# to display SYSLINUX MBR (36) before old DOS/MBR boot sector one with partition table (strength=50+21)
1191284194Sdelphij!:strength +36
1192284194Sdelphij>94	search/249	Missing\ operating\ system		
1193284194Sdelphij# followed by \r for versions older 3.35 , .\r for versions newer 3.52 and point for other
1194284194Sdelphij# skip Ranish MBR
1195284194Sdelphij>>408	search/4	HD1/\0	 				
1196284194Sdelphij>>408	default		x					
1197284194Sdelphij>>>250	search/118	\0Operating\ system\ load		SYSLINUX MBR
1198284194Sdelphij# followed by "ing " or space
1199284194Sdelphij>>>>292	search/98	error   				
1200284194Sdelphij>>>>>&0	string		\r		    			(version 3.35 or older)
1201284194Sdelphij>>>>>&0	string		.\r					(version 3.52 or newer)
1202284194Sdelphij>>>>>&0	default		x					(version 3.36-3.51 )
1203284194Sdelphij>368	search/106	\0Disk\ error\ on\ boot\r\n		SYSLINUX GPT-MBR
1204284194Sdelphij>>156	search/10	\0Boot\ partition\ not\ found\r\n	
1205284194Sdelphij>>>270	search/10	\0OS\ not\ bootable\r\n			(version 3.86 or older)
1206284194Sdelphij>>174	search/10	\0Missing\ OS\r\n			
1207284194Sdelphij>>>189	search/10	\0Multiple\ active\ partitions\r\n	(version 4.00 or newer)
1208284194Sdelphij# SYSLINUX END
1209284194Sdelphij
1210284194Sdelphij# NetBSD mbr variants (master-boot-code version 1.22) added by Joerg Jenderek at Nov 2012
1211284194Sdelphij# assembler instructions: xor ax,ax;mov	ax,ss;mov sp,0x7c00;mov	ax,
1212284194Sdelphij0	ubequad		0x31c08ed0bc007c8e			
1213284194Sdelphij# mbr_bootsel magic before partition table not reliable with small ipl fragments
1214284194Sdelphij#>444	uleshort	0xb5e1					
1215284194Sdelphij>0004	uleshort	x					
1216284194Sdelphij# ERRorTeXT
1217284194Sdelphij>>181	search/166		Error\ \0\r\n				NetBSD mbr
1218284194Sdelphij# NT Drive Serial Number http://thestarman.pcministry.com/asm/mbr/Win2kmbr.htm#DS
1219284194Sdelphij>>>0x1B8	ubelong		>0					\b,Serial 0x%-.8x
1220284194Sdelphij# BOOTSEL definitions contains assembler instructions: int 0x13;pop dx;push dx;push dx
1221284194Sdelphij>>>0xbb		search/71	\xcd\x13\x5a\x52\x52			\b,bootselector
1222284194Sdelphij# BOOT_EXTENDED definitions contains assembler instructions: 
1223284194Sdelphij# xchg ecx,edx;addl ecx,edx;movw lba_info,si;movb 0x42,ah;pop dx;push dx;int 0x13
1224284194Sdelphij>>>0x96	search/1	\x66\x87\xca\x66\x01\xca\x66\x89\x16\x3a\x07\xbe\x32\x07\xb4\x42\x5a\x52\xcd\x13	\b,boot extended
1225284194Sdelphij# COM_PORT_VAL definitions contains assembler instructions: outb al,dx;add 5,dl;inb %dx;test 0x40,al
1226284194Sdelphij>>>0x130	search/55	\xee\x80\xc2\x05\xec\xa8\x40		\b,serial IO
1227284194Sdelphij# not TERSE_ERROR
1228284194Sdelphij>>>196		search/106	No\ active\ partition\0			
1229284194Sdelphij>>>>&0		string		Disk\ read\ error\0			
1230284194Sdelphij>>>>>&0		string		No\ operating\ system\0			\b,verbose
1231284194Sdelphij# not NO_CHS definitions contains assembler instructions: pop dx;push dx;movb $8,ah;int0x13
1232284194Sdelphij>>>0x7d		search/7	\x5a\x52\xb4\x08\xcd\x13		\b,CHS
1233284194Sdelphij# not NO_LBA_CHECK definitions contains assembler instructions: movw 0x55aa,bx;movb 0x41,ah;pop	dx;push	dx;int 0x13
1234284194Sdelphij>>>0xa4		search/84	\xbb\xaa\x55\xb4\x41\x5a\x52\xcd\x13	\b,LBA-check
1235284194Sdelphij# assembler instructions: movw nametab,bx
1236284194Sdelphij>>>0x26	    search/21	\xBB\x94\x07					
1237284194Sdelphij# not NO_BANNER definitions contains assembler instructions: mov banner,si;call message_crlf
1238284194Sdelphij>>>>&-9	ubequad&0xBE00f0E800febb94	0xBE0000E80000bb94		
1239284194Sdelphij>>>>>181	search/166		Error\ \0			
1240284194Sdelphij# "a: disk" , "Fn: diskn" or "NetBSD MBR boot"
1241284194Sdelphij>>>>>>&3	string			x				\b,"%s"
1242284194Sdelphij>>>446	use		partition-table
1243284194Sdelphij# Andrea Mazzoleni AdvanceCD mbr loader of http://advancemame.sourceforge.net/boot-readme.html
1244284194Sdelphij# added by Joerg Jenderek at Nov 2012 for versions 1.3 - 1.4
1245284194Sdelphij# assembler instructions: jmp short 0x58;nop;ASCII
1246284194Sdelphij0	ubequad&0xeb58908000000000	0xeb58900000000000	
1247284194Sdelphij# assembler instructions: cli;xor ax,ax;mov ds,ax;mov es,ax;mov ss,
1248284194Sdelphij>(1.b+2)	ubequad			0xfa31c08ed88ec08e	
1249284194Sdelphij# Error messages at end of code
1250284194Sdelphij>>376		string	No\ operating\ system\r\n\0		
1251284194Sdelphij>>>398		string	Disk\ error\r\n\0FDD\0HDD\0		
1252284194Sdelphij>>>>419		string	\ EBIOS\r\n\0				AdvanceMAME mbr
1253284194Sdelphij
1254284194Sdelphij# Neil Turton mbr loader variant of http://www.chiark.greenend.org.uk/~neilt/mbr/ 
1255284194Sdelphij# added by Joerg Jenderek at Mar 2011 for versions 1.0.0 - 1.1.11
1256284194Sdelphij# for 1st version assembler instructions:	cld;xor ax,ax;mov DS,ax;MOV ES,AX;mov SI,
1257284194Sdelphij# or  	  	  	    			cld;xor ax,ax;mov SS,ax;XOR SP,SP;mov DS,
1258284194Sdelphij0	ulequad&0xcE1b40D48EC031FC	0x8E0000D08EC031FC	
1259284194Sdelphij# pointer to the data starting with Neil Turton signature string
1260284194Sdelphij>(0x1BC.s)		string		NDTmbr			
1261284194Sdelphij>>&-14			string		1234F\0			Turton mbr (
1262284194Sdelphij# parameters also viewed by install-mbr --list
1263284194Sdelphij>>>(0x1BC.s+7)		ubyte		x			\b%u<=
1264284194Sdelphij>>>(0x1BC.s+9)		ubyte		x			\bVersion<=%u
1265284194Sdelphij#>>>(0x1BC.s+8)		ubyte		x			asm_flag_%x
1266284194Sdelphij>>>(0x1BC.s+8)		ubyte&1		1			\b,Y2K-Fix
1267284194Sdelphij# variant used by testdisk of http://www.cgsecurity.org/wiki/Menu_MBRCode
1268284194Sdelphij>>>(0x1BC.s+8)		ubyte&2		2			\b,TestDisk
1269284194Sdelphij#0x1~1,..,0x8~4,0x10~F,0x80~A enabled
1270284194Sdelphij#>>>(0x1BC.s+10)		ubyte		x			\b,flags 0x%x
1271284194Sdelphij#0x0~1,0x1~2,...,0x3~4,0x4~F,0x7~D default boot
1272284194Sdelphij#>>>(0x1BC.s+11)		ubyte		x			\b,cfg_def 0x%x
1273284194Sdelphij# for older versions
1274284194Sdelphij>>>(0x1BC.s+9)		ubyte		<2			
1275284194Sdelphij#>>>>(0x1BC.s+12)	ubyte		18			\b,%hhu/18 seconds
1276284194Sdelphij>>>>(0x1BC.s+12)	ubyte		!18			\b,%u/18 seconds
1277284194Sdelphij# floppy A: or B:
1278284194Sdelphij>>>>(0x1BC.s+13)	ubyte		<2			\b,floppy 0x%x
1279284194Sdelphij>>>>(0x1BC.s+13)	ubyte		>1			
1280284194Sdelphij# 1st hard disc
1281284194Sdelphij#>>>>>(0x1BC.s+13)	ubyte		0x80			\b,drive 0x%x
1282284194Sdelphij# not 1st hard disc
1283284194Sdelphij>>>>>(0x1BC.s+13)	ubyte		!0x80			\b,drive 0x%x
1284284194Sdelphij# for version >= 2 maximal timeout can be 65534
1285284194Sdelphij>>>(0x1BC.s+9)		ubyte		>1			
1286284194Sdelphij#>>>>(0x1BC.s+12)	uleshort	18			\b,%u/18 seconds
1287284194Sdelphij>>>>(0x1BC.s+12)	uleshort	!18			\b,%u/18 seconds
1288284194Sdelphij# floppy A: or B:
1289284194Sdelphij>>>>(0x1BC.s+14)	ubyte		<2			\b,floppy 0x%x
1290284194Sdelphij>>>>(0x1BC.s+14)	ubyte		>1			
1291284194Sdelphij# 1st hard disc
1292284194Sdelphij#>>>>>(0x1BC.s+14)	ubyte		0x80			\b,drive 0x%x
1293284194Sdelphij# not 1st hard disc
1294284194Sdelphij>>>>>(0x1BC.s+14)	ubyte		!0x80			\b,drive 0x%x
1295284194Sdelphij>>>0	ubyte		x					\b)
1296284194Sdelphij
1297284194Sdelphij# added by Joerg Jenderek
1298284194Sdelphij# In the second sector (+0x200) are variables according to grub-0.97/stage2/asm.S or
1299284194Sdelphij# grub-1.94/kern/i386/pc/startup.S
1300284194Sdelphij# http://www.gnu.org/software/grub/manual/grub.html#Embedded-data
1301284194Sdelphij# usual values are marked with comments to get only informations of strange GRUB loaders
1302284194Sdelphij0x200	uleshort		0x70EA		
1303284194Sdelphij# found only version 3.{1,2}
1304284194Sdelphij>0x206		ubeshort	>0x0300		
1305284194Sdelphij# GRUB version (0.5.)95,0.93,0.94,0.96,0.97 > "00"
1306284194Sdelphij>>0x212 	ubyte		>0x29		
1307284194Sdelphij>>>0x213 	ubyte		>0x29		
1308284194Sdelphij# not iso9660_stage1_5
1309284194Sdelphij#>>>0	ulelong&0x00BE5652	0x00BE5652	
1310284194Sdelphij>>>>0x213 	ubyte		>0x29		GRand Unified Bootloader
1311284194Sdelphij# config_file for stage1_5 is 0xffffffff + default "/boot/grub/stage2"
1312284194Sdelphij>>>>0x217 	ubyte		0xFF		stage1_5
1313284194Sdelphij>>>>0x217 	ubyte		<0xFF		stage2
1314284194Sdelphij>>>>0x206	ubyte		x		\b version %u
1315284194Sdelphij>>>>0x207	ubyte		x		\b.%u
1316284194Sdelphij# module_size for 1.94
1317284194Sdelphij>>>>0x208	ulelong		<0xffffff	\b, installed partition %u
1318284194Sdelphij#>>>>0x208	ulelong		=0xffffff	\b, %lu (default)
1319284194Sdelphij>>>>0x208	ulelong		>0xffffff	\b, installed partition %u
1320284194Sdelphij# GRUB 0.5.95 unofficial
1321284194Sdelphij>>>>0x20C	ulelong&0x2E300000 0x2E300000	
1322284194Sdelphij# 0=stage2	1=ffs	2=e2fs	3=fat	4=minix	5=reiserfs
1323284194Sdelphij>>>>>0x20C	ubyte		x		\b, identifier 0x%x
1324284194Sdelphij#>>>>>0x20D	ubyte		=0		\b, LBA flag 0x%x (default)
1325284194Sdelphij>>>>>0x20D	ubyte		>0		\b, LBA flag 0x%x
1326284194Sdelphij# GRUB version as string
1327284194Sdelphij>>>>>0x20E 	string		>\0		\b, GRUB version %-s
1328284194Sdelphij# for stage1_5 is 0xffffffff + config_file "/boot/grub/stage2" default
1329284194Sdelphij>>>>>>0x215 	ulong		0xffffffff	
1330284194Sdelphij>>>>>>>0x219 	string		>\0		\b, configuration file %-s
1331284194Sdelphij>>>>>>0x215 	ulong		!0xffffffff	
1332284194Sdelphij>>>>>>>0x215 	string		>\0		\b, configuration file %-s
1333284194Sdelphij# newer GRUB versions
1334284194Sdelphij>>>>0x20C	ulelong&0x2E300000 !0x2E300000	
1335284194Sdelphij##>>>>>0x20C	ulelong		=0		\b, saved entry %d (usual)
1336284194Sdelphij>>>>>0x20C	ulelong		>0		\b, saved entry %d
1337284194Sdelphij# for 1.94 contains kernel image size
1338284194Sdelphij# for 0.93,0.94,0.96,0.97
1339284194Sdelphij# 0=stage2	1=ffs	2=e2fs	3=fat	4=minix	5=reiserfs	6=vstafs	7=jfs	8=xfs	9=iso9660	a=ufs2	
1340284194Sdelphij>>>>>0x210	ubyte		x		\b, identifier 0x%x
1341284194Sdelphij# The flag for LBA forcing is in most cases 0
1342284194Sdelphij#>>>>>0x211	ubyte		=0		\b, LBA flag 0x%x (default)
1343284194Sdelphij>>>>>0x211	ubyte		>0		\b, LBA flag 0x%x
1344284194Sdelphij# GRUB version as string
1345284194Sdelphij>>>>>0x212 	string		>\0		\b, GRUB version %-s
1346284194Sdelphij# for stage1_5 is 0xffffffff + config_file "/boot/grub/stage2" default
1347284194Sdelphij>>>>>0x217 	ulong		0xffffffff	
1348284194Sdelphij>>>>>>0x21b 	string		>\0		\b, configuration file %-s
1349284194Sdelphij>>>>>0x217 	ulong		!0xffffffff	
1350284194Sdelphij>>>>>>0x217 	string		>\0		\b, configuration file %-s
1351284194Sdelphij
1352284194Sdelphij# DOS x86 sector updated and separated from "DOS/MBR boot sector" by Joerg Jenderek at May 2011
1353284194Sdelphij# JuMP short     bootcodeoffset NOP assembler instructions will usually be EB xx 90
1354284194Sdelphij# over BIOS parameter block (BPB)
1355284194Sdelphij# http://thestarman.pcministry.com/asm/2bytejumps.htm#FWD
1356284194Sdelphij# older drives may use Near JuMP instruction E9 xx xx
1357284194Sdelphij# minimal short forward jump found 0x29 for bootloaders or 0x0
1358284194Sdelphij# maximal short forward jump is 0x7f
1359284194Sdelphij# OEM-ID is empty or contain readable bytes
1360284194Sdelphij0		ulelong&0x804000E9	0x000000E9
1361284194Sdelphij!:strength	+60
1362284194Sdelphij# mtools-3.9.8/msdos.h
1363284194Sdelphij# usual values are marked with comments to get only informations of strange FAT systems
1364284194Sdelphij# valid sectorsize must be a power of 2 from 32 to 32768
1365284194Sdelphij>11		uleshort&0x001f	0	
1366284194Sdelphij>>11		uleshort	<32769		
1367284194Sdelphij>>>11		uleshort	>31		
1368284194Sdelphij>>>>21		ubyte&0xf0	0xF0		
1369284194Sdelphij>>>>>0		ubyte		0xEB		DOS/MBR boot sector
1370284194Sdelphij>>>>>>1		ubyte		x		\b, code offset 0x%x+2
1371284194Sdelphij>>>>>0		ubyte		0xE9		
1372284194Sdelphij>>>>>>1		uleshort	x		\b, code offset 0x%x+3
1373284194Sdelphij>>>>>3		string		>\0		\b, OEM-ID "%-.8s"
1374284194Sdelphij#http://mirror.href.com/thestarman/asm/debug/debug2.htm#IHC
1375284194Sdelphij>>>>>>8		string		IHC		\b cached by Windows 9M
1376284194Sdelphij>>>>>11		uleshort	>512		\b, Bytes/sector %u
1377284194Sdelphij#>>>>>11	uleshort	=512		\b, Bytes/sector %u=512 (usual)
1378284194Sdelphij>>>>>11		uleshort	<512		\b, Bytes/sector %u
1379284194Sdelphij>>>>>13		ubyte		>1		\b, sectors/cluster %u
1380284194Sdelphij#>>>>>13	ubyte		=1		\b, sectors/cluster %u (usual on Floppies)
1381284194Sdelphij# for lazy FAT32 implementation like Transcend digital photo frame PF830
1382284194Sdelphij>>>>>82		string/c	fat32		
1383284194Sdelphij>>>>>>14	uleshort	!32		\b, reserved sectors %u
1384284194Sdelphij#>>>>>>14	uleshort	=32		\b, reserved sectors %u (usual Fat32)
1385284194Sdelphij>>>>>82		string/c	!fat32		
1386284194Sdelphij>>>>>>14	uleshort	>1		\b, reserved sectors %u
1387284194Sdelphij#>>>>>>14	uleshort	=1		\b, reserved sectors %u (usual FAT12,FAT16)
1388284194Sdelphij#>>>>>>14	uleshort	0		\b, reserved sectors %u (usual NTFS)
1389284194Sdelphij>>>>>16		ubyte		>2		\b, FATs %u
1390284194Sdelphij#>>>>>16	ubyte		=2		\b, FATs %u (usual)
1391284194Sdelphij>>>>>16		ubyte		=1		\b, FAT  %u
1392284194Sdelphij>>>>>16		ubyte		>0
1393284194Sdelphij>>>>>17		uleshort	>0		\b, root entries %u
1394284194Sdelphij#>>>>>17	uleshort	=0		\b, root entries %hu=0 (usual Fat32)
1395284194Sdelphij>>>>>19		uleshort	>0		\b, sectors %u (volumes <=32 MB) 
1396284194Sdelphij#>>>>>19	uleshort	=0		\b, sectors %hu=0 (usual Fat32)
1397284194Sdelphij>>>>>21		ubyte		>0xF0		\b, Media descriptor 0x%x
1398284194Sdelphij#>>>>>21	ubyte		=0xF0		\b, Media descriptor 0x%x (usual floppy)
1399284194Sdelphij>>>>>21		ubyte		<0xF0		\b, Media descriptor 0x%x
1400284194Sdelphij>>>>>22		uleshort	>0		\b, sectors/FAT %u
1401284194Sdelphij#>>>>>22	uleshort	=0		\b, sectors/FAT %hu=0 (usual Fat32)
1402284194Sdelphij>>>>>24		uleshort	x		\b, sectors/track %u
1403284194Sdelphij>>>>>26		ubyte		>2		\b, heads %u
1404284194Sdelphij#>>>>>26	ubyte		=2		\b, heads %u (usual floppy)
1405284194Sdelphij>>>>>26		ubyte		=1		\b, heads %u
1406284194Sdelphij# valid only for sector sizes with more then 32 Bytes
1407284194Sdelphij>>>>>11		uleshort	>32		
1408284194Sdelphij# http://en.wikipedia.org/wiki/Design_of_the_FAT_file_system#Extended_BIOS_Parameter_Block
1409284194Sdelphij# skip for values 2,2Ah,70h,73h,DFh
1410284194Sdelphij# and continue for extended boot signature values 0,28h,29h,80h
1411284194Sdelphij>>>>>>38	ubyte&0x56	=0		
1412284194Sdelphij>>>>>>>28	ulelong		>0		\b, hidden sectors %u
1413284194Sdelphij#>>>>>>>28	ulelong		=0		\b, hidden sectors %u (usual floppy)
1414284194Sdelphij>>>>>>>32	ulelong		>0		\b, sectors %u (volumes > 32 MB) 
1415284194Sdelphij#>>>>>>>32	ulelong		=0		\b, sectors %u (volumes > 32 MB)
1416284194Sdelphij# FAT<32 bit specific 
1417284194Sdelphij>>>>>>>82	string/c	!fat32		
1418284194Sdelphij#>>>>>>>>36	ubyte		0x80		\b, physical drive 0x%x=0x80 (usual harddisk)
1419284194Sdelphij#>>>>>>>>36	ubyte		0		\b, physical drive 0x%x=0 (usual floppy)
1420284194Sdelphij>>>>>>>>36	ubyte		!0x80		
1421284194Sdelphij>>>>>>>>>36	ubyte		!0		\b, physical drive 0x%x
1422284194Sdelphij# VGA-copy CRC or
1423284194Sdelphij# in Windows NT bit 0 is a dirty flag to request chkdsk at boot time. bit 1 requests surface scan too
1424284194Sdelphij>>>>>>>>37	ubyte		>0		\b, reserved 0x%x
1425284194Sdelphij#>>>>>>>>37	ubyte		=0		\b, reserved 0x%x
1426284194Sdelphij# extended boot signatur value is 0x80 for NTFS, 0x28 or 0x29 for others
1427284194Sdelphij>>>>>>>>38	ubyte		!0x29		\b, dos < 4.0 BootSector (0x%x)
1428284194Sdelphij>>>>>>>>38	ubyte&0xFE	=0x28
1429284194Sdelphij>>>>>>>>>39	ulelong		x		\b, serial number 0x%x
1430284194Sdelphij>>>>>>>>38	ubyte		=0x29
1431284194Sdelphij>>>>>>>>>43	string		<NO\ NAME	\b, label: "%11.11s"
1432284194Sdelphij>>>>>>>>>43	string		>NO\ NAME	\b, label: "%11.11s"
1433284194Sdelphij>>>>>>>>>43	string		=NO\ NAME	\b, unlabeled
1434284194Sdelphij# there exist some old floppies without word FAT at offset 54
1435284194Sdelphij# a word like "FATnm   " is only a hint for a FAT size on nm-bits
1436284194Sdelphij# Normally the number of clusters is calculated by the values of BPP.
1437284194Sdelphij# if it is small enough FAT is 12 bit, if it is too big enough FAT is 32 bit,
1438284194Sdelphij# otherwise FAT is 16 bit.
1439284194Sdelphij# http://homepage.ntlworld.com/jonathan.deboynepollard/FGA/determining-fat-widths.html
1440284194Sdelphij>>>>>82		string/c	!fat32		
1441284194Sdelphij>>>>>>54	string		FAT12		\b, FAT (12 bit)
1442284194Sdelphij>>>>>>54	string		FAT16		\b, FAT (16 bit)
1443284194Sdelphij>>>>>>54	default		x		
1444284194Sdelphij# determinate FAT bit size by media descriptor
1445284194Sdelphij# small floppies implies FAT12
1446284194Sdelphij>>>>>>>21	ubyte		<0xF0		\b, FAT (12 bit by descriptor)
1447284194Sdelphij# with media descriptor F0h floppy or maybe superfloppy with FAT16
1448284194Sdelphij>>>>>>>21	ubyte		=0xF0		
1449284194Sdelphij# superfloppy (many sectors) implies FAT16
1450284194Sdelphij>>>>>>>>32	ulelong		>0xFFFF		\b, FAT (16 bit by descriptor+sectors)
1451284194Sdelphij# no superfloppy with media descriptor F0h implies FAT12
1452284194Sdelphij>>>>>>>>32	default		x		\b, FAT (12 bit by descriptor+sectors)
1453284194Sdelphij# with media descriptor F8h floppy or hard disc with FAT12 or FAT16
1454284194Sdelphij>>>>>>>21	ubyte		=0xF8		
1455284194Sdelphij# 360 KiB with media descriptor F8h, 9 sectors per track ,single sided floppy implies FAT12
1456284194Sdelphij>>>>>>>>19	ubequad	0xd002f80300090001	\b, FAT (12 bit by descriptor+geometry)
1457284194Sdelphij# hard disc with FAT12 or FAT16
1458284194Sdelphij>>>>>>>>19	default		x		\b, FAT (1Y bit by descriptor)
1459284194Sdelphij# with media descriptor FAh floppy, RAM disc with FAT12 or FAT16 or Tandy hard disc
1460284194Sdelphij>>>>>>>21	ubyte		=0xFA		
1461284194Sdelphij# 320 KiB with media descriptor FAh, 8 sectors per track ,single sided floppy implies FAT12
1462284194Sdelphij>>>>>>>>19	ubequad	0x8002fa0200080001	\b, FAT (12 bit by descriptor+geometry)
1463284194Sdelphij# RAM disc with FAT12 or FAT16 or Tandy hard disc
1464284194Sdelphij>>>>>>>>19	default		x		\b, FAT (1Y bit by descriptor)
1465284194Sdelphij# others are floppy
1466284194Sdelphij>>>>>>>21	default		x		\b, FAT (12 bit by descriptor)
1467284194Sdelphij# FAT32 bit specific
1468284194Sdelphij>>>>>82		string/c	fat32		\b, FAT (32 bit)
1469284194Sdelphij>>>>>>36	ulelong		x		\b, sectors/FAT %u
1470284194Sdelphij# http://technet.microsoft.com/en-us/library/cc977221.aspx
1471284194Sdelphij>>>>>>40	uleshort	>0		\b, extension flags 0x%x
1472284194Sdelphij#>>>>>>40	uleshort	=0		\b, extension flags %hu
1473284194Sdelphij>>>>>>42	uleshort	>0		\b, fsVersion %u
1474284194Sdelphij#>>>>>>42	uleshort	=0		\b, fsVersion %u (usual)
1475284194Sdelphij>>>>>>44	ulelong		>2		\b, rootdir cluster %u
1476284194Sdelphij#>>>>>>44	ulelong		=2		\b, rootdir cluster %u
1477284194Sdelphij#>>>>>>44	ulelong		=1		\b, rootdir cluster %u
1478284194Sdelphij>>>>>>48	uleshort	>1		\b, infoSector %u
1479284194Sdelphij#>>>>>>48	uleshort	=1		\b, infoSector %u (usual)
1480284194Sdelphij>>>>>>48	uleshort	<1		\b, infoSector %u
1481284194Sdelphij# 0 or 0xFFFF instead of usual 6 means no backup sector
1482284194Sdelphij>>>>>>50	uleshort	=0xFFFF		\b, no Backup boot sector
1483284194Sdelphij>>>>>>50	uleshort	=0		\b, no Backup boot sector
1484284194Sdelphij#>>>>>>50	uleshort	=6		\b, Backup boot sector %u (usual) 
1485284194Sdelphij>>>>>>50	default		x		
1486284194Sdelphij>>>>>>>50	uleshort	x		\b, Backup boot sector %u
1487284194Sdelphij# corrected by Joerg Jenderek at Feb 2011 according to http://thestarman.pcministry.com/asm/mbr/MSWIN41.htm#FSINFO
1488284194Sdelphij>>>>>>52	ulelong		>0		\b, reserved1 0x%x
1489284194Sdelphij>>>>>>56	ulelong		>0		\b, reserved2 0x%x
1490284194Sdelphij>>>>>>60	ulelong		>0		\b, reserved3 0x%x
1491284194Sdelphij# same structure as FAT1X 
1492284194Sdelphij#>>>>>>64	ubyte		=0x80		\b, physical drive 0x%x=80 (usual harddisk)
1493284194Sdelphij#>>>>>>64	ubyte		=0		\b, physical drive 0x%x=0 (usual floppy)
1494284194Sdelphij>>>>>>64	ubyte		!0x80		
1495284194Sdelphij>>>>>>>64	ubyte		>0		\b, physical drive 0x%x
1496284194Sdelphij# in Windows NT bit 0 is a dirty flag to request chkdsk at boot time. bit 1 requests surface scan too
1497284194Sdelphij>>>>>>65	ubyte		>0		\b, reserved 0x%x
1498284194Sdelphij>>>>>>66	ubyte		!0x29		\b, dos < 4.0 BootSector (0x%x)
1499284194Sdelphij>>>>>>66	ubyte		=0x29
1500284194Sdelphij>>>>>>>67	ulelong		x		\b, serial number 0x%x
1501284194Sdelphij>>>>>>>71	string		<NO\ NAME	\b, label: "%11.11s"
1502284194Sdelphij>>>>>>>71	string		>NO\ NAME	\b, label: "%11.11s"
1503284194Sdelphij>>>>>>>71	string		=NO\ NAME	\b, unlabeled
1504284194Sdelphij# additional tests for floppy image added by Joerg Jenderek
1505284194Sdelphij# no fixed disk 
1506284194Sdelphij>>>>>21		ubyte		!0xF8		
1507284194Sdelphij# floppy media with 12 bit FAT
1508284194Sdelphij>>>>>>54	string		!FAT16		
1509284194Sdelphij# test for FAT after bootsector
1510284194Sdelphij>>>>>>>(11.s)	ulelong&0x00ffffF0	0x00ffffF0	\b, followed by FAT
1511284194Sdelphij# floppy image
1512284194Sdelphij!:mime application/x-ima
1513284194Sdelphij# NTFS specific added by Joerg Jenderek at Mar 2011 according to http://thestarman.pcministry.com/asm/mbr/NTFSBR.htm
1514284194Sdelphij# and http://homepage.ntlworld.com/jonathan.deboynepollard/FGA/bios-parameter-block.html
1515284194Sdelphij# 0 FATs
1516284194Sdelphij>>>>>16	ubyte		=0		
1517284194Sdelphij# 0 root entries
1518284194Sdelphij>>>>>>17	uleshort	=0		
1519284194Sdelphij# 0 DOS sectors
1520284194Sdelphij>>>>>>>19	uleshort	=0		
1521284194Sdelphij# 0 sectors/FAT
1522284194Sdelphij# dos < 4.0 BootSector value found is 0x80
1523284194Sdelphij#38	ubyte		=0x80			\b, dos < 4.0 BootSector (0x%x)
1524284194Sdelphij>>>>>>>>22	uleshort	=0		\b; NTFS
1525284194Sdelphij>>>>>>>>>24	uleshort	>0		\b, sectors/track %u
1526284194Sdelphij>>>>>>>>>36	ulelong		!0x800080	\b, physical drive 0x%x
1527284194Sdelphij>>>>>>>>>40	ulequad		>0		\b, sectors %lld
1528284194Sdelphij>>>>>>>>>48	ulequad		>0		\b, $MFT start cluster %lld
1529284194Sdelphij>>>>>>>>>56	ulequad		>0		\b, $MFTMirror start cluster %lld
1530284194Sdelphij# Values 0 to 127 represent MFT record sizes of 0 to 127 clusters.
1531284194Sdelphij# Values 128 to 255 represent MFT record sizes of 2^(256-N) bytes. 
1532284194Sdelphij>>>>>>>>>64	lelong		<256		
1533284194Sdelphij>>>>>>>>>>64	lelong		<128		\b, clusters/RecordSegment %d
1534284194Sdelphij>>>>>>>>>>64	ubyte		>127		\b, bytes/RecordSegment 2^(-1*%i)
1535284194Sdelphij# Values 0 to 127 represent index block sizes of 0 to 127 clusters.
1536284194Sdelphij# Values 128 to 255 represent index block sizes of 2^(256-N) byte
1537284194Sdelphij>>>>>>>>>68	ulelong		<256		
1538284194Sdelphij>>>>>>>>>>68	ulelong		<128		\b, clusters/index block %d
1539284194Sdelphij#>>>>>>>>>>68	ulelong		>127		\b, bytes/index block 2^(256-%d)
1540284194Sdelphij>>>>>>>>>>68	ubyte		>127		\b, bytes/index block 2^(-1*%i)
1541284194Sdelphij>>>>>>>>>72	ulequad		x		\b, serial number 0%llx
1542284194Sdelphij>>>>>>>>>80	ulelong		>0		\b, checksum 0x%x
1543284194Sdelphij#>>>>>>>>>80	ulelong		=0		\b, checksum 0x%x=0 (usual)
1544284194Sdelphij>>>>>>>>>0x258	ulelong&0x00009090	=0x00009090	
1545284194Sdelphij>>>>>>>>>>&-92		indirect	x	\b; contains 
1546284194Sdelphij# For 2nd NTFS sector added by Joerg Jenderek at Jan 2013
1547284194Sdelphij# http://thestarman.pcministry.com/asm/mbr/NTFSbrHexEd.htm
1548284194Sdelphij# unused assembler instructions JMP y2;NOP;NOP
1549284194Sdelphij0x056		ulelong&0xFFFF0FFF	0x909002EB	
1550284194Sdelphij# unicode loadername terminated by CTRL-D
1551284194Sdelphij>(0.s*2)	ulelong&0xFFFFFF00	0x00040000		
1552284194Sdelphij# loadernames are NTLDR,CMLDR,PELDR,$LDR$ or BOOTMGR
1553284194Sdelphij>>0x002		lestring16	x	Microsoft Windows XP/VISTA bootloader %-5.5s
1554284194Sdelphij>>0x12		string		$	
1555284194Sdelphij>>>0x0c		lestring16	x	\b%-2.2s
1556284194Sdelphij### DOS,NTFS boot sectors end
1557284194Sdelphij
1558284194Sdelphij9564	lelong		0x00011954	Unix Fast File system [v1] (little-endian),
1559284194Sdelphij>8404	string		x		last mounted on %s,
1560284194Sdelphij#>9504	ledate		x		last checked at %s,
1561284194Sdelphij>8224	ledate		x		last written at %s,
1562284194Sdelphij>8401	byte		x		clean flag %d,
1563284194Sdelphij>8228	lelong		x		number of blocks %d,
1564284194Sdelphij>8232	lelong		x		number of data blocks %d,
1565284194Sdelphij>8236	lelong		x		number of cylinder groups %d,
1566284194Sdelphij>8240	lelong		x		block size %d,
1567284194Sdelphij>8244	lelong		x		fragment size %d,
1568284194Sdelphij>8252	lelong		x		minimum percentage of free blocks %d,
1569284194Sdelphij>8256	lelong		x		rotational delay %dms,
1570284194Sdelphij>8260	lelong		x		disk rotational speed %drps,
1571284194Sdelphij>8320	lelong		0		TIME optimization
1572284194Sdelphij>8320	lelong		1		SPACE optimization
1573284194Sdelphij
1574284194Sdelphij42332	lelong		0x19540119	Unix Fast File system [v2] (little-endian)
1575284194Sdelphij>&-1164	string		x		last mounted on %s,
1576284194Sdelphij>&-696	string		>\0		volume name %s,
1577284194Sdelphij>&-304	leqldate	x		last written at %s,
1578284194Sdelphij>&-1167	byte		x		clean flag %d,
1579284194Sdelphij>&-1168	byte		x		readonly flag %d,
1580284194Sdelphij>&-296	lequad		x		number of blocks %lld,
1581284194Sdelphij>&-288	lequad		x		number of data blocks %lld,
1582284194Sdelphij>&-1332	lelong		x		number of cylinder groups %d,
1583284194Sdelphij>&-1328	lelong		x		block size %d,
1584284194Sdelphij>&-1324	lelong		x		fragment size %d,
1585284194Sdelphij>&-180	lelong		x		average file size %d,
1586284194Sdelphij>&-176	lelong		x		average number of files in dir %d,
1587284194Sdelphij>&-272	lequad		x		pending blocks to free %lld,
1588284194Sdelphij>&-264	lelong		x		pending inodes to free %d,
1589284194Sdelphij>&-664	lequad		x		system-wide uuid %0llx,
1590284194Sdelphij>&-1316	lelong		x		minimum percentage of free blocks %d,
1591284194Sdelphij>&-1248	lelong		0		TIME optimization
1592284194Sdelphij>&-1248	lelong		1		SPACE optimization
1593284194Sdelphij
1594284194Sdelphij66908	lelong		0x19540119	Unix Fast File system [v2] (little-endian)
1595284194Sdelphij>&-1164	string		x		last mounted on %s,
1596284194Sdelphij>&-696	string		>\0		volume name %s,
1597284194Sdelphij>&-304	leqldate	x		last written at %s,
1598284194Sdelphij>&-1167	byte		x		clean flag %d,
1599284194Sdelphij>&-1168	byte		x		readonly flag %d,
1600284194Sdelphij>&-296	lequad		x		number of blocks %lld,
1601284194Sdelphij>&-288	lequad		x		number of data blocks %lld,
1602284194Sdelphij>&-1332	lelong		x		number of cylinder groups %d,
1603284194Sdelphij>&-1328	lelong		x		block size %d,
1604284194Sdelphij>&-1324	lelong		x		fragment size %d,
1605284194Sdelphij>&-180	lelong		x		average file size %d,
1606284194Sdelphij>&-176	lelong		x		average number of files in dir %d,
1607284194Sdelphij>&-272	lequad		x		pending blocks to free %lld,
1608284194Sdelphij>&-264	lelong		x		pending inodes to free %d,
1609284194Sdelphij>&-664	lequad		x		system-wide uuid %0llx,
1610284194Sdelphij>&-1316	lelong		x		minimum percentage of free blocks %d,
1611284194Sdelphij>&-1248	lelong		0		TIME optimization
1612284194Sdelphij>&-1248	lelong		1		SPACE optimization
1613284194Sdelphij
1614284194Sdelphij9564	belong		0x00011954	Unix Fast File system [v1] (big-endian),
1615284194Sdelphij>7168   belong		0x4c41424c	Apple UFS Volume
1616284194Sdelphij>>7186  string		x		named %s,
1617284194Sdelphij>>7176  belong		x		volume label version %d,
1618284194Sdelphij>>7180  bedate		x		created on %s,
1619284194Sdelphij>8404	string		x		last mounted on %s,
1620284194Sdelphij#>9504	bedate		x		last checked at %s,
1621284194Sdelphij>8224	bedate		x		last written at %s,
1622284194Sdelphij>8401	byte		x		clean flag %d,
1623284194Sdelphij>8228	belong		x		number of blocks %d,
1624284194Sdelphij>8232	belong		x		number of data blocks %d,
1625284194Sdelphij>8236	belong		x		number of cylinder groups %d,
1626284194Sdelphij>8240	belong		x		block size %d,
1627284194Sdelphij>8244	belong		x		fragment size %d,
1628284194Sdelphij>8252	belong		x		minimum percentage of free blocks %d,
1629284194Sdelphij>8256	belong		x		rotational delay %dms,
1630284194Sdelphij>8260	belong		x		disk rotational speed %drps,
1631284194Sdelphij>8320	belong		0		TIME optimization
1632284194Sdelphij>8320	belong		1		SPACE optimization
1633284194Sdelphij
1634284194Sdelphij42332	belong		0x19540119	Unix Fast File system [v2] (big-endian)
1635284194Sdelphij>&-1164	string		x		last mounted on %s,
1636284194Sdelphij>&-696	string		>\0		volume name %s,
1637284194Sdelphij>&-304	beqldate	x		last written at %s,
1638284194Sdelphij>&-1167	byte		x		clean flag %d,
1639284194Sdelphij>&-1168	byte		x		readonly flag %d,
1640284194Sdelphij>&-296	bequad		x		number of blocks %lld,
1641284194Sdelphij>&-288	bequad		x		number of data blocks %lld,
1642284194Sdelphij>&-1332	belong		x		number of cylinder groups %d,
1643284194Sdelphij>&-1328	belong		x		block size %d,
1644284194Sdelphij>&-1324	belong		x		fragment size %d,
1645284194Sdelphij>&-180	belong		x		average file size %d,
1646284194Sdelphij>&-176	belong		x		average number of files in dir %d,
1647284194Sdelphij>&-272	bequad		x		pending blocks to free %lld,
1648284194Sdelphij>&-264	belong		x		pending inodes to free %d,
1649284194Sdelphij>&-664	bequad		x		system-wide uuid %0llx,
1650284194Sdelphij>&-1316	belong		x		minimum percentage of free blocks %d,
1651284194Sdelphij>&-1248	belong		0		TIME optimization
1652284194Sdelphij>&-1248	belong		1		SPACE optimization
1653284194Sdelphij
1654284194Sdelphij66908	belong		0x19540119	Unix Fast File system [v2] (big-endian)
1655284194Sdelphij>&-1164	string		x		last mounted on %s,
1656284194Sdelphij>&-696	string		>\0		volume name %s,
1657284194Sdelphij>&-304	beqldate	x		last written at %s,
1658284194Sdelphij>&-1167	byte		x		clean flag %d,
1659284194Sdelphij>&-1168	byte		x		readonly flag %d,
1660284194Sdelphij>&-296	bequad		x		number of blocks %lld,
1661284194Sdelphij>&-288	bequad		x		number of data blocks %lld,
1662284194Sdelphij>&-1332	belong		x		number of cylinder groups %d,
1663284194Sdelphij>&-1328	belong		x		block size %d,
1664284194Sdelphij>&-1324	belong		x		fragment size %d,
1665284194Sdelphij>&-180	belong		x		average file size %d,
1666284194Sdelphij>&-176	belong		x		average number of files in dir %d,
1667284194Sdelphij>&-272	bequad		x		pending blocks to free %lld,
1668284194Sdelphij>&-264	belong		x		pending inodes to free %d,
1669284194Sdelphij>&-664	bequad		x		system-wide uuid %0llx,
1670284194Sdelphij>&-1316	belong		x		minimum percentage of free blocks %d,
1671284194Sdelphij>&-1248	belong		0		TIME optimization
1672284194Sdelphij>&-1248	belong		1		SPACE optimization
1673284194Sdelphij
1674284194Sdelphij# ext2/ext3 filesystems - Andreas Dilger <adilger@dilger.ca>
1675284194Sdelphij# ext4 filesystem - Eric Sandeen <sandeen@sandeen.net>
1676284194Sdelphij# volume label and UUID Russell Coker
1677284194Sdelphij# http://etbe.coker.com.au/2008/07/08/label-vs-uuid-vs-device/
1678284194Sdelphij0x438   leshort         0xEF53          Linux
1679284194Sdelphij>0x44c  lelong          x               rev %d
1680284194Sdelphij>0x43e  leshort         x               \b.%d
1681284194Sdelphij# No journal?  ext2
1682284194Sdelphij>0x45c  lelong          ^0x0000004      ext2 filesystem data
1683284194Sdelphij>>0x43a leshort         ^0x0000001      (mounted or unclean)
1684284194Sdelphij# Has a journal?  ext3 or ext4
1685284194Sdelphij>0x45c  lelong          &0x0000004
1686284194Sdelphij#  and small INCOMPAT?
1687284194Sdelphij>>0x460 lelong          <0x0000040
1688284194Sdelphij#   and small RO_COMPAT?
1689284194Sdelphij>>>0x464 lelong         <0x0000008      ext3 filesystem data
1690284194Sdelphij#   else large RO_COMPAT?
1691284194Sdelphij>>>0x464 lelong         >0x0000007      ext4 filesystem data
1692284194Sdelphij#  else large INCOMPAT?
1693284194Sdelphij>>0x460	lelong          >0x000003f      ext4 filesystem data
1694284194Sdelphij>0x468	belong		x		\b, UUID=%08x
1695284194Sdelphij>0x46c	beshort		x		\b-%04x
1696284194Sdelphij>0x46e	beshort		x		\b-%04x
1697284194Sdelphij>0x470	beshort		x		\b-%04x
1698284194Sdelphij>0x472	belong		x		\b-%08x
1699284194Sdelphij>0x476	beshort		x		\b%04x
1700284194Sdelphij>0x478	string		>0		\b, volume name "%s"
1701284194Sdelphij# General flags for any ext* fs
1702284194Sdelphij>0x460	lelong          &0x0000004      (needs journal recovery)
1703284194Sdelphij>0x43a	leshort         &0x0000002      (errors)
1704284194Sdelphij# INCOMPAT flags
1705284194Sdelphij>0x460	lelong          &0x0000001      (compressed)
1706284194Sdelphij#>0x460	lelong          &0x0000002      (filetype)
1707284194Sdelphij#>0x460	lelong          &0x0000010      (meta bg)
1708284194Sdelphij>0x460	lelong          &0x0000040      (extents)
1709284194Sdelphij>0x460	lelong          &0x0000080      (64bit)
1710284194Sdelphij#>0x460	lelong          &0x0000100      (mmp)
1711284194Sdelphij#>0x460	lelong          &0x0000200      (flex bg)
1712284194Sdelphij# RO_INCOMPAT flags
1713284194Sdelphij#>0x464	lelong          &0x0000001      (sparse super)
1714284194Sdelphij>0x464	lelong          &0x0000002      (large files)
1715284194Sdelphij>0x464	lelong          &0x0000008      (huge files)
1716284194Sdelphij#>0x464	lelong          &0x0000010      (gdt checksum)
1717284194Sdelphij#>0x464	lelong          &0x0000020      (many subdirs)
1718284194Sdelphij#>0x463	lelong          &0x0000040      (extra isize)
1719284194Sdelphij
1720284194Sdelphij# Minix filesystems - Juan Cespedes <cespedes@debian.org>
1721284194Sdelphij0x410	leshort		0x137f
1722284194Sdelphij!:strength / 2
1723284194Sdelphij>0x402	beshort		< 100
1724284194Sdelphij>0x402	beshort		> -1		Minix filesystem, V1, %d zones
1725284194Sdelphij>0x1e	string		minix		\b, bootable
1726284194Sdelphij0x410	beshort		0x137f
1727284194Sdelphij!:strength / 2
1728284194Sdelphij>0x402	beshort		< 100
1729284194Sdelphij>0x402	beshort		> -1		Minix filesystem, V1 (big endian), %d zones
1730284194Sdelphij>0x1e	string		minix		\b, bootable
1731284194Sdelphij0x410	leshort		0x138f
1732284194Sdelphij!:strength / 2
1733284194Sdelphij>0x402	beshort		< 100
1734284194Sdelphij>0x402	beshort		> -1		Minix filesystem, V1, 30 char names, %d zones
1735284194Sdelphij>0x1e	string		minix		\b, bootable
1736284194Sdelphij0x410	beshort		0x138f
1737284194Sdelphij!:strength / 2
1738284194Sdelphij>0x402	beshort		< 100
1739284194Sdelphij>0x402	beshort		> -1		Minix filesystem, V1, 30 char names (big endian), %d zones
1740284194Sdelphij>0x1e	string		minix		\b, bootable
1741284194Sdelphij0x410	leshort		0x2468
1742284194Sdelphij>0x402	beshort		< 100
1743284194Sdelphij>>0x402	beshort		> -1		Minix filesystem, V2, %d zones
1744284194Sdelphij>0x1e	string		minix		\b, bootable
1745284194Sdelphij0x410	beshort		0x2468
1746284194Sdelphij>0x402	beshort		< 100
1747284194Sdelphij>0x402	beshort		> -1		Minix filesystem, V2 (big endian), %d zones
1748284194Sdelphij>0x1e	string		minix		\b, bootable
1749284194Sdelphij
1750284194Sdelphij0x410	leshort		0x2478
1751284194Sdelphij>0x402	beshort		< 100
1752284194Sdelphij>0x402	beshort		> -1		Minix filesystem, V2, 30 char names, %d zones
1753284194Sdelphij>0x1e	string		minix		\b, bootable
1754284194Sdelphij0x410	leshort		0x2478
1755284194Sdelphij>0x402	beshort		< 100
1756284194Sdelphij>0x402	beshort		> -1		Minix filesystem, V2, 30 char names, %d zones
1757284194Sdelphij>0x1e	string		minix		\b, bootable
1758284194Sdelphij0x410	beshort		0x2478
1759284194Sdelphij>0x402	beshort		!0		Minix filesystem, V2, 30 char names (big endian), %d zones
1760284194Sdelphij>0x1e	string		minix		\b, bootable
1761284194Sdelphij0x410	leshort		0x4d5a
1762284194Sdelphij>0x402	beshort		!0		Minix filesystem, V3, %d zones
1763284194Sdelphij>0x1e	string		minix		\b, bootable
1764284194Sdelphij
1765284194Sdelphij# SGI disk labels - Nathan Scott <nathans@debian.org>
1766284194Sdelphij0	belong		0x0BE5A941	SGI disk label (volume header)
1767284194Sdelphij
1768284194Sdelphij# SGI XFS filesystem - Nathan Scott <nathans@debian.org>
1769284194Sdelphij0	belong		0x58465342	SGI XFS filesystem data
1770284194Sdelphij>0x4	belong		x		(blksz %d,
1771284194Sdelphij>0x68	beshort		x		inosz %d,
1772284194Sdelphij>0x64	beshort		^0x2004		v1 dirs)
1773284194Sdelphij>0x64	beshort		&0x2004		v2 dirs)
1774284194Sdelphij
1775284194Sdelphij############################################################################
1776284194Sdelphij# Minix-ST kernel floppy
1777284194Sdelphij0x800	belong		0x46fc2700	Atari-ST Minix kernel image
1778284194Sdelphij# http://en.wikipedia.org/wiki/BIOS_parameter_block
1779284194Sdelphij# floppies with valid BPB and any instruction at beginning
1780284194Sdelphij>19	string		\240\005\371\005\0\011\0\2\0	\b, 720k floppy
1781284194Sdelphij>19	string		\320\002\370\005\0\011\0\1\0	\b, 360k floppy
1782284194Sdelphij
1783284194Sdelphij############################################################################
1784284194Sdelphij# Hmmm, is this a better way of detecting _standard_ floppy images ?
1785284194Sdelphij19	string		\320\002\360\003\0\011\0\1\0	DOS floppy 360k
1786284194Sdelphij>0x1FE	leshort		0xAA55		\b, DOS/MBR hard disk boot sector
1787284194Sdelphij19	string		\240\005\371\003\0\011\0\2\0	DOS floppy 720k
1788284194Sdelphij>0x1FE	leshort		0xAA55		\b, DOS/MBR hard disk boot sector
1789284194Sdelphij19	string		\100\013\360\011\0\022\0\2\0	DOS floppy 1440k
1790284194Sdelphij>0x1FE	leshort		0xAA55		\b, DOS/MBR hard disk boot sector
1791284194Sdelphij
1792284194Sdelphij19	string		\240\005\371\005\0\011\0\2\0	DOS floppy 720k, IBM
1793284194Sdelphij>0x1FE	leshort		0xAA55		\b, DOS/MBR hard disk boot sector
1794284194Sdelphij19	string		\100\013\371\005\0\011\0\2\0	DOS floppy 1440k, mkdosfs
1795284194Sdelphij>0x1FE	leshort		0xAA55		\b, DOS/MBR hard disk boot sector
1796284194Sdelphij
1797284194Sdelphij19	string		\320\002\370\005\0\011\0\1\0	Atari-ST floppy 360k
1798284194Sdelphij19	string		\240\005\371\005\0\011\0\2\0	Atari-ST floppy 720k
1799284194Sdelphij#			|       |   |     |     |
1800284194Sdelphij#			|       |   |     |     heads
1801284194Sdelphij#			|       |   |     sectors/track
1802284194Sdelphij#			|       |   sectors/FAT
1803284194Sdelphij#			|       media descriptor
1804284194Sdelphij#		BPB:	sectors
1805284194Sdelphij
1806284194Sdelphij#  Valid media descriptor bytes for MS-DOS:
1807284194Sdelphij#
1808284194Sdelphij#     Byte   Capacity   Media Size and Type
1809284194Sdelphij#     -------------------------------------------------
1810284194Sdelphij#
1811284194Sdelphij#     F0     2.88 MB    3.5-inch, 2-sided, 36-sector
1812284194Sdelphij#     F0     1.44 MB    3.5-inch, 2-sided, 18-sector
1813284194Sdelphij#     F9     720K       3.5-inch, 2-sided, 9-sector
1814284194Sdelphij#     F9     1.2 MB     5.25-inch, 2-sided, 15-sector
1815284194Sdelphij#     FD     360K       5.25-inch, 2-sided, 9-sector
1816284194Sdelphij#     FF     320K       5.25-inch, 2-sided, 8-sector
1817284194Sdelphij#     FC     180K       5.25-inch, 1-sided, 9-sector
1818284194Sdelphij#     FE     160K       5.25-inch, 1-sided, 8-sector
1819284194Sdelphij#     FE     250K       8-inch, 1-sided, single-density
1820284194Sdelphij#     FD     500K       8-inch, 2-sided, single-density
1821284194Sdelphij#     FE     1.2 MB     8-inch, 2-sided, double-density
1822284194Sdelphij#     F8     -----      Fixed disk 
1823284194Sdelphij#
1824284194Sdelphij#     FC     xxxK       Apricot 70x1x9 boot disk.
1825284194Sdelphij#
1826284194Sdelphij# Originally a bitmap:
1827284194Sdelphij#  xxxxxxx0	Not two sided
1828284194Sdelphij#  xxxxxxx1	Double sided
1829284194Sdelphij#  xxxxxx0x	Not 8 SPT
1830284194Sdelphij#  xxxxxx1x	8 SPT
1831284194Sdelphij#  xxxxx0xx	Not Removable drive
1832284194Sdelphij#  xxxxx1xx	Removable drive
1833284194Sdelphij#  11111xxx	Must be one.
1834284194Sdelphij#
1835284194Sdelphij# But now it's rather random:
1836284194Sdelphij#  111111xx	Low density disk
1837284194Sdelphij#        00	SS, Not 8 SPT
1838284194Sdelphij#        01	DS, Not 8 SPT
1839284194Sdelphij#        10	SS, 8 SPT
1840284194Sdelphij#        11	DS, 8 SPT
1841284194Sdelphij#
1842284194Sdelphij#  11111001	Double density 3 1/2 floppy disk, high density 5 1/4
1843284194Sdelphij#  11110000	High density 3 1/2 floppy disk
1844284194Sdelphij#  11111000	Hard disk any format
1845284194Sdelphij#
1846284194Sdelphij
1847284194Sdelphij# all FAT12 (strength=70) floppies with sectorsize 512 added by Joerg Jenderek at Jun 2013
1848284194Sdelphij# http://en.wikipedia.org/wiki/File_Allocation_Table#Exceptions
1849284194Sdelphij# Too Weak.
1850284194Sdelphij#512		ubelong&0xE0ffff00	0xE0ffff00		
1851284194Sdelphij# without valid Media descriptor in place of BPB, cases with are done at other places
1852284194Sdelphij#>21		ubyte			<0xE5			floppy with old FAT filesystem
1853284194Sdelphij# but valid Media descriptor at begin of FAT
1854284194Sdelphij#>>512		ubyte			=0xed			720k
1855284194Sdelphij#>>512		ubyte			=0xf0			1440k
1856284194Sdelphij#>>512		ubyte			=0xf8			720k
1857284194Sdelphij#>>512		ubyte			=0xf9			1220k
1858284194Sdelphij#>>512		ubyte			=0xfa			320k
1859284194Sdelphij#>>512		ubyte			=0xfb			640k
1860284194Sdelphij#>>512		ubyte			=0xfc			180k
1861284194Sdelphij# look like an an old DOS directory entry
1862284194Sdelphij#>>>0xA0E	ubequad			0			
1863284194Sdelphij#>>>>0xA00	ubequad			!0			
1864284194Sdelphij#!:mime application/x-ima
1865284194Sdelphij#>>512		ubyte			=0xfd			
1866284194Sdelphij# look for 2nd FAT at different location to distinguish between 360k and 500k
1867284194Sdelphij#>>>0x600	ubelong&0xE0ffff00	0xE0ffff00		360k
1868284194Sdelphij#>>>0x500	ubelong&0xE0ffff00	0xE0ffff00		500k
1869284194Sdelphij#>>>0xA0E	ubequad			0			
1870284194Sdelphij#!:mime application/x-ima
1871284194Sdelphij#>>512		ubyte			=0xfe			
1872284194Sdelphij#>>>0x400	ubelong&0xE0ffff00	0xE0ffff00		160k
1873284194Sdelphij#>>>>0x60E	ubequad			0			
1874284194Sdelphij#>>>>>0x600	ubequad			!0			
1875284194Sdelphij#!:mime application/x-ima
1876284194Sdelphij#>>>0xC00	ubelong&0xE0ffff00	0xE0ffff00		1200k
1877284194Sdelphij#>>512		ubyte			=0xff			320k
1878284194Sdelphij#>>>0x60E	ubequad			0			
1879284194Sdelphij#>>>>0x600	ubequad			!0			
1880284194Sdelphij#!:mime application/x-ima
1881284194Sdelphij#>>512		ubyte			x			\b, Media descriptor 0x%x
1882284194Sdelphij# without x86 jump instruction
1883284194Sdelphij#>>0		ulelong&0x804000E9	!0x000000E9		
1884284194Sdelphij# assembler instructions: CLI;MOV SP,1E7;MOV AX;07c0;MOV 	
1885284194Sdelphij#>>>0	ubequad				0xfabce701b8c0078e	\b, MS-DOS 1.12 bootloader
1886284194Sdelphij# IOSYS.COM+MSDOS.COM
1887284194Sdelphij#>>>>0xc4	use			2xDOS-filename
1888284194Sdelphij#>>0		ulelong&0x804000E9	=0x000000E9	
1889284194Sdelphij# only x86 short jump instruction found
1890284194Sdelphij#>>>0		ubyte			=0xEB
1891284194Sdelphij#>>>>1		ubyte			x			\b, code offset 0x%x+2
1892284194Sdelphij# http://thestarman.pcministry.com/DOS/ibm100/Boot.htm
1893284194Sdelphij# assembler instructions: CLI;MOV AX,CS;MOV DS,AX;MOV DX,0		
1894284194Sdelphij#>>>>(1.b+2)	ubequad			0xfa8cc88ed8ba0000	\b, PC-DOS 1.0 bootloader 
1895284194Sdelphij# ibmbio.com+ibmdos.com
1896284194Sdelphij#>>>>>0x176	use			DOS-filename
1897284194Sdelphij#>>>>>0x181	ubyte			x			\b+
1898284194Sdelphij#>>>>>0x182	use			DOS-filename
1899284194Sdelphij# http://thestarman.pcministry.com/DOS/ibm110/Boot.htm
1900284194Sdelphij# assembler instructions: CLI;MOV AX,CS;MOV DS,AX;XOR DX,DX;MOV		
1901284194Sdelphij#>>>>(1.b+2)	ubequad			0xfa8cc88ed833d28e	\b, PC-DOS 1.1 bootloader 
1902284194Sdelphij# ibmbio.com+ibmdos.com
1903284194Sdelphij#>>>>>0x18b	use			DOS-filename
1904284194Sdelphij#>>>>>0x196	ubyte			x			\b+
1905284194Sdelphij#>>>>>0x197	use			DOS-filename
1906284194Sdelphij# http://en.wikipedia.org/wiki/Zenith_Data_Systems
1907284194Sdelphij# assembler instructions: MOV BX,07c0;MOV SS,BX;MOV SP,01c6		
1908284194Sdelphij#>>>>(1.b+2)	ubequad			0xbbc0078ed3bcc601	\b, Zenith Data Systems MS-DOS 1.25 bootloader
1909284194Sdelphij# IO.SYS+MSDOS.SYS
1910284194Sdelphij#>>>>>0x20	use			2xDOS-filename
1911284194Sdelphij# http://en.wikipedia.org/wiki/Corona_Data_Systems
1912284194Sdelphij# assembler instructions: MOV AX,CS;MOV DS,AX;CLI;MOV SS,AX;		
1913284194Sdelphij#>>>>(1.b+2)	ubequad			0x8cc88ed8fa8ed0bc	\b, MS-DOS 1.25 bootloader
1914284194Sdelphij# IO.SYS+MSDOS.SYS
1915284194Sdelphij#>>>>>0x69	use			2xDOS-filename
1916284194Sdelphij# assembler instructions: CLI;PUSH CS;POP SS;MOV SP,7c00;		
1917284194Sdelphij#>>>>(1.b+2)	ubequad			0xfa0e17bc007cb860	\b, MS-DOS 2.11 bootloader
1918284194Sdelphij# defect IO.SYS+MSDOS.SYS ?
1919284194Sdelphij#>>>>>0x162	use			2xDOS-filename
1920284194Sdelphij
1921284194Sdelphij0	name				cdrom
1922284194Sdelphij>38913	string   !NSR0      ISO 9660 CD-ROM filesystem data
1923284194Sdelphij!:mime	application/x-iso9660-image
1924284194Sdelphij>38913	string    NSR0      UDF filesystem data
1925284194Sdelphij!:mime	application/x-iso9660-image
1926284194Sdelphij>>38917	string    1         (version 1.0)
1927284194Sdelphij>>38917	string    2         (version 1.5)
1928284194Sdelphij>>38917	string    3         (version 2.0)
1929284194Sdelphij>>38917	byte     >0x33      (unknown version, ID 0x%X)
1930284194Sdelphij>>38917	byte     <0x31      (unknown version, ID 0x%X)
1931284194Sdelphij# "application id" which appears to be used as a volume label
1932284194Sdelphij>32808	string/T  >\0       '%s'
1933284194Sdelphij>34816	string    \000CD001\001EL\ TORITO\ SPECIFICATION    (bootable)
1934284194Sdelphij37633	string    CD001     ISO 9660 CD-ROM filesystem data (raw 2352 byte sectors)
1935284194Sdelphij!:mime	application/x-iso9660-image
1936284194Sdelphij32777	string    CDROM     High Sierra CD-ROM filesystem data
1937284194Sdelphij
1938284194Sdelphij# CDROM Filesystems
1939284194Sdelphij# https://en.wikipedia.org/wiki/ISO_9660
1940284194Sdelphij# Modified for UDF by gerardo.cacciari@gmail.com
1941284194Sdelphij32769	string    CD001
1942284194Sdelphij# mime line at that position does not work
1943284194Sdelphij# to display CD-ROM (70=81-11) after MBR (113=40+72+1), partition-table (71=50+21) and before Apple Driver Map (51)
1944284194Sdelphij!:strength -11
1945284194Sdelphij# to display CD-ROM (114=81+33) before MBR (113=40+72+1), partition-table (71=50+21) and Apple Driver Map (51)
1946284194Sdelphij# does not work
1947284194Sdelphij#!:strength +33
1948284194Sdelphij>0	use cdrom
1949284194Sdelphij
1950284194Sdelphij# .cso files
1951284194Sdelphij0    string    CISO	Compressed ISO CD image
1952284194Sdelphij
1953284194Sdelphij# cramfs filesystem - russell@coker.com.au
1954284194Sdelphij0       lelong    0x28cd3d45      Linux Compressed ROM File System data, little endian
1955284194Sdelphij>4      lelong  x size %u
1956284194Sdelphij>8      lelong  &1 version #2
1957284194Sdelphij>8      lelong  &2 sorted_dirs
1958284194Sdelphij>8      lelong  &4 hole_support
1959284194Sdelphij>32     lelong  x CRC 0x%x,
1960284194Sdelphij>36     lelong  x edition %u,
1961284194Sdelphij>40     lelong  x %u blocks,
1962284194Sdelphij>44     lelong  x %u files
1963284194Sdelphij
1964284194Sdelphij0       belong    0x28cd3d45      Linux Compressed ROM File System data, big endian
1965284194Sdelphij>4      belong  x size %u
1966284194Sdelphij>8      belong  &1 version #2
1967284194Sdelphij>8      belong  &2 sorted_dirs
1968284194Sdelphij>8      belong  &4 hole_support
1969284194Sdelphij>32     belong  x CRC 0x%x,
1970284194Sdelphij>36     belong  x edition %u,
1971284194Sdelphij>40     belong  x %u blocks,
1972284194Sdelphij>44     belong  x %u files
1973284194Sdelphij
1974284194Sdelphij# reiserfs - russell@coker.com.au
1975284194Sdelphij0x10034		string	ReIsErFs	ReiserFS V3.5
1976284194Sdelphij0x10034		string	ReIsEr2Fs	ReiserFS V3.6
1977284194Sdelphij0x10034		string	ReIsEr3Fs	ReiserFS V3.6.19
1978284194Sdelphij>0x1002c 	leshort	x		block size %d
1979284194Sdelphij>0x10032	leshort	&2		(mounted or unclean)
1980284194Sdelphij>0x10000	lelong	x		num blocks %d
1981284194Sdelphij>0x10040	lelong	1		tea hash
1982284194Sdelphij>0x10040	lelong	2		yura hash
1983284194Sdelphij>0x10040	lelong	3		r5 hash
1984284194Sdelphij
1985284194Sdelphij# JFFS - russell@coker.com.au
1986284194Sdelphij0	lelong	0x34383931	Linux Journalled Flash File system, little endian
1987284194Sdelphij0	belong	0x34383931	Linux Journalled Flash File system, big endian
1988284194Sdelphij
1989284194Sdelphij# EST flat binary format (which isn't, but anyway)
1990284194Sdelphij# From: Mark Brown <broonie@sirena.org.uk>
1991284194Sdelphij0	string	ESTFBINR	EST flat binary
1992284194Sdelphij
1993284194Sdelphij# Aculab VoIP firmware
1994284194Sdelphij# From: Mark Brown <broonie@sirena.org.uk>
1995284194Sdelphij0	string	VoIP\ Startup\ and	Aculab VoIP firmware
1996284194Sdelphij>35	string	x	format %s
1997284194Sdelphij
1998284194Sdelphij# From: Mark Brown <broonie@sirena.org.uk> [old]
1999284194Sdelphij# From: Behan Webster <behanw@websterwood.com>
2000284194Sdelphij0	belong	0x27051956	u-boot legacy uImage,
2001284194Sdelphij>32	string	x		%s,
2002284194Sdelphij>28	byte	0		Invalid os/
2003284194Sdelphij>28	byte	1		OpenBSD/
2004284194Sdelphij>28	byte	2		NetBSD/
2005284194Sdelphij>28	byte	3		FreeBSD/
2006284194Sdelphij>28	byte	4		4.4BSD/
2007284194Sdelphij>28	byte	5		Linux/
2008284194Sdelphij>28	byte	6		SVR4/
2009284194Sdelphij>28	byte	7		Esix/
2010284194Sdelphij>28	byte	8		Solaris/
2011284194Sdelphij>28	byte	9		Irix/
2012284194Sdelphij>28	byte	10		SCO/
2013284194Sdelphij>28	byte	11		Dell/
2014284194Sdelphij>28	byte	12		NCR/
2015284194Sdelphij>28	byte	13		LynxOS/
2016284194Sdelphij>28	byte	14		VxWorks/
2017284194Sdelphij>28	byte	15		pSOS/
2018284194Sdelphij>28	byte	16		QNX/
2019284194Sdelphij>28	byte	17		Firmware/
2020284194Sdelphij>28	byte	18		RTEMS/
2021284194Sdelphij>28	byte	19		ARTOS/
2022284194Sdelphij>28	byte	20		Unity OS/
2023284194Sdelphij>28	byte	21		INTEGRITY/
2024284194Sdelphij>29	byte	0		\bInvalid CPU,
2025284194Sdelphij>29	byte	1		\bAlpha,
2026284194Sdelphij>29	byte	2		\bARM,
2027284194Sdelphij>29	byte	3		\bIntel x86,
2028284194Sdelphij>29	byte	4		\bIA64,
2029284194Sdelphij>29	byte	5		\bMIPS,
2030284194Sdelphij>29	byte	6		\bMIPS 64-bit,
2031284194Sdelphij>29	byte	7		\bPowerPC,
2032284194Sdelphij>29	byte	8		\bIBM S390,
2033284194Sdelphij>29	byte	9		\bSuperH,
2034284194Sdelphij>29	byte	10		\bSparc,
2035284194Sdelphij>29	byte	11		\bSparc 64-bit,
2036284194Sdelphij>29	byte	12		\bM68K,
2037284194Sdelphij>29	byte	13		\bNios-32,
2038284194Sdelphij>29	byte	14		\bMicroBlaze,
2039284194Sdelphij>29	byte	15		\bNios-II,
2040284194Sdelphij>29	byte	16		\bBlackfin,
2041284194Sdelphij>29	byte	17		\bAVR32,
2042284194Sdelphij>29	byte	18		\bSTMicroelectronics ST200,
2043284194Sdelphij>30	byte	0		Invalid Image
2044284194Sdelphij>30	byte	1		Standalone Program
2045284194Sdelphij>30	byte	2		OS Kernel Image
2046284194Sdelphij>30	byte	3		RAMDisk Image
2047284194Sdelphij>30	byte	4		Multi-File Image
2048284194Sdelphij>30	byte	5		Firmware Image
2049284194Sdelphij>30	byte	6		Script File
2050284194Sdelphij>30	byte	7		Filesystem Image (any type)
2051284194Sdelphij>30	byte	8		Binary Flat Device Tree BLOB
2052284194Sdelphij>31	byte	0		(Not compressed),
2053284194Sdelphij>31	byte	1		(gzip),
2054284194Sdelphij>31	byte	2		(bzip2),
2055284194Sdelphij>31	byte	3		(lzma),
2056284194Sdelphij>12	belong	x		%d bytes,
2057284194Sdelphij>8	bedate	x		%s,
2058284194Sdelphij>16	belong	x		Load Address: 0x%08X,
2059284194Sdelphij>20	belong	x		Entry Point: 0x%08X,
2060284194Sdelphij>4	belong	x		Header CRC: 0x%08X,
2061284194Sdelphij>24	belong	x		Data CRC: 0x%08X
2062284194Sdelphij
2063284194Sdelphij# JFFS2 file system
2064284194Sdelphij0	leshort	0x1984		Linux old jffs2 filesystem data little endian
2065284194Sdelphij0	leshort	0x1985		Linux jffs2 filesystem data little endian
2066284194Sdelphij
2067284194Sdelphij# Squashfs
2068284194Sdelphij0	string	sqsh	Squashfs filesystem, big endian,
2069284194Sdelphij>28	beshort	x	version %d.
2070284194Sdelphij>30	beshort x	\b%d,
2071284194Sdelphij>28	beshort <3
2072284194Sdelphij>>8	belong	x	%d bytes,
2073284194Sdelphij>28	beshort >2
2074284194Sdelphij>>28 beshort <4
2075284194Sdelphij>>>63	bequad x	%lld bytes,
2076284194Sdelphij>>28 beshort >3
2077284194Sdelphij>>>40	bequad x	%lld bytes,
2078284194Sdelphij#>>67	belong	x	%d bytes,
2079284194Sdelphij>4	belong	x	%d inodes,
2080284194Sdelphij>28	beshort <2
2081284194Sdelphij>>32	beshort	x	blocksize: %d bytes,
2082284194Sdelphij>28	beshort >1
2083284194Sdelphij>>28 beshort <4
2084284194Sdelphij>>>51	belong	x	blocksize: %d bytes,
2085284194Sdelphij>>28 beshort >3
2086284194Sdelphij>>>12	belong	x	blocksize: %d bytes,
2087284194Sdelphij>28 beshort <4
2088284194Sdelphij>>39	bedate	x	created: %s
2089284194Sdelphij>28 beshort >3
2090284194Sdelphij>>8	bedate	x	created: %s
2091284194Sdelphij0	string	hsqs	Squashfs filesystem, little endian,
2092284194Sdelphij>28	leshort	x	version %d.
2093284194Sdelphij>30	leshort	x	\b%d,
2094284194Sdelphij>28	leshort <3
2095284194Sdelphij>>8	lelong	x	%d bytes,
2096284194Sdelphij>28	leshort >2
2097284194Sdelphij>>28 leshort <4
2098284194Sdelphij>>>63	lequad x	%lld bytes,
2099284194Sdelphij>>28 leshort >3
2100284194Sdelphij>>>40	lequad x	%lld bytes,
2101284194Sdelphij#>>63	lelong	x	%d bytes,
2102284194Sdelphij>4	lelong	x	%d inodes,
2103284194Sdelphij>28	leshort <2
2104284194Sdelphij>>32	leshort	x	blocksize: %d bytes,
2105284194Sdelphij>28	leshort >1
2106284194Sdelphij>>28 leshort <4
2107284194Sdelphij>>>51	lelong	x	blocksize: %d bytes,
2108284194Sdelphij>>28 leshort >3
2109284194Sdelphij>>>12	lelong	x	blocksize: %d bytes,
2110284194Sdelphij>28 leshort <4
2111284194Sdelphij>>39	ledate	x	created: %s
2112284194Sdelphij>28 leshort >3
2113284194Sdelphij>>8	ledate	x	created: %s
2114284194Sdelphij
2115284194Sdelphij# AFS Dump Magic
2116284194Sdelphij# From: Ty Sarna <tsarna@sarna.org> 
2117284194Sdelphij0       string                  \x01\xb3\xa1\x13\x22    AFS Dump
2118284194Sdelphij>&0     belong                  x                       (v%d)
2119284194Sdelphij>>&0    byte                    0x76
2120284194Sdelphij>>>&0   belong                  x                       Vol %d,
2121284194Sdelphij>>>>&0  byte                    0x6e
2122284194Sdelphij>>>>>&0 string                  x                       %s
2123284194Sdelphij>>>>>>&1        byte            0x74
2124284194Sdelphij>>>>>>>&0       beshort         2
2125284194Sdelphij>>>>>>>>&4      bedate          x                       on: %s
2126284194Sdelphij>>>>>>>>&0      bedate          =0                      full dump
2127284194Sdelphij>>>>>>>>&0      bedate          !0                      incremental since: %s
2128284194Sdelphij
2129284194Sdelphij#----------------------------------------------------------
2130284194Sdelphij#delta ISO    Daniel Novotny (dnovotny@redhat.com)
2131284194Sdelphij0	string  DISO	Delta ISO data
2132284194Sdelphij!:strength +50
2133284194Sdelphij>4	belong  x	version %d
2134284194Sdelphij
2135284194Sdelphij# VMS backup savesets - gerardo.cacciari@gmail.com
2136284194Sdelphij#
2137284194Sdelphij4            string  \x01\x00\x01\x00\x01\x00
2138284194Sdelphij>(0.s+16)    string  \x01\x01
2139284194Sdelphij>>&(&0.b+8)  byte    0x42       OpenVMS backup saveset data
2140284194Sdelphij>>>40        lelong  x          (block size %d,
2141284194Sdelphij>>>49        string  >\0        original name '%s',
2142284194Sdelphij>>>2         short   1024       VAX generated)
2143284194Sdelphij>>>2         short   2048       AXP generated)
2144284194Sdelphij>>>2         short   4096       I64 generated)
2145284194Sdelphij
2146284194Sdelphij# Summary: Oracle Clustered Filesystem
2147284194Sdelphij# Created by: Aaron Botsis <redhat@digitalmafia.org>
2148284194Sdelphij8	string		OracleCFS	Oracle Clustered Filesystem,
2149284194Sdelphij>4	long		x		rev %d
2150284194Sdelphij>0	long		x		\b.%d,
2151284194Sdelphij>560	string		x		label: %.64s,
2152284194Sdelphij>136	string		x		mountpoint: %.128s
2153284194Sdelphij
2154284194Sdelphij# Summary: Oracle ASM tagged volume
2155284194Sdelphij# Created by: Aaron Botsis <redhat@digitalmafia.org>
2156284194Sdelphij32	string		ORCLDISK	Oracle ASM Volume,
2157284194Sdelphij>40	string		x		Disk Name: %0.12s
2158284194Sdelphij32	string		ORCLCLRD	Oracle ASM Volume (cleared),
2159284194Sdelphij>40	string		x		Disk Name: %0.12s
2160284194Sdelphij
2161284194Sdelphij# Oracle Clustered Filesystem - Aaron Botsis <redhat@digitalmafia.org>
2162284194Sdelphij8	string		OracleCFS	Oracle Clustered Filesystem,
2163284194Sdelphij>4	long		x		rev %d
2164284194Sdelphij>0	long		x		\b.%d,
2165284194Sdelphij>560	string		x		label: %.64s,
2166284194Sdelphij>136	string		x		mountpoint: %.128s
2167284194Sdelphij
2168284194Sdelphij# Oracle ASM tagged volume - Aaron Botsis <redhat@digitalmafia.org>
2169284194Sdelphij32	string		ORCLDISK	Oracle ASM Volume,
2170284194Sdelphij>40	string		x		Disk Name: %0.12s
2171284194Sdelphij32	string		ORCLCLRD	Oracle ASM Volume (cleared),
2172284194Sdelphij>40	string		x		Disk Name: %0.12s
2173284194Sdelphij
2174284194Sdelphij# Compaq/HP RILOE floppy image
2175284194Sdelphij# From: Dirk Jagdmann <doj@cubic.org>
2176284194Sdelphij0	string	CPQRFBLO	Compaq/HP RILOE floppy image
2177284194Sdelphij
2178284194Sdelphij#------------------------------------------------------------------------------
2179284194Sdelphij# Files-11 On-Disk Structure (File system for various RSX-11 and VMS flavours).
2180284194Sdelphij# These bits come from LBN 1 (home block) of ODS-1, ODS-2 and ODS-5 volumes,
2181284194Sdelphij# which is mapped to VBN 2 of [000000]INDEXF.SYS;1 - gerardo.cacciari@gmail.com
2182284194Sdelphij#
2183284194Sdelphij1008    string          DECFILE11       Files-11 On-Disk Structure
2184284194Sdelphij>525    byte            x               (ODS-%d);
2185284194Sdelphij>1017   string          A               RSX-11, VAX/VMS or OpenVMS VAX file system;
2186284194Sdelphij>1017   string          B
2187284194Sdelphij>>525   byte            2               VAX/VMS or OpenVMS file system;
2188284194Sdelphij>>525   byte            5               OpenVMS Alpha or Itanium file system;
2189284194Sdelphij>984    string          x               volume label is '%-12.12s'
2190284194Sdelphij
2191284194Sdelphij# From: Thomas Klausner <wiz@NetBSD.org>
2192284194Sdelphij# http://filext.com/file-extension/DAA
2193284194Sdelphij# describes the daa file format. The magic would be:
2194284194Sdelphij0	string		DAA\x0\x0\x0\x0\x0	PowerISO Direct-Access-Archive
2195284194Sdelphij
2196284194Sdelphij# From Albert Cahalan <acahalan@gmail.com>
2197284194Sdelphij# really le32 operation,destination,payloadsize (but quite predictable)
2198284194Sdelphij# 01 00 00 00 00 00 00 c0 00 02 00 00
2199284194Sdelphij0	string		\1\0\0\0\0\0\0\300\0\2\0\0	Marvell Libertas firmware
2200284194Sdelphij
2201284194Sdelphij# From Eric Sandeen
2202284194Sdelphij# GFS2
2203284194Sdelphij0x10000         belong          0x01161970
2204284194Sdelphij>0x10018        belong          0x0000051d      GFS1 Filesystem
2205284194Sdelphij>>0x10024        belong          x               (blocksize %d,
2206284194Sdelphij>>0x10060        string          >\0             lockproto %s)
2207284194Sdelphij>0x10018        belong          0x00000709      GFS2 Filesystem
2208284194Sdelphij>>0x10024        belong          x               (blocksize %d,
2209284194Sdelphij>>0x10060        string          >\0             lockproto %s)
2210284194Sdelphij
2211284194Sdelphij# BTRFS
2212284194Sdelphij0x10040         string          _BHRfS_M        BTRFS Filesystem
2213284194Sdelphij>0x1012b        string          >\0             (label "%s",
2214284194Sdelphij>0x10090        lelong          x               sectorsize %d,
2215284194Sdelphij>0x10094        lelong          x               nodesize %d,
2216284194Sdelphij>0x10098        lelong          x               leafsize %d)
2217284194Sdelphij
2218284194Sdelphij
2219284194Sdelphij# dvdisaster's .ecc
2220284194Sdelphij# From: "Nelson A. de Oliveira" <naoliv@gmail.com>
2221284194Sdelphij0	string	*dvdisaster*	dvdisaster error correction file
2222284194Sdelphij
2223284194Sdelphij# xfs metadump image 
2224284194Sdelphij# mb_magic XFSM at 0; superblock magic XFSB at 1 << mb_blocklog
2225284194Sdelphij# but can we do the << ?  For now it's always 512 (0x200) anyway.
2226284194Sdelphij0	string XFSM
2227284194Sdelphij>0x200	string XFSB	XFS filesystem metadump image
2228284194Sdelphij
2229284194Sdelphij# Type:	CROM filesystem
2230284194Sdelphij# From:	Werner Fink <werner@suse.de>
2231284194Sdelphij0	string	CROMFS	CROMFS
2232284194Sdelphij>6	string	>\0	\b version %2.2s,
2233284194Sdelphij>8	ulequad	>0	\b block data at %lld,
2234284194Sdelphij>16	ulequad	>0	\b fblock table at %lld,
2235284194Sdelphij>24	ulequad	>0	\b inode table at %lld,
2236284194Sdelphij>32	ulequad	>0	\b root at %lld,
2237284194Sdelphij>40	ulelong	>0	\b fblock size = %d,
2238284194Sdelphij>44	ulelong	>0	\b block size = %d,
2239284194Sdelphij>48	ulequad	>0	\b bytes = %lld
2240284194Sdelphij
2241284194Sdelphij# Type:	xfs metadump image
2242284194Sdelphij# From:	Daniel Novotny <dnovotny@redhat.com>
2243284194Sdelphij# mb_magic XFSM at 0; superblock magic XFSB at 1 << mb_blocklog
2244284194Sdelphij# but can we do the << ? For now it's always 512 (0x200) anyway.
2245284194Sdelphij0	string	XFSM
2246284194Sdelphij>0x200	string	XFSB	XFS filesystem metadump image
2247284194Sdelphij
2248284194Sdelphij# Type:	delta ISO
2249284194Sdelphij# From:	Daniel Novotny <dnovotny@redhat.com>
2250284194Sdelphij0	string	DISO	Delta ISO data,
2251284194Sdelphij>4	belong	x	version %d
2252284194Sdelphij
2253284194Sdelphij# JFS2 (Journaling File System) image. (Old JFS1 has superblock at 0x1000.)
2254284194Sdelphij# See linux/fs/jfs/jfs_superblock.h for layout; see jfs_filsys.h for flags.
2255284194Sdelphij# From: Adam Buchbinder <adam.buchbinder@gmail.com>
2256284194Sdelphij0x8000	string	JFS1
2257284194Sdelphij# Because it's text-only magic, check a binary value (version) to be sure.
2258284194Sdelphij# Should always be 2, but mkfs.jfs writes it as 1. Needs to be 2 or 1 to be
2259284194Sdelphij# mountable.
2260284194Sdelphij>&0	lelong	<3	JFS2 filesystem image
2261284194Sdelphij# Label is followed by a UUID; we have to limit string length to avoid
2262284194Sdelphij# appending the UUID in the case of a 16-byte label.
2263284194Sdelphij>>&144	regex	[\x20-\x7E]{1,16}	(label "%s")
2264284194Sdelphij>>&0	lequad	x	\b, %lld blocks
2265284194Sdelphij>>&8	lelong	x	\b, blocksize %d
2266284194Sdelphij>>&32	lelong&0x00000006	>0	(dirty)
2267284194Sdelphij>>&36	lelong	>0	(compressed)
2268284194Sdelphij
2269284194Sdelphij# LFS
2270284194Sdelphij0	lelong	0x070162	LFS filesystem image
2271284194Sdelphij>4	lelong	1		version 1,
2272284194Sdelphij>>8	lelong	x		\b blocks %u,
2273284194Sdelphij>>12	lelong	x		\b blocks per segment %u,
2274284194Sdelphij>4	lelong	2		version 2,
2275284194Sdelphij>>8	lelong	x		\b fragments %u,
2276284194Sdelphij>>12	lelong	x		\b bytes per segment %u,
2277284194Sdelphij>16	lelong	x		\b disk blocks %u,
2278284194Sdelphij>20	lelong	x		\b block size %u,
2279284194Sdelphij>24	lelong	x		\b fragment size %u,
2280284194Sdelphij>28	lelong	x		\b fragments per block %u,
2281284194Sdelphij>32	lelong	x		\b start for free list %u,
2282284194Sdelphij>36	lelong	x		\b number of free blocks %d,
2283284194Sdelphij>40	lelong	x		\b number of files %u,
2284284194Sdelphij>44	lelong	x		\b blocks available for writing %d,
2285284194Sdelphij>48	lelong	x		\b inodes in cache %d,
2286284194Sdelphij>52	lelong	x		\b inode file disk address 0x%x,
2287284194Sdelphij>56	lelong	x		\b inode file inode number %u,
2288284194Sdelphij>60	lelong	x		\b address of last segment written 0x%x,
2289284194Sdelphij>64	lelong	x		\b address of next segment to write 0x%x,
2290284194Sdelphij>68	lelong	x		\b address of current segment written 0x%x
2291284194Sdelphij
2292284194Sdelphij0	string	td\000		floppy image data (TeleDisk, compressed)
2293284194Sdelphij0	string	TD\000		floppy image data (TeleDisk)
2294284194Sdelphij
2295284194Sdelphij0	string	CQ\024		floppy image data (CopyQM, 
2296284194Sdelphij>16	leshort	x		%d sectors, 
2297284194Sdelphij>18	leshort	x		%d heads.)
2298284194Sdelphij
2299284194Sdelphij0	string	ACT\020Apricot\020disk\020image\032\004	floppy image data (ApriDisk)
2300284194Sdelphij
2301284194Sdelphij0	beshort	0xAA58		floppy image data (IBM SaveDskF, old)
2302284194Sdelphij0	beshort	0xAA59		floppy image data (IBM SaveDskF)
2303284194Sdelphij0	beshort	0xAA5A		floppy image data (IBM SaveDskF, compressed)
2304284194Sdelphij
2305284194Sdelphij0	string	\074CPM_Disk\076	disk image data (YAZE)
2306284194Sdelphij
2307284194Sdelphij# ReFS
2308284194Sdelphij# Richard W.M. Jones <rjones@redhat.com>
2309284194Sdelphij0	string	\0\0\0ReFS\0	ReFS filesystem image
2310284194Sdelphij
2311284194Sdelphij# EFW encase image file format:
2312284194Sdelphij# Gregoire Passault
2313284194Sdelphij# http://www.forensicswiki.org/wiki/Encase_image_file_format
2314284194Sdelphij0	string	EVF\x09\x0d\x0a\xff\x00	EWF/Expert Witness/EnCase image file format
2315284194Sdelphij
2316284194Sdelphij# UBIfs
2317284194Sdelphij# Linux kernel sources: fs/ubifs/ubifs-media.h
2318284194Sdelphij0	lelong	0x06101831
2319284194Sdelphij>0x16	leshort	0		UBIfs image
2320284194Sdelphij>0x08	lequad	x		\b, sequence number %llu
2321284194Sdelphij>0x10	leshort x		\b, length %u
2322284194Sdelphij>0x04	lelong	x		\b, CRC 0x%08x
2323284194Sdelphij
2324284194Sdelphij0	lelong	0x23494255
2325284194Sdelphij>0x04	leshort	<2
2326284194Sdelphij>0x05	string	\0\0\0
2327284194Sdelphij>0x1c	string	\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0
2328284194Sdelphij>0x04	leshort	x		UBI image, version %u
2329284194Sdelphij
2330284194Sdelphij# NEC PC-88 2D disk image
2331284194Sdelphij# From Fabio R. Schmidlin <sd-snatcher@users.sourceforge.net>
2332284194Sdelphij0x20		ulelong&0xFFFFFEFF	0x2A0
2333284194Sdelphij>0x10		string			\0\0\0\0\0\0\0\0\0\0
2334284194Sdelphij>>0x280		string			\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0
2335284194Sdelphij>>>0x1A		ubyte&0xEF		0
2336284194Sdelphij>>>>0x1B	ubyte&0x8F		0
2337284194Sdelphij>>>>>0x1B	ubyte&70		<0x40
2338284194Sdelphij>>>>>>0x1C	ulelong			>0x21
2339284194Sdelphij>>>>>>>0	regex	[[:print:]]*	NEC PC-88 disk image, name=%s
2340284194Sdelphij>>>>>>>>0x1B	ubyte	0		\b, media=2D
2341284194Sdelphij>>>>>>>>0x1B	ubyte	0x10		\b, media=2DD
2342284194Sdelphij>>>>>>>>0x1B	ubyte	0x20		\b, media=2HD
2343284194Sdelphij>>>>>>>>0x1B	ubyte	0x30		\b, media=1D
2344284194Sdelphij>>>>>>>>0x1B	ubyte	0x40		\b, media=1DD
2345284194Sdelphij>>>>>>>>0x1A	ubyte	0x10		\b, write-protected
2346