Commit Graph

355 Commits

Author SHA1 Message Date
Olaf Seibert
27abf32bf4 Let .LIST and .NLIST affect listing only if they have no argument. 2017-04-27 22:11:31 +02:00
Olaf Seibert
f202984a3c Merge branch 'master' into mlb2 2017-04-27 21:56:54 +02:00
Olaf Seibert
d61cad6bb4 Add some tests for .BLKB .BLKW .ODD .EVEN
.BLKB and .BLKW should have an argument, but if missing it is 1.
.ODD and .EVEN are not allowed to have an argument.
2017-04-27 21:56:02 +02:00
Olaf Seibert
65f29a6497 Recognize, but ignore, the BSD m11 syntax .MCALL (macrolibname)macroname 2017-04-27 20:44:30 +02:00
Olaf Seibert
f07c9045f5 Prepare for macros being defined in "other ways" which are not yet put in the macro definition table. 2017-04-27 20:43:28 +02:00
Olaf Seibert
e4ec481d3d Add RT11 macro libraries.
Hopefully they won't open as RSX ones, because then they still won't work.
Can't test this now.
2017-04-27 20:34:07 +02:00
Olaf Seibert
96cfd4a152 First step in the support of multiple formats of macro (or object) libraries.
No test included since I don't have a distributable RSX .MLB file
available at this time.
2017-04-27 20:33:57 +02:00
Olaf Seibert
eb60cfe315 Very simple .LIST and .NLIST implementation.
Thanks to Don North. Also added a simple test.
Fixes #3.
2017-04-23 18:25:17 +02:00
Olaf Seibert
c771c875cb Fix a use-after-free. Found by Don North.
Also adjust test case to include this code.
Fixes #2.
2017-04-23 18:24:38 +02:00
AK6DN
e3b33ef330 Updated debug output for GSD psect processing 2017-04-10 00:17:00 -07:00
AK6DN
3d380827cb Minor update to psect flag processing 2017-04-09 21:03:19 -07:00
AK6DN
e7d126f682 Updated PSECT address/length processing 2017-04-09 19:41:18 -07:00
AK6DN
688828abd0 Always block out a psect length to be even 2017-04-09 17:55:34 -07:00
AK6DN
f58c4268f9 Update complex relocation evaluation so that it now works, and stores correct value at correct location 2017-04-08 22:46:48 -07:00
AK6DN
ac453f8a0b Added global symbol redefinition/undefined warnings; reformat debug output; change some die to warn 2017-04-08 14:29:46 -07:00
AK6DN
c4f9db5d8f First version with support for multiple .obj files and linking global symbols -- preliminary, lightly tested 2017-04-08 02:49:22 -07:00
AK6DN
364bd9603e Add debugging output for global symbol evaluation 2017-04-08 00:04:35 -07:00
AK6DN
90261543f4 Updated readme file 2017-04-07 13:29:59 -07:00
AK6DN
eeb1147233 More updates staging for multiple object file linking; change name to obj2bin.pl 2017-04-07 13:20:51 -07:00
AK6DN
74a686102c Minor type corrections. 2017-04-05 15:40:21 -07:00
AK6DN
872b33f183 Restructure code in preparation for supporting multiple input .obj files and linking. 2017-04-05 15:35:25 -07:00
John Forecast
9d7f57d0ea Update cosy converter 2017-03-29 14:07:10 -07:00
Mark Pizzolato
4434041146 Update .gitignore 2017-03-29 14:04:37 -07:00
John Forecast
b08ebe8eb0 New tape manipulation tools
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.
2017-03-14 13:44:02 -07:00
Olaf Seibert
433e8ecda6 Add comment on a format strictness. ...
Remove unneeded #define.
2016-10-22 15:13:34 +02:00
Olaf Seibert
2620a1e98f Add .gitignore file. 2016-07-11 22:28:48 +02:00
Olaf Seibert
b8a955792c Fix operand check for XOR which is shared with JSR.
Fixes issue #1.
2016-07-11 22:10:15 +02:00
Don North
9ec5623662 Corrected header 2016-07-10 19:41:57 -07:00
Don North
6e4fe4c66e Initial version 2016-07-10 19:38:33 -07:00
Don North
8aeec20765 Initial commit 2016-07-10 19:36:50 -07:00
Mark Pizzolato
94d94fe695 Add mksimtape from Bob Eager 2016-05-21 07:26:49 -07:00
Paul Koning
e7c1b1f4a8 RSTSFLX: documentation fix to describe the Makefiles correctly. 2016-04-28 11:26:50 -04:00
Paul Koning
ba1f763cc0 Add rstsflx to README file 2016-04-27 15:05:56 -04:00
Paul Koning
bf7c17ab4a Add RSTSFLX V2.6. This is a file system access utility for RSTS
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.
2016-04-27 15:00:42 -04:00
Timothe Litt
e94ba41122 Update ODS2 VHD library with DOS port
Only reason they're separate is because ODS2 uses DOS line endings.
2016-03-25 13:01:59 -04:00
Timothe Litt
b00e213506 Windows support for libvhd and vhd-util
Added windows support for libvhd and vhd-util.

Includes bug fixes as well.

See the README for details.
2016-03-25 12:37:44 -04:00
Timothe Litt
3f193e6f99 Baselevel commit for V2.99
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.
2016-03-23 16:53:27 -04:00
Timothe Litt
076dbe88b9 Preliminary port of libvhd to windows
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.
2016-03-22 20:23:05 -04:00
Timothe Litt
d7d2293838 Add XEN's libvhd
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.)
2016-03-20 08:39:43 -04:00
Timothe Litt
5f00f5b509 Include large file support in SHOW VERSION, work on memory leaks, bufs
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.
2016-03-09 13:58:38 -05:00
Timothe Litt
57049f51b3 Implement correct HOM block search
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.
2016-03-05 17:29:58 -05:00
Timothe Litt
0935e31ba3 Clean up unix show devices. Add show volumes.
Also, clean up virtual devices in mount error paths.

Update MOUNT help.
2016-03-05 15:10:17 -05:00
Timothe Litt
886c1fae06 Preliminary merge with Baker + other changes
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.
2016-03-05 01:27:56 -05:00
Timothe Litt
9187ed8353 Ignore Baker directory (files being considered for merge) 2016-03-03 15:52:09 -05:00
Timothe Litt
101a03ee30 Fix compilation with DEBUG. Split out & improve list parser
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)
2016-03-03 15:49:13 -05:00
Timothe Litt
b2c51a08ad Remove fixed buffers in set default, simplify command_line processing
Convert fixed buffers in set default to dynamic.

Remove unnecessary complexity in command_line assembly.
2016-03-02 23:56:47 -05:00
Timothe Litt
2c8ee0b04c Make messages consistent. Stop using fixed input buffer. Volset mount checks
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
2016-03-02 17:35:50 -05:00
Timothe Litt
45e3b4e500 Add parameter to dismount, better drive letter assignment, small bugs
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.
2016-02-29 22:24:30 -05:00
Timothe Litt
a88888f24e Parse qualifer=value, bugfixes
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
2016-02-29 07:25:42 -05:00
Timothe Litt
61c8001044 Bug fixes and compiler warnings. Unix readline support, pass 1
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.
2016-02-26 17:46:46 -05:00