xref: /dflybsd-src/contrib/file/magic/Magdir/amigaos (revision 7b80531f545c7d3c51c1660130c71d01f6bccbe0)
1f72f8299SJan Lentfer
2327e51cbSPeter Avalos#------------------------------------------------------------------------------
3*614728caSSascha Wildner# $File: amigaos,v 1.20 2021/09/20 00:42:19 christos Exp $
4327e51cbSPeter Avalos# amigaos:  file(1) magic for AmigaOS binary formats:
5327e51cbSPeter Avalos
6327e51cbSPeter Avalos#
7327e51cbSPeter Avalos# From ignatios@cs.uni-bonn.de (Ignatios Souvatzis)
8327e51cbSPeter Avalos#
9327e51cbSPeter Avalos0	belong		0x000003fa	AmigaOS shared library
10327e51cbSPeter Avalos0	belong		0x000003f3	AmigaOS loadseg()ble executable/binary
11327e51cbSPeter Avalos0	belong		0x000003e7	AmigaOS object/library data
12327e51cbSPeter Avalos#
13327e51cbSPeter Avalos0	beshort		0xe310		Amiga Workbench
14327e51cbSPeter Avalos>2	beshort		1
15327e51cbSPeter Avalos>>48	byte		1		disk icon
16327e51cbSPeter Avalos>>48	byte		2		drawer icon
17327e51cbSPeter Avalos>>48	byte		3		tool icon
18327e51cbSPeter Avalos>>48	byte		4		project icon
19327e51cbSPeter Avalos>>48	byte		5		garbage icon
20327e51cbSPeter Avalos>>48	byte		6		device icon
21327e51cbSPeter Avalos>>48	byte		7		kickstart icon
22327e51cbSPeter Avalos>>48	byte		8		workbench application icon
23327e51cbSPeter Avalos>2	beshort		>1		icon, vers. %d
24327e51cbSPeter Avalos#
25327e51cbSPeter Avalos# various sound formats from the Amiga
26327e51cbSPeter Avalos# G=F6tz Waschk <waschk@informatik.uni-rostock.de>
27327e51cbSPeter Avalos#
28327e51cbSPeter Avalos0	string		FC14		Future Composer 1.4 Module sound file
29327e51cbSPeter Avalos0	string		SMOD		Future Composer 1.3 Module sound file
30327e51cbSPeter Avalos0	string		AON4artofnoise	Art Of Noise Module sound file
31327e51cbSPeter Avalos1	string		MUGICIAN/SOFTEYES Mugician Module sound file
32327e51cbSPeter Avalos58	string		SIDMON\ II\ -\ THE	Sidmon 2.0 Module sound file
33327e51cbSPeter Avalos0	string		Synth4.0	Synthesis Module sound file
34327e51cbSPeter Avalos0	string		ARP.		The Holy Noise Module sound file
35327e51cbSPeter Avalos0	string		BeEp\0		JamCracker Module sound file
36327e51cbSPeter Avalos0	string		COSO\0		Hippel-COSO Module sound file
37327e51cbSPeter Avalos# Too simple (short, pure ASCII, deep), MPi
38327e51cbSPeter Avalos#26	string		V.3		Brian Postma's Soundmon Module sound file v3
39327e51cbSPeter Avalos#26	string		BPSM		Brian Postma's Soundmon Module sound file v3
40327e51cbSPeter Avalos#26	string		V.2		Brian Postma's Soundmon Module sound file v2
41327e51cbSPeter Avalos
42327e51cbSPeter Avalos# The following are from: "Stefan A. Haubenthal" <polluks@web.de>
43*614728caSSascha Wildner# Update:	Joerg Jenderek
44*614728caSSascha Wildner# URL:		http://fileformats.archiveteam.org/wiki/Amiga_bitmap_font
45*614728caSSascha Wildner# Reference:	http://mark0.net/download/triddefs_xml.7z/defs/f/font-amiga.trid.xml
46*614728caSSascha Wildner#		https://wiki.amigaos.net/wiki/Graphics_Library_and_Text
47*614728caSSascha Wildner# fch_FileID=FCH_ID=0x0f00
48*614728caSSascha Wildner0	beshort		0x0f00
49*614728caSSascha Wildner# skip some AVM powerline firmware images by check for positive number of font elements
50*614728caSSascha Wildner# https://download.avm.de/fritzpowerline/fritzpowerline-1000e-t/other/fritz.os/fritz.powerline_1000ET_01_05.image
51*614728caSSascha Wildner>2	ubeshort	>0		AmigaOS bitmap font
52*614728caSSascha Wildner#!:mime	application/octet-stream
53*614728caSSascha Wildner!:mime	font/x-amiga-font
54*614728caSSascha Wildner!:ext	font
55*614728caSSascha Wildner# struct FontContents fch_FC; 1st fc_FileName [MAXFONTPATH=256]; ~ filename "/" fc_YSize
56*614728caSSascha Wildner# like: topazb/6 suits/8  Excel/9e emerald/17 Franklin/23 DIAMONDS/60.8C
57*614728caSSascha Wildner>>4	string		x		"%.256s"
58*614728caSSascha Wildner# fc_YSize ~number after slash in fc_FileName; like: 6 7 8 9 11 12 16 17 21 23 45 60
59*614728caSSascha Wildner>>260	beshort		x		\b, fc_YSize %u
60*614728caSSascha Wildner# fch_NumEntries; number of FontContents elements like:
61*614728caSSascha Wildner# 1 (often) 2 3 (IconCondensed.font tempfont.font) 4 (Franklin.font) 6 (mcoop.font)
62*614728caSSascha Wildner>>2	ubeshort	>1		\b, %u elements
63*614728caSSascha Wildner#>>2	beshort		x		\b, %u element
64*614728caSSascha Wildner# plural s
65*614728caSSascha Wildner#>>2	beshort		!1		\bs
66*614728caSSascha Wildner# like: 6 7 8 9 11 12 16 17 21 23 45 60
67*614728caSSascha Wildner#>>262	beshort		x		\b, FLAGS_STYLE
68*614728caSSascha Wildner>>2	beshort		>1		\b, 2nd
69*614728caSSascha Wildner# 2nd fc_FileName like: Franklin/36
70*614728caSSascha Wildner>>>264	string		x		"%.256s"
71*614728caSSascha Wildner>>2	beshort		>2		\b, 3rd
72*614728caSSascha Wildner# 3rd fc_FileName like: Franklin/18
73*614728caSSascha Wildner>>>524	string		x		"%.256s"
74*614728caSSascha Wildner# URL:		http://fileformats.archiveteam.org/wiki/Amiga_bitmap_font
75*614728caSSascha Wildner# Reference:	https://wiki.amigaos.net/wiki/Graphics_Library_and_Text
76*614728caSSascha Wildner#		http://mark0.net/download/triddefs_xml.7z/defs/f/font-amiga-var2.trid.xml
77*614728caSSascha Wildner# Note:		called by TrID "Amiga bitmap Font (var.2)"
78*614728caSSascha Wildner# fch_FileID=TFCH_ID=0x0f02
79*614728caSSascha Wildner0	beshort		0x0f02
80*614728caSSascha Wildner# skip possible misidentified foo by check for positive number of font elements
81*614728caSSascha Wildner>2	ubeshort	>0		AmigaOS bitmap font (TFCH)
82*614728caSSascha Wildner#!:mime	application/octet-stream
83*614728caSSascha Wildner!:mime	font/x-amiga-font
84*614728caSSascha Wildner!:ext	font
85*614728caSSascha Wildner# struct TFontContents fch_TFC[]; 1st tfc_FileName [254]; ~ filename "/" fc_YSize
86*614728caSSascha Wildner# like: Abbey/45 XScript/75 XTriumvirate/45
87*614728caSSascha Wildner>>4	string		x		"%.254s"
88*614728caSSascha Wildner# tfc_TagCount; including the TAG_END tag like: 4
89*614728caSSascha Wildner>>258	ubeshort	x		\b, tfc_TagCount %u
90*614728caSSascha Wildner# tfc_YSize ~number after slash in tfc_FileName; like: 45 75
91*614728caSSascha Wildner>>260	beshort		x		\b, tfc_YSize %u
92*614728caSSascha Wildner# tfc_Style; tfc_Flags like: 8022h 8222h
93*614728caSSascha Wildner#>>262	ubeshort	x		\b, FLAGS_STYLE %#x
94*614728caSSascha Wildner# fch_NumEntries; number of FontContents elements like: 1 (abbey.font) 2 (xscript.font xtriumvirate.font)
95*614728caSSascha Wildner>>2	ubeshort	>1		\b, %u elements
96*614728caSSascha Wildner>>2	beshort		>1		\b, 2nd
97*614728caSSascha Wildner# 2nd tfc_FileName like: XScript/45 XTriumvirate/30
98*614728caSSascha Wildner>>>264	string		x		"%.254s"
99327e51cbSPeter Avalos0	beshort		0x0f03		AmigaOS outline font
100327e51cbSPeter Avalos0	belong		0x80001001	AmigaOS outline tag
101327e51cbSPeter Avalos0	string		##\ version	catalog translation
102327e51cbSPeter Avalos0	string		EMOD\0		Amiga E module
103327e51cbSPeter Avalos8	string		ECXM\0		ECX module
104327e51cbSPeter Avalos0	string/c	@database	AmigaGuide file
105327e51cbSPeter Avalos
106327e51cbSPeter Avalos# Amiga disk types
107970935fdSSascha Wildner#	display information like volume name of root block on Amiga (floppy) disk
108970935fdSSascha Wildner0	name   	adf-rootblock
109970935fdSSascha Wildner# block primary type = T_HEADER (value 2)
110970935fdSSascha Wildner>0x000	ubelong		!2		\b, type %u
111970935fdSSascha Wildner# header_key; unused in rootblock (value 0)
112970935fdSSascha Wildner>0x004	ubelong		!0		\b, header_key %u
113970935fdSSascha Wildner# high_seq; unused (value 0)
114970935fdSSascha Wildner>0x008	ubelong		!0		\b, high_seq %u
115970935fdSSascha Wildner# ht_size; hash table size; 0x48 for flopies
116*614728caSSascha Wildner>0x00c	ubelong		!0x48		\b, hash table size %#x
117970935fdSSascha Wildner# bm_flag; bitmap flag, -1 means VALID
118*614728caSSascha Wildner>0x138	belong		!-1		\b, bitmap flag %#x
119970935fdSSascha Wildner# bm_ext; first bitmap extension block (Hard disks only)
120*614728caSSascha Wildner>0x1A0	ubelong		!0		\b, bitmap extension block %#x
121970935fdSSascha Wildner# name_len; volume name length; diskname[30]; volume name
122970935fdSSascha Wildner>0x1B0	pstring		>\0		\b, "%s"
123970935fdSSascha Wildner# first directory cache block for FFS; otherwise 0
124*614728caSSascha Wildner>0x1F8	ubelong		!0		\b, directory cache block %#x
125970935fdSSascha Wildner# block secondary type = ST_ROOT (value 1)
126*614728caSSascha Wildner>0x1FC	ubelong		!1		\b, sec_type %#x
127327e51cbSPeter Avalos#
128327e51cbSPeter Avalos0	string		RDSK		Rigid Disk Block
129327e51cbSPeter Avalos>160	string		x		on %.24s
130970935fdSSascha Wildner# URL:		http://fileformats.archiveteam.org/wiki/ADF_(Amiga)
131970935fdSSascha Wildner#		https://en.wikipedia.org/wiki/Amiga_Fast_File_System
132970935fdSSascha Wildner# Reference:	http://lclevy.free.fr/adflib/adf_info.html
133970935fdSSascha Wildner# Update:	Joerg Jenderek
134970935fdSSascha Wildner# Note:		created by ADFOpus.exe
135970935fdSSascha Wildner# 		and verified by `unadf -l TURBO_SILVER_SV.ADF`
136970935fdSSascha Wildner0	string		DOS
137970935fdSSascha Wildner# skip DOS Client Message Files like IPXODI.MSG DOSRQSTR.MSG
138970935fdSSascha Wildner>3	ubyte		<8		Amiga
139970935fdSSascha Wildner# https://reposcope.com/mimetype/application/x-amiga-disk-format
140970935fdSSascha Wildner!:mime	application/x-amiga-disk-format
141970935fdSSascha Wildner!:ext	adf
142970935fdSSascha Wildner>>3	ubyte		0		DOS disk
143970935fdSSascha Wildner>>3	ubyte		1		FFS disk
144970935fdSSascha Wildner>>3	ubyte		2		Inter DOS disk
145970935fdSSascha Wildner>>3	ubyte		3		Inter FFS disk
146970935fdSSascha Wildner# For Fastdir mode the international mode is also enabled,
147970935fdSSascha Wildner>>3	ubyte		4		Fastdir DOS disk
148970935fdSSascha Wildner>>3	ubyte		5		Fastdir FFS dis
149970935fdSSascha Wildner# called by TrID "Amiga Disk image File (OFS+INTL+DIRC)"
150970935fdSSascha Wildner>>3	ubyte		6		Inter Fastdir DOS disk
151970935fdSSascha Wildner# called by TrID "Amiga Disk image File (FFS+INTL+DIRC)"
152970935fdSSascha Wildner>>3	ubyte		7		Inter Fastdir FFS disk
153970935fdSSascha Wildner# but according to Wikipedia variants with long name support
154970935fdSSascha Wildner#>>3	ubyte		6		long name DOS disk
155970935fdSSascha Wildner#>>3	ubyte		7		long name FFS disk
156970935fdSSascha Wildner# DOES NOT only work! Partly for file size  ~< FILE_BYTES_MAX=1 MiB defined in ../../src/file.h
157970935fdSSascha Wildner#>>-0		offset	x		\b, %lld bytes
158970935fdSSascha Wildner# Correct file size, but next lines are NOT executed
159970935fdSSascha Wildner#>>-0		offset	901120		(DD 880 KiB floppy)
160970935fdSSascha Wildner# 880 KiB Double Density floppy disk by characteristic hash table size 0x48 and T_HEADER=2
161970935fdSSascha Wildner>>0x6E00C	ubelong	0x48
162970935fdSSascha Wildner>>>0x6E000	ubelong	2		(DD 880 KiB)
163970935fdSSascha Wildner# 1760 KiB High Density floppy disk (1802240 bytes) by characteristic hash table size 0x48
164970935fdSSascha Wildner>>0xDC00C	ubelong	0x48
165970935fdSSascha Wildner>>>0xDC000	ubelong	2		(HD 1760 KiB)
166970935fdSSascha Wildner# Chksum; special block checksum like: 0 0x44ccf4c0 0x51f32cac 0xe33d0e7d ...
167*614728caSSascha Wildner#>>4	ubelong		x		\b, CRC %#x
168970935fdSSascha Wildner# Rootblock: 0 880 (often for DD and HD) 1146049280 (IMAGINE_1_0_DISK_01.ADF TURBO_SILVER_SV.ADF)
169970935fdSSascha Wildner>>8	ubelong		>0		\b, probably root block %d
170970935fdSSascha Wildner# bootblock code
171970935fdSSascha Wildner>>12	quad		!0		\b, bootable
172970935fdSSascha Wildner# assembler instructions: lea exp(pc),a1; moveq 25h,d0; jsr -552(a6)
173970935fdSSascha Wildner>>>12	ubequad	=0x43fa003e70254eae	AmigaDOS 3.0
174970935fdSSascha Wildner>>>12	default	x
175*614728caSSascha Wildner>>>>12	ubequad	!0x43fa003e70254eae	%#llx..
176970935fdSSascha Wildner# 880 KiB Double Density floppy disk (901120 bytes)
177970935fdSSascha Wildner>>0x6E00C	ubelong	0x48
178970935fdSSascha Wildner>>>0x6E000	ubelong	2
179970935fdSSascha Wildner>>>>0x6E000	use			adf-rootblock
180970935fdSSascha Wildner# 1760 KiB High Density floppy disk (1802240 bytes)
181970935fdSSascha Wildner>>0xDC00C	ubelong	0x48
182970935fdSSascha Wildner>>>0xDC000	ubelong	2
183970935fdSSascha Wildner>>>>0xDC000	use			adf-rootblock
184970935fdSSascha Wildner# 1 MiB hard disc by test for T_HEADER=2 and header_key=0=high_seq
185970935fdSSascha Wildner>>0x80000	ubelong	2
186970935fdSSascha Wildner>>>0x80004	quad	0
187970935fdSSascha Wildner>>>>0x80000	use			adf-rootblock
188970935fdSSascha Wildner# 2 MiB hard disc; only works if in ../../src/file.h FILE_BYTES_MAX is raised to 2 MiB
189970935fdSSascha Wildner#>>0x100000	ubelong	x		2 MiB TEST
190970935fdSSascha Wildner#>>0x100000	ubelong	2		\b, 2 MiB hard disc rootblock
191970935fdSSascha Wildner#>>>0x100000	use			adf-rootblock
192327e51cbSPeter Avalos0	string		KICK		Kickstart disk
193327e51cbSPeter Avalos
194327e51cbSPeter Avalos# From: Alex Beregszaszi <alex@fsn.hu>
195327e51cbSPeter Avalos0	string		LZX		LZX compressed archive (Amiga)
196327e51cbSPeter Avalos
197e8af9738SPeter Avalos# From: Przemek Kramarczyk <pkramarczyk@gmail.com>
198e8af9738SPeter Avalos0	string 		.KEY		AmigaDOS script
199e8af9738SPeter Avalos0	string 		.key		AmigaDOS script
2006fca56fbSSascha Wildner
2016fca56fbSSascha Wildner# AMOS Basic file formats
2026fca56fbSSascha Wildner# https://www.exotica.org.uk/wiki/AMOS_file_formats
2036fca56fbSSascha Wildner0	string		AMOS\040Basic\040 	AMOS Basic source code
2046fca56fbSSascha Wildner>11	byte		=0x56 			\b, tested
2056fca56fbSSascha Wildner>11	byte		=0x76 			\b, untested
2066fca56fbSSascha Wildner0 	string		AMOS\040Pro		AMOS Basic source code
2076fca56fbSSascha Wildner>11	byte		=0x56 			\b, tested
2086fca56fbSSascha Wildner>11	byte		=0x76 			\b, untested
2096fca56fbSSascha Wildner0	string		AmSp			AMOS Basic sprite bank
2106fca56fbSSascha Wildner>4	beshort		x			\b, %d sprites
2116fca56fbSSascha Wildner0	string		AmIc			AMOS Basic icon bank
2126fca56fbSSascha Wildner>4	beshort		x			\b, %d icons
2136fca56fbSSascha Wildner0	string		AmBk			AMOS Basic memory bank
2146fca56fbSSascha Wildner>4	beshort		x			\b, bank number %d
2156fca56fbSSascha Wildner>8	belong&0xFFFFFFF	x		\b, length %d
2166fca56fbSSascha Wildner>12	regex		.{8}			\b, type %s
2176fca56fbSSascha Wildner0	string		AmBs			AMOS Basic memory banks
2186fca56fbSSascha Wildner>4	beshort		x			\b, %d banks
219