Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!zaphod.mps.ohio-state.edu!wuarchive!rex!uflorida!gatech!usenet.ins.cwru.edu!ysub!psuvm!art100 From: ART100@psuvm.psu.edu (Andy Tefft) Newsgroups: comp.binaries.apple2 Subject: LISA Assembler docs (2 of 3) Message-ID: <91128.205737ART100@psuvm.psu.edu> Date: 9 May 91 00:57:37 GMT Organization: Penn State University Lines: 578 MISC. ASSEMBLER DIRECTIVES The CON (constant) directive is currently a synonym for EQU. However, in future versions of LISA v3.x, a label defined with the CON directive will only be allowed within immediate expressions or within an address expression for a pseudo-opcode. You should not use CON to define variable names. The intent of the CON directive is to help make your programs more readable. The CON directive instantly identifies a label as a constant, not a variable in memory or the entry point of some subroutine. By using CON for constants and EPZ/EQU for variables and entry points, you can make your programs much easier to read and understand. Most 6502 assembly language programmers define all of their zero page labels at the beginning of the program before they are encountered within an address expression. This geography is considered good programming style. Although there is probably no reason why you cannot always define a zero page label (using the EPZ pseudo-opcode) before the label is encountered within a program, a special pseudo-opcode, FZR, is included in LISA v3.x's repertoire to allow you to state that a symbol is zero page without defining its value before it is used. This pseudo-opcode is especially useful when converting certain LISA v2.6 programs to LISA v3.x. The FZR (Forward Zero page Reference) assembler directive is used to define a zero page label without assigning a value to it. LISA v3.x is a two-pass assembler (LISA v2.6 was a three pass assembler) and it assumes that undefined labels are absolute. If a zero page label is defined with the EPZ directive after that label was already encountered in the source file, LISA v3.x will give you an error. To correct this problem, either move the zero page definition to the beginning of the source file (if practical or possible) or use the FZR assembler directive to define the label as zero page before the label is used. The syntax for the FZR directive is: FZR