DECUS 12-136 MOVE

Order Number: XX-D2589-60

This document describes "MOVE," an OS/8 utility program (DECUS No. 12-136) developed by Larry Davis and Carl Ralston. Its primary function is to efficiently transfer files from one OS/8 directory device to another, achieving efficiency by reading the input and output device directories only once.

Key Features and Usage:

  • Purpose: Transfers files between specified directory devices.
  • Invocation: Called from the OS/8 keyboard monitor as R MOVE <output_device>:<input_device>:<file1.ext1>,<file2.ext2>...
  • Success Indicator: Types "DONE" on the teletype if all files are transferred correctly.
  • Requirement: Both input and output device names must be explicitly specified.

Error Handling: The program provides specific error messages for various issues, including:

  • Invalid or unavailable device names (<DEV> NOT AVAILABLE).
  • Input/output directories exceeding OS/8's 6-segment limit (<DEV> DIR SEG, DIR OVERFLOW).
  • Files not found on the input device (<FILE> NOT FOUND).
  • Files too large for the output device (<FILE> TOO BIG).
  • It explicitly states that interruptions (e.g., Ctrl+C) are not allowed once the program starts moving the first file (NO!!).
  • The document also notes specific cases where the program returns to the monitor without an explicit error message (e.g., calling R MOVE with no parameters, or with only an output device specified).

Internal Mechanism: MOVE operates by first loading device handlers for both input and output, then reading their entire directories into memory. It then iteratively looks up each specified file on the input device, adds its entry to the output directory (managing directory segment splitting as needed), and finally performs the actual data transfer. After all files are transferred, the modified output directory is written back to the device.

Chaining to MOVE: For repetitive or complex file transfer sequences, the document describes a "chaining" method. This allows users to write a short program that pre-populates a specific memory buffer (starting at location 01000) with the MOVE command line parameters (device and file names), effectively automating the transfer process. Limitations include a maximum of 42 files and a buffer size constraint. An example PAL-8 assembly listing for a program (STORE) demonstrating this chaining is provided.

Disclaimer and Compatibility: The document includes a disclaimer from DECUS, stating that MOVE is a "USER program" with no quality control, warranty, or implied responsibility, functioning merely as a clearinghouse. It also lists specific source code changes required for the program to work with PS/8 systems.

XX-D2589-60
October 1972
8 pages
Quality

Original
0.4MB

Site structure and layout ©2025 Majenko Technologies