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