Debug onlyPrivileged Mode: MA, MD, MCS, MZ, MSEC
Modifies the contents of the specified number of words at the specified address.
Syntax
MA offset [count] [base] [newvalue(s)] ABS relative
MD dst.off [count] [base] [newvalue(s)] Data segment
MDB offset [count] [base] [newvalue(s)] DB relative
MS offset [count] [base] [newvalue(s)] S relative
MQ offset [count] [base] [newvalue(s)] Q relative
MC logaddr [count] [base] [newvalue(s)] Program file (default)
MCG logaddr [count] [base] [newvalue(s)] Group library
MCP logaddr [count] [base] [newvalue(s)] Account library
MCLG logaddr [count] [base] [newvalue(s)] Logon group
MCLP logaddr [count] [base] [newvalue(s)] Logon account
MCS logaddr [count] [base] [newvalue(s)] System library
MCU fname logaddr [count] [base] [newvalue(s)] User library
MCA cmabsaddr [count] [base] [newvalue(s)] Absolute CST
MCAX cmabsaddr [count] [base] [newvalue(s)] Absolute CSTX
MV virtaddr [count] [base] [newvalue(s)] Virtual
MZ realaddr [count] [base] [newvalue(s)] Real memory
MSEC ldev.off [count] [base] [newvalue(s)] Secondary store
By default, the current value is displayed. The ENV variable
QUIET_MODIFY can be used to suppress the display of the current value.
Parameters
offset
MA, MDB, MQ, MS only. The CM word offset that specifies the
relative starting location of the area to be modified.
logaddr
MC, MCG, MCP, MCLG, MCLP, MS, MCU only. A full logical code
address (LCPTR) specifies three necessary items:
The logical code file (PROG, GRP, SYS, and so on.).
NM: the virtual space ID number (SID).
CM: the logical segment number.
NM: the virtual byte offset within the space.
CM: the word offset within the code segment.
Logical code addresses can be specified in various levels of detail:
As a full logical code pointer (LCPTR):
MC procname+20
Procedure name lookups return LCPTRs.
MC pw+4
Predefined ENV variables of type LCPTR.
MC SYS(2.200)
Explicit coercion to a LCPTR type.
As a long pointer (LPTR):
MC 23.2644
sid.offset or seg.offset
The logical file is determined based upon the command suffix.
For example:
MC implies PROG
MCG implies GRP
MCS implies SYS, and so on
As a short pointer (SPTR):
MC 1024
offset only
For NM, the short pointer offset is converted to a long pointer
using the function STOLOG, which looks up the SID of the
loaded logical file. This is different from the standard short to
long pointer conversion, STOL, which is based on the
current space registers (SRs).
For CM, the current executing logical segment number and the
current executing logical file are used to build a LCPTR.
The search path used for procedure name lookups is based on the command
suffix letter:
MC
Full search path:
NM: PROG, GRP, PUB,
USER(s), SYS
CM: PROG, GRP, PUB,
LGRP, LPUB, SYS
MCG
Search GRP, the group library.
MCP
Search PUB, the account library.
MCLG
Search LGRP, the logon group library.
MCLP
Search LPUB, the logon account library.
MCS
Search SYS, the system library.
MCU
Search USER, the user library.
For a full description of logical code addresses, refer to the section
"Logical Code Addresses" in Chapter 2.
fname
MCU only. The file name of the NM user library. Since
multiple NM libraries can be bound with the XL= option on a
RUN command,
:run nmprog; xl=lib1,lib2.testgrp,lib3
it is necessary to specify the desired NM user library. For example:
MCU lib1 204c
MCU lib2.testgrp test20+1c0
If the file name is not fully qualified, the following defaults are used:
Default account: the account of the program file.
Default group: the group of the program file.
cmabsaddr
MCA, MCAX only. A full CM absolute code address
specifies three necessary items:
Either the CST or the CSTX.
The absolute code segment number.
The CM word offset within the code segment.
Absolute code addresses can be specified in two ways:
As a long pointer (LPTR):
MCA 23.2644
Implicit CST 23.2644
MCAX 5.3204
Implicit CSTX 5.3204
As a full absolute code pointer (ACPTR):
MCA CST(2.200)
Explicit CST coercion
MCAX CSTX(2.200)
Explicit CSTX coercion
MCAX logtoabs(prog(1.20))
Explicit absolute conversion
The search path used for procedure name lookups is based on the command
suffix letter:
MCA
GRP, PUB, LGRP, LPUB,
SYS
MCAX
PROG
virtaddr
MV only. The virtual address to be modified.
Virtaddr can be a short pointer, a long pointer, or a
full logical code pointer.
realaddr
MZ only. The real mode memory address to be modified.
ldev.off
MSEC only. The logical device number (LDEV) and byte offset
of the data on disk to be displayed. This address is entered in the form
ldev.byteoffset.
count
MA, MC, MD, MDB, MS,
MQ: The number of CM 16-bit words to be modified.
MC, MV, MZ: The number of NM 32-bit words to
be modified.
If omitted, a single line of values is modified.
base
The desired representation mode for output values:
% or OCTAL
Octal representation
# or DECIMAL
Decimal representation
$ or HEXADECIMAL
Hexadecimal representation
ASCII
ASCII representation
This parameter can be abbreviated to as little as a single character.
If omitted, the current output base is used.
newvalue(s)
The new values for the specified locations. Specified new values are
automatically assigned to the locations until the new values are
exhausted. If the new values are omitted, or if they run out, Debug
prompts for the remaining new values. To retain the original value,
simply press Return. The character dot "." can be entered to abort
the modification loop. All locations modified before the dot is
encountered are permanently changed.