M a65.c => a65.c +18 -34
@@ 1,44 1,29 @@
/*
- HEADER: CUG219;
- TITLE: 6502 Cross-Assembler (Portable);
- FILENAME: A65.C;
- VERSION: 0.1;
- DATE: 08/27/1988;
-
- DESCRIPTION: "This program lets you use your computer to assemble
- code for the MOS Technology 6502 microprocessors. The
- program is written in portable C rather than BDS C.
- All assembler features are supported except relocation
- linkage, and macros.";
-
- KEYWORDS: Software Development, Assemblers, Cross-Assemblers,
- MOS Technology, 6502;
-
- SYSTEM: CP/M-80, CP/M-86, HP-UX, MSDOS, PCDOS, QNIX;
- COMPILERS: Aztec C86, Aztec CII, CI-C86, Eco-C, Eco-C88, HP-UX,
- Lattice C, Microsoft C, QNIX C;
-
- WARNINGS: "This program is written in as portable C as possible.
- A port to BDS C would be extremely difficult, but see
- volume CUG113. A port to Toolworks C is untried."
-
- AUTHORS: William C. Colley III;
-*/
-
-/*
6502 Cross-Assembler in Portable C
Copyright (c) 1986 William C. Colley, III
Revision History:
-Ver Date Description
+Ver Date Description
+
+0.0 NOV 1986 Derived from my 6800/6801 cross-assembler. WCC3.
-0.0 NOV 1986 Derived from my 6800/6801 cross-assembler. WCC3.
+0.1 AUG 1988 Fixed a bug in the command line parser that puts it
+ into a VERY long loop if the user types a command line
+ like "A65 FILE.ASM -L". WCC3 per Alex Cameron.
-0.1 AUG 1988 Fixed a bug in the command line parser that puts it
- into a VERY long loop if the user types a command line
- like "A65 FILE.ASM -L". WCC3 per Alex Cameron.
+0.2n JAN 2023 Changed the FCB, FCC, and FDB pseudo-ops to DB,
+ DS, and DW, respectively. Made the DB pseudo-op
+ able to take a string as an argument. Made labels
+ able to optionally be followed with a colon character.
+ Changed the assembler to output binary files instead
+ of Intel HEX. Added the "!" operator to force the
+ assembler to output the non-zero page version of the
+ opcode. Added the "MSG" pseudo-op to output arbitrary
+ text and symbol values during the assembly process.
+ Made the assembler print out errors to stderr as well
+ as the listing file. NPM.
This file contains the main program and line assembly routines for the
assembler. The main program parses the command line, feeds the source lines to
@@ 85,8 70,7 @@ int main(int argc, char **argv) {
SCRATCH unsigned *o;
printf("6502 Cross-Assembler (Portable) Ver 0.2n\n");
- printf("Copyright (c) 1986 William C. Colley, III\n");
- printf("Modifications by Nathan Misner\n\n");
+ printf("Copyright (c) 1986 William C. Colley, III\n\n");
while (--argc > 0) {
if (**++argv == '-') {
M a65.h => a65.h +0 -37
@@ 2,47 2,10 @@
#define A65_H
/*
- HEADER: CUG219;
- TITLE: 6502 Cross-Assembler (Portable);
- FILENAME: A65.H;
- VERSION: 0.1;
- DATE: 08/27/1988;
-
- DESCRIPTION: "This program lets you use your computer to assemble
- code for the MOS Technology 6502 microprocessors. The
- program is written in portable C rather than BDS C.
- All assembler features are supported except relocation
- linkage, and macros.";
-
- KEYWORDS: Software Development, Assemblers, Cross-Assemblers,
- MOS Technology, 6502;
-
- SYSTEM: CP/M-80, CP/M-86, HP-UX, MSDOS, PCDOS, QNIX;
- COMPILERS: Aztec C86, Aztec CII, CI-C86, Eco-C, Eco-C88, HP-UX,
- Lattice C, Microsoft C, QNIX C;
-
- WARNINGS: "This program is written in as portable C as possible.
- A port to BDS C would be extremely difficult, but see
- volume CUG113. A port to Toolworks C is untried."
-
- AUTHORS: William C. Colley III;
-*/
-
-/*
6502 Cross-Assembler in Portable C
Copyright (c) 1986 William C. Colley, III
-Revision History:
-
-Ver Date Description
-
-0.0 NOV 1986 Derived from my 6800/6801 cross-assembler. WCC3.
-
-0.1 AUG 1988 Fixed a bug in the command line parser that puts it
- into a VERY long loop if the user types a command line
- like "A65 FILE.ASM -L". WCC3 per Alex Cameron.
-
This header file contains the global constants and data type definitions for
all modules of the cross-assembler.
*/
M a65eval.c => a65eval.c +0 -37
@@ 1,45 1,8 @@
/*
- HEADER: CUG219;
- TITLE: 6502 Cross-Assembler (Portable);
- FILENAME: A65EVAL.C;
- VERSION: 0.1;
- DATE: 08/27/1988;
-
- DESCRIPTION: "This program lets you use your computer to assemble
- code for the MOS Technology 6502 microprocessors. The
- program is written in portable C rather than BDS C.
- All assembler features are supported except relocation
- linkage, and macros.";
-
- KEYWORDS: Software Development, Assemblers, Cross-Assemblers,
- MOS Technology, 6502;
-
- SYSTEM: CP/M-80, CP/M-86, HP-UX, MSDOS, PCDOS, QNIX;
- COMPILERS: Aztec C86, Aztec CII, CI-C86, Eco-C, Eco-C88, HP-UX,
- Lattice C, Microsoft C, QNIX C;
-
- WARNINGS: "This program is written in as portable C as possible.
- A port to BDS C would be extremely difficult, but see
- volume CUG113. A port to Toolworks C is untried."
-
- AUTHORS: William C. Colley III;
-*/
-
-/*
6502 Cross-Assembler in Portable C
Copyright (c) 1986 William C. Colley, III
-Revision History:
-
-Ver Date Description
-
-0.0 NOV 1986 Derived from my 6800/6801 cross-assembler. WCC3.
-
-0.1 AUG 1988 Fixed a bug in the command line parser that puts it
- into a VERY long loop if the user types a command line
- like "A65 FILE.ASM -L". WCC3 per Alex Cameron.
-
This file contains the assembler's expression evaluator and lexical analyzer.
The lexical analyzer chops the input character stream up into discrete tokens
that are processed by the expression analyzer and the line assembler. The
M a65eval.h => a65eval.h +0 -37
@@ 2,47 2,10 @@
#define A65EVAL_H
/*
- HEADER: CUG219;
- TITLE: 6502 Cross-Assembler (Portable);
- FILENAME: a65eval.h;
- VERSION: 0.1;
- DATE: 08/27/1988;
-
- DESCRIPTION: "This program lets you use your computer to assemble
- code for the MOS Technology 6502 microprocessors. The
- program is written in portable C rather than BDS C.
- All assembler features are supported except relocation
- linkage, and macros.";
-
- KEYWORDS: Software Development, Assemblers, Cross-Assemblers,
- MOS Technology, 6502;
-
- SYSTEM: CP/M-80, CP/M-86, HP-UX, MSDOS, PCDOS, QNIX;
- COMPILERS: Aztec C86, Aztec CII, CI-C86, Eco-C, Eco-C88, HP-UX,
- Lattice C, Microsoft C, QNIX C;
-
- WARNINGS: "This program is written in as portable C as possible.
- A port to BDS C would be extremely difficult, but see
- volume CUG113. A port to Toolworks C is untried."
-
- AUTHORS: William C. Colley III;
-*/
-
-/*
6502 Cross-Assembler in Portable C
Copyright (c) 1986 William C. Colley, III
-Revision History:
-
-Ver Date Description
-
-0.0 NOV 1986 Derived from my 6800/6801 cross-assembler. WCC3.
-
-0.1 AUG 1988 Fixed a bug in the command line parser that puts it
- into a VERY long loop if the user types a command line
- like "A65 FILE.ASM -L". WCC3 per Alex Cameron.
-
This header file contains the function definitions for the assembler's
expression evaluator and lexical analyzer.
*/
M a65util.c => a65util.c +0 -37
@@ 1,45 1,8 @@
/*
- HEADER: CUG219;
- TITLE: 6502 Cross-Assembler (Portable);
- FILENAME: A65UTIL.C;
- VERSION: 0.1;
- DATE: 08/27/1988;
-
- DESCRIPTION: "This program lets you use your computer to assemble
- code for the MOS Technology 6502 microprocessors. The
- program is written in portable C rather than BDS C.
- All assembler features are supported except relocation
- linkage, and macros.";
-
- KEYWORDS: Software Development, Assemblers, Cross-Assemblers,
- MOS Technology, 6502;
-
- SYSTEM: CP/M-80, CP/M-86, HP-UX, MSDOS, PCDOS, QNIX;
- COMPILERS: Aztec C86, Aztec CII, CI-C86, Eco-C, Eco-C88, HP-UX,
- Lattice C, Microsoft C, QNIX C;
-
- WARNINGS: "This program is written in as portable C as possible.
- A port to BDS C would be extremely difficult, but see
- volume CUG113. A port to Toolworks C is untried."
-
- AUTHORS: William C. Colley III;
-*/
-
-/*
6502 Cross-Assembler in Portable C
Copyright (c) 1986 William C. Colley, III
-Revision History:
-
-Ver Date Description
-
-0.0 NOV 1986 Derived from my 6800/6801 cross-assembler. WCC3.
-
-0.1 AUG 1988 Fixed a bug in the command line parser that puts it
- into a VERY long loop if the user types a command line
- like "A65 FILE.ASM -L". WCC3 per Alex Cameron.
-
This module contains the following utility packages:
1) symbol table building and searching
M a65util.h => a65util.h +0 -37
@@ 2,47 2,10 @@
#define A65_UTIL_H
/*
- HEADER: CUG219;
- TITLE: 6502 Cross-Assembler (Portable);
- FILENAME: a65util.h;
- VERSION: 0.1;
- DATE: 08/27/1988;
-
- DESCRIPTION: "This program lets you use your computer to assemble
- code for the MOS Technology 6502 microprocessors. The
- program is written in portable C rather than BDS C.
- All assembler features are supported except relocation
- linkage, and macros.";
-
- KEYWORDS: Software Development, Assemblers, Cross-Assemblers,
- MOS Technology, 6502;
-
- SYSTEM: CP/M-80, CP/M-86, HP-UX, MSDOS, PCDOS, QNIX;
- COMPILERS: Aztec C86, Aztec CII, CI-C86, Eco-C, Eco-C88, HP-UX,
- Lattice C, Microsoft C, QNIX C;
-
- WARNINGS: "This program is written in as portable C as possible.
- A port to BDS C would be extremely difficult, but see
- volume CUG113. A port to Toolworks C is untried."
-
- AUTHORS: William C. Colley III;
-*/
-
-/*
6502 Cross-Assembler in Portable C
Copyright (c) 1986 William C. Colley, III
-Revision History:
-
-Ver Date Description
-
-0.0 NOV 1986 Derived from my 6800/6801 cross-assembler. WCC3.
-
-0.1 AUG 1988 Fixed a bug in the command line parser that puts it
- into a VERY long loop if the user types a command line
- like "A65 FILE.ASM -L". WCC3 per Alex Cameron.
-
This header file contains the function definitions for the following
utility packages: