mirror of
https://github.com/cc65/cc65.git
synced 2025-01-26 17:36:57 +00:00
Followed the discussions in the Pull request #682.
* Fixed a misspelling * Fixed styles * Added sample codes
This commit is contained in:
parent
335a8972b9
commit
8899d71cad
@ -312,7 +312,7 @@ anything). Each attribute is terminated by a semicolon.
|
||||
|
||||
<sect1>Comments<p>
|
||||
|
||||
Comments start with a hash mark (<tt/#/) or a double slashe (<tt>//</tt>);
|
||||
Comments start with a hash mark (<tt/#/) or a double slash (<tt>//</tt>);
|
||||
and, extend from the position of the mark to the end of the current line.
|
||||
Hash marks or double slashes inside of strings will <em/not/ start a comment,
|
||||
of course.
|
||||
|
@ -59,6 +59,7 @@ unsigned char PassCount = 2; /* How many passed do we do? */
|
||||
signed char NewlineAfterJMP = -1; /* Add a newline after a JMP insn? */
|
||||
signed char NewlineAfterRTS = -1; /* Add a newline after a RTS insn? */
|
||||
long StartAddr = -1L; /* Start/load address of the program */
|
||||
unsigned char SyncLines = 0; /* Accept line markers in the info file */
|
||||
long InputOffs = -1L; /* Offset into input file */
|
||||
long InputSize = -1L; /* Number of bytes to read from input */
|
||||
|
||||
|
@ -60,6 +60,7 @@ extern unsigned char PassCount; /* How many passed do we do? */
|
||||
extern signed char NewlineAfterJMP;/* Add a newline after a JMP insn? */
|
||||
extern signed char NewlineAfterRTS;/* Add a newline after a RTS insn? */
|
||||
extern long StartAddr; /* Start/load address of the program */
|
||||
extern unsigned char SyncLines; /* Accept line markers in the info file */
|
||||
extern long InputOffs; /* Offset into input file */
|
||||
extern long InputSize; /* Number of bytes to read from input */
|
||||
|
||||
|
@ -318,7 +318,7 @@ static void OptSyncLines (const char* Opt attribute ((unused)),
|
||||
const char* Arg attribute ((unused)))
|
||||
/* Handle the --sync-lines option */
|
||||
{
|
||||
InfoSyncLines = 1;
|
||||
SyncLines = 1;
|
||||
}
|
||||
|
||||
|
||||
|
@ -76,8 +76,6 @@ static unsigned InputCol = 0;
|
||||
static FILE* InputFile = 0;
|
||||
static char* InputSrcName = 0;
|
||||
|
||||
/* Options */
|
||||
unsigned char InfoSyncLines = 0;
|
||||
|
||||
|
||||
/*****************************************************************************/
|
||||
@ -119,6 +117,7 @@ void InfoError (const char* Format, ...)
|
||||
|
||||
|
||||
|
||||
|
||||
/*****************************************************************************/
|
||||
/* Code */
|
||||
/*****************************************************************************/
|
||||
@ -164,7 +163,7 @@ static void SkipBlanks (int SingleLine)
|
||||
}
|
||||
}
|
||||
|
||||
static long GetDecimalToken ()
|
||||
static long GetDecimalToken (void)
|
||||
{
|
||||
long Value = 0;
|
||||
|
||||
@ -226,15 +225,15 @@ Store:
|
||||
|
||||
static void LineMarkerOrComment ()
|
||||
/* Handle a line beginning with '#'. Possible interpretations are:
|
||||
* - #line <lineno> ["<filename>"] (C preprocessor input)
|
||||
* - # <lineno> "<filename>" [<flag>]... (gcc preprocessor output)
|
||||
* - #<comment>
|
||||
*/
|
||||
** - #line <lineno> ["<filename>"] (C preprocessor input)
|
||||
** - # <lineno> "<filename>" [<flag>]... (gcc preprocessor output)
|
||||
** - #<comment>
|
||||
*/
|
||||
{
|
||||
unsigned long LineNo = 0;
|
||||
int LineDirective = 0;
|
||||
StrBuf SrcNameBuf = AUTO_STRBUF_INITIALIZER;
|
||||
|
||||
|
||||
/* Skip the first "# " */
|
||||
NextChar ();
|
||||
SkipBlanks (1);
|
||||
@ -440,7 +439,7 @@ Again:
|
||||
|
||||
case '#':
|
||||
/* # lineno "sourcefile" or # comment */
|
||||
if (InfoSyncLines && InputCol == 1) {
|
||||
if (SyncLines && InputCol == 1) {
|
||||
LineMarkerOrComment ();
|
||||
} else {
|
||||
do {
|
||||
|
@ -137,8 +137,6 @@ extern long InfoIVal;
|
||||
extern unsigned InfoErrorLine;
|
||||
extern unsigned InfoErrorCol;
|
||||
|
||||
/* Options */
|
||||
extern unsigned char InfoSyncLines;
|
||||
|
||||
|
||||
/*****************************************************************************/
|
||||
|
2
testcode/disasm/.gitignore
vendored
Normal file
2
testcode/disasm/.gitignore
vendored
Normal file
@ -0,0 +1,2 @@
|
||||
*.s
|
||||
image.bin
|
16
testcode/disasm/bank0.da
Normal file
16
testcode/disasm/bank0.da
Normal file
@ -0,0 +1,16 @@
|
||||
// Da65 input file before preprocessed by cpp
|
||||
// Bank0 ROM map
|
||||
|
||||
#define TARGET_BANK 0
|
||||
global {
|
||||
inputoffs $00010;
|
||||
inputsize $4000;
|
||||
startaddr $8000;
|
||||
cpu "6502";
|
||||
};
|
||||
|
||||
#include "fixed.da"
|
||||
|
||||
label { addr $8000; name "Bank0ProcA"; };
|
||||
label { addr $8123; name "Bank0ProcB"; };
|
||||
range { start $A000; end $BFFF; name "Bank0Data"; type ByteTable; };
|
33
testcode/disasm/bank0.dai
Normal file
33
testcode/disasm/bank0.dai
Normal file
@ -0,0 +1,33 @@
|
||||
# 1 "bank0.da"
|
||||
# 1 "<built-in>"
|
||||
# 1 "<command-line>"
|
||||
# 1 "bank0.da"
|
||||
|
||||
|
||||
|
||||
|
||||
global {
|
||||
inputoffs $00010;
|
||||
inputsize $4000;
|
||||
startaddr $8000;
|
||||
cpu "6502";
|
||||
};
|
||||
|
||||
# 1 "fixed.da" 1
|
||||
# 18 "fixed.da"
|
||||
label { addr $00; name "VariableA"; };
|
||||
label { addr $01; name "VariableB"; };
|
||||
label { addr $0100; name "Stack"; size $0100; };
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
label { addr $C000; name "CommonProcA"; };
|
||||
label { addr $C123; name "CommonProcB"; };
|
||||
range { start $E123; end $FFFF; name "CommonData"; type ByteTable; };
|
||||
# 13 "bank0.da" 2
|
||||
|
||||
label { addr $8000; name "Bank0ProcA"; };
|
||||
label { addr $8123; name "Bank0ProcB"; };
|
||||
range { start $A000; end $BFFF; name "Bank0Data"; type ByteTable; };
|
16
testcode/disasm/bank1.da
Normal file
16
testcode/disasm/bank1.da
Normal file
@ -0,0 +1,16 @@
|
||||
// Da65 input file before preprocessed by cpp
|
||||
// Bank1 ROM map
|
||||
|
||||
#define TARGET_BANK 1
|
||||
global {
|
||||
inputoffs $04010;
|
||||
inputsize $4000;
|
||||
startaddr $8000;
|
||||
cpu "6502";
|
||||
};
|
||||
|
||||
#include "fixed.da"
|
||||
|
||||
range { start $8000; end $AFFF; name "Bank1Data"; type ByteTable; };
|
||||
label { addr $B000; name "Bank1ProcA"; };
|
||||
label { addr $B123; name "Bank1ProcB"; };
|
33
testcode/disasm/bank1.dai
Normal file
33
testcode/disasm/bank1.dai
Normal file
@ -0,0 +1,33 @@
|
||||
# 1 "bank1.da"
|
||||
# 1 "<built-in>"
|
||||
# 1 "<command-line>"
|
||||
# 1 "bank1.da"
|
||||
|
||||
|
||||
|
||||
|
||||
global {
|
||||
inputoffs $04010;
|
||||
inputsize $4000;
|
||||
startaddr $8000;
|
||||
cpu "6502";
|
||||
};
|
||||
|
||||
# 1 "fixed.da" 1
|
||||
# 18 "fixed.da"
|
||||
label { addr $00; name "VariableA"; };
|
||||
label { addr $01; name "VariableB"; };
|
||||
label { addr $0100; name "Stack"; size $0100; };
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
label { addr $C000; name "CommonProcA"; };
|
||||
label { addr $C123; name "CommonProcB"; };
|
||||
range { start $E123; end $FFFF; name "CommonData"; type ByteTable; };
|
||||
# 13 "bank1.da" 2
|
||||
|
||||
range { start $8000; end $AFFF; name "Bank1Data"; type ByteTable; };
|
||||
label { addr $B000; name "Bank1ProcA"; };
|
||||
label { addr $B123; name "Bank1ProcB"; };
|
30
testcode/disasm/fixed.da
Normal file
30
testcode/disasm/fixed.da
Normal file
@ -0,0 +1,30 @@
|
||||
// Da65 input file before preprocessed by cpp
|
||||
// RAM and Fixed ROM map
|
||||
|
||||
#ifndef FIXED_DA_INCLUDED
|
||||
#define FIXED_DA_INCLUDED
|
||||
|
||||
#ifndef TARGET_BANK
|
||||
#define TARGET_BANK -1
|
||||
global {
|
||||
inputoffs $1C010;
|
||||
inputsize $4000;
|
||||
startaddr $C000;
|
||||
cpu "6502";
|
||||
};
|
||||
#endif /* !defined(TARGET_BANK) */
|
||||
|
||||
// ---- RAM map ----
|
||||
label { addr $00; name "VariableA"; };
|
||||
label { addr $01; name "VariableB"; };
|
||||
label { addr $0100; name "Stack"; size $0100; };
|
||||
#if defined(TEST_ERROR) && TARGET_BANK == 0
|
||||
erroneous_line;
|
||||
#endif
|
||||
|
||||
// ---- Fixed ROM map ----
|
||||
label { addr $C000; name "CommonProcA"; };
|
||||
label { addr $C123; name "CommonProcB"; };
|
||||
range { start $E123; end $FFFF; name "CommonData"; type ByteTable; };
|
||||
|
||||
#endif /* !defined(FIXED_DA_INCLUDED) */
|
25
testcode/disasm/fixed.dai
Normal file
25
testcode/disasm/fixed.dai
Normal file
@ -0,0 +1,25 @@
|
||||
# 1 "fixed.da"
|
||||
# 1 "<built-in>"
|
||||
# 1 "<command-line>"
|
||||
# 1 "fixed.da"
|
||||
# 9 "fixed.da"
|
||||
global {
|
||||
inputoffs $1C010;
|
||||
inputsize $4000;
|
||||
startaddr $C000;
|
||||
cpu "6502";
|
||||
};
|
||||
|
||||
|
||||
|
||||
label { addr $00; name "VariableA"; };
|
||||
label { addr $01; name "VariableB"; };
|
||||
label { addr $0100; name "Stack"; size $0100; };
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
label { addr $C000; name "CommonProcA"; };
|
||||
label { addr $C123; name "CommonProcB"; };
|
||||
range { start $E123; end $FFFF; name "CommonData"; type ByteTable; };
|
28
testcode/disasm/sample-unix.mk
Normal file
28
testcode/disasm/sample-unix.mk
Normal file
@ -0,0 +1,28 @@
|
||||
# Sample makefile using a preprocessor against info files
|
||||
# and the --sync-lines option
|
||||
|
||||
CPP = env LANG=C cpp
|
||||
CPPFLAGS = # -DTEST_ERROR
|
||||
|
||||
ASMS = fixed.s bank0.s bank1.s
|
||||
DAIS = fixed.dai bank0.dai bank1.dai
|
||||
|
||||
.SUFFIXES: .da .dai .s
|
||||
.PHONY: all clean maintainer-clean
|
||||
.SECONDARY: $(DAIS)
|
||||
|
||||
.da.dai:
|
||||
$(CPP) -o $@ $(CPPFLAGS) $<
|
||||
|
||||
.dai.s:
|
||||
da65 --sync-lines -o $@ -i $< image.bin
|
||||
|
||||
all: $(ASMS)
|
||||
|
||||
clean:
|
||||
rm -f $(ASMS)
|
||||
|
||||
maintainer-clean: clean
|
||||
rm -f $(DAIS)
|
||||
|
||||
$(DAIS): fixed.da
|
Loading…
x
Reference in New Issue
Block a user