Skip to main content

LIF utilities for the Series 80

Project description


gitea: none include_toc: true

lif80utils

The LIF80UTILS are command line utilities to handle LIF (Hewlett Packard Logical Interchange Format) files used by HP Series 80 computers.

For HP calculators HP-41, HP-71 and HP-75 see the LIFUTILS project.

Prerequisites

This software was developed and tested exclusively under Linux. Since Python is cross-platform compatibile it could theoretically run on Windows. At least the non GPIB parts.

To access a physical drive connected to a GPIB card the latest Linux GPIB Package 4.3.7 with this patch applied is needed.

Physical drive access has been successfully tested using two 3.5-inch floppy drives (HP 9121D and HP 9123D). However, for reasons yet to be determined, it is currently incompatible with the 5.25-inch HP 82901M drive.

Installation

For the latest version please download the source code or clone the repository. Generate the distribution archives using build. These archives (.whl,.tar.gz or .zip) can be installed by pip.

cd lif80utils                                                         # Where the 'pyproject.toml' is located.
python3 -m build                                                      # Generate the distribution archives.
pip install --force-reinstall dist/lif80utils-0.0.1-py3-none-any.whl  # Install the package.
pip uninstall lif80utils                                              # Remove the package.

Or install the published package from PyPI.

pip install -i https://pypi.org/simple/ lif80utils

There are also some blackbox tests coming with the package. You can run them with

python3 -m unittest discover tests/ -v

Command reference

[!CAUTION]
Risk of Data Loss: Never ever use these tools on a disk containing valuable data without verified physically write protection. If you must perform a write operation, do it on a copy.

File Specifiers

The form of the file specifier is similar to the original.

"file name[:lifpath]"

Only that the volume is not restricted to a :msus (.volume label is not supported since dots are valid characters in linux filenames and there distinction would be ambiguous).

Where :lifpath is one of the following.

:/dev/floppy    Linux device (Not working for now)
:directory/     Linux directory
:path_to_image  LIF image file
:Dnnn           GPIB device

In order of priority.

All :lifpath character strings begin with a colon.

The :lifpath part of the file specifier can be also set with the --mass-storage MASS_STORAGE option or by setting a MASS_STORAGE environment variable.

lif80cat :LIF.IMG
lif80cat --mass-storage :LIF.IMG
lif80cat -m :LIF.IMG
MASS_STORAGE=:LIF.IMG lif80cat

As :lifpath defaults to ":.", omitting it will resolve to a local file in the current directory. Therefore, the following file specifiers are equivalent:

QUAKE.E010
./QUAKE.E010
QUAKE.E010:.

For LIF files hosted on a Linux filesystem, the file type must be included as a filename extension.

QUAKE.E010

A :msus string has the following form:

": device type  interface select code  device address  drive number"

The device type is limited to :D because only discs are supported and there is no external tape anyway.

The interface select code refers to the minor device number, a 'minor' of 0 corresponds to /dev/gpib0, of the GPIB controller and not to it's PAD. See gpib.conf -- GPIB library configuration file.

The device address, an integer from 0 through 7, matches the number set on the device address switch on the mass storage unit.

The drive number, an integer from 0 through 3, specifies the drive on the master or add-on unit you wish to access.


Program Description
lif80cat Lists the file directory of a storage media.
lif80copy Copy a named file, or all files from a directory, to destination.
lif80dump Hex or binary dump of a storage media.
lif80info Prints information about a LIF volume.
lif80init Initialize a storage media.
lif80label Assign a volume label to a LIF volume.
lif80pack Fills in NULL file gaps created when files are purged without a 0 purge code.
lif80purge Remove the named file from the directory.
lif80rename Rename a file.
lif80decode Convert a LIF file into a plain text file.
lif80encode Convert a plain text file into a LIF file.
lif80renum Automatic line numbering of .BAS and .ASM files.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

lif80utils-0.0.5-py3-none-any.whl (72.5 kB view details)

Uploaded Python 3

File details

Details for the file lif80utils-0.0.5-py3-none-any.whl.

File metadata

  • Download URL: lif80utils-0.0.5-py3-none-any.whl
  • Upload date:
  • Size: 72.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for lif80utils-0.0.5-py3-none-any.whl
Algorithm Hash digest
SHA256 5fb2a303ed708ab1f9c2d20f63f4ed52108004c7369ae49fe978d13fcd46c548
MD5 87a39534820a140f1ab70dd941cb2e76
BLAKE2b-256 4209f5bbaa80d8ba6c46e7a38b210e1782741513fe664a72dc9b3f979b1403d8

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page