Macro68 Copyright ©1990, 1991, 1992 DigiSoft INSTALLING MACRO68 Use the installation script provided to install Macro68 onto your hard drive, or onto another floppy. This script, InstallMacro68, is in the root directory of disk M68_1. To use it you should BOOT YOUR COMPUTER NORMALLY, go to the Workbench screen, insert the disk M68_1 into any drive and double click on the "InstallMacro68" icon. You do not have to change to any particular directory nor do anything else before running the script. The new Commodore supplied Installer program is used to interpreate the installation script. Please note that the Commodore documentation does not recommend useing the installer from the CLI. It should always be started from it's Icon. WARNING: The installation script provided remembers where all important files are placed so that they can be easily updated or deleted by a later installation script. If you choose not to use the installation script then it will be entirely up to you to ensure that old files are deleted when installing any future update. USEING THE HYPERTEXT MANUAL Type "Macro68-Help" to get the initial manual for the hypertext tool. Read this for information on using the hypertext tool with Macro68 and your text editor. ARexx files have been provided for useing Macro68-help from the CygnusEd text editor. These files are "GetWUC.ced" and "GetM68Help.ced" Both of these files may be adapted to work with other editors. DISTRIBUTION OF FILES Blink may be freely distributed subject to the conditions imposed by "The Software Distillery" in the BLink documentation. The example files (those found in the Examples directory of disk #3 may be distributed subject to the conditions set out in each individual example source file. The digisoftSupport.library may be distributed only with the example files in this distribution that require it, and not individually or with any other file, without the prior written permission of DigiSoft. ALL other files supplied with this distribution are NOT distributable without the prior written permission of DigiSoft. A WORD FROM YOUR DISTRIBUTOR In order to clear up any confusion in this area, be aware that it is the policy of The Puzzle Factory not to send out update notices for minor bug fixes that would not affect the majority of Macro68 owners. If you are having a problem, please contact The Puzzle Factory or your distributor to find out if a later version of Macro68 is available. Although we've said it before, PLEASE register! Because this is the initial release of Macro68 V3, we need to know how to get in touch with you when the inevitable bugs surface. Fill out the registration card and mail it today! Jeff Lavin for TPF, Inc. ANSWERS TO SOME COMMON QUESTIONS If you have any questions please send them in. The more popular ones will be placed in this section in the hope that they may help someone else. Don't be embarrassed to ask, this section is completely anomymous. Q. If the system is very low on memory when you run Macro68 it will report that the library is missing. A. This is correct. If the library can't be loaded for any reason, be it low memory or that the correct version can't be found, then the RECOVERABLE "library missing" alert is displayed. No diagnostics are performed to find out the precise cause of the failure. Q. When using FWDREFASSIGN, what happens during a recursive equate like fred equ this this equ fred+1 move.l #this,d0 the one shown here. A. Nothing awful sould happen to the above code. However this type of thing could play havoc with code optimizing, causing phase errors between passes in cases of differential optimization. Any problems that would result in a bad object output are detected, however, those inconsistencies which still produce good object, albeit incorrect, are not detected while FWDREFASSIGN is on. The FWDREFASSIGN directive was provided for those unusual cases where nothing else will do, we do not recommend the casual use of this directive. Q. Why do some of the error messages seem so inconsistent with the actual cause of the error. A. This is really a philosophical matter. The messages given are perfectly consistent with the error detection philosophy of Macro68. The philosophy employed in Macro68's error detection routines is to assume that everthing that you have typed, beginning from the first column and progressing to the left, is correct, until it is forced by circumstance to conclude that you have made an error. Up to such time it will continually change it's mind about the addressing modes, etc. that you have used. When it is finally forced to admit that your source is in error, it reports the error in the context of the last thing that it expected to find, but did not. Q. What's the point of being able to define symbols on the command line of an assembler, instead of using an equate inside the file? A. The best way to answer this is by example. In the file "macro68custom.asm" we have the following code :- ifnd NotResident residentMaclibTable: dw maclibname-residentMaclibTable dw 0 ;null terminate the table else residentMaclibTable: dw 0 ;null terminate the table endc which allows me to automatically assemble the two different versions with the following lines in my batch file :- macro68 macro68custom.asm -o dis/macro68custom_Resi macro68 macro68custom.asm -o dis/macro68custom -d "NotResident=1" In the first, since the symbol "NotResident" is not defined then the IF test is true and the resident maclib version is assembled, in the second, the symbol is defined and therefore the IF test is false and the ELSE becomes true, assembling the non-resident maclib version. Q. What's the best configuration for my system. A. We get asked this one a lot! The answer is that we can't answer it. It depends mainly on your style of programming and the CPU's that you program for. Macro68 is supplied in a generic form that will suit most applications. If you want to get the absolute best from it then you could start by removing all of the directives and opcodes from the macro68custom.asm file that you will never use (don't remove those that are needed by the custom file itself, like "pstr"). After that it's mainly a case of programming style, try:- Only use 1 tab char between fields. Only start labels on the first column. End all "real" and "user-friendly" labels with a colen (:) character. Don't end numeric local labels with a colen character. Use the "cstr" directive for null terminated ascii text.