The HPDir Project

Why and how

There are two main reasons for the HPDir program:

  1. Binary images of 9845 media have to be handled in order to create, duplicate and initialize image files, and to maintain all the files which are stored in the binary image.
  2. Original vintage mass storage peripherals and media shall be controlled, read and written directly from a PC without any other vintage system involved.

The HPDir program is much like a swiss pocket knife for vintage HP drives, media and data. It is able to list the contents of file systems and to extract files from drives connected via HP-IB, files included in binary images and files from old non-standard HP floppy discs. It can convert files from one file to another, including the conversion of data and program files, so that they get readable and editable on a PC. It can dump sector-by-sector images from HP-IB drives or floppy disks in order to archive the original media content. It can also restore original media from these images. It can initiate diagnostics on the HP-IB bus, on drives connected via HP-IB bus or on vintage floppy media. It works both with 9845 and LIF file systems, handles hard disc drives as well as tape drives and supports access to non-standard floppies in standard PC floppy disc drives. For vintage HP drives it supports both the AMIGO and the CS80/SS80 command sets. And it can be used to prepare images for the HPDrive program, an HP-IB mass storage emulator.

The 9845 File System

When designing the 9845, HP developed a new concept they called the "unified mass storage model". Before the 9845, HP experimented with mass storage concepts which were more or less media-centric. For example a standard format for tape drives was created, the so-called SIF (Standard Interchange Format), which was not really portable to other types of media. With the 9845, HP wanted to create a system where most mass storage routines could be implemented independently from the underlaying hardware and media. This would not only have the advantage of re-usable code, but also simplified data transfer from one media to another and provided a standardized user interface for mass storage operations.

This concept did fit well into the hardware concept of the 9845, which was very generic, too. The file structure is almost the same for all peripherals. The basic entity is the record, a 256 byte block of data. The generic view on mass storage is in principal used just that of a linear seqence of records, starting with record zero. This is similar to the view on modern disc drives with their Logical Block Address (LBA) scheme.

The 9845 file system is based on a single system record, a file directory, an allocation table and the area where the file data is stored. The system record is always the first record on each media. File directory and allocation table follow the system record and can be doubled with a spare directory and allocation table. The file data area follows the allocation table, or, if directory and allocation table are mirrored, the spare allocation table.

The system record consists of a 'magic' identification word (always $0500 hexadecimal), some information about the disc geometry, the position of the directory table and the allocation table, the position of the last record of the allocation table, the number of system and data tracks and the interleave factor of the drive. Since the linear record scheme is independent from the the drive geometry or the interleave factor, this data is more or less bonus information.

Compared to modern file systems like FAT32 or NTFS the 9845 file system is very simply structured. All files are situated in the root directory, subdirectories are not supported. All file names are restricted to 6 characters maximum, and are case senstitive.

File data can't be fragmented, all file data must be in a continuous storage area. The allocation table doesn't identify the records which belong to a certain file, but rather describes the free "holes" between the files. Each entry in the allocation table identifies position and length of one continuous free block on the medium. The last entry in the allocation table is followed by an end marker ($FFFF hexadecimal).

Each entry in the directory table holds the file name, the file position and length, the logical block size (also known as defined record size), the file type and a protection attribute. Again, the last directory enty is followed by an end marker.

Here is the structure of the 9845 disc file system in detail:

9845 Disc File System

9845 Disc File System Structure

This structure is used for all disc media (both floppy and hard disc). The tape cartridge version of the 9845 file system differs a little bit: due to the limited space all the file information is stored compressed in directory entries of just 12 bytes or 6 words. And there is no system record, instead the first record is unused (filled with zeros) and the directory starts with the 'magic' word. The tape file system does provide a spare directory, but no allocation tables.

Here is the structure of the 9845 tape file system in detail:

9845 Tape File System

9845 Tape File System Structure

The 426 blocks have all a size of 256 bytes and spread along two tracks (block 0 to block 212 on track 0, blocks 213 to 425 on track 1). As mentioned above, the tape file system doesn't have a system block or allocation tables. Instead, the first record is kept unused (probably for safety reasons) and filled with zeros. The directory starts with a $0500 marker, followed by the first directory entry. The directory occupies 2 blocks or 512 bytes. Each directory entry uses 6 words or 12 bytes, so the directory has room for up to 42 file entries. The directory is followed by an identical copy which is used as spare directory in case the first directory has errors.

