Skip to content

Commit

Permalink
Followed the discussions in the Pull request #682.
Browse files Browse the repository at this point in the history
* Fixed a misspelling
* Fixed styles
* Added sample codes
  • Loading branch information
shinra-jp committed Jun 13, 2018
1 parent 2b25329 commit fd67284
Show file tree
Hide file tree
Showing 14 changed files with 195 additions and 13 deletions.
2 changes: 1 addition & 1 deletion doc/da65.sgml
Expand Up @@ -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.
Expand Down
1 change: 1 addition & 0 deletions src/da65/global.c
Expand Up @@ -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 */

Expand Down
1 change: 1 addition & 0 deletions src/da65/global.h
Expand Up @@ -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 */

Expand Down
2 changes: 1 addition & 1 deletion src/da65/main.c
Expand Up @@ -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;
}


Expand Down
17 changes: 8 additions & 9 deletions src/da65/scanner.c
Expand Up @@ -76,8 +76,6 @@ static unsigned InputCol = 0;
static FILE* InputFile = 0;
static char* InputSrcName = 0;

/* Options */
unsigned char InfoSyncLines = 0;


/*****************************************************************************/
Expand Down Expand Up @@ -119,6 +117,7 @@ void InfoError (const char* Format, ...)




/*****************************************************************************/
/* Code */
/*****************************************************************************/
Expand Down Expand Up @@ -164,7 +163,7 @@ static void SkipBlanks (int SingleLine)
}
}

static long GetDecimalToken ()
static long GetDecimalToken (void)
{
long Value = 0;

Expand Down Expand Up @@ -226,15 +225,15 @@ static int GetEncodedChar (char *Buf, unsigned *IPtr, unsigned Size)

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);
Expand Down Expand Up @@ -440,7 +439,7 @@ void InfoNextTok (void)

case '#':
/* # lineno "sourcefile" or # comment */
if (InfoSyncLines && InputCol == 1) {
if (SyncLines && InputCol == 1) {
LineMarkerOrComment ();
} else {
do {
Expand Down
2 changes: 0 additions & 2 deletions src/da65/scanner.h
Expand Up @@ -138,8 +138,6 @@ extern long InfoIVal;
extern unsigned InfoErrorLine;
extern unsigned InfoErrorCol;

/* Options */
extern unsigned char InfoSyncLines;


/*****************************************************************************/
Expand Down
2 changes: 2 additions & 0 deletions testcode/disasm/.gitignore
@@ -0,0 +1,2 @@
*.s
image.bin
16 changes: 16 additions & 0 deletions testcode/disasm/bank0.da
@@ -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 changes: 33 additions & 0 deletions testcode/disasm/bank0.dai
@@ -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 changes: 16 additions & 0 deletions testcode/disasm/bank1.da
@@ -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 changes: 33 additions & 0 deletions testcode/disasm/bank1.dai
@@ -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 changes: 30 additions & 0 deletions testcode/disasm/fixed.da
@@ -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 changes: 25 additions & 0 deletions testcode/disasm/fixed.dai
@@ -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 changes: 28 additions & 0 deletions testcode/disasm/sample-unix.mk
@@ -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

0 comments on commit fd67284

Please sign in to comment.