mirror of
https://github.com/uffejakobsen/acme.git
synced 2025-01-11 13:30:15 +00:00
ACME Release 0.96: Added experimental support for instruction sets of Rockwell 65C02, WDC 65C02(S), CSG 65CE02 and CSG 4502.
Stack indexing can now be given either as ",s" or as ",sp" (only relevant for 65816 and 65CE02). git-svn-id: https://svn.code.sf.net/p/acme-crossass/code-0/trunk@78 4df02467-bbd4-4a76-a152-e7ce94205b78
This commit is contained in:
parent
681cbda33e
commit
294fe25c36
@ -817,13 +817,17 @@ Purpose: Select the processor to produce code for. If this PO
|
||||
the previously chosen CPU value is restored
|
||||
afterwards.
|
||||
Parameters: KEYWORD: Currently valid keywords are:
|
||||
6502 mnemonics and addressing modes of 6502 cpu
|
||||
65c02 superset of 6502, adds 65c02 extensions
|
||||
65816 superset of 65c02, adds 65816 extensions
|
||||
6510 superset of 6502, adds mnemonics for
|
||||
6502 for the original MOS 6502
|
||||
6510 6502 plus undocumented opcodes
|
||||
65c02 6502 plus BRA,PHX/Y,PLX/Y,STZ,TRB/TSB
|
||||
r65c02 65c02 plus BBRx, BBSx, RMBx, SMBx
|
||||
w65c02 r65c02 plus STP/WAI
|
||||
65816 65c02 plus 16/24-bit extensions
|
||||
65ce02 r65c02 plus Z reg, long branches, ...
|
||||
4502 65ce02 with MAP instead of AUG
|
||||
c64dtv2 6502 plus BRA/SAC/SIR plus some of the
|
||||
undocumented opcodes
|
||||
c64dtv2 superset of 6510, adds mnemonics for DTV2
|
||||
extensions (BRA/SAC/SIR)
|
||||
See "docs/cputypes.txt" for more info.
|
||||
BLOCK: A block of assembler statements.
|
||||
Examples: !if cputype = $65c02 {
|
||||
!cpu 65c02 { ; temporarily allow 65c02 stuff
|
||||
|
@ -12,6 +12,16 @@ platform used. There should be another help file in this archive
|
||||
outlining the platform specific changes.
|
||||
|
||||
|
||||
----------------------------------------------------------------------
|
||||
Section: New in release 0.96
|
||||
----------------------------------------------------------------------
|
||||
|
||||
Added experimental support for instruction sets of Rockwell 65C02,
|
||||
WDC 65C02(S), CSG 65CE02 and CSG 4502.
|
||||
Stack indexing can now be given either as ",s" or as ",sp" (only
|
||||
relevant for 65816 and 65CE02).
|
||||
|
||||
|
||||
----------------------------------------------------------------------
|
||||
Section: New in release 0.95.8
|
||||
----------------------------------------------------------------------
|
||||
|
@ -71,6 +71,12 @@ Found new "!for" syntax.
|
||||
When using the "-Wno-old-for" switch to disable the warning about
|
||||
the older syntax, the new syntax will trigger this warning.
|
||||
|
||||
Found SED instruction for CPU with known decimal SBC bug.
|
||||
This warning is only ever given for CPU types 65ce02 and 4502,
|
||||
because they are known to be buggy in decimal mode.
|
||||
Pavel Zima and Eric Smith found an example where $41 minus $08
|
||||
gave $39 instead of $33.
|
||||
|
||||
Label name not in leftmost column.
|
||||
A label definition has blanks before the label name.
|
||||
Imagine this source code:
|
||||
@ -408,6 +414,10 @@ IllegalBlockTerminator
|
||||
IllegalOperatorHandle
|
||||
The expression parser found an operator that does not exist.
|
||||
|
||||
IllegalImmediateMode
|
||||
The mnemonic tree contains invalid info about the size of immediate
|
||||
arguments.
|
||||
|
||||
OperandStackNotEmpty
|
||||
The expression parser has finished though there are still operands
|
||||
left to parse.
|
||||
|
129
docs/cputypes.txt
Normal file
129
docs/cputypes.txt
Normal file
@ -0,0 +1,129 @@
|
||||
|
||||
|
||||
ACME
|
||||
|
||||
...the ACME Crossassembler for Multiple Environments
|
||||
|
||||
--- cpu types ---
|
||||
|
||||
|
||||
ACME supports the following cpu types:
|
||||
|
||||
|
||||
|
||||
|
||||
*** 6502
|
||||
|
||||
This is the instruction set of the original NMOS 6502 designed by MOS
|
||||
(later CSG).
|
||||
There are 151 documented opcodes.
|
||||
|
||||
|
||||
|
||||
|
||||
*** 6510
|
||||
|
||||
This is the 6502 variant used in the C64 computer. It uses the same
|
||||
instruction set as the 6502, but in addition to that, ACME supports
|
||||
most of the undocumented opcodes as well.
|
||||
See docs/Illegals.txt for more info.
|
||||
|
||||
|
||||
|
||||
|
||||
*** 65c02
|
||||
|
||||
This is the CMOS re-design of the 6502. It seems to have also been
|
||||
available from Rockwell, GTE/CMD and others. Features:
|
||||
- new instructions:
|
||||
BRA (branch always)
|
||||
PHX, PHY, PLX, PLY (push/pull X/Y register)
|
||||
STZ (store zero, 4 addr modes)
|
||||
TRB (test and reset bits, 2 addr modes)
|
||||
TSB (test and set bits, 2 addr modes)
|
||||
- new addressing modes for existing instructions:
|
||||
BIT #$12
|
||||
BIT $12, x
|
||||
BIT $1234, x
|
||||
LDA/STA/ADC/SBC ($12) (zp indirect without index)
|
||||
AND/ORA/EOR/CMP ($12) (zp indirect without index)
|
||||
INC (increment accumulator)
|
||||
DEC (decrement accumulator)
|
||||
JMP ($1234,x) (jump indexed indirect)
|
||||
- bugfix for flags in decimal mode
|
||||
- bugfix for JMP($xxff) instruction
|
||||
- undocumented opcodes are NOPs (although of different lengths)
|
||||
There are 178 documented opcodes.
|
||||
|
||||
|
||||
|
||||
*** r65c02
|
||||
|
||||
This is a superset of 65c02, probably originally from Rockwell.
|
||||
- It adds bit manipulation instructions:
|
||||
BBR0..BBR7 (branch on bit reset)
|
||||
BBS0..BBS7 (branch on bit set)
|
||||
RMB0..RMB7 (reset memory bit)
|
||||
SMB0..SMB7 (set memory bit)
|
||||
Chips with this instruction set seem to have been available from
|
||||
Rockwell, GTE/CMD and others.
|
||||
There are 210 documented opcodes.
|
||||
|
||||
|
||||
|
||||
*** w65c02
|
||||
|
||||
This is a superset of r65c02, originating at WDC.
|
||||
- It adds the STP and WAI instructions.
|
||||
There are 212 documented opcodes.
|
||||
|
||||
|
||||
|
||||
*** 65816
|
||||
|
||||
This is a superset of 65c02, originally designed by WDC (it seems to
|
||||
have been available from GTE/CMD as well). Features:
|
||||
- register sizes can be changed to 16-bit
|
||||
- 24-bit address space
|
||||
- several new addressing modes
|
||||
- block transfers
|
||||
There are 256 documented opcodes, but one of them ("WDM") is reserved
|
||||
for future expansion.
|
||||
|
||||
|
||||
|
||||
*** 65ce02
|
||||
|
||||
This is a superset of r65c02, originating at CSG. Features:
|
||||
- Z register
|
||||
- 16-bit stack pointer
|
||||
- 16-bit branches
|
||||
- a few 16-bit instructions
|
||||
- new addressing modes
|
||||
There is a known bug: SBC does not work corrently in decimal mode.
|
||||
There are 256 documented opcodes, but one of them ("AUG") is reserved
|
||||
for future expansion.
|
||||
|
||||
|
||||
|
||||
*** 4502
|
||||
|
||||
This is basically the same as 65ce02, but
|
||||
- MAP replaces AUG
|
||||
- EOM is synonymous to NOP
|
||||
This cpu core can be found in the CSG4510 chip in the C65.
|
||||
There are 256 documented opcodes.
|
||||
|
||||
|
||||
|
||||
*** c64dtv2
|
||||
|
||||
This is the cpu in version 2 of the C64DTV. It uses a superset of the
|
||||
6502 instruction set. Features:
|
||||
- new instructions:
|
||||
BRA $1234 (branch always)
|
||||
SAC #$12 (set accumulator mapping)
|
||||
SIR #$12 (set index register mapping)
|
||||
- support for some of the undocumented opcodes.
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
// ACME - a crossassembler for producing 6502/65c02/65816 code.
|
||||
// Copyright (C) 1998-2009 Marco Baye
|
||||
// ACME - a crossassembler for producing 6502/65c02/65816/65ce02 code.
|
||||
// Copyright (C) 1998-2016 Marco Baye
|
||||
// Have a look at "acme.c" for further info
|
||||
//
|
||||
// Platform specific stuff (in this case, for AmigaOS)
|
||||
|
@ -1,5 +1,5 @@
|
||||
// ACME - a crossassembler for producing 6502/65c02/65816 code.
|
||||
// Copyright (C) 1998-2009 Marco Baye
|
||||
// ACME - a crossassembler for producing 6502/65c02/65816/65ce02 code.
|
||||
// Copyright (C) 1998-2016 Marco Baye
|
||||
// Have a look at "acme.c" for further info
|
||||
//
|
||||
// Platform specific stuff (in this case, for DOS, OS/2 and Windows)
|
||||
|
@ -1,5 +1,5 @@
|
||||
// ACME - a crossassembler for producing 6502/65c02/65816 code.
|
||||
// Copyright (C) 1998-2009 Marco Baye
|
||||
// ACME - a crossassembler for producing 6502/65c02/65816/65ce02 code.
|
||||
// Copyright (C) 1998-2016 Marco Baye
|
||||
// Have a look at "acme.c" for further info
|
||||
//
|
||||
// Platform specific stuff (in this case, for DOS, OS/2 and Windows)
|
||||
|
@ -1,5 +1,5 @@
|
||||
// ACME - a crossassembler for producing 6502/65c02/65816 code.
|
||||
// Copyright (C) 1998-2009 Marco Baye
|
||||
// ACME - a crossassembler for producing 6502/65c02/65816/65ce02 code.
|
||||
// Copyright (C) 1998-2016 Marco Baye
|
||||
// Have a look at "acme.c" for further info
|
||||
//
|
||||
// Platform specific stuff (in this case, for RISC OS)
|
||||
|
@ -1,5 +1,5 @@
|
||||
// ACME - a crossassembler for producing 6502/65c02/65816 code.
|
||||
// Copyright (C) 1998-2009 Marco Baye
|
||||
// ACME - a crossassembler for producing 6502/65c02/65816/65ce02 code.
|
||||
// Copyright (C) 1998-2016 Marco Baye
|
||||
// Have a look at "acme.c" for further info
|
||||
//
|
||||
// Platform specific stuff (in this case, for RISC OS)
|
||||
|
@ -1,5 +1,5 @@
|
||||
// ACME - a crossassembler for producing 6502/65c02/65816 code.
|
||||
// Copyright (C) 1998-2009 Marco Baye
|
||||
// ACME - a crossassembler for producing 6502/65c02/65816/65ce02 code.
|
||||
// Copyright (C) 1998-2016 Marco Baye
|
||||
// Have a look at "acme.c" for further info
|
||||
//
|
||||
// Platform specific stuff (in this case, for unknown OSes)
|
||||
|
@ -1,5 +1,5 @@
|
||||
// ACME - a crossassembler for producing 6502/65c02/65816 code.
|
||||
// Copyright (C) 1998-2009 Marco Baye
|
||||
// ACME - a crossassembler for producing 6502/65c02/65816/65ce02 code.
|
||||
// Copyright (C) 1998-2016 Marco Baye
|
||||
// Have a look at "acme.c" for further info
|
||||
//
|
||||
// Platform specific stuff (in this case, for unknown OSes)
|
||||
|
@ -1,4 +1,4 @@
|
||||
// ACME - a crossassembler for producing 6502/65c02/65816 code.
|
||||
// ACME - a crossassembler for producing 6502/65c02/65816/65ce02 code.
|
||||
// Copyright (C) 1998-2016 Marco Baye
|
||||
//
|
||||
// This program is free software; you can redistribute it and/or modify
|
||||
|
@ -1,5 +1,5 @@
|
||||
// ACME - a crossassembler for producing 6502/65c02/65816 code.
|
||||
// Copyright (C) 1998-2014 Marco Baye
|
||||
// ACME - a crossassembler for producing 6502/65c02/65816/65ce02 code.
|
||||
// Copyright (C) 1998-2016 Marco Baye
|
||||
// Have a look at "acme.c" for further info
|
||||
//
|
||||
// Main definitions
|
||||
|
@ -1,4 +1,4 @@
|
||||
// ACME - a crossassembler for producing 6502/65c02/65816 code.
|
||||
// ACME - a crossassembler for producing 6502/65c02/65816/65ce02 code.
|
||||
// Copyright (C) 1998-2016 Marco Baye
|
||||
// Have a look at "acme.c" for further info
|
||||
//
|
||||
|
@ -1,4 +1,4 @@
|
||||
// ACME - a crossassembler for producing 6502/65c02/65816 code.
|
||||
// ACME - a crossassembler for producing 6502/65c02/65816/65ce02 code.
|
||||
// Copyright (C) 1998-2016 Marco Baye
|
||||
// Have a look at "acme.c" for further info
|
||||
//
|
||||
|
@ -1,5 +1,5 @@
|
||||
// ACME - a crossassembler for producing 6502/65c02/65816 code.
|
||||
// Copyright (C) 1998-2009 Marco Baye
|
||||
// ACME - a crossassembler for producing 6502/65c02/65816/65ce02 code.
|
||||
// Copyright (C) 1998-2016 Marco Baye
|
||||
// Have a look at "acme.c" for further info
|
||||
//
|
||||
// CLI argument stuff
|
||||
|
@ -1,5 +1,5 @@
|
||||
// ACME - a crossassembler for producing 6502/65c02/65816 code.
|
||||
// Copyright (C) 1998-2009 Marco Baye
|
||||
// ACME - a crossassembler for producing 6502/65c02/65816/65ce02 code.
|
||||
// Copyright (C) 1998-2016 Marco Baye
|
||||
// Have a look at "acme.c" for further info
|
||||
//
|
||||
// CLI argument stuff
|
||||
|
@ -1,4 +1,4 @@
|
||||
// ACME - a crossassembler for producing 6502/65c02/65816 code.
|
||||
// ACME - a crossassembler for producing 6502/65c02/65816/65ce02 code.
|
||||
// Copyright (C) 1998-2016 Marco Baye
|
||||
// Have a look at "acme.c" for further info
|
||||
//
|
||||
|
44
src/cpu.c
44
src/cpu.c
@ -1,4 +1,4 @@
|
||||
// ACME - a crossassembler for producing 6502/65c02/65816 code.
|
||||
// ACME - a crossassembler for producing 6502/65c02/65816/65ce02 code.
|
||||
// Copyright (C) 1998-2016 Marco Baye
|
||||
// Have a look at "acme.c" for further info
|
||||
//
|
||||
@ -16,42 +16,50 @@
|
||||
|
||||
// constants
|
||||
static struct cpu_type cpu_type_6502 = {
|
||||
keyword_is_6502mnemo,
|
||||
keyword_is_6502_mnemo,
|
||||
CPUFLAG_INDIRECTJMPBUGGY, // JMP ($xxFF) is buggy
|
||||
234 // !align fills with "NOP"
|
||||
};
|
||||
static struct cpu_type cpu_type_6510 = {
|
||||
keyword_is_6510mnemo,
|
||||
keyword_is_6510_mnemo,
|
||||
CPUFLAG_INDIRECTJMPBUGGY | CPUFLAG_8B_AND_AB_NEED_0_ARG, // JMP ($xxFF) is buggy, ANE/LXA #$xx are unstable unless arg is $00
|
||||
234 // !align fills with "NOP"
|
||||
};
|
||||
static struct cpu_type cpu_type_c64dtv2 = {
|
||||
keyword_is_c64dtv2mnemo,
|
||||
keyword_is_c64dtv2_mnemo,
|
||||
CPUFLAG_INDIRECTJMPBUGGY | CPUFLAG_8B_AND_AB_NEED_0_ARG, // JMP ($xxFF) is buggy, ANE/LXA #$xx are unstable unless arg is $00
|
||||
234 // !align fills with "NOP"
|
||||
};
|
||||
static struct cpu_type cpu_type_65c02 = {
|
||||
keyword_is_65c02mnemo,
|
||||
keyword_is_65c02_mnemo,
|
||||
0, // no flags
|
||||
234 // !align fills with "NOP"
|
||||
};
|
||||
/*
|
||||
static struct cpu_type cpu_type_Rockwell65c02 = {
|
||||
keyword_is_Rockwell65c02mnemo,
|
||||
static struct cpu_type cpu_type_r65c02 = {
|
||||
keyword_is_r65c02_mnemo,
|
||||
0, // no flags
|
||||
234 // !align fills with "NOP"
|
||||
};
|
||||
static struct cpu_type cpu_type_WDC65c02 = {
|
||||
keyword_is_WDC65c02mnemo,
|
||||
static struct cpu_type cpu_type_w65c02 = {
|
||||
keyword_is_w65c02_mnemo,
|
||||
0, // no flags
|
||||
234 // !align fills with "NOP"
|
||||
};
|
||||
*/
|
||||
static struct cpu_type cpu_type_65816 = {
|
||||
keyword_is_65816mnemo,
|
||||
keyword_is_65816_mnemo,
|
||||
CPUFLAG_SUPPORTSLONGREGS, // allows A and XY to be 16bits wide
|
||||
234 // !align fills with "NOP"
|
||||
};
|
||||
static struct cpu_type cpu_type_65ce02 = {
|
||||
keyword_is_65ce02_mnemo,
|
||||
CPUFLAG_DECIMALSUBTRACTBUGGY, // SBC does not work reliably in decimal mode
|
||||
234 // !align fills with "NOP"
|
||||
};
|
||||
static struct cpu_type cpu_type_4502 = {
|
||||
keyword_is_4502_mnemo,
|
||||
CPUFLAG_DECIMALSUBTRACTBUGGY, // SBC does not work reliably in decimal mode
|
||||
234 // !align fills with "NOP"
|
||||
};
|
||||
|
||||
|
||||
// variables
|
||||
@ -59,15 +67,17 @@ static struct cpu_type cpu_type_65816 = {
|
||||
// predefined stuff
|
||||
static struct ronode *cputype_tree = NULL;
|
||||
static struct ronode cputype_list[] = {
|
||||
#define KNOWN_TYPES "'6502', '6510', 'c64dtv2', '65c02', '65816'" // shown in CLI error message for unknown types
|
||||
#define KNOWN_TYPES "'6502', '6510', '65c02', 'r65c02', 'w65c02', '65816', '65ce02', '4502', 'c64dtv2'" // shown in CLI error message for unknown types
|
||||
// PREDEFNODE("z80", &cpu_type_Z80),
|
||||
PREDEFNODE("6502", &cpu_type_6502),
|
||||
PREDEFNODE("6510", &cpu_type_6510),
|
||||
PREDEFNODE("c64dtv2", &cpu_type_c64dtv2),
|
||||
PREDEFNODE("65c02", &cpu_type_65c02),
|
||||
// PREDEFNODE("Rockwell65c02", &cpu_type_Rockwell65c02),
|
||||
// PREDEFNODE("WDC65c02", &cpu_type_WDC65c02),
|
||||
PREDEFLAST("65816", &cpu_type_65816),
|
||||
PREDEFNODE("r65c02", &cpu_type_r65c02),
|
||||
PREDEFNODE("w65c02", &cpu_type_w65c02),
|
||||
PREDEFNODE("65816", &cpu_type_65816),
|
||||
PREDEFNODE("65ce02", &cpu_type_65ce02),
|
||||
PREDEFNODE("4502", &cpu_type_4502),
|
||||
PREDEFLAST("c64dtv2", &cpu_type_c64dtv2),
|
||||
// ^^^^ this marks the last element
|
||||
};
|
||||
const char cputype_names[] = KNOWN_TYPES; // string to show if cputype_find() returns NULL
|
||||
|
@ -1,4 +1,4 @@
|
||||
// ACME - a crossassembler for producing 6502/65c02/65816 code.
|
||||
// ACME - a crossassembler for producing 6502/65c02/65816/65ce02 code.
|
||||
// Copyright (C) 1998-2016 Marco Baye
|
||||
// Have a look at "acme.c" for further info
|
||||
//
|
||||
@ -22,6 +22,7 @@ struct cpu_type {
|
||||
#define CPUFLAG_SUPPORTSLONGREGS (1u << 1) // allow "!al" and "!rl" pseudo opcodes
|
||||
#define CPUFLAG_8B_AND_AB_NEED_0_ARG (1u << 2) // warn if "ane/lxa #$xx" uses non-zero arg
|
||||
#define CPUFLAG_ISBIGENDIAN (1u << 3) // for 16/24/32-bit values, output msb first
|
||||
#define CPUFLAG_DECIMALSUBTRACTBUGGY (1u << 4) // warn if "sed" is assembled
|
||||
|
||||
|
||||
// if cpu type and value match, set register length variable to value.
|
||||
|
@ -1,5 +1,5 @@
|
||||
// ACME - a crossassembler for producing 6502/65c02/65816 code.
|
||||
// Copyright (C) 1998-2014 Marco Baye
|
||||
// ACME - a crossassembler for producing 6502/65c02/65816/65ce02 code.
|
||||
// Copyright (C) 1998-2016 Marco Baye
|
||||
// Have a look at "acme.c" for further info
|
||||
//
|
||||
// Dynamic buffer stuff
|
||||
|
@ -1,5 +1,5 @@
|
||||
// ACME - a crossassembler for producing 6502/65c02/65816 code.
|
||||
// Copyright (C) 1998-2014 Marco Baye
|
||||
// ACME - a crossassembler for producing 6502/65c02/65816/65ce02 code.
|
||||
// Copyright (C) 1998-2016 Marco Baye
|
||||
// Have a look at "acme.c" for further info
|
||||
//
|
||||
// Dynamic buffer stuff
|
||||
|
@ -1,5 +1,5 @@
|
||||
// ACME - a crossassembler for producing 6502/65c02/65816 code.
|
||||
// Copyright (C) 1998-2014 Marco Baye
|
||||
// ACME - a crossassembler for producing 6502/65c02/65816/65ce02 code.
|
||||
// Copyright (C) 1998-2016 Marco Baye
|
||||
// Have a look at "acme.c" for further info
|
||||
//
|
||||
// Character encoding stuff
|
||||
|
@ -1,5 +1,5 @@
|
||||
// ACME - a crossassembler for producing 6502/65c02/65816 code.
|
||||
// Copyright (C) 1998-2014 Marco Baye
|
||||
// ACME - a crossassembler for producing 6502/65c02/65816/65ce02 code.
|
||||
// Copyright (C) 1998-2016 Marco Baye
|
||||
// Have a look at "acme.c" for further info
|
||||
//
|
||||
// Character encoding stuff
|
||||
|
@ -1,5 +1,5 @@
|
||||
// ACME - a crossassembler for producing 6502/65c02/65816 code.
|
||||
// Copyright (C) 1998-2014 Marco Baye
|
||||
// ACME - a crossassembler for producing 6502/65c02/65816/65ce02 code.
|
||||
// Copyright (C) 1998-2016 Marco Baye
|
||||
// Have a look at "acme.c" for further info
|
||||
//
|
||||
// Flow control stuff (loops, conditional assembly etc.)
|
||||
|
@ -1,5 +1,5 @@
|
||||
// ACME - a crossassembler for producing 6502/65c02/65816 code.
|
||||
// Copyright (C) 1998-2015 Marco Baye
|
||||
// ACME - a crossassembler for producing 6502/65c02/65816/65ce02 code.
|
||||
// Copyright (C) 1998-2016 Marco Baye
|
||||
// Have a look at "acme.c" for further info
|
||||
//
|
||||
// flow control stuff (loops, conditional assembly etc.)
|
||||
|
@ -1,4 +1,4 @@
|
||||
// ACME - a crossassembler for producing 6502/65c02/65816 code.
|
||||
// ACME - a crossassembler for producing 6502/65c02/65816/65ce02 code.
|
||||
// Copyright (C) 1998-2016 Marco Baye
|
||||
// Have a look at "acme.c" for further info
|
||||
//
|
||||
|
@ -1,4 +1,4 @@
|
||||
// ACME - a crossassembler for producing 6502/65c02/65816 code.
|
||||
// ACME - a crossassembler for producing 6502/65c02/65816/65ce02 code.
|
||||
// Copyright (C) 1998-2016 Marco Baye
|
||||
// Have a look at "acme.c" for further info
|
||||
//
|
||||
|
@ -1,4 +1,4 @@
|
||||
// ACME - a crossassembler for producing 6502/65c02/65816 code.
|
||||
// ACME - a crossassembler for producing 6502/65c02/65816/65ce02 code.
|
||||
// Copyright (C) 1998-2016 Marco Baye
|
||||
// Have a look at "acme.c" for further info
|
||||
//
|
||||
|
@ -1,4 +1,4 @@
|
||||
// ACME - a crossassembler for producing 6502/65c02/65816 code.
|
||||
// ACME - a crossassembler for producing 6502/65c02/65816/65ce02 code.
|
||||
// Copyright (C) 1998-2016 Marco Baye
|
||||
// Have a look at "acme.c" for further info
|
||||
//
|
||||
|
@ -1,4 +1,4 @@
|
||||
// ACME - a crossassembler for producing 6502/65c02/65816 code.
|
||||
// ACME - a crossassembler for producing 6502/65c02/65816/65ce02 code.
|
||||
// Copyright (C) 1998-2016 Marco Baye
|
||||
// Have a look at "acme.c" for further info
|
||||
//
|
||||
|
@ -1,5 +1,5 @@
|
||||
// ACME - a crossassembler for producing 6502/65c02/65816 code.
|
||||
// Copyright (C) 1998-2009 Marco Baye
|
||||
// ACME - a crossassembler for producing 6502/65c02/65816/65ce02 code.
|
||||
// Copyright (C) 1998-2016 Marco Baye
|
||||
// Have a look at "acme.c" for further info
|
||||
//
|
||||
// Macro stuff
|
||||
|
838
src/mnemo.c
838
src/mnemo.c
File diff suppressed because it is too large
Load Diff
40
src/mnemo.h
40
src/mnemo.h
@ -1,30 +1,32 @@
|
||||
// ACME - a crossassembler for producing 6502/65c02/65816 code.
|
||||
// Copyright (C) 1998-2009 Marco Baye
|
||||
// ACME - a crossassembler for producing 6502/65c02/65816/65ce02 code.
|
||||
// Copyright (C) 1998-2016 Marco Baye
|
||||
// Have a look at "acme.c" for further info
|
||||
//
|
||||
// Mnemonic definitions
|
||||
// mnemonic definitions
|
||||
#ifndef mnemo_H
|
||||
#define mnemo_H
|
||||
|
||||
|
||||
// Prototypes
|
||||
|
||||
// create dynamic buffer, build keyword trees
|
||||
extern void Mnemo_init(void);
|
||||
// Check whether mnemonic in GlobalDynaBuf is supported by 6502 cpu.
|
||||
extern int keyword_is_6502mnemo(int length);
|
||||
// Check whether mnemonic in GlobalDynaBuf is supported by 6510 cpu.
|
||||
extern int keyword_is_6510mnemo(int length);
|
||||
// Check whether mnemonic in GlobalDynaBuf is supported by C64DTV2 cpu.
|
||||
extern int keyword_is_c64dtv2mnemo(int length);
|
||||
// Check whether mnemonic in GlobalDynaBuf is supported by 65c02 cpu.
|
||||
extern int keyword_is_65c02mnemo(int length);
|
||||
// Check whether mnemonic in GlobalDynaBuf is supported by Rockwell 65c02 cpu.
|
||||
//extern int keyword_is_Rockwell65c02mnemo(int length);
|
||||
// Check whether mnemonic in GlobalDynaBuf is supported by WDC 65c02 cpu.
|
||||
//extern int keyword_is_WDC65c02mnemo(int length);
|
||||
// Check whether mnemonic in GlobalDynaBuf is supported by 65816 cpu.
|
||||
extern int keyword_is_65816mnemo(int length);
|
||||
// check whether mnemonic in GlobalDynaBuf is supported by 6502 cpu.
|
||||
extern int keyword_is_6502_mnemo(int length);
|
||||
// check whether mnemonic in GlobalDynaBuf is supported by 6510 cpu.
|
||||
extern int keyword_is_6510_mnemo(int length);
|
||||
// check whether mnemonic in GlobalDynaBuf is supported by C64DTV2 cpu.
|
||||
extern int keyword_is_c64dtv2_mnemo(int length);
|
||||
// check whether mnemonic in GlobalDynaBuf is supported by 65c02 cpu.
|
||||
extern int keyword_is_65c02_mnemo(int length);
|
||||
// check whether mnemonic in GlobalDynaBuf is supported by Rockwell 65c02 cpu.
|
||||
extern int keyword_is_r65c02_mnemo(int length);
|
||||
// check whether mnemonic in GlobalDynaBuf is supported by WDC 65c02 cpu.
|
||||
extern int keyword_is_w65c02_mnemo(int length);
|
||||
// check whether mnemonic in GlobalDynaBuf is supported by 65816 cpu.
|
||||
extern int keyword_is_65816_mnemo(int length);
|
||||
// check whether mnemonic in GlobalDynaBuf is supported by CSG 65ce02 cpu.
|
||||
extern int keyword_is_65ce02_mnemo(int length);
|
||||
// check whether mnemonic in GlobalDynaBuf is supported by CSG 4502 cpu.
|
||||
extern int keyword_is_4502_mnemo(int length);
|
||||
|
||||
|
||||
#endif
|
||||
|
@ -1,4 +1,4 @@
|
||||
// ACME - a crossassembler for producing 6502/65c02/65816 code.
|
||||
// ACME - a crossassembler for producing 6502/65c02/65816/65ce02 code.
|
||||
// Copyright (C) 1998-2016 Marco Baye
|
||||
// Have a look at "acme.c" for further info
|
||||
//
|
||||
|
@ -1,4 +1,4 @@
|
||||
// ACME - a crossassembler for producing 6502/65c02/65816 code.
|
||||
// ACME - a crossassembler for producing 6502/65c02/65816/65ce02 code.
|
||||
// Copyright (C) 1998-2016 Marco Baye
|
||||
// Have a look at "acme.c" for further info
|
||||
//
|
||||
|
@ -1,5 +1,5 @@
|
||||
// ACME - a crossassembler for producing 6502/65c02/65816 code.
|
||||
// Copyright (C) 1998-2009 Marco Baye
|
||||
// ACME - a crossassembler for producing 6502/65c02/65816/65ce02 code.
|
||||
// Copyright (C) 1998-2016 Marco Baye
|
||||
// Have a look at "acme.c" for further info
|
||||
//
|
||||
// Platform specific stuff
|
||||
|
@ -1,5 +1,5 @@
|
||||
// ACME - a crossassembler for producing 6502/65c02/65816 code.
|
||||
// Copyright (C) 1998-2009 Marco Baye
|
||||
// ACME - a crossassembler for producing 6502/65c02/65816/65ce02 code.
|
||||
// Copyright (C) 1998-2016 Marco Baye
|
||||
// Have a look at "acme.c" for further info
|
||||
//
|
||||
// Platform specific stuff
|
||||
|
@ -1,4 +1,4 @@
|
||||
// ACME - a crossassembler for producing 6502/65c02/65816 code.
|
||||
// ACME - a crossassembler for producing 6502/65c02/65816/65ce02 code.
|
||||
// Copyright (C) 1998-2016 Marco Baye
|
||||
// Have a look at "acme.c" for further info
|
||||
//
|
||||
|
@ -1,5 +1,5 @@
|
||||
// ACME - a crossassembler for producing 6502/65c02/65816 code.
|
||||
// Copyright (C) 1998-2014 Marco Baye
|
||||
// ACME - a crossassembler for producing 6502/65c02/65816/65ce02 code.
|
||||
// Copyright (C) 1998-2016 Marco Baye
|
||||
// Have a look at "acme.c" for further info
|
||||
//
|
||||
// pseudo opcode stuff
|
||||
|
@ -1,4 +1,4 @@
|
||||
// ACME - a crossassembler for producing 6502/65c02/65816 code.
|
||||
// ACME - a crossassembler for producing 6502/65c02/65816/65ce02 code.
|
||||
// Copyright (C) 1998-2016 Marco Baye
|
||||
// Have a look at "acme.c" for further info
|
||||
//
|
||||
|
@ -1,4 +1,4 @@
|
||||
// ACME - a crossassembler for producing 6502/65c02/65816 code.
|
||||
// ACME - a crossassembler for producing 6502/65c02/65816/65ce02 code.
|
||||
// Copyright (C) 1998-2016 Marco Baye
|
||||
// Have a look at "acme.c" for further info
|
||||
//
|
||||
|
@ -1,4 +1,4 @@
|
||||
// ACME - a crossassembler for producing 6502/65c02/65816 code.
|
||||
// ACME - a crossassembler for producing 6502/65c02/65816/65ce02 code.
|
||||
// Copyright (C) 1998-2016 Marco Baye
|
||||
// Have a look at "acme.c" for further info
|
||||
//
|
||||
|
@ -1,4 +1,4 @@
|
||||
// ACME - a crossassembler for producing 6502/65c02/65816 code.
|
||||
// ACME - a crossassembler for producing 6502/65c02/65816/65ce02 code.
|
||||
// Copyright (C) 1998-2016 Marco Baye
|
||||
// Have a look at "acme.c" for further info
|
||||
//
|
||||
|
@ -1,5 +1,5 @@
|
||||
// ACME - a crossassembler for producing 6502/65c02/65816 code.
|
||||
// Copyright (C) 1998-2014 Marco Baye
|
||||
// ACME - a crossassembler for producing 6502/65c02/65816/65ce02 code.
|
||||
// Copyright (C) 1998-2016 Marco Baye
|
||||
// Have a look at "acme.c" for further info
|
||||
//
|
||||
// tree stuff
|
||||
|
@ -1,4 +1,4 @@
|
||||
// ACME - a crossassembler for producing 6502/65c02/65816 code.
|
||||
// ACME - a crossassembler for producing 6502/65c02/65816/65ce02 code.
|
||||
// Copyright (C) 1998-2016 Marco Baye
|
||||
// Have a look at "acme.c" for further info
|
||||
//
|
||||
|
@ -1,5 +1,5 @@
|
||||
// ACME - a crossassembler for producing 6502/65c02/65816 code.
|
||||
// Copyright (C) 1998-2014 Marco Baye
|
||||
// ACME - a crossassembler for producing 6502/65c02/65816/65ce02 code.
|
||||
// Copyright (C) 1998-2016 Marco Baye
|
||||
// Have a look at "acme.c" for further info
|
||||
//
|
||||
// type system stuff
|
||||
|
@ -1,5 +1,5 @@
|
||||
// ACME - a crossassembler for producing 6502/65c02/65816 code.
|
||||
// Copyright (C) 1998-2014 Marco Baye
|
||||
// ACME - a crossassembler for producing 6502/65c02/65816/65ce02 code.
|
||||
// Copyright (C) 1998-2016 Marco Baye
|
||||
// Have a look at "acme.c" for further info
|
||||
//
|
||||
// Type system stuff
|
||||
|
@ -1,4 +1,4 @@
|
||||
// ACME - a crossassembler for producing 6502/65c02/65816 code.
|
||||
// ACME - a crossassembler for producing 6502/65c02/65816/65ce02 code.
|
||||
// Copyright (C) 1998-2016 Marco Baye
|
||||
// Have a look at "acme.c" for further info
|
||||
//
|
||||
@ -7,9 +7,9 @@
|
||||
#define version_H
|
||||
|
||||
|
||||
#define RELEASE "0.95.8" // update before release (FIXME)
|
||||
#define RELEASE "0.96" // update before release (FIXME)
|
||||
#define CODENAME "Fenchurch" // update before release
|
||||
#define CHANGE_DATE "8 Oct" // update before release
|
||||
#define CHANGE_DATE "28 Dec" // update before release
|
||||
#define CHANGE_YEAR "2016" // update before release
|
||||
//#define HOME_PAGE "http://home.pages.de/~mac_bacon/smorbrod/acme/" // FIXME
|
||||
#define HOME_PAGE "http://sourceforge.net/p/acme-crossass/" // FIXME
|
||||
|
Loading…
x
Reference in New Issue
Block a user