9845 Directory Format

9845 Disc and Tape Directory Format

The fact that the 9845 file system did not allow fragmented files made it hard to use dynamically allocated files which grow with the amount of data that is written to the files. Another disadvantage was that each time a file was purged, it produced a 'hole' of free storage. The hole could be later on used by another file, but since the new file generally had another size, more and more storage was wasted during long term use. However, utilities were provided in order to re-pack the files in a 9845 file system.

In contrast to MSDOS or Windows, files are not typed by file extension but through a file code which is stored in the directory entry. The files in a 9845 file system belong to either of the following types:

File Type File Type Code* Purpose
DATA 2400
General pupose data container (this is the standard data file type for BASIC programs, and as well used for portable BASIC programs saved in ASCII format)
PROG 4800
Standard file type for storing BASIC programs in a compact, but system specific format
KEYS 4C00
File type for saving special function key definitions/macros
ALL 5400
File type for saving complete system dumps (including loaded programs, variables, key definitions, binary routines, and display content)
BPRG 5800
File type for saving binary routines (all currently loaded binaries are saved into one file)
BDAT 5000
File type for FREAD and FWRITE statements (available with the Mass Storage ROM)
ROOT ?
File type for data base root file (used with the DBMS ROM)
BKUP 4000
File type for data base backup file (used with the DBMS ROM)
DSET 5D00
File type for data base file containing a data set (used with the DBMS ROM)
ASMB 5E00
File type for saving object code routines produced with the Assembly Execution and Development ROM
OPRM 5C00
General purpose container for all other option ROMs, the data structure is defined by the option specific ROM (note: the object code file produced by the assembler is of this type when stored on tape instead of disc)
TEXT 5F00
not used, but reserved

*hexadecimal result of masking the file type code word in disc directories with hex FC00. File type codes for tape directories are the same, however only the high byte is used as a single byte code.

For the object code files of the Assembler Execution and Development ROM, the handling differs slightly between disc and tape storage. They are stored on disc as type ASMB, and on tape as type OPRM.

The LIF File System

