xref: /dflybsd-src/contrib/file/magic/Magdir/filesystems (revision 739f0ef867128a933e021db3d831e906fcafd825)
1327e51cbSPeter Avalos#------------------------------------------------------------------------------
2*3b9cdfa3SAntonio Huete Jimenez# $File: filesystems,v 1.150 2022/07/04 16:40:33 christos Exp $
3327e51cbSPeter Avalos# filesystems:  file(1) magic for different filesystems
4327e51cbSPeter Avalos#
5e8af9738SPeter Avalos0	name	partid
6e8af9738SPeter Avalos>0	ubyte	0x00	Unused
7e8af9738SPeter Avalos>0	ubyte	0x01	12-bit FAT
8e8af9738SPeter Avalos>0	ubyte	0x02	XENIX /
9e8af9738SPeter Avalos>0	ubyte	0x03	XENIX /usr
10e8af9738SPeter Avalos>0	ubyte	0x04	16-bit FAT, less than 32M
11e8af9738SPeter Avalos>0	ubyte	0x05	extended partition
12e8af9738SPeter Avalos>0	ubyte	0x06	16-bit FAT, more than 32M
13e8af9738SPeter Avalos>0	ubyte	0x07	OS/2 HPFS, NTFS, QNX2, Adv. UNIX
14e8af9738SPeter Avalos>0	ubyte	0x08	AIX or os, or etc.
15e8af9738SPeter Avalos>0	ubyte	0x09	AIX boot partition or Coherent
16e8af9738SPeter Avalos>0	ubyte	0x0a	O/2 boot manager or Coherent swap
17e8af9738SPeter Avalos>0	ubyte	0x0b	32-bit FAT
18e8af9738SPeter Avalos>0	ubyte	0x0c	32-bit FAT, LBA-mapped
19e8af9738SPeter Avalos>0	ubyte	0x0d	7XXX, LBA-mapped
20e8af9738SPeter Avalos>0	ubyte	0x0e	16-bit FAT, LBA-mapped
21e8af9738SPeter Avalos>0	ubyte	0x0f	extended partition, LBA-mapped
22e8af9738SPeter Avalos>0	ubyte	0x10	OPUS
23e8af9738SPeter Avalos>0	ubyte	0x11 	OS/2 DOS 12-bit FAT
24e8af9738SPeter Avalos>0	ubyte	0x12 	Compaq diagnostics
25e8af9738SPeter Avalos>0	ubyte	0x14 	OS/2 DOS 16-bit FAT <32M
26e8af9738SPeter Avalos>0	ubyte	0x16 	OS/2 DOS 16-bit FAT >=32M
27e8af9738SPeter Avalos>0	ubyte	0x17 	OS/2 hidden IFS
28e8af9738SPeter Avalos>0	ubyte	0x18 	AST Windows swapfile
29e8af9738SPeter Avalos>0	ubyte	0x19 	Willowtech Photon coS
30e8af9738SPeter Avalos>0	ubyte	0x1b 	hidden win95 fat 32
31e8af9738SPeter Avalos>0	ubyte	0x1c 	hidden win95 fat 32 lba
32e8af9738SPeter Avalos>0	ubyte	0x1d	hidden win95 fat 16 lba
33e8af9738SPeter Avalos>0	ubyte	0x20 	Willowsoft OFS1
34e8af9738SPeter Avalos>0	ubyte	0x21 	reserved
35e8af9738SPeter Avalos>0	ubyte	0x23 	reserved
36e8af9738SPeter Avalos>0	ubyte	0x24	NEC DOS
37e8af9738SPeter Avalos>0	ubyte	0x26 	reserved
38e8af9738SPeter Avalos>0	ubyte	0x31 	reserved
39e8af9738SPeter Avalos>0	ubyte	0x32	Alien Internet Services NOS
40e8af9738SPeter Avalos>0	ubyte	0x33 	reserved
41e8af9738SPeter Avalos>0	ubyte	0x34 	reserved
42e8af9738SPeter Avalos>0	ubyte	0x35 	JFS on OS2
43e8af9738SPeter Avalos>0	ubyte	0x36 	reserved
44e8af9738SPeter Avalos>0	ubyte	0x38 	Theos
45e8af9738SPeter Avalos>0	ubyte	0x39 	Plan 9, or Theos spanned
46e8af9738SPeter Avalos>0	ubyte	0x3a 	Theos ver 4 4gb partition
47e8af9738SPeter Avalos>0	ubyte	0x3b 	Theos ve 4 extended partition
48e8af9738SPeter Avalos>0	ubyte	0x3c 	PartitionMagic recovery
49e8af9738SPeter Avalos>0	ubyte	0x3d 	Hidden Netware
50e8af9738SPeter Avalos>0	ubyte	0x40 	VENIX 286 or LynxOS
51e8af9738SPeter Avalos>0	ubyte	0x41	PReP
52e8af9738SPeter Avalos>0	ubyte	0x42	linux swap sharing DRDOS disk
53e8af9738SPeter Avalos>0	ubyte	0x43	linux sharing DRDOS disk
54e8af9738SPeter Avalos>0	ubyte	0x44	GoBack change utility
55e8af9738SPeter Avalos>0	ubyte	0x45	Boot US Boot manager
56e8af9738SPeter Avalos>0	ubyte	0x46	EUMEL/Elan or Ergos 3
57e8af9738SPeter Avalos>0	ubyte	0x47	EUMEL/Elan or Ergos 3
58e8af9738SPeter Avalos>0	ubyte	0x48	EUMEL/Elan or Ergos 3
59e8af9738SPeter Avalos>0	ubyte	0x4a	ALFX/THIN filesystem for DOS
60e8af9738SPeter Avalos>0	ubyte	0x4c	Oberon partition
61e8af9738SPeter Avalos>0	ubyte	0x4d 	QNX4.x
62e8af9738SPeter Avalos>0	ubyte	0x4e 	QNX4.x 2nd part
63e8af9738SPeter Avalos>0	ubyte	0x4f 	QNX4.x 3rd part
64e8af9738SPeter Avalos>0	ubyte	0x50 	DM (disk manager)
65e8af9738SPeter Avalos>0	ubyte	0x51 	DM6 Aux1 (or Novell)
66e8af9738SPeter Avalos>0	ubyte	0x52 	CP/M or Microport SysV/AT
67e8af9738SPeter Avalos>0	ubyte	0x53 	DM6 Aux3
68e8af9738SPeter Avalos>0	ubyte	0x54	DM6 DDO
69e8af9738SPeter Avalos>0	ubyte	0x55	EZ-Drive (disk manager)
70e8af9738SPeter Avalos>0	ubyte	0x56	Golden Bow (disk manager)
71e8af9738SPeter Avalos>0	ubyte	0x57	Drive PRO
72e8af9738SPeter Avalos>0	ubyte	0x5c	Priam Edisk (disk manager)
73e8af9738SPeter Avalos>0	ubyte	0x61	SpeedStor
74e8af9738SPeter Avalos>0	ubyte	0x63	GNU HURD or Mach or Sys V/386
75e8af9738SPeter Avalos>0	ubyte	0x64	Novell Netware 2.xx or Speedstore
76e8af9738SPeter Avalos>0	ubyte	0x65	Novell Netware 3.xx
77e8af9738SPeter Avalos>0	ubyte	0x66	Novell 386 Netware
78e8af9738SPeter Avalos>0	ubyte	0x67	Novell
79e8af9738SPeter Avalos>0	ubyte	0x68	Novell
80e8af9738SPeter Avalos>0	ubyte	0x69	Novell
81e8af9738SPeter Avalos>0	ubyte	0x70	DiskSecure Multi-Boot
82e8af9738SPeter Avalos>0	ubyte	0x71	reserved
83e8af9738SPeter Avalos>0	ubyte	0x73	reserved
84e8af9738SPeter Avalos>0	ubyte	0x74	reserved
85e8af9738SPeter Avalos>0	ubyte	0x75	PC/IX
86e8af9738SPeter Avalos>0	ubyte	0x76	reserved
87e8af9738SPeter Avalos>0	ubyte	0x77	M2FS/M2CS partition
88e8af9738SPeter Avalos>0	ubyte	0x78	XOSL boot loader filesystem
89e8af9738SPeter Avalos>0	ubyte	0x80	MINIX until 1.4a
90e8af9738SPeter Avalos>0	ubyte	0x81	MINIX since 1.4b
91e8af9738SPeter Avalos>0	ubyte	0x82	Linux swap or Solaris
92e8af9738SPeter Avalos>0	ubyte	0x83	Linux native
93e8af9738SPeter Avalos>0	ubyte	0x84	OS/2 hidden C: drive
94e8af9738SPeter Avalos>0	ubyte	0x85	Linux extended partition
95e8af9738SPeter Avalos>0	ubyte	0x86	NT FAT volume set
96e8af9738SPeter Avalos>0	ubyte	0x87	NTFS volume set or HPFS mirrored
97e8af9738SPeter Avalos>0	ubyte	0x8a	Linux Kernel AiR-BOOT partition
98e8af9738SPeter Avalos>0	ubyte	0x8b	Legacy Fault tolerant FAT32
99e8af9738SPeter Avalos>0	ubyte	0x8c	Legacy Fault tolerant FAT32 ext
100e8af9738SPeter Avalos>0	ubyte	0x8d	Hidden free FDISK FAT12
101e8af9738SPeter Avalos>0	ubyte	0x8e	Linux Logical Volume Manager
102e8af9738SPeter Avalos>0	ubyte	0x90	Hidden free FDISK FAT16
103e8af9738SPeter Avalos>0	ubyte	0x91	Hidden free FDISK DOS EXT
104e8af9738SPeter Avalos>0	ubyte	0x92	Hidden free FDISK FAT16 Big
105e8af9738SPeter Avalos>0	ubyte	0x93	Amoeba filesystem
106e8af9738SPeter Avalos>0	ubyte	0x94	Amoeba bad block table
107e8af9738SPeter Avalos>0	ubyte	0x95	MIT EXOPC native partitions
108e8af9738SPeter Avalos>0	ubyte	0x97	Hidden free FDISK FAT32
109e8af9738SPeter Avalos>0	ubyte	0x98	Datalight ROM-DOS Super-Boot
110e8af9738SPeter Avalos>0	ubyte	0x99	Mylex EISA SCSI
111e8af9738SPeter Avalos>0	ubyte	0x9a	Hidden free FDISK FAT16 LBA
112e8af9738SPeter Avalos>0	ubyte	0x9b	Hidden free FDISK EXT LBA
113e8af9738SPeter Avalos>0	ubyte	0x9f	BSDI?
114e8af9738SPeter Avalos>0	ubyte	0xa0	IBM Thinkpad hibernation
115e8af9738SPeter Avalos>0	ubyte	0xa1	HP Volume expansion (SpeedStor)
116e8af9738SPeter Avalos>0	ubyte	0xa3	HP Volume expansion (SpeedStor)
117e8af9738SPeter Avalos>0	ubyte	0xa4	HP Volume expansion (SpeedStor)
118e8af9738SPeter Avalos>0	ubyte	0xa5	386BSD partition type
119e8af9738SPeter Avalos>0	ubyte	0xa6	OpenBSD partition type
120e8af9738SPeter Avalos>0	ubyte	0xa7	NeXTSTEP 486
121e8af9738SPeter Avalos>0	ubyte	0xa8	Apple UFS
122e8af9738SPeter Avalos>0	ubyte	0xa9	NetBSD partition type
123e8af9738SPeter Avalos>0	ubyte	0xaa	Olivetty Fat12 1.44MB Service part
124e8af9738SPeter Avalos>0	ubyte	0xab	Apple Boot
125e8af9738SPeter Avalos>0	ubyte	0xae	SHAG OS filesystem
126e8af9738SPeter Avalos>0	ubyte	0xaf	Apple HFS
127e8af9738SPeter Avalos>0	ubyte	0xb0	BootStar Dummy
128e8af9738SPeter Avalos>0	ubyte	0xb1	reserved
129e8af9738SPeter Avalos>0	ubyte	0xb3	reserved
130e8af9738SPeter Avalos>0	ubyte	0xb4	reserved
131e8af9738SPeter Avalos>0	ubyte	0xb6	reserved
132e8af9738SPeter Avalos>0	ubyte	0xb7	BSDI BSD/386 filesystem
133e8af9738SPeter Avalos>0	ubyte	0xb8	BSDI BSD/386 swap
134e8af9738SPeter Avalos>0	ubyte	0xbb	Boot Wizard Hidden
135e8af9738SPeter Avalos>0	ubyte	0xbe	Solaris 8 partition type
136e8af9738SPeter Avalos>0	ubyte	0xbf	Solaris partition type
137e8af9738SPeter Avalos>0	ubyte	0xc0 	CTOS
138e8af9738SPeter Avalos>0	ubyte	0xc1 	DRDOS/sec (FAT-12)
139e8af9738SPeter Avalos>0	ubyte	0xc2 	Hidden Linux
140e8af9738SPeter Avalos>0	ubyte	0xc3 	Hidden Linux swap
141e8af9738SPeter Avalos>0	ubyte	0xc4 	DRDOS/sec (FAT-16, < 32M)
142e8af9738SPeter Avalos>0	ubyte	0xc5 	DRDOS/sec (EXT)
143e8af9738SPeter Avalos>0	ubyte	0xc6 	DRDOS/sec (FAT-16, >= 32M)
144e8af9738SPeter Avalos>0	ubyte	0xc7 	Syrinx (Cyrnix?) or HPFS disabled
145e8af9738SPeter Avalos>0	ubyte	0xc8 	Reserved for DR-DOS 8.0+
146e8af9738SPeter Avalos>0	ubyte	0xc9 	Reserved for DR-DOS 8.0+
147e8af9738SPeter Avalos>0	ubyte	0xca 	Reserved for DR-DOS 8.0+
148e8af9738SPeter Avalos>0	ubyte	0xcb 	DR-DOS 7.04+ Secured FAT32 CHS
149e8af9738SPeter Avalos>0	ubyte	0xcc 	DR-DOS 7.04+ Secured FAT32 LBA
150e8af9738SPeter Avalos>0	ubyte	0xcd	CTOS Memdump
151e8af9738SPeter Avalos>0	ubyte	0xce 	DR-DOS 7.04+ FAT16X LBA
152e8af9738SPeter Avalos>0	ubyte	0xcf 	DR-DOS 7.04+ EXT LBA
153e8af9738SPeter Avalos>0	ubyte	0xd0 	REAL/32 secure big partition
154e8af9738SPeter Avalos>0	ubyte	0xd1 	Old Multiuser DOS FAT12
155e8af9738SPeter Avalos>0	ubyte	0xd4 	Old Multiuser DOS FAT16 Small
156e8af9738SPeter Avalos>0	ubyte	0xd5 	Old Multiuser DOS Extended
157e8af9738SPeter Avalos>0	ubyte	0xd6 	Old Multiuser DOS FAT16 Big
158e8af9738SPeter Avalos>0	ubyte	0xd8 	CP/M 86
159e8af9738SPeter Avalos>0	ubyte	0xdb 	CP/M or Concurrent CP/M
160e8af9738SPeter Avalos>0	ubyte	0xdd 	Hidden CTOS Memdump
161e8af9738SPeter Avalos>0	ubyte	0xde 	Dell PowerEdge Server utilities
162e8af9738SPeter Avalos>0	ubyte	0xdf 	DG/UX virtual disk manager
163e8af9738SPeter Avalos>0	ubyte	0xe0 	STMicroelectronics ST AVFS
164e8af9738SPeter Avalos>0	ubyte	0xe1 	DOS access or SpeedStor 12-bit
165e8af9738SPeter Avalos>0	ubyte	0xe3 	DOS R/O or Storage Dimensions
166e8af9738SPeter Avalos>0	ubyte	0xe4 	SpeedStor 16-bit FAT < 1024 cyl.
167e8af9738SPeter Avalos>0	ubyte	0xe5	reserved
168e8af9738SPeter Avalos>0	ubyte	0xe6	reserved
169e8af9738SPeter Avalos>0	ubyte	0xeb 	BeOS
170e8af9738SPeter Avalos>0	ubyte	0xee	GPT Protective MBR
171e8af9738SPeter Avalos>0	ubyte	0xef	EFI system partition
172e8af9738SPeter Avalos>0	ubyte	0xf0 	Linux PA-RISC boot loader
173e8af9738SPeter Avalos>0	ubyte	0xf1 	SpeedStor or Storage Dimensions
174e8af9738SPeter Avalos>0	ubyte	0xf2 	DOS 3.3+ Secondary
175e8af9738SPeter Avalos>0	ubyte	0xf3	reserved
176e8af9738SPeter Avalos>0	ubyte	0xf4	SpeedStor large partition
177e8af9738SPeter Avalos>0	ubyte	0xf5	Prologue multi-volumen partition
178e8af9738SPeter Avalos>0	ubyte	0xf6 	reserved
179e8af9738SPeter Avalos>0	ubyte	0xf9 	pCache: ext2/ext3 persistent cache
180e8af9738SPeter Avalos>0	ubyte	0xfa 	Bochs x86 emulator
181e8af9738SPeter Avalos>0	ubyte	0xfb 	VMware File System
182e8af9738SPeter Avalos>0	ubyte	0xfc 	VMware Swap
183e8af9738SPeter Avalos>0	ubyte	0xfd 	Linux RAID partition persistent sb
184e8af9738SPeter Avalos>0	ubyte	0xfe	LANstep or IBM PS/2 IML
185e8af9738SPeter Avalos>0	ubyte	0xff 	Xenix Bad Block Table
186e8af9738SPeter Avalos
187327e51cbSPeter Avalos0	string	\366\366\366\366	PC formatted floppy with no filesystem
188327e51cbSPeter Avalos# Sun disk labels
189327e51cbSPeter Avalos# From /usr/include/sun/dklabel.h:
190327e51cbSPeter Avalos0774	beshort		0xdabe
191327e51cbSPeter Avalos# modified by Joerg Jenderek, because original test
192327e51cbSPeter Avalos# succeeds for Cabinet archive dao360.dl_ with negative blocks
193327e51cbSPeter Avalos>0770	long		>0		Sun disk label
194327e51cbSPeter Avalos>>0	string		x		'%s
195327e51cbSPeter Avalos>>>31	string		>\0		\b%s
196327e51cbSPeter Avalos>>>>63	string		>\0		\b%s
197327e51cbSPeter Avalos>>>>>95	string		>\0		\b%s
198327e51cbSPeter Avalos>>0	string		x		\b'
199327e51cbSPeter Avalos>>0734	short		>0		%d rpm,
200327e51cbSPeter Avalos>>0736	short		>0		%d phys cys,
201327e51cbSPeter Avalos>>0740	short		>0		%d alts/cyl,
202327e51cbSPeter Avalos>>0746	short		>0		%d interleave,
203327e51cbSPeter Avalos>>0750	short		>0		%d data cyls,
204327e51cbSPeter Avalos>>0752	short		>0		%d alt cyls,
205327e51cbSPeter Avalos>>0754	short		>0		%d heads/partition,
206327e51cbSPeter Avalos>>0756	short		>0		%d sectors/track,
20782c5fa3eSPeter Avalos>>0764	long		>0		start cyl %d,
20882c5fa3eSPeter Avalos>>0770	long		x		%d blocks
209327e51cbSPeter Avalos# Is there a boot block written 1 sector in?
210327e51cbSPeter Avalos>512    belong&077777777	0600407	\b, boot block present
211e8af9738SPeter Avalos
212e8af9738SPeter Avalos# Joerg Jenderek: Smart Boot Manager backup file is 25 (MSDOS) or 41 (LINUX) byte header + first sectors of disk
213327e51cbSPeter Avalos# (http://btmgr.sourceforge.net/docs/user-guide-3.html)
214327e51cbSPeter Avalos0		string	SBMBAKUP_	Smart Boot Manager backup file
215327e51cbSPeter Avalos>9		string	x		\b, version %-5.5s
216327e51cbSPeter Avalos>>14		string	=_
217327e51cbSPeter Avalos>>>15		string	x		%-.1s
218327e51cbSPeter Avalos>>>>16		string	=_		\b.
219327e51cbSPeter Avalos>>>>>17		string	x		\b%-.1s
220327e51cbSPeter Avalos>>>>>>18	string	=_		\b.
221327e51cbSPeter Avalos>>>>>>>19	string	x		\b%-.1s
222327e51cbSPeter Avalos>>>22		ubyte	0
223614728caSSascha Wildner>>>>21		ubyte	x		\b, from drive %#x
224327e51cbSPeter Avalos>>>22		ubyte	>0
225327e51cbSPeter Avalos>>>>21		string	x		\b, from drive %s
226e8af9738SPeter Avalos>>>535		search/17	\x55\xAA
227e8af9738SPeter Avalos>>>>&-512	indirect	x	\b; contains
228327e51cbSPeter Avalos
229e8af9738SPeter Avalos# updated by Joerg Jenderek at Nov 2012
230327e51cbSPeter Avalos# DOS Emulator image is 128 byte, null right padded header + harddisc image
231327e51cbSPeter Avalos0	string	DOSEMU\0
232327e51cbSPeter Avalos>0x27E	leshort	0xAA55
233327e51cbSPeter Avalos#offset is 128
234327e51cbSPeter Avalos>>19	ubyte	128
235327e51cbSPeter Avalos>>>(19.b-1)	ubyte	0x0	DOS Emulator image
236327e51cbSPeter Avalos>>>>7	ulelong	>0		\b, %u heads
237327e51cbSPeter Avalos>>>>11	ulelong	>0		\b, %d sectors/track
238327e51cbSPeter Avalos>>>>15	ulelong	>0		\b, %d cylinders
239e8af9738SPeter Avalos>>>>128	indirect	x	\b; contains
240327e51cbSPeter Avalos
241e8af9738SPeter Avalos# added by Joerg Jenderek at Nov 2012
242e8af9738SPeter Avalos# http://www.thenakedpc.com/articles/v04/08/0408-05.html
243e8af9738SPeter Avalos# Symantec (Peter Norton) Image.dat file consists of variable header, bootrecord, part of FAT and root directory data
244e8af9738SPeter Avalos0	string	PNCIHISK\0		Norton Utilities disc image data
245e8af9738SPeter Avalos# real x86 boot sector with jump instruction
246e8af9738SPeter Avalos>509	search/1026	\x55\xAA\xeb
247e8af9738SPeter Avalos>>&-1	indirect	x		\b; contains
248e8af9738SPeter Avalos# http://file-extension.net/seeker/file_extension_dat
249e8af9738SPeter Avalos0	string	PNCIUNDO		Norton Disk Doctor UnDo file
250e8af9738SPeter Avalos#
251e8af9738SPeter Avalos
25282c5fa3eSPeter Avalos# DOS/MBR boot sector updated by Joerg Jenderek at Sep 2007,May 2011,2013
253e8af9738SPeter Avalos# for any allowed sector sizes
254e8af9738SPeter Avalos30		search/481	\x55\xAA
255e8af9738SPeter Avalos# 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)
256e8af9738SPeter Avalos# DOS BPB information (70) and after DOS floppy (120) like in previous file version
25782c5fa3eSPeter Avalos!:strength +65
258e8af9738SPeter Avalos# for sector sizes < 512 Bytes
259e8af9738SPeter Avalos>11		uleshort	<512
260e8af9738SPeter Avalos>>(11.s-2)	uleshort	0xAA55		DOS/MBR boot sector
261e8af9738SPeter Avalos# for sector sizes with 512 or more Bytes
262e8af9738SPeter Avalos>0x1FE		leshort		0xAA55		DOS/MBR boot sector
26382c5fa3eSPeter Avalos
264970935fdSSascha Wildner# ExFAT
265970935fdSSascha Wildner3		string/w	=EXFAT
266970935fdSSascha Wildner>0x1FE		leshort		0xAA55
267970935fdSSascha Wildner>>0x6E		ubyte		1
268970935fdSSascha Wildner>>>0x6F		ubyte		0x80
269970935fdSSascha Wildner>>>0		ubyte		0xEB	DOS/MBR boot sector,
270970935fdSSascha Wildner>>>0x69		ubyte		x	ExFAT Filesystem version %d.
271970935fdSSascha Wildner>>>0x68		ubyte		x	\b%d
272970935fdSSascha Wildner>>>0x6d		ubyte		x	\b, (1<<%d) sectors per cluster
273970935fdSSascha Wildner>>>0x48		ulequad		x	\b, sectors %lld
274614728caSSascha Wildner>>>0x64		ulelong		x	\b, serial number %#x
275970935fdSSascha Wildner
276e8af9738SPeter Avalos# keep old DOS/MBR boot sector as dummy for mbr and bootloader displaying
277327e51cbSPeter Avalos# only for sector sizes with 512 or more Bytes
278e8af9738SPeter Avalos0x1FE          leshort         0xAA55         	DOS/MBR boot sector
27982c5fa3eSPeter Avalos#
280e8af9738SPeter Avalos# to display information (50) before DOS BPB (strength=70) and after DOS floppy (120) like in old file version
28182c5fa3eSPeter Avalos!:strength +65
28282c5fa3eSPeter Avalos>2		string		OSBS		OS/BS MBR
2836fca56fbSSascha Wildner# added by Joerg Jenderek at Feb 2013 according to https://thestarman.pcministry.com/asm/mbr/
2846fca56fbSSascha Wildner# and https://en.wikipedia.org/wiki/Master_Boot_Record
285e8af9738SPeter Avalos# test for nearly all MS-DOS Master Boot Record initial program loader (IPL) is now done by
286e8af9738SPeter Avalos# characteristic assembler instructions: xor ax,ax;mov ss,ax;mov sp,7c00
287e8af9738SPeter Avalos>0	search/2	\x33\xc0\x8e\xd0\xbc\x00\x7c	MS-MBR
2886fca56fbSSascha Wildner# Microsoft Windows 95A and early ( https://thestarman.pcministry.com/asm/mbr/STDMBR.htm )
289e8af9738SPeter Avalos# assembler instructions: mov si,sp;push ax;pop es;push ax;pop ds;sti;cld
290e8af9738SPeter Avalos>>8	ubequad		0x8bf45007501ffbfc
2916fca56fbSSascha Wildner# https://thestarman.pcministry.com/asm/mbr/200MBR.htm
292e8af9738SPeter Avalos>>>0x16	ubyte		0xF3				\b,DOS 2
293e8af9738SPeter Avalos>>>>219	regex		Author\ -\ 			Author:
294e8af9738SPeter Avalos# found "David Litton" , "A Pehrsson  "
295e8af9738SPeter Avalos>>>>>&0	string		x				"%s"
296e8af9738SPeter Avalos>>>0x16	ubyte		0xF2
2976fca56fbSSascha Wildner# NEC MS-DOS 3.30 Rev. 3 . See https://thestarman.pcministry.com/asm/mbr/DOS33MBR.htm
298e8af9738SPeter Avalos# assembler instructions: mov di,077c;cmp word ptrl[di],a55a;jnz
299e8af9738SPeter Avalos>>>>0x22	ubequad	0xbf7c07813d5aa575		\b,NEC 3.3
300e8af9738SPeter Avalos# version MS-DOS 3.30 til MS-Windows 95A (WinVer=4.00.1111)
301e8af9738SPeter Avalos>>>>0x22	default	x				\b,D0S version 3.3-7.0
302e8af9738SPeter Avalos# error messages are printed by assembler instructions: mov si,06nn;...;int 10 (0xBEnn06;...)
303e8af9738SPeter Avalos# where nn is string offset varying for different languages
304e8af9738SPeter Avalos# "Invalid partition table"				nn=0x8b for english version
305e8af9738SPeter Avalos>>>>>(0x49.b)	string		Invalid\ partition\ table		english
306e8af9738SPeter Avalos>>>>>(0x49.b)	string		Ung\201ltige\ Partitionstabelle		german
307e8af9738SPeter Avalos>>>>>(0x49.b)	string		Table\ de\ partition\ invalide		french
308e8af9738SPeter Avalos>>>>>(0x49.b)	string		Tabela\ de\ parti\207ao\ inv\240lida	portuguese
309e8af9738SPeter Avalos>>>>>(0x49.b)	string		Tabla\ de\ partici\242n\ no\ v\240lida	spanish
310e8af9738SPeter Avalos>>>>>(0x49.b)	string		Tavola\ delle\ partizioni\ non\ valida	italian
311614728caSSascha Wildner>>>>>0x49	ubyte		>0			at offset %#x
312e8af9738SPeter Avalos>>>>>>(0x49.b)	string		>\0			"%s"
313e8af9738SPeter Avalos# "Error loading operating system"			nn=0xa3 for english version
314e8af9738SPeter Avalos# "Fehler beim Laden des Betriebssystems"		nn=0xa7 for german version
315e8af9738SPeter Avalos# "Erreur en chargeant syst\212me d'exploitation"	nn=0xa7 for french version
316e8af9738SPeter Avalos# "Erro na inicializa\207ao do sistema operacional"	nn=0xa7 for portuguese Brazilian version
317e8af9738SPeter Avalos# "Error al cargar sistema operativo"			nn=0xa8 for spanish version
318e8af9738SPeter Avalos# "Errore durante il caricamento del sistema operativo"	nn=0xae for italian version
319614728caSSascha Wildner>>>>>0x74	ubyte		>0			at offset %#x
320e8af9738SPeter Avalos>>>>>>(0x74.b)	string		>\0			"%s"
321e8af9738SPeter Avalos# "Missing operating system"				nn=0xc2 for english version
322e8af9738SPeter Avalos# "Betriebssystem fehlt"				nn=0xcd for german version
323e8af9738SPeter Avalos# "Syst\212me d'exploitation absent"			nn=0xd2 for french version
324e8af9738SPeter Avalos# "Sistema operacional nao encontrado"			nn=0xd4 for portuguese Brazilian version
325e8af9738SPeter Avalos# "Falta sistema operativo"				nn=0xca for spanish version
326e8af9738SPeter Avalos# "Sistema operativo mancante"				nn=0xe2 for italian version
327614728caSSascha Wildner>>>>>0x79	ubyte		>0			at offset %#x
328e8af9738SPeter Avalos>>>>>>(0x79.b)	string		>\0			"%s"
3296fca56fbSSascha Wildner# Microsoft Windows 95B to XP (https://thestarman.pcministry.com/asm/mbr/95BMEMBR.htm)
330e8af9738SPeter Avalos# assembler instructions: push ax;pop es;push  ax;pop ds;cld;mov si,7c1b
331e8af9738SPeter Avalos>>8	ubequad		0x5007501ffcbe1b7c
332e8af9738SPeter Avalos# assembler instructions: rep;movsb;retf;mov si,07be;mov cl,04
333e8af9738SPeter Avalos>>>24		ubequad	0xf3a4cbbebe07b104		9M
334e8af9738SPeter Avalos# "Invalid partition table"				nn=0x10F for english version
33582c5fa3eSPeter Avalos# "Ung\201ltige Partitionstabelle"				nn=0x10F for german version
33682c5fa3eSPeter Avalos# "Table de partition erron\202e"				nn=0x10F for french version
337e8af9738SPeter Avalos# "\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
338e8af9738SPeter Avalos>>>>(0x3C.b+0x0FF)	string	Invalid\ partition\ table		english
339e8af9738SPeter Avalos>>>>(0x3C.b+0x0FF)	string	Ung\201ltige\ Partitionstabelle		german
340e8af9738SPeter Avalos>>>>(0x3C.b+0x0FF)	string	Table\ de\ partition\ erron\202e	french
341e8af9738SPeter Avalos>>>>(0x3C.b+0x0FF)	string	\215\245\257\340\240\242\250\253\354\255\240\357\ \342\240\241\253\250\346\240	russian
342614728caSSascha Wildner>>>>0x3C		ubyte	x			at offset %#x+0xFF
343e8af9738SPeter Avalos>>>>(0x3C.b+0x0FF)	string	>\0			"%s"
344e8af9738SPeter Avalos# "Error loading operating system"			nn=0x127 for english version
345e8af9738SPeter Avalos# "Fehler beim Laden des Betriebssystems"		nn=0x12b for german version
34682c5fa3eSPeter Avalos# "Erreur lors du chargement du syst\212me d'exploitation"	nn=0x12a for french version
347e8af9738SPeter Avalos# "\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
348e8af9738SPeter Avalos>>>>0xBD		ubyte	x			at offset 0x1%x
349e8af9738SPeter Avalos>>>>(0xBD.b+0x100)	string	>\0			"%s"
350e8af9738SPeter Avalos# "Missing operating system"				nn=0x146 for english version
351e8af9738SPeter Avalos# "Betriebssystem fehlt"				nn=0x151 for german version
35282c5fa3eSPeter Avalos# "Syst\212me d'exploitation manquant"			nn=0x15e for french version
353e8af9738SPeter Avalos# "\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
354e8af9738SPeter Avalos>>>>0xA9		ubyte	x			at offset 0x1%x
355e8af9738SPeter Avalos>>>>(0xA9.b+0x100)	string	>\0			"%s"
3566fca56fbSSascha Wildner# https://thestarman.pcministry.com/asm/mbr/Win2kmbr.htm
357e8af9738SPeter Avalos# assembler instructions: rep;movsb;retf;mov BP,07be;mov cl,04
358e8af9738SPeter Avalos>>>24		ubequad	0xf3a4cbbdbe07b104		XP
359e8af9738SPeter Avalos# where xxyyzz are lower bits from offsets of error messages varying for different languages
360e8af9738SPeter Avalos>>>>0x1B4	ubelong&0x00FFFFFF	0x002c4463	english
361e8af9738SPeter Avalos>>>>0x1B4	ubelong&0x00FFFFFF	0x002c486e	german
362e8af9738SPeter Avalos# "Invalid partition table"				xx=0x12C for english version
36382c5fa3eSPeter Avalos# "Ung\201ltige Partitionstabelle"				xx=0x12C for german version
364e8af9738SPeter Avalos>>>>0x1b5	ubyte		>0			at offset 0x1%x
365e8af9738SPeter Avalos>>>>(0x1b5.b+0x100)	string	>\0			"%s"
366e8af9738SPeter Avalos# "Error loading operating system"			yy=0x144 for english version
367e8af9738SPeter Avalos# "Fehler beim Laden des Betriebssystems"		yy=0x148 for german version
368e8af9738SPeter Avalos>>>>0x1b6	ubyte		>0			at offset 0x1%x
369e8af9738SPeter Avalos>>>>(0x1b6.b+0x100)	string	>\0			"%s"
370e8af9738SPeter Avalos# "Missing operating system"				zz=0x163 for english version
371e8af9738SPeter Avalos# "Betriebssystem nicht vorhanden"			zz=0x16e for german version
372e8af9738SPeter Avalos>>>>0x1b7	ubyte		>0			at offset 0x1%x
373e8af9738SPeter Avalos>>>>(0x1b7.b+0x100)	string	>\0			"%s"
374e8af9738SPeter Avalos# Microsoft Windows Vista or 7
375e8af9738SPeter Avalos# assembler instructions: ..;mov ds,ax;mov si,7c00;mov di,..00
376e8af9738SPeter Avalos>>8	ubequad		0xc08ed8be007cbf00
3776fca56fbSSascha Wildner# Microsoft Windows Vista (https://thestarman.pcministry.com/asm/mbr/VistaMBR.htm)
378e8af9738SPeter Avalos# assembler instructions: jnz 0729;cmp ebx,"TCPA"
379e8af9738SPeter Avalos>>>0xEC		ubequad	0x753b6681fb544350		Vista
380e8af9738SPeter Avalos# where xxyyzz are lower bits from offsets of error messages varying for different languages
381e8af9738SPeter Avalos>>>>0x1B4	ubelong&0x00FFFFFF	0x00627a99	english
382e8af9738SPeter Avalos#>>>>0x1B4	ubelong&0x00FFFFFF	?		german
383e8af9738SPeter Avalos# "Invalid partition table"				xx=0x162 for english version
38482c5fa3eSPeter Avalos# "Ung\201ltige Partitionstabelle"				xx=0x1?? for german version
385e8af9738SPeter Avalos>>>>0x1b5	ubyte		>0			at offset 0x1%x
386e8af9738SPeter Avalos>>>>(0x1b5.b+0x100)	string	>\0			"%s"
387e8af9738SPeter Avalos# "Error loading operating system"			yy=0x17a for english version
388e8af9738SPeter Avalos# "Fehler beim Laden des Betriebssystems"		yy= 0x1?? for german version
389e8af9738SPeter Avalos>>>>0x1b6	ubyte		>0			at offset 0x1%x
390e8af9738SPeter Avalos>>>>(0x1b6.b+0x100)	string	>\0			"%s"
391e8af9738SPeter Avalos# "Missing operating system"				zz=0x199 for english version
392e8af9738SPeter Avalos# "Betriebssystem nicht vorhanden"			zz=0x1?? for german version
393e8af9738SPeter Avalos>>>>0x1b7	ubyte		>0			at offset 0x1%x
394e8af9738SPeter Avalos>>>>(0x1b7.b+0x100)	string	>\0			"%s"
3956fca56fbSSascha Wildner# Microsoft Windows 7 (https://thestarman.pcministry.com/asm/mbr/W7MBR.htm)
396e8af9738SPeter Avalos# assembler instructions: cmp ebx,"TCPA";cmp
397e8af9738SPeter Avalos>>>0xEC		ubequad	0x6681fb5443504175		Windows 7
398e8af9738SPeter Avalos# where xxyyzz are lower bits from offsets of error messages varying for different languages
399e8af9738SPeter Avalos>>>>0x1B4	ubelong&0x00FFFFFF	0x00637b9a	english
400e8af9738SPeter Avalos#>>>>0x1B4	ubelong&0x00FFFFFF	?		german
401e8af9738SPeter Avalos# "Invalid partition table"				xx=0x163 for english version
40282c5fa3eSPeter Avalos# "Ung\201ltige Partitionstabelle"				xx=0x1?? for german version
403e8af9738SPeter Avalos>>>>0x1b5	ubyte		>0			at offset 0x1%x
404e8af9738SPeter Avalos>>>>(0x1b5.b+0x100)	string	>\0			"%s"
405e8af9738SPeter Avalos# "Error loading operating system"			yy=0x17b for english version
406e8af9738SPeter Avalos# "Fehler beim Laden des Betriebssystems"		yy=0x1?? for german version
407e8af9738SPeter Avalos>>>>0x1b6	ubyte		>0			at offset 0x1%x
408e8af9738SPeter Avalos>>>>(0x1b6.b+0x100)	string	>\0			"%s"
409e8af9738SPeter Avalos# "Missing operating system"				zz=0x19a for english version
410e8af9738SPeter Avalos# "Betriebssystem nicht vorhanden"			zz=0x1?? for german version
411e8af9738SPeter Avalos>>>>0x1b7	ubyte		>0			at offset 0x1%x
412e8af9738SPeter Avalos>>>>(0x1b7.b+0x100)	string	>\0			"%s"
4136fca56fbSSascha Wildner# https://thestarman.pcministry.com/asm/mbr/Win2kmbr.htm#DiskSigs
4146fca56fbSSascha Wildner# https://en.wikipedia.org/wiki/MBR_disk_signature#ID
415614728caSSascha Wildner>>0x1b8	ulelong		>0				\b, disk signature %#-.4x
4166fca56fbSSascha Wildner# driveID/timestamp for Win 95B,98,98SE and ME. See https://thestarman.pcministry.com/asm/mbr/mystery.htm
417e8af9738SPeter Avalos>>0xDA	uleshort		0
418e8af9738SPeter Avalos>>>0xDC 	ulelong		>0			\b, created
419e8af9738SPeter Avalos# physical drive number (0x80-0xFF) when the Windows wrote that byte to the drive
420614728caSSascha Wildner>>>>0xDC	ubyte		x			with driveID %#x
421e8af9738SPeter Avalos# hours, minutes and seconds
422e8af9738SPeter Avalos>>>>0xDf	ubyte		x			at %x
423e8af9738SPeter Avalos>>>>0xDe	ubyte		x			\b:%x
424e8af9738SPeter Avalos>>>>0xDd	ubyte		x			\b:%x
425e8af9738SPeter Avalos# special case for Microsoft MS-DOS 3.21 spanish
426e8af9738SPeter Avalos# assembler instructions: cli;mov $0x30,%ax;mov %ax,%ss;mov
427e8af9738SPeter Avalos>0	ubequad		0xfab830008ed0bc00
428e8af9738SPeter Avalos# assembler instructions: $0x1f00,%sp;mov $0x80cb,%di;add %cl,(%bx,%si);in (%dx),%ax;mov
429e8af9738SPeter Avalos>>8	ubequad		0x1fbfcb800008ed8		MS-MBR,D0S version 3.21 spanish
430e8af9738SPeter Avalos# Microsoft MBR IPL end
431e8af9738SPeter Avalos
432327e51cbSPeter Avalos# dr-dos with some upper-, lowercase variants
433327e51cbSPeter Avalos>0x9D	string	Invalid\ partition\ table$
434327e51cbSPeter Avalos>>181	string	No\ Operating\ System$
435327e51cbSPeter Avalos>>>201	string	Operating\ System\ load\ error$	\b, DR-DOS MBR, Version 7.01 to 7.03
436327e51cbSPeter Avalos>0x9D	string	Invalid\ partition\ table$
437327e51cbSPeter Avalos>>181	string	No\ operating\ system$
438327e51cbSPeter Avalos>>>201	string	Operating\ system\ load\ error$	\b, DR-DOS MBR, Version 7.01 to 7.03
439327e51cbSPeter Avalos>342	string	Invalid\ partition\ table$
440327e51cbSPeter Avalos>>366	string	No\ operating\ system$
441327e51cbSPeter Avalos>>>386	string	Operating\ system\ load\ error$	\b, DR-DOS MBR, version 7.01 to 7.03
442327e51cbSPeter Avalos>295	string	NEWLDR\0
443327e51cbSPeter Avalos>>302	string	Bad\ PT\ $
444327e51cbSPeter Avalos>>>310	string	No\ OS\ $
445327e51cbSPeter Avalos>>>>317	string	OS\ load\ err$
446327e51cbSPeter Avalos>>>>>329	string	Moved\ or\ missing\ IBMBIO.LDR\n\r
447327e51cbSPeter Avalos>>>>>>358	string	Press\ any\ key\ to\ continue.\n\r$
448327e51cbSPeter Avalos>>>>>>>387	string	Copyright\ (c)\ 1984,1998
449327e51cbSPeter Avalos>>>>>>>>411	string	Caldera\ Inc.\0		\b, DR-DOS MBR (IBMBIO.LDR)
450327e51cbSPeter Avalos#
451e8af9738SPeter Avalos# tests for different MS-DOS Master Boot Records (MBR) moved and merged
452e8af9738SPeter Avalos#
45379343712SPeter Avalos#>0x145	string	Default:\ F				\b, FREE-DOS MBR
45479343712SPeter Avalos#>0x14B	string	Default:\ F				\b, FREE-DOS 1.0 MBR
45579343712SPeter Avalos>0x145	search/7	Default:\ F			\b, FREE-DOS MBR
45679343712SPeter Avalos#>>313		string	F0\ .\ .\ .
45779343712SPeter Avalos#>>>322		string	disk\ 1
45879343712SPeter Avalos#>>>>382	string	FAT3
459327e51cbSPeter Avalos>64	string	no\ active\ partition\ found
460327e51cbSPeter Avalos>>96	string	read\ error\ while\ reading\ drive	\b, FREE-DOS Beta 0.9 MBR
46179343712SPeter Avalos# Ranish Partition Manager http://www.ranish.com/part/
46279343712SPeter Avalos>387	search/4	\0\ Error!\r
46379343712SPeter Avalos>>378	search/7	Virus!
464c30bd091SSascha Wildner>>>397	search/4	Booting\040
46579343712SPeter Avalos>>>>408	search/4	HD1/\0	 			\b, Ranish MBR (
46679343712SPeter Avalos>>>>>416	string	Writing\ changes...		\b2.37
467614728caSSascha Wildner>>>>>>438	ubyte		x			\b,%#x dots
46879343712SPeter Avalos>>>>>>440	ubyte		>0			\b,virus check
46979343712SPeter Avalos>>>>>>441	ubyte		>0			\b,partition %c
47079343712SPeter Avalos#2.38,2.42,2.44
47179343712SPeter Avalos>>>>>416	string	!Writing\ changes...		\b
47279343712SPeter Avalos>>>>>>418	ubyte	1				\bvirus check,
473614728caSSascha Wildner>>>>>>419	ubyte	x				\b%#x seconds
47479343712SPeter Avalos>>>>>>420	ubyte&0x0F	>0			\b,partition
47579343712SPeter Avalos>>>>>>>420	ubyte&0x0F	<5			\b %x
47679343712SPeter Avalos>>>>>>>420	ubyte&0x0F	0Xf			\b ask
47779343712SPeter Avalos>>>>>420	ubyte		x			\b)
47879343712SPeter Avalos#
479e8af9738SPeter Avalos# SYSLINUX MBR moved
4806fca56fbSSascha Wildner# https://www.acronis.de/
481327e51cbSPeter Avalos>362	string	MBR\ Error\ \0\r
482c30bd091SSascha Wildner>>376	string	ress\ any\ key\ to\040
483327e51cbSPeter Avalos>>>392	string	boot\ from\ floppy...\0			\b, Acronis MBR
484327e51cbSPeter Avalos# added by Joerg Jenderek
4856fca56fbSSascha Wildner# https://www.visopsys.org/
4866fca56fbSSascha Wildner# https://partitionlogic.org.uk/
487327e51cbSPeter Avalos>309	string	No\ bootable\ partition\ found\r
488327e51cbSPeter Avalos>>339	string	I/O\ Error\ reading\ boot\ sector\r	\b, Visopsys MBR
489327e51cbSPeter Avalos>349	string	No\ bootable\ partition\ found\r
490327e51cbSPeter Avalos>>379	string	I/O\ Error\ reading\ boot\ sector\r	\b, simple Visopsys MBR
491327e51cbSPeter Avalos# bootloader, bootmanager
492327e51cbSPeter Avalos>0x40	string	SBML
493327e51cbSPeter Avalos# label with 11 characters of FAT 12 bit filesystem
494327e51cbSPeter Avalos>>43	string	SMART\ BTMGR
49579343712SPeter Avalos>>>430	string	SBMK\ Bad!\r			\b, Smart Boot Manager
49679343712SPeter Avalos# OEM-ID not always "SBM"
49779343712SPeter Avalos#>>>>3	strings	SBM
49879343712SPeter Avalos>>>>6	string	>\0                             \b, version %s
499327e51cbSPeter Avalos>382	string	XOSLLOADXCF			\b, eXtended Operating System Loader
500327e51cbSPeter Avalos>6	string	LILO				\b, LInux i386 boot LOader
501327e51cbSPeter Avalos>>120	string	LILO				\b, version 22.3.4 SuSe
502327e51cbSPeter Avalos>>172	string	LILO				\b, version 22.5.8 Debian
50379343712SPeter Avalos# updated by Joerg Jenderek at Oct 2008
504327e51cbSPeter Avalos# variables according to grub-0.97/stage1/stage1.S or
5056fca56fbSSascha Wildner# https://www.gnu.org/software/grub/manual/grub.html#Embedded-data
506970935fdSSascha Wildner# usual values are marked with comments to get only information of strange GRUB loaders
50779343712SPeter Avalos>342		search/60	\0Geom\0
50879343712SPeter Avalos#>0		ulelong		x		%x=0x009048EB ,	0x2a9048EB  0
509327e51cbSPeter Avalos>>0x41		ubyte		<2
510327e51cbSPeter Avalos>>>0x3E		ubyte		>2		\b; GRand Unified Bootloader
511327e51cbSPeter Avalos# 0x3 for 0.5.95,0.93,0.94,0.96 0x4 for 1.90
512614728caSSascha Wildner>>>>0x3E	ubyte		x		\b, stage1 version %#x
513327e51cbSPeter Avalos#If it is 0xFF, use a drive passed by BIOS
514614728caSSascha Wildner>>>>0x40	ubyte		<0xFF		\b, boot drive %#x
515327e51cbSPeter Avalos# in most case 0,1,0x2e for GRUB 0.5.95
516614728caSSascha Wildner>>>>0x41	ubyte		>0		\b, LBA flag %#x
517614728caSSascha Wildner>>>>0x42	uleshort	<0x8000		\b, stage2 address %#x
518614728caSSascha Wildner#>>>>0x42	uleshort	=0x8000		\b, stage2 address %#x (usual)
519614728caSSascha Wildner>>>>0x42	uleshort	>0x8000		\b, stage2 address %#x
520614728caSSascha Wildner#>>>>0x44	ulelong		=1		\b, 1st sector stage2 %#x (default)
521614728caSSascha Wildner>>>>0x44	ulelong		>1		\b, 1st sector stage2 %#x
522614728caSSascha Wildner>>>>0x48	uleshort	<0x800		\b, stage2 segment %#x
523614728caSSascha Wildner#>>>>0x48	uleshort	=0x800		\b, stage2 segment %#x (usual)
524614728caSSascha Wildner>>>>0x48	uleshort	>0x800		\b, stage2 segment %#x
525327e51cbSPeter Avalos>>>>402		string	Geom\0Hard\ Disk\0Read\0\ Error\0
526327e51cbSPeter Avalos>>>>>394	string	stage1			\b, GRUB version 0.5.95
527327e51cbSPeter Avalos>>>>382		string	Geom\0Hard\ Disk\0Read\0\ Error\0
528327e51cbSPeter Avalos>>>>>376	string	GRUB\ \0		\b, GRUB version 0.93 or 1.94
529327e51cbSPeter Avalos>>>>383		string	Geom\0Hard\ Disk\0Read\0\ Error\0
530327e51cbSPeter Avalos>>>>>377	string	GRUB\ \0		\b, GRUB version 0.94
531327e51cbSPeter Avalos>>>>385		string	Geom\0Hard\ Disk\0Read\0\ Error\0
532327e51cbSPeter Avalos>>>>>379	string	GRUB\ \0		\b, GRUB version 0.95 or 0.96
533327e51cbSPeter Avalos>>>>391		string	Geom\0Hard\ Disk\0Read\0\ Error\0
534327e51cbSPeter Avalos>>>>>385	string	GRUB\ \0		\b, GRUB version 0.97
53582c5fa3eSPeter Avalos# unknown version
536327e51cbSPeter Avalos>>>343		string	Geom\0Read\0\ Error\0
537327e51cbSPeter Avalos>>>>321		string	Loading\ stage1.5	\b, GRUB version x.y
538327e51cbSPeter Avalos>>>380		string	Geom\0Hard\ Disk\0Read\0\ Error\0
539327e51cbSPeter Avalos>>>>374		string	GRUB\ \0		\b, GRUB version n.m
540e8af9738SPeter Avalos# SYSLINUX bootloader moved
541327e51cbSPeter Avalos>395	string	chksum\0\ ERROR!\0		\b, Gujin bootloader
542327e51cbSPeter Avalos# http://www.bcdwb.de/bcdw/index_e.htm
543327e51cbSPeter Avalos>3	string	BCDL
544327e51cbSPeter Avalos>>498	string	BCDL\ \ \ \ BIN			\b, Bootable CD Loader (1.50Z)
545e8af9738SPeter Avalos# mbr partition table entries updated by Joerg Jenderek at Sep 2013
546e8af9738SPeter Avalos# skip Norton Utilities disc image data
547e8af9738SPeter Avalos>3		string		!IHISK
548970935fdSSascha Wildner# skip Linux style boot sector starting with assembler instructions mov 0x7c0,ax;
549e8af9738SPeter Avalos>>0		belong		!0xb8c0078e
550327e51cbSPeter Avalos# not Linux kernel
551e8af9738SPeter Avalos>>>514		string		!HdrS
552327e51cbSPeter Avalos# not BeOS
553e8af9738SPeter Avalos>>>>422		string		!Be\ Boot\ Loader
554e8af9738SPeter Avalos# jump over BPB instruction implies DOS bootsector or AdvanceMAME mbr
555e8af9738SPeter Avalos>>>>>0		ubelong&0xFD000000	=0xE9000000
556e8af9738SPeter Avalos# AdvanceMAME mbr
557e8af9738SPeter Avalos>>>>>>(1.b+2)	ubequad		0xfa31c08ed88ec08e
558e8af9738SPeter Avalos>>>>>>>446	use		partition-table
559e8af9738SPeter Avalos# mbr, Norton Utilities disc image data, or 2nd,etc. sector of x86 bootloader
560e8af9738SPeter Avalos>>>>>0		ubelong&0xFD000000	!0xE9000000
561e8af9738SPeter Avalos# skip FSInfosector
562e8af9738SPeter Avalos>>>>>>0		string		!RRaA
563970935fdSSascha Wildner# skip 3rd sector of MS x86 bootloader with assembler instructions cli;MOVZX EAX,BYTE PTR [BP+10];MOV ECX,
5646fca56fbSSascha Wildner# https://thestarman.pcministry.com/asm/mbr/MSWIN41.htm
565e8af9738SPeter Avalos>>>>>>>0	ubequad		!0xfa660fb64610668b
566e8af9738SPeter Avalos# skip 13rd sector of MS x86 bootloader
567e8af9738SPeter Avalos>>>>>>>>0	ubequad		!0x660fb64610668b4e
568e8af9738SPeter Avalos# skip sector starting with DOS new line
569e8af9738SPeter Avalos>>>>>>>>>0	string		!\r\n
570e8af9738SPeter Avalos# allowed active flag 0,80h-FFh
571e8af9738SPeter Avalos>>>>>>>>>>446	ubyte		0
572e8af9738SPeter Avalos>>>>>>>>>>>446	use		partition-table
573e8af9738SPeter Avalos>>>>>>>>>>446	ubyte		>0x7F
574e8af9738SPeter Avalos>>>>>>>>>>>446	use		partition-table
575e8af9738SPeter Avalos# TODO: test for extended bootrecord (ebr) moved and merged with mbr partition table entries
576f72f8299SJan Lentfer# mbr partition table entries end
5776fca56fbSSascha Wildner# https://www.acronis.de/
578327e51cbSPeter Avalos#FAT label=ACRONIS\ SZ
579327e51cbSPeter Avalos#OEM-ID=BOOTWIZ0
580c30bd091SSascha Wildner>442	string	Non-system\ disk,\040
581327e51cbSPeter Avalos>>459	string	press\ any\ key...\x7\0		\b, Acronis Startup Recovery Loader
58282c5fa3eSPeter Avalos# updated by Joerg Jenderek at Nov 2012, Sep 2013
583e8af9738SPeter Avalos# DOS names like F11.SYS or BOOTWIZ.SYS are 8 right space padded bytes+3 bytes
58482c5fa3eSPeter Avalos# display 1 space
58582c5fa3eSPeter Avalos>>>447	ubyte	x		\b
58682c5fa3eSPeter Avalos>>>477	use	DOS-filename
587327e51cbSPeter Avalos#
588c30bd091SSascha Wildner>185	string	FDBOOT\ Version\040
589c30bd091SSascha Wildner>>204	string	\rNo\ Systemdisk.\040
590327e51cbSPeter Avalos>>>220	string	Booting\ from\ harddisk.\n\r
591327e51cbSPeter Avalos>>>245	string	Cannot\ load\ from\ harddisk.\n\r
592c30bd091SSascha Wildner>>>>273 string	Insert\ Systemdisk\040
593327e51cbSPeter Avalos>>>>>291 string and\ press\ any\ key.\n\r		\b, FDBOOT harddisk Bootloader
594327e51cbSPeter Avalos>>>>>>200 string	>\0                             \b, version %-3s
595327e51cbSPeter Avalos>242	string	Bootsector\ from\ C.H.\ Hochst\204
596e8af9738SPeter Avalos# http://freecode.com/projects/dosfstools	dosfstools-n.m/src/mkdosfs.c
597e8af9738SPeter Avalos# updated by Joerg Jenderek at Nov 2012. Use search directive with offset instead of string
598e8af9738SPeter Avalos# skip name "C.H. Hochstaetter" partly because it is sometimes written without umlaut
599e8af9738SPeter Avalos>242	search/127	Bootsector\ from\ C.H.\ Hochst
600e8af9738SPeter Avalos>>278	search/127	No\ Systemdisk.\ Booting\ from\ harddisk
601e8af9738SPeter Avalos# followed by variants with point,CR-NL or NL-CR
602e8af9738SPeter Avalos>>>208	search/261	Cannot\ load\ from\ harddisk.
603e8af9738SPeter Avalos# followed by variants CR-NL or NL-CR
604e8af9738SPeter Avalos>>>>236	search/235	Insert\ Systemdisk\ and\ press\ any\ key.
605e8af9738SPeter Avalos# followed by variants with point,CR-NL or NL-CR
606e8af9738SPeter Avalos>>>>>180	search/96	Disk\ formatted\ with\ WinImage\ 	\b, WinImage harddisk Bootloader
607e8af9738SPeter Avalos# followed by string like "6.50 (c) 1993-2004 Gilles Vollant"
608e8af9738SPeter Avalos>>>>>>&0	string		x 					\b, version %-4.4s
609327e51cbSPeter Avalos>(1.b+2)	ubyte		0xe
610327e51cbSPeter Avalos>>(1.b+3)	ubyte		0x1f
611327e51cbSPeter Avalos>>>(1.b+4)	ubyte		0xbe
612e8af9738SPeter Avalos# message offset found at (1.b+5) is 0x77 for FAT32 or 0x5b for others
613e8af9738SPeter Avalos>>>>(1.b+5)	ubyte&0xd3	0x53
614e8af9738SPeter Avalos>>>>>(1.b+6)	ubyte		0x7c
615e8af9738SPeter Avalos# assembler instructions: lodsb;and al,al;jz 0xb;push si;mov ah,
616e8af9738SPeter Avalos>>>>>>(1.b+7)	ubyte		0xac
617e8af9738SPeter Avalos>>>>>>>(1.b+8)	ubyte		0x22
618e8af9738SPeter Avalos>>>>>>>>(1.b+9)	ubyte		0xc0
619e8af9738SPeter Avalos>>>>>>>>>(1.b+10)	ubyte	0x74
620e8af9738SPeter Avalos>>>>>>>>>>(1.b+11)	ubyte	0x0b
621e8af9738SPeter Avalos>>>>>>>>>>>(1.b+12)	ubyte	0x56
622e8af9738SPeter Avalos>>>>>>>>>>>>(1.b+13)	ubyte	0xb4			\b, mkdosfs boot message display
623e8af9738SPeter Avalos# FAT1X version
624e8af9738SPeter Avalos>>>>>>>>>>>>>(1.b+5)	ubyte	0x5b
625e8af9738SPeter Avalos>>>>>>>>>>>>>>0x5b	string	>\0			"%-s"
626e8af9738SPeter Avalos# FAT32 version
627e8af9738SPeter Avalos>>>>>>>>>>>>>(1.b+5)	ubyte	0x77
628e8af9738SPeter Avalos>>>>>>>>>>>>>>0x77	string	>\0			"%-s"
62979343712SPeter Avalos>214	string	Please\ try\ to\ install\ FreeDOS\ 	\b, DOS Emulator boot message display
63079343712SPeter Avalos#>>244	string	from\ dosemu-freedos-*-bin.tgz\r
631c30bd091SSascha Wildner#>>>170	string	Sorry,\ could\ not\ load\ an\040
63279343712SPeter Avalos#>>>>195	string	operating\ system.\r\n
63379343712SPeter Avalos#
634c30bd091SSascha Wildner>103	string	This\ is\ not\ a\ bootable\ disk.\040
635c30bd091SSascha Wildner>>132	string	Please\ insert\ a\ bootable\040
636327e51cbSPeter Avalos>>>157	string	floppy\ and\r\n
637327e51cbSPeter Avalos>>>>169	string	press\ any\ key\ to\ try\ again...\r	\b, FREE-DOS message display
638327e51cbSPeter Avalos#
639327e51cbSPeter Avalos>66	string	Solaris\ Boot\ Sector
640327e51cbSPeter Avalos>>99	string	Incomplete\ MDBoot\ load.
641327e51cbSPeter Avalos>>>89	string	Version 				\b, Sun Solaris Bootloader
642327e51cbSPeter Avalos>>>>97	byte	x					version %c
643327e51cbSPeter Avalos#
644327e51cbSPeter Avalos>408	string	OS/2\ !!\ SYS01475\r\0
645327e51cbSPeter Avalos>>429	string	OS/2\ !!\ SYS02025\r\0
646327e51cbSPeter Avalos>>>450	string	OS/2\ !!\ SYS02027\r\0
647327e51cbSPeter Avalos>>>469	string	OS2BOOT\ \ \ \ 				\b, IBM OS/2 Warp bootloader
648327e51cbSPeter Avalos#
649327e51cbSPeter Avalos>409	string	OS/2\ !!\ SYS01475\r\0
650327e51cbSPeter Avalos>>430	string	OS/2\ !!\ SYS02025\r\0
651327e51cbSPeter Avalos>>>451	string	OS/2\ !!\ SYS02027\r\0
652327e51cbSPeter Avalos>>>470	string	OS2BOOT\ \ \ \ 				\b, IBM OS/2 Warp Bootloader
653327e51cbSPeter Avalos>112		string	This\ disk\ is\ not\ bootable\r
654327e51cbSPeter Avalos>>142		string	If\ you\ wish\ to\ make\ it\ bootable
655c30bd091SSascha Wildner>>>176		string	run\ the\ DOS\ program\ SYS\040
656327e51cbSPeter Avalos>>>200		string	after\ the\r
657327e51cbSPeter Avalos>>>>216		string	system\ has\ been\ loaded\r\n
658c30bd091SSascha Wildner>>>>>242	string	Please\ insert\ a\ DOS\ diskette\040
659c30bd091SSascha Wildner>>>>>271	string	into\r\n\ the\ drive\ and\040
660327e51cbSPeter Avalos>>>>>>292	string	strike\ any\ key...\0		\b, IBM OS/2 Warp message display
661327e51cbSPeter Avalos# XP
662327e51cbSPeter Avalos>430	string	NTLDR\ is\ missing\xFF\r\n
663327e51cbSPeter Avalos>>449	string	Disk\ error\xFF\r\n
664327e51cbSPeter Avalos>>>462	string	Press\ any\ key\ to\ restart\r		\b, Microsoft Windows XP Bootloader
665327e51cbSPeter Avalos# DOS names like NTLDR,CMLDR,$LDR$ are 8 right space padded bytes+3 bytes
666327e51cbSPeter Avalos>>>>417		ubyte&0xDF	>0
667327e51cbSPeter Avalos>>>>>417	string		x			%-.5s
668327e51cbSPeter Avalos>>>>>>422	ubyte&0xDF	>0
669327e51cbSPeter Avalos>>>>>>>422	string		x 			\b%-.3s
670327e51cbSPeter Avalos>>>>>425	ubyte&0xDF	>0
671327e51cbSPeter Avalos>>>>>>425	string		>\ 			\b.%-.3s
672327e51cbSPeter Avalos#
673327e51cbSPeter Avalos>>>>371		ubyte		>0x20
674327e51cbSPeter Avalos>>>>>368	ubyte&0xDF	>0
675327e51cbSPeter Avalos>>>>>>368	string		x 			%-.5s
676327e51cbSPeter Avalos>>>>>>>373	ubyte&0xDF	>0
677327e51cbSPeter Avalos>>>>>>>>373	string		x 			\b%-.3s
678327e51cbSPeter Avalos>>>>>>376	ubyte&0xDF	>0
679327e51cbSPeter Avalos>>>>>>>376	string		x 			\b.%-.3s
680327e51cbSPeter Avalos#
681327e51cbSPeter Avalos>430	string	NTLDR\ nicht\ gefunden\xFF\r\n
682327e51cbSPeter Avalos>>453	string	Datentr\204gerfehler\xFF\r\n
683327e51cbSPeter Avalos>>>473	string	Neustart\ mit\ beliebiger\ Taste\r	\b, Microsoft Windows XP Bootloader (german)
684327e51cbSPeter Avalos>>>>417		ubyte&0xDF	>0
685327e51cbSPeter Avalos>>>>>417	string		x			%-.5s
686327e51cbSPeter Avalos>>>>>>422	ubyte&0xDF	>0
687327e51cbSPeter Avalos>>>>>>>422	string		x 			\b%-.3s
688327e51cbSPeter Avalos>>>>>425	ubyte&0xDF	>0
689327e51cbSPeter Avalos>>>>>>425	string		>\ 			\b.%-.3s
690327e51cbSPeter Avalos# offset variant
691327e51cbSPeter Avalos>>>>379	string	\0
692327e51cbSPeter Avalos>>>>>368	ubyte&0xDF	>0
693327e51cbSPeter Avalos>>>>>>368	string		x 			%-.5s
694327e51cbSPeter Avalos>>>>>>>373	ubyte&0xDF	>0
695327e51cbSPeter Avalos>>>>>>>>373	string		x 			\b%-.3s
696327e51cbSPeter Avalos#
697327e51cbSPeter Avalos>430	string	NTLDR\ fehlt\xFF\r\n
698327e51cbSPeter Avalos>>444	string	Datentr\204gerfehler\xFF\r\n
699327e51cbSPeter Avalos>>>464	string	Neustart\ mit\ beliebiger\ Taste\r	\b, Microsoft Windows XP Bootloader (2.german)
700327e51cbSPeter Avalos>>>>417		ubyte&0xDF	>0
701327e51cbSPeter Avalos>>>>>417	string		x			%-.5s
702327e51cbSPeter Avalos>>>>>>422	ubyte&0xDF	>0
703327e51cbSPeter Avalos>>>>>>>422	string		x 			\b%-.3s
704327e51cbSPeter Avalos>>>>>425	ubyte&0xDF	>0
705327e51cbSPeter Avalos>>>>>>425	string		>\ 			\b.%-.3s
706327e51cbSPeter Avalos# variant
707327e51cbSPeter Avalos>>>>371		ubyte		>0x20
708327e51cbSPeter Avalos>>>>>368	ubyte&0xDF	>0
709327e51cbSPeter Avalos>>>>>>368	string		x 			%-.5s
710327e51cbSPeter Avalos>>>>>>>373	ubyte&0xDF	>0
711327e51cbSPeter Avalos>>>>>>>>373	string		x 			\b%-.3s
712327e51cbSPeter Avalos>>>>>>376	ubyte&0xDF	>0
713327e51cbSPeter Avalos>>>>>>>376	string		x 			\b.%-.3s
714327e51cbSPeter Avalos#
715327e51cbSPeter Avalos>430	string	NTLDR\ fehlt\xFF\r\n
716327e51cbSPeter Avalos>>444	string	Medienfehler\xFF\r\n
717327e51cbSPeter Avalos>>>459	string	Neustart:\ Taste\ dr\201cken\r		\b, Microsoft Windows XP Bootloader (3.german)
718327e51cbSPeter Avalos>>>>371		ubyte		>0x20
719327e51cbSPeter Avalos>>>>>368	ubyte&0xDF	>0
720327e51cbSPeter Avalos>>>>>>368	string		x 			%-.5s
721327e51cbSPeter Avalos>>>>>>>373	ubyte&0xDF	>0
722327e51cbSPeter Avalos>>>>>>>>373	string		x 			\b%-.3s
723327e51cbSPeter Avalos>>>>>>376	ubyte&0xDF	>0
724327e51cbSPeter Avalos>>>>>>>376	string		x 			\b.%-.3s
725327e51cbSPeter Avalos# variant
726327e51cbSPeter Avalos>>>>417		ubyte&0xDF	>0
727327e51cbSPeter Avalos>>>>>417	string		x			%-.5s
728327e51cbSPeter Avalos>>>>>>422	ubyte&0xDF	>0
729327e51cbSPeter Avalos>>>>>>>422	string		x 			\b%-.3s
730327e51cbSPeter Avalos>>>>>425	ubyte&0xDF	>0
731327e51cbSPeter Avalos>>>>>>425	string		>\ 			\b.%-.3s
732327e51cbSPeter Avalos#
733327e51cbSPeter Avalos>430	string	Datentr\204ger\ entfernen\xFF\r\n
734327e51cbSPeter Avalos>>454	string	Medienfehler\xFF\r\n
735327e51cbSPeter Avalos>>>469	string	Neustart:\ Taste\ dr\201cken\r		\b, Microsoft Windows XP Bootloader (4.german)
73679343712SPeter Avalos>>>>379		string		\0
73779343712SPeter Avalos>>>>>368	ubyte&0xDF	>0
73879343712SPeter Avalos>>>>>>368	string		x 			%-.5s
73979343712SPeter Avalos>>>>>>>373	ubyte&0xDF	>0
74079343712SPeter Avalos>>>>>>>>373	string		x 			\b%-.3s
74179343712SPeter Avalos>>>>>>376	ubyte&0xDF	>0
74279343712SPeter Avalos>>>>>>>376	string		x 			\b.%-.3s
74379343712SPeter Avalos# variant
74479343712SPeter Avalos>>>>417		ubyte&0xDF	>0
74579343712SPeter Avalos>>>>>417	string		x			%-.5s
74679343712SPeter Avalos>>>>>>422	ubyte&0xDF	>0
74779343712SPeter Avalos>>>>>>>422	string		x 			\b%-.3s
74879343712SPeter Avalos>>>>>425	ubyte&0xDF	>0
74979343712SPeter Avalos>>>>>>425	string		>\ 			\b.%-.3s
75079343712SPeter Avalos#
75179343712SPeter Avalos
752c30bd091SSascha Wildner#>3	string	NTFS\ \ \ \040
753c30bd091SSascha Wildner>389	string	Fehler\ beim\ Lesen\040
754327e51cbSPeter Avalos>>407	string	des\ Datentr\204gers
755327e51cbSPeter Avalos>>>426	string	NTLDR\ fehlt
756327e51cbSPeter Avalos>>>>440	string	NTLDR\ ist\ komprimiert
757327e51cbSPeter Avalos>>>>>464 string	Neustart\ mit\ Strg+Alt+Entf\r		\b, Microsoft Windows XP Bootloader NTFS (german)
758c30bd091SSascha Wildner#>3	string	NTFS\ \ \ \040
759327e51cbSPeter Avalos>313	string	A\ disk\ read\ error\ occurred.\r
760c30bd091SSascha Wildner>>345	string	A\ kernel\ file\ is\ missing\040
761327e51cbSPeter Avalos>>>370	string	from\ the\ disk.\r
762327e51cbSPeter Avalos>>>>484	string	NTLDR\ is\ compressed
763c30bd091SSascha Wildner>>>>>429 string	Insert\ a\ system\ diskette\040
764327e51cbSPeter Avalos>>>>>>454 string and\ restart\r\nthe\ system.\r		\b, Microsoft Windows XP Bootloader NTFS
765327e51cbSPeter Avalos# DOS loader variants different languages,offsets
766327e51cbSPeter Avalos>472	ubyte&0xDF	>0
767327e51cbSPeter Avalos>>389	string	Invalid\ system\ disk\xFF\r\n
768327e51cbSPeter Avalos>>>411	string	Disk\ I/O\ error
769c30bd091SSascha Wildner>>>>428	string	Replace\ the\ disk,\ and\040
770327e51cbSPeter Avalos>>>>>455 string	press\ any\ key				\b, Microsoft Windows 98 Bootloader
771327e51cbSPeter Avalos#IO.SYS
772327e51cbSPeter Avalos>>>>>>472	ubyte&0xDF	>0
773327e51cbSPeter Avalos>>>>>>>472	string		x 			\b %-.2s
774327e51cbSPeter Avalos>>>>>>>>474	ubyte&0xDF	>0
775327e51cbSPeter Avalos>>>>>>>>>474	string		x 			\b%-.5s
776327e51cbSPeter Avalos>>>>>>>>>>479	ubyte&0xDF	>0
777327e51cbSPeter Avalos>>>>>>>>>>>479 string		x 			\b%-.1s
778327e51cbSPeter Avalos>>>>>>>480	ubyte&0xDF	>0
779327e51cbSPeter Avalos>>>>>>>>480	string		x 			\b.%-.3s
780327e51cbSPeter Avalos#MSDOS.SYS
781327e51cbSPeter Avalos>>>>>>>483	ubyte&0xDF	>0			\b+
782327e51cbSPeter Avalos>>>>>>>>483	string		x 			\b%-.5s
783327e51cbSPeter Avalos>>>>>>>>>488	ubyte&0xDF	>0
784327e51cbSPeter Avalos>>>>>>>>>>488	string		x 			\b%-.3s
785327e51cbSPeter Avalos>>>>>>>>491	ubyte&0xDF	>0
786327e51cbSPeter Avalos>>>>>>>>>491	string		x 			\b.%-.3s
787327e51cbSPeter Avalos#
788327e51cbSPeter Avalos>>390	string	Invalid\ system\ disk\xFF\r\n
789327e51cbSPeter Avalos>>>412	string	Disk\ I/O\ error\xFF\r\n
790c30bd091SSascha Wildner>>>>429	string	Replace\ the\ disk,\ and\040
791327e51cbSPeter Avalos>>>>>451 string	then\ press\ any\ key\r			\b, Microsoft Windows 98 Bootloader
792327e51cbSPeter Avalos>>388	string	Ungueltiges\ System\ \xFF\r\n
793327e51cbSPeter Avalos>>>410	string	E/A-Fehler\ \ \ \ \xFF\r\n
794c30bd091SSascha Wildner>>>>427	string	Datentraeger\ wechseln\ und\040
795327e51cbSPeter Avalos>>>>>453 string	Taste\ druecken\r			\b, Microsoft Windows 95/98/ME Bootloader (german)
796327e51cbSPeter Avalos#WINBOOT.SYS only not spaces (0xDF)
797327e51cbSPeter Avalos>>>>>>497	ubyte&0xDF	>0
798327e51cbSPeter Avalos>>>>>>>497	string		x 			%-.5s
799327e51cbSPeter Avalos>>>>>>>>502	ubyte&0xDF	>0
800327e51cbSPeter Avalos>>>>>>>>>502	string		x 			\b%-.1s
801327e51cbSPeter Avalos>>>>>>>>>>503	ubyte&0xDF	>0
802327e51cbSPeter Avalos>>>>>>>>>>>503	string		x 			\b%-.1s
803327e51cbSPeter Avalos>>>>>>>>>>>>504	ubyte&0xDF	>0
804327e51cbSPeter Avalos>>>>>>>>>>>>>504 string		x 			\b%-.1s
805327e51cbSPeter Avalos>>>>>>505	ubyte&0xDF	>0
806327e51cbSPeter Avalos>>>>>>>505	string		x 			\b.%-.3s
807327e51cbSPeter Avalos#IO.SYS
808327e51cbSPeter Avalos>>>>>>472	ubyte&0xDF	>0			or
809327e51cbSPeter Avalos>>>>>>>472	string		x 			\b %-.2s
810327e51cbSPeter Avalos>>>>>>>>474	ubyte&0xDF	>0
811327e51cbSPeter Avalos>>>>>>>>>474	string		x 			\b%-.5s
812327e51cbSPeter Avalos>>>>>>>>>>479	ubyte&0xDF	>0
813327e51cbSPeter Avalos>>>>>>>>>>>479 string		x 			\b%-.1s
814327e51cbSPeter Avalos>>>>>>>480	ubyte&0xDF	>0
815327e51cbSPeter Avalos>>>>>>>>480	string		x 			\b.%-.3s
816327e51cbSPeter Avalos#MSDOS.SYS
817327e51cbSPeter Avalos>>>>>>>483	ubyte&0xDF	>0			\b+
818327e51cbSPeter Avalos>>>>>>>>483	string		x 			\b%-.5s
819327e51cbSPeter Avalos>>>>>>>>>488	ubyte&0xDF	>0
820327e51cbSPeter Avalos>>>>>>>>>>488	string		x 			\b%-.3s
821327e51cbSPeter Avalos>>>>>>>>491	ubyte&0xDF	>0
822327e51cbSPeter Avalos>>>>>>>>>491	string		x 			\b.%-.3s
823327e51cbSPeter Avalos#
824327e51cbSPeter Avalos>>390	string	Ungueltiges\ System\ \xFF\r\n
825327e51cbSPeter Avalos>>>412	string	E/A-Fehler\ \ \ \ \xFF\r\n
826c30bd091SSascha Wildner>>>>429	string	Datentraeger\ wechseln\ und\040
827327e51cbSPeter Avalos>>>>>455 string	Taste\ druecken\r			\b, Microsoft Windows 95/98/ME Bootloader (German)
828327e51cbSPeter Avalos#WINBOOT.SYS only not spaces (0xDF)
829327e51cbSPeter Avalos>>>>>>497	ubyte&0xDF	>0
830327e51cbSPeter Avalos>>>>>>>497	string		x 			%-.7s
831327e51cbSPeter Avalos>>>>>>>>504	ubyte&0xDF	>0
832327e51cbSPeter Avalos>>>>>>>>>504	string		x 			\b%-.1s
833327e51cbSPeter Avalos>>>>>>505	ubyte&0xDF	>0
834327e51cbSPeter Avalos>>>>>>>505	string		x 			\b.%-.3s
835327e51cbSPeter Avalos#IO.SYS
836327e51cbSPeter Avalos>>>>>>472	ubyte&0xDF	>0			or
837327e51cbSPeter Avalos>>>>>>>472	string		x 			\b %-.2s
838327e51cbSPeter Avalos>>>>>>>>474	ubyte&0xDF	>0
839327e51cbSPeter Avalos>>>>>>>>>474	string		x 			\b%-.6s
840327e51cbSPeter Avalos>>>>>>>480	ubyte&0xDF	>0
841327e51cbSPeter Avalos>>>>>>>>480	string		x 			\b.%-.3s
842327e51cbSPeter Avalos#MSDOS.SYS
843327e51cbSPeter Avalos>>>>>>>483	ubyte&0xDF	>0			\b+
844327e51cbSPeter Avalos>>>>>>>>483	string		x 			\b%-.5s
845327e51cbSPeter Avalos>>>>>>>>>488	ubyte&0xDF	>0
846327e51cbSPeter Avalos>>>>>>>>>>488	string		x 			\b%-.3s
847327e51cbSPeter Avalos>>>>>>>>491	ubyte&0xDF	>0
848327e51cbSPeter Avalos>>>>>>>>>491	string		x 			\b.%-.3s
849327e51cbSPeter Avalos#
850327e51cbSPeter Avalos>>389	string	Ungueltiges\ System\ \xFF\r\n
851327e51cbSPeter Avalos>>>411	string	E/A-Fehler\ \ \ \ \xFF\r\n
852c30bd091SSascha Wildner>>>>428	string	Datentraeger\ wechseln\ und\040
853327e51cbSPeter Avalos>>>>>454 string	Taste\ druecken\r			\b, Microsoft Windows 95/98/ME Bootloader (GERMAN)
854327e51cbSPeter Avalos# DOS names like IO.SYS,WINBOOT.SYS,MSDOS.SYS,WINBOOT.INI are 8 right space padded bytes+3 bytes
855327e51cbSPeter Avalos>>>>>>472	string		x 			%-.2s
856327e51cbSPeter Avalos>>>>>>>474	ubyte&0xDF	>0
857327e51cbSPeter Avalos>>>>>>>>474	string		x 			\b%-.5s
858327e51cbSPeter Avalos>>>>>>>>479	ubyte&0xDF	>0
859327e51cbSPeter Avalos>>>>>>>>>479	string		x 			\b%-.1s
860327e51cbSPeter Avalos>>>>>>480	ubyte&0xDF	>0
861327e51cbSPeter Avalos>>>>>>>480	string		x 			\b.%-.3s
862327e51cbSPeter Avalos>>>>>>483	ubyte&0xDF	>0			\b+
863327e51cbSPeter Avalos>>>>>>>483	string		x 			\b%-.5s
864327e51cbSPeter Avalos>>>>>>>488	ubyte&0xDF	>0
865327e51cbSPeter Avalos>>>>>>>>488	string		x 			\b%-.2s
866327e51cbSPeter Avalos>>>>>>>>490	ubyte&0xDF	>0
867327e51cbSPeter Avalos>>>>>>>>>490	string		x 			\b%-.1s
868327e51cbSPeter Avalos>>>>>>>491	ubyte&0xDF	>0
869327e51cbSPeter Avalos>>>>>>>>491	string		x 			\b.%-.3s
870327e51cbSPeter Avalos>479	ubyte&0xDF	>0
871c30bd091SSascha Wildner>>416	string	Kein\ System\ oder\040
872327e51cbSPeter Avalos>>>433	string	Laufwerksfehler
873327e51cbSPeter Avalos>>>>450	string	Wechseln\ und\ Taste\ dr\201cken	\b, Microsoft DOS Bootloader (german)
874327e51cbSPeter Avalos#IO.SYS
875327e51cbSPeter Avalos>>>>>479	string		x 			\b %-.2s
876327e51cbSPeter Avalos>>>>>>481	ubyte&0xDF	>0
877327e51cbSPeter Avalos>>>>>>>481	string		x 			\b%-.6s
878327e51cbSPeter Avalos>>>>>487	ubyte&0xDF	>0
879327e51cbSPeter Avalos>>>>>>487	string		x 			\b.%-.3s
880327e51cbSPeter Avalos#MSDOS.SYS
881327e51cbSPeter Avalos>>>>>>490	ubyte&0xDF	>0			\b+
882327e51cbSPeter Avalos>>>>>>>490	string		x 			\b%-.5s
883327e51cbSPeter Avalos>>>>>>>>495	ubyte&0xDF	>0
884327e51cbSPeter Avalos>>>>>>>>>495	string		x 			\b%-.3s
885327e51cbSPeter Avalos>>>>>>>498	ubyte&0xDF	>0
886327e51cbSPeter Avalos>>>>>>>>498	string		x 			\b.%-.3s
887327e51cbSPeter Avalos#
888c30bd091SSascha Wildner>376	search/41	Non-System\ disk\ or\040
889327e51cbSPeter Avalos>>395	search/41	disk\ error\r
890c30bd091SSascha Wildner>>>407	search/41	Replace\ and\040
891327e51cbSPeter Avalos>>>>419	search/41	press\ 				\b,
892327e51cbSPeter Avalos>>>>419	search/41	strike\ 			\b, old
893327e51cbSPeter Avalos>>>>426	search/41	any\ key\ when\ ready\r		MS or PC-DOS bootloader
894327e51cbSPeter Avalos#449			Disk\ Boot\ failure\r		MS 3.21
895327e51cbSPeter Avalos#466			Boot\ Failure\r			MS 3.30
896327e51cbSPeter Avalos>>>>>468 search/18	\0
897327e51cbSPeter Avalos#IO.SYS,IBMBIO.COM
898327e51cbSPeter Avalos>>>>>>&0	string		x 			\b %-.2s
899327e51cbSPeter Avalos>>>>>>>&-20	ubyte&0xDF	>0
900327e51cbSPeter Avalos>>>>>>>>&-1	string		x 			\b%-.4s
901327e51cbSPeter Avalos>>>>>>>>>&-16	ubyte&0xDF	>0
902327e51cbSPeter Avalos>>>>>>>>>>&-1	string		x 			\b%-.2s
903327e51cbSPeter Avalos>>>>>>&8	ubyte&0xDF	>0			\b.
904327e51cbSPeter Avalos>>>>>>>&-1	string		x 			\b%-.3s
905327e51cbSPeter Avalos#MSDOS.SYS,IBMDOS.COM
906327e51cbSPeter Avalos>>>>>>&11	ubyte&0xDF	>0			\b+
907327e51cbSPeter Avalos>>>>>>>&-1	string		x 			\b%-.5s
908327e51cbSPeter Avalos>>>>>>>>&-6	ubyte&0xDF	>0
909327e51cbSPeter Avalos>>>>>>>>>&-1	string		x 			\b%-.1s
910327e51cbSPeter Avalos>>>>>>>>>>&-5	ubyte&0xDF	>0
911327e51cbSPeter Avalos>>>>>>>>>>>&-1	string		x 			\b%-.2s
912327e51cbSPeter Avalos>>>>>>>&7	ubyte&0xDF	>0			\b.
913327e51cbSPeter Avalos>>>>>>>>&-1	string		x 			\b%-.3s
914327e51cbSPeter Avalos>441	string	Cannot\ load\ from\ harddisk.\n\r
915c30bd091SSascha Wildner>>469	string	Insert\ Systemdisk\040
916327e51cbSPeter Avalos>>>487	string	and\ press\ any\ key.\n\r		\b, MS (2.11) DOS bootloader
917327e51cbSPeter Avalos#>43	string	\224R-LOADER\ \ SYS			=label
918327e51cbSPeter Avalos>54	string	SYS
919327e51cbSPeter Avalos>>324	string	VASKK
920327e51cbSPeter Avalos>>>495	string	NEWLDR\0				\b, DR-DOS Bootloader (LOADER.SYS)
921327e51cbSPeter Avalos#
922327e51cbSPeter Avalos>98	string	Press\ a\ key\ to\ retry\0\r
923327e51cbSPeter Avalos>>120	string	Cannot\ find\ file\ \0\r
924327e51cbSPeter Avalos>>>139	string	Disk\ read\ error\0\r
925327e51cbSPeter Avalos>>>>156	string	Loading\ ...\0				\b, DR-DOS (3.41) Bootloader
926327e51cbSPeter Avalos#DRBIOS.SYS
927327e51cbSPeter Avalos>>>>>44		ubyte&0xDF	>0
928327e51cbSPeter Avalos>>>>>>44	string		x			\b %-.6s
929327e51cbSPeter Avalos>>>>>>>50	ubyte&0xDF	>0
930327e51cbSPeter Avalos>>>>>>>>50	string		x 			\b%-.2s
931327e51cbSPeter Avalos>>>>>>52	ubyte&0xDF	>0
932327e51cbSPeter Avalos>>>>>>>52	string		x 			\b.%-.3s
933327e51cbSPeter Avalos#
934327e51cbSPeter Avalos>70	string	IBMBIO\ \ COM
935c30bd091SSascha Wildner>>472	string	Cannot\ load\ DOS!\040
936327e51cbSPeter Avalos>>>489	string	Any\ key\ to\ retry			\b, DR-DOS Bootloader
937c30bd091SSascha Wildner>>471	string	Cannot\ load\ DOS\040
938327e51cbSPeter Avalos>>487	string	press\ key\ to\ retry			\b, Open-DOS Bootloader
93979343712SPeter Avalos#??
940327e51cbSPeter Avalos>444	string	KERNEL\ \ SYS
941327e51cbSPeter Avalos>>314	string	BOOT\ error!				\b, FREE-DOS Bootloader
942327e51cbSPeter Avalos>499	string	KERNEL\ \ SYS
943327e51cbSPeter Avalos>>305	string	BOOT\ err!\0				\b, Free-DOS Bootloader
944327e51cbSPeter Avalos>449	string	KERNEL\ \ SYS
945327e51cbSPeter Avalos>>319	string	BOOT\ error!				\b, FREE-DOS 0.5 Bootloader
94679343712SPeter Avalos#
94779343712SPeter Avalos>449	string	Loading\ FreeDOS
94879343712SPeter Avalos>>0x1AF		ulelong		>0			\b, FREE-DOS 0.95,1.0 Bootloader
94979343712SPeter Avalos>>>497		ubyte&0xDF	>0
95079343712SPeter Avalos>>>>497		string		x 			\b %-.6s
95179343712SPeter Avalos>>>>>503	ubyte&0xDF	>0
95279343712SPeter Avalos>>>>>>503	string		x 			\b%-.1s
95379343712SPeter Avalos>>>>>>>504	ubyte&0xDF	>0
95479343712SPeter Avalos>>>>>>>>504	string		x 			\b%-.1s
95579343712SPeter Avalos>>>>505		ubyte&0xDF	>0
95679343712SPeter Avalos>>>>>505	string		x 			\b.%-.3s
95779343712SPeter Avalos#
95879343712SPeter Avalos>331	string	Error!.0				\b, FREE-DOS 1.0 bootloader
95979343712SPeter Avalos#
960327e51cbSPeter Avalos>125	string	Loading\ FreeDOS...\r
961327e51cbSPeter Avalos>>311	string	BOOT\ error!\r				\b, FREE-DOS bootloader
962327e51cbSPeter Avalos>>>441		ubyte&0xDF	>0
963327e51cbSPeter Avalos>>>>441		string		x 			\b %-.6s
964327e51cbSPeter Avalos>>>>>447	ubyte&0xDF	>0
965327e51cbSPeter Avalos>>>>>>447	string		x 			\b%-.1s
966327e51cbSPeter Avalos>>>>>>>448	ubyte&0xDF	>0
967327e51cbSPeter Avalos>>>>>>>>448	string		x 			\b%-.1s
968327e51cbSPeter Avalos>>>>449		ubyte&0xDF	>0
969327e51cbSPeter Avalos>>>>>449	string		x 			\b.%-.3s
970327e51cbSPeter Avalos>124	string	FreeDOS\0
971327e51cbSPeter Avalos>>331	string	\ err\0					\b, FREE-DOS BETa 0.9 Bootloader
972327e51cbSPeter Avalos# DOS names like KERNEL.SYS,KERNEL16.SYS,KERNEL32.SYS,METAKERN.SYS are 8 right space padded bytes+3 bytes
973327e51cbSPeter Avalos>>>497		ubyte&0xDF	>0
974327e51cbSPeter Avalos>>>>497		string		x 			\b %-.6s
975327e51cbSPeter Avalos>>>>>503	ubyte&0xDF	>0
976327e51cbSPeter Avalos>>>>>>503	string		x 			\b%-.1s
977327e51cbSPeter Avalos>>>>>>>504	ubyte&0xDF	>0
978327e51cbSPeter Avalos>>>>>>>>504	string		x 			\b%-.1s
979327e51cbSPeter Avalos>>>>505		ubyte&0xDF	>0
980327e51cbSPeter Avalos>>>>>505	string		x 			\b.%-.3s
981327e51cbSPeter Avalos>>333	string	\ err\0					\b, FREE-DOS BEta 0.9 Bootloader
982327e51cbSPeter Avalos>>>497		ubyte&0xDF	>0
983327e51cbSPeter Avalos>>>>497		string		x 			\b %-.6s
984327e51cbSPeter Avalos>>>>>503	ubyte&0xDF	>0
985327e51cbSPeter Avalos>>>>>>503	string		x 			\b%-.1s
986327e51cbSPeter Avalos>>>>>>>504	ubyte&0xDF	>0
987327e51cbSPeter Avalos>>>>>>>>504	string		x 			\b%-.1s
988327e51cbSPeter Avalos>>>>505		ubyte&0xDF	>0
989327e51cbSPeter Avalos>>>>>505	string		x 			\b.%-.3s
990327e51cbSPeter Avalos>>334	string	\ err\0					\b, FREE-DOS Beta 0.9 Bootloader
991327e51cbSPeter Avalos>>>497		ubyte&0xDF	>0
992327e51cbSPeter Avalos>>>>497		string		x 			\b %-.6s
993327e51cbSPeter Avalos>>>>>503	ubyte&0xDF	>0
994327e51cbSPeter Avalos>>>>>>503	string		x 			\b%-.1s
995327e51cbSPeter Avalos>>>>>>>504	ubyte&0xDF	>0
996327e51cbSPeter Avalos>>>>>>>>504	string		x 			\b%-.1s
997327e51cbSPeter Avalos>>>>505		ubyte&0xDF	>0
998327e51cbSPeter Avalos>>>>>505	string		x 			\b.%-.3s
999c30bd091SSascha Wildner>336	string	Error!\040
1000327e51cbSPeter Avalos>>343	string	Hit\ a\ key\ to\ reboot.		\b, FREE-DOS Beta 0.9sr1 Bootloader
1001327e51cbSPeter Avalos>>>497		ubyte&0xDF	>0
1002327e51cbSPeter Avalos>>>>497		string		x 			\b %-.6s
1003327e51cbSPeter Avalos>>>>>503	ubyte&0xDF	>0
1004327e51cbSPeter Avalos>>>>>>503	string		x 			\b%-.1s
1005327e51cbSPeter Avalos>>>>>>>504	ubyte&0xDF	>0
1006327e51cbSPeter Avalos>>>>>>>>504	string		x 			\b%-.1s
1007327e51cbSPeter Avalos>>>>505		ubyte&0xDF	>0
1008327e51cbSPeter Avalos>>>>>505	string		x 			\b.%-.3s
1009327e51cbSPeter Avalos# added by Joerg Jenderek
10106fca56fbSSascha Wildner# https://www.visopsys.org/
10116fca56fbSSascha Wildner# https://partitionlogic.org.uk/
1012327e51cbSPeter Avalos# OEM-ID=Visopsys
1013327e51cbSPeter Avalos>478		ulelong	0
1014c30bd091SSascha Wildner>>(1.b+326)	string	I/O\ Error\ reading\040
1015327e51cbSPeter Avalos>>>(1.b+344)	string	Visopsys\ loader\r
1016327e51cbSPeter Avalos>>>>(1.b+361)	string	Press\ any\ key\ to\ continue.\r	\b, Visopsys loader
1017327e51cbSPeter Avalos# http://alexfru.chat.ru/epm.html#bootprog
1018327e51cbSPeter Avalos>494	ubyte	>0x4D
1019327e51cbSPeter Avalos>>495	string	>E
1020327e51cbSPeter Avalos>>>495	string	<S
1021327e51cbSPeter Avalos#OEM-ID is not reliable
1022327e51cbSPeter Avalos>>>>3	string	BootProg
1023327e51cbSPeter Avalos# It just looks for a program file name at the root directory
1024327e51cbSPeter Avalos# and loads corresponding file with following execution.
1025327e51cbSPeter Avalos# DOS names like STARTUP.BIN,STARTUPC.COM,STARTUPE.EXE are 8 right space padded bytes+3 bytes
1026327e51cbSPeter Avalos>>>>499			ubyte&0xDF	>0		\b, COM/EXE Bootloader
102782c5fa3eSPeter Avalos>>>>>499		use		DOS-filename
1028327e51cbSPeter Avalos#If the boot sector fails to read any other sector,
1029327e51cbSPeter Avalos#it prints a very short message ("RE") to the screen and hangs the computer.
1030327e51cbSPeter Avalos#If the boot sector fails to find needed program in the root directory,
1031327e51cbSPeter Avalos#it also hangs with another message ("NF").
1032327e51cbSPeter Avalos>>>>>492		string		RENF		\b, FAT (12 bit)
1033327e51cbSPeter Avalos>>>>>495		string		RENF		\b, FAT (16 bit)
1034327e51cbSPeter Avalos#If the boot sector fails to read any other sector,
1035327e51cbSPeter Avalos#it prints a very short message ("RE") to the screen and hangs the computer.
103679343712SPeter Avalos# x86 bootloader end
1037e8af9738SPeter Avalos
10386fca56fbSSascha Wildner# added by Joerg Jenderek at Feb 2013 according to https://thestarman.pcministry.com/asm/mbr/MSWIN41.htm#FSINFO
10396fca56fbSSascha Wildner# and https://en.wikipedia.org/wiki/File_Allocation_Table#FS_Information_Sector
104082c5fa3eSPeter Avalos>0		string		RRaA
104182c5fa3eSPeter Avalos>>0x1E4		string		rrAa		\b, FSInfosector
104282c5fa3eSPeter Avalos#>>0x1FC	uleshort	=0		SHOULD BE ZERO
104382c5fa3eSPeter Avalos>>>0x1E8	ulelong		<0xffffffff	\b, %u free clusters
104482c5fa3eSPeter Avalos>>>0x1EC	ulelong		<0xffffffff	\b, last allocated cluster %u
104582c5fa3eSPeter Avalos
104682c5fa3eSPeter Avalos# updated by Joerg Jenderek at Sep 2007
104782c5fa3eSPeter Avalos>3	ubyte	0
104882c5fa3eSPeter Avalos#no active flag
104982c5fa3eSPeter Avalos>>446	ubyte	0
105082c5fa3eSPeter Avalos# partition 1 not empty
105182c5fa3eSPeter Avalos>>>450	ubyte	>0
105282c5fa3eSPeter Avalos# partitions 3,4 empty
105382c5fa3eSPeter Avalos>>>>482		ubyte	0
105482c5fa3eSPeter Avalos>>>>>498	ubyte	0
105582c5fa3eSPeter Avalos# partition 2 ID=0,5,15
105682c5fa3eSPeter Avalos>>>>>>466	ubyte	<0x10
105782c5fa3eSPeter Avalos>>>>>>>466	ubyte	0x05			\b, extended partition table
105882c5fa3eSPeter Avalos>>>>>>>466	ubyte	0x0F			\b, extended partition table (LBA)
105982c5fa3eSPeter Avalos>>>>>>>466	ubyte	0x0			\b, extended partition table (last)
106082c5fa3eSPeter Avalos
106182c5fa3eSPeter Avalos# DOS x86 sector separated and moved from "DOS/MBR boot sector" by Joerg Jenderek at May 2011
106282c5fa3eSPeter Avalos
106382c5fa3eSPeter Avalos>0x200	lelong	0x82564557		\b, BSD disklabel
106482c5fa3eSPeter Avalos
1065e8af9738SPeter Avalos# by Joerg Jenderek at Apr 2013
1066e8af9738SPeter Avalos#	Print the DOS filenames from directory entry form with 8 right space padded bytes + 3 bytes for extension
1067e8af9738SPeter Avalos#	like IO.SYS. MSDOS.SYS , KERNEL.SYS , DRBIO.SYS
1068e8af9738SPeter Avalos0	name			DOS-filename
1069e8af9738SPeter Avalos# space=0x20 (00100000b) means empty
1070e8af9738SPeter Avalos>0			ubyte&0xDF	>0
1071e8af9738SPeter Avalos>>0			ubyte		x 		\b%c
1072e8af9738SPeter Avalos>>>1			ubyte&0xDF	>0
1073e8af9738SPeter Avalos>>>>1			ubyte		x 		\b%c
1074e8af9738SPeter Avalos>>>>>2			ubyte&0xDF	>0
1075e8af9738SPeter Avalos>>>>>>2			ubyte		x 		\b%c
1076e8af9738SPeter Avalos>>>>>>>3		ubyte&0xDF	>0
1077e8af9738SPeter Avalos>>>>>>>>3		ubyte		x 		\b%c
1078e8af9738SPeter Avalos>>>>>>>>>4		ubyte&0xDF	>0
1079e8af9738SPeter Avalos>>>>>>>>>>4		ubyte		x 		\b%c
1080e8af9738SPeter Avalos>>>>>>>>>>>5		ubyte&0xDF	>0
1081e8af9738SPeter Avalos>>>>>>>>>>>>5		ubyte		x 		\b%c
1082e8af9738SPeter Avalos>>>>>>>>>>>>>6		ubyte&0xDF	>0
1083e8af9738SPeter Avalos>>>>>>>>>>>>>>6		ubyte		x 		\b%c
1084e8af9738SPeter Avalos>>>>>>>>>>>>>>>7	ubyte&0xDF	>0
1085e8af9738SPeter Avalos>>>>>>>>>>>>>>>>7	ubyte		x 		\b%c
1086e8af9738SPeter Avalos# DOS filename extension
1087e8af9738SPeter Avalos>>8			ubyte&0xDF	>0		\b.
1088e8af9738SPeter Avalos>>>8			ubyte		x 		\b%c
1089e8af9738SPeter Avalos>>>>9			ubyte&0xDF	>0
1090e8af9738SPeter Avalos>>>>>9			ubyte		x 		\b%c
1091e8af9738SPeter Avalos>>>>>>10		ubyte&0xDF	>0
1092e8af9738SPeter Avalos>>>>>>>10		ubyte		x 		\b%c
1093e8af9738SPeter Avalos#	Print 2 following DOS filenames from directory entry form
1094e8af9738SPeter Avalos#	like IO.SYS+MSDOS.SYS or ibmbio.com+ibmdos.com
1095e8af9738SPeter Avalos0	name			2xDOS-filename
1096e8af9738SPeter Avalos# display 1 space
1097e8af9738SPeter Avalos>0			ubyte		x		\b
1098e8af9738SPeter Avalos>0			use		DOS-filename
1099e8af9738SPeter Avalos>11			ubyte		x		\b+
1100e8af9738SPeter Avalos>11			use		DOS-filename
1101e8af9738SPeter Avalos
11026fca56fbSSascha Wildner# https://en.wikipedia.org/wiki/Master_boot_record#PTE
1103e8af9738SPeter Avalos# display standard partition table
1104e8af9738SPeter Avalos0	name				partition-table
1105e8af9738SPeter Avalos#>0		ubyte		x	PARTITION-TABLE
1106e8af9738SPeter Avalos# test and display 1st til 4th partition table entry
1107e8af9738SPeter Avalos>0		use			partition-entry-test
1108e8af9738SPeter Avalos>16		use			partition-entry-test
1109e8af9738SPeter Avalos>32		use			partition-entry-test
1110e8af9738SPeter Avalos>48		use			partition-entry-test
1111e8af9738SPeter Avalos#		test for entry of partition table
1112e8af9738SPeter Avalos0	name				partition-entry-test
1113e8af9738SPeter Avalos# partition type ID > 0
1114e8af9738SPeter Avalos>4		ubyte		>0
1115e8af9738SPeter Avalos# active flag 0
1116e8af9738SPeter Avalos>>0		ubyte		0
1117e8af9738SPeter Avalos>>>0		use		partition-entry
1118e8af9738SPeter Avalos# active flag 0x80, 0x81, ...
1119e8af9738SPeter Avalos>>0		ubyte		>0x7F
1120e8af9738SPeter Avalos>>>0		use		partition-entry
1121e8af9738SPeter Avalos#		Print entry of partition table
1122e8af9738SPeter Avalos0	name				partition-entry
1123e8af9738SPeter Avalos# partition type ID > 0
1124e8af9738SPeter Avalos>4		ubyte		>0	\b; partition
1125e8af9738SPeter Avalos>>64		leshort		0xAA55	1
1126e8af9738SPeter Avalos>>48		leshort		0xAA55	2
1127e8af9738SPeter Avalos>>32		leshort		0xAA55	3
1128e8af9738SPeter Avalos>>16		leshort		0xAA55	4
1129614728caSSascha Wildner>>4		ubyte		x	: ID=%#x
1130e8af9738SPeter Avalos>>0		ubyte&0x80	0x80	\b, active
1131614728caSSascha Wildner>>0		ubyte		>0x80	%#x
1132e8af9738SPeter Avalos>>1		ubyte		x	\b, start-CHS (
1133e8af9738SPeter Avalos>>1		use		partition-chs
1134e8af9738SPeter Avalos>>5		ubyte		x	\b), end-CHS (
1135e8af9738SPeter Avalos>>5		use		partition-chs
1136e8af9738SPeter Avalos>>8		ulelong		x	\b), startsector %u
1137e8af9738SPeter Avalos>>12		ulelong		x	\b, %u sectors
1138e8af9738SPeter Avalos#		Print cylinder,head,sector (CHS) of partition entry
1139e8af9738SPeter Avalos0	name				partition-chs
1140e8af9738SPeter Avalos# cylinder
1141e8af9738SPeter Avalos>1		ubyte		x	\b0x
1142e8af9738SPeter Avalos>1		ubyte&0xC0	0x40	\b1
1143e8af9738SPeter Avalos>1		ubyte&0xC0	0x80	\b2
1144e8af9738SPeter Avalos>1		ubyte&0xC0	0xC0	\b3
1145e8af9738SPeter Avalos>2		ubyte		x	\b%x
1146e8af9738SPeter Avalos# head
1147e8af9738SPeter Avalos>0		ubyte		x	\b,%u
1148e8af9738SPeter Avalos# sector
1149e8af9738SPeter Avalos>1		ubyte&0x3F	x	\b,%u
1150e8af9738SPeter Avalos
1151327e51cbSPeter Avalos# FATX
1152327e51cbSPeter Avalos0		string		FATX		FATX filesystem data
1153327e51cbSPeter Avalos
1154327e51cbSPeter Avalos# romfs filesystems - Juan Cespedes <cespedes@debian.org>
115579343712SPeter Avalos0	string		-rom1fs-	romfs filesystem, version 1
1156327e51cbSPeter Avalos>8	belong	x			%d bytes,
1157327e51cbSPeter Avalos>16	string	x			named %s.
1158327e51cbSPeter Avalos
1159327e51cbSPeter Avalos# netboot image - Juan Cespedes <cespedes@debian.org>
1160327e51cbSPeter Avalos0	lelong		0x1b031336L	Netboot image,
1161327e51cbSPeter Avalos>4	lelong&0xFFFFFF00	0
1162327e51cbSPeter Avalos>>4	lelong&0x100	0x000		mode 2
1163327e51cbSPeter Avalos>>4	lelong&0x100	0x100		mode 3
1164327e51cbSPeter Avalos>4	lelong&0xFFFFFF00	!0	unknown mode
1165327e51cbSPeter Avalos
1166327e51cbSPeter Avalos0x18b	string	OS/2	OS/2 Boot Manager
1167327e51cbSPeter Avalos
1168e8af9738SPeter Avalos# updated by Joerg Jenderek at Oct 2008 and Sep 2012
11696fca56fbSSascha Wildner# https://syslinux.zytor.com/iso.php
1170e8af9738SPeter Avalos# 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
1171e8af9738SPeter Avalos# assembler instructions: cli;jmp 0:7Cyy (yy=0x40,0x5e,0x6c,0x6e,0x77);nop;nop
1172e8af9738SPeter Avalos0	ulequad&0x909000007cc0eafa	0x909000007c40eafa
1173e8af9738SPeter Avalos>631	search/689	ISOLINUX\ 	isolinux Loader
1174e8af9738SPeter Avalos>>&0	string		x		(version %-4.4s)
11756fca56fbSSascha Wildner# https://syslinux.zytor.com/pxe.php
1176e8af9738SPeter Avalos# assembler instructions: jmp 7C05
1177e8af9738SPeter Avalos0	ulelong	0x007c05ea		pxelinux loader (version 2.13 or older)
1178e8af9738SPeter Avalos# assembler instructions: pushfd;pushad
1179e8af9738SPeter Avalos0	ulelong	0x60669c66		pxelinux loader
1180e8af9738SPeter Avalos# assembler instructions: jmp 05
1181e8af9738SPeter Avalos0	ulelong	0xc00005ea		pxelinux loader (version 3.70 or newer)
11826fca56fbSSascha Wildner# https://syslinux.zytor.com/wiki/index.php/SYSLINUX
1183e8af9738SPeter Avalos0	string	LDLINUX\ SYS\ 		SYSLINUX loader
1184e8af9738SPeter Avalos>12	string	x			(older version %-4.4s)
1185e8af9738SPeter Avalos0	string	\r\nSYSLINUX\ 		SYSLINUX loader
1186e8af9738SPeter Avalos>11	string	x			(version %-4.4s)
1187e8af9738SPeter Avalos# syslinux updated and separated from "DOS/MBR boot sector" by Joerg Jenderek at Sep 2012
1188e8af9738SPeter Avalos# assembler instructions: jmp yy (yy=0x3c,0x58);nop;"SYSLINUX"
1189e8af9738SPeter Avalos0	ulelong&0x80909bEB	0x009018EB
1190e8af9738SPeter Avalos# OEM-ID not always "SYSLINUX"
1191e8af9738SPeter Avalos>434	search/47	Boot\ failed
1192e8af9738SPeter Avalos# followed by \r\n\0 or :\
1193e8af9738SPeter Avalos>>482	search/132	\0LDLINUX\ SYS		Syslinux bootloader (version 2.13 or older)
1194e8af9738SPeter Avalos>>1	ubyte		0x58			Syslinux bootloader (version 3.0-3.9)
1195e8af9738SPeter Avalos>459	search/30	Boot\ error\r\n\0
1196e8af9738SPeter Avalos>>1	ubyte		0x58			Syslinux bootloader (version 3.10 or newer)
1197e8af9738SPeter Avalos# SYSLINUX MBR updated and separated from "DOS/MBR boot sector" by Joerg Jenderek at Sep 2012
1198e8af9738SPeter Avalos# assembler instructions: mov di,0600h;mov cx,0100h
1199e8af9738SPeter Avalos16	search/4	\xbf\x00\x06\xb9\x00\x01
1200e8af9738SPeter Avalos# to display SYSLINUX MBR (36) before old DOS/MBR boot sector one with partition table (strength=50+21)
1201e8af9738SPeter Avalos!:strength +36
1202e8af9738SPeter Avalos>94	search/249	Missing\ operating\ system
1203e8af9738SPeter Avalos# followed by \r for versions older 3.35 , .\r for versions newer 3.52 and point for other
1204e8af9738SPeter Avalos# skip Ranish MBR
1205e8af9738SPeter Avalos>>408	search/4	HD1/\0
1206e8af9738SPeter Avalos>>408	default		x
1207e8af9738SPeter Avalos>>>250	search/118	\0Operating\ system\ load		SYSLINUX MBR
1208e8af9738SPeter Avalos# followed by "ing " or space
1209e8af9738SPeter Avalos>>>>292	search/98	error
1210e8af9738SPeter Avalos>>>>>&0	string		\r		    			(version 3.35 or older)
1211e8af9738SPeter Avalos>>>>>&0	string		.\r					(version 3.52 or newer)
1212e8af9738SPeter Avalos>>>>>&0	default		x					(version 3.36-3.51 )
1213e8af9738SPeter Avalos>368	search/106	\0Disk\ error\ on\ boot\r\n		SYSLINUX GPT-MBR
1214e8af9738SPeter Avalos>>156	search/10	\0Boot\ partition\ not\ found\r\n
1215e8af9738SPeter Avalos>>>270	search/10	\0OS\ not\ bootable\r\n			(version 3.86 or older)
1216e8af9738SPeter Avalos>>174	search/10	\0Missing\ OS\r\n
1217e8af9738SPeter Avalos>>>189	search/10	\0Multiple\ active\ partitions\r\n	(version 4.00 or newer)
1218e8af9738SPeter Avalos# SYSLINUX END
1219e8af9738SPeter Avalos
1220e8af9738SPeter Avalos# NetBSD mbr variants (master-boot-code version 1.22) added by Joerg Jenderek at Nov 2012
1221e8af9738SPeter Avalos# assembler instructions: xor ax,ax;mov	ax,ss;mov sp,0x7c00;mov	ax,
1222e8af9738SPeter Avalos0	ubequad		0x31c08ed0bc007c8e
1223e8af9738SPeter Avalos# mbr_bootsel magic before partition table not reliable with small ipl fragments
1224e8af9738SPeter Avalos#>444	uleshort	0xb5e1
1225e8af9738SPeter Avalos>0004	uleshort	x
1226e8af9738SPeter Avalos# ERRorTeXT
1227e8af9738SPeter Avalos>>181	search/166		Error\ \0\r\n				NetBSD mbr
12286fca56fbSSascha Wildner# NT Drive Serial Number https://thestarman.pcministry.com/asm/mbr/Win2kmbr.htm#DS
1229614728caSSascha Wildner>>>0x1B8	ubelong		>0					\b,Serial %#-.8x
1230e8af9738SPeter Avalos# BOOTSEL definitions contains assembler instructions: int 0x13;pop dx;push dx;push dx
1231e8af9738SPeter Avalos>>>0xbb		search/71	\xcd\x13\x5a\x52\x52			\b,bootselector
1232e8af9738SPeter Avalos# BOOT_EXTENDED definitions contains assembler instructions:
1233e8af9738SPeter Avalos# xchg ecx,edx;addl ecx,edx;movw lba_info,si;movb 0x42,ah;pop dx;push dx;int 0x13
1234e8af9738SPeter Avalos>>>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
1235e8af9738SPeter Avalos# COM_PORT_VAL definitions contains assembler instructions: outb al,dx;add 5,dl;inb %dx;test 0x40,al
1236e8af9738SPeter Avalos>>>0x130	search/55	\xee\x80\xc2\x05\xec\xa8\x40		\b,serial IO
1237e8af9738SPeter Avalos# not TERSE_ERROR
1238e8af9738SPeter Avalos>>>196		search/106	No\ active\ partition\0
1239e8af9738SPeter Avalos>>>>&0		string		Disk\ read\ error\0
1240e8af9738SPeter Avalos>>>>>&0		string		No\ operating\ system\0			\b,verbose
1241e8af9738SPeter Avalos# not NO_CHS definitions contains assembler instructions: pop dx;push dx;movb $8,ah;int0x13
1242e8af9738SPeter Avalos>>>0x7d		search/7	\x5a\x52\xb4\x08\xcd\x13		\b,CHS
1243e8af9738SPeter Avalos# not NO_LBA_CHECK definitions contains assembler instructions: movw 0x55aa,bx;movb 0x41,ah;pop	dx;push	dx;int 0x13
1244e8af9738SPeter Avalos>>>0xa4		search/84	\xbb\xaa\x55\xb4\x41\x5a\x52\xcd\x13	\b,LBA-check
1245e8af9738SPeter Avalos# assembler instructions: movw nametab,bx
1246e8af9738SPeter Avalos>>>0x26	    search/21	\xBB\x94\x07
1247e8af9738SPeter Avalos# not NO_BANNER definitions contains assembler instructions: mov banner,si;call message_crlf
1248e8af9738SPeter Avalos>>>>&-9	ubequad&0xBE00f0E800febb94	0xBE0000E80000bb94
1249e8af9738SPeter Avalos>>>>>181	search/166		Error\ \0
1250e8af9738SPeter Avalos# "a: disk" , "Fn: diskn" or "NetBSD MBR boot"
1251e8af9738SPeter Avalos>>>>>>&3	string			x				\b,"%s"
125282c5fa3eSPeter Avalos>>>446	use		partition-table
1253e8af9738SPeter Avalos# Andrea Mazzoleni AdvanceCD mbr loader of http://advancemame.sourceforge.net/boot-readme.html
1254e8af9738SPeter Avalos# added by Joerg Jenderek at Nov 2012 for versions 1.3 - 1.4
1255e8af9738SPeter Avalos# assembler instructions: jmp short 0x58;nop;ASCII
1256e8af9738SPeter Avalos0	ubequad&0xeb58908000000000	0xeb58900000000000
1257e8af9738SPeter Avalos# assembler instructions: cli;xor ax,ax;mov ds,ax;mov es,ax;mov ss,
1258e8af9738SPeter Avalos>(1.b+2)	ubequad			0xfa31c08ed88ec08e
1259e8af9738SPeter Avalos# Error messages at end of code
1260e8af9738SPeter Avalos>>376		string	No\ operating\ system\r\n\0
1261e8af9738SPeter Avalos>>>398		string	Disk\ error\r\n\0FDD\0HDD\0
1262e8af9738SPeter Avalos>>>>419		string	\ EBIOS\r\n\0				AdvanceMAME mbr
1263e8af9738SPeter Avalos
12646fca56fbSSascha Wildner# Neil Turton mbr loader variant of https://www.chiark.greenend.org.uk/~neilt/mbr/
1265e8af9738SPeter Avalos# added by Joerg Jenderek at Mar 2011 for versions 1.0.0 - 1.1.11
1266e8af9738SPeter Avalos# for 1st version assembler instructions:	cld;xor ax,ax;mov DS,ax;MOV ES,AX;mov SI,
1267e8af9738SPeter Avalos# or  	  	  	    			cld;xor ax,ax;mov SS,ax;XOR SP,SP;mov DS,
1268e8af9738SPeter Avalos0	ulequad&0xcE1b40D48EC031FC	0x8E0000D08EC031FC
1269e8af9738SPeter Avalos# pointer to the data starting with Neil Turton signature string
1270e8af9738SPeter Avalos>(0x1BC.s)		string		NDTmbr
1271e8af9738SPeter Avalos>>&-14			string		1234F\0			Turton mbr (
1272e8af9738SPeter Avalos# parameters also viewed by install-mbr --list
1273e8af9738SPeter Avalos>>>(0x1BC.s+7)		ubyte		x			\b%u<=
1274e8af9738SPeter Avalos>>>(0x1BC.s+9)		ubyte		x			\bVersion<=%u
1275e8af9738SPeter Avalos#>>>(0x1BC.s+8)		ubyte		x			asm_flag_%x
1276e8af9738SPeter Avalos>>>(0x1BC.s+8)		ubyte&1		1			\b,Y2K-Fix
12776fca56fbSSascha Wildner# variant used by testdisk of https://www.cgsecurity.org/wiki/Menu_MBRCode
1278e8af9738SPeter Avalos>>>(0x1BC.s+8)		ubyte&2		2			\b,TestDisk
1279e8af9738SPeter Avalos#0x1~1,..,0x8~4,0x10~F,0x80~A enabled
1280614728caSSascha Wildner#>>>(0x1BC.s+10)		ubyte		x			\b,flags %#x
1281e8af9738SPeter Avalos#0x0~1,0x1~2,...,0x3~4,0x4~F,0x7~D default boot
1282614728caSSascha Wildner#>>>(0x1BC.s+11)		ubyte		x			\b,cfg_def %#x
1283e8af9738SPeter Avalos# for older versions
1284e8af9738SPeter Avalos>>>(0x1BC.s+9)		ubyte		<2
128582c5fa3eSPeter Avalos#>>>>(0x1BC.s+12)	ubyte		18			\b,%hhu/18 seconds
1286e8af9738SPeter Avalos>>>>(0x1BC.s+12)	ubyte		!18			\b,%u/18 seconds
1287e8af9738SPeter Avalos# floppy A: or B:
1288614728caSSascha Wildner>>>>(0x1BC.s+13)	ubyte		<2			\b,floppy %#x
1289e8af9738SPeter Avalos>>>>(0x1BC.s+13)	ubyte		>1
1290e8af9738SPeter Avalos# 1st hard disc
1291614728caSSascha Wildner#>>>>>(0x1BC.s+13)	ubyte		0x80			\b,drive %#x
1292e8af9738SPeter Avalos# not 1st hard disc
1293614728caSSascha Wildner>>>>>(0x1BC.s+13)	ubyte		!0x80			\b,drive %#x
1294e8af9738SPeter Avalos# for version >= 2 maximal timeout can be 65534
1295e8af9738SPeter Avalos>>>(0x1BC.s+9)		ubyte		>1
1296e8af9738SPeter Avalos#>>>>(0x1BC.s+12)	uleshort	18			\b,%u/18 seconds
1297e8af9738SPeter Avalos>>>>(0x1BC.s+12)	uleshort	!18			\b,%u/18 seconds
1298e8af9738SPeter Avalos# floppy A: or B:
1299614728caSSascha Wildner>>>>(0x1BC.s+14)	ubyte		<2			\b,floppy %#x
1300e8af9738SPeter Avalos>>>>(0x1BC.s+14)	ubyte		>1
1301e8af9738SPeter Avalos# 1st hard disc
1302614728caSSascha Wildner#>>>>>(0x1BC.s+14)	ubyte		0x80			\b,drive %#x
1303e8af9738SPeter Avalos# not 1st hard disc
1304614728caSSascha Wildner>>>>>(0x1BC.s+14)	ubyte		!0x80			\b,drive %#x
1305e8af9738SPeter Avalos>>>0	ubyte		x					\b)
130679343712SPeter Avalos
1307327e51cbSPeter Avalos# added by Joerg Jenderek
1308327e51cbSPeter Avalos# In the second sector (+0x200) are variables according to grub-0.97/stage2/asm.S or
1309327e51cbSPeter Avalos# grub-1.94/kern/i386/pc/startup.S
13106fca56fbSSascha Wildner# https://www.gnu.org/software/grub/manual/grub.html#Embedded-data
1311970935fdSSascha Wildner# usual values are marked with comments to get only information of strange GRUB loaders
1312327e51cbSPeter Avalos0x200	uleshort		0x70EA
1313327e51cbSPeter Avalos# found only version 3.{1,2}
1314327e51cbSPeter Avalos>0x206		ubeshort	>0x0300
1315327e51cbSPeter Avalos# GRUB version (0.5.)95,0.93,0.94,0.96,0.97 > "00"
1316327e51cbSPeter Avalos>>0x212 	ubyte		>0x29
1317327e51cbSPeter Avalos>>>0x213 	ubyte		>0x29
1318327e51cbSPeter Avalos# not iso9660_stage1_5
1319327e51cbSPeter Avalos#>>>0	ulelong&0x00BE5652	0x00BE5652
1320327e51cbSPeter Avalos>>>>0x213 	ubyte		>0x29		GRand Unified Bootloader
1321327e51cbSPeter Avalos# config_file for stage1_5 is 0xffffffff + default "/boot/grub/stage2"
1322327e51cbSPeter Avalos>>>>0x217 	ubyte		0xFF		stage1_5
1323327e51cbSPeter Avalos>>>>0x217 	ubyte		<0xFF		stage2
1324327e51cbSPeter Avalos>>>>0x206	ubyte		x		\b version %u
1325327e51cbSPeter Avalos>>>>0x207	ubyte		x		\b.%u
1326327e51cbSPeter Avalos# module_size for 1.94
1327327e51cbSPeter Avalos>>>>0x208	ulelong		<0xffffff	\b, installed partition %u
132882c5fa3eSPeter Avalos#>>>>0x208	ulelong		=0xffffff	\b, %lu (default)
1329327e51cbSPeter Avalos>>>>0x208	ulelong		>0xffffff	\b, installed partition %u
1330327e51cbSPeter Avalos# GRUB 0.5.95 unofficial
1331327e51cbSPeter Avalos>>>>0x20C	ulelong&0x2E300000 0x2E300000
1332327e51cbSPeter Avalos# 0=stage2	1=ffs	2=e2fs	3=fat	4=minix	5=reiserfs
1333614728caSSascha Wildner>>>>>0x20C	ubyte		x		\b, identifier %#x
1334614728caSSascha Wildner#>>>>>0x20D	ubyte		=0		\b, LBA flag %#x (default)
1335614728caSSascha Wildner>>>>>0x20D	ubyte		>0		\b, LBA flag %#x
1336327e51cbSPeter Avalos# GRUB version as string
1337327e51cbSPeter Avalos>>>>>0x20E 	string		>\0		\b, GRUB version %-s
1338327e51cbSPeter Avalos# for stage1_5 is 0xffffffff + config_file "/boot/grub/stage2" default
1339327e51cbSPeter Avalos>>>>>>0x215 	ulong		0xffffffff
1340327e51cbSPeter Avalos>>>>>>>0x219 	string		>\0		\b, configuration file %-s
1341327e51cbSPeter Avalos>>>>>>0x215 	ulong		!0xffffffff
1342327e51cbSPeter Avalos>>>>>>>0x215 	string		>\0		\b, configuration file %-s
1343327e51cbSPeter Avalos# newer GRUB versions
1344327e51cbSPeter Avalos>>>>0x20C	ulelong&0x2E300000 !0x2E300000
1345327e51cbSPeter Avalos##>>>>>0x20C	ulelong		=0		\b, saved entry %d (usual)
1346327e51cbSPeter Avalos>>>>>0x20C	ulelong		>0		\b, saved entry %d
1347327e51cbSPeter Avalos# for 1.94 contains kernel image size
1348327e51cbSPeter Avalos# for 0.93,0.94,0.96,0.97
1349327e51cbSPeter Avalos# 0=stage2	1=ffs	2=e2fs	3=fat	4=minix	5=reiserfs	6=vstafs	7=jfs	8=xfs	9=iso9660	a=ufs2
1350614728caSSascha Wildner>>>>>0x210	ubyte		x		\b, identifier %#x
1351327e51cbSPeter Avalos# The flag for LBA forcing is in most cases 0
1352614728caSSascha Wildner#>>>>>0x211	ubyte		=0		\b, LBA flag %#x (default)
1353614728caSSascha Wildner>>>>>0x211	ubyte		>0		\b, LBA flag %#x
1354327e51cbSPeter Avalos# GRUB version as string
1355327e51cbSPeter Avalos>>>>>0x212 	string		>\0		\b, GRUB version %-s
1356327e51cbSPeter Avalos# for stage1_5 is 0xffffffff + config_file "/boot/grub/stage2" default
1357327e51cbSPeter Avalos>>>>>0x217 	ulong		0xffffffff
1358327e51cbSPeter Avalos>>>>>>0x21b 	string		>\0		\b, configuration file %-s
1359327e51cbSPeter Avalos>>>>>0x217 	ulong		!0xffffffff
1360327e51cbSPeter Avalos>>>>>>0x217 	string		>\0		\b, configuration file %-s
1361327e51cbSPeter Avalos
1362e8af9738SPeter Avalos# DOS x86 sector updated and separated from "DOS/MBR boot sector" by Joerg Jenderek at May 2011
1363e8af9738SPeter Avalos# JuMP short     bootcodeoffset NOP assembler instructions will usually be EB xx 90
1364e8af9738SPeter Avalos# over BIOS parameter block (BPB)
13656fca56fbSSascha Wildner# https://thestarman.pcministry.com/asm/2bytejumps.htm#FWD
1366e8af9738SPeter Avalos# older drives may use Near JuMP instruction E9 xx xx
1367e8af9738SPeter Avalos# minimal short forward jump found 0x29 for bootloaders or 0x0
1368e8af9738SPeter Avalos# maximal short forward jump is 0x7f
1369e8af9738SPeter Avalos# OEM-ID is empty or contain readable bytes
1370e8af9738SPeter Avalos0		ulelong&0x804000E9	0x000000E9
137182c5fa3eSPeter Avalos!:strength	+60
1372e8af9738SPeter Avalos# mtools-3.9.8/msdos.h
1373970935fdSSascha Wildner# usual values are marked with comments to get only information of strange FAT systems
1374e8af9738SPeter Avalos# valid sectorsize must be a power of 2 from 32 to 32768
137582c5fa3eSPeter Avalos>11		uleshort&0x001f	0
1376e8af9738SPeter Avalos>>11		uleshort	<32769
1377e8af9738SPeter Avalos>>>11		uleshort	>31
1378e8af9738SPeter Avalos>>>>21		ubyte&0xf0	0xF0
137982c5fa3eSPeter Avalos>>>>>0		ubyte		0xEB		DOS/MBR boot sector
1380614728caSSascha Wildner>>>>>>1		ubyte		x		\b, code offset %#x+2
1381e8af9738SPeter Avalos>>>>>0		ubyte		0xE9
1382614728caSSascha Wildner>>>>>>1		uleshort	x		\b, code offset %#x+3
1383e8af9738SPeter Avalos>>>>>3		string		>\0		\b, OEM-ID "%-.8s"
1384e8af9738SPeter Avalos#http://mirror.href.com/thestarman/asm/debug/debug2.htm#IHC
1385e8af9738SPeter Avalos>>>>>>8		string		IHC		\b cached by Windows 9M
1386e8af9738SPeter Avalos>>>>>11		uleshort	>512		\b, Bytes/sector %u
1387e8af9738SPeter Avalos#>>>>>11	uleshort	=512		\b, Bytes/sector %u=512 (usual)
1388e8af9738SPeter Avalos>>>>>11		uleshort	<512		\b, Bytes/sector %u
1389e8af9738SPeter Avalos>>>>>13		ubyte		>1		\b, sectors/cluster %u
1390e8af9738SPeter Avalos#>>>>>13	ubyte		=1		\b, sectors/cluster %u (usual on Floppies)
139182c5fa3eSPeter Avalos# for lazy FAT32 implementation like Transcend digital photo frame PF830
139282c5fa3eSPeter Avalos>>>>>82		string/c	fat32
1393e8af9738SPeter Avalos>>>>>>14	uleshort	!32		\b, reserved sectors %u
1394e8af9738SPeter Avalos#>>>>>>14	uleshort	=32		\b, reserved sectors %u (usual Fat32)
139582c5fa3eSPeter Avalos>>>>>82		string/c	!fat32
1396e8af9738SPeter Avalos>>>>>>14	uleshort	>1		\b, reserved sectors %u
1397e8af9738SPeter Avalos#>>>>>>14	uleshort	=1		\b, reserved sectors %u (usual FAT12,FAT16)
1398e8af9738SPeter Avalos#>>>>>>14	uleshort	0		\b, reserved sectors %u (usual NTFS)
1399e8af9738SPeter Avalos>>>>>16		ubyte		>2		\b, FATs %u
1400e8af9738SPeter Avalos#>>>>>16	ubyte		=2		\b, FATs %u (usual)
1401e8af9738SPeter Avalos>>>>>16		ubyte		=1		\b, FAT  %u
1402e8af9738SPeter Avalos>>>>>16		ubyte		>0
1403e8af9738SPeter Avalos>>>>>17		uleshort	>0		\b, root entries %u
140482c5fa3eSPeter Avalos#>>>>>17	uleshort	=0		\b, root entries %hu=0 (usual Fat32)
1405e8af9738SPeter Avalos>>>>>19		uleshort	>0		\b, sectors %u (volumes <=32 MB)
140682c5fa3eSPeter Avalos#>>>>>19	uleshort	=0		\b, sectors %hu=0 (usual Fat32)
1407614728caSSascha Wildner>>>>>21		ubyte		>0xF0		\b, Media descriptor %#x
1408614728caSSascha Wildner#>>>>>21	ubyte		=0xF0		\b, Media descriptor %#x (usual floppy)
1409614728caSSascha Wildner>>>>>21		ubyte		<0xF0		\b, Media descriptor %#x
1410e8af9738SPeter Avalos>>>>>22		uleshort	>0		\b, sectors/FAT %u
141182c5fa3eSPeter Avalos#>>>>>22	uleshort	=0		\b, sectors/FAT %hu=0 (usual Fat32)
1412e8af9738SPeter Avalos>>>>>24		uleshort	x		\b, sectors/track %u
1413e8af9738SPeter Avalos>>>>>26		ubyte		>2		\b, heads %u
1414e8af9738SPeter Avalos#>>>>>26	ubyte		=2		\b, heads %u (usual floppy)
1415e8af9738SPeter Avalos>>>>>26		ubyte		=1		\b, heads %u
1416e8af9738SPeter Avalos# valid only for sector sizes with more then 32 Bytes
1417e8af9738SPeter Avalos>>>>>11		uleshort	>32
14186fca56fbSSascha Wildner# https://en.wikipedia.org/wiki/Design_of_the_FAT_file_system#Extended_BIOS_Parameter_Block
141982c5fa3eSPeter Avalos# skip for values 2,2Ah,70h,73h,DFh
142082c5fa3eSPeter Avalos# and continue for extended boot signature values 0,28h,29h,80h
142182c5fa3eSPeter Avalos>>>>>>38	ubyte&0x56	=0
1422e8af9738SPeter Avalos>>>>>>>28	ulelong		>0		\b, hidden sectors %u
1423e8af9738SPeter Avalos#>>>>>>>28	ulelong		=0		\b, hidden sectors %u (usual floppy)
1424e8af9738SPeter Avalos>>>>>>>32	ulelong		>0		\b, sectors %u (volumes > 32 MB)
1425e8af9738SPeter Avalos#>>>>>>>32	ulelong		=0		\b, sectors %u (volumes > 32 MB)
1426e8af9738SPeter Avalos# FAT<32 bit specific
142782c5fa3eSPeter Avalos>>>>>>>82	string/c	!fat32
1428614728caSSascha Wildner#>>>>>>>>36	ubyte		0x80		\b, physical drive %#x=0x80 (usual harddisk)
1429614728caSSascha Wildner#>>>>>>>>36	ubyte		0		\b, physical drive %#x=0 (usual floppy)
1430e8af9738SPeter Avalos>>>>>>>>36	ubyte		!0x80
1431614728caSSascha Wildner>>>>>>>>>36	ubyte		!0		\b, physical drive %#x
143282c5fa3eSPeter Avalos# VGA-copy CRC or
143382c5fa3eSPeter Avalos# in Windows NT bit 0 is a dirty flag to request chkdsk at boot time. bit 1 requests surface scan too
1434614728caSSascha Wildner>>>>>>>>37	ubyte		>0		\b, reserved %#x
1435614728caSSascha Wildner#>>>>>>>>37	ubyte		=0		\b, reserved %#x
1436970935fdSSascha Wildner# extended boot signature value is 0x80 for NTFS, 0x28 or 0x29 for others
1437614728caSSascha Wildner>>>>>>>>38	ubyte		!0x29		\b, dos < 4.0 BootSector (%#x)
143882c5fa3eSPeter Avalos>>>>>>>>38	ubyte&0xFE	=0x28
1439614728caSSascha Wildner>>>>>>>>>39	ulelong		x		\b, serial number %#x
144082c5fa3eSPeter Avalos>>>>>>>>38	ubyte		=0x29
1441e8af9738SPeter Avalos>>>>>>>>>43	string		<NO\ NAME	\b, label: "%11.11s"
1442e8af9738SPeter Avalos>>>>>>>>>43	string		>NO\ NAME	\b, label: "%11.11s"
1443e8af9738SPeter Avalos>>>>>>>>>43	string		=NO\ NAME	\b, unlabeled
1444e8af9738SPeter Avalos# there exist some old floppies without word FAT at offset 54
1445e8af9738SPeter Avalos# a word like "FATnm   " is only a hint for a FAT size on nm-bits
1446e8af9738SPeter Avalos# Normally the number of clusters is calculated by the values of BPP.
1447e8af9738SPeter Avalos# if it is small enough FAT is 12 bit, if it is too big enough FAT is 32 bit,
1448e8af9738SPeter Avalos# otherwise FAT is 16 bit.
1449e8af9738SPeter Avalos# http://homepage.ntlworld.com/jonathan.deboynepollard/FGA/determining-fat-widths.html
145082c5fa3eSPeter Avalos>>>>>82		string/c	!fat32
145182c5fa3eSPeter Avalos>>>>>>54	string		FAT12		\b, FAT (12 bit)
145282c5fa3eSPeter Avalos>>>>>>54	string		FAT16		\b, FAT (16 bit)
145382c5fa3eSPeter Avalos>>>>>>54	default		x
145482c5fa3eSPeter Avalos# determinate FAT bit size by media descriptor
145582c5fa3eSPeter Avalos# small floppies implies FAT12
145682c5fa3eSPeter Avalos>>>>>>>21	ubyte		<0xF0		\b, FAT (12 bit by descriptor)
145782c5fa3eSPeter Avalos# with media descriptor F0h floppy or maybe superfloppy with FAT16
145882c5fa3eSPeter Avalos>>>>>>>21	ubyte		=0xF0
145982c5fa3eSPeter Avalos# superfloppy (many sectors) implies FAT16
146082c5fa3eSPeter Avalos>>>>>>>>32	ulelong		>0xFFFF		\b, FAT (16 bit by descriptor+sectors)
146182c5fa3eSPeter Avalos# no superfloppy with media descriptor F0h implies FAT12
146282c5fa3eSPeter Avalos>>>>>>>>32	default		x		\b, FAT (12 bit by descriptor+sectors)
146382c5fa3eSPeter Avalos# with media descriptor F8h floppy or hard disc with FAT12 or FAT16
146482c5fa3eSPeter Avalos>>>>>>>21	ubyte		=0xF8
146582c5fa3eSPeter Avalos# 360 KiB with media descriptor F8h, 9 sectors per track ,single sided floppy implies FAT12
146682c5fa3eSPeter Avalos>>>>>>>>19	ubequad	0xd002f80300090001	\b, FAT (12 bit by descriptor+geometry)
146782c5fa3eSPeter Avalos# hard disc with FAT12 or FAT16
146882c5fa3eSPeter Avalos>>>>>>>>19	default		x		\b, FAT (1Y bit by descriptor)
146982c5fa3eSPeter Avalos# with media descriptor FAh floppy, RAM disc with FAT12 or FAT16 or Tandy hard disc
147082c5fa3eSPeter Avalos>>>>>>>21	ubyte		=0xFA
147182c5fa3eSPeter Avalos# 320 KiB with media descriptor FAh, 8 sectors per track ,single sided floppy implies FAT12
147282c5fa3eSPeter Avalos>>>>>>>>19	ubequad	0x8002fa0200080001	\b, FAT (12 bit by descriptor+geometry)
147382c5fa3eSPeter Avalos# RAM disc with FAT12 or FAT16 or Tandy hard disc
147482c5fa3eSPeter Avalos>>>>>>>>19	default		x		\b, FAT (1Y bit by descriptor)
147582c5fa3eSPeter Avalos# others are floppy
147682c5fa3eSPeter Avalos>>>>>>>21	default		x		\b, FAT (12 bit by descriptor)
1477e8af9738SPeter Avalos# FAT32 bit specific
147882c5fa3eSPeter Avalos>>>>>82		string/c	fat32		\b, FAT (32 bit)
1479e8af9738SPeter Avalos>>>>>>36	ulelong		x		\b, sectors/FAT %u
14806fca56fbSSascha Wildner# https://technet.microsoft.com/en-us/library/cc977221.aspx
1481614728caSSascha Wildner>>>>>>40	uleshort	>0		\b, extension flags %#x
148282c5fa3eSPeter Avalos#>>>>>>40	uleshort	=0		\b, extension flags %hu
1483e8af9738SPeter Avalos>>>>>>42	uleshort	>0		\b, fsVersion %u
1484e8af9738SPeter Avalos#>>>>>>42	uleshort	=0		\b, fsVersion %u (usual)
1485e8af9738SPeter Avalos>>>>>>44	ulelong		>2		\b, rootdir cluster %u
1486e8af9738SPeter Avalos#>>>>>>44	ulelong		=2		\b, rootdir cluster %u
1487e8af9738SPeter Avalos#>>>>>>44	ulelong		=1		\b, rootdir cluster %u
1488e8af9738SPeter Avalos>>>>>>48	uleshort	>1		\b, infoSector %u
1489e8af9738SPeter Avalos#>>>>>>48	uleshort	=1		\b, infoSector %u (usual)
1490e8af9738SPeter Avalos>>>>>>48	uleshort	<1		\b, infoSector %u
149182c5fa3eSPeter Avalos# 0 or 0xFFFF instead of usual 6 means no backup sector
149282c5fa3eSPeter Avalos>>>>>>50	uleshort	=0xFFFF		\b, no Backup boot sector
149382c5fa3eSPeter Avalos>>>>>>50	uleshort	=0		\b, no Backup boot sector
1494e8af9738SPeter Avalos#>>>>>>50	uleshort	=6		\b, Backup boot sector %u (usual)
149582c5fa3eSPeter Avalos>>>>>>50	default		x
149682c5fa3eSPeter Avalos>>>>>>>50	uleshort	x		\b, Backup boot sector %u
14976fca56fbSSascha Wildner# corrected by Joerg Jenderek at Feb 2011 according to https://thestarman.pcministry.com/asm/mbr/MSWIN41.htm#FSINFO
1498614728caSSascha Wildner>>>>>>52	ulelong		>0		\b, reserved1 %#x
1499614728caSSascha Wildner>>>>>>56	ulelong		>0		\b, reserved2 %#x
1500614728caSSascha Wildner>>>>>>60	ulelong		>0		\b, reserved3 %#x
1501e8af9738SPeter Avalos# same structure as FAT1X
1502614728caSSascha Wildner#>>>>>>64	ubyte		=0x80		\b, physical drive %#x=80 (usual harddisk)
1503614728caSSascha Wildner#>>>>>>64	ubyte		=0		\b, physical drive %#x=0 (usual floppy)
1504e8af9738SPeter Avalos>>>>>>64	ubyte		!0x80
1505614728caSSascha Wildner>>>>>>>64	ubyte		>0		\b, physical drive %#x
1506e8af9738SPeter Avalos# in Windows NT bit 0 is a dirty flag to request chkdsk at boot time. bit 1 requests surface scan too
1507614728caSSascha Wildner>>>>>>65	ubyte		>0		\b, reserved %#x
1508614728caSSascha Wildner>>>>>>66	ubyte		!0x29		\b, dos < 4.0 BootSector (%#x)
1509e8af9738SPeter Avalos>>>>>>66	ubyte		=0x29
1510614728caSSascha Wildner>>>>>>>67	ulelong		x		\b, serial number %#x
1511e8af9738SPeter Avalos>>>>>>>71	string		<NO\ NAME	\b, label: "%11.11s"
1512e8af9738SPeter Avalos>>>>>>>71	string		>NO\ NAME	\b, label: "%11.11s"
1513e8af9738SPeter Avalos>>>>>>>71	string		=NO\ NAME	\b, unlabeled
1514e8af9738SPeter Avalos# additional tests for floppy image added by Joerg Jenderek
1515e8af9738SPeter Avalos# no fixed disk
1516e8af9738SPeter Avalos>>>>>21		ubyte		!0xF8
1517e8af9738SPeter Avalos# floppy media with 12 bit FAT
1518e8af9738SPeter Avalos>>>>>>54	string		!FAT16
1519e8af9738SPeter Avalos# test for FAT after bootsector
1520e8af9738SPeter Avalos>>>>>>>(11.s)	ulelong&0x00ffffF0	0x00ffffF0	\b, followed by FAT
1521e8af9738SPeter Avalos# floppy image
1522e8af9738SPeter Avalos!:mime application/x-ima
15236fca56fbSSascha Wildner# NTFS specific added by Joerg Jenderek at Mar 2011 according to https://thestarman.pcministry.com/asm/mbr/NTFSBR.htm
1524e8af9738SPeter Avalos# and http://homepage.ntlworld.com/jonathan.deboynepollard/FGA/bios-parameter-block.html
1525e8af9738SPeter Avalos# 0 FATs
1526e8af9738SPeter Avalos>>>>>16	ubyte		=0
1527e8af9738SPeter Avalos# 0 root entries
1528e8af9738SPeter Avalos>>>>>>17	uleshort	=0
1529e8af9738SPeter Avalos# 0 DOS sectors
1530e8af9738SPeter Avalos>>>>>>>19	uleshort	=0
1531e8af9738SPeter Avalos# 0 sectors/FAT
1532e8af9738SPeter Avalos# dos < 4.0 BootSector value found is 0x80
1533614728caSSascha Wildner#38	ubyte		=0x80			\b, dos < 4.0 BootSector (%#x)
1534e8af9738SPeter Avalos>>>>>>>>22	uleshort	=0		\b; NTFS
1535e8af9738SPeter Avalos>>>>>>>>>24	uleshort	>0		\b, sectors/track %u
1536614728caSSascha Wildner>>>>>>>>>36	ulelong		!0x800080	\b, physical drive %#x
1537e8af9738SPeter Avalos>>>>>>>>>40	ulequad		>0		\b, sectors %lld
1538e8af9738SPeter Avalos>>>>>>>>>48	ulequad		>0		\b, $MFT start cluster %lld
1539e8af9738SPeter Avalos>>>>>>>>>56	ulequad		>0		\b, $MFTMirror start cluster %lld
1540e8af9738SPeter Avalos# Values 0 to 127 represent MFT record sizes of 0 to 127 clusters.
1541e8af9738SPeter Avalos# Values 128 to 255 represent MFT record sizes of 2^(256-N) bytes.
1542e8af9738SPeter Avalos>>>>>>>>>64	lelong		<256
1543e8af9738SPeter Avalos>>>>>>>>>>64	lelong		<128		\b, clusters/RecordSegment %d
154482c5fa3eSPeter Avalos>>>>>>>>>>64	ubyte		>127		\b, bytes/RecordSegment 2^(-1*%i)
1545e8af9738SPeter Avalos# Values 0 to 127 represent index block sizes of 0 to 127 clusters.
1546e8af9738SPeter Avalos# Values 128 to 255 represent index block sizes of 2^(256-N) byte
1547e8af9738SPeter Avalos>>>>>>>>>68	ulelong		<256
1548e8af9738SPeter Avalos>>>>>>>>>>68	ulelong		<128		\b, clusters/index block %d
1549e8af9738SPeter Avalos#>>>>>>>>>>68	ulelong		>127		\b, bytes/index block 2^(256-%d)
155082c5fa3eSPeter Avalos>>>>>>>>>>68	ubyte		>127		\b, bytes/index block 2^(-1*%i)
1551e8af9738SPeter Avalos>>>>>>>>>72	ulequad		x		\b, serial number 0%llx
1552614728caSSascha Wildner>>>>>>>>>80	ulelong		>0		\b, checksum %#x
1553614728caSSascha Wildner#>>>>>>>>>80	ulelong		=0		\b, checksum %#x=0 (usual)
15546fca56fbSSascha Wildner# unicode loadername size jump
15556fca56fbSSascha Wildner>>>>>>>>>(0x200.s*2)	ubyte				x
15566fca56fbSSascha Wildner# in next sector loadername terminated by unicode CTRL-D and $
15576fca56fbSSascha Wildner>>>>>>>>>>&0x1FF	ulequad&0x0000FFffFFffFF00	0x0000002400040000 \b; contains
15586fca56fbSSascha Wildner# if 2nd NTFS sectors is found then assume whole filesystem
15596fca56fbSSascha Wildner#!:mime		application/x-raw-disk-image
15606fca56fbSSascha Wildner!:ext		img/bin/ntfs
15616fca56fbSSascha Wildner>>>>>>>>>>>0x200	use				ntfs-sector2
15626fca56fbSSascha Wildner
15636fca56fbSSascha Wildner# For 2nd NTFS sector added by Joerg Jenderek at Jan 2013, Mar 2019
15646fca56fbSSascha Wildner# https://thestarman.pcministry.com/asm/mbr/NTFSbrHexEd.htm
15656fca56fbSSascha Wildner# unused assembler instructions short JMP y2;NOP;NOP
15666fca56fbSSascha Wildner0x056		ulelong&0xFFFF0FFF	0x909002EB	NTFS
15676fca56fbSSascha Wildner#!:mime		application/octet-stream
15686fca56fbSSascha Wildner!:ext		bin
15696fca56fbSSascha Wildner>0		use		ntfs-sector2
15706fca56fbSSascha Wildner# https://memory.dataram.com/products-and-services/software/ramdisk
15716fca56fbSSascha Wildner# assembler instructions JMP C000;NOP
15726fca56fbSSascha Wildner0x056		ulelong			0x9000c0e9	NTFS
15736fca56fbSSascha Wildner#!:mime		application/octet-stream
15746fca56fbSSascha Wildner!:ext		bin
15756fca56fbSSascha Wildner>0		use		ntfs-sector2
15766fca56fbSSascha Wildner# check for characteristics of second NTFS sector and then display loader name
15776fca56fbSSascha Wildner0		name		ntfs-sector2
15786fca56fbSSascha Wildner# number of utf16 characters of loadername
15796fca56fbSSascha Wildner>0		uleshort	<8
15806fca56fbSSascha Wildner# unused assembler instructions JMP y2;NOP;NOP or JMP C000;NOP
15816fca56fbSSascha Wildner>>0x056		ulelong&0xFF0000FD	0x900000E9
1582e8af9738SPeter Avalos# loadernames are NTLDR,CMLDR,PELDR,$LDR$ or BOOTMGR
15836fca56fbSSascha Wildner>>>0x002		lestring16	x	bootstrap %-5.5s
15846fca56fbSSascha Wildner# check for 7 character length of loader name like BOOTMGR
15856fca56fbSSascha Wildner>>>0		uleshort	7
15866fca56fbSSascha Wildner>>>>0x0c	lestring16	x	\b%-2.2s
1587e8af9738SPeter Avalos### DOS,NTFS boot sectors end
1588e8af9738SPeter Avalos
1589c30bd091SSascha Wildner# ntfsclone-image is a special save format for NTFS volumes,
1590c30bd091SSascha Wildner# created and restored by the ntfsclone program
1591c30bd091SSascha Wildner0	string	\0ntfsclone-image	ntfsclone image,
1592c30bd091SSascha Wildner>0x10	byte	x			version %d.
1593c30bd091SSascha Wildner>0x11	byte	x			\b%d,
1594c30bd091SSascha Wildner>0x12	lelong	x			cluster size %d,
1595c30bd091SSascha Wildner>0x16	lequad	x			device size %lld,
1596c30bd091SSascha Wildner>0x1e	lequad	x			%lld total clusters,
1597c30bd091SSascha Wildner>0x26	lequad	x			%lld clusters in use
1598c30bd091SSascha Wildner
1599327e51cbSPeter Avalos9564	lelong		0x00011954	Unix Fast File system [v1] (little-endian),
1600327e51cbSPeter Avalos>8404	string		x		last mounted on %s,
1601327e51cbSPeter Avalos#>9504	ledate		x		last checked at %s,
1602327e51cbSPeter Avalos>8224	ledate		x		last written at %s,
1603327e51cbSPeter Avalos>8401	byte		x		clean flag %d,
1604327e51cbSPeter Avalos>8228	lelong		x		number of blocks %d,
1605327e51cbSPeter Avalos>8232	lelong		x		number of data blocks %d,
1606327e51cbSPeter Avalos>8236	lelong		x		number of cylinder groups %d,
1607327e51cbSPeter Avalos>8240	lelong		x		block size %d,
1608327e51cbSPeter Avalos>8244	lelong		x		fragment size %d,
1609327e51cbSPeter Avalos>8252	lelong		x		minimum percentage of free blocks %d,
1610327e51cbSPeter Avalos>8256	lelong		x		rotational delay %dms,
1611327e51cbSPeter Avalos>8260	lelong		x		disk rotational speed %drps,
1612327e51cbSPeter Avalos>8320	lelong		0		TIME optimization
1613327e51cbSPeter Avalos>8320	lelong		1		SPACE optimization
1614327e51cbSPeter Avalos
1615327e51cbSPeter Avalos42332	lelong		0x19540119	Unix Fast File system [v2] (little-endian)
1616327e51cbSPeter Avalos>&-1164	string		x		last mounted on %s,
1617327e51cbSPeter Avalos>&-696	string		>\0		volume name %s,
1618327e51cbSPeter Avalos>&-304	leqldate	x		last written at %s,
1619327e51cbSPeter Avalos>&-1167	byte		x		clean flag %d,
1620327e51cbSPeter Avalos>&-1168	byte		x		readonly flag %d,
1621327e51cbSPeter Avalos>&-296	lequad		x		number of blocks %lld,
1622327e51cbSPeter Avalos>&-288	lequad		x		number of data blocks %lld,
1623327e51cbSPeter Avalos>&-1332	lelong		x		number of cylinder groups %d,
1624327e51cbSPeter Avalos>&-1328	lelong		x		block size %d,
1625327e51cbSPeter Avalos>&-1324	lelong		x		fragment size %d,
1626327e51cbSPeter Avalos>&-180	lelong		x		average file size %d,
1627327e51cbSPeter Avalos>&-176	lelong		x		average number of files in dir %d,
1628327e51cbSPeter Avalos>&-272	lequad		x		pending blocks to free %lld,
162982c5fa3eSPeter Avalos>&-264	lelong		x		pending inodes to free %d,
1630327e51cbSPeter Avalos>&-664	lequad		x		system-wide uuid %0llx,
1631327e51cbSPeter Avalos>&-1316	lelong		x		minimum percentage of free blocks %d,
1632327e51cbSPeter Avalos>&-1248	lelong		0		TIME optimization
1633327e51cbSPeter Avalos>&-1248	lelong		1		SPACE optimization
1634327e51cbSPeter Avalos
1635327e51cbSPeter Avalos66908	lelong		0x19540119	Unix Fast File system [v2] (little-endian)
1636327e51cbSPeter Avalos>&-1164	string		x		last mounted on %s,
1637327e51cbSPeter Avalos>&-696	string		>\0		volume name %s,
1638327e51cbSPeter Avalos>&-304	leqldate	x		last written at %s,
1639327e51cbSPeter Avalos>&-1167	byte		x		clean flag %d,
1640327e51cbSPeter Avalos>&-1168	byte		x		readonly flag %d,
1641327e51cbSPeter Avalos>&-296	lequad		x		number of blocks %lld,
1642327e51cbSPeter Avalos>&-288	lequad		x		number of data blocks %lld,
1643327e51cbSPeter Avalos>&-1332	lelong		x		number of cylinder groups %d,
1644327e51cbSPeter Avalos>&-1328	lelong		x		block size %d,
1645327e51cbSPeter Avalos>&-1324	lelong		x		fragment size %d,
1646327e51cbSPeter Avalos>&-180	lelong		x		average file size %d,
1647327e51cbSPeter Avalos>&-176	lelong		x		average number of files in dir %d,
1648327e51cbSPeter Avalos>&-272	lequad		x		pending blocks to free %lld,
164982c5fa3eSPeter Avalos>&-264	lelong		x		pending inodes to free %d,
1650327e51cbSPeter Avalos>&-664	lequad		x		system-wide uuid %0llx,
1651327e51cbSPeter Avalos>&-1316	lelong		x		minimum percentage of free blocks %d,
1652327e51cbSPeter Avalos>&-1248	lelong		0		TIME optimization
1653327e51cbSPeter Avalos>&-1248	lelong		1		SPACE optimization
1654327e51cbSPeter Avalos
1655327e51cbSPeter Avalos9564	belong		0x00011954	Unix Fast File system [v1] (big-endian),
1656327e51cbSPeter Avalos>7168   belong		0x4c41424c	Apple UFS Volume
1657327e51cbSPeter Avalos>>7186  string		x		named %s,
1658327e51cbSPeter Avalos>>7176  belong		x		volume label version %d,
1659327e51cbSPeter Avalos>>7180  bedate		x		created on %s,
1660327e51cbSPeter Avalos>8404	string		x		last mounted on %s,
1661327e51cbSPeter Avalos#>9504	bedate		x		last checked at %s,
1662327e51cbSPeter Avalos>8224	bedate		x		last written at %s,
1663327e51cbSPeter Avalos>8401	byte		x		clean flag %d,
1664327e51cbSPeter Avalos>8228	belong		x		number of blocks %d,
1665327e51cbSPeter Avalos>8232	belong		x		number of data blocks %d,
1666327e51cbSPeter Avalos>8236	belong		x		number of cylinder groups %d,
1667327e51cbSPeter Avalos>8240	belong		x		block size %d,
1668327e51cbSPeter Avalos>8244	belong		x		fragment size %d,
1669327e51cbSPeter Avalos>8252	belong		x		minimum percentage of free blocks %d,
1670327e51cbSPeter Avalos>8256	belong		x		rotational delay %dms,
1671327e51cbSPeter Avalos>8260	belong		x		disk rotational speed %drps,
1672327e51cbSPeter Avalos>8320	belong		0		TIME optimization
1673327e51cbSPeter Avalos>8320	belong		1		SPACE optimization
1674327e51cbSPeter Avalos
1675327e51cbSPeter Avalos42332	belong		0x19540119	Unix Fast File system [v2] (big-endian)
1676327e51cbSPeter Avalos>&-1164	string		x		last mounted on %s,
1677327e51cbSPeter Avalos>&-696	string		>\0		volume name %s,
1678327e51cbSPeter Avalos>&-304	beqldate	x		last written at %s,
1679327e51cbSPeter Avalos>&-1167	byte		x		clean flag %d,
1680327e51cbSPeter Avalos>&-1168	byte		x		readonly flag %d,
1681327e51cbSPeter Avalos>&-296	bequad		x		number of blocks %lld,
1682327e51cbSPeter Avalos>&-288	bequad		x		number of data blocks %lld,
1683327e51cbSPeter Avalos>&-1332	belong		x		number of cylinder groups %d,
1684327e51cbSPeter Avalos>&-1328	belong		x		block size %d,
1685327e51cbSPeter Avalos>&-1324	belong		x		fragment size %d,
1686327e51cbSPeter Avalos>&-180	belong		x		average file size %d,
1687327e51cbSPeter Avalos>&-176	belong		x		average number of files in dir %d,
1688327e51cbSPeter Avalos>&-272	bequad		x		pending blocks to free %lld,
168982c5fa3eSPeter Avalos>&-264	belong		x		pending inodes to free %d,
1690327e51cbSPeter Avalos>&-664	bequad		x		system-wide uuid %0llx,
1691327e51cbSPeter Avalos>&-1316	belong		x		minimum percentage of free blocks %d,
1692327e51cbSPeter Avalos>&-1248	belong		0		TIME optimization
1693327e51cbSPeter Avalos>&-1248	belong		1		SPACE optimization
1694327e51cbSPeter Avalos
1695327e51cbSPeter Avalos66908	belong		0x19540119	Unix Fast File system [v2] (big-endian)
1696327e51cbSPeter Avalos>&-1164	string		x		last mounted on %s,
1697327e51cbSPeter Avalos>&-696	string		>\0		volume name %s,
1698327e51cbSPeter Avalos>&-304	beqldate	x		last written at %s,
1699327e51cbSPeter Avalos>&-1167	byte		x		clean flag %d,
1700327e51cbSPeter Avalos>&-1168	byte		x		readonly flag %d,
1701327e51cbSPeter Avalos>&-296	bequad		x		number of blocks %lld,
1702327e51cbSPeter Avalos>&-288	bequad		x		number of data blocks %lld,
1703327e51cbSPeter Avalos>&-1332	belong		x		number of cylinder groups %d,
1704327e51cbSPeter Avalos>&-1328	belong		x		block size %d,
1705327e51cbSPeter Avalos>&-1324	belong		x		fragment size %d,
1706327e51cbSPeter Avalos>&-180	belong		x		average file size %d,
1707327e51cbSPeter Avalos>&-176	belong		x		average number of files in dir %d,
1708327e51cbSPeter Avalos>&-272	bequad		x		pending blocks to free %lld,
170982c5fa3eSPeter Avalos>&-264	belong		x		pending inodes to free %d,
1710327e51cbSPeter Avalos>&-664	bequad		x		system-wide uuid %0llx,
1711327e51cbSPeter Avalos>&-1316	belong		x		minimum percentage of free blocks %d,
1712327e51cbSPeter Avalos>&-1248	belong		0		TIME optimization
1713327e51cbSPeter Avalos>&-1248	belong		1		SPACE optimization
1714327e51cbSPeter Avalos
1715c30bd091SSascha Wildner0	ulequad		0xc8414d4dc5523031	HAMMER filesystem (little-endian),
1716c30bd091SSascha Wildner>0x90	lelong+1	x			volume %d
1717c30bd091SSascha Wildner>0x94	lelong		x			(of %d),
1718c30bd091SSascha Wildner>0x50	string		x			name %s,
1719c30bd091SSascha Wildner>0x98	ulelong		x			version %u,
1720614728caSSascha Wildner>0xa0	ulelong		x			flags %#x
1721614728caSSascha Wildner
1722614728caSSascha Wildner0	ulequad		0x48414d3205172011	HAMMER2 filesystem (little-endian),
1723614728caSSascha Wildner>0x3b	byte		x			volume %d,
1724614728caSSascha Wildner>0x28	ulequad/1073741824 x			size %lluGB,
1725614728caSSascha Wildner>0x30	ulelong		x			version %u,
1726614728caSSascha Wildner>0x34	ulelong		x			flags %#x
1727c30bd091SSascha Wildner
172879343712SPeter Avalos# ext2/ext3 filesystems - Andreas Dilger <adilger@dilger.ca>
172979343712SPeter Avalos# ext4 filesystem - Eric Sandeen <sandeen@sandeen.net>
1730e4d4ce0cSPeter Avalos# volume label and UUID Russell Coker
17316fca56fbSSascha Wildner# https://etbe.coker.com.au/2008/07/08/label-vs-uuid-vs-device/
1732327e51cbSPeter Avalos0x438   leshort         0xEF53          Linux
1733327e51cbSPeter Avalos>0x44c  lelong          x               rev %d
1734327e51cbSPeter Avalos>0x43e  leshort         x               \b.%d
173579343712SPeter Avalos# No journal?  ext2
1736327e51cbSPeter Avalos>0x45c  lelong          ^0x0000004      ext2 filesystem data
1737327e51cbSPeter Avalos>>0x43a leshort         ^0x0000001      (mounted or unclean)
173879343712SPeter Avalos# Has a journal?  ext3 or ext4
173979343712SPeter Avalos>0x45c  lelong          &0x0000004
174079343712SPeter Avalos#  and small INCOMPAT?
174179343712SPeter Avalos>>0x460 lelong          <0x0000040
174279343712SPeter Avalos#   and small RO_COMPAT?
174379343712SPeter Avalos>>>0x464 lelong         <0x0000008      ext3 filesystem data
174479343712SPeter Avalos#   else large RO_COMPAT?
174579343712SPeter Avalos>>>0x464 lelong         >0x0000007      ext4 filesystem data
174679343712SPeter Avalos#  else large INCOMPAT?
174779343712SPeter Avalos>>0x460	lelong          >0x000003f      ext4 filesystem data
1748614728caSSascha Wildner>0x468	ubelong		x		\b, UUID=%08x
1749614728caSSascha Wildner>0x46c	ubeshort	x		\b-%04x
1750614728caSSascha Wildner>0x46e	ubeshort	x		\b-%04x
1751614728caSSascha Wildner>0x470	ubeshort	x		\b-%04x
1752614728caSSascha Wildner>0x472	ubelong		x		\b-%08x
1753614728caSSascha Wildner>0x476	ubeshort	x		\b%04x
1754e4d4ce0cSPeter Avalos>0x478	string		>0		\b, volume name "%s"
175579343712SPeter Avalos# General flags for any ext* fs
175679343712SPeter Avalos>0x460	lelong          &0x0000004      (needs journal recovery)
1757327e51cbSPeter Avalos>0x43a	leshort         &0x0000002      (errors)
175879343712SPeter Avalos# INCOMPAT flags
1759327e51cbSPeter Avalos>0x460	lelong          &0x0000001      (compressed)
1760327e51cbSPeter Avalos#>0x460	lelong          &0x0000002      (filetype)
176179343712SPeter Avalos#>0x460	lelong          &0x0000010      (meta bg)
176279343712SPeter Avalos>0x460	lelong          &0x0000040      (extents)
176379343712SPeter Avalos>0x460	lelong          &0x0000080      (64bit)
176479343712SPeter Avalos#>0x460	lelong          &0x0000100      (mmp)
176579343712SPeter Avalos#>0x460	lelong          &0x0000200      (flex bg)
176679343712SPeter Avalos# RO_INCOMPAT flags
176779343712SPeter Avalos#>0x464	lelong          &0x0000001      (sparse super)
1768327e51cbSPeter Avalos>0x464	lelong          &0x0000002      (large files)
176979343712SPeter Avalos>0x464	lelong          &0x0000008      (huge files)
177079343712SPeter Avalos#>0x464	lelong          &0x0000010      (gdt checksum)
177179343712SPeter Avalos#>0x464	lelong          &0x0000020      (many subdirs)
177279343712SPeter Avalos#>0x463	lelong          &0x0000040      (extra isize)
1773327e51cbSPeter Avalos
17746fca56fbSSascha Wildner# f2fs filesystem - Tuomas Tynkkynen <tuomas.tynkkynen@iki.fi>
17756fca56fbSSascha Wildner0x400	lelong		0xF2F52010	F2FS filesystem
1776614728caSSascha Wildner>0x46c	ubelong		x		\b, UUID=%08x
1777614728caSSascha Wildner>0x470	ubeshort	x		\b-%04x
1778614728caSSascha Wildner>0x472	ubeshort	x		\b-%04x
1779614728caSSascha Wildner>0x474	ubeshort	x		\b-%04x
1780614728caSSascha Wildner>0x476	ubelong		x		\b-%08x
1781614728caSSascha Wildner>0x47a	ubeshort	x		\b%04x
17826fca56fbSSascha Wildner>0x147c	lestring16	x		\b, volume name "%s"
17836fca56fbSSascha Wildner
1784e8af9738SPeter Avalos# Minix filesystems - Juan Cespedes <cespedes@debian.org>
1785e8af9738SPeter Avalos0x410	leshort		0x137f
1786e8af9738SPeter Avalos!:strength / 2
1787e8af9738SPeter Avalos>0x402	beshort		< 100
1788c30bd091SSascha Wildner>0x402	beshort		> -1		Minix filesystem, V1, 14 char names, %d zones
1789e8af9738SPeter Avalos>0x1e	string		minix		\b, bootable
1790e8af9738SPeter Avalos0x410	beshort		0x137f
1791e8af9738SPeter Avalos!:strength / 2
1792e8af9738SPeter Avalos>0x402	beshort		< 100
1793e8af9738SPeter Avalos>0x402	beshort		> -1		Minix filesystem, V1 (big endian), %d zones
1794e8af9738SPeter Avalos>0x1e	string		minix		\b, bootable
1795e8af9738SPeter Avalos0x410	leshort		0x138f
1796e8af9738SPeter Avalos!:strength / 2
1797e8af9738SPeter Avalos>0x402	beshort		< 100
1798e8af9738SPeter Avalos>0x402	beshort		> -1		Minix filesystem, V1, 30 char names, %d zones
1799e8af9738SPeter Avalos>0x1e	string		minix		\b, bootable
1800e8af9738SPeter Avalos0x410	beshort		0x138f
1801e8af9738SPeter Avalos!:strength / 2
1802e8af9738SPeter Avalos>0x402	beshort		< 100
1803e8af9738SPeter Avalos>0x402	beshort		> -1		Minix filesystem, V1, 30 char names (big endian), %d zones
1804e8af9738SPeter Avalos>0x1e	string		minix		\b, bootable
1805c30bd091SSascha Wildner# Weak Magic: this is $x
1806c30bd091SSascha Wildner#0x410	leshort		0x2468
1807c30bd091SSascha Wildner#>0x402	beshort		< 100
1808c30bd091SSascha Wildner#>>0x402	beshort		> -1		Minix filesystem, V2, 14 char names
1809c30bd091SSascha Wildner#>0x1e	string		minix		\b, bootable
1810c30bd091SSascha Wildner#0x410	beshort		0x2468
1811c30bd091SSascha Wildner#>0x402	beshort		< 100
1812c30bd091SSascha Wildner#>0x402	beshort		> -1		Minix filesystem, V2 (big endian)
1813c30bd091SSascha Wildner#>0x1e	string		minix		\b, bootable
1814c30bd091SSascha Wildner#0x410	leshort		0x2478
1815c30bd091SSascha Wildner#>0x402	beshort		< 100
1816c30bd091SSascha Wildner#>0x402	beshort		> -1		Minix filesystem, V2, 30 char names
1817c30bd091SSascha Wildner#>0x1e	string		minix		\b, bootable
1818c30bd091SSascha Wildner#0x410	leshort		0x2478
1819c30bd091SSascha Wildner#>0x402	beshort		< 100
1820c30bd091SSascha Wildner#>0x402	beshort		> -1		Minix filesystem, V2, 30 char names
1821c30bd091SSascha Wildner#>0x1e	string		minix		\b, bootable
1822c30bd091SSascha Wildner#0x410	beshort		0x2478
1823c30bd091SSascha Wildner#>0x402	beshort		!0		Minix filesystem, V2, 30 char names (big endian)
1824c30bd091SSascha Wildner#>0x1e	string		minix		\b, bootable
1825c30bd091SSascha Wildner# Weak Magic! this is MD
1826c30bd091SSascha Wildner#0x418	leshort		0x4d5a
1827c30bd091SSascha Wildner#>0x402	beshort		<100
1828c30bd091SSascha Wildner#>>0x402	beshort		> -1		Minix filesystem, V3, 60 char names
1829e8af9738SPeter Avalos
1830327e51cbSPeter Avalos# SGI disk labels - Nathan Scott <nathans@debian.org>
1831327e51cbSPeter Avalos0	belong		0x0BE5A941	SGI disk label (volume header)
1832327e51cbSPeter Avalos
1833327e51cbSPeter Avalos# SGI XFS filesystem - Nathan Scott <nathans@debian.org>
1834327e51cbSPeter Avalos0	belong		0x58465342	SGI XFS filesystem data
1835327e51cbSPeter Avalos>0x4	belong		x		(blksz %d,
1836327e51cbSPeter Avalos>0x68	beshort		x		inosz %d,
1837327e51cbSPeter Avalos>0x64	beshort		^0x2004		v1 dirs)
1838327e51cbSPeter Avalos>0x64	beshort		&0x2004		v2 dirs)
1839327e51cbSPeter Avalos
1840327e51cbSPeter Avalos############################################################################
1841327e51cbSPeter Avalos# Minix-ST kernel floppy
1842327e51cbSPeter Avalos0x800	belong		0x46fc2700	Atari-ST Minix kernel image
18436fca56fbSSascha Wildner# https://en.wikipedia.org/wiki/BIOS_parameter_block
1844e8af9738SPeter Avalos# floppies with valid BPB and any instruction at beginning
1845e8af9738SPeter Avalos>19	string		\240\005\371\005\0\011\0\2\0	\b, 720k floppy
1846e8af9738SPeter Avalos>19	string		\320\002\370\005\0\011\0\1\0	\b, 360k floppy
1847327e51cbSPeter Avalos
1848327e51cbSPeter Avalos############################################################################
1849327e51cbSPeter Avalos# Hmmm, is this a better way of detecting _standard_ floppy images ?
1850e8af9738SPeter Avalos19	string		\320\002\360\003\0\011\0\1\0	DOS floppy 360k
1851e8af9738SPeter Avalos>0x1FE	leshort		0xAA55		\b, DOS/MBR hard disk boot sector
1852e8af9738SPeter Avalos19	string		\240\005\371\003\0\011\0\2\0	DOS floppy 720k
1853e8af9738SPeter Avalos>0x1FE	leshort		0xAA55		\b, DOS/MBR hard disk boot sector
1854327e51cbSPeter Avalos19	string		\100\013\360\011\0\022\0\2\0	DOS floppy 1440k
1855e8af9738SPeter Avalos>0x1FE	leshort		0xAA55		\b, DOS/MBR hard disk boot sector
1856327e51cbSPeter Avalos
1857e8af9738SPeter Avalos19	string		\240\005\371\005\0\011\0\2\0	DOS floppy 720k, IBM
1858e8af9738SPeter Avalos>0x1FE	leshort		0xAA55		\b, DOS/MBR hard disk boot sector
1859e8af9738SPeter Avalos19	string		\100\013\371\005\0\011\0\2\0	DOS floppy 1440k, mkdosfs
1860e8af9738SPeter Avalos>0x1FE	leshort		0xAA55		\b, DOS/MBR hard disk boot sector
1861327e51cbSPeter Avalos
1862e8af9738SPeter Avalos19	string		\320\002\370\005\0\011\0\1\0	Atari-ST floppy 360k
1863e8af9738SPeter Avalos19	string		\240\005\371\005\0\011\0\2\0	Atari-ST floppy 720k
1864e8af9738SPeter Avalos#			|       |   |     |     |
1865e8af9738SPeter Avalos#			|       |   |     |     heads
1866e8af9738SPeter Avalos#			|       |   |     sectors/track
1867e8af9738SPeter Avalos#			|       |   sectors/FAT
1868e8af9738SPeter Avalos#			|       media descriptor
1869e8af9738SPeter Avalos#		BPB:	sectors
1870327e51cbSPeter Avalos
1871327e51cbSPeter Avalos#  Valid media descriptor bytes for MS-DOS:
1872327e51cbSPeter Avalos#
1873327e51cbSPeter Avalos#     Byte   Capacity   Media Size and Type
1874327e51cbSPeter Avalos#     -------------------------------------------------
1875327e51cbSPeter Avalos#
1876327e51cbSPeter Avalos#     F0     2.88 MB    3.5-inch, 2-sided, 36-sector
1877327e51cbSPeter Avalos#     F0     1.44 MB    3.5-inch, 2-sided, 18-sector
1878327e51cbSPeter Avalos#     F9     720K       3.5-inch, 2-sided, 9-sector
1879327e51cbSPeter Avalos#     F9     1.2 MB     5.25-inch, 2-sided, 15-sector
1880327e51cbSPeter Avalos#     FD     360K       5.25-inch, 2-sided, 9-sector
1881327e51cbSPeter Avalos#     FF     320K       5.25-inch, 2-sided, 8-sector
1882327e51cbSPeter Avalos#     FC     180K       5.25-inch, 1-sided, 9-sector
1883327e51cbSPeter Avalos#     FE     160K       5.25-inch, 1-sided, 8-sector
1884327e51cbSPeter Avalos#     FE     250K       8-inch, 1-sided, single-density
1885327e51cbSPeter Avalos#     FD     500K       8-inch, 2-sided, single-density
1886327e51cbSPeter Avalos#     FE     1.2 MB     8-inch, 2-sided, double-density
1887327e51cbSPeter Avalos#     F8     -----      Fixed disk
1888327e51cbSPeter Avalos#
1889327e51cbSPeter Avalos#     FC     xxxK       Apricot 70x1x9 boot disk.
1890327e51cbSPeter Avalos#
1891327e51cbSPeter Avalos# Originally a bitmap:
1892327e51cbSPeter Avalos#  xxxxxxx0	Not two sided
1893327e51cbSPeter Avalos#  xxxxxxx1	Double sided
1894327e51cbSPeter Avalos#  xxxxxx0x	Not 8 SPT
1895327e51cbSPeter Avalos#  xxxxxx1x	8 SPT
1896327e51cbSPeter Avalos#  xxxxx0xx	Not Removable drive
1897327e51cbSPeter Avalos#  xxxxx1xx	Removable drive
1898327e51cbSPeter Avalos#  11111xxx	Must be one.
1899327e51cbSPeter Avalos#
1900327e51cbSPeter Avalos# But now it's rather random:
1901327e51cbSPeter Avalos#  111111xx	Low density disk
1902327e51cbSPeter Avalos#        00	SS, Not 8 SPT
1903327e51cbSPeter Avalos#        01	DS, Not 8 SPT
1904327e51cbSPeter Avalos#        10	SS, 8 SPT
1905327e51cbSPeter Avalos#        11	DS, 8 SPT
1906327e51cbSPeter Avalos#
1907e8af9738SPeter Avalos#  11111001	Double density 3 1/2 floppy disk, high density 5 1/4
1908e8af9738SPeter Avalos#  11110000	High density 3 1/2 floppy disk
1909327e51cbSPeter Avalos#  11111000	Hard disk any format
1910327e51cbSPeter Avalos#
1911327e51cbSPeter Avalos
1912e8af9738SPeter Avalos# all FAT12 (strength=70) floppies with sectorsize 512 added by Joerg Jenderek at Jun 2013
19136fca56fbSSascha Wildner# https://en.wikipedia.org/wiki/File_Allocation_Table#Exceptions
1914e8af9738SPeter Avalos# Too Weak.
1915e8af9738SPeter Avalos#512		ubelong&0xE0ffff00	0xE0ffff00
1916e8af9738SPeter Avalos# without valid Media descriptor in place of BPB, cases with are done at other places
1917e8af9738SPeter Avalos#>21		ubyte			<0xE5			floppy with old FAT filesystem
1918e8af9738SPeter Avalos# but valid Media descriptor at begin of FAT
1919e8af9738SPeter Avalos#>>512		ubyte			=0xed			720k
1920e8af9738SPeter Avalos#>>512		ubyte			=0xf0			1440k
1921e8af9738SPeter Avalos#>>512		ubyte			=0xf8			720k
1922e8af9738SPeter Avalos#>>512		ubyte			=0xf9			1220k
1923e8af9738SPeter Avalos#>>512		ubyte			=0xfa			320k
1924e8af9738SPeter Avalos#>>512		ubyte			=0xfb			640k
1925e8af9738SPeter Avalos#>>512		ubyte			=0xfc			180k
19266fca56fbSSascha Wildner# look like an old DOS directory entry
1927e8af9738SPeter Avalos#>>>0xA0E	ubequad			0
1928e8af9738SPeter Avalos#>>>>0xA00	ubequad			!0
1929e8af9738SPeter Avalos#!:mime application/x-ima
1930e8af9738SPeter Avalos#>>512		ubyte			=0xfd
1931e8af9738SPeter Avalos# look for 2nd FAT at different location to distinguish between 360k and 500k
1932e8af9738SPeter Avalos#>>>0x600	ubelong&0xE0ffff00	0xE0ffff00		360k
1933e8af9738SPeter Avalos#>>>0x500	ubelong&0xE0ffff00	0xE0ffff00		500k
1934e8af9738SPeter Avalos#>>>0xA0E	ubequad			0
1935e8af9738SPeter Avalos#!:mime application/x-ima
1936e8af9738SPeter Avalos#>>512		ubyte			=0xfe
1937e8af9738SPeter Avalos#>>>0x400	ubelong&0xE0ffff00	0xE0ffff00		160k
1938e8af9738SPeter Avalos#>>>>0x60E	ubequad			0
1939e8af9738SPeter Avalos#>>>>>0x600	ubequad			!0
1940e8af9738SPeter Avalos#!:mime application/x-ima
1941e8af9738SPeter Avalos#>>>0xC00	ubelong&0xE0ffff00	0xE0ffff00		1200k
1942e8af9738SPeter Avalos#>>512		ubyte			=0xff			320k
1943e8af9738SPeter Avalos#>>>0x60E	ubequad			0
1944e8af9738SPeter Avalos#>>>>0x600	ubequad			!0
1945e8af9738SPeter Avalos#!:mime application/x-ima
1946614728caSSascha Wildner#>>512		ubyte			x			\b, Media descriptor %#x
1947e8af9738SPeter Avalos# without x86 jump instruction
1948e8af9738SPeter Avalos#>>0		ulelong&0x804000E9	!0x000000E9
1949e8af9738SPeter Avalos# assembler instructions: CLI;MOV SP,1E7;MOV AX;07c0;MOV
1950e8af9738SPeter Avalos#>>>0	ubequad				0xfabce701b8c0078e	\b, MS-DOS 1.12 bootloader
1951e8af9738SPeter Avalos# IOSYS.COM+MSDOS.COM
1952e8af9738SPeter Avalos#>>>>0xc4	use			2xDOS-filename
1953e8af9738SPeter Avalos#>>0		ulelong&0x804000E9	=0x000000E9
1954e8af9738SPeter Avalos# only x86 short jump instruction found
1955e8af9738SPeter Avalos#>>>0		ubyte			=0xEB
1956614728caSSascha Wildner#>>>>1		ubyte			x			\b, code offset %#x+2
19576fca56fbSSascha Wildner# https://thestarman.pcministry.com/DOS/ibm100/Boot.htm
1958e8af9738SPeter Avalos# assembler instructions: CLI;MOV AX,CS;MOV DS,AX;MOV DX,0
1959e8af9738SPeter Avalos#>>>>(1.b+2)	ubequad			0xfa8cc88ed8ba0000	\b, PC-DOS 1.0 bootloader
1960e8af9738SPeter Avalos# ibmbio.com+ibmdos.com
1961e8af9738SPeter Avalos#>>>>>0x176	use			DOS-filename
1962e8af9738SPeter Avalos#>>>>>0x181	ubyte			x			\b+
1963e8af9738SPeter Avalos#>>>>>0x182	use			DOS-filename
19646fca56fbSSascha Wildner# https://thestarman.pcministry.com/DOS/ibm110/Boot.htm
1965e8af9738SPeter Avalos# assembler instructions: CLI;MOV AX,CS;MOV DS,AX;XOR DX,DX;MOV
1966e8af9738SPeter Avalos#>>>>(1.b+2)	ubequad			0xfa8cc88ed833d28e	\b, PC-DOS 1.1 bootloader
1967e8af9738SPeter Avalos# ibmbio.com+ibmdos.com
1968e8af9738SPeter Avalos#>>>>>0x18b	use			DOS-filename
1969e8af9738SPeter Avalos#>>>>>0x196	ubyte			x			\b+
1970e8af9738SPeter Avalos#>>>>>0x197	use			DOS-filename
19716fca56fbSSascha Wildner# https://en.wikipedia.org/wiki/Zenith_Data_Systems
1972e8af9738SPeter Avalos# assembler instructions: MOV BX,07c0;MOV SS,BX;MOV SP,01c6
1973e8af9738SPeter Avalos#>>>>(1.b+2)	ubequad			0xbbc0078ed3bcc601	\b, Zenith Data Systems MS-DOS 1.25 bootloader
1974e8af9738SPeter Avalos# IO.SYS+MSDOS.SYS
1975e8af9738SPeter Avalos#>>>>>0x20	use			2xDOS-filename
19766fca56fbSSascha Wildner# https://en.wikipedia.org/wiki/Corona_Data_Systems
1977e8af9738SPeter Avalos# assembler instructions: MOV AX,CS;MOV DS,AX;CLI;MOV SS,AX;
1978e8af9738SPeter Avalos#>>>>(1.b+2)	ubequad			0x8cc88ed8fa8ed0bc	\b, MS-DOS 1.25 bootloader
1979e8af9738SPeter Avalos# IO.SYS+MSDOS.SYS
1980e8af9738SPeter Avalos#>>>>>0x69	use			2xDOS-filename
1981e8af9738SPeter Avalos# assembler instructions: CLI;PUSH CS;POP SS;MOV SP,7c00;
1982e8af9738SPeter Avalos#>>>>(1.b+2)	ubequad			0xfa0e17bc007cb860	\b, MS-DOS 2.11 bootloader
1983e8af9738SPeter Avalos# defect IO.SYS+MSDOS.SYS ?
1984e8af9738SPeter Avalos#>>>>>0x162	use			2xDOS-filename
1985e8af9738SPeter Avalos
198682c5fa3eSPeter Avalos0	name				cdrom
1987327e51cbSPeter Avalos>38913	string   !NSR0      ISO 9660 CD-ROM filesystem data
198882c5fa3eSPeter Avalos!:mime	application/x-iso9660-image
19896fca56fbSSascha Wildner!:ext	iso/iso9660
1990327e51cbSPeter Avalos>38913	string    NSR0      UDF filesystem data
199182c5fa3eSPeter Avalos!:mime	application/x-iso9660-image
19926fca56fbSSascha Wildner!:ext	iso/udf
1993327e51cbSPeter Avalos>>38917	string    1         (version 1.0)
1994327e51cbSPeter Avalos>>38917	string    2         (version 1.5)
1995327e51cbSPeter Avalos>>38917	string    3         (version 2.0)
1996614728caSSascha Wildner>>38917	byte     >0x33      (unknown version, ID %#X)
1997614728caSSascha Wildner>>38917	byte     <0x31      (unknown version, ID %#X)
1998c30bd091SSascha Wildner# The next line is not necessary because the MBR staff is done looking for boot signature
1999c30bd091SSascha Wildner>0x1FE	leshort  0xAA55     (DOS/MBR boot sector)
2000327e51cbSPeter Avalos# "application id" which appears to be used as a volume label
2001970935fdSSascha Wildner>32808	string/T  >\0       '%.32s'
2002327e51cbSPeter Avalos>34816	string    \000CD001\001EL\ TORITO\ SPECIFICATION    (bootable)
2003327e51cbSPeter Avalos37633	string    CD001     ISO 9660 CD-ROM filesystem data (raw 2352 byte sectors)
200479343712SPeter Avalos!:mime	application/x-iso9660-image
2005e8af9738SPeter Avalos32777	string    CDROM     High Sierra CD-ROM filesystem data
2006970935fdSSascha Wildner# "application id" which appears to be used as a volume label
2007970935fdSSascha Wildner>32816	string/T  >\0       '%.32s'
2008970935fdSSascha Wildner
2009327e51cbSPeter Avalos
201082c5fa3eSPeter Avalos# CDROM Filesystems
201182c5fa3eSPeter Avalos# https://en.wikipedia.org/wiki/ISO_9660
201282c5fa3eSPeter Avalos# Modified for UDF by gerardo.cacciari@gmail.com
201382c5fa3eSPeter Avalos32769	string    CD001
201482c5fa3eSPeter Avalos# mime line at that position does not work
201582c5fa3eSPeter Avalos# to display CD-ROM (70=81-11) after MBR (113=40+72+1), partition-table (71=50+21) and before Apple Driver Map (51)
2016c30bd091SSascha Wildner#!:strength -11
201782c5fa3eSPeter Avalos# to display CD-ROM (114=81+33) before MBR (113=40+72+1), partition-table (71=50+21) and Apple Driver Map (51)
2018c990e5baSDaniel Fojt!:strength +35
201982c5fa3eSPeter Avalos>0	use	cdrom
202082c5fa3eSPeter Avalos
20216fca56fbSSascha Wildner# URL: https://en.wikipedia.org/wiki/NRG_(file_format)
20226fca56fbSSascha Wildner# Reference: https://dl.opendesktop.org/api/files/download/id/1460731811/
20236fca56fbSSascha Wildner#	11577-mount-iso-0.9.5.tar.bz2/mount-iso-0.9.5/install.sh
20246fca56fbSSascha Wildner# From: Joerg Jenderek
20256fca56fbSSascha Wildner# Note:	Only for nero disc with once (DAO) type after 300 KB header
20266fca56fbSSascha Wildner339969	string    CD001	Nero CD image at 0x4B000
20276fca56fbSSascha Wildner!:mime	application/x-nrg
20286fca56fbSSascha Wildner!:ext	nrg
20296fca56fbSSascha Wildner>307200	use cdrom
20306fca56fbSSascha Wildner
2031f72f8299SJan Lentfer# .cso files
20326fca56fbSSascha Wildner# Reference: https://pismotec.com/ciso/ciso.h
2033c30bd091SSascha Wildner# NOTE: There are two other formats with the same magic but
2034c30bd091SSascha Wildner# completely incompatible specifications:
2035c30bd091SSascha Wildner# - GameCube/Wii CISO: https://github.com/dolphin-emu/dolphin/blob/master/Source/Core/DiscIO/CISOBlob.h
2036c30bd091SSascha Wildner# - PSP CISO: https://github.com/jamie/ciso/blob/master/ciso.h
2037c30bd091SSascha Wildner0    string    CISO
2038c30bd091SSascha Wildner# Other fields are used to determine what type of CISO this is:
2039c30bd091SSascha Wildner# - 0x04 == 0x00200000: GameCube/Wii CISO (block_size)
2040c30bd091SSascha Wildner# - 0x10 == 0x00000800: PSP CISO (ISO-9660 sector size)
20416fca56fbSSascha Wildner# - 0x10 == 0x00004000: For >2GB files using maxcso...
20426fca56fbSSascha Wildner# 			https://github.com/unknownbrackets/maxcso/issues/26
2043c30bd091SSascha Wildner# - None of the above: Compact ISO.
2044c30bd091SSascha Wildner>4	lelong	!0
2045c30bd091SSascha Wildner>>4	lelong	!0x200000
20466fca56fbSSascha Wildner>>>16	lelong	!0x800
20476fca56fbSSascha Wildner>>>>16	lelong	!0x4000		Compressed ISO CD image
2048f72f8299SJan Lentfer
2049327e51cbSPeter Avalos# cramfs filesystem - russell@coker.com.au
2050327e51cbSPeter Avalos0       lelong    0x28cd3d45      Linux Compressed ROM File System data, little endian
205182c5fa3eSPeter Avalos>4      lelong  x size %u
2052327e51cbSPeter Avalos>8      lelong  &1 version #2
2053327e51cbSPeter Avalos>8      lelong  &2 sorted_dirs
2054327e51cbSPeter Avalos>8      lelong  &4 hole_support
2055614728caSSascha Wildner>32     lelong  x CRC %#x,
205682c5fa3eSPeter Avalos>36     lelong  x edition %u,
205782c5fa3eSPeter Avalos>40     lelong  x %u blocks,
205882c5fa3eSPeter Avalos>44     lelong  x %u files
2059327e51cbSPeter Avalos
2060327e51cbSPeter Avalos0       belong    0x28cd3d45      Linux Compressed ROM File System data, big endian
206182c5fa3eSPeter Avalos>4      belong  x size %u
2062327e51cbSPeter Avalos>8      belong  &1 version #2
2063327e51cbSPeter Avalos>8      belong  &2 sorted_dirs
2064327e51cbSPeter Avalos>8      belong  &4 hole_support
2065614728caSSascha Wildner>32     belong  x CRC %#x,
206682c5fa3eSPeter Avalos>36     belong  x edition %u,
206782c5fa3eSPeter Avalos>40     belong  x %u blocks,
206882c5fa3eSPeter Avalos>44     belong  x %u files
2069327e51cbSPeter Avalos
2070327e51cbSPeter Avalos# reiserfs - russell@coker.com.au
2071327e51cbSPeter Avalos0x10034		string	ReIsErFs	ReiserFS V3.5
2072327e51cbSPeter Avalos0x10034		string	ReIsEr2Fs	ReiserFS V3.6
2073e4d4ce0cSPeter Avalos0x10034		string	ReIsEr3Fs	ReiserFS V3.6.19
2074327e51cbSPeter Avalos>0x1002c 	leshort	x		block size %d
2075327e51cbSPeter Avalos>0x10032	leshort	&2		(mounted or unclean)
2076327e51cbSPeter Avalos>0x10000	lelong	x		num blocks %d
2077327e51cbSPeter Avalos>0x10040	lelong	1		tea hash
2078327e51cbSPeter Avalos>0x10040	lelong	2		yura hash
2079327e51cbSPeter Avalos>0x10040	lelong	3		r5 hash
2080327e51cbSPeter Avalos
2081327e51cbSPeter Avalos# EST flat binary format (which isn't, but anyway)
2082327e51cbSPeter Avalos# From: Mark Brown <broonie@sirena.org.uk>
2083327e51cbSPeter Avalos0	string	ESTFBINR	EST flat binary
2084327e51cbSPeter Avalos
2085327e51cbSPeter Avalos# Aculab VoIP firmware
2086327e51cbSPeter Avalos# From: Mark Brown <broonie@sirena.org.uk>
2087327e51cbSPeter Avalos0	string	VoIP\ Startup\ and	Aculab VoIP firmware
2088327e51cbSPeter Avalos>35	string	x	format %s
2089327e51cbSPeter Avalos
2090f72f8299SJan Lentfer# From: Mark Brown <broonie@sirena.org.uk> [old]
2091f72f8299SJan Lentfer# From: Behan Webster <behanw@websterwood.com>
2092f72f8299SJan Lentfer0	belong	0x27051956	u-boot legacy uImage,
2093f72f8299SJan Lentfer>32	string	x		%s,
2094f72f8299SJan Lentfer>28	byte	0		Invalid os/
2095f72f8299SJan Lentfer>28	byte	1		OpenBSD/
2096f72f8299SJan Lentfer>28	byte	2		NetBSD/
2097f72f8299SJan Lentfer>28	byte	3		FreeBSD/
2098f72f8299SJan Lentfer>28	byte	4		4.4BSD/
2099f72f8299SJan Lentfer>28	byte	5		Linux/
2100f72f8299SJan Lentfer>28	byte	6		SVR4/
2101f72f8299SJan Lentfer>28	byte	7		Esix/
2102f72f8299SJan Lentfer>28	byte	8		Solaris/
2103f72f8299SJan Lentfer>28	byte	9		Irix/
2104f72f8299SJan Lentfer>28	byte	10		SCO/
2105f72f8299SJan Lentfer>28	byte	11		Dell/
2106f72f8299SJan Lentfer>28	byte	12		NCR/
2107f72f8299SJan Lentfer>28	byte	13		LynxOS/
2108f72f8299SJan Lentfer>28	byte	14		VxWorks/
2109f72f8299SJan Lentfer>28	byte	15		pSOS/
2110f72f8299SJan Lentfer>28	byte	16		QNX/
2111f72f8299SJan Lentfer>28	byte	17		Firmware/
2112f72f8299SJan Lentfer>28	byte	18		RTEMS/
2113f72f8299SJan Lentfer>28	byte	19		ARTOS/
2114f72f8299SJan Lentfer>28	byte	20		Unity OS/
2115f72f8299SJan Lentfer>28	byte	21		INTEGRITY/
2116f72f8299SJan Lentfer>29	byte	0		\bInvalid CPU,
2117f72f8299SJan Lentfer>29	byte	1		\bAlpha,
2118f72f8299SJan Lentfer>29	byte	2		\bARM,
2119f72f8299SJan Lentfer>29	byte	3		\bIntel x86,
2120f72f8299SJan Lentfer>29	byte	4		\bIA64,
2121f72f8299SJan Lentfer>29	byte	5		\bMIPS,
2122f72f8299SJan Lentfer>29	byte	6		\bMIPS 64-bit,
2123f72f8299SJan Lentfer>29	byte	7		\bPowerPC,
2124f72f8299SJan Lentfer>29	byte	8		\bIBM S390,
2125f72f8299SJan Lentfer>29	byte	9		\bSuperH,
2126f72f8299SJan Lentfer>29	byte	10		\bSparc,
2127f72f8299SJan Lentfer>29	byte	11		\bSparc 64-bit,
2128f72f8299SJan Lentfer>29	byte	12		\bM68K,
2129f72f8299SJan Lentfer>29	byte	13		\bNios-32,
2130f72f8299SJan Lentfer>29	byte	14		\bMicroBlaze,
2131f72f8299SJan Lentfer>29	byte	15		\bNios-II,
2132f72f8299SJan Lentfer>29	byte	16		\bBlackfin,
2133f72f8299SJan Lentfer>29	byte	17		\bAVR32,
2134f72f8299SJan Lentfer>29	byte	18		\bSTMicroelectronics ST200,
2135c30bd091SSascha Wildner>29	byte	19		\bSandbox architecture,
2136c30bd091SSascha Wildner>29	byte	20		\bANDES Technology NDS32,
2137c30bd091SSascha Wildner>29	byte	21		\bOpenRISC 1000,
2138c30bd091SSascha Wildner>29	byte	22		\bARM 64-bit,
2139c30bd091SSascha Wildner>29	byte	23		\bDesignWare ARC,
2140c30bd091SSascha Wildner>29	byte	24		\bx86_64,
2141c30bd091SSascha Wildner>29	byte	25		\bXtensa,
21426fca56fbSSascha Wildner>29	byte	26		\bRISC-V,
2143f72f8299SJan Lentfer>30	byte	0		Invalid Image
2144f72f8299SJan Lentfer>30	byte	1		Standalone Program
2145f72f8299SJan Lentfer>30	byte	2		OS Kernel Image
2146f72f8299SJan Lentfer>30	byte	3		RAMDisk Image
2147f72f8299SJan Lentfer>30	byte	4		Multi-File Image
2148f72f8299SJan Lentfer>30	byte	5		Firmware Image
2149f72f8299SJan Lentfer>30	byte	6		Script File
2150f72f8299SJan Lentfer>30	byte	7		Filesystem Image (any type)
2151f72f8299SJan Lentfer>30	byte	8		Binary Flat Device Tree BLOB
2152f72f8299SJan Lentfer>31	byte	0		(Not compressed),
2153f72f8299SJan Lentfer>31	byte	1		(gzip),
2154f72f8299SJan Lentfer>31	byte	2		(bzip2),
2155f72f8299SJan Lentfer>31	byte	3		(lzma),
2156f72f8299SJan Lentfer>12	belong	x		%d bytes,
2157f72f8299SJan Lentfer>8	bedate	x		%s,
2158614728caSSascha Wildner>16	belong	x		Load Address: %#08X,
2159614728caSSascha Wildner>20	belong	x		Entry Point: %#08X,
2160614728caSSascha Wildner>4	belong	x		Header CRC: %#08X,
2161614728caSSascha Wildner>24	belong	x		Data CRC: %#08X
2162327e51cbSPeter Avalos
2163327e51cbSPeter Avalos# JFFS2 file system
2164327e51cbSPeter Avalos0	leshort	0x1984		Linux old jffs2 filesystem data little endian
21656fca56fbSSascha Wildner0	beshort	0x1984		Linux old jffs2 filesystem data big endian
2166327e51cbSPeter Avalos0	leshort	0x1985		Linux jffs2 filesystem data little endian
21676fca56fbSSascha Wildner0	beshort	0x1985		Linux jffs2 filesystem data big endian
2168327e51cbSPeter Avalos
2169327e51cbSPeter Avalos# Squashfs
21706fca56fbSSascha Wildner0	name	squashfs
2171327e51cbSPeter Avalos>28	beshort	x	version %d.
2172327e51cbSPeter Avalos>30	beshort	x	\b%d,
21736fca56fbSSascha Wildner>20	beshort 0	uncompressed,
21746fca56fbSSascha Wildner>20	beshort 1	zlib
21756fca56fbSSascha Wildner>20	beshort 2	lzma
21766fca56fbSSascha Wildner>20	beshort 3	lzo
21776fca56fbSSascha Wildner>20	beshort 4	xz
21786fca56fbSSascha Wildner>20	beshort 5	lz4
21796fca56fbSSascha Wildner>20	beshort 6	zstd
21806fca56fbSSascha Wildner>20	beshort >0	compressed,
2181327e51cbSPeter Avalos>28	beshort <3
2182327e51cbSPeter Avalos>>8	belong	x	%d bytes,
2183327e51cbSPeter Avalos>28	beshort >2
2184e4d4ce0cSPeter Avalos>>28	beshort <4
2185e4d4ce0cSPeter Avalos>>>63	bequad x	%lld bytes,
2186e4d4ce0cSPeter Avalos>>28	beshort >3
2187e4d4ce0cSPeter Avalos>>>40	bequad x	%lld bytes,
2188327e51cbSPeter Avalos#>>67	belong	x	%d bytes,
2189327e51cbSPeter Avalos>4	belong	x	%d inodes,
2190327e51cbSPeter Avalos>28	beshort <2
2191327e51cbSPeter Avalos>>32	beshort	x	blocksize: %d bytes,
2192327e51cbSPeter Avalos>28	beshort >1
2193e4d4ce0cSPeter Avalos>>28	beshort <4
2194e4d4ce0cSPeter Avalos>>>51	belong	x	blocksize: %d bytes,
2195e4d4ce0cSPeter Avalos>>28	beshort >3
2196e4d4ce0cSPeter Avalos>>>12	belong	x	blocksize: %d bytes,
2197e4d4ce0cSPeter Avalos>28	beshort <4
2198e4d4ce0cSPeter Avalos>>39	bedate	x	created: %s
2199e4d4ce0cSPeter Avalos>28	beshort >3
2200e4d4ce0cSPeter Avalos>>8	bedate	x	created: %s
22016fca56fbSSascha Wildner
22026fca56fbSSascha Wildner0	string	sqsh	Squashfs filesystem, big endian,
22036fca56fbSSascha Wildner>0	use	squashfs
22046fca56fbSSascha Wildner
2205327e51cbSPeter Avalos0	string	hsqs	Squashfs filesystem, little endian,
2206c990e5baSDaniel Fojt>0	use	\^squashfs
2207327e51cbSPeter Avalos
2208327e51cbSPeter Avalos# AFS Dump Magic
2209327e51cbSPeter Avalos# From: Ty Sarna <tsarna@sarna.org>
2210327e51cbSPeter Avalos0       string                  \x01\xb3\xa1\x13\x22    AFS Dump
2211327e51cbSPeter Avalos>&0     belong                  x                       (v%d)
2212327e51cbSPeter Avalos>>&0    byte                    0x76
2213327e51cbSPeter Avalos>>>&0   belong                  x                       Vol %d,
2214327e51cbSPeter Avalos>>>>&0  byte                    0x6e
2215327e51cbSPeter Avalos>>>>>&0 string                  x                       %s
2216327e51cbSPeter Avalos>>>>>>&1        byte            0x74
2217327e51cbSPeter Avalos>>>>>>>&0       beshort         2
2218327e51cbSPeter Avalos>>>>>>>>&4      bedate          x                       on: %s
2219327e51cbSPeter Avalos>>>>>>>>&0      bedate          =0                      full dump
2220327e51cbSPeter Avalos>>>>>>>>&0      bedate          !0                      incremental since: %s
2221327e51cbSPeter Avalos
2222327e51cbSPeter Avalos#----------------------------------------------------------
2223f72f8299SJan Lentfer#delta ISO    Daniel Novotny (dnovotny@redhat.com)
2224f72f8299SJan Lentfer0	string  DISO	Delta ISO data
222582c5fa3eSPeter Avalos!:strength +50
2226f72f8299SJan Lentfer>4	belong  x	version %d
2227f72f8299SJan Lentfer
2228327e51cbSPeter Avalos# VMS backup savesets - gerardo.cacciari@gmail.com
2229327e51cbSPeter Avalos#
2230327e51cbSPeter Avalos4            string  \x01\x00\x01\x00\x01\x00
2231327e51cbSPeter Avalos>(0.s+16)    string  \x01\x01
2232327e51cbSPeter Avalos>>&(&0.b+8)  byte    0x42       OpenVMS backup saveset data
2233327e51cbSPeter Avalos>>>40        lelong  x          (block size %d,
2234327e51cbSPeter Avalos>>>49        string  >\0        original name '%s',
2235327e51cbSPeter Avalos>>>2         short   1024       VAX generated)
2236327e51cbSPeter Avalos>>>2         short   2048       AXP generated)
2237327e51cbSPeter Avalos>>>2         short   4096       I64 generated)
2238327e51cbSPeter Avalos
223979343712SPeter Avalos# Summary: Oracle Clustered Filesystem
224079343712SPeter Avalos# Created by: Aaron Botsis <redhat@digitalmafia.org>
224179343712SPeter Avalos8	string		OracleCFS	Oracle Clustered Filesystem,
224279343712SPeter Avalos>4	long		x		rev %d
224379343712SPeter Avalos>0	long		x		\b.%d,
224479343712SPeter Avalos>560	string		x		label: %.64s,
224579343712SPeter Avalos>136	string		x		mountpoint: %.128s
224679343712SPeter Avalos
224779343712SPeter Avalos# Summary: Oracle ASM tagged volume
224879343712SPeter Avalos# Created by: Aaron Botsis <redhat@digitalmafia.org>
224979343712SPeter Avalos32	string		ORCLDISK	Oracle ASM Volume,
225079343712SPeter Avalos>40	string		x		Disk Name: %0.12s
225179343712SPeter Avalos32	string		ORCLCLRD	Oracle ASM Volume (cleared),
225279343712SPeter Avalos>40	string		x		Disk Name: %0.12s
225379343712SPeter Avalos
225479343712SPeter Avalos# Oracle Clustered Filesystem - Aaron Botsis <redhat@digitalmafia.org>
225579343712SPeter Avalos8	string		OracleCFS	Oracle Clustered Filesystem,
225679343712SPeter Avalos>4	long		x		rev %d
225779343712SPeter Avalos>0	long		x		\b.%d,
225879343712SPeter Avalos>560	string		x		label: %.64s,
225979343712SPeter Avalos>136	string		x		mountpoint: %.128s
226079343712SPeter Avalos
226179343712SPeter Avalos# Oracle ASM tagged volume - Aaron Botsis <redhat@digitalmafia.org>
226279343712SPeter Avalos32	string		ORCLDISK	Oracle ASM Volume,
226379343712SPeter Avalos>40	string		x		Disk Name: %0.12s
226479343712SPeter Avalos32	string		ORCLCLRD	Oracle ASM Volume (cleared),
226579343712SPeter Avalos>40	string		x		Disk Name: %0.12s
226679343712SPeter Avalos
2267327e51cbSPeter Avalos# Compaq/HP RILOE floppy image
2268327e51cbSPeter Avalos# From: Dirk Jagdmann <doj@cubic.org>
2269327e51cbSPeter Avalos0	string	CPQRFBLO	Compaq/HP RILOE floppy image
2270327e51cbSPeter Avalos
2271327e51cbSPeter Avalos#------------------------------------------------------------------------------
2272e4d4ce0cSPeter Avalos# Files-11 On-Disk Structure (File system for various RSX-11 and VMS flavours).
2273e4d4ce0cSPeter Avalos# These bits come from LBN 1 (home block) of ODS-1, ODS-2 and ODS-5 volumes,
2274e4d4ce0cSPeter Avalos# which is mapped to VBN 2 of [000000]INDEXF.SYS;1 - gerardo.cacciari@gmail.com
2275327e51cbSPeter Avalos#
2276e4d4ce0cSPeter Avalos1008    string          DECFILE11       Files-11 On-Disk Structure
2277e4d4ce0cSPeter Avalos>525    byte            x               (ODS-%d);
2278e4d4ce0cSPeter Avalos>1017   string          A               RSX-11, VAX/VMS or OpenVMS VAX file system;
2279e4d4ce0cSPeter Avalos>1017   string          B
2280e4d4ce0cSPeter Avalos>>525   byte            2               VAX/VMS or OpenVMS file system;
2281e4d4ce0cSPeter Avalos>>525   byte            5               OpenVMS Alpha or Itanium file system;
2282327e51cbSPeter Avalos>984    string          x               volume label is '%-12.12s'
2283327e51cbSPeter Avalos
2284327e51cbSPeter Avalos# From: Thomas Klausner <wiz@NetBSD.org>
22856fca56fbSSascha Wildner# https://filext.com/file-extension/DAA
2286327e51cbSPeter Avalos# describes the daa file format. The magic would be:
2287327e51cbSPeter Avalos0	string		DAA\x0\x0\x0\x0\x0	PowerISO Direct-Access-Archive
228879343712SPeter Avalos
228979343712SPeter Avalos# From Albert Cahalan <acahalan@gmail.com>
229079343712SPeter Avalos# really le32 operation,destination,payloadsize (but quite predictable)
229179343712SPeter Avalos# 01 00 00 00 00 00 00 c0 00 02 00 00
229279343712SPeter Avalos0	string		\1\0\0\0\0\0\0\300\0\2\0\0	Marvell Libertas firmware
229379343712SPeter Avalos
229479343712SPeter Avalos# From Eric Sandeen
229579343712SPeter Avalos# GFS2
2296e4d4ce0cSPeter Avalos0x10000         belong          0x01161970
2297e4d4ce0cSPeter Avalos>0x10018        belong          0x0000051d      GFS1 Filesystem
2298e4d4ce0cSPeter Avalos>>0x10024        belong          x               (blocksize %d,
2299e4d4ce0cSPeter Avalos>>0x10060        string          >\0             lockproto %s)
2300e4d4ce0cSPeter Avalos>0x10018        belong          0x00000709      GFS2 Filesystem
2301e4d4ce0cSPeter Avalos>>0x10024        belong          x               (blocksize %d,
2302e4d4ce0cSPeter Avalos>>0x10060        string          >\0             lockproto %s)
230379343712SPeter Avalos
2304c30bd091SSascha Wildner# Russell Coker <russell@coker.com.au>
230579343712SPeter Avalos0x10040		string		_BHRfS_M	BTRFS Filesystem
2306c30bd091SSascha Wildner>0x1012b	string		>\0		label "%s",
230779343712SPeter Avalos>0x10090	lelong		x		sectorsize %d,
230879343712SPeter Avalos>0x10094	lelong		x		nodesize %d,
2309c30bd091SSascha Wildner>0x10098	lelong		x		leafsize %d,
2310614728caSSascha Wildner>0x10020	ubelong		x		UUID=%08x-
2311614728caSSascha Wildner>0x10024	ubeshort	x		\b%04x-
2312614728caSSascha Wildner>0x10026	ubeshort	x		\b%04x-
2313614728caSSascha Wildner>0x10028	ubeshort	x		\b%04x-
2314614728caSSascha Wildner>0x1002a	ubeshort	x		\b%04x
2315614728caSSascha Wildner>0x1002c	ubelong		x		\b%08x,
2316c30bd091SSascha Wildner>0x10078	lequad		x		%lld/
2317c30bd091SSascha Wildner>0x10070	lequad		x		\b%lld bytes used,
2318c30bd091SSascha Wildner>0x10088	lequad		x		%lld devices
231979343712SPeter Avalos
2320*3b9cdfa3SAntonio Huete Jimenez0		string		btrfs-stream	BTRFS stream file
2321*3b9cdfa3SAntonio Huete Jimenez
232279343712SPeter Avalos# dvdisaster's .ecc
232379343712SPeter Avalos# From: "Nelson A. de Oliveira" <naoliv@gmail.com>
232479343712SPeter Avalos0	string	*dvdisaster*	dvdisaster error correction file
2325f72f8299SJan Lentfer
2326f72f8299SJan Lentfer# xfs metadump image
2327f72f8299SJan Lentfer# mb_magic XFSM at 0; superblock magic XFSB at 1 << mb_blocklog
2328f72f8299SJan Lentfer# but can we do the << ?  For now it's always 512 (0x200) anyway.
2329f72f8299SJan Lentfer0	string XFSM
2330f72f8299SJan Lentfer>0x200	string XFSB	XFS filesystem metadump image
2331f72f8299SJan Lentfer
2332e4d4ce0cSPeter Avalos# Type:	CROM filesystem
2333e4d4ce0cSPeter Avalos# From:	Werner Fink <werner@suse.de>
2334e4d4ce0cSPeter Avalos0	string	CROMFS	CROMFS
2335e4d4ce0cSPeter Avalos>6	string	>\0	\b version %2.2s,
2336e4d4ce0cSPeter Avalos>8	ulequad	>0	\b block data at %lld,
2337e4d4ce0cSPeter Avalos>16	ulequad	>0	\b fblock table at %lld,
2338e4d4ce0cSPeter Avalos>24	ulequad	>0	\b inode table at %lld,
2339e4d4ce0cSPeter Avalos>32	ulequad	>0	\b root at %lld,
234082c5fa3eSPeter Avalos>40	ulelong	>0	\b fblock size = %d,
234182c5fa3eSPeter Avalos>44	ulelong	>0	\b block size = %d,
2342e4d4ce0cSPeter Avalos>48	ulequad	>0	\b bytes = %lld
2343e4d4ce0cSPeter Avalos
2344e4d4ce0cSPeter Avalos# Type:	xfs metadump image
2345e4d4ce0cSPeter Avalos# From:	Daniel Novotny <dnovotny@redhat.com>
2346e4d4ce0cSPeter Avalos# mb_magic XFSM at 0; superblock magic XFSB at 1 << mb_blocklog
2347e4d4ce0cSPeter Avalos# but can we do the << ? For now it's always 512 (0x200) anyway.
2348e4d4ce0cSPeter Avalos0	string	XFSM
2349e4d4ce0cSPeter Avalos>0x200	string	XFSB	XFS filesystem metadump image
2350e4d4ce0cSPeter Avalos
2351e4d4ce0cSPeter Avalos# Type:	delta ISO
2352e4d4ce0cSPeter Avalos# From:	Daniel Novotny <dnovotny@redhat.com>
2353e4d4ce0cSPeter Avalos0	string	DISO	Delta ISO data,
2354e4d4ce0cSPeter Avalos>4	belong	x	version %d
2355e4d4ce0cSPeter Avalos
2356e4d4ce0cSPeter Avalos# JFS2 (Journaling File System) image. (Old JFS1 has superblock at 0x1000.)
2357e4d4ce0cSPeter Avalos# See linux/fs/jfs/jfs_superblock.h for layout; see jfs_filsys.h for flags.
2358e4d4ce0cSPeter Avalos# From: Adam Buchbinder <adam.buchbinder@gmail.com>
2359e4d4ce0cSPeter Avalos0x8000	string	JFS1
2360e4d4ce0cSPeter Avalos# Because it's text-only magic, check a binary value (version) to be sure.
2361e4d4ce0cSPeter Avalos# Should always be 2, but mkfs.jfs writes it as 1. Needs to be 2 or 1 to be
2362e4d4ce0cSPeter Avalos# mountable.
2363e4d4ce0cSPeter Avalos>&0	lelong	<3	JFS2 filesystem image
2364e4d4ce0cSPeter Avalos# Label is followed by a UUID; we have to limit string length to avoid
2365e4d4ce0cSPeter Avalos# appending the UUID in the case of a 16-byte label.
2366e4d4ce0cSPeter Avalos>>&144	regex	[\x20-\x7E]{1,16}	(label "%s")
2367e4d4ce0cSPeter Avalos>>&0	lequad	x	\b, %lld blocks
2368e4d4ce0cSPeter Avalos>>&8	lelong	x	\b, blocksize %d
2369e4d4ce0cSPeter Avalos>>&32	lelong&0x00000006	>0	(dirty)
2370e4d4ce0cSPeter Avalos>>&36	lelong	>0	(compressed)
2371e8af9738SPeter Avalos
2372e8af9738SPeter Avalos# LFS
2373e8af9738SPeter Avalos0	lelong	0x070162	LFS filesystem image
2374e8af9738SPeter Avalos>4	lelong	1		version 1,
2375e8af9738SPeter Avalos>>8	lelong	x		\b blocks %u,
2376e8af9738SPeter Avalos>>12	lelong	x		\b blocks per segment %u,
2377e8af9738SPeter Avalos>4	lelong	2		version 2,
2378e8af9738SPeter Avalos>>8	lelong	x		\b fragments %u,
2379e8af9738SPeter Avalos>>12	lelong	x		\b bytes per segment %u,
2380e8af9738SPeter Avalos>16	lelong	x		\b disk blocks %u,
2381e8af9738SPeter Avalos>20	lelong	x		\b block size %u,
2382e8af9738SPeter Avalos>24	lelong	x		\b fragment size %u,
2383e8af9738SPeter Avalos>28	lelong	x		\b fragments per block %u,
2384e8af9738SPeter Avalos>32	lelong	x		\b start for free list %u,
2385e8af9738SPeter Avalos>36	lelong	x		\b number of free blocks %d,
2386e8af9738SPeter Avalos>40	lelong	x		\b number of files %u,
2387e8af9738SPeter Avalos>44	lelong	x		\b blocks available for writing %d,
2388e8af9738SPeter Avalos>48	lelong	x		\b inodes in cache %d,
2389614728caSSascha Wildner>52	lelong	x		\b inode file disk address %#x,
2390e8af9738SPeter Avalos>56	lelong	x		\b inode file inode number %u,
2391614728caSSascha Wildner>60	lelong	x		\b address of last segment written %#x,
2392614728caSSascha Wildner>64	lelong	x		\b address of next segment to write %#x,
2393614728caSSascha Wildner>68	lelong	x		\b address of current segment written %#x
2394e8af9738SPeter Avalos
2395e8af9738SPeter Avalos0	string	td\000		floppy image data (TeleDisk, compressed)
2396e8af9738SPeter Avalos0	string	TD\000		floppy image data (TeleDisk)
2397e8af9738SPeter Avalos
2398e8af9738SPeter Avalos0	string	CQ\024		floppy image data (CopyQM,
2399e8af9738SPeter Avalos>16	leshort	x		%d sectors,
2400e8af9738SPeter Avalos>18	leshort	x		%d heads.)
2401e8af9738SPeter Avalos
2402e8af9738SPeter Avalos0	string	ACT\020Apricot\020disk\020image\032\004	floppy image data (ApriDisk)
2403e8af9738SPeter Avalos
2404*3b9cdfa3SAntonio Huete Jimenez# URL:		http://fileformats.archiveteam.org/wiki/LoadDskF/SaveDskF
2405*3b9cdfa3SAntonio Huete Jimenez# Update:	Joerg Jenderek
2406*3b9cdfa3SAntonio Huete Jimenez# Note:		called "IBM SKF disk image" by TrID
2407*3b9cdfa3SAntonio Huete Jimenez#		verfied by 7-Zip `7z l -tFAT -slt *.dsk` and
2408*3b9cdfa3SAntonio Huete Jimenez#		`deark -l -m loaddskf  06200D19.DSK`
2409*3b9cdfa3SAntonio Huete Jimenez# Reference:	http://mark0.net/download/triddefs_xml.7z/defs/d/dsk-skf-old.trid.xml
2410*3b9cdfa3SAntonio Huete Jimenez0	beshort	0xAA58
2411*3b9cdfa3SAntonio Huete Jimenez>0	use		SaveDskF
2412*3b9cdfa3SAntonio Huete Jimenez# Reference:	http://mark0.net/download/triddefs_xml.7z/defs/d/dsk-skf.trid.xml
2413*3b9cdfa3SAntonio Huete Jimenez0	beshort	0xAA59
2414*3b9cdfa3SAntonio Huete Jimenez>0	use		SaveDskF
2415*3b9cdfa3SAntonio Huete Jimenez# Reference:	http://mark0.net/download/triddefs_xml.7z/defs/d/dsk-skf-comp.trid.xml
2416*3b9cdfa3SAntonio Huete Jimenez0	beshort	0xAA5A
2417*3b9cdfa3SAntonio Huete Jimenez# skip foo by additional check for unused upper byte of media type in SaveDskF header
2418*3b9cdfa3SAntonio Huete Jimenez#>3	ubyte		=0
2419*3b9cdfa3SAntonio Huete Jimenez# skip bar by additional check for valid "low" number of heads in SaveDskF header
2420*3b9cdfa3SAntonio Huete Jimenez#>>26	uleshort	<3
2421*3b9cdfa3SAntonio Huete Jimenez# skip foo by additional check for unused double word field in SaveDskF header
2422*3b9cdfa3SAntonio Huete Jimenez#>>>30	long		=0
2423*3b9cdfa3SAntonio Huete Jimenez#>>>>0	use		SaveDskF
2424*3b9cdfa3SAntonio Huete Jimenez>0	use		SaveDskF
2425*3b9cdfa3SAntonio Huete Jimenez# display information about IBM SaveDskF floppy disk images
2426*3b9cdfa3SAntonio Huete Jimenez0	name			SaveDskF
2427*3b9cdfa3SAntonio Huete Jimenez# SaveDskF magic
2428*3b9cdfa3SAntonio Huete Jimenez>0	beshort	x		floppy image data (IBM SaveDskF
2429*3b9cdfa3SAntonio Huete Jimenez#!:mime	application/octet-stream
2430*3b9cdfa3SAntonio Huete Jimenez!:mime	application/x-ibm-dsk
2431*3b9cdfa3SAntonio Huete Jimenez!:ext	dsk
2432*3b9cdfa3SAntonio Huete Jimenez# also suffix with digit (1dk .2dk ...); NO example FOUND!
2433*3b9cdfa3SAntonio Huete Jimenez#!:ext	dsk/1dk/2dk
2434*3b9cdfa3SAntonio Huete Jimenez>1	ubyte		=0x58	\b, old)
2435*3b9cdfa3SAntonio Huete Jimenez>1	ubyte		=0x59	\b)
2436*3b9cdfa3SAntonio Huete Jimenez>1	ubyte		=0x5A	\b, compressed)
2437*3b9cdfa3SAntonio Huete Jimenez# media type; the first byte of the FAT like: 0xF0 (usual floppy) 0xF9 0xFE
2438*3b9cdfa3SAntonio Huete Jimenez# https://en.wikipedia.org/wiki/Design_of_the_FAT_file_system
2439*3b9cdfa3SAntonio Huete Jimenez>2	ubyte		!0xF0	\b, Media descriptor %#x
2440*3b9cdfa3SAntonio Huete Jimenez# upper byte of media type is not used; so this seems to be nil
2441*3b9cdfa3SAntonio Huete Jimenez>3	ubyte		!0	\b, upper byte of media type %#x
2442*3b9cdfa3SAntonio Huete Jimenez# sector size in bytes as in the BIOS parameter block like: 512 ; SAVEDSKF.EXE with other sizes produce garbage images
2443*3b9cdfa3SAntonio Huete Jimenez>4	uleshort	!512	\b, Bytes/sector %u
2444*3b9cdfa3SAntonio Huete Jimenez# cluster mask; number of sectors per cluster, minus 1
2445*3b9cdfa3SAntonio Huete Jimenez>6	uleshort+1	>1	\b, sectors/cluster %u
2446*3b9cdfa3SAntonio Huete Jimenez#>6	uleshort+1	x	\b, sectors/cluster %u
2447*3b9cdfa3SAntonio Huete Jimenez# cluster shift; log2(cluster size / sector size) like: 0~1=ClusterSize/SectorSize
2448*3b9cdfa3SAntonio Huete Jimenez>7	ubyte		>0	\b, cluster shift %u
2449*3b9cdfa3SAntonio Huete Jimenez#>7	ubyte		x	\b, cluster shift %u
2450*3b9cdfa3SAntonio Huete Jimenez# reserved sectors; as in the BIOS parameter block like: 1 256 (2M256R-K.DSK)
2451*3b9cdfa3SAntonio Huete Jimenez>8	uleshort	>1	\b, reserved sectors %u
2452*3b9cdfa3SAntonio Huete Jimenez#>8	uleshort	x	\b, reserved sectors %u
2453*3b9cdfa3SAntonio Huete Jimenez# FAT copies; as in the BIOS parameter block like: 2 (usual) 1 (2-NK.DSK)
2454*3b9cdfa3SAntonio Huete Jimenez>10	ubyte		!2	\b, FAT
2455*3b9cdfa3SAntonio Huete Jimenez# plural s
2456*3b9cdfa3SAntonio Huete Jimenez>>10	ubyte		>1	\bs
2457*3b9cdfa3SAntonio Huete Jimenez>>10	ubyte		x	%u
2458*3b9cdfa3SAntonio Huete Jimenez# root directory entries; as in the BIOS parameter block like: 224 (usual) 64 (H1-NK.DSK) 4096 (2-NK.DSK)
2459*3b9cdfa3SAntonio Huete Jimenez>11	uleshort	!224	\b, root entries %u
2460*3b9cdfa3SAntonio Huete Jimenez# sector number of first cluster (count sectors used by boot sector, FATs and root directory) like: 7 10 29 33 288
2461*3b9cdfa3SAntonio Huete Jimenez>13	uleshort	!33	\b, 1st cluster at sector %u
2462*3b9cdfa3SAntonio Huete Jimenez# number of clusters in image; empty clusters at the end are not saved and counted like: 2372 2848
2463*3b9cdfa3SAntonio Huete Jimenez>15	uleshort	x	\b, %u clusters
2464*3b9cdfa3SAntonio Huete Jimenez# sectors/FAT; as in the BIOS parameter block like: 1 (H1-NK.DSK) 7 9
2465*3b9cdfa3SAntonio Huete Jimenez>17	ubyte		!9	\b, sectors/FAT %u
2466*3b9cdfa3SAntonio Huete Jimenez# sector number of root directory (ie, count of sectors used by boot sector and FATs) like: 3 (H1-NK.DSK) 9 10 15 19 274 (2M256R-K.DSK)
2467*3b9cdfa3SAntonio Huete Jimenez>18	uleshort	!19	\b, root directory at sector %u
2468*3b9cdfa3SAntonio Huete Jimenez# checksum; sum of all bytes in the file
2469*3b9cdfa3SAntonio Huete Jimenez>20	ulelong		x	\b, checksum %#8.8x
2470*3b9cdfa3SAntonio Huete Jimenez# cylinders; number of cylinders like: 40 80
2471*3b9cdfa3SAntonio Huete Jimenez>24 	uleshort	!80	\b, %u cylinders
2472*3b9cdfa3SAntonio Huete Jimenez#>24 	uleshort	x	\b, %u cylinders
2473*3b9cdfa3SAntonio Huete Jimenez# heads; number of heads as in the BIOS parameter block like: 1 (H1-NK.DSK) 2
2474*3b9cdfa3SAntonio Huete Jimenez>26	uleshort	!2	\b, heads %u
2475*3b9cdfa3SAntonio Huete Jimenez#>26	uleshort	x	\b, heads %u
2476*3b9cdfa3SAntonio Huete Jimenez# sectors/track; number of sectors per track as in the BIOS parameter block like: 8 15 18 36
2477*3b9cdfa3SAntonio Huete Jimenez>28	uleshort	!18	\b, sectors/track %u
2478*3b9cdfa3SAntonio Huete Jimenez#>28	uleshort	x	\b, sectors/track %u
2479*3b9cdfa3SAntonio Huete Jimenez# unused double word field seems to be always like: 0
2480*3b9cdfa3SAntonio Huete Jimenez>30	ulelong		!0	\b, at 0x1E %#x
2481*3b9cdfa3SAntonio Huete Jimenez# number of sectors in images like: 1017 2786 2880
2482*3b9cdfa3SAntonio Huete Jimenez>34 	uleshort	x	\b, sectors %u
2483*3b9cdfa3SAntonio Huete Jimenez# if string is "printable" it can be a real comment
2484*3b9cdfa3SAntonio Huete Jimenez>(36.s)	ubyte		!0x00
2485*3b9cdfa3SAntonio Huete Jimenez# if 1st sector is far enough away (> 0x29) then there is space for comment part
2486*3b9cdfa3SAntonio Huete Jimenez>>38	uleshort	>41
2487*3b9cdfa3SAntonio Huete Jimenez# offset to comment string like: 28h=40
2488*3b9cdfa3SAntonio Huete Jimenez>>>36	uleshort	x	\b, at %#x
2489*3b9cdfa3SAntonio Huete Jimenez# comment string terminated with \r\n\0
2490*3b9cdfa3SAntonio Huete Jimenez>>>(36.s)	string	x	"%s"
2491*3b9cdfa3SAntonio Huete Jimenez# offset to the first sector like: 0 (If this is 0, assume it is 0x200) 29h=41 (DISPLAY3.DSK) 31h 43h 45h 46h 48h 50h 200h=512
2492*3b9cdfa3SAntonio Huete Jimenez>38	uleshort	!0	\b, 1st sector at %#x
2493*3b9cdfa3SAntonio Huete Jimenez# FOR DEBUGGING!
2494*3b9cdfa3SAntonio Huete Jimenez#>(38.s)	ubelong		x	SECTOR CONTENT %x
2495*3b9cdfa3SAntonio Huete Jimenez# not compressed floppy image implies readable DOS boot sector inside image
2496*3b9cdfa3SAntonio Huete Jimenez>>1		ubyte	!0x5A
2497*3b9cdfa3SAntonio Huete Jimenez# when not compressed it is readable as DOS boot sector via ./filesystems
2498*3b9cdfa3SAntonio Huete Jimenez#>>>(38.s)	indirect x	\b; contains
2499*3b9cdfa3SAntonio Huete Jimenez>38	uleshort	=0	\b, 1st sector at 0x200 (0)
2500*3b9cdfa3SAntonio Huete Jimenez# maybe standard DOS boot sector; NO example FOUND HERE!
2501*3b9cdfa3SAntonio Huete Jimenez#>>0x200	indirect	x	\b; contains
2502e8af9738SPeter Avalos
2503e8af9738SPeter Avalos0	string	\074CPM_Disk\076	disk image data (YAZE)
2504e8af9738SPeter Avalos
2505*3b9cdfa3SAntonio Huete Jimenez# From: 	Joerg Jenderek
2506*3b9cdfa3SAntonio Huete Jimenez# URL:		https://en.wikipedia.org/wiki/Central_Point_Software#cite_note-6
2507*3b9cdfa3SAntonio Huete Jimenez# Reference:	https://www.robcraig.com/download/transcopy-5-x-file-format
2508*3b9cdfa3SAntonio Huete Jimenez#		https://www.robcraig.com/download/transcopy-file-format-by-gene-thompson
2509*3b9cdfa3SAntonio Huete Jimenez#		http://mark0.net/download/triddefs_xml.7z/defs/t/tc-transcopy.trid.xml
2510*3b9cdfa3SAntonio Huete Jimenez# TransCopy signature
2511*3b9cdfa3SAntonio Huete Jimenez0		beshort		0x5AA5
2512*3b9cdfa3SAntonio Huete Jimenez# skip Intel serial flash ROM with invalid 0 disk sides handled by ./intel
2513*3b9cdfa3SAntonio Huete Jimenez>0x103		ubyte		!0
2514*3b9cdfa3SAntonio Huete Jimenez# skip Intel serial flash ROM with unlikely "high" start cylinder 100 handled by ./intel
2515*3b9cdfa3SAntonio Huete Jimenez#>>0x101		ubyte		<100		VALID_START_CYLINDER
2516*3b9cdfa3SAntonio Huete Jimenez# skip Intel serial flash ROM with unlikely description handled by ./intel
2517*3b9cdfa3SAntonio Huete Jimenez#>>>2		beshort		!0xF00f		VALID_DESCRIPTION
2518*3b9cdfa3SAntonio Huete Jimenez# skip Intel serial flash ROM with invalid disk types 89h 88h handled by ./intel
2519*3b9cdfa3SAntonio Huete Jimenez#>>>>0x100	byte		!0x89		VALID_DISK_TYPE
2520*3b9cdfa3SAntonio Huete Jimenez>>0	use	tc-floppy
2521*3b9cdfa3SAntonio Huete Jimenez#	display information of Central Point Software (CPS) Option Board TransCopy floppy image
2522*3b9cdfa3SAntonio Huete Jimenez0	name		tc-floppy
2523*3b9cdfa3SAntonio Huete Jimenez>0		beshort		x		TransCopy disk image
2524*3b9cdfa3SAntonio Huete Jimenez#!:mime	application/octet-stream
2525*3b9cdfa3SAntonio Huete Jimenez!:mime	application/x-floppy-image-tc
2526*3b9cdfa3SAntonio Huete Jimenez# like: disk04.tc VOCALC2.TC WIZ5_A.tc WIZ2_720.IMG
2527*3b9cdfa3SAntonio Huete Jimenez!:ext	tc/img
2528*3b9cdfa3SAntonio Huete Jimenez# 1st description (optional 0-terminated maximal 32) like:
2529*3b9cdfa3SAntonio Huete Jimenez# "Project Workbench 2.20" "Visi On Calc" "Wizardry V Disk 1 of 3"
2530*3b9cdfa3SAntonio Huete Jimenez>2		string		>\0		%.32s
2531*3b9cdfa3SAntonio Huete Jimenez# 2nd desc. (optional 0-terminated maximal 32) like:
2532*3b9cdfa3SAntonio Huete Jimenez# "(1988)." "Advanced - Utility" 'Program Disk 2"
2533*3b9cdfa3SAntonio Huete Jimenez>0x22		string		>\0		"%.32s"
2534*3b9cdfa3SAntonio Huete Jimenez# Looks like ascii (like MESSAGES) formatted with attribute bytes (190)?
2535*3b9cdfa3SAntonio Huete Jimenez# not needed for disk copy
2536*3b9cdfa3SAntonio Huete Jimenez#>>0x42		string		x		'%.190s'
2537*3b9cdfa3SAntonio Huete Jimenez#>>0x88		lestring16	x		"%.8s"
2538*3b9cdfa3SAntonio Huete Jimenez# disktype: 2~MFM High Density 3~MFM Double Density 4~Apple II GCR 5~FM Single Density
2539*3b9cdfa3SAntonio Huete Jimenez# 6~Commodore GCR 7~MFM Double Density 8~Commodore Amiga Ch~Atari FM FFh~Unknown
2540*3b9cdfa3SAntonio Huete Jimenez>0x100		ubyte		!0xFF		\b, disk type %u
2541*3b9cdfa3SAntonio Huete Jimenez# StartingCylinder like: 0
2542*3b9cdfa3SAntonio Huete Jimenez>0x101		ubyte		x		\b, cylinder
2543*3b9cdfa3SAntonio Huete Jimenez>0x101		ubyte		!0		start=%u
2544*3b9cdfa3SAntonio Huete Jimenez# EndingCylinder like: 40 (often) 41 79
2545*3b9cdfa3SAntonio Huete Jimenez>0x102		ubyte		x		end=%u
2546*3b9cdfa3SAntonio Huete Jimenez# NumberOfSides like: 2
2547*3b9cdfa3SAntonio Huete Jimenez>0x103		ubyte		!2		\b, %u sides
2548*3b9cdfa3SAntonio Huete Jimenez# TrackIncrement like: 1
2549*3b9cdfa3SAntonio Huete Jimenez>0x104		ubyte		!1		\b, track increment %u
2550*3b9cdfa3SAntonio Huete Jimenez# TrackPosTbl Track skew
2551*3b9cdfa3SAntonio Huete Jimenez#>0x105		ubequad		x		\b, Track skew %#16.16llx
2552*3b9cdfa3SAntonio Huete Jimenez# TrackOffsTbl
2553*3b9cdfa3SAntonio Huete Jimenez#>0x305		ubequad		x		\b, TrackOffsTbl %#16.16llx
2554*3b9cdfa3SAntonio Huete Jimenez# TrackLngthTbl
2555*3b9cdfa3SAntonio Huete Jimenez#>0x505		ubequad		x		\b, TrackLngthTbl %#16.16llx
2556*3b9cdfa3SAntonio Huete Jimenez# TrackTypeTable
2557*3b9cdfa3SAntonio Huete Jimenez#>0x705		ubequad		x		\b, TrackTypeTable %#16.16llx
2558*3b9cdfa3SAntonio Huete Jimenez# Address mark timing
2559*3b9cdfa3SAntonio Huete Jimenez#>0x905		ubequad		x		\b, Address mark timing %#16.16llx
2560*3b9cdfa3SAntonio Huete Jimenez# Track fragment
2561*3b9cdfa3SAntonio Huete Jimenez#>0x2905 ubequad			!0		\b, Track fragment %#16.16llx
2562*3b9cdfa3SAntonio Huete Jimenez# Track data
2563*3b9cdfa3SAntonio Huete Jimenez#>0x4000		ubequad		!0		\b, Track data %#16.16llx
2564*3b9cdfa3SAntonio Huete Jimenez
2565e8af9738SPeter Avalos# ReFS
2566e8af9738SPeter Avalos# Richard W.M. Jones <rjones@redhat.com>
2567e8af9738SPeter Avalos0	string	\0\0\0ReFS\0	ReFS filesystem image
2568e8af9738SPeter Avalos
2569e8af9738SPeter Avalos# EFW encase image file format:
2570e8af9738SPeter Avalos# Gregoire Passault
2571e8af9738SPeter Avalos# http://www.forensicswiki.org/wiki/Encase_image_file_format
2572e8af9738SPeter Avalos0	string	EVF\x09\x0d\x0a\xff\x00	EWF/Expert Witness/EnCase image file format
2573e8af9738SPeter Avalos
2574e8af9738SPeter Avalos# UBIfs
2575e8af9738SPeter Avalos# Linux kernel sources: fs/ubifs/ubifs-media.h
257682c5fa3eSPeter Avalos0	lelong	0x06101831
257782c5fa3eSPeter Avalos>0x16	leshort	0		UBIfs image
2578e8af9738SPeter Avalos>0x08	lequad	x		\b, sequence number %llu
2579e8af9738SPeter Avalos>0x10	leshort x		\b, length %u
2580614728caSSascha Wildner>0x04	lelong	x		\b, CRC %#08x
2581e8af9738SPeter Avalos
258282c5fa3eSPeter Avalos0	lelong	0x23494255
258382c5fa3eSPeter Avalos>0x04	leshort	<2
2584e8af9738SPeter Avalos>0x05	string	\0\0\0
2585e8af9738SPeter Avalos>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
258682c5fa3eSPeter Avalos>0x04	leshort	x		UBI image, version %u
258782c5fa3eSPeter Avalos
258882c5fa3eSPeter Avalos# NEC PC-88 2D disk image
258982c5fa3eSPeter Avalos# From Fabio R. Schmidlin <sd-snatcher@users.sourceforge.net>
259082c5fa3eSPeter Avalos0x20		ulelong&0xFFFFFEFF	0x2A0
259182c5fa3eSPeter Avalos>0x10		string			\0\0\0\0\0\0\0\0\0\0
259282c5fa3eSPeter Avalos>>0x280		string			\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0
259382c5fa3eSPeter Avalos>>>0x1A		ubyte&0xEF		0
259482c5fa3eSPeter Avalos>>>>0x1B	ubyte&0x8F		0
259582c5fa3eSPeter Avalos>>>>>0x1B	ubyte&70		<0x40
259682c5fa3eSPeter Avalos>>>>>>0x1C	ulelong			>0x21
259782c5fa3eSPeter Avalos>>>>>>>0	regex	[[:print:]]*	NEC PC-88 disk image, name=%s
259882c5fa3eSPeter Avalos>>>>>>>>0x1B	ubyte	0		\b, media=2D
259982c5fa3eSPeter Avalos>>>>>>>>0x1B	ubyte	0x10		\b, media=2DD
260082c5fa3eSPeter Avalos>>>>>>>>0x1B	ubyte	0x20		\b, media=2HD
260182c5fa3eSPeter Avalos>>>>>>>>0x1B	ubyte	0x30		\b, media=1D
260282c5fa3eSPeter Avalos>>>>>>>>0x1B	ubyte	0x40		\b, media=1DD
260382c5fa3eSPeter Avalos>>>>>>>>0x1A	ubyte	0x10		\b, write-protected
2604c30bd091SSascha Wildner
2605c30bd091SSascha Wildner# HDD Raw Copy Tool disk image, file extension: .imgc
2606c30bd091SSascha Wildner# From Benjamin Vanheuverzwijn <bvanheu@gmail.com>
2607c30bd091SSascha Wildner0	pstring	HDD\ Raw\ Copy\ Tool	%s
2608c30bd091SSascha Wildner>0x100	pstring	x			%s
2609c30bd091SSascha Wildner>0x200	pstring	x			- HD model: %s
2610c30bd091SSascha Wildner#>0x300	pstring	x			unknown %s
2611c30bd091SSascha Wildner>0x400	pstring	x			serial: %s
2612c30bd091SSascha Wildner#>0x500	pstring	x			unknown: %s
2613c30bd091SSascha Wildner!:ext	imgc
2614970935fdSSascha Wildner
2615970935fdSSascha Wildner# http://martin.hinner.info/fs/bfs/bfs-structure.html
2616970935fdSSascha Wildner0	lelong	0x1BADFACE		SCO UnixWare BFS filesystem
2617970935fdSSascha Wildner
2618970935fdSSascha Wildner# https://arstechnica.com/information-technology/2018/07/the-beos-filesystem/
2619970935fdSSascha Wildner32	lelong	0x42465331		BE/OS BFS1 filesystem
2620970935fdSSascha Wildner>36	lelong	x			\b, byte order %d
2621970935fdSSascha Wildner>40	lelong	x			\b, block size %d
2622970935fdSSascha Wildner>44	lelong	x			\b, block shift %d
2623970935fdSSascha Wildner>48	lequad	x			\b, total blocks %lld
2624970935fdSSascha Wildner>56	lequad	x			\b, used blocks %lld
2625970935fdSSascha Wildner
2626970935fdSSascha Wildner
2627970935fdSSascha Wildner0	name next
2628970935fdSSascha Wildner>0	lelong	x			\b, size %d
2629970935fdSSascha Wildner>4	string	x			\b, label %s
2630970935fdSSascha Wildner
2631970935fdSSascha Wildner# https://opensource.apple.com/source/IOStorageFamily/IOStorageFamily-44.3\
2632970935fdSSascha Wildner# /IONeXTPartitionScheme.h
2633970935fdSSascha Wildner0	string	NeXT			NeXT version 1 disklabel
2634970935fdSSascha Wildner>12	use next
2635970935fdSSascha Wildner0	string	dlV1			NeXT version 2 disklabel
2636970935fdSSascha Wildner>12	use next
2637970935fdSSascha Wildner0	string	dlV2			NeXT version 3 disklabel
2638970935fdSSascha Wildner>12	use next
2639614728caSSascha Wildner
2640614728caSSascha Wildner# bcachefs
2641614728caSSascha Wildner# From: Thomas Wei�schuh <thomas@t-8ch.de>
2642614728caSSascha Wildner
2643614728caSSascha Wildner0	name	bcachefs-uuid
2644614728caSSascha Wildner>0	ubelong		x	\b%08x
2645614728caSSascha Wildner>4	ubeshort	x	\b-%04x
2646614728caSSascha Wildner>6	ubeshort	x	\b-%04x
2647614728caSSascha Wildner>8	ubeshort	x	\b-%04x
2648614728caSSascha Wildner>10	ubelong		x	\b-%08x
2649614728caSSascha Wildner>14	ubeshort	x	\b%04x
2650614728caSSascha Wildner
2651614728caSSascha Wildner0x1018		string		\xc6\x85\x73\xf6\x4e\x1a\x45\xca\x82\x65\xf5\x7f\x48\xba\x6d\x81	bcachefs
2652614728caSSascha Wildner>0x1068		lequad		8	\b, UUID=
2653614728caSSascha Wildner>>0x1038	use		bcachefs-uuid
2654614728caSSascha Wildner>>0x1048	string		>0	\b, label "%.32s"
2655614728caSSascha Wildner>>0x1010	uleshort	x	\b, version %u
2656614728caSSascha Wildner>>0x1012	uleshort	x	\b, min version %u
2657614728caSSascha Wildner>>0x107a	byte		x	\b, device %d
2658614728caSSascha Wildner# assumes the first field is the members field
2659614728caSSascha Wildner>>0x12f4	ulelong		0x01	\b/UUID=
2660614728caSSascha Wildner>>>0x12f0	default		x
2661614728caSSascha Wildner>>>&(0x107a.b*56)	use	bcachefs-uuid
2662614728caSSascha Wildner>>0x107b	byte		x	\b, %d devices
2663614728caSSascha Wildner>>0x1090	byte		^0x02	\b (unclean)
2664*3b9cdfa3SAntonio Huete Jimenez
2665*3b9cdfa3SAntonio Huete Jimenez# EROFS
2666*3b9cdfa3SAntonio Huete Jimenez# https://kernel.googlesource.com/pub/scm/linux/kernel/git/xiang/erofs-utils/\
2667*3b9cdfa3SAntonio Huete Jimenez# +/refs/heads/experimental/include/erofs_fs.h#12
2668*3b9cdfa3SAntonio Huete Jimenez1024		lelong		0xE0F5E1E2	EROFS filesystem
2669*3b9cdfa3SAntonio Huete Jimenez#>1028		lelong		x		\b, checksum=%#x
2670*3b9cdfa3SAntonio Huete Jimenez>1032		lelong		>0		\b, compat:
2671*3b9cdfa3SAntonio Huete Jimenez>>1032		lelong		&1		SB_CHKSUM
2672*3b9cdfa3SAntonio Huete Jimenez>>1032		lelong		&2		MTIME
2673*3b9cdfa3SAntonio Huete Jimenez>1036		byte		x		\b, blocksize=%u
2674*3b9cdfa3SAntonio Huete Jimenez>1037		byte		x		\b, exslots=%u
2675*3b9cdfa3SAntonio Huete Jimenez#>1038		leshort		x		\b, root_nid=%d
2676*3b9cdfa3SAntonio Huete Jimenez#>1040		lequad		x		\b, inodes=%ld
2677*3b9cdfa3SAntonio Huete Jimenez#>1048		leldate		x		\b, build_time=%s
2678*3b9cdfa3SAntonio Huete Jimenez#>1056		lelong		x		\b.%d
2679*3b9cdfa3SAntonio Huete Jimenez#>1060		lelong		x		\b, blocks=%d
2680*3b9cdfa3SAntonio Huete Jimenez#>1064		lelong		x		\b, metadata@%#x
2681*3b9cdfa3SAntonio Huete Jimenez#>1068		lelong		x		\b, xattr@%#x
2682*3b9cdfa3SAntonio Huete Jimenez>1072		guid		x		\b, uuid=%s
2683*3b9cdfa3SAntonio Huete Jimenez>1088		string		>0		\b, name=%s
2684*3b9cdfa3SAntonio Huete Jimenez>1104		lelong		>0		\b, incompat:
2685*3b9cdfa3SAntonio Huete Jimenez>>1104		lelong		&1		LZ4_0PADDING
2686*3b9cdfa3SAntonio Huete Jimenez>>1104		lelong		&2		BIG_PCLUSTER
2687*3b9cdfa3SAntonio Huete Jimenez>>1104		lelong		&4		CHUNKED_FILE
2688*3b9cdfa3SAntonio Huete Jimenez>>1104		lelong		&8		DEVICE_TABLE
2689*3b9cdfa3SAntonio Huete Jimenez>>1104		lelong		&16		ZTAILPACKING
2690