cpm xasm part 2 of 2
Klotzbach
klotz at aicchi.UUCP
Fri Aug 30 15:35:57 AEST 1985
# This is a shell archive. Remove anything before this line, then
# unpack it by saving it in a file and typing "sh file". (Files
# unpacked will be owned by you and have default permissions.)
#
# This archive contains:
# makefile asm80.doc
echo x - makefile
cat | sed -e "s/^X//" > "makefile" << '//E*O*F makefile//'
X#
X# @(#)makefile 1.1
X#
Xasm80: asmain.o as81.o as82.o as83.o as85.o
X cc asmain.o as81.o as82.o as83.o as85.o -o asm80
Xasmain.o: asm.h
Xas81.o: asm.h
Xas82.o: asm.h
Xas83.o: asm.h
Xas85.o: asm.h
//E*O*F makefile//
echo x - asm80.doc
cat | sed -e "s/^X//" > "asm80.doc" << '//E*O*F asm80.doc//'
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X ASM80
ASM80
ASM80
ASM80
X
X A Cross Assembler
A Cross Assembler
A Cross Assembler
A Cross Assembler
X
X for the Intel 8080-8085
X
X With CPM[tm] syntax
X - by -
X
X David A. Klotzbach
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X Introduction
Introduction
Introduction
Introduction
X
X
X
X
X
X ASM80 is a two pass assembler for the Intel 8080 and the
ASM80
ASM80
ASM80
X 8085. The input syntax is, in general, similar in style to
X the CPM[tm] assembler. It is also possible to use the
CPM[tm]
CPM[tm]
CPM[tm]
X assembler for the z80 since it is object code compatible
z80
z80
z80
X with the i8080
i8080
i8080
i8080
X
X
X
X
X
X CP/M is a registered trademark of Digital Research Inc.
CP/M
CP/M
CP/M
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X ASM80 User Manual
X
X
X The Cross Assembler
The Cross Assembler
The Cross Assembler
The Cross Assembler
X
X
X
X
X
X
X
X Usage
Usage
Usage
Usage
X
X
X asm80 is invoked from as follows:
asm80
asm80
asm80
X
X asm80 [-n] [-l] file [file ...]
asm80 [-n] [-l] file [file ...]
asm80 [-n] [-l] file [file ...]
asm80 [-n] [-l] file [file ...]
X
X The specified files are assembled separately and the
X object code is placed in a file (in the same directory)
X having the same name as the source file but with a
X filetype of HEX. The default filetype for source files
X is ASM. File type must not be specified.
X
X The optional -n argument causes the assembler to
X produce no object file. This option is primarily used
X to prevent creating a lot of useless object files when
X debugging the assembler; however, it may be of use when
X one wishes to simply check a file for errors.
X
X The optional -l argument causes the assembler to create
X a listing file of name <file>.LST.
X
X The object file is in standard CP/M HEX format. The
X title of the object file is always set to the first six
X characters of the source file name.
X
X
X Lexical Convention
Lexical Convention
Lexical Convention
Lexical Convention
X
X
X Assembler tokens consist of identifiers ('symbols',
X 'names','labels') , constants and operators.
X
X
X Identifier
Identifier
Identifier
Identifier
X
X
X An identifier consists of a sequence of alphanumeric
X characters (including the period '.' and the question
X mark '?') the first of which may not be numeric. Only
X the first nine characters of the name are significant;
X the rest are discarded. Upper and lower case are
X treated as the same.
X
X
X - 3 -
X
X
X ASM80 User Manual
X
X
X Constants
Constants
Constants
Constants
X
X
X All numeric constants, octal, binary, hex or decimal,
X must start with a a digit 0 through 9. A HEX constant
X is a sequence of digits and the alpha characters A, B,
X C, D, E, and F. The number is truncated to 16 bits and
X interpreted in twos complement notation. If the base
X type symbol is omitted the base is taken to be decimal.
X The magnitude of the constant should be representable
X in 15 bits; i.e., be less than 32,768.
X
X
X b = Binary
b = Binary
b = Binary
b = Binary
X o,q = octal
o,q = octal
o,q = octal
o,q = octal
X d = decimal
d = decimal
d = decimal
d = decimal
X H = hexidecimal
H = hexidecimal
H = hexidecimal
H = hexidecimal
X
X
X A single character constant consists of the single
A single character constant consists of the single
A single character constant consists of the single
A single character constant consists of the single
X quote (') follo any ASCII character (except the
quote (') follo
quote (') follo
quote (') follo
X newline) and terminated with another ('). The
X constant's value is the code for the character right
X justified in the word, with zeros on the left.
X
X
X Blanks and Tabs
Blanks and Tabs
Blanks and Tabs
Blanks and Tabs
X
X
X Blanks and tabs may be used freely between tokens, but
X may not appear within identifiers. A blank or a tab is
X required to separate adjacent tokens not otherwise
X separated.
X
X
X Comments
Comments
Comments
Comments
X
X
X The character ';' introduces a comment, which continues
X until the end of line. Comments are ignored by the
X assembler.
X
X
X The Location Counter
The Location Counter
The Location Counter
The Location Counter
X
X
X The special symbol '$' is the location counter. Its
X value is the offset into the current programme section
X of the start of the statement in which it appears.
X
X
X
X
X - 4 -
X
X
X ASM80 User Manual
X
X
X Statements
Statements
Statements
Statements
X
X
X A program consists of a sequence of newline separated
X statements. There are three kinds of statements; null
X statements, assignment statements and keyword
X statements.
X
X Any statement may be preceeded by any number of labels.
X
X
X Labels
Labels
Labels
Labels
X
X
X A name label consists of an identifier followed by a
X colon (':'). The value of the label is set to that of
X the location counter. It is an error for the value of a
X label to change between pass 1 and pass2.
X
X
X Null Statements
Null Statements
Null Statements
Null Statements
X
X
X A null statement is just an empty line (which may have
X labels and be followed by a comment). Null statements
X are ignored by the assembler. Common examples of null
X statements are empty lines or lines consisting of only
X a label.
X
X
X Assignment Statements
Assignment Statements
Assignment Statements
Assignment Statements
X
X
X An assignment statement consists of an identifier
X followed by the 'EQU' or 'SET' and an expression. The
X value of the identifier is set to that of the
X expression. Any symbol defined by an 'EQU' statement
X may be redefined, either by another assignment
X statement or by a label.
X
X
X Keyword Statements
Keyword Statements
Keyword Statements
Keyword Statements
X
X
X Keyword statements are the most common type; all of the
X machine operations and assembler pseudo operations are
X of this type. A keyword statement begins with one of
X the assembler's predefined keywords, followed by any
X operands required by that keyword. All of the keywords
X and their required operands are described in the
X appendix A and B.
X
X
X - 5 -
X
X
X ASM80 User Manual
X
X
X
X
X Expressions
Expressions
Expressions
Expressions
X
X
X An expression is a sequence of symbols representing a
X value. Expressions are made up of identifiers,
X constants, operators and parentheses. All binary
X operators have equal precidence and are executed in a
X strict left to right order (unless altered by
X parentheses).
X
X
X Types
Types
Types
Types
X
X
X Every expression has a type determined by its operands.
X The types that will be met explicitly are:
X Undefined
Undefined
Undefined
Undefined
X Upon first encounter, each symbol is
X undefined. A symbol may also become undefined
X if it is assigned to an undefined expression.
X It is an error to assemble an undefined
X expression in pass 2. Pass 1 allows assembly
X of undefined expressions, but phase errors
X may result if undefined expressions are used
X in certain contexts (i.e., in a ds).
X Absolute
Absolute
Absolute
Absolute
X An absolute symbol is one defined untimately
X from a constant or from the difference of two
X relocatable values.
X
X
X Operators
Operators
Operators
Operators
X
X
X The operators are:
X
X '+' Addition
X '-' Subtraction
X '*' Multiplication
X '^' - XOR Exclusive or
X '%' - MOD Modulo
X '&' - AND Bitwise AND
X '|' - OR Bitwise OR
X '-' Unary negation
X '!' - NOT Unary ones complement
X '<' - SHL Shift left
X '>' - SHR Shift right
X
X Expressions may be grouped by means of parentheses (
X
X
X - 6 -
X
X
X ASM80 User Manual
X
X
X and ).
X
X
X
X db expression [ , expression ] ...
db expression [ , expression ] ...
db expression [ , expression ] ...
db expression [ , expression ] ...
X
X
X
X The expressions in the comma separated list are
X truncated to 8 bits and are assembled into successive
X bytes. The expressions must be absolute. Strings are
X also supported by this construct.
X
X
X
X dw expression [ , expression ] ...
dw expression [ , expression ] ...
dw expression [ , expression ] ...
dw expression [ , expression ] ...
X
X
X
X The expressions in the comma separated list are
X assembled into successive byte pairs, high byte first.
X
X
X
X ds expression
ds expression
ds expression
ds expression
X
X
X
X This statement assembles into expression null bytes.
X The expression must be absolute.
X
X
X
X title s
title s
title s
title s
X
X
X
X This statement allows the programmer to change the
X title line on the top of each listing page. Only the
X first 20 characters in the string are considered. The
X rest of the line is ignored.
X
X
X ORG expression
ORG expression
ORG expression
ORG expression
X
X
X The program counter is set equal to the value
X expression. It is not considered good form to set the
X porgram counter to a value less than the current one.
X There is no limit to the number of times this statement
X is used in a program.
X
X
X - 7 -
X
X
X ASM80 User Manual
X
X
X
X
X END expression
END expression
END expression
END expression
X
X
X This directive informs the assembler of the entry point
X into the program.
X
X
X Error messages
Error messages
Error messages
Error messages
X
X
X Syntactic or semantic errors in the source are reported
X by displaying the offending line on the console < your
console < your
console < your
console < your
X terminal> , preceeded by the appropriate error flag.
terminal>
terminal>
terminal>
X
X
X
X a Addressing
X b Branching out of range
X c Constant expression
X e General error in expression
X m Multiply defined symbol
X n Error in number
X o Unknown opcode
X p Phasing / Port select
X q Questionable syntax
X t Byte truncation
X u Undefined
X z Code tabel overflow
X ' Character constant
X . Illegal use of DOT
X ( Parentheses inbalance
X
X
X
X Errors encountered in the accessing of files or in
X internal assembler operations are reported in english
X on the console.
X
X
X Shortcomings and Caveats
Shortcomings and Caveats
Shortcomings and Caveats
Shortcomings and Caveats
X
X
X
X The assembler has some limitations. Some of the more
X important ones are listed below, and are classified as
X H (hard to fix), L (likely to remain), F (fixable, and
X likely to be fixed) and G (go away).
X
X L No macro facilities
X
X
X - 8 -
X
X
X 8080 Instruction Summary
X
X
X Instruction Summary
Instruction Summary
Instruction Summary
Instruction Summary
X
X
X
X
X
X
X
X
X
X
X
X
X
X Psuedo Operations
Psuedo Operations
Psuedo Operations
Psuedo Operations
X
X
X
X
X
X The following are extentions to the instructions set:
X
X
X 1) ORG expression
1)
1)
1)
X 2) dw expression,expression,... , expression
2)
2)
2)
X 3) db expression,expression,... , expression
3)
3)
3)
X 4) ds expression
4)
4)
4)
X 5) END expression
5)
5)
5)
X 6) TITLE string
6)
6)
6)
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X - B.9 -
X
//E*O*F asm80.doc//
exit 0
More information about the Comp.sources.unix
mailing list