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