Google
 

Trailing-Edge - PDP-10 Archives - bb-d549g-sb - macten.doc
There are 12 other files named macten.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]