Using RSX180

Jump to:

MCR commands
The Indirect Command Processor
PIP commands
CCL commands
Other utilities
Program development

MCR commands

Like in RSX-11M, when entering a command name only the first three letters are meaningful to MCR, the rest is ignored; the only exception being the command HELP. If the command is not recognized, MCR will try to find an installed task with the same name and execute it.

ABO [taskname]

Terminates (aborts) execution of the specified task. If no task name is specified, the task started by a RUN command (TTnn) is aborted.

Privileged users can abort any task. Non-privileged users can only abort tasks started from their own terminal.

ACS ddn:/BLKS=n

Privileged command. Allocates a checkpoint file on the specified device if n is greater that zero. If n is zero, the use of the checkpoint file is discontinued.

ACT [/ALL][/TERM=ttn:]

Show active tasks started from the current terminal.

If the command is issued with the /ALL switch, all active tasks in the system are displayed. To display the task names of all the active tasks for a specific terminal, use the /TERM switch.

ALT taskname/PRI=nnn
ALT taskname/RPRI=nnn

Privileged command, alters task priority. /PRI sets the task's default priority, while /RPRI sets the task's running priority.

ASN physical=logical[/GBL][/LOGIN][/TERM=ttn:]
ASN =[logical][/GBL][/LOGIN][/TERM=ttn:]
ASN [/GBL][/LOGIN][/TERM=ttn:]

Defines, deletes or displays logical device assignments.

The options are:

/GBL Defines, deletes or displays global logical-device assignments
/LOGIN Defines, deletes or displays login logical-device assignments
/TERM=ttn: Defines, deletes or displays logical-device assignments for the specified terminal

All option switches are privileged. Non-privileged users can define, delete and display only local logical-device assignments.

ATL [taskname]

Display the name and the status of all active tasks in the system, or the status of a particular task.

BRO ttn:message
BRO LOG:message
BRO ALL:message

Send (broadcast) message to one terminal (ttn), to logged-in terminals (LOG), or to all terminals (ALL).

ALL and LOG are privileged keywords.

BYE

Terminates the current session and logs the user out of the system.

CAN [taskname]

Privileged command, cancels time-based initiation requests for a task (see the RUN command). If any time-based schedule requests for the task exist, they are removed. If the task is executing, the execution is not affected.

CLQ

Displays information about tasks currently in the clock queue. Any pending time-based schedule requests will be displayed.

DEV
DEV dd:
DEV ddn:
DEV /LOG
DEV /MOU

With no additional options, the DEV command displays the names and status of all devices in the system.

If dd: is specified, only all units of the specified device will be listed.

If ddn: is specified only the status of the specified device and unit will be listed.

Use the /LOG switch to list all logged-in terminals.

Use the /MOU switch to list all mounted devices.

DMO ddn:

Dismounts the specified device. Privileged unless the device is mounted public or private to the terminal.

FIX taskname

Privileged command, loads and locks a task in memory. The task specified in the argument must be installed and inactive.

Fixed tasks remain physically in memory even after they exit. They do not have to be loaded when a request is made to run them.

HEL [username]
HELLO [username]

Logs onto this system. If username is not specified, the user will be prompted for one.

HELP [topic [subtopic]]

Displays help about the specified topic.

INS [$]filename[/INC=n][PRI=n][/TASK=name][/RUN[=REM][/CKP=NO][/ACP=YES]

Enters (installs) a task into the System Task Directory (STD), making it known to the system.

The options are:

/PRI=n Set task running priority to n
/RUN[=REM] Start task immediately. If REM is specified, the task will be removed on exit.
/INC=nnn Specify a memory increment
/TASK=name Specify an alternate task name
/CKP=NO Disables checkpointing of the installed task
/ACP=YES Indicates that the task is an Ancillary Control Processor

Privileged users can specify any options. Non-privileged users are allowed to use the INS command only when the option /RUN=REM is specified.

INI ddn:[["]label["]][/options...]

Initializes a file storage device for use with RSX180.

The options can be:

/CF Ask (/-CF do not ask) for confirmation before initializing the main directory and related files. Default is to ask.
/MF:nnn or /MF=nnn sets the maximum number of files (entries in the index file) that can be stored in the volume.
/PR:hhhh or /PR=hhhh or /PR=[rwed,rwed,rwed,rwed] where hhhh is an hexadecimal value and rwed read-write-execute-delete protection bits specification. Sets the default file protection for newly created files. Default is /PR=FFFF or /PR=[rwed,rwed,rwed,rwed] (all actions granted to everyone.)
/WB write boot loader and update system file information in boot blocks.

LUN taskname

Displays static LUN assignments of a task.

MOU ddn:[/ACP=acpname]

Connects a device to the filesystem processor so files can be accessed.

The /ACP option can be used to specify an alternate Ancillary Control Processor.

The command is privileged unless the device is public.

PAR

Display existing memory partitions.

RED new=old

Privileged command, redirects I/O requests from old device to new.

REM taskname

Privileged command, deletes a task from the System Task Directory (STD) and thereby removes the task from the system. This is the complement of the MCR INS command.

RES [taskname]

Resumes the execution of a stopped task. Non-privileged users can resume only tasks started from their own terminal.

RUN [$]filename[/PRI=n][/TERM=ttn:][/INC=nnn][/TASK=name][/CKP=NO][/CMD=command]

Run a task with the specified options:

/PRI=n Set task running priority to n
/TERM=ttn: Start task on the specified terminal
/INC=nnn Specify a memory increment
/TASK=name Specify an alternate task name
/CKP=NO Disable task checkpointing
/CMD=command Specify a command line argument, must be the last option in the line

RUN taskname dtime[/RSI=rsi]

Time-scheduled task request: run the specified task at a time increment from now, where taskname is the full 6-character name of the installed task to run, and dtime is the time interval and has the form nnnu, where nnn is a numeric value and u the units (H = hours, M = minutes, S = seconds, T = ticks). Privileged command.

If specified, the RSI option determines the reschedule interval (i.e. how often the task will be re-run.) The format of the rsi parameter is the same as for dtime.

SET /option

where option can be any of the following:

/ECHO=ttn: Enable local echo
/NOECHO=ttn: Disable local echo
/LOWER=ttn: Enable lowercase input
/NOLOWER=ttn: Convert lowercase input to uppercase
/CRT=ttn: Enables backwards character delete option
/NOCRT=ttn: Disables backwards character delete option
/SLAVE=ttn: Slave terminal (reject unsolicited input)
/NOSLAVE=ttn: Remove slave status from terminal
/BRO=ttn: Enable receiving of broadcast messages
/NOBRO=ttn: Disable receiving of broadcast messages
/LOGON Enable user login
/NOLOGON Disable user login
/PRIV=ttn: Make terminal privileged
/NOPRIV=ttn: Make terminal non-privileged
/DIR=[dir] Set or display current directory
/PUB=ddn: Establish the specified device as public device
/HOST=hostname Displays or sets the host name
/COLOG Displays the current console terminal and logfile assignments
/COLOG=ON Starts console logging
/COLOG=OFF Stops console logging
/COLOG/NOCOTERM Disables console terminal
/COLOG/COTERM[=ttn:] Changes the console terminal assignment. If ttn: is not specified, the most recent assignment is restored (or TT0: after boot.)
/COLOG/NOLOGFILE Disables the log file
/COLOG/LOGFILE[=[filespec]] Changes the log file assignment. If =filespec is not specified, the default log file is restored. If only = is specified, a new version of the log file will be created.
/RNDC=nnn Displays or sets the duration of the scheduler's round-robin interval in ticks
/RNDL=nnn Displays or sets the lowest priority to be considered for round-robin scheduling
/RNDH=nnn Displays or sets the highest priority to be considered for round-robin scheduling
/SWPC=nnn Displays or sets the duration of the swapping interval in ticks
/SWPR=nnn Displays or sets the priority range for swapping

LOGON, NOLOGON, PRIV, NOPRIV, PUB, HOST, COLOG, RNDC, RNDH, RNDL, SWPC and SWPR are privileged options. Non-privileged users are only allowed to change the characteristics of their own terminal.

STP taskname

Stops the execution of the specified task. Non-privileged users can only stop tasks started from their own terminal.

SYN

Flushes the filesystem buffers.

TAL [taskname]

If taskname is not specified, information is displayed for all tasks installed in the system. The display format is the same as that of the MCR ATL command.

TAS [taskname][/DEV=ttn:]

Displays the list of installed tasks (System Task Directory).

TIM [hh:mm[:ss]] [MM/DD/YYYY]
TIM [hh:mm[:ss]] [DD-MMM-YYYY]

Displays or sets the system date and time. If no argument is specified, the command displays the current time and date. Only privileged users can set the date and time.

UFD ddn:[dirname]/options...

Create user directory. Note that the square brackets around dirname are part of the syntax and therefore mandatory. The command accepts the following options:

/ALLOC=n Pre-allocate the specified number of blocks (currently ignored)
/PROT=[...] Set the access protection bits (currently ignored)
/OWNER=[grp,usr] Set the directory ownership

UNF taskname

Privileged command, frees a fixed task in memory. This is the complement of the MCR FIX command.

Catch-all task support

Any command line that is not recognized by MCR is passed entirely to a task named ...CA. if such task is installed. The mechanism allows using an external task as a CLI extension (see e.g. CCL below.)

Indirect Command Processor

The Indirect Command Processor (ICP) is a program that reads an an Indirect Command File, interprets control directives and passes CLI commands to the Command Line Interpreter (typically MCR). Think of it as a simple scripting language for the CLI.

The ICP normally runs under the task name 'AT.' and is invoked automatically by MCR if the command begins with an '@'.

The ICP directives follow closely the syntax of the RSX-11M version, with a few differences:

  • Default radix is decimal, vs. octal for RSX-11M.
  • Arithmetic expression evaluation honors operator precedence rules, unlike in RSX-11M where precedence is ignored.
  • .BEGIN - .END blocks are not (yet) supported.
  • .ERASE erases all the variables.
  • .CHAIN is not implemented yet.
  • Many of the special variables are not yet implemented.

Nevertheless, the differences and missing fratures are small enough so that most RSX-11M command files will work with little or no change.

PIP

The PIP program is used to perform several filesystem operations such as listing directories, copying and renaming files.

Directory operations

Command format:

PIP [outfile=][dev:[dir]]/switch

where switch can be one or more of:

/LI display directory of mounted device
/BR display brief directory, can be used alone or together with /LI
/FU display full dir info, can be used alone or together with /LI
/FR display free space
/ID display PIP version
Single-file operations

Command format:

PIP [dev:[dir]]file/switch

where switch can be one or more of:

/DE delete file
/SD selective delete
/PU:n purge to the specified number of single copies (n is optional and defaults to 1)
/UN unlock file
/PR:[rwed,rwed,rwed,rwed] set file protection
/OW:[group,user] set file ownership
/NM suppress file not found messages
Multiple file operations

Command format:

PIP dest[/sw0]=src1[/sw1][,src2[/sw2]][,...]

where sw0 (for output file) can be:

/CO make output file contiguous
/-CO make output file non-contiguous (default is to make output file of same type as original), /NOCO is also allowed
/PR:[rwed,rwed,rwed,rwed] set output file protection
/OW:[user,group] set output file ownership
/NM suppress file not found messages

and sw1, sw2, etc. (for input files) can be:

/NV force new version of output file
/SU supersede an existing version of the output file
/CD preserve creation date
/RE rename file; the /CO output switch is not allowed
/NM suppress file not found messages

Examples:

PIP dy1:[user2]=dy1:[user1]*.mac;*
PIP outfile.txt=file1.txt,file2.txt,[user5]file3.txt

PIP SY:=[user2]*.mac  ; 
copies to current directory on SY:
PIP DU2:=*.TXT;*      ; 
copies to current directory on device DU2:
PIP test.txt=TI:      ; 
creates file from console input
PIP TI:=test.txt      ; 
displays file on console

Notes on wildcards

The asterisk '*' matches a group of characters, the percent sign '%' a single char. The asterisk can be specified anywhere and in any combination with other characters, including other asterisks and percent signs e.g.: A*, *A, *A*, *A*B, *A*B% etc. This is different than for example in CP/M, where the asterisk is allowed only at the end of the name specification.

CCL

CCL is a simple extension to MCR that can run as standalone or catch-all task and implements shortcuts for some commonly-used commands, as well as a couple of new commands (see list below).

CCL is actually the remaining of the original CLI written for the 8080 system. As more and more RSX-11M-like features were implemented, the CLI was split in two: the task manipulation section slowly morphed into MCR, while the file handling section became obsolete after PIP was written; the few remaining commands (COPY, REMANE, etc.) were simplified to just invoke PIP as an external task to perform the corresponding function.

Following an idea from DECUS, the section with the obsoleted commands was renamed as CCL and became an extension to MCR, offering an alternative syntax to some commands. From DECUS' CCL was also taken the idea of the HEY command (see description below.)

When entering a CCL command you do not have to type the whole word, the first unique letters are enough (for example, SH for SHOW, DIR for DIRECTORY, etc). If the command is not recognized, CCL will try to find a program with the same name in the LB0:[SYSTEM] directory and execute it.

You can get a quick list of the available commands by typing 'CCL ?' at the MCR prompt. Likewise, to get a list of options for a given commands, type the command name followed by '?', e.g. 'SHOW ?'

ASSIGN physical logical

Assigns the logical device name to a physical device. The command is translated to the equivalent ASN command of MCR.

CD [directory]
CHDIR [directory]

Makes the specified directory current. If the name is not specified, the current directory name is displayed. The command is translated to the equivalent SET /DIR MCR command.

COPY oldname newname

Copy a file to a new location. The command is translated into a PIP newname=oldname/NV/CD command.

DATE

Displays the current date and time. The command is translated to the equivalent TIM MCR command.

DELETE filespec

Deletes the specified file or files (filespec may contain wildcards.) The command is translated into a PIP filespec/DE command. This allows you to specify additional PIP switches to the command (e.g. /SD for a selective delete, etc.)

DIRECTORY [filespec]

Lists the specified directory, or the current one if filespec is not specified. The command is translated into a PIP filespec/LI command. This allows you to specify additional PIP switches to the command (e.g. /BR for a brief display, etc.)

FREE ddn:

Display the amount of free space in the specified device. The command is translated to a PIP ddn:/FR command.

HEY taskname

Waits for the specified task to terminate and then displays the exit status. The command is implemented internally by CCL.

MD directory
MKDIR directory

Creates the specified directory. The command is implemented internally by CCL.

PURGE [filespec]

Delete all old copies of a file or files (leave only the newest version.) If filespec is omitted, *.* is assumed. The command is translated into a PIP filespec/PU:1 command, which allows you to specify extra switches (e.g. /LD to list deleted files, /NM to suppress file-not-found messages, etc.)

RD directory
RMDIR directory

Deletes the specified directory. The command is implemented internally by CCL, and will fail if the directory is not empty.

RENAME oldname newname

Renames a file. The command is translated into a PIP newname=oldname/RE command.

SHOW option

where option can be any of the following:

DATE Show current date and time
DEVICES Show physical and logical devices
LABEL Show the volume label for the specified device
LOGINS Show logged-in users
MEMORY Show the amount of used and available memory
MOUNTED Show mounted devices
TASKS Show running tasks
VERSION Show system version

SYNC

Flushes the filesystem cache to disk.

TYPE filespec

Displays the specified file or files on the terminal. The command is translated into the equivalent PIP TI:=filespec command.

WHO

Displays logged-in users. The command is translated into the equivalent DEV /LOG MCR command.

Other utilities

VMR

Used to configure the system image after being built (e.g. to create partitions, install the necessary tasks, etc.), and is similar in concept and functionality to the RSX-11M version.

DMP

Dump file blocks in hexadecimal and ASCII format.

FMT

Floppy disk formatter.

BAD

Filesystem bad block locator.

VFY

Filesystem check and validation utility.

FDISK

Port of the GIDE partitioning utility.

RMD

Animated display of system memory, active tasks or task status. Care has been taken to make the look and feel as close as possible to the RSX-11M version.

SHUTUP

System shutdown program.

DCU

Displays the disk cache usage.

UPT

Displays the system up time.

TEM

Example program for the custom CT: device driver. Displays the temperature measured with a Dallas DS1820 chip connected to the P112 parallel port.

WHO

Displays logged-in terminals and which tasks are running under them.

VIEW

Bi-directional text file viewer; has also a hexadecimal mode. The distributed disk image installs this task with the name ...MOR (more).

MD5

Computes and displays the MD5 hash of a file.

The similarities between the system calls of the current version of RSX180 and RSX-11M makes it possible to port simple applications. As an exercise, the following utilities were ported from the old DECUS collection:

CPU

Displays CPU usage in real time.

CAL

Calendar program, similar to Unix's cal.

CLK

Animated VT100/VT52 clock with large digits.

COOKIE, MURPHY and QUOTE

Display random funny remarks.

MCE

Command Line Editor, allows using the cursor keys to edit the MCR command line. Old commands can be recalled, aliases can be defined, etc.

Program development

TED

Screen text editor, was my favorite at the time. This version is a clone of the RT-11 version. Can edit files larger than the available task memory.

VDO

Another screen text editor, this one is based on a disassembly of the old CP/M editor of the same name from the DOSGG group (sources were originally available, but I haven't been able to find them). The interface was changed to ressemble Linux's joe, which in turn is WordStar-like. The editable file size is limited to the amount of memory available to the task.

BAS

Z80 port of the old BASIC-11 interpreter.

MAC

Z80/Z180/Z280 Macro-Assembler.

TKB

Task builder, based on Digital Research's LINK 1.31.

MKT

Converts a binary image into a TSK file by adding an appropriate header. Obsoleted now by TKB.

ZAP

Screen-oriented hexadecimal file editor.

Last modified: 8-Feb-2020.