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