#------------------------------------------------------------------------------ # $File: lif,v 1.10 2021/04/26 15:56:00 christos Exp $ # lif: file(1) magic for lif # # (Daniel Quinlan ) # # Modified by: Joerg Jenderek # URL: https://www.hp9845.net/9845/projects/hpdir/ # https://github.com/bug400/lifutils # Reference: https://www.hp9845.net/9845/downloads/manuals/LIF_excerpt_64941-90906_flpRef_Jan84.pdf # Note: called by TrID "HP Logical Interchange Format disk image" 0 beshort 0x8000 # GRR: line above is too general as it catches also compressed DEGAS low-res bitmap *.pc1 # skip many compressed DEGAS low-res bitmap *.pc1 by test for unused bytes >14 beshort =0 # skip MUNCHIE.PC1 BOARD.PC1 ENEMIES.PC1 by test for low version number >>20 ubeshort <0x0100 # skip DEGAS MUNCHIE.PC1 BOARD.PC1 ENEMIES.PC1 by test for ASCII like volume name #>>>2 ubelong >0x2020201F >>>0 use lif-file 0 name lif-file # LIF ID >0 beshort x lif file !:mime application/x-lif-disk # lif used by Tony Duell LIF utilities; enhanced version by Joachim Siebold use also dat; hpi used by hpdir !:ext lif/hpi/dat # volume label; A-Z 0-9 _ ; default are 6 spaces >2 string x "%.6s" # version number; 0 for systems without extensions or 1 for model 64000 >20 ubeshort x \b, version %u # LIF identifier; 010000 for system 3000 >12 beshort !0x1000 \b, LIF identifier %#x # directory start address in units like: 2 >8 ubelong x \b, directory >8 ubelong !2 start address %u # length of directory like: 2 4 7 10 12 14 (for model 64000) 16 18 20 24 30 50 57 77 80 >16 ubelong x length %u # level 1 extensions >20 beshort =0 >>24 ubequad !0 \b, for extensions %#llx... >20 beshort >0 >>24 ubequad !0 \b, extensions %#llx... # word 21-126 reserved for extensions and future use; set to nil >42 ubequad !0 \b, RESERVED %#llx # lif first file name for standard directory; 0xffff... means uninitialized >8 ubelong 2 >>512 string <\xff\xff \b, 1st file %-.10s