Commit Graph

648 Commits

Author SHA1 Message Date
uz
7db7f34d91 Fix an error with .ELSEIF: The condition must only be evaluated if the .ELSEIF
is inside an .IF which had a TRUE condition.


git-svn-id: svn://svn.cc65.org/cc65/trunk@5036 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-06-07 17:16:18 +00:00
uz
f0a6653bd1 Added a comment about the fix explaining why the given order of calls is necessary.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5035 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-06-05 14:47:28 +00:00
uz
46f1285208 Fixed an error in macro expansion: If the first token after the macro name was
a .define style macro, the assembler run into an internal error, because the
expansion of the second macro was started before the first one


git-svn-id: svn://svn.cc65.org/cc65/trunk@5034 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-06-05 14:45:37 +00:00
uz
6a48359d23 Fix a problem with conditional assembly: The scanner has to be switched into
raw token mode when skipping a section of input because otherwise pseudo
functions may trigger errors.


git-svn-id: svn://svn.cc65.org/cc65/trunk@5033 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-06-05 14:28:56 +00:00
uz
6a56201046 Remove declarations for stuff that has never been there.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5032 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-06-05 14:24:51 +00:00
uz
9c53f8879c Fixed a problem in GetSymParentScope, where an error in the assembler input
somewhere before could lead to an invalid memory access.


git-svn-id: svn://svn.cc65.org/cc65/trunk@5031 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-05-31 14:51:21 +00:00
uz
9c267dab89 The terminating zero was missing in several places where a string buffer was
copied to CurTok.SVal.


git-svn-id: svn://svn.cc65.org/cc65/trunk@5030 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-05-30 21:56:27 +00:00
uz
f2517269ad Fix problem with output of sprintf when %s format spec is used.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5029 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-05-30 21:37:34 +00:00
uz
a6389e6406 The assembler options -l and --listing will now take the name of the listing
file as an argument.


git-svn-id: svn://svn.cc65.org/cc65/trunk@4967 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-02-06 20:10:19 +00:00
uz
299a0ed4cd Pass type of line info through the object files.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4957 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-01-29 22:16:03 +00:00
uz
88e6b86427 Changed text of notification.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4952 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-01-29 20:30:38 +00:00
uz
f0a0095c25 Create separate line infos for macros and .repeat statements and other token
lists. These are also output as diagnostic in case of an error.


git-svn-id: svn://svn.cc65.org/cc65/trunk@4951 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-01-29 20:24:44 +00:00
uz
1072edb0d8 Use line infos to output more verbose error and warning messages whenever
possible.


git-svn-id: svn://svn.cc65.org/cc65/trunk@4950 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-01-29 18:43:36 +00:00
uz
9023d0c6f2 On errors and warnings, output additional information using extra line info
supplied using the .dbg statements.


git-svn-id: svn://svn.cc65.org/cc65/trunk@4937 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-01-27 22:25:32 +00:00
uz
036282aced Fix forgotten stuff from last change.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4936 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-01-27 22:23:01 +00:00
uz
81555b223d More lineinfo usage.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4935 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-01-27 21:40:37 +00:00
uz
713c019a24 Save a few bytes when writing file list entries to the object file.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4929 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-01-27 16:40:48 +00:00
uz
b2b1edc4ab Actually generate basic line info.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4928 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-01-27 16:39:30 +00:00
uz
5b79d7e685 Convert imports, exports and debug symbols to use and write line infos instead
of embedded file positions.


git-svn-id: svn://svn.cc65.org/cc65/trunk@4918 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-01-25 16:27:17 +00:00
uz
f3487b7c0f No need to search for the correct line info entry, the source position is
always in slot zero.


git-svn-id: svn://svn.cc65.org/cc65/trunk@4917 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-01-25 16:26:50 +00:00
uz
06e3152035 Started to generalize line info handling. Remove separate FilePos fields and
try to manage all and everything with LineInfos.


git-svn-id: svn://svn.cc65.org/cc65/trunk@4914 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-01-24 22:38:22 +00:00
uz
3b59a8ca6f Mark tokens with the file position from where they're read. Restore this
position for tokens read from a token list. This means that line info does
now show the actual point of definition. This is an improvement but needs to
be refined.


git-svn-id: svn://svn.cc65.org/cc65/trunk@4911 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-01-20 20:54:30 +00:00
uz
ddb7296b6c Move all attributes and other information that is attached to a token into a
structure named Token.


git-svn-id: svn://svn.cc65.org/cc65/trunk@4910 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-01-16 16:05:43 +00:00
uz
dbfae85f54 Renamed the Token enumeration to token_t.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4909 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-01-16 14:51:13 +00:00
uz
1d36b7f1b3 Add missing braces in macro definition. No error but could cause one.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4908 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-01-16 14:19:58 +00:00
uz
e2485f100e Removed two defines that are no longer in use.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4907 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-01-16 14:18:03 +00:00
uz
839e2c4202 Added new .FATAL pseudo op.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4903 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-01-09 11:00:22 +00:00
uz
d60c627cb6 When replaying a token list, be sure to zero terminate the string attribute of
a token.
        


