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 (a] cs.uni-bonn.de (Ignatios Souvatzis) 8 # 9 0 belong 0x000003fa AmigaOS shared library 10 0 belong 0x000003f3 AmigaOS loadseg()ble executable/binary 11 0 belong 0x000003e7 AmigaOS object/library data 12 # 13 0 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 (a] informatik.uni-rostock.de> 27 # 28 0 string FC14 Future Composer 1.4 Module sound file 29 0 string SMOD Future Composer 1.3 Module sound file 30 0 string AON4artofnoise Art Of Noise Module sound file 31 1 string MUGICIAN/SOFTEYES Mugician Module sound file 32 58 string SIDMON\ II\ -\ THE Sidmon 2.0 Module sound file 33 0 string Synth4.0 Synthesis Module sound file 34 0 string ARP. The Holy Noise Module sound file 35 0 string BeEp\0 JamCracker Module sound file 36 0 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 (a] 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 48 0 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 79 0 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" 99 0 beshort 0x0f03 AmigaOS outline font 100 0 belong 0x80001001 AmigaOS outline tag 101 0 string ##\ version catalog translation 102 0 string EMOD\0 Amiga E module 103 8 string ECXM\0 ECX module 104 0 string/c @database AmigaGuide file 105 106 # Amiga disk types 107 # display information like volume name of root block on Amiga (floppy) disk 108 0 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 # 128 0 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` 136 0 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 192 0 string KICK Kickstart disk 193 194 # From: Alex Beregszaszi <alex (a] fsn.hu> 195 0 string LZX LZX compressed archive (Amiga) 196 197 # From: Przemek Kramarczyk <pkramarczyk (a] gmail.com> 198 0 string .KEY AmigaDOS script 199 0 string .key AmigaDOS script 200 201 # AMOS Basic file formats 202 # https://www.exotica.org.uk/wiki/AMOS_file_formats 203 0 string AMOS\040Basic\040 AMOS Basic source code 204 >11 byte =0x56 \b, tested 205 >11 byte =0x76 \b, untested 206 0 string AMOS\040Pro AMOS Basic source code 207 >11 byte =0x56 \b, tested 208 >11 byte =0x76 \b, untested 209 0 string AmSp AMOS Basic sprite bank 210 >4 beshort x \b, %d sprites 211 0 string AmIc AMOS Basic icon bank 212 >4 beshort x \b, %d icons 213 0 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 217 0 string AmBs AMOS Basic memory banks 218 >4 beshort x \b, %d banks 219