CHANGES IN GWASS60 VERSION 3.32 - 19th March 1998 1. A label designated XREF.L can now be used as an absolute address. Previously this failed to trigger the appropriate SROFF output. 2. Unlimited XREF references in one instruction line are now permitted. Previously errors occurred if there were more than five. 3. Effective addresses such as k(A6,D3.L*4) where k is defined as XREF.B are now correctly assembled. Previously they were assembled as k(A6,D0.W). 4. Null operands for XREF and XDEF are now signalled as errors. 5. Some corrections and changes in the allocation of space have been made. Previously errors could occur if the long word at address 4 was not negative. Also more than 128 nested IFs could cause errors. 6. Some odd messages which could occur on clearing a filename after the prompt 'Give source filename' have been eliminated. 7. With UND_XREF on, macros no longer give give rise to the generation of spurious XREFs. 8. Commands COM_DUM and COM_ALL added. COM_DUM, the default, modifies the output of all COMMON sections so that all bytes in the stream are converted to the OFFSET (FB05) directive. COM_ALL leaves the output as for any other section. 9. The program SYM1_BIN for decoding _SYM files can now be configured to replace most spaces by TABs. 10. Names given in answer to a request in both GWASS and SYM1 now only have DATAD$ added if the bare name fails. Previously PROGD$ was added instead if DATAD$ failed. However the name supplied for EQU3_SYM or its substitute will still have both tried if need be. VERSION 3.31 - 7th December 1997 1. Macro calls with a name not immediately ending with LF were taken as having at least one parameter. Hence the error "Too many parameters" would be signalled if the macro needed none. This has been corrected. 2. If a label in EQU3_SYM is defined in a program an error is signalled. Unfortunately in some cases the value of that label was altered and could affect later assemblies with no error being issued. This would persist until the program was QUIT. This has been corrected. 3. Various faults corrected where XREF labels appear in expressions. For example L1+L2-L3 should be permitted where any of the L's are XREF's as long as the result is either a numeric type or PC type. VERSION 3.30 - 24th November 1997 1. The command ORG has been added. This allows assembly at fixed addresses. 2. Short branches between different sections in relocatable output are now correctly assembled. 3. PCs in the _LST file now correctly shown when a section recommences on an odd boundary. 4. UND_XREF now works. VERSION 3.29 - 20th November 1997 1. Extension of Macro facilities to allow functions such as LEN and INSTR to be applied to the value of expressions. Also the size restriction on parameters has been relaxed. GOTO has been added as well. 2. Extension of the conditional IF instructions to allow operation on the label types Quad word, register and register list. 3. The relocatable directive COMMON has been added. 4. Sizes S, D, X, P and Q can now be used with the DS directive. 5. The operators AND, OR Shift left and Shift right have been added to those permitted within . 6. Alternative EQU_SYM files can be used where they contain less than three strands of labels. 7. TABs can now be used between operands and operators in IF instructions. 8. RGL instruction defining register lists renamed REG. 9. Some improvements in reporting errors. 10. Correction of the conditional IF instructions so that no more than one ELSE(_IF) clause can be successful. 11. Directives ERROR and WARNING have been added. 12. ORIF no longer equivalent to AND_IF. (OR_IF remains correct.) 13. PC not set to even boundary when IF switch is off. 14. A call for an XREF label for a byte constant does not now overwrite the previous byte. 15. True values of PC's are now set if there are no 'INSERTS' - (an unlikely event in a real program). 16. The declared length of XREF labels is now taken into account in assembling instructions using them. For example XREF.B L1 CLR.W L1(A4,D3.W) will cause the short four byte instruction to be assembled. If L1 were defined as a word long the instruction would take six bytes. Previously the long eight byte instruction would have been assembled in all cases. 17. The '_o' file is now deleted if a 'fatal' error occurs during the assembly. 18. The program SYM1_BIN now recognises labels which are SET, EQUR and REG. Also XREF labels which have been sized are correspondingly noted. Distinction is made between SECTION and COMMON. 19. The same symbol can now be used for MACROs and LABELs. 20. There is now an option to have '_REL' as the trailer of the relocatable output file in place of the default '_o'. 21. When an item in an expression is presented as an explicit string (of up to four bytes) this can now be preceded by * (multiply). 22. Organisational instructions such as XREF or PWID no longer force alignment on a word boundary. 22. Data space is now correctly set in relocatable files. It used to be set to zero. 23. Certain organisational instructions such as PAGELEN used by QMAC are ignored by GWASS with a warning rather than an error; others are alternatives to the GWASS instruction. 24. XREF.S is now acceptable as an alternative to XREF.W. 25. FILETYPE has been added to allow the user to set the type of file to other than 1 and 2. 26. Instructions using immediate data such as CMPI can now be coded without the 'I'. 27. Some errors of size in instructions such as 'ANDI #4,CCR' not formerly trapped and also wrongly coded are now signalled. 28. Errors occurring where one PC label is defined in terms of another are now corrected. For example: Label1 Label2 dc.w 2 Label3 dc.w 4 moveq #Label3-Label1,d0 where Label1 is internally defined in terms of Label2 will now assemble correctly. VERSION 3.28 - 6th June 1997 1. PSAVE and PRESTORE now correctly assembled for all s and disallowed s flagged. VERSION 3.27 - 15th May 1997 1. Commands IFcc, IFC and IFNC have been added. 2. Most of the limits on the size of program which can be assembled have been removed. The size is now limited mainly by the amount of common heap available and by the size of GWASS60's data space (which can be increased if needed). 3. Macro facilities have been extended and corrected. Embedded macros and recursive macros should now work. Also parameters with embedded spaces or TABs can now be used. 4. Defining one of the pre-loaded constants, such as 'MT_INF', cause that label to be marked as erroneous. Before assembling another program all such constants are now reset. Previously most of the error markings remained. 5. 'EXG Ax,Dy' is now allowed as well as Motorola's syntactically correct 'EXG Dy,Ax'. 6. A binary file longer than 500 bytes requested by LIB is now correctly written to the '_o' file for relocatable output. VERSION 3.26 - 10th April 1997 1. The command EQUR has been added to allow labels to be equated to registers (but not always within register lists). VERSION 3.25 - 30th March 1997 1. The commands RGL, RS_SET and RS have been added to extend equates to register lists (for MOVEM) and data structures. 2. When an index register is detected as not having a size the size is set to W and a warning issued. Previously this condition gave rise to an error. 3. The letters 'SP' may be used for the register 'A7', (except inside a register list). VERSION 3.24 - 29th January 1997 1. PCK can now be correctly set by Config. Previously the default reverted to four. 2. A channel passed to GWASS for use in non batch mode will have paper set to black, ink set to green (or white when this is needed) and a border added. In batch mode the window is left severely alone. It will scroll upwards as needed. Also the entries are slightly different from non batch mode. The heading appears only once, the messages "PASS 1" and "PASS 2" are omitted and the name of each processed file appears with a note of the number of ERRORs and WARNINGs which will be found in its _LST file. 3. Some error messages have been corrected. VERSION 3.23 - 18th January 1997 1. If any channels are passed to GWASS the last one is used. Previously it was the first. 2. FCOS now correctly assembled. Previously it assembled to FCMP. VERSION 3.21 & 3.22 - 15th November 1996 1. Allow immediate with FMOVEM.L. 2. If a file with non zero type is requested for assembly a noise is made and re-editing expected. The erroneous file is now closed. VERSION 3.20 - 7th October 1996 1. Correction to CNOP and ALIGNx. These were setting up inserts of length 8, omitting the section number. 2. Addition to PR2 to stop inserts produced by Bcc and BRS going over the limit.