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