lif 1.9 KB

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