git-svn-id: svn://svn.cc65.org/cc65/trunk@4900 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-01-05 10:47:32 +00:00
uz
78c2b66e58 When collecting tokens to be repeated inside of a .REPEAT section, do this in
raw token mode, otherwise stuff is already partially evaluated.


git-svn-id: svn://svn.cc65.org/cc65/trunk@4897 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-01-04 19:17:20 +00:00
uz
3f24c88355 SegNum has been renamed to SecNum.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4845 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-11-10 10:22:55 +00:00
uz
6c0a9c0438 Patch to correct the linkorder in the make files to make the --as-needed
ldflag work. By Mario Fetka.


git-svn-id: svn://svn.cc65.org/cc65/trunk@4838 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-11-07 11:34:51 +00:00
uz
017bdf970a Include information about the type of the symbol in the flags written to the
object file.


git-svn-id: svn://svn.cc65.org/cc65/trunk@4813 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-08-17 20:54:02 +00:00
uz
112ae0e3db Renamed the defines in symdefs.h to something more meaningful. They were named
EXP_xxx for historic reasons, but SYM_ does make much more sense now.


git-svn-id: svn://svn.cc65.org/cc65/trunk@4812 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-08-17 20:47:27 +00:00
uz
d62af9de80 Debug symbolid for each symbol that goes into the debug symbol output.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4811 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-08-17 20:11:27 +00:00
uz
b2b2a05a46 SF_INDEXED is no longer needed.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4810 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-08-17 20:02:30 +00:00
uz
c921c409e8 Rename symbol index => import id because that's what it really is.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4809 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-08-17 20:01:54 +00:00
uz
e55b19fa8b Maintain some additional information for scopes. Write a dummy scope section
into the object file.


git-svn-id: svn://svn.cc65.org/cc65/trunk@4808 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-08-17 16:58:41 +00:00
uz
41c119deca Bumped the year in the copyright notice. It hasn't changed for five years:-)
git-svn-id: svn://svn.cc65.org/cc65/trunk@4807 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-08-11 19:43:48 +00:00
uz
7d506c84c9 Make .DEF, .REF and friends also work with cheap local symbols.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4767 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-07-26 17:28:34 +00:00
uz
abbfaef2aa A negative token count for .LEFT was incorrectly adjusted to 1, not to 0.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4738 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-07-10 12:32:05 +00:00
uz
125ab37c09 Added relative include path handling: The path of an input file is now pushed
onto the search path list, so include files will be searched relative to this
path first.


git-svn-id: svn://svn.cc65.org/cc65/trunk@4676 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-05-30 13:31:09 +00:00
uz
05f7296369 Restructured search path handling.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4662 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-05-09 10:54:15 +00:00
uz
3fd52eb57f Added dependency file generation to the assembler. This includes two new
options, --create-dep and --create-full-dep. The latter will include files
that are passed via debug info to the assembler.


git-svn-id: svn://svn.cc65.org/cc65/trunk@4653 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-05-01 11:59:55 +00:00
uz
bfd8f4e108 Implemented new .PUSHCPU and .POPCPU commands.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4644 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-04-18 18:47:16 +00:00
uz
61b69316c5 Added builtin .min() and .max() pseudo functions to the assembler.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4583 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-02-11 18:54:08 +00:00
uz
5477e62e3a Fixed open mode for second try in DoIncBin (Greg King).
git-svn-id: svn://svn.cc65.org/cc65/trunk@4563 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-01-31 20:49:40 +00:00
uz
79820fe4ec Added a separate include search path for binary includes. These aren't
searched any longer in the standard include path.


git-svn-id: svn://svn.cc65.org/cc65/trunk@4558 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-01-25 20:33:01 +00:00
uz
0787e45aee Added macros for jumps after unsigned compares to the "generic" macro package.
Removed BGE/BLT as native instructions for the 65816.


git-svn-id: svn://svn.cc65.org/cc65/trunk@4427 b7a2c559-68d2-44c3-8de9-860c34a00d81
2009-11-02 16:26:46 +00:00
uz
07e629a342 Allow fully scoped labels and constants instead of normal ones. This breaks
the barrier between scopes: It is now possible to introduce symbols into a
foreign scope, provided that it's name is known.


git-svn-id: svn://svn.cc65.org/cc65/trunk@4397 b7a2c559-68d2-44c3-8de9-860c34a00d81
2009-10-29 20:30:41 +00:00
uz
b19a29f80b Use the new InvArg function.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4346 b7a2c559-68d2-44c3-8de9-860c34a00d81
2009-10-08 11:35:34 +00:00