Trailing-Edge
-
PDP-10 Archives
-
AP-D543V_SB
-
mcn2.doc
There is 1 other file named mcn2.doc in the archive. Click here to see a list.
MACTEN.DOC -- Changes from V1 to V2(25)
February 1977
Copyright (C) 1975,1977
Digital Equipment Corporation, Maynard, Mass.
This software is furnished under a license for use only on a single
computer system and may be copied only with the inclusion of the above
copyright notice. This software, or any other copies thereof, may not
be provided or otherwise made available to any other person except for
use on such system and to one who agrees to these license terms.
Title to and ownership of the software shall at all times remain in
DEC.
The information in this software is subject to change without notice
and should not be construed as a commitment by Digital Equipment
Corporation.
DEC assumes no responsibility for the use or reliability of its
software on equipment which is not supplied by DEC.
MCN2.DOC Page 2
MACTEN.DOC -- Changes from V1 to V2(25)
February 1977
1.0 SUMMARY
This release creates version 2 based on C.MAC. This UNIVERSAL
parameter file contains those definitions from C.MAC which are
independent of the monitor call interface. Most of these are macro
definitions. The principle changes introduce new macros to control
listing formats, to define and reference bytes mnemonically, and to
define and reference flags mnemonically.
This version when combined with UUOSYM to produce C.MAC is upward
compatible with previous versions and completely supersedes them.
MACTEN.MAC is documented in the listing.
Note that MACTEN.MAC and C.MAC are used to compile many programs on
the release tape. None of these changes affect the resulting .REL or
.EXE files, but other software distributed this month and in future
months depends upon this version to assemble.
1.1 Purpose of MACTEN.MAC
MACTEN.MAC is designed to form a consistent and convenient definition
of macros and symbols which occur frequently in the development of any
program on the DECsystem-10. This file excludes anything which is a
function of the monitor call interface so it can be used by any
program including those which do not call the monitor, such as the
monitor itself and various bootstraps. It is defined for use only as
a UNIVERSAL parameter file and is most conveniently used in the form
of the MACTEN.UNV file. A table of contents gives the general layout
of the information. The definition of a particular symbol can best be
found from the cref listing of MACTEN. All symbols are ASUPPRESSed so
that unreferenced definitions are deleted.
MACTEN also includes macros and definitions formerly found in MODUNV.
2.0 EXTERNAL CHANGES
None.
3.0 KNOWN BUGS AND DEFICIENCIES
None.
MCN2.DOC Page 3
4.0 INSTALLTION INSTRUCTIONS
None.
5.0 INTERNAL CHANGES
Edit #
25 Merge MODUNV into MACTEN for INITIA.
6.0 SUGGESTIONS
None.
[End of MCN2.DOC]
[MCN1.DOC is appended as an integral part of MCN2.DOC]
MCN1.DOC Page 4
MACTEN.DOC -- changes from C.MAC V7 to V1
January 1975
1.0 SUMMARY
This release creates version 1 based on C.MAC version 7. This
UNIVERSAL parameter file contains those definitions from C.MAC which
are independent of the monitor call interface. Most of these are
macro definitions. The principle changes introduce new macros to
control listing formats, to define and reference bytes mnemonically,
and to define and reference flags mnemonically.
This version when combined with UUOSYM to produce C.MAC is upward
compatible with previous versions and completely supersedes them. All
SPR's received on C through October, 1974, (10-14,209) have been
incorporated. This file has no DATE-75 dependencies. It requires
MACRO-10 version 50 to assemble many of the macros.
MACTEN.MAC is documented in the listing.
Note that MACTEN.MAC and C.MAC are used to compile many programs on
the release tape. None of these changes affect the resulting .REL or
save files, but other software distributed this month and in future
months depends upon this version to assemble.
1.1 Purpose of MACTEN.MAC
MACTEN.MAC is designed to form a consistent and convenient definition
of macros and symbols which occur frequently in the development of any
program on the DECsystem-10. This file excludes anything which is a
function of the monitor call interface so it can be used by any
program including those which do not call the monitor, such as the
monitor itself and various bootstraps. It is defined for use only as
a UNIVERSAL parameter file and is most conveniently used in the form
of the MACTEN.UNV file. A table of contents gives the general layout
of the information. The definition of a particular symbol can best be
found from the cref listing of MACTEN. All symbols are ASUPPRESSed so
that unreferenced definitions are deleted.
2.0 CHANGES
Edit #
1 Create this file from C.MAC version 7(163).
2 Clean up and correct any bugs introduced in the original
creation.
3 (SPR 10-14,209) Within the macro JUMPPT, remove the tests for
the PDP-6 if it has the same jump address as the KA-10.
MCN1.DOC Page 5
4 Mask out the value in the macro INSVL.
5 (SPR 10-14,209) Add symbols which give the unit of storage
allocation on the various processors. The definitions are:
.SUAP6==^D1024 ;PDP-6
.SUAKA==^D1024 ;KA-10
.SUAKI==^D512 ;KI-10
.SUAKL==^D512 ;KL-10
6 Add two macros which allow nesting of listing controls to turn
on and off the listings. This allows macros to turn off and
then restore the listing status. The macro calls are:
LSTOF. ;TURN OFF LISTING AND CREF
LSTOF. X ;TURN OFF JUST LISTING
LSTON. ;RESTORE LIST AND CREF IF TOP LEVEL
In addition, the symbol LSTIN. contains the recursion count.
If it is initialized to minus infinity, all listings are forced
on.
7 Add definitions of the format of the standard program version
pattern as used in .JBVER (137). The symbols are:
VR.WHO ;WHO LAST EDITTED
VR.VER ;MAJOR DEC VERSION
VR.MIN ;MINOR DEC VERSION
VR.EDT ;EDIT LEVEL
Also define a macro VRSN. which formats the standard version
pattern. This macro takes a single argument. This argument is
1-3 characters and is the prefix of the symbols which define
the values to go into the version bytes. For example, MACTEN
defines MACWHO=0, MACVER=1, MACMIN=0, and MACEDT=17. Then, to
format its version, it simply invokes "VRSN. MAC" which expands
as 000100,,000017.
10 Define a macro SHOW. which takes a single symbol. It causes
the value of this symbol to be listed. This is useful, for
example, to show the value of symbols defined only in pass 1.
11 The proposed Digital coding standard for assembly language
programs specifies that the entirety of any routine appear on
one source page. Normally, routines should be short. However,
frequently long sequences of linear code appear. Therefore, it
is convenient to break the listing in natural places, for
example between "sentences". When this is done, a note should
be included indicating a continuation. The macro CONT. has
been defined to accomplish this. It should be inserted instead
of the normal blank line whenever a page overflow wants to be
forced. No blanks should preceed or follow it. It will break
the page and include appropriate comments.
MCN1.DOC Page 6
12 It is useful to separate the definition of various bytes and
fields from the code which references them. In order to aid
this, three macros have been defined to handle this goal
conveniently and efficiently. The macro DEFST. takes three
arguments. The first is the name of the field to be defined.
The second is the word location of this field. The third is a
mask of the byte within the word specified by the second
argument. This forms a complete definition of the byte. The
macro LOAD. takes two arguments. The first is an accumulator,
the second is the field name defined by DEFST. It loads the
field into the specified accumulator by a MOVE, HRRZ, HLRZ, or
LDB as appropriate. STOR. is identical to LOAD. except that
the accumulator is stored into the field by a MOVEM, HRRM,
HRLM, or DPB. ZERO. is identical to both of these except that
the field is zeroed. The first argument is ignored. This can
not be done to bytes, only to half and full words.
13 Cancelled by edit 24.
14 Define the symbols LH.ALF, RH.ALF, and FW.ORD to be the bytes
which are the entire left half, the entire right half, and the
full word respectively.
15 Define the symbol .ZERO5 (which has value 0) to be a mnemonic
for "leave bits 13-17 zero" because the location is used in an
indirect reference. This is particularly good in tables so
that future editers will not introduce bugs by trying to use
bits 13-17.
16 Add the macro FRAME. which takes one argument which is a list
of temporary (transient) storage locations. This macro is to
be invoked at the start of a routine. The transient storage is
allocated on the stack and is released automatically when the
routine returns. Each symbol is defined as a macro which
automatically includes the stack reference and a negative
offset. This requires that no PUSH or POP be done to the stack
while referencing these locations. This is a poor man's
technique of achieving automatic storage allocation in
recursive routines.
17 Extend the flag concept in edit 13 to allow flags to be defined
in core locations with the FLAG macros. These can be
referenced only by a new set of macros. Since the instruction
set is not as rich for this purpose, not all test instructions
exist. In particular, only the following macros are defined.
Note that these macros generate two words, so they can not be
skipped over. Each macro takes two arguments. The first is
the name of an accumulator which is clobbered. The second is
the name of the flag.
TYNN. ;SKIP IF FLAG ON
TYNE. ;SKIP IF FLAG OFF
TYO. ;TURN FLAG ON
TYZ. ;TURN FLAG OFF
TYC. ;COMPLEMENT FLAG
MCN1.DOC Page 7
20 More of edit 12.
21 Add macro NDS. which is exactly like ND except that it also
shows the value resulting nomatter how defined.
22 Simplify the internal definition of INSVL.. There is no change
of specification.
23 Add support for the KL-10 in the macro JUMPPT.
24 Cancel most of edit 13 until it is better understood.
3.0 KNOWN BUGS AND DEFICIENCIES
None.
4.0 INSTALLATION INSTRUCTIONS
To produce the universal file and obtain a listing, simply compile
MACTEN.MAC with MACRO. There are no options. In particular,
.COMPILE MACTEN.MAC/CREF
and place the resulting MACTEN.UNV on ersatz device UNV: (or on
SYS:).
5.0 SUGGESTIONS
None.
[End of MCN1.DOC]