.gitignore carefully excludes some intermediate message files for
Windows builds, but were missed in the backlog commit.
The build scripting for them is easier on Unix.
Create/directory fails because ODS-2 directories use
VAR records with a MRS of 512 and RAT of NOSPAN.
Ordinarily, MRS of 512 limits the data in a VAR record
to 510 bytes (2 bytes are used for the record length).
In the case of a directory, MRS includes the record length.
ODS2 enforces the MRS, but did not take this case into
account.
Fixes#8
Too much to list all, but includes (in no particular order):
- Cleanup for 64-bit builds, MSVC warnings.
- Structured help
- Help file compiler.
- Supports volsets, writes/create work.
- Support for I18n in messages, help.
- Makefiles.
- Initialize volume/volset
- Command line editing/history
Builds and works on Linux and Windows (VS).
Not recently built or tested on other platforms, but
not intentinonally broken.
The top and second level Makefiles that build the whole project by
recursing into all their subdirectories had implemented these by long
lists of invocations and then repeated these for all the all, clean,
install, uninstall targets. There were mistakes such as some
subdirectories not being cleaned.
Introduce SUBDIRS variables instead and have the targets loop over those
and additionally implement the clean, install, uninstall targets with a
single rule.
rawtap Allows extract, create and append operations on .tap files.
cpytap Copies a .tap file to a new .tap file while allowing file level edits; skip file, replace file,
append files and insert files. Any files copied from the original source .tap will have
their internal record structure maintained.
cosy COSY is the compressed format used by the CDC1700. This program allows for
extraction of all files from an archive and the creation of a new archive. It assumes
that you would have used raw tap about to have extracted the COSY file from a
tape.
dbtap Utility to read, write and list .tap containers written in the DOS/BATCH-11 format. It
understands ascii and binary modes and can be used to transfer files in and out of
most PDP-11 operating systems (not sure about RSTS/E), early VMS and early
TOPS-10 systems.
file systems. It supports reading and writing as well as a number
of other operations, such as octal dump, file system initialize,
and file system check ("clean").
This was originally maintained as a Subversion repository at
svn://akdesign.dyndns.org/flx/branches/V2.6.
as suggested by Timothe Litt on the SIMH mailing list.
Reorganize commands into separate modules - ods2.c was way too big.
This reduces it from around 3000 LOC to less than 1K LOC.
Reorder I/O so PHYVIRT mediates all physical access.
Fix memory leaks of device structures.
Reorganize Files-11 vs. internal structures.
Allow more granular control of DEBUG from the makefile.
Show VOLUME handles free space and tries to match geometry from SCB to known disk types.
Fix many compilation warnings.
Add code to allow dumping disk data for debug.
Automatically generate descrip.mms from dependencies.
Correctly handle directory default version limit; previously confused with file version limit.
Teach help to sort tables for presentation; manually keeping them sorted is problematic,
and code maintenance prefers functional groupings.
Add the ability to initialize a Files-11 volume. (Not quite complete.)
Add dependency generation to makefiles. Excludes system headers so
makedepends isn't required to build.
Simplify makefiles to use more recipes.
Teach makefiles to list all sources and headers so it's easier to keep git and MSVC up-to-date.
Add support for accessing images of disks with interleave/skew/offsets (e.g. RX02).
Add VHD support, including ability to create a snapshot with mount/write.
Teach RMS to handle NOSPAN variable length records correctly.
Fix RMS GET handling of variable length records with VFC that span block boundaries.
Fix delete file (a day-one incomplete). Still some cases to validate.
Purge cache of modified blocks at rundown and at the end of each command.
Do not allow deletion of reserved files.
Move revision history to version.h
Correct various permissions in git.
This makes libvhd run on windows, with some minor tweaks on Unix.
The latter make it possible to capture errors on a terminal rather than syslog.
A bug was fixed where an error code wasn't properly negated on return.
The 'absolute path" code now writes an absolute path.
Many compiler warnings were dealt with; this code now compiles cleanly under
MSVC as well as linux (gcc).
The approach was to do as much mechanical substitution as possible to avoid
introducing new bugs - even where some re-engineering would be profitable.
These comprise the vhd library from the XEN project. They are a subset of the XEN tools.
From http://www.openfoundry.org/svn/xenids/xen-4.0.0/tools/blktap2/
This commit is the baseline as found in XEN. Subsequent commits will fix compile issues
and allow compilation under Windows.
The API will remain compatible with the shared library, which can also be used. (With
these headers.)
Show version includes the other configuration info, including READLINE and ASPI.
Fix a memory leak in Unix show devices.
Start using valgrind. Add VLD support for Windows.
Fix memory leaks in main command processing.
add command line arguments to history if USEing_READLINE
Add atexit() and rundown support to dismount volumes at exit.
Update makefiles for READLINE - some versions require you to link with termcap or ncurses as well.
Fix memory leak in set default (including implicit set default on mount)
Free WCCFILE on search NAM$M_SYNCHK as VMS does. Also release when returning RMS$_NMF.
Add nam$l_rlf field to NAM
Implement show devices for VMS.
When reusing a WCB for large file, ensure that the file header pointer is valid.
Add show cwd so it's easy to find out default for local files.
Add set cwd
Add spawn cmd so it's easy to inspect copied files.
Handle condition codes properly.
Finish sysmsg.
Add standard macros to stsdef.h
Deal with strerror on windows.
1) Check for the alternate HOM block LBN
2) Continue search on checksum or consistency failure
3) Validate all fields in the ODS-2 specification
4) Compute BOTH checksums.
5) Mask checksum result to 16 bits, always.
Also, call phyio_done on errors mounting physical devices.
Many style/formatting edits.
Bug fixes.
Reverted some previous changes temporarily while reviewing new code.
Merged Baker's "virtual device" in a simpler form. ODS2 will assign a sensible
drive name when mounting /image (== /virtual). If a specific drive name
is desired, mount /image drivename=filespec.
Files can be quoted, or use set qualifier_style unix if slashes are a problem.
Note that mount on the command line allows tab completion.
Moved "statistics" command into show.
Coded support for import/binary (fixed records, 512 bytes).
Converted fgets to fgetline
Added show devices for Unix (limited by standard APIs)
Got rid of separate ODS2-Image build.
Various errors in DEBUG code.
List parser for devices and labels used unchecked fixed-size arrays.
Make dynamic, and deal with ", "
Add some paranoia checks to diskio. Fix memory leak under WIN32.
In phynt, write in the right direction (from Larry Baker notes)
Use the VMS-style messages for all errors,warnings.
Allow selection of full message or just text in getmsg()
Use dynamic buffer for command input (except VMS).
Simplify command input and pre-processing.
Mount command improvements:
If labels are specified, make sure they match the volumes
Make sure number of devices specified matches hom block's volset count.
Verify that all volumes claim to belong to the same volume set
Verify that volumes are mounted in RVN order, and that labels match VOLSET.SYS
When a volume set is mounted, announce its name.
Improve cleanup on mount failure (more to do)
Remove obsolete/unused header.h
Dismount command lost drive parameter in previous commit.
Under windows, limit confusion by assigning pseudo-drive letters for images more
carefully. Avoid letters used by Windows.
Dir /detail wasn't reporting rab$b_fsz correctly.
qualifier list keyword syntax error now reported correctly.
Include Windows release .exes in git.
Improve conditional compilation in compat.
Parse & provide help for /qualifier=value /qualifier=(keyword,keyword...)
Use for for dir/date and dir/size
Allow multiple dates for dir. e.g.
dir/date=(created,expired,backup,modified)
Specify size options consistent with VMS:
dir/size=(used,alloc)
Ignore \r in indirect command files under non-windows
Fix various compiler warnings.
Fix bug causing double free when a file isn't found.
Fix bug using uninitialized variable parsing null filename.
Fix bug causing crash when format 3 retrieval pointer encountered.
Add support for readline (command line editing and history on Unix)
Untangle NT I/O so it builds without the direct access SCSI API & works.
Report errors as text messages everywhere.
Add MSVC project files.
Implement most of dir/full
Partially implement XABITM
Add help to command tables.
Allow choice of VMS qualifiers or Unix options.
mount /write // /dev/cdrom
or
mount -write /dev/cdrom
Parse quoted strings as command parameters.
Mount /write "/dev/cdrom"
search [*...]*.txt "My words for you"
Resolve command, parameter & qualifier ambiguity from tables.
Consolidate the various makefiles into a common file with very small
platform-specific wrappers. This simplifies maintenance.
Add diskio module to allow easy access to .iso images and simulator files.
Removes requirement for loop device or equivalent. Builds as a separate
executable.
Writes to the ODS2 volumes are broken.
This patch:
Corrects some symbol conflicts
Raises the optimization level
uses '//' to stop parsing qualifiers to allow copying to unix directories
allows '$" to separate multiple commands on the command line
I scraped the patch off the website, de-htmlized it, and applied it.
Note: I'm not updating the .exes!
This version was on the VMS FREEWARE disk at some point.
It shipped with the included .exes, though modern windows systems certainly don't support the
direct access to SCSI DLL that's used.
1) The readme is out-of-date, and unreadable on github
2) Some tools have their own directories, some don't
3) Many tools have neither readme nor descriptions.
4) Some files are misplaced
This reorganizes so that each tool has its own directory, even if it only has a single file
(Hint: If you use a tool, please add/update READMEs)
The master README is complete, and readable on github
The tools are in alphabetical order within category. There are some cases where this probably isn't the right thing to do, e.g. where there are separate tools that do "to" and "from" conversions.
Each tool has at least a 1-line description in the master readme
This commit does not change any tool.