Google
 

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?
**************