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