1327e51cbSPeter Avalos 2327e51cbSPeter Avalos#------------------------------------------------------------------------------ 3*614728caSSascha Wildner# $File: lif,v 1.10 2021/04/26 15:56:00 christos Exp $ 4327e51cbSPeter Avalos# lif: file(1) magic for lif 5327e51cbSPeter Avalos# 6327e51cbSPeter Avalos# (Daniel Quinlan <quinlan@yggdrasil.com>) 7327e51cbSPeter Avalos# 8970935fdSSascha Wildner# Modified by: Joerg Jenderek 9970935fdSSascha Wildner# URL: https://www.hp9845.net/9845/projects/hpdir/ 10970935fdSSascha Wildner# https://github.com/bug400/lifutils 11970935fdSSascha Wildner# Reference: https://www.hp9845.net/9845/downloads/manuals/LIF_excerpt_64941-90906_flpRef_Jan84.pdf 12970935fdSSascha Wildner# Note: called by TrID "HP Logical Interchange Format disk image" 13970935fdSSascha Wildner0 beshort 0x8000 14970935fdSSascha Wildner# GRR: line above is too general as it catches also compressed DEGAS low-res bitmap *.pc1 15970935fdSSascha Wildner# skip many compressed DEGAS low-res bitmap *.pc1 by test for unused bytes 16970935fdSSascha Wildner>14 beshort =0 17970935fdSSascha Wildner# skip MUNCHIE.PC1 BOARD.PC1 ENEMIES.PC1 by test for low version number 18970935fdSSascha Wildner>>20 ubeshort <0x0100 19970935fdSSascha Wildner# skip DEGAS MUNCHIE.PC1 BOARD.PC1 ENEMIES.PC1 by test for ASCII like volume name 20970935fdSSascha Wildner#>>>2 ubelong >0x2020201F 21970935fdSSascha Wildner>>>0 use lif-file 22970935fdSSascha Wildner0 name lif-file 23970935fdSSascha Wildner# LIF ID 24970935fdSSascha Wildner>0 beshort x lif file 25970935fdSSascha Wildner!:mime application/x-lif-disk 26970935fdSSascha Wildner# lif used by Tony Duell LIF utilities; enhanced version by Joachim Siebold use also dat; hpi used by hpdir 27970935fdSSascha Wildner!:ext lif/hpi/dat 28970935fdSSascha Wildner# volume label; A-Z 0-9 _ ; default are 6 spaces 29970935fdSSascha Wildner>2 string x "%.6s" 30970935fdSSascha Wildner# version number; 0 for systems without extensions or 1 for model 64000 31970935fdSSascha Wildner>20 ubeshort x \b, version %u 32970935fdSSascha Wildner# LIF identifier; 010000 for system 3000 33*614728caSSascha Wildner>12 beshort !0x1000 \b, LIF identifier %#x 34970935fdSSascha Wildner# directory start address in units like: 2 35970935fdSSascha Wildner>8 ubelong x \b, directory 36970935fdSSascha Wildner>8 ubelong !2 start address %u 37970935fdSSascha Wildner# length of directory like: 2 4 7 10 12 14 (for model 64000) 16 18 20 24 30 50 57 77 80 38970935fdSSascha Wildner>16 ubelong x length %u 39970935fdSSascha Wildner# level 1 extensions 40970935fdSSascha Wildner>20 beshort =0 41*614728caSSascha Wildner>>24 ubequad !0 \b, for extensions %#llx... 42970935fdSSascha Wildner>20 beshort >0 43*614728caSSascha Wildner>>24 ubequad !0 \b, extensions %#llx... 44970935fdSSascha Wildner# word 21-126 reserved for extensions and future use; set to nil 45*614728caSSascha Wildner>42 ubequad !0 \b, RESERVED %#llx 46970935fdSSascha Wildner# lif first file name for standard directory; 0xffff... means uninitialized 47970935fdSSascha Wildner>8 ubelong 2 48970935fdSSascha Wildner>>512 string <\xff\xff \b, 1st file %-.10s 49970935fdSSascha Wildner 50