MACRELRN.DOC MACREL/LINK Release Notes Order No. AA-5663B-TA DISCLAIMER This document file was created by scanning the original document and then editing the scanned text. As much as possible, the original text format was restored. Some format changes were made to insure this document would print on current laser printers using 60 lines per page. The original spelling and grammar has been preserved. 1-Feb-1997 MACREL/LINK Release Notes Order No. AA-5663B-TA ABSTRACT This document describes the differences between version 1 and version 2 of MACREL and LINK, and current restrictions. SUPERSESSION/UPDATE INFORMATION: Supersedes AA-5663A-TA OPERATING SYSTEM AND VERSION: OS/8 Version 3D and later releases ---------------------------------------------------------------------- | To order additional copies of this document, contact the Software | | Distribution Center, Digital Equipment Corporation, Maynard, | | Massachusetts 01754 | ---------------------------------------------------------------------- digital equipment corporation - maynard. massachusetts First Printing, October 1977 Revised: January 1979 The information in this document is subject to change without notice and should not be construed as a commitment by Digital Equipment Corporation. Digital Equipment Corporation assumes no responsibility for any errors that may appear in this document. The software described in this document is furnished under a license and may be used or copied only in accordance with the terms of such license. Digital Equipment Corporation assumes no responsibility for the use or reliability of its software on equipment that is not supplied by DIGITAL. Copyright (c) 1977, 1979 by Digital Equipment Corporation The postage prepaid READER'S COMMENTS form on the last page of this document requests the user's critical evaluation to assist us in preparing future documentation. The following are trademarks of Digital Equipment Corporation: DIGITAL DECsystem-10 MASSBUS DEC DECtape OMNIBUS PDP DIBOL OS/8 DECUS EDUSYSTEM PHA UNIBUS FLIP CHIP RSTS COMPUTER LABS FOCAL RSX COMTEX INDAC TYPESET-8 DDT LAB-8 TYPESET-10 DECCOMM DECSYSTEM-20 TYPESET-11 ASSIST-MM RTS-8 TMS-11 VAX VMS ITPS-10 DECnet IAS SBI 1.0 NEW FEATURES OF MACREL/LINK o MACREL and LINK now allow you to write programs that can use up to 128K (32 fields) of memory if your machine has the KT8/A memory extension option. o Page 0 literals are now shared among program sections. You no longer have to create a separate page zero program section for these literals. o The .LIST directive has two new optional arguments: TOC (table of contents), and ST (symbol table). o LINK can generate an ABSLDR binary output file by using the /B command string option switch. o The XEDF special operator returns the field number of a symbol in a special format for RTS/8 device handler calls. o KREF does not cross-reference local symbols unless you use MACREL's /K command string option switch. o You can now place multiple .ENABLE and .DISABL directives on the same line. o The .LEVEL special operator allows you to obtain at LINK time the overlay and level of a program section. o There are three new program section directive arguments: OVERLAY to declare an overlay number LEVEL to declare a level number ROOT to declare the program section is the main or resident code. o The .SECREF directive allows you to declare an external symbol that LINK will not attempt to resolve unless it encounters a second reference to the symbol. o MACREL will print short and long form diagnostic messages at the terminal. o It is now legal (and dangerous) to set the current location counter to a value that is unknown at assembly time. The current location value in the assembly listing appears as four question marks (????). The assembler flags subsequent references to the current location counter that use the period operator (.) or tags as being undefined. If you use this feature, be sure to read the instructions in Chapter 10 of the MACREL/LINK User's Manual. 1 2.0 ERRORS CORRECTED FROM VERSION 1 o Error checking by MACREL is improved for illegal redefinition of tags. o .FSECT literals now work as described. o The FILENAME directive no longer generates the last word twice. o The DEVICE and FILENAME directives no longer accept extraneous characters at the end of the argument string. o The ZBLOCK directive no longer accepts illegal arguments. o The existence of a quote (") or uparrow quote (^") at the end of a line no longer halts the assembler. o Uparrow quote (^") now works as documented. o OS/8 packing mode now works as documented. o RELOC N causes MACREL to check that the last RELOC was properly terminated. o At the end of a pass MACREL checks that all RELOCs were matched. o ^D, ^O, and ^" constants are now always absolute. o PAGE, RELOC, and FIXTAB directives will now accept an argument terminating right angle bracket (>). o .LIST directive's ME and MEB conditions now default to off. 3.0 RESTRICTIONS IN THIS VERSION o The EXPUNGE directive will not delete program section names or the .LISTWD and .ENABWD directive keywords o LINK may not always set bit 4 (overlay bit) of the Job Status Word properly. To avoid this problem, use LINK's /W=m command string option switch to explicitly specify the status of this bit. For example, /W=200 sets the bit to 1. o Source input lines must not be longer than 120 characters; otherwise unpredictable results may occur. o If you are coding literals in page 0 and are using the parentheses ( () ) construction rather than the square bracket ([]) construction, MACREL will not allow you to use a right parenthesis ()) to terminate the literal. 2 o MACREL will prematurely abort assembly if you accidentally omit an argument to an .ENABLE, .DISABL, or .IF directive. o Do not nest literals involving the current page and page 0. (Example: TAD ([4 ) This may generate erroneous results. o If you specify .NOLIST MD, the .ENDM directive at the end of the macro definition will still appear on the assembly listing because MACREL considers this to be outside the body of the macro definition. o If the assembler runs out of buffer space while processing a .REPT directive, you will get the diagnostic message: SY - RAN OUT OF ROOM IN FREESPACE. This message is normally associated with macro definition processing. Internally, however, MACREL treats .REPT as a special kind of macro. o If you attempt to redefine a global symbol via a global declaration, MACREL flags the error with the wrong message: ERROR LOADING HANDLER. o Do not abort a .REPT directive with the .MEXIT directive if the .REPT range is a range generated from within the body of another macro. o If you have statement lines that are in error on certain passes only, the error count on the header block of the assembly listing may not agree with the count printed at the terminal. This is because the listing error count is determined at the end of pass 1, and terminal error count is the number of errors in the last pass. Both counts must be zero to indicate an error-free program. o If you erroneously assign a complex relocatable expression to a symbol, MACREL prints the message UNKNOWN ERROR because it can't be more specific. Example: .EXTERNAL FOO A=FOO+FOO o The MACREL assembler must reside on the system device (SYS:). The monitor command RUN dev:MACREL causes unpredictable results. o If you use the backslash (\) operator more than four times in an expression, MACREL generates the following error message at the terminal: BE @ (sect name) (error line) and terminates operation. o MACREL does not allow you to automatically program across field boundaries. Instead, as in PAL8, its program counter wraps around to the beginning of the field. 3 o Be careful when using .PUSH and .POP directives that you .POP the symbols off the stack exactly in the order that you .PUSHed them on. For example: .PUSH A,B,C, . . . .POP C,B,A Otherwise, you will inadvertently redefine the symbols to values on the stack that belong to other symbols. MACREL does not detect this as an error. o MACREL does not detect as an error conflicting arguments in .ENABLE, .DISABL, or Program Section Directives that occur on the same line. Instead, it accepts all arguments up to the last conflict as the argument string to use. o MACREL does not detect as an error the use of a PAGE directive in a page zero program section (.ZSECT) as an error. This will cause LINK to generate nonsensical error messages. o The assembler does not flag as an error .FSECTs that are longer than one page (128(10) locations). Instead, it enters an infinite loop that you must terminate by typing a CTRL/C. o MACREL does not number listing pages correctly if you use either the /J command string option or the NOLIST ME directive. This is because it still counts the lines even though they are being suppressed in the listing. o KREF will not accept large files and enters an infinite loop that produces meaningless output. o It is illegal to create an .ASECT that causes loading into location 7777 of any memory field. o It is illegal to create literals in the highest page of any memory field. o If you create an undefined global symbol, MACREL flags the error with the wrong message: SY MISSING TEXT ITEM. o It is illegal to enter a .SBTTL directive in the first line of a file. 4.0 UNDOCUMENTED FEATURES o The argument to a FIELD directive may not be a forward reference. The symbol must have been previously defined, otherwise the message: FIELD ERROR results. 4 o Do not use the .NCHAR special operator in an expression unless it is the last element in the expression, since MACREL assumes that all characters that follow on the line are part of the argument string. Further, if the expression contains delimiters such as right parenthesis ()) or right angle bracket (>) following .NCHAR's argument, they will be counted as part of the argument string and will not be recognized as delimiters. 5.0 USERS HAVING MACREL/LINK SOURCE KITS If you buy the MACREL/LINK source kit, you will find three batch files on the distribution medium along with your sources. These files are: .MACAL.BI, MACA.BI, and PATCH1.BI. The first two files contain all the commands necessary to assemble, and link MACREL, KREF, and LINK, and patch them to the current version level. The MACAL.BI batch file will give you listings and the MACA.BI file will not. The third file, PATCH1.BI, contains the commands to patch the assembled and linked binaries. The other two batch files call this file. You can also use this file by itself if you want to assemble and link the MACREL/LINK sources manually. Be sure to read the comments at the beginning of these files for detailed operating instructions. 5 : MACREL/LINK : Release Notes : AA-5663B-TA : : : READER'S COMMENTS : : : : NOTE: This form is for document comments only. DIGITAL will : use comments submitted on this form at the company's : discretion. If you require a written reply and are : eligible to receive one under Software Performance : Report (SPR) service, submit your comments on an SPR : form. : : : Did you find this manual understandable, usable, and well-organized? : Please make suggestions for improvement. : ___________________________________________________________________ : ___________________________________________________________________ : ___________________________________________________________________ : ___________________________________________________________________ : ___________________________________________________________________ : ___________________________________________________________________ : ___________________________________________________________________ : ___________________________________________________________________ : : Did you find errors in this manual? If so, specify the error and the : page number. : ___________________________________________________________________ : ___________________________________________________________________ : ___________________________________________________________________ : ___________________________________________________________________ : ___________________________________________________________________ : ___________________________________________________________________ : ___________________________________________________________________ : ___________________________________________________________________ : : Please indicate the type of reader that you most nearly represent. : : [] Assembly language programmer : [] Higher-level language programmer : [] Occasional programmer (experienced) : [] User with little programming experience : [] Student programmer : [] Other (please specify)___________________________________ : : : Name____________________________________ Date______________________ : : Organization_______________________________________________________ : : Street_____________________________________________________________ : : City_________________________ State__________ Zip Code_____________ : or : Country ----------------------------- Fold Here ------------------------------ ----------------- Do Not Tear - Fold Here and Staple ----------------- ------------------ | FIRST CLASS | | PERMIT NO. 33 | | MAYNARD, MASS. | ------------------ BUSINESS REPLY MAIL ========== NO POSTAGE STAMP NECESSARY IF MAILED IN THE UNITED STATES ========== ====================================================================== Postage will be paid by: ========== ========== --------------- ========== |D|I|G|I|T|A|L| ========== --------------- ========== ========== Software Documentation ========== 146 Main Street ML5-5/E39 ========== Maynard, Massachusetts 01754 ==========