The Logical Interchange Format, or LIF is probably one of the least documented file systems ever, although this proprietary file system (which was introduced by HP during the late 70's, I think the first systems which used this format were the Series 80 computers) was targeted as a completely device independent, easy to implement exchange format, especially for pocket calculators like the 41C. This file system format was broadly used especially by HP's later computers, calculators and instruments, and it is still supported by HP-UX, but it never left the world of HP.

The roots of LIF seem to go back to the 9845 file system format as they share most restrictions. The most important refinements were a six-character volume label (similar to MSDOS), a maximum file length of up to 10 characters, a time stamp and a free purpose field, which could add application specific data. Just like the 9845 file system format, LIF did not allow subdirectories or the fragmentation of file data. LIF uses both the linear record scheme and a system record for general file system information, but neither uses spare directories nor allocation tables. For the identification of suitable free storage areas, the complete directory had to be scanned.

Here is the structure of the LIF file system in detail:

LIF File System

LIF File System Structure

For some systems the LIF filenames are case senstitive, for others not. File types are system dependend, there is no general rule how the file types are encoded, except that code 0 denotes plain ASCII files. Most common file types were plain ASCII, binary data (BDAT) and binary programs (BPRG). The only file type, which can be used by all systems was plain ASCII. This file format was used in all cases where portability was important. Unfortunately, the 9845 DATA format is not compatible to the LIF ASCII format.

LIF Directory Format

LIF Directory Format

The general purpose field is something special. There are probably no two systems which use this field in the same way. Due to the lack of documentation, only a few definitions of that field are known.

There have been different tools provided for handling LIF discs. Still quite useful are the LIF Utilities for DOS from HP. The LIF utilities support the handling of LIF floppy discs in standard PC floppy disc drives and drives connected via HP-IB similar to the HPDir program. A DOS-based graphical user interface covers functions like initializing LIF discs, copying files from DOS to LIF and vice versa, purging files as well as editing LIF discs with a hex editor. The LIF Utilities work under DOS and Windows 9x, but not under NT based Windows like XP or Vista. The HP-IB operation is restricted to HP's own HP-IB interface cards (namely the HP82335A, the HP82990A and the HP88500A interfaces) and can communicate only with drives supporting the CS80/SS80 command sets. Drives based on the AMIGO command set are not supported, neither are non-HP IEEE488/GPIB controllers. The LIF Utilities are available for download from Agilent's FTP site (look here for download). The manual for this software can be separately downloaded here.

Another LIF tool, also provided by HP, are the Standard Data Format (SDF) Utilities. Although originally intended for the exchange of data with HP analyzer instruments, there are two programs included (LIF.EXE and LIFDIAG.EXE) for LIF access, file conversion and diagnostics. Just like the LIF Utilities those programs allow initializing LIF discs as well as file copying, deletion, conversion and listing both using standard floppy disc drives and drives connected via HP-IB. The SDF utilies support the SS80, but not the AMIGO command set. However, in contast to the LIF utilities those programs support the PCII and AT-GPIB IEEE488/GPIB cards from National Instruments in addition to the HP88500A and HP82335 interfaces. The SDF Utilities are also available for download from Agilent's FTP site (look here for download).

Tony Duell's LIF Utilities for Linux are more intended for the handheld HP calculators/computers like the 41C or the 71B, but provide useful routines for LIF disc access or file conversion under Linux. More about this utility collection can be found at hpcc.org (look here).

Finally, there is still a basic support for LIF under HP-UX. For a certain period, the LIF format was used as bootstrap format (an initial execution vector was added in the system record for this purpose).

The HPDir Utility

The main idea behind the HPDir program was to provide means for working with 9845 file systems - independent whether those file systems are stored in binary images, on vintage HP-IB drives or on floppy disc media in standard PC floppy drives. Just like HP's unified mass storage concept for the 9845, HPDir can be run the same way on all supported media (image files, HP-IB drives and standard floppy disk drive). The appropriate source is identified by an msus-like specifier.

For working with older HP-IB drives from the 9845 era, support for the AMIGO command set has been added. Another requirement was to provide a utility which can be used under modern operating systems and which could be integrated into an explorer-like environment. For the latter, integration into the well-known Total Commander was preferred over integration into the Windows explorer, since the Total Commander is by far the more versatile file system utility.

In order to enable even more general application, LIF is supported in addition to the 9845 file system format, and the CS80/SS80 command set is supported in addition the the AMIGO command set. All functions available for the 9845 file system and AMIGO based HP-IB drives are also applicable to LIF file systems and CS80/SS80 based peripherals.

HPDir comes in two flavors. One is a console application running under 32-bit-Windows. The second is used as integration of the Total Commander, which again is provided by two different plugins, a packer plugin and a file system plugin. The packer plugin is useful for working with binary image files only, and is very similar to the use of e.g. ZIP archives. The file system plugin supports the full range of media, including binary image files, drives connected via HP-IB and vintage floppy disc media in the standard PC floppy disc drive, and it has some additional features, like setting file attributes.

Using Binary Image Files

Binary images as used by the HPDir and the HPDrive program are quite generic. They are just 1:1 images from the records on the media they represent. So each image file has exactly the same size as the overall sector or track data on the disc or tape they are created from. The binary images contain no information about the source medium, especially nothing about the original drive geometry (sector size, sectors/track, sector interleave etc.). Binary images are just a linear collection of 256-bytes-records, starting at record 0.

This is exactly the view of the 9845 operating system unified mass storage concept, and makes it easy to abstract from the original drive hardware. The suggested Windows filename extension is .hpi (for HP image).

The source selector (msus) for image files is just a reference to the image file path, preferably but not necessarily with the extension .hpi, e.g.:

hpdir c:\tmp\image.hpi

lists the file content of c:\tmp\image.hpi.

Using the HP-IB

HPDir can also be used for accessing drives connected via HP-IB. This requires a compatible IEEE488/GPIB card (currently, cards compatible to the NEC µPD7210 are supported). The way the HP-IB drive is connected has to conform to the IEEE-488 rules for cable length and cable stacking. The IEEE488/GPIB interface in the PC has to be configured as system controller in order to play the role of the 9845 host system. Mass storage devices should generally be configured to a GPIB primary address between 0 and 7, and generally up to 10 units are supported for each device, and each unit can hold up to 8 volumes.

The source selector (msus) for an HP-IB device is of the form

7xx[y[z]]:

where the first digit is the controller number (always 7), the next two digits (xx) are the primary address of the HP-IB drive, followed by the optional unit (y) and volume numbers (z).

A list of the peripherals currently connected to the GPIB can be obtained by executing

hpdir -scan

The connection to a specific HP-IB drive can be initially checked with the diagnostic feature of HPDir. If the tested drive has the GPIB primary address 0, execute

hpdir -diag 700:

and select the first entry "GPIB diagnostics (loopback test)" from the menu, then just press ENTER to use the default value for the loop count. HPDir will now send data over the GPIB to the drive, receive a copy and compare it to the original data sent. In case errors orccur during this operation, HPDir will give an appropriate error message.

If everything works fine, just quit the menu, insert a valid medium in the HP-IB drive and execute

hpdir 700:

which lists the content of the storage (assuming the address of the drive is 0 and there is an already initialized file system on the medium).

There are some HPDir commands which are only used in combination with HP-IB drives, but not with images or the with the standard PC floppy drive:

hpdir -clear <msus> sends a CLEAR message to the device
hpdir -unload <msus> sends a command to the device to eject the loaded media (if appropriate)
hpdir -scan looks for all devices currently connected to the GPIB

Using Floppy Discs

Sometimes there is the need for handling original floppy discs, maybe because there is no suitable vintage drive hardware available, or there is no possibility to connect to the drive via GPIB. Generally, the use of vintage media as long-term storage is depreciated, since no one knows how long those media will work error-free. In order to archive floppy contents, at least an image should be created, but in principle, HPDir offers for floppy discs the same functionality as for binary images and HP-IB drives.

HP used a floppy sector format which is not supported by DOS or Windows. If you try to access such a vintage disc, you'll get an error message accordingly. Although many standard PC floppy disc drives can be tuned to read even those non-standard formats by directly programming the floppy disc controller (direct floppy disc access), there is no guarantee that it works with your specific drive hardware.

The source selector (msus) for direct floppy disc access is of the form

X:

where X is any digit between 0 and 3. 0 addresses the first drive (normally mapped to DOS drive A:), 1 the second drive (mapped to B:) and so on. Example:

hpdir 0:

tries to access the first floppy drive and then lists the directory content of the floppy disc in this drive. Note that "hpdir A:" will not work, since A: as DOS/Windows drive identifier is reserved for specification of a binary image file path.

The functions for direct floppy disc access are borrowed from another utility, the Fdio program (see the Fdio Project). If you run into problems, use the more comprehensive options or the troubleshooting procedures of the Fdio program. In general, HPDir will try to determine the floppy disc format automatically. If this automatic detection should fail and you are sure about the specific floppy disc format, you can use the Fdio utility to create an image which then can be used by HPDir. With Fdio, you can specifiy the format either from a number of presets or by setting the media parameters manually.

Using the Total Commander Plugins

There are two plugins available for the popular Total Commander, a powerful replacement of the Windows Explorer. The plugins are intended for those who prefer a graphical user interface over console applications with their command line options or who just want to use the highly productive features of the Total Commander.

Total Commander is a shareware file manager for Windows 95/98/ME/NT/2000/XP/Vista (even runs under Windows 3.1) and can be downloaded here.

There are two different types of plugins. The packer plugin allows access to a binary image file in a way very similar to ZIP archives or ISO CD-ROM images. Binary images as used with HPDir or HPDrive schould have the file name extension .hpi in order to activate the right packer plugin. The file system plugin allows access to whole 9845 or LIF file systems via the network neighborhood. You should install both plugins and use them as appropriate.

How to install and use the HPDir packer plugin:

  1. Download the HPDir package and copy the file hpdir.wcx to any directory
  2. In Total Commander, choose 'Configuration - Options'
  3. Open the 'Packer' page
  4. Click 'Configure packer extension WCXs'
  5. Type 'hpi' as the extension for the plugin
  6. Click 'New type', and select the hpdir.wcx file
  7. Click OK in all open dialog boxes. You can now use the plugin via 'Files - Pack' (or by opening archives of this type).

And here is how to install the HPDir file system plugin:

  1. Download the HPDir package and copy the file hpdir.wfx to a directory of your choice.
  2. In Totalcmd, choose 'Configuration - Options - Operation - FS-Plugins'
  3. Click on 'Add'
  4. Choose the hpdir.wfx file and click OK. You can now access the new file system via the Network Neighborhood.

The packer plugin is normally activated by just opening a binary image file with extension .hpi with Total Commander. Total Commander will than show the directory content of this image and allows you to apply the known Total Commander file operations like copying files to and from the image, view or delete individual files or edit them with your favorite editor.

HPDir Packer Plugin

Total Commander with HPDir Packer Plugin

In order to preserve the original 9845 or LIF file type, appropriate extensions will be appended to the original file name when showing the content of the image file. So if there is a file TEST of type DATA, it will be listed in Total Commander as TEST.DATA (in the example above which is taken from the first 9845 System Exerciser tape, REvid4 is of type DATA, TAPE of type PROG and the binary program MEMTST of type BPRG). When extracted from an image, this file name extension is added to the original file name.

Vice versa, when copying a Windows file into an image, known file type extensions are used to set the right file type in the image and stripped accordingly. Also note that if a file has another defined record size than the standard 256 bytes, the defined record size is added just before the typed extension (in the example above, the files DATA1 to DATA5 have a defined record size of 128 bytes, and the file DIRECT has a defined record size of 10 bytes, all other files have the standard defined record size of 256 bytes).

The file system plugin works much the same as the packer plugins. However, with the file system plugin you can also change the file attributes like creation/change time (LIF only) and protection, and you can activate or deactivate automatic file type conversion and the use of file name extensions for the preservation of 9845 or LIF file types. In addition, the file system plugin works not only on binary image files, but can be addressed to any valid source selector (msus), which includes drives connected via HP-IB and direct floppy disc access.

HPDir Neighborhood HPDir Filesystem Plugin

Selecting the HPDir Filesystem Plugin in Total Commander

The file system plugin is activated by first chosing the network neighborhood from the Total Commander drive selector, and then selecting the HPDIR plugin.

A small dialog then asks you for the source selector/msus (which is the same as for the console version of HPDir). You can enter either the path of an image file (as it is done in the example below), or a direct access floppy disc drive (e.g. with "0:" for the first drive), or a mass storage device connected via HP-IB/GPIB (e.g. with "701:" for the device with GPIB address 1). In this dialog, you can also specify whether typed file name extensions shall be used and whether automatic file conversion is switched on or off.

HPDir Filesystem Plugin Dialog

HPDir Filesystem Plugin Dialog

Automatic file conversion looks each time a copy is done to or from a 9845 or LIF file system, whether the file type is convertable or not. If it is convertable (which is currently the case for 9845 DATA files and LIF ASCII files), the file content is translated to and from standard Windows text format. So it is for example possible to edit 9845 BASIC programs on a PC and write them back into the original DATA format automatically (transparent use of 9845 or LIF files).

HPDir Filesystem Plugin

HPDir Filesystem Plugin View

Finally the filesystem plugin's view in the Total Commander is pretty close to that of the packer plugin. Note that it is now possible to connect even to remote HP-IB drives, to set the file attributes and to use automatic file content conversion.

Using the Command Line Interface

The console version of HPDir with its command line options is a little bit more complex than the plugins described above, but it also offers many more options. Under Windows 9x/ME HPDir is run in a command shell, under Windows NT/2000/XP/Vista in a cmd shell. All functions are completely identical under both Windows types.

Rather than providing a separate executable for each HPDir operation (as e.g. DOS does), all commands are implemented in one single executable and can be executed in the form

hpdir <command>

If the command specifier is omitted, HPDir uses the -list command as default.

All HPDir commands need a target file system or device to work on. The target file system or device is specified with a source selector (msus). If the source selector is omitted, HPDir asks for the msus interactively. There are thre different types of selector, one for binary image files, one for direct floppy disc access, and one for drives connected via GPIB:

hpdir <command> <image_selector>

hpdir <command> <fd_selector>

hpdir <command> <gpib_selector>

The binary image selector is just the Windows path to the appropriate image file.

The selector for direct floppy disc access <fd_selector> is a single digit for the drive number which shall be used. Drive 0 refers to Windows drive A:, drive 1 to Windows drive B: and so on.

The selector for drives connected via GPIB consists of a GPIB board identifier (always 7), a two-digit identifier for the primary GPIB address of the device, and, optionally, the selected unit and volume, with one digit each. If unit and/or volume are omitted, they default to unit 0 volume 0.

Both the <fd_selector> and the <gpib_selector> are terminated with a colon (':').

Examples are:

hpdir c:\temp\image.hpi

lists the directory content of the binary image file c:\temp\image.hpi.

hpdir 0:

lists the directory content of the floppy in the first disc drive.

hpdir 70012:

lists the directory content of the GPIB device with the primary address 0, the unit 1 and the volume 2.

Below is a summary of all commands. Execute HPDir with the -h option for a summary. Also have a look into the README file for up-to-date information.

Command Description
-list <msus> [<filespec>] Generate a directory listing from the selected source. For 9845 file system, the output is the same as for a 9845 host system. For LIF file systems, the SRM directory listing format is used.
-extract <msus> [<filespec>] Extract file(s) from file system. If a file already exists, the user is interactively asked for overwrite. An existing file will automatically be overwritten if the -y option is used.
-add <msus> [<filespec>] Adds file(s) to file system. If a file already exists, the user is interactively asked for overwrite. An existing file will automatically be overwritten if the -y option is used.
-remove <msus> [<filespec>] Removes file(s) from file system (doesn't care whether file have the protected attribute or not)
-copy <msus> <filespec> <target> Copies file(s) within a file system. If a file already exists, the user is interactively asked for overwrite. An existing file will automatically be overwritten if the -y option is used. Note that -copy can't be used to copy files between two different filesystems or media or between Windows and another file system (use -add or -extract instead).
-attrib <msus> [<filespec>] Sets attributes for a file, without any other operation. Possible attributes are protection, system and file type (see the -p, -s and -f options). Setting file creation time is LIF sepcific and currently not supported.
-rename <msus> <filespec> <target> Renames one single file or moves one or more file(s) to another location. <target> specifies either the new filename or an existing target location (directory or msus).
-create <msus> <file> <size> Creates one file of size <size>. Size is measured in blocks, so the actual file size in bytes depends from the blocksize used (see -b option).
-initialize <msus> Creates a new file system on the specified image or device. The appropriate file system type can be specified with the -lif, -disk45 or -tape45 options. All existing file data will be overwritten.
-format <msus> Performs a low-level format of the selected media. Images and floppy discs will be zeroed. The effect on HP-IB drives depends on the drive itself. Generally, factory-new media must be formatted before a file system can be created on the disc or tape. All existing file data will definitely be overwritten.
-info <msus> Outputs detailed information about the selected image or device including the currently loaded media.
-clear <msus> Sends a GPIB clear command to the device.
-unload <msus> Sends the appripriate command for ejecting a currently loaded disc or tape.
-diag <msus> Opens a menu for device, media and GPIB diagnostics. Helpful for problem identification in case of failures.
-defrag <msus> Rearranges the files in a file system so that intermediate free storage areas are eliminated and the files are 'packed' closely together in order to gain more space on the medium. All file information and data will be preserved. On HP-IB drives this operation may take several minutes.
-check <msus> Tests the file system for consistancy for diagnostic purposes. In combination with the -r option this command can be used to repair a bad file system (if possible).
-dup <msus> <target> Creates a 1:1 copy of an existing file system. Can be used to produce images from media, restore media from images, or to make identical image and media copies. The media of the target msus must be at least as large as that from the source msus. This type of duplication works on file system level, if you need to make a 1:1 copy at media level, use the Fdio utility.
-convert <msus> <target> Very much the same as the -dup command, but allows to change the target file system with the -lif, -disk45 and -tape45 options. Can be used to convert one file system type into another, e.g. tape45 format into disk45 format.
-scan Scans all possible primary GPIB addresses (0-30) on the GPIB bus for currently connected devices. Useful to see which devices are connected and whether they are supported by the HPDir utility.
-license Show license info.

Where <filespec> generally stands for one or more filenames, including wildcards. Note that filespecs with wildcards have to be enclosed in double quotes, otherwise they will be expanded by the shell. Also note that 9845 and sometimes LIF filenames are case sensitive and that the asterisk '*' is a valid part of a filename for 9845 or LIF files. Use the -nowc option below if asterisks are to be used in filenames.

Most commands can be tailored with one or more option. Below is a summary of all available options with reference to the commands they work with. Again, execute HPDir with the -h option for a summary. Also have a look into the README file for up-to-date information.

Option Description
-h Output a summary of the command line options.
-a <address> Select the primary GPIB address for the controller (default 21)
-b <blocksize> Specifiy the blocksize for a file (default 256). Applies to -add, -attribute and -create.
-c Enables automatic file conversion between HP format and DOS/Windows format. Currently, conversion of DATA and ASCII files is supported.
-d <destination> Specifiy the target Windows directory or msus for -add and -extract. Default is the current directory or msus.
-f <logfile> Log all output into <logfile>
-g <c,h,s,size>

Specifiy disc geometry parameters manually (overrides autodetect) with the following parameters:

c: cylinders per disc
h: heads per disc
s: sectors per track
size: sector size in bytes

-i <interleave> Select n:1 interleave factor, applies to -format and -initialize (default depends on the type of disc used)
-l <loglevel>

Specifies detail of HPDir's reporting. Possible values are
0 (=silent operation, no output except errors),
1 (=output errors and warnings only),
2 (=like 1 plus some basic information - this is the normal mode),
3 (=like 2 plus detailed logging of all HP-IB and floppy disc activity),
4 (=like 3 plus verbose reporting of all data which passes the HP-IB or the floppy disc controller)

-n <label> Specify disc label, applies to -initialize (LIF format only)
-p <protection> Specify protection attribute, applies to -add, -attribute and -create
-q Selects quickformat option (i.e. does not perform a possibly time-consuming erase of the whole media surface), applies to -initialize
-r Instructs HPDir to repair the file systems in case of errors (if possible), applies to -check
-s <system> Specify target system for file. Currently <system> is either 9845 or 98X6. Applies to -create, -add and -attribute. Affects system attribute only.
-t <filetype>

Specify file type. See the README for the file types currently supported.

-v Show version info.
-y Don't ask for confirmations (just do it)
-lif Force using the LIF file system
-disk45 Force using the 9845 file system (disc version)
-tape45 Force using the 9845 file system (tape version)
-notype Disables the automatic use of filename extensions for preserving the file types
-nowc Disables the expansion of wildcards in filenames. Useful if file names contain asterisks.
-nostream Disable faster I/O streaming and use sector based I/O instead. Only used for diagnostic purposes.
-license Show license info.

Downloads

HPDir is available in two versions, one for use with the DriverLinx Portio Driver Package (DlPortIO), which must be installed first. This is the only version which works with GPIB boards under Windows NT/2000/XP/Vista. It works under Windows 9x/ME, too, as long as the DlPortIO Package ist installed. If the DlPortIO Package is not present, you'll get a DLL-missing error message. Another driver package, the FDRAWCMD driver, is required for direct access to non-standard floppy discs under Windows NT/2000/XP/Vista. So if you're running HPDir under Windows NT/2000/XP/Vista, you should install both the DlPortIO and the FDRAWCMD driver package. The FDRAWCMD driver package is included, and you can download the DlPortIO driver package here.

If you're using HPDrive only for image files and you're neither using the GPIB feature nor the direct floppy disc drive access, the situation is much more relaxed. You can then use the Windows 9x version without any additional driver and within any Windows version.

Click here for downloading HPDir (plugins and console version):

HPDir 1.01 beta Windows 9x/ME executable: hpdir-101beta-bin-win9x.zip
HPDir 1.01 beta Windows NT/2000/XP/Vista executable (needs DlPortIO and FDRAWCMD drivers): hpdir-101beta-bin.zip
HPDir 1.01 beta source code package: hpdir-101beta-src.zip

This first beta version may still have a couple of bugs. Please use the contact feature to let me know if something doesn't work as expected.

The FDRAWCMD driver package is included in the distributions. The DlPortIO driver package can be downloaded here.

Troubleshooting

See the README inside the HPDir package for troubleshooting procedures.