Trailing-Edge
-
PDP-10 Archives
-
ap-c796e-sb
-
macro.bwr
There are 20 other files named macro.bwr in the archive. Click here to see a list.
March 1978
COPYRIGHT (C) 1976,1978 BY
DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.
THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND COPIED
ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND 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. NO TITLE TO AND OWNERSHIP OF THE SOFTWARE IS HEREBY
TRANSFERRED.
THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT NOTICE
AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
CORPORATION.
DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DIGITAL.
This file contains last minute information and warnings relevant
to MACRO V53 release. All bug fixes discovered since the software and
the DOC file were submitted for distribution are listed in here. This
file serves as additional information to MCR53.DOC. Users should
refer to MCR53.DOC (especially, the known problems and deficiencies
section) for full information.
1.
SYMPTOM: User gets "Relocatable PSECT not implemented" error message
from LINK, when loading a PSECTed program even though the
origin was specified in the MACRO source program.
This problem only occur when multiple .PSECT statements
used for the same PSECT.
SOLUTION: User may chose simply to use the LINK /SET switch in
getting around the problem.
The FILCOM below corrects the code which handles PSECT
attributes.
Instead of turning on relocatable PSECT bit each time
a .PSECT statement without origin is encountered,
the bit is by default turned on:
Replace "SETZM SGATTR(AC1)" @%SEGM3+11 --
MOVSI AC2,<SG.RP==400000>
MOVEM AC2,SGATTR(AC1)
If an origin is given in the same statement or any
subsequent .PSECT statement, bit is cleared.
This requires code chage @%SEGM9(see FILCOM).
File 1) DSK:MACRO.MAC created: 1236 20-MAR-1978
File 2) DSK:MCR53.MAC created: 0846 03-MAR-1978
1)2 TITLE MACRO %53(1021) 27-FEB-1978
1) SUBTTL EDIT BY MCHC/JBC 27-FEB-1978
****
2)2 TITLE MACRO %53(1020) 27-FEB-1978
2) SUBTTL EDIT BY MCHC/JBC 27-FEB-1978
**************
1)2 VEDIT==1021 ;EDIT NUMBER
1) VCUSTOM==0 ;NON-DEC UPDATE LEVEL
****
2)2 VEDIT==1020 ;EDIT NUMBER
2) VCUSTOM==0 ;NON-DEC UPDATE LEVEL
**************
1)7 ;FOLLOWING PATCHES ARE DOCUMENTED IN THE MACRO.BWR FILE
1) ;1021 WHEN MULTIPLE .PSECT STMNTS EXIST FOR THE SAME PSECT, ORIGIN NEED ONLY BE IN ONE.
1) ;*****END OF REVISION HISTORY*****
****
2)7 ;*****END OF REVISION HISTORY*****
**************
1)111 MOVSI AC2,<SG.RP==400000> ;[1021] SET RELOC PSECT BIT
1) MOVEM AC2,SGATTR(AC1) ;[1021] DEFAULT PSECT BRK AND ATTRS
1) ADDM AC2,@SYMBOL ;ADJUST TOTAL SYM CNT
****
2)111 SETZM SGATTR(AC1) ;ZERO PSECT BRK AND ATTRS
2) ADDM AC2,@SYMBOL ;ADJUST TOTAL SYM CNT
**************
1)111 %SEGM9: JUMPNC %SWSEG ;[1021] NO VALUE
1) PUSH P,AC1 ;SAVE INDEX
****
2)111 %SEGM9: JUMPNC [MOVSI AC0,<SG.RP==400000> ;[1016] SET RELOC PSECT BIT
2) IORM AC0,SGATTR(AC1) ;[1016] IN ATTRIBUTE
2) JRST %SWSEG] ;[1016] NO VALUE
2) PUSH P,AC1 ;SAVE INDEX
**************
1)111 SKIPL AC0,SGATTR(AC1) ;[1021] RELOCATABLE PSECT?
1) JRST %SWSEG ;[1021] NO,
1) TLZ AC0,SG.RP ;[1021] YES, NO LONGER TRUE
1) MOVEM AC0,SGATTR(AC1) ;[1021] MAKE IT FIX-ORIGIN
1) JRST %SWSEG ;SWAP PC AND MODE
****
2)111 JRST %SWSEG ;SWAP PC AND MODE
**************
2.
SYMPTOM: "UVE" assembly error on an ARRAY pseudo-op of the
form:
SEARCH XYZ
.
.
.
ARRAY FOO [BAR]
where BAR is define in the universal file XYZ.
SOLUTION: This was broken by edit 713 where a bit in flag word FRR
was used to prevent and resume UNV-file searching.
The patch in ARRAY pseudo-op was intended to
prevent UNV searching of the array name being defined.
Unfortunately, the patch also prevented searching of symbols
used in the dimension argument field. By moving the two
instructions (one used to set and the other to clear the
no-UNV bit) right before and right after doing the search
instead of spanning the whole scope of the ARRAY handling,
the problem is corrected.
Remove @%ARAY+1
TRO FRR,NOUNVS
ADD @NXTVAL+3
TRO FRR,NOUNVS
ADD @NXTVAL+5
TRZ FRR,NOUNVS
Remove @ARAY3+3
TRZ FRR,NOUNVS
File 1) DSK:MACRO.MAC created: 1356 20-MAR-1978
File 2) DSK:MCR53.MAC created: 1258 20-MAR-1978
1)2 TITLE MACRO %53(1022) 27-FEB-1978
1) SUBTTL EDIT BY MCHC/JBC 27-FEB-1978
****
2)2 TITLE MACRO %53(1021) 27-FEB-1978
2) SUBTTL EDIT BY MCHC/JBC 27-FEB-1978
**************
1)2 VEDIT==1022 ;EDIT NUMBER
1) VCUSTOM==0 ;NON-DEC UPDATE LEVEL
****
2)2 VEDIT==1021 ;EDIT NUMBER
2) VCUSTOM==0 ;NON-DEC UPDATE LEVEL
**************
1)7 ;1022 IN ARRARY PSEUDO OP, ALLOW UNV-SEARCHING OF SYMBOLS USED IN DIMENSION ARGUMENT.
1) ;*****END OF REVISION HISTORY*****
****
2)7 ;*****END OF REVISION HISTORY*****
**************
1)133 ARAY2: CALL GETSYM
****
2)133 TRO FRR,NOUNVS ;[713] DON'T SEARCH UNIVERSALS
2) ARAY2: CALL GETSYM
**************
1)133 TRO FRR,NOUNVS ;[1022][713] DON'T SEARCH UNIVERSALS
1) CALL SSRCH ;FIND IT
1) MOVSI ARG,SYMF!UNDF
1) TRZ FRR,NOUNVS ;[1022][713] SEARCH UNIVERSALS AGAIN
1) POP P,V ;GET VALUE BACK
****
2)133 CALL SSRCH ;FIND IT
2) MOVSI ARG,SYMF!UNDF
2) POP P,V ;GET VALUE BACK
**************
1)133 RET
****
2)133 TRZ FRR,NOUNVS ;[713] SEARCH UNIVERSALS AGAIN
2) RET
**************
3.
SYMPTOM: Incorrect value is generated, when an expression of
conditional statements appear on the right side of an
assignment statement, and one of the conditional is
a fail condition. For example:
FOO=<IFNB <>,<5>>
should generate: FOO=0
SOLUTION: Skip over "CALL DSTOW" if nothing is generated.
DSTOW is a routine to fetch the generated code.
ADD @STMNT9+12
CAIN C,'>'
RET
ADD @EVOPD+15
SKIPE AC2
File 1) DSK:MACRO.MAC created: 1544 20-MAR-1978
File 2) DSK:MCR53.MAC created: 1356 20-MAR-1978
1)2 TITLE MACRO %53(1023) 27-FEB-1978
1) SUBTTL EDIT BY MCHC/JBC 27-FEB-1978
****
2)2 TITLE MACRO %53(1022) 27-FEB-1978
2) SUBTTL EDIT BY MCHC/JBC 27-FEB-1978
**************
1)2 VEDIT==1023 ;EDIT NUMBER
1) VCUSTOM==0 ;NON-DEC UPDATE LEVEL
****
2)2 VEDIT==1022 ;EDIT NUMBER
2) VCUSTOM==0 ;NON-DEC UPDATE LEVEL
**************
1)7 ;1023 CORRECT ASSEMBLY OF STMNTS LIKE: "FOO=IFNB <>,<BAR=5>".
1) ;*****END OF REVISION HISTORY*****
****
2)7 ;*****END OF REVISION HISTORY*****
**************
1)15 CAIN C,'>' ;[1023] CLOSING ANGLE-BRACKET?
1) RET ;[1023] YES, RETURN
1) TRO ER,ERRQ ;NO, GIVE "Q" ERROR
****
2)15 TRO ER,ERRQ ;NO, GIVE "Q" ERROR
**************
1)39 SKIPE AC2 ;[1023] SKIP IF NOTHING WAS GENERATED
1) CALL DSTOW ;AC0 = WORD OF CODE GENERATED
****
2)39 CALL DSTOW ;AC0 = WORD OF CODE GENERATED
**************
4.
This problem occurrs with assembling SYSINF.MAC. "E", "P", and "DE"
errors are received on the following lines:
NM.IPF+3 SYSINF PAGE 113
E REPEAT <LI.SIZ+1-.+NM.IPF>,<
NM.IPF+7
P 000134' 000000 000124' NM.INF:: 0,,NM.IPF ;[SYSTEM]INFO ENTRY
NM.IPF+10
DE REPEAT <LI.SIZ+1-.+NM.INF>,<
Users may chose to get around this problem by rearranging the expression
in the REPEAT statements as suggeted below in SYSINF.MAC. Move "-."
to the end of expression in the two REPEAT statements:
REPEAT <LI.SIZ+1+NM.IPF-.>,<
REPEAT <LI.SIZ+1+NM.INF-.>,<
SYMPTOM: "E" error on REPEAT statements of the form:
REPEAT < K-.+TAG>,< ...
where K (a constant) is less that the current relocation
value represented by "." in the expression, such that
"K-." will result in a negative relocated value thus
causing expression to go polish. Users will also get
"P" errors on the labels that follow the problem REPEAT
statement.
SOLUTION: Set "No POLISH switch" in EVALQ routine. This routine
calls the expression evaluator and gives "E" error if
the value returned is either external or POLISH.
Therefor, POLISH will not be generated wherever an
external was illegal.
File 1) DSK:MACRO.MAC created: 0853 24-MAR-1978
File 2) DSK:MACRO.BAK created: 1018 22-MAR-1978
1)6 ;1025 MCHC 24-MAR-78
1) ; Don't go POLISH when evaluating expression used as first
1) ; argument to the REPEAT psudo-op:
1) ; REPEAT <exp>,< ...>
1) ; by setting NOPSW in EVALQ routine.
1) ;1026 - 1077 RESERVED FOR ADDITIONAL V53 PATCHES.
1) ;START OF VERSION 54
****
2)6 ;1025 - 1077 RESERVED FOR ADDITIONAL V53 PATCHES.
2) ;START OF VERSION 54
**************
1)107 EVALQ:
1) IFN POLISH,< TRO FRR,NOPSW > ;[1025] DON'T ALLOW POLISH
1) CALL EVALEX ;EVALUATE EXPRESSION
1) IFN POLISH,< TRZ FRR,NOPSW > ;[1025] RESET FLAG
1) TDZE RC,[-2,,-2] ;WAS AN EXTERNAL FOUND?
****
2)107 EVALQ: CALL EVALEX ;EVALUATE EXPRESSION
2) TLNN FR,POLSW ;WAS POLISH FIXUP REQUIRED?
2) TDZE RC,[-2,,-2] ;WAS AN EXTERNAL FOUND?
**************