System Debugger

mvBase System Debugger

It doesn't matter if you call it Pick, mvBase, R83 or R91 (to name just a few), they all have a system debugger buried somewhere inside. Using a control-break key combination from TCL (Terminal Control Language) will drop you into the world of editing data at a byte level. Its not a pretty world, but necessary if you really want to fix Group Format Errors (GFE). Note that this is not the BASIC debugger where the command prompt is an "*". The system debugger command prompt is a "!". This page will not teach you how to use the system debugger, but is intended to be a handy reference of the commands.

A (DRS)
Shows the current instruction of (DRS).

ADDD (decimal number) (decimal number)
Adds two decimal numbers.

ADDX (hexadecimal number) (hexadecimal number)
Adds two hexadecimal (base 16) numbers.

B (DRS)
Sets a breakpoint at the address at (DRS).

C (DRS)
Switches to a character display format.

D
Shows a list of current traces, breakpoints, and data breakpoints.

DB
Toggles the debugger availability flag when executed from within the SYSPROG account.

DIVD (decimal number) (decimal number)
Divides two decimal numbers.

DIVX (hexadecimal number) (hexadecimal number)
Divides two hexadecimal (base 16) numbers.

DTX (decimal number)
Converts the decimal number to a hexadecimal number.

DTX (base) (decimal number)
Converts a decimal number to the specified (base) number.

E (number of lines)
Specifies the number of instructions to execute prior to returning to the system debugger. If (number of lines) is left out, this is disabled.

END
Terminates the system debugger and returns to TCL.

F (oldFrameIDAddress).(newFrameIDAddress)
Replaces old frame ID addresses entries with entries from a new frame ID address.

G (DRS)
Transfers control to the (DRS) address. If (DRS) is left out, execution continues from the current address.

H
Toggle the echo flag.

I (DRS)
Specify an integer display for (DRS). If (DRS) is left out, subsequent output is displayed in integer.

K (DRS)
Kills the breakpoint (set with the B command) at (DRS), If (DRS) is left out, all breakpoints are killed.

L (DRS)
Show the link fields at frame (DRS).

M
Toggles modal trace.

ME (line number)
Assigned all Primary Control Block (PCB) and symbolic reference data specifications to (line number).

MULD (decimal number) (decimal number)
Multiplies two decimal numbers.

MULX (hexadecimal number) (hexadecimal number)
Multiplies two hexadecimal (base 16) numbers.

OFF
Logs off of the system.

P
Toggles the output display on and off.

R (register address)
Sets an indirect reference to (register address).

SUBD (decimal number) (decimal number)
Subtracts two decimal numbers.

SUBX (hexadecimal number) (hexadecimal number)
Subtracts two hexadecimal (base 16) numbers.

T (DRS)
Sets a trace table entry. If (DRS) is left out, the trace function toggles on and off.

TIME
Display the current date and time.

U (DRS)
Removes a trace table entry for (DRS). If (DRS) is left out, the entire trace table is cleared.

X (DRS)
Specify a hexadecimal display for (DRS). If (DRS) is left out, subsequent output is displayed in hexadecimal.

XTD (hexadecimal number)
Converts (hexadecimal number) into a decimal number.

XTD (base) (hexadecimal number)
Converts a hexadecimal number to the specified (base) number.

Y (DRS)
Sets a y-trace table entry. If (DRS) is left out, the function is toggled on and off.

Z (DRS)
Cancels data breaks set by the Y command.

DFS: Specifies the output display format. The options are:

  • C: Character format.
  • I: Integer format.
  • X: hexadecimal format.

DRS: Specifies either a direct or indirect disk address. If the address is preceded by a period (.), it is treated as a hexadecimal number. If it is preceded by a comma (,), it is treated as a decimal number.

DWS: Indicates the number of bytes to display.

Here's an example using all three:

!(DFS)(DRS);(DWS)

!X,139096,0;20

Results in:

!X,139096,0;20 .000000021F5900021F5700000000000000000000=