Google
 

Trailing-Edge - PDP-10 Archives - ap-c796e-sb - mcn1.rnd
There are no other files named mcn1.rnd in the archive.
.SPACING 1
.TITLE ^^MACTEN.DOC\\ -- CHANGES FROM ^^C.MAC\\ VERSION 7
^^MACTEN.DOC\\ -- CHANGES FROM ^^C.MAC\\ VERSION 7
.BREAK
^JANUARY, 1975
.SKIP 1
^COPYRIGHT 1975, ^DIGITAL ^EQUIPMENT ^CORP., ^MAYNARD, ^MASS.
.SKIP 3
.LEFT MARGIN 7
.TAB STOPS 7
.PARAGRAPH -7
1.0	^^SUMMARY\\
.PARAGRAPH
1.1	^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.
.PARAGRAPH
1.2	^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.
.PARAGRAPH
1.3	^^MACTEN.MAC\\ IS DOCUMENTED IN THE LISTING.
.PARAGRAPH
1.4	^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.
.SKIP 1
.PARAGRAPH
1.5	^PURPOSE OF ^^MACTEN.MAC\\
.BREAK
^^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 ^^DEC\\SYSTEM-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 ^^ASUPPRESS\\ED SO THAT UNREFERENCED DEFINITIONS
ARE DELETED.
.PAGE
.PARAGRAPH
2.0	^^CHANGES\\
.PARAGRAPH
1	^CREATE THIS FILE FROM ^^C.MAC\\ VERSION 7(163).
.PARAGRAPH
2	^CLEAN UP AND CORRECT ANY BUGS INTRODUCED IN THE ORIGINAL
CREATION.
.PARAGRAPH
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.
.PARAGRAPH
4	^MASK OUT THE VALUE IN THE MACRO ^^INSVL.\\
.PARAGRAPH
5	(^^SPR\\ 10-14,209) ^ADD SYMBOLS WHICH GIVE THE UNIT OF
STORAGE ALLOCATION ON THE VARIOUS PROCESSORS. ^THE DEFINITIONS ARE:
.LEFT MARGIN 12
.TAB STOPS 25
.NOFILL
^^.SUAP6==_^D1024	;PDP-6
_.SUAKA==_^D1024	;KA-10
_.SUAKI==_^D512	;KI-10
_.SUAKL==_^D512	;KL-10\\
.FILL
.TAB STOPS 7
.LEFT MARGIN 7
.PARAGRAPH
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:
.LEFT MARGIN 12
.TAB STOPS 25
.NOFILL
^^LSTOF.	;TURN OFF LISTING AND CREF
LSTOF.##X	;TURN OFF JUST LISTING
LSTON.	;RESTORE LIST AND CREF IF TOP LEVEL\\
.FILL
.TAB STOPS 7
.LEFT MARGIN 7
^IN ADDITION, THE SYMBOL ^^LSTIN.\\ CONTAINS THE RECURSION
COUNT. ^IF IT IS INITIALIZED TO MINUS INFINITY, ALL LISTINGS ARE
FORCED ON.
.PARAGRAPH
7	^ADD DEFINITIONS OF THE FORMAT OF THE STANDARD PROGRAM
VERSION PATTERN AS USED IN ^^.JBVER\\ (137). ^THE
SYMBOLS ARE:
.LEFT MARGIN 12
.TAB STOPS 25
.NOFILL
^^VR.WHO	;WHO LAST EDITTED
VR.VER	;MAJOR DEC VERSION
VR.MIN	;MINOR DEC VERSION
VR.EDT	;EDIT LEVEL\\
.FILL
.TAB STOPS 7
.LEFT MARGIN 7
^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.
.PARAGRAPH
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.
.PARAGRAPH
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.
.PARAGRAPH
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.
.PARAGRAPH
13	^CANCELLED BY EDIT 24.
.PARAGRAPH
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.
.PARAGRAPH
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.
.PARAGRAPH
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.
.PARAGRAPH
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.
.LEFT MARGIN 12
.TAB STOPS 25
.NOFILL
^^TYNN.	;SKIP IF FLAG ON
TYNE.	;SKIP IF FLAG OFF
TYO.	;TURN FLAG ON
TYZ.	;TURN FLAG OFF
TYC.	;COMPLEMENT FLAG\\
.FILL
.TAB STOPS 7
.LEFT MARGIN 7
.PARAGRAPH
20	^MORE OF EDIT 12.
.PARAGRAPH
21	^ADD MACRO ^^NDS.\\ WHICH IS EXACTLY LIKE ^^ND\\ EXCEPT
THAT IT ALSO SHOWS THE VALUE RESULTING NOMATTER HOW DEFINED.
.PARAGRAPH
22	^SIMPLIFY THE INTERNAL DEFINITION OF ^^INSVL.\\. ^THERE
IS NO CHANGE OF SPECIFICATION.
.PARAGRAPH
23	^ADD SUPPORT FOR THE ^^KL-10\\ IN THE MACRO ^^JUMPPT\\.
.PARAGRAPH
24	^CANCEL MOST OF EDIT 13 UNTIL IT IS BETTER UNDERSTOOD.
.PAGE
.PARAGRAPH
3.0	^^KNOWN BUGS AND DEFICIENCIES\\
.SKIP 1
^NONE.
.SKIP 3
.PARAGRAPH
4.0	^^CHANGES IN INSTALLATION INSTRUCTIONS\\
.SKIP 1
^TO PRODUCE THE UNIVERSAL FILE AND OBTAIN A LISTING,
SIMPLY COMPILE ^^MACTEN.MAC\\ WITH ^^MACRO\\. ^THERE
ARE NO OPTIONS. ^IN PARTICULAR,
.INDENT 5
^^.COMPILE MACTEN.MAC/CREF\\
.BREAK
AND PLACE THE RESULTING ^^MACTEN.UNV\\ ON ERSATZ DEVICE ^^UNV:\\
(OR ON ^^SYS:\\).
.SKIP 3
.PARAGRAPH
5.0	^^SUGGESTIONS\\
.SKIP 1
^NONE.
.SKIP 1
.PARAGRAPH
[END OF ^^MACTEN.DOC\\]