home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
CP/M
/
CPM_CDROM.iso
/
cpmhelp
/
masm.hlp
< prev
next >
Wrap
Text File
|
1994-07-27
|
8KB
|
209 lines
Invoking MACRO-80
MACRO-80 Switches
MACRO-80 Pseudo-Ops
MACRO-80 In-Line Error Messages
MACRO-80 Console Error Messages
Invoking LINK-80
LINK-80 Switches
Invoking LIB-80
LIB-80 Switches
Invoking CREF-80
Debugging MACRO-80 Programs Using DEBUG.MAC
:Invoking MACRO-80
MACRO-80 is invoked by the following command --
M80 obj:fn1.ext,lst:fn2.ext=src:fn3.ext
where
obj:fn1.ext is the device/filename for the object program
lst:fn2.ext is the device/filename for the listing
src:fn3.ext is the device/filename for the source
:MACRO-80 Switches
The following switches may be specified in the command line --
O Print all listing addresses in octal
H Print all listing addresses in hexadecimal
R Force generation of an object file
L Force generation of a listing file
C Force generation of a cross reference file
Z Assemble Zilog (Z80) mnemonics
I Assemble Intel (8080) mnemonics
P Each /P allocates an extra 256 bytes of stack space for use
during assembly. Use /P if stack overflow errors occur during assembly.
:MACRO-80 Pseudo-Ops
The following are the pseudo-ops recognized by MACRO-80 --
ASEG COMMON CSEG DB DC
DS DSEG DW END ENTRY
PUBLIC EQU EXT EXTRN NAME
ORG PAGE SET SUBTTL TITLE
.COMMENT .PRINTX .RADIX .REQUEST .Z80
.8080 IF IFT IFE IFF
IF1 IF2 IFDEF IFNDEF IFB
IFNB ENDIF .LIST .XLIST .CREF
.XCREF REPT ENDM MACRO IRP
IRPC EXITM LOCAL COND ENDC
*EJECT DEFB DEFS DEFW DEFM
DEFL GLOBAL EXTERNAL INCLUDE MACLIB
ELSE .LALL .SALL .XALL
:MACRO-80 In-Line Error Messages
A Argument Error O Bad opcode or objectionable syntax
C Conditional nesting err P Phase error
D Double Defined Symbol Q Questionable
E External error R Relocation
M Multiply Defined Symbol U Undefined symbol
N Number error V Value error
:MACRO-80 Console Error Messages
No end statement encountered in input file
-- no END statement
Unterminated conditional
-- at least one conditional is unterminated
Unterminated REPT/IRP/IRPC/MACRO
-- at least one block is unterminated
[xx] [No] Fatal error(s) [,xx warnings]
-- the number of fatal errors and warnings
:Invoking LINK-80
LINK-80 is invoked by typing --
L80 obj1:filename.ext/sw1,obj2:filename.ext/sw2,...
where objn:filename.ext denotes a .REL file to be linked and swn denotes
switches which control the linking process.
:LINK-80 Switches
/R Reset -- put loader back in initial state
/E or /E:Name
Exit LINK-80 and return to CP/M. Search the system library
for any undefined references. /E:Name uses Name for the start address of
the program.
/G or /G:Name
Start execution of the program. Again, if /G:Name is
specified, Name defines the start address of execution.
<filename>/N
Save the binary on disk under the name 'filename.COM'.
/P:adr and /D:adr
Set the Program and Data area origins for the next program
to be loaded.
/U
List the origin and end of the program and data area as well
as all undefined globals.
/M
List the origin and end of the program and data area, all
defined globals and their values, and all undefined globals followed by an
asterisk.
<filename>/S
Search 'filename.REL' to satisfy references.
/X If a filename/N was specified, /X will cause the file to be
saved in Intel HEX format with a extension of .HEX.
/Y If a filename/N was specified, /Y will create a filename.SYM
file when /E is entered. This file contains the names and addresses of all
globals for use with SID or ZSID.
:Invoking LIB-80
To invoke LIB-80, type --
LIB
Commands to LIB-80 consist of an optional destination filename which
sets the name of the library being created, followed by an equal sign,
followed by module names separated by commas or filenames with module names
enclosed in angle brackets separated by commas.
To select a given module from a file, use the name of the file
followed by the module(s) specified enclosed in angle brackets and
separated by commas. If no modules are selected from a file, then all
modules are selected.
:LIB-80 Switches
/O Set listing radix to Octal
/H Set listing radix to Hexadecimal
/U List undefineds
/L List cross reference
/C Create -- start LIB over
/E Exit -- rename .LIB to .REL and exit
/R Rename -- rename .LIB to .REL
:Invoking CREF-80
CREF-80 is invoked by typing --
CREF80 listing=source
where 'listing' is the name of the file 'listing.LST' generated and
'source' s the name of the file 'source.CRF' generated by MACRO-80.
'listing' is optional, and, if omitted, the listing file generated is named
'source.LST'.
:Debugging MACRO-80 Programs Using DEBUG.MAC
DEBUG.MAC is a package of MACROs which the user may employ to aid
himself in debugging MACRO-80 programs. This package contains two print
MACROs, one register display MACRO, and one exit MACRO. In all cases,
these MACROs have no net affect on any register.
DEBUG.MAC is used by first specifying it as a MACRO Library within the
user's program. This is accomplished by the statement --
MACLIB DEBUG.MAC
as an assembly-language instruction at the beginning of his program. This
statement loads the library DEBUG.MAC and makes its MACROs available for
use. These MACROs are --
Name # Args Size (Bytes) Function Example
---- ------ ------------ -------- -------
EXIT 0/1 275 or 263+ Print an exit message, EXIT
print the contents of EXIT <Exit Cond 1>
all registers, and warm
boot CP/M
PRINT 1 19+ Print a message on CON: PRINT <Message>
PRINTC 1 17+ Print a char string on PRINTC <'M1',0DH>
CON:
REGS 0 241 Print the contents of REGS
all registers on CON:
Note: The + after a size indicates that one must add to the indicated size
the number of characters specified in the parameter.
Note: Messages specified for EXIT and PRINT should not contain restricted
MACRO-80 symbols (such as !) or an error message will result.
An example of the use of these MACROs follows --
MACLIB DEBUG.MAC
-- code --
REGS ; print all register values at this point
-- code --
PRINT <Ck Pt 1> ; got to check point 1
-- code --
EXIT <Exit error 1> ; should not have taken this path
-- code --
PRINT <Ck Pt 2> ; got to check point 2
-- code --
EXIT ; normal exit
-- code --