xref: /freebsd/contrib/file/magic/Magdir/amigaos (revision 744bfb213144c63cbaf38d91a1c4f7aebb9b9fbc)
1
2#------------------------------------------------------------------------------
3# $File: amigaos,v 1.20 2021/09/20 00:42:19 christos Exp $
4# amigaos:  file(1) magic for AmigaOS binary formats:
5
6#
7# From ignatios@cs.uni-bonn.de (Ignatios Souvatzis)
8#
90	belong		0x000003fa	AmigaOS shared library
100	belong		0x000003f3	AmigaOS loadseg()ble executable/binary
110	belong		0x000003e7	AmigaOS object/library data
12#
130	beshort		0xe310		Amiga Workbench
14>2	beshort		1
15>>48	byte		1		disk icon
16>>48	byte		2		drawer icon
17>>48	byte		3		tool icon
18>>48	byte		4		project icon
19>>48	byte		5		garbage icon
20>>48	byte		6		device icon
21>>48	byte		7		kickstart icon
22>>48	byte		8		workbench application icon
23>2	beshort		>1		icon, vers. %d
24#
25# various sound formats from the Amiga
26# G=F6tz Waschk <waschk@informatik.uni-rostock.de>
27#
280	string		FC14		Future Composer 1.4 Module sound file
290	string		SMOD		Future Composer 1.3 Module sound file
300	string		AON4artofnoise	Art Of Noise Module sound file
311	string		MUGICIAN/SOFTEYES Mugician Module sound file
3258	string		SIDMON\ II\ -\ THE	Sidmon 2.0 Module sound file
330	string		Synth4.0	Synthesis Module sound file
340	string		ARP.		The Holy Noise Module sound file
350	string		BeEp\0		JamCracker Module sound file
360	string		COSO\0		Hippel-COSO Module sound file
37# Too simple (short, pure ASCII, deep), MPi
38#26	string		V.3		Brian Postma's Soundmon Module sound file v3
39#26	string		BPSM		Brian Postma's Soundmon Module sound file v3
40#26	string		V.2		Brian Postma's Soundmon Module sound file v2
41
42# The following are from: "Stefan A. Haubenthal" <polluks@web.de>
43# Update:	Joerg Jenderek
44# URL:		http://fileformats.archiveteam.org/wiki/Amiga_bitmap_font
45# Reference:	http://mark0.net/download/triddefs_xml.7z/defs/f/font-amiga.trid.xml
46#		https://wiki.amigaos.net/wiki/Graphics_Library_and_Text
47# fch_FileID=FCH_ID=0x0f00
480	beshort		0x0f00
49# skip some AVM powerline firmware images by check for positive number of font elements
50# https://download.avm.de/fritzpowerline/fritzpowerline-1000e-t/other/fritz.os/fritz.powerline_1000ET_01_05.image
51>2	ubeshort	>0		AmigaOS bitmap font
52#!:mime	application/octet-stream
53!:mime	font/x-amiga-font
54!:ext	font
55# struct FontContents fch_FC; 1st fc_FileName [MAXFONTPATH=256]; ~ filename "/" fc_YSize
56# like: topazb/6 suits/8  Excel/9e emerald/17 Franklin/23 DIAMONDS/60.8C
57>>4	string		x		"%.256s"
58# fc_YSize ~number after slash in fc_FileName; like: 6 7 8 9 11 12 16 17 21 23 45 60
59>>260	beshort		x		\b, fc_YSize %u
60# fch_NumEntries; number of FontContents elements like:
61# 1 (often) 2 3 (IconCondensed.font tempfont.font) 4 (Franklin.font) 6 (mcoop.font)
62>>2	ubeshort	>1		\b, %u elements
63#>>2	beshort		x		\b, %u element
64# plural s
65#>>2	beshort		!1		\bs
66# like: 6 7 8 9 11 12 16 17 21 23 45 60
67#>>262	beshort		x		\b, FLAGS_STYLE
68>>2	beshort		>1		\b, 2nd
69# 2nd fc_FileName like: Franklin/36
70>>>264	string		x		"%.256s"
71>>2	beshort		>2		\b, 3rd
72# 3rd fc_FileName like: Franklin/18
73>>>524	string		x		"%.256s"
74# URL:		http://fileformats.archiveteam.org/wiki/Amiga_bitmap_font
75# Reference:	https://wiki.amigaos.net/wiki/Graphics_Library_and_Text
76#		http://mark0.net/download/triddefs_xml.7z/defs/f/font-amiga-var2.trid.xml
77# Note:		called by TrID "Amiga bitmap Font (var.2)"
78# fch_FileID=TFCH_ID=0x0f02
790	beshort		0x0f02
80# skip possible misidentified foo by check for positive number of font elements
81>2	ubeshort	>0		AmigaOS bitmap font (TFCH)
82#!:mime	application/octet-stream
83!:mime	font/x-amiga-font
84!:ext	font
85# struct TFontContents fch_TFC[]; 1st tfc_FileName [254]; ~ filename "/" fc_YSize
86# like: Abbey/45 XScript/75 XTriumvirate/45
87>>4	string		x		"%.254s"
88# tfc_TagCount; including the TAG_END tag like: 4
89>>258	ubeshort	x		\b, tfc_TagCount %u
90# tfc_YSize ~number after slash in tfc_FileName; like: 45 75
91>>260	beshort		x		\b, tfc_YSize %u
92# tfc_Style; tfc_Flags like: 8022h 8222h
93#>>262	ubeshort	x		\b, FLAGS_STYLE %#x
94# fch_NumEntries; number of FontContents elements like: 1 (abbey.font) 2 (xscript.font xtriumvirate.font)
95>>2	ubeshort	>1		\b, %u elements
96>>2	beshort		>1		\b, 2nd
97# 2nd tfc_FileName like: XScript/45 XTriumvirate/30
98>>>264	string		x		"%.254s"
990	beshort		0x0f03		AmigaOS outline font
1000	belong		0x80001001	AmigaOS outline tag
1010	string		##\ version	catalog translation
1020	string		EMOD\0		Amiga E module
1038	string		ECXM\0		ECX module
1040	string/c	@database	AmigaGuide file
105
106# Amiga disk types
107#	display information like volume name of root block on Amiga (floppy) disk
1080	name   	adf-rootblock
109# block primary type = T_HEADER (value 2)
110>0x000	ubelong		!2		\b, type %u
111# header_key; unused in rootblock (value 0)
112>0x004	ubelong		!0		\b, header_key %u
113# high_seq; unused (value 0)
114>0x008	ubelong		!0		\b, high_seq %u
115# ht_size; hash table size; 0x48 for flopies
116>0x00c	ubelong		!0x48		\b, hash table size %#x
117# bm_flag; bitmap flag, -1 means VALID
118>0x138	belong		!-1		\b, bitmap flag %#x
119# bm_ext; first bitmap extension block (Hard disks only)
120>0x1A0	ubelong		!0		\b, bitmap extension block %#x
121# name_len; volume name length; diskname[30]; volume name
122>0x1B0	pstring		>\0		\b, "%s"
123# first directory cache block for FFS; otherwise 0
124>0x1F8	ubelong		!0		\b, directory cache block %#x
125# block secondary type = ST_ROOT (value 1)
126>0x1FC	ubelong		!1		\b, sec_type %#x
127#
1280	string		RDSK		Rigid Disk Block
129>160	string		x		on %.24s
130# URL:		http://fileformats.archiveteam.org/wiki/ADF_(Amiga)
131#		https://en.wikipedia.org/wiki/Amiga_Fast_File_System
132# Reference:	http://lclevy.free.fr/adflib/adf_info.html
133# Update:	Joerg Jenderek
134# Note:		created by ADFOpus.exe
135# 		and verified by `unadf -l TURBO_SILVER_SV.ADF`
1360	string		DOS
137# skip DOS Client Message Files like IPXODI.MSG DOSRQSTR.MSG
138>3	ubyte		<8		Amiga
139# https://reposcope.com/mimetype/application/x-amiga-disk-format
140!:mime	application/x-amiga-disk-format
141!:ext	adf
142>>3	ubyte		0		DOS disk
143>>3	ubyte		1		FFS disk
144>>3	ubyte		2		Inter DOS disk
145>>3	ubyte		3		Inter FFS disk
146# For Fastdir mode the international mode is also enabled,
147>>3	ubyte		4		Fastdir DOS disk
148>>3	ubyte		5		Fastdir FFS dis
149# called by TrID "Amiga Disk image File (OFS+INTL+DIRC)"
150>>3	ubyte		6		Inter Fastdir DOS disk
151# called by TrID "Amiga Disk image File (FFS+INTL+DIRC)"
152>>3	ubyte		7		Inter Fastdir FFS disk
153# but according to Wikipedia variants with long name support
154#>>3	ubyte		6		long name DOS disk
155#>>3	ubyte		7		long name FFS disk
156# DOES NOT only work! Partly for file size  ~< FILE_BYTES_MAX=1 MiB defined in ../../src/file.h
157#>>-0		offset	x		\b, %lld bytes
158# Correct file size, but next lines are NOT executed
159#>>-0		offset	901120		(DD 880 KiB floppy)
160# 880 KiB Double Density floppy disk by characteristic hash table size 0x48 and T_HEADER=2
161>>0x6E00C	ubelong	0x48
162>>>0x6E000	ubelong	2		(DD 880 KiB)
163# 1760 KiB High Density floppy disk (1802240 bytes) by characteristic hash table size 0x48
164>>0xDC00C	ubelong	0x48
165>>>0xDC000	ubelong	2		(HD 1760 KiB)
166# Chksum; special block checksum like: 0 0x44ccf4c0 0x51f32cac 0xe33d0e7d ...
167#>>4	ubelong		x		\b, CRC %#x
168# Rootblock: 0 880 (often for DD and HD) 1146049280 (IMAGINE_1_0_DISK_01.ADF TURBO_SILVER_SV.ADF)
169>>8	ubelong		>0		\b, probably root block %d
170# bootblock code
171>>12	quad		!0		\b, bootable
172# assembler instructions: lea exp(pc),a1; moveq 25h,d0; jsr -552(a6)
173>>>12	ubequad	=0x43fa003e70254eae	AmigaDOS 3.0
174>>>12	default	x
175>>>>12	ubequad	!0x43fa003e70254eae	%#llx..
176# 880 KiB Double Density floppy disk (901120 bytes)
177>>0x6E00C	ubelong	0x48
178>>>0x6E000	ubelong	2
179>>>>0x6E000	use			adf-rootblock
180# 1760 KiB High Density floppy disk (1802240 bytes)
181>>0xDC00C	ubelong	0x48
182>>>0xDC000	ubelong	2
183>>>>0xDC000	use			adf-rootblock
184# 1 MiB hard disc by test for T_HEADER=2 and header_key=0=high_seq
185>>0x80000	ubelong	2
186>>>0x80004	quad	0
187>>>>0x80000	use			adf-rootblock
188# 2 MiB hard disc; only works if in ../../src/file.h FILE_BYTES_MAX is raised to 2 MiB
189#>>0x100000	ubelong	x		2 MiB TEST
190#>>0x100000	ubelong	2		\b, 2 MiB hard disc rootblock
191#>>>0x100000	use			adf-rootblock
1920	string		KICK		Kickstart disk
193
194# From: Alex Beregszaszi <alex@fsn.hu>
1950	string		LZX		LZX compressed archive (Amiga)
196
197# From: Przemek Kramarczyk <pkramarczyk@gmail.com>
1980	string 		.KEY		AmigaDOS script
1990	string 		.key		AmigaDOS script
200
201# AMOS Basic file formats
202# https://www.exotica.org.uk/wiki/AMOS_file_formats
2030	string		AMOS\040Basic\040 	AMOS Basic source code
204>11	byte		=0x56 			\b, tested
205>11	byte		=0x76 			\b, untested
2060 	string		AMOS\040Pro		AMOS Basic source code
207>11	byte		=0x56 			\b, tested
208>11	byte		=0x76 			\b, untested
2090	string		AmSp			AMOS Basic sprite bank
210>4	beshort		x			\b, %d sprites
2110	string		AmIc			AMOS Basic icon bank
212>4	beshort		x			\b, %d icons
2130	string		AmBk			AMOS Basic memory bank
214>4	beshort		x			\b, bank number %d
215>8	belong&0xFFFFFFF	x		\b, length %d
216>12	regex		.{8}			\b, type %s
2170	string		AmBs			AMOS Basic memory banks
218>4	beshort		x			\b, %d banks
219