TAPE MONITOR C

This implementation of Tape Monitor C is mostly complete, some features are not implemented. These features are represented via the communications area, which is located at 0100-0233 (octal). The following are functional to the extent described here.

NOTE! When making changes to the communication area, existing punctuation MUST be preserved.

Program Name
Locations 0104-0111 (octal) in the communications area contain the program name of the last segment card loaded. For search features, this field may be set to the desired program name to be loaded.
Segment Name
Locations 0112-0113 (octal) in the communications area contain the segment name of the last segment card loaded. For search features, this field may be set to the desired segment name to be loaded.
Visibility Mask
Locations 0161-0166 (octal) in the communications area contain the visibility mask. Default is 0400000000000, "A".
Revision Number
Locations 0101-0103 (octal) in the communications area contain the revision number of the last segment card loaded.
Return for Normal Call
A program may branch to location 0202 (octal), in 3-char address mode, to effectively exit and return to monitor control. The monitor will start loading the next program, according to parameters in the comunications area.
Call Method
Location 0100 (octal) contains the call method. 000 is to retrieve call cards from the card reader. 001 is to use call parameters from the communications area (manually entered).
General Return Address
A program may branch to the address in location 0213 (octal), in 3-char address mode, to effectively exit and return to monitor control. The monitor will halt and await operator instructions/actions.
Fixed Start 0
A program may branch to location 0126 (octal), in 3-char address mode, to effectively exit and return to monitor control. The monitor will halt and await operator instructions/actions. This is also a convenient way to return to the monitor from the front panel (or console). For example, type "A 77 0000126" on the console, press 3-char address mode, and press RUN.
Tape Drive
Location 0114 (octal) in the communications area contains the tape drive number, 0-7.
Search Mode
Location 0157 (octal) in the communications area contains the search mode key. It defaults to 077 (octal) and is reset by the General Return. The following search mode keys (octal) are implemented:
Relative Position
Location 0156 (octal) in the communications area contains the relative position for Search Mode 001. Default is 001, which indicates that the next segment is to be loaded (same effect as Search Mode 077).
Start Mode
Location 0160 (octal) in the communications area contains the start mode key. This directs the monitor what to do after loading a segment. The following are implemented:
Search Direction
Location 0152 (octal) contains the search direction. This is usually not specified, the search will proceed forward until the end of the tape, then search backward to the beginning.
Halts
The following halts are implemented:

BOOTSTRAP

The tape image containing Card Monitor C (only) is named "brtboot.mti". This is normally not used, rather an image is created from this with program segments appended. This procedure uses the tape PCU address "40". If the tape control is at a different PCU address, substitute that PCU in the instructions.

  1. Insert "brtboot.pcd" in tape drive 0.
  2. Add any call cards to the card reader hopper.
  3. Press INITIALIZE
  4. Enter 040 in Control and 0000000 in Address and press BOOTSTRAP, or on the console type "B 40 0000000". This loads the "1HDR " record, which is not used.
  5. Enter 040 in Control and 0000000 in Address and press BOOTSTRAP, or on the console type "B 40 0000000". This loads the bootstrap record. At this point, the tape PCU address may be entered, if something other than 040. Locations 065, 073, and 0101 (octal) must be updated with the desired PCU.
  6. Press RUN. This gets to "halt 1".
  7. Press RUN. This gets to "halt 3".

At this point, the system should halt with AAR=0 and BAR=017002 (octal). The monitor is now ready for operation.

EXAMPLE

This example uses a set of "Hello World" programs, each having a different name that corresponds to its relative position in the tape image ("HELLO1" is the first, "HELLO5" is the 5th/last). All these programs have the segment name "01". These programs, with the bootstrap, are assembled into the tape image "test1.mti". Images for this example are found on the web site downloads page.

This example uses the console "control mode", but the equivalent tasks may be performed using the front panel.

  1. Load "test1.mti" on tape drive 0.
  2. Load "calls.pcd" in the card reader hopper.
  3. Press INITIALIZE.
  4. Type "B 40 0000000" to skip "1HDR ".
  5. Type "B 40 0000000".
  6. Press RUN.
  7. (optional) Confirm "halt 1" by typing "P 70" and seeing "0017001".
  8. Press RUN.
  9. (optional) Confirm "halt 3" by typing "P 70" and seeing "0017002".
  10. Press RUN to start reading call cards. The first in "HELLO3", and the message "HELLO WORLD, I AM HELLO3/01" should appear on the console.
  11. Press RUN to read the next call card. This is "HELLO5".
  12. Press RUN to read the next call card. This is "HELLO3".
  13. Press RUN to read the next call card. This is "HELLO1".
  14. Press RUN to read the next call card. This is "HELLO4".
  15. Press RUN to read the next call card. This is "HELLO2".

CALL CARDS

Call cards may be created using the tools utility "callcard", which will append new call cards to the specified "pcd" file. As an alternative, the KeyPunch simulator may be used to create call cards manually. Call cards have the following format:

PROGRAMS

Available programs are in the "hw2000/programs/bin" directory on the github repository. Mag Tape program images generally need to be assembled into BRT (Binary Run Tape) images, for example using the tool "brtcat".

APPENDIX

Comparison of memory usage by monitors: