1
0
mirror of https://github.com/cc65/cc65.git synced 2024-12-27 00:29:31 +00:00
Commit Graph

2742 Commits

Author SHA1 Message Date
Stephan Mühlstrasser
57a422d064 Adapt c1p65 project to Visual Studio 2013 2014-11-02 19:39:39 +01:00
Stephan Mühlstrasser
0b186407f1 Merge https://github.com/cc65/cc65 into c1p 2014-11-02 16:17:16 +01:00
Oliver Schmidt
1673a40a77 Merge pull request #138 from spiro-trikaliotis/equality-error-uz
Equality problem (Ullrich von Bassewitz)
2014-10-14 15:15:23 +02:00
Spiro Trikaliotis
55815ea10c Equality problem (Ullrich von Bassewitz)
Neil Stockbridge reported a problem with equality comparisons on
cc65.org's mailing list:

http://www.cc65.org/mailarchive/2014-10/11680.html

Uz provided a fix for it:

http://www.cc65.org/mailarchive/2014-10/11683.html

This pull request ask to add the fix to cc65 on github.
2014-10-14 13:41:17 +02:00
Spiro Trikaliotis
f4f879283d Fix for: cc65 forgetting to emit labels (Alan Cox)
Alan Cox provided this on 2014-10-02 on the cc65.org mailing list:

http://www.cc65.org/mailarchive/2014-10/11673.html
[...]
It breaks in several spots with cc65 where cc65 forgets to emit the
labels for the goto statements - the code is there but with no label
and it them blows up linking
[...]

He also provided a fix:
http://www.cc65.org/mailarchive/2014-10/11675.html

which was approved by Uz:
http://www.cc65.org/mailarchive/2014-10/11679.html

This is the patch of Alan Cox, adjusted only to the new locations on
cc65/github.
2014-10-14 13:32:58 +02:00
mrdudz
baaf815d8e fix cast to char, patch by Piotr Fusik 2014-09-25 23:19:14 +02:00
mrdudz
adc5525e85 added commandline option to quit after X cycles 2014-09-25 18:47:23 +02:00
Piotr Fusik
8c1f12f06b Fix casting an r-value to char.
For example:
int f(int i, int j) { return (char) (i + 1) == j; }
f(0x1234, 0x35) returned 0.

This bug caused zlib/uncompress return Z_DATA_ERROR on correct input.
2014-09-22 23:47:20 +02:00
Greg King
0390c34e88 Changed multi-line C comments into another style.
The left side doesn't look unbalanced.
2014-06-30 16:51:07 -04:00
Oliver Schmidt
99f0a56f63 Merge pull request #122 from groessler/a5200
new target: Atari 5200 console
2014-05-30 22:52:51 +02:00
Christian Groessler
f7bc6a836d Set the "simple" bit in the .o65 mode word only if text, data, and bss
are adjacent.
2014-05-21 23:49:56 +02:00
Greg King
c09c66c372 Fixed a ca65 internal error that would show a message when a name is exported both outside and inside a scope.
Jeremy Turner described the bug, on the original cc65 mailing list.  It was fixed by Ullrich von Bassewitz.
2014-05-12 02:08:04 -04:00
Christian Groessler
ec417c0dc5 Merge remote-tracking branch 'upstream/master' into a5200 2014-04-25 02:07:44 +02:00
Christian Groessler
1a348ab73f Fix error which slipped in in '-L' command line parameter handling. 2014-03-28 22:40:53 +01:00
Oliver Schmidt
435fd06bc6 Merge pull request #99 from groessler/something_to_pull
Make ld65 command line arguments position independent.
2014-03-28 17:37:02 +02:00
Christian Groessler
5114a3b861 Make ld65 -L command line option position independent again.
Handle long versions of command line arguments correctly.
2014-03-27 23:50:25 +01:00
Oliver Schmidt
276a836d7d Fixed typo. 2014-03-27 22:07:08 +01:00
Oliver Schmidt
c9438ae1a7 Finetuned Git commit hash retrieval.
- Force usage of shell wrapper in order to allow to suppress potential message about git not found (thanks to Greg King).
- Do $(info GIT_SHA ...) only if there's something special - as done with the other $(info ...).
2014-03-27 21:40:28 +01:00
Christian Groessler
18c2289784 Make ld65 -L command line option position dependent again. 2014-03-25 15:36:38 +01:00
Christian Groessler
2a9cdf9152 Make ld65 command line arguments position independent. 2014-03-24 13:58:34 +01:00
Oliver Schmidt
efe72c86fa Merge pull request #94 from groessler/something_to_pull
Extend the map file to include a table of exports sorted by value.
2014-03-20 11:12:55 +01:00
Christian Groessler
bdc60b21d4 add a missing ":" 2014-03-20 02:22:43 +01:00
Christian Groessler
d72e62cae2 Extend the map file to include a table of exports sorted by value. 2014-03-20 02:01:52 +01:00
Christian Groessler
f266612697 Merge remote-tracking branch 'upstream/master' into a5200 2014-03-20 00:24:11 +01:00
Silver Dream !
db42af3f20 - fixed an old #include guard typo 2014-03-20 00:07:59 +01:00
Oliver Schmidt
22c63e743a Replaced date with Git hash. 2014-03-18 22:41:32 +01:00
Oliver Schmidt
1d6000213c Removed references to $TRAVIS from Makefiles.
After all it seems much cleaner to explicitly control the behaviour from the .travis.yml file than to behave differently "under the hood" when detecting a Travis CI build.
2014-03-16 21:32:18 +01:00
Oliver Schmidt
f12fbc4a3b Dropped VER_PATCH (and VER_RC) and added build date. 2014-03-09 17:40:51 +01:00
Oliver Schmidt
a178c44acb Moved USER_CFLAGS back to re-allow warning option overriding. 2014-03-09 15:17:51 +01:00
Oliver Schmidt
8236b0dd74 Upload zip file. 2014-03-09 01:20:39 +01:00
Oliver Schmidt
80ca7eb4e4 Create zip file. 2014-03-09 00:20:17 +01:00
Oliver Schmidt
1c73fa0a00 Moved .PHONY below definitions it refers to.
I must admit that I don't understand why but obviously it is necessary to place .PHONY below the definition of variables it refers to - although those variables are recursively expanded ones! Not doing so made libsrc/Makefile build only three target libraries.
2014-03-06 23:42:44 +01:00
Oliver Schmidt
30125afcc1 Moved from VS2013 to MinGW(-w64). 2014-03-06 22:32:24 +01:00
Oliver Schmidt
9e409a67d2 Removed by now obsolete pragmas.
The warnings in question are instead suppressed by command line options.
2014-03-05 22:43:01 +01:00
Oliver Schmidt
ee9c42bbf5 Support both MinGW and MinGW-w64. 2014-03-05 22:28:38 +01:00
Oliver Schmidt
4f317d70c8 Removed -std=c89.
Using `struct stat` and `%m` surely doesn't qualify for ISO C90.
2014-03-05 13:03:33 +01:00
Oliver Schmidt
44ccb27549 Changed Makefile.inc handling.
It seems more appropriate to trigger the inclusion of Makefile.inc via $TARGET (instead of $SRCDIR). This is btw. more consistent with extzp.s inclusion which is triggered via $TARGET too.
2014-03-04 21:46:25 +01:00
Oliver Schmidt
66f1a80f4e Moved workaround for MinGW's missing %m support to a central place. 2014-03-04 01:20:38 +01:00
Oliver Schmidt
4185caf855 Normalized code. 2014-03-04 01:11:19 +01:00
Oliver Schmidt
3e156bdd67 Removed unused header. 2014-03-03 22:52:39 +01:00
Oliver Schmidt
b68507d8a5 Adjusted spawn files to recent change II. 2014-03-03 22:38:41 +01:00
Oliver Schmidt
574bda3e4e Adjusted spawn files to recent change. 2014-03-03 22:26:08 +01:00
Oliver Schmidt
50c4fd1c4c Improve MinGW support.
- Code specific to Windows was #ifdef'ed with _MSC_VER so it wasn't included with MinGW. So _MSC_VER is replaced with _WIN32.
- MinGW doesn't support _get_pgmptr() so it is necessary to directly call the Win32 function GetModuleFileName(). This implies including windows.h which in turn causes a name clash with the Win32 function SearchPath(). So the cc65 type SearchPath is renamed to SearchPaths.
2014-03-03 22:12:14 +01:00
Christian Groessler
c8f7f2f161 first changes for atari5200 target 2014-03-01 17:20:09 +01:00
Oliver Schmidt
0bcc9675f1 Merge pull request #86 from AntiheroSoftware/ca65-65816
Fix jmp($1234) opcode table
2014-02-28 08:46:44 +01:00
lintbe
3de9f2e2dd fix jmp($1234) opcode table 2014-02-27 10:01:39 +01:00
Oliver Schmidt
4b085f193e Merge pull request #83 from AntiheroSoftware/ca65-65816
Fix for pull request #80 bad JML opcode and adding syntax for Absolute Indirect Long
2014-02-20 15:07:56 +01:00
Oliver Schmidt
2dab4958e4 Migrated project files to VS2013. 2014-02-19 23:09:46 +01:00
lintbe
284436229e add jml($1234) for JML Absolute indirect long 2014-02-19 13:22:06 +01:00
lintbe
e150c76cb7 fix opcode for JML Absolute indirect long 2014-02-19 11:06:39 +01:00
Oliver Schmidt
96ef7fd773 Merge pull request #80 from AntiheroSoftware/ca65-65816
Fixing ca65 for 65816 jml and jmp opcodes
2014-02-17 10:04:57 +01:00
lintbe
9fae57963d removing \t from source file 2014-02-13 10:26:08 +01:00
lintbe
07d49f143b Fixing ca65 for 65816 jml and jmp opcodes
added a missing addressing mode for jmp/jml : Absolute Indexed Long
that opcode can be written like jmp[$1234] or jml[$1234]

removed Absolute Inderect addressing mode for jml since it's not a long adressing mode
2014-02-12 23:48:10 +01:00
Oliver Schmidt
e22fc15589 Deduct temporary library path name from library path name.
Actually there's no need to fiddle with any automatic temp file name generation as we can just modify the library path name to generate a perfect temporary library path name.
2014-02-10 21:28:03 +01:00
Oliver Schmidt
0d3a652544 Use -Werror only on Travis CI builds.
There's no need to intentionally break things for people trying to build cc65 with some obscure compiler. It's enough to make sure that no new warnings sneak into the code base by having Travis CI builds fail.
2014-02-09 19:48:30 +01:00
Oliver Schmidt
47828e1059 Define _SVID_SOURCE to get tempnam(). 2014-02-09 01:19:40 +01:00
Oliver Schmidt
bec75d9e62 Avoid tmpfile().
- tmpfile() tries to create files in the C: root dir on Windows where users usually don't have access.
- tmpnam() uses the curent dir which doesn't seem to be a good idea either.
- tempnam(NULL,NULL) is supposed to be cleverer.
2014-02-09 01:11:11 +01:00
Oliver Schmidt
a7b84bb618 Removed references to SunPlus. 2014-02-08 22:48:49 +01:00
Oliver Schmidt
74ece8256e Goals from top level Makefile should be known even if empty. 2014-02-05 22:31:46 +01:00
Oliver Schmidt
9aa17b4c53 Moved ca65html out of the src directory.
- A HTML generator isn't really the core of a C/asm toolchain.
- A Perl script isn't actually as portable as one might think.
2014-01-31 22:27:40 +01:00
Oliver Schmidt
e320fe3db8 Added 'install' target.
The 'install' target primarily aims to support pacaking tools. Therefore...
- It just presumes a "capable" install program to be present.
- There's intentionally no 'uninstall' target.
2014-01-29 21:42:26 +01:00
Oliver Schmidt
0adad044e7 Moved USER_CFLAGS to the other flags. 2013-12-19 09:17:41 +01:00
Christian Groessler
418209f923 - Add a way to give additional compiler flags with USER_CFLAGS.
- Add possibility to specify an file name extension for generated executables (PROGEXT).
2013-12-18 21:56:17 +01:00
Oliver Schmidt
0a8efc9fc3 Revert "Added basic frame for new target 'creativision'."
This reverts commit 8e6b8dd0af.
2013-12-05 21:45:20 +01:00
Greg King
1bcd4b44f8 Merged branch "master" into ubiquitous. 2013-11-30 12:40:57 -05:00
Greg King
fa14237315 Added a top border to a file's header comment. 2013-11-30 08:52:51 -05:00
Greg King
a6506abcd1 Removed a now-redundant line. 2013-11-30 08:24:58 -05:00
Greg King
309c8fb842 Fixed ca65's "ubiquitous_idents" feature.
Before the fix, that feature couldn't recognize a standard op-code mnemonic, that wasn't replaced by a macro, if it was on a line without a label.

This patch was written by Jeremy Turner.
2013-11-30 08:20:36 -05:00
Oliver Schmidt
8e6b8dd0af Added basic frame for new target 'creativision'.
Kym Greenshields <kym.greenshields@gmail.com> has expressed interest
in contributing and maintaining support for the VTech CreatiVision system.
2013-11-25 22:52:04 +01:00
Stephan Mühlstrasser
9fd27d6ef6 Merge branch 'master' into c1p 2013-11-19 20:53:17 +01:00
Oliver Schmidt
f3d74cd166 Added optimizer fix originating from Ullrich von Bassewitz prepared by Greg King. 2013-10-09 21:56:05 +02:00
Oliver Schmidt
c22c6f28ff Removed option from usage.
The option in question was removed with 37c492b544
2013-10-09 11:33:53 +02:00
Oliver Schmidt
f488f7576c Applied fix contributed by Greg King.
The code
  void foo(void)
  {
    int i;
    long l = 1L * i;
  }
triggered an
  Internal compiler error:
  Code generation messed up: StackPtr is -4, should be -2

Greg King: "We are lucky that the bug is simple -- a missing "else".  The result is that the compiler thinks that it does the opposite of what it actually does:  It thinks that it pushes the non-constant expression onto the stack. It doesn't; so, cc65's stack pointer is wrong."
2013-10-08 23:04:41 +02:00
Greg King
82299f3caa Made the archiver announce a library's creation only if it is being verbose. 2013-09-23 16:10:12 -04:00
Stephan Mühlstrasser
9b505d7b65 Created C1P object file generator. 2013-07-16 22:31:10 +02:00
Stephan Mühlstrasser
b3b3578f08 Nominal support for target Ohio Scientific Challenger 1P 2013-07-14 22:50:38 +02:00
Greg King
cf7f7b9ef2 Fixed ld65's precalculation of memory-area sizes.
Before this fix, BSS-type and ZP-type segments never were counted.  Now, they are counted if their memory areas are filled.  (It must be done because their places in the output file are filled.)

The fix allows us to build programs for the CBM510 and CBM610 platforms.  We won't see an "Internal error" diagnostic message about a bad file-offset.
2013-07-10 02:37:09 -04:00
thefox
c12a8bf377 Fixed a logic bug in dbginfo.c module that prevented some valid debug info files from being parsed. 2013-07-04 21:10:58 +03:00
Oliver Schmidt
3af758ced5 Have __PLUS4__ imply __C16__. 2013-06-27 23:09:54 +02:00
Oliver Schmidt
83280e1ee2 Have __APPLE2ENH__ imply __APPLE2__ and __ATARIXL__ imply __ATARI__. 2013-06-17 21:34:08 +02:00
Oliver Schmidt
92ad74a49f Avoid GCC "unconst" warning. 2013-06-13 15:26:17 +02:00
Oliver Schmidt
32daa3dd2b Added support for 'prefix'.
If the variable 'prefix' is defined then the builtin search paths are set to
$(prefix)/lib/cc65/... allowing to build binaries intended for installation.

Note that the library build still works with these binaries as it generally
overrides the builtin search paths by setting the CC65_HOME env var.
2013-06-07 23:13:46 +02:00
Oliver Schmidt
98c47d1877 Introduced target 'atarixl'.
The target 'atarixl' is to be used for Atari XL (and better) machines.
It will disable the OS ROM and enable the Shadow RAM available on
those machine.

Note: This commit is only the inital step towards for this goal that just
replicates the target 'atari' as a starting point!
2013-05-28 21:56:37 +02:00
Oliver Schmidt
bb37f2e9c8 Adjusted usage. 2013-05-24 18:36:59 +02:00
Oliver Schmidt
5bd0a53ea2 Added support for cc65 program arguments. 2013-05-24 18:36:30 +02:00
Oliver Schmidt
129fcff7e5 Fixed Carry handling in SBC opcode. 2013-05-21 23:47:19 +02:00
Oliver Schmidt
2a41b5a8d6 Adjusted sim65 MS VC build settings to the ones of the other binaries. 2013-05-21 20:54:33 +02:00
Oliver Schmidt
55f9e6ac25 Added 'sim6502' and 'sim65C02' targets.
The targets allow to run cc65 programs in the sim65 exection
einvironment. As there are no "real" i/o facilities there's no
need for header files. Paravirtualized entry points are mapped
to $FFF0 ff. There's a large cc65 progam area from $0200-$FFEF.

The binary format includes a one-byte header indicating the required
execution environment: The value 0 means 6502 and the value 1
means 65C02. The load adress for the binary is fixed to $0200.

Note: Running sim65C02 programs currently doesn't work bcause
sim65 doesn't actually implement 65C02 opcodes.
2013-05-20 20:35:42 +02:00
Oliver Schmidt
3a028fb621 Turned sim65 into a lightweight cc65 execution environment.
The sim65 source code has been a construction site for over a decade.
I was looking for a simple cc65 program execution environment for
regression tests. So I decided to re-purpose sim65 for that task by
removing about everything but the 6502 emulation.

There's no memory mapped i/o emulation whatsoever. Rather exit(),
open(), close(), read() and write() calls are supported by mapping
them through a thin paravirtualization layer to the corresponding
host os functions.

Note: The sim65 6502 emulation provides means to switch between
6502 and 65C02 emulation but currently there are no actual 65C02
opcodes implemented.
2013-05-20 20:20:14 +02:00
Oliver Schmidt
753aa29b15 Have 'avail' not be dependent on 'all'.
There are two reasons for removing this dependency:
- If someone does 'make avail' on the top level Makefile he ends up with
  binaries but without libraries - not nice. Better do just "nothing" and
  have hin understand that he needs to do 'make [all]' on the top level
  Makfile first.
- If 'make avail' is done via 'sudo' it isn't desirable to do a large amount
  of work as root.
BTW: I wasn't sure if this dependency is a good thing in the first place
but I saw it in many examples ('install' depending on 'all') so I did it too.
2013-05-17 16:21:05 +02:00
Oliver Schmidt
352ceb166c Renamed [un]install goals to [un]avail.
The [un]install make goals have a rather fixed meaning for *ix users. The simple
symlinks provided here don't match the expectations users have from [un]install.
Therefore it is appropriate to rename them to "something" not tied to specific
expectations.
2013-05-15 11:59:51 +02:00
Oliver Schmidt
f1817650b2 Bumped version to 2.14.0.
The cmdline parameter handling as become quite incompatible to 2.13.3 so it seems
appropriate to increase the minor version.
2013-05-12 18:39:48 +02:00
Oliver Schmidt
85885001b1 Removed (pretty inconsistently used) tab chars from source code base. 2013-05-09 13:57:12 +02:00
Oliver Schmidt
969c3b7488 Allow to build just the binaries or just the libraries from the top level Makefile. 2013-05-07 19:05:41 +02:00
Oliver Schmidt
5ddf9e0878 Merge pull request #7 from greg-king5/config-buf
Removed unneeded variable and function.
2013-05-07 10:02:15 -07:00
Greg King
372e6ac1d6 Removed useless command-line option. 2013-05-07 00:54:44 -04:00
Greg King
1b2095d7e9 Removed unneeded variable and function.
They were used with built-in configurations.
Commit 37c492b544 made them obsolete.
2013-05-06 20:35:18 -04:00
Oliver Schmidt
912b0d9e93 Have cl65 run the binaries from its own directory.
While ca65, cc65 and ld65 have built-in paths cl65 doesn't.
That means that up to now cl65 depended on the binaries
being found in the path env var. However it makes sense
to presume that the binaries are located in the very same
directory cl65 is located in. So whatever pathname was
suitable to run cl65 should be suitable to run the other
binaries too. But if for some reason there's no valid
argv[0] or if it doesn't contain at least one directory
delimiter ('/' or '\') then fall back to relying on the
path env var.
2013-05-07 00:47:37 +02:00
Oliver Schmidt
2e7fdb23ee Added reference to unused variable to avoid GCC 4.6 warning. 2013-05-06 23:31:00 +02:00
Oliver Schmidt
55667b94fb Added search path relative to running binary on Windows.
In contrast to *IX it doesn't make much sense to add compile time defined
search paths to Windows binaries: There's no standard path like /usr/local/bin
(and there are no symbolic links to link from there to another location).

On the other hand it's (again in contrast to *IX) easy for Windows binaries
to determine their own paths. Therefore it's appropriate to make use of that
to add run time defined default search paths.
2013-05-06 23:20:56 +02:00
Oliver Schmidt
983c6285e1 Merge pull request #4 from greg-king5/filepath
Swapped the order of search paths.
2013-05-06 07:46:06 -07:00
Greg King
af55b24593 Changed the order of directories that are searched for files. 2013-05-06 08:11:01 -04:00
Oliver Schmidt
a8aeab5d57 Added support for building the MS VS solution from the Makefile. 2013-05-05 23:46:12 +02:00
Oliver Schmidt
b6ebf71446 Reduced verbosity. 2013-05-05 22:36:53 +02:00
Oliver Schmidt
c1f35496f6 Removed obsolete Makefiles. 2013-05-04 13:41:28 +02:00
Oliver Schmidt
1c962f73f5 Make use of single character variable syntax for the formal parameter variable. 2013-05-04 11:59:42 +02:00
Greg King
be5a5e03d8 Changed the order of directories that are searched for include files. 2013-05-03 23:25:06 -04:00
Oliver Schmidt
151cadf019 Replaced three function calls with one. 2013-05-02 23:57:26 +02:00
Oliver Schmidt
39a877175b Added reference to unused variable to avoid GCC 4.6 warning. 2013-05-02 15:39:47 +03:00
Oliver Schmidt
0456ff8e70 Removed unused variable. 2013-05-02 15:13:19 +03:00
Oliver Schmidt
8f7da7885a Removed unused variable. 2013-05-02 15:09:38 +03:00
Oliver Schmidt
81f461a15c Placed libraries and the end of the linker cmdline. 2013-05-02 15:06:02 +03:00
Oliver Schmidt
f8ffe4c605 Removed unused variable. 2013-05-02 14:55:17 +03:00
Oliver Schmidt
75d32760ac Removed unused variables. 2013-05-02 14:51:08 +03:00
Oliver Schmidt
63676f97e2 Removed unused variable. 2013-05-02 14:42:33 +03:00
Oliver Schmidt
f94ac40637 Replace only actually changed archive members. 2013-04-29 17:14:08 +03:00
Oliver Schmidt
780f38acd5 Most hosts require the math library to be linked explicitly. 2013-04-29 17:03:14 +03:00
Oliver Schmidt
18e00a1f9b Made compatible with GNU make 3.81 2013-04-29 17:01:00 +03:00
Oliver Schmidt
9fece990be Replaced elaborate install logic with just a bunch of symlinks.
Maybe I'm naive but even after thinking about it for quite
some time I can't see why it should hurt to just build the
cc65 binaries from the sources "in place" and have 'make
install' simply create some symlinks in usr/local/bin.

The new Makfile builds the binaries with builtin search paths
matching their build location. So the symlinks in usr/local/bin
allow to allow to use them out-of-the-box without additional
environment variables.
2013-04-28 22:30:18 +02:00
Oliver Schmidt
b5a735a58e Removed obsolete Makefiles. 2013-04-27 17:47:20 +02:00
Oliver Schmidt
f2f3c8addf No copyright message here. 2013-04-27 17:39:52 +02:00
Oliver Schmidt
052b229f86 Replaced whole bunch for Makefiles with a single generic Makefile.
- Targeting GNU toolchain.
- Modern dependency handling.
- Warning-free build.
- GCC option -Werror set.
- Dynamic search paths.
- Don't write into source directories.
- Easy cleanup by just removing 'wrk'.
2013-04-27 17:20:36 +02:00
Oliver Schmidt
ede72d78b2 Allow to supply searchpath defines as simple values instead of escaped C strings. 2013-04-27 17:20:34 +02:00
Oliver Schmidt
9d6ab944b8 Added projects for the remaining binaries to the MS VS 2010 solution. 2013-04-27 17:20:33 +02:00
Oliver Schmidt
58a7fec4ba If an Amiga specific spawnvp() is the only alternative it seems save to classify the UNIX specific spawnvp() as default. 2013-04-27 17:20:31 +02:00
Oliver Schmidt
b45b6789a4 In general "\%s" doesn't seem to be a valid printf format specifier. Given where it originally came from and how OneLine() is used elsewhere I'm pretty sure that it should rather read "%s". 2013-04-27 17:20:30 +02:00
Greg King
d57ae65aad Stopped interrupt dispatcher from being linked even when there are no interruptors.
Put ld65's CONDES import names into object module's list instead of linker's list.
2013-04-22 15:55:52 -04:00
Oliver Schmidt
bfc362f79c Finetuned project files for build server compatibility. 2013-04-12 23:24:48 +02:00
Oliver Schmidt
fce1d5783f Added MS VS 2010 solution with projects for the major binaries. 2013-04-10 19:30:36 +02:00
Oliver Schmidt
97d2d92fb5 Allow for warning-free build of cl65 with MS VC on warning level 3. 2013-04-09 23:32:18 +02:00
Oliver Schmidt
d38b008080 Allow for warning-free build of ld65 with MS VC on warning level 3. 2013-04-09 23:10:57 +02:00
Oliver Schmidt
37c492b544 Replaced builtin linker configs with ordinary .cfg files.
The benefits are:
- Independency of ld65 build from perl
- More transparent behaviour
2013-04-09 23:09:46 +02:00
Oliver Schmidt
4757642a12 No copyright message here. 2013-04-08 00:11:17 +02:00
Oliver Schmidt
662af3d67c Allow for warning-free build of ar65 with MS VC on warning level 3. 2013-04-08 00:11:15 +02:00
Oliver Schmidt
be83b87463 Allow for warning-free build of cc65 with MS VC on warning level 3. 2013-04-08 00:11:13 +02:00
Oliver Schmidt
ef803fed05 No SVN version here. 2013-04-08 00:11:12 +02:00
Oliver Schmidt
ffb8595440 Allow for warning-free build of common with MS VC on warning level 3. 2013-04-08 00:11:10 +02:00
Oliver Schmidt
365668785c Allow for warning-free build of ca65 with MS VC on warning level 3. 2013-04-08 00:11:08 +02:00
Oliver Schmidt
29c522fc5a No copyright message here. 2013-04-08 00:11:07 +02:00
Oliver Schmidt
54299fae5a Replaced builtin macro packages with .mac files that are included like ordinary .inc files.
The benefits are:
- Independency of ca65 build from perl
- More transparent behaviour
2013-04-08 00:11:05 +02:00
uz
e6aa00b339 Reorder CF_xxx flags so that they can be used as table index.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5990 b7a2c559-68d2-44c3-8de9-860c34a00d81
2013-03-06 12:53:07 +00:00
ol.sc
1607b05104 Just some beautification.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5984 b7a2c559-68d2-44c3-8de9-860c34a00d81
2013-02-12 20:55:19 +00:00
ol.sc
378101ea52 Added missing __CALLIRQ__ import attribute.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5983 b7a2c559-68d2-44c3-8de9-860c34a00d81
2013-02-12 20:22:27 +00:00
uz
e8964cde74 Quick fix for a problem in the OptLoad3 function. The fix isn't perfect and
may fail for inline assembly code, but at least it's less buggy than before.


git-svn-id: svn://svn.cc65.org/cc65/trunk@5982 b7a2c559-68d2-44c3-8de9-860c34a00d81
2013-02-12 19:51:11 +00:00
uz
274a7210e7 Fixed several issues where an object file reference or line infos were
accessed when they in fact didn't exist, because the symbol was linker
generated (in the config or on the command line).


git-svn-id: svn://svn.cc65.org/cc65/trunk@5981 b7a2c559-68d2-44c3-8de9-860c34a00d81
2013-02-10 20:56:13 +00:00
uz
fd679d92d0 Fixed a problem: When a struct or unit was declared with a tag name, it was
possible to use the opposite type with the tag name. That is "struct a" after
declaring "union a" and vice versa.


git-svn-id: svn://svn.cc65.org/cc65/trunk@5980 b7a2c559-68d2-44c3-8de9-860c34a00d81
2013-02-02 22:31:26 +00:00
uz
0eed753578 Prevent a literal string that is an argument for sizeof to be output into the
literal pool.


git-svn-id: svn://svn.cc65.org/cc65/trunk@5968 b7a2c559-68d2-44c3-8de9-860c34a00d81
2013-01-25 20:45:40 +00:00
uz
63a0813979 Fix an error in ReleaseLiteral.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5967 b7a2c559-68d2-44c3-8de9-860c34a00d81
2013-01-25 20:39:43 +00:00
uz
fa722e351a The scrcode macros lost the last argument in the recursive call.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5966 b7a2c559-68d2-44c3-8de9-860c34a00d81
2013-01-22 21:28:26 +00:00
uz
9fce84c722 Added a new feature "underline_in_numbers" requested by thefox. Using
underlines it is possible to group the digits for easier reading.


git-svn-id: svn://svn.cc65.org/cc65/trunk@5963 b7a2c559-68d2-44c3-8de9-860c34a00d81
2013-01-12 19:07:31 +00:00
uz
d6290e0a0f Do an additional run of duplicate loads at the end of OptGroup4.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5959 b7a2c559-68d2-44c3-8de9-860c34a00d81
2013-01-07 20:17:50 +00:00
uz
03e6556457 Fixed a bug in the function that generates register info: For tosaslax the
check for a known output value of A was wrong.


git-svn-id: svn://svn.cc65.org/cc65/trunk@5954 b7a2c559-68d2-44c3-8de9-860c34a00d81
2013-01-01 21:09:16 +00:00
karri
2f860697b8 Optimize low color packed sprites
git-svn-id: svn://svn.cc65.org/cc65/trunk@5951 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-12-17 17:48:56 +00:00
karri
7cda393a82 Add edge parameter
git-svn-id: svn://svn.cc65.org/cc65/trunk@5935 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-11-14 19:08:24 +00:00
karri
7e75e29812 Fix shaped bugs
git-svn-id: svn://svn.cc65.org/cc65/trunk@5933 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-11-13 14:48:25 +00:00
karri
f03d5c54d8 Add shaped mode
git-svn-id: svn://svn.cc65.org/cc65/trunk@5931 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-11-12 19:26:11 +00:00
karri
6f7952ec5a Implement packed mode
git-svn-id: svn://svn.cc65.org/cc65/trunk@5930 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-11-12 18:43:03 +00:00
karri
db6e8cac09 A bit more modular design
git-svn-id: svn://svn.cc65.org/cc65/trunk@5929 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-11-11 18:49:27 +00:00
ol.sc
f15b8246f9 Use array type declaration to avoid &-operator.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5926 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-11-07 23:25:37 +00:00
uz
38e185d15d Rearrange the code to avoid a warning from the Watcom compiler.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5922 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-11-06 20:41:02 +00:00
uz
aad6cd2a14 Allow to map characters to code zero with .CHARMAP.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5921 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-11-06 20:36:45 +00:00
uz
c8b3275246 Removed the unused function TgtTranslateStr.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5920 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-11-06 20:32:09 +00:00
uz
4682d7542a Add -d (debug mode) to the assembler options. In studyexpr, use the debug
flag, not the verbose flag to decide if the studied expression should be
output.


git-svn-id: svn://svn.cc65.org/cc65/trunk@5919 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-11-06 20:24:44 +00:00
karri
2c446018db Add quadrant optimisation
git-svn-id: svn://svn.cc65.org/cc65/trunk@5918 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-11-06 06:33:17 +00:00
karri
c250482137 Add anchor point support
git-svn-id: svn://svn.cc65.org/cc65/trunk@5917 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-11-06 06:24:50 +00:00
karri
66ad6be22a Add support for 4 quadrants
git-svn-id: svn://svn.cc65.org/cc65/trunk@5915 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-11-06 04:49:34 +00:00
uz
d825bbde06 Since there is now line info with type ASM and a count not equal to zero, the
search for the toplevel line info had to be changed slightly.


git-svn-id: svn://svn.cc65.org/cc65/trunk@5906 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-11-04 12:58:17 +00:00
uz
4a41865898 Fixed a problem in line info generation: Recorded token lists emitted the
tokens using the standard ASM line info, overwriting the existing one from the
real source line. Since this info was lost, and couldn't be recovered, the
original source location was omitted in error messages.


git-svn-id: svn://svn.cc65.org/cc65/trunk@5905 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-11-04 12:57:34 +00:00
uz
0b5c667cd9 Output notifications for line info from macro parameters in case of
errors/warnings.


git-svn-id: svn://svn.cc65.org/cc65/trunk@5904 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-11-04 12:36:00 +00:00
uz
5410cdea29 Add line info for macro parameters.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5903 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-11-04 12:35:20 +00:00
uz
7b34609930 Have the callirq module export __CALLIRQ__ and changed all config files so
this symbol is a forced import for all interruptors.


git-svn-id: svn://svn.cc65.org/cc65/trunk@5902 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-11-03 21:59:15 +00:00
uz
77bd3169f6 Added a new attribute IMPORT to the CONDES definition of the FEATURES section.
If this attribute is defined, an import for the given symbol is added to the
module that contains the condes declaraction. Using this feature, it is
possible to force linkage of a module that contains an export for the symbol.


git-svn-id: svn://svn.cc65.org/cc65/trunk@5900 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-11-03 21:37:19 +00:00
karri
77e6bb483f Add end of sprite byte
git-svn-id: svn://svn.cc65.org/cc65/trunk@5899 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-11-03 20:13:25 +00:00
karri
7862c3f193 First quadrant literal sprite working
git-svn-id: svn://svn.cc65.org/cc65/trunk@5898 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-11-03 17:25:01 +00:00
uz
0e82853a4a Use O65OPT_FILENAME to place the filename of the output file into generated
o65 modules.


git-svn-id: svn://svn.cc65.org/cc65/trunk@5886 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-10-28 19:31:24 +00:00
uz
ff166363f0 OptCmp3 removed a compare to zero instruction preceeded by a load despite the
fact that the carry flag (which is set by the compare but not by the load) had
been used later.


git-svn-id: svn://svn.cc65.org/cc65/trunk@5885 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-10-28 19:04:09 +00:00
uz
f90fa9cc29 Make the old "AllocNew" flag for symbols an enum and add an additional flag
that allows to lookup a symbol without any flags added to it.


git-svn-id: svn://svn.cc65.org/cc65/trunk@5884 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-10-27 19:50:49 +00:00
uz
a3ae2e9125 Minor code optimization.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5883 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-10-27 19:32:42 +00:00
uz
757b400aa1 The message "Dropping x additional line infos" had been displayed even if
there weren't any more line infos to display, because they had the wrong type.


git-svn-id: svn://svn.cc65.org/cc65/trunk@5882 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-10-27 19:16:35 +00:00
uz
0cbc81161c Fixed a problem with the last change: Sym wasn't always NULL when it should
have been.


git-svn-id: svn://svn.cc65.org/cc65/trunk@5881 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-10-27 15:47:49 +00:00
uz
acb3fcb9c7 Fixed a problem reported by thefox: A symbol reference with an explicit scope
specification that is used when the scope is already closed, has be made a
trampoline symbol later, referencing a symbol outside of the scope explicit
specified.


git-svn-id: svn://svn.cc65.org/cc65/trunk@5880 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-10-27 11:49:37 +00:00
ol.sc
8a5430d138 Added C128 overlay linker config.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5831 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-09-30 14:53:12 +00:00
ol.sc
d080bea30f Minimal formatting adjustment.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5830 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-09-30 14:18:47 +00:00
uz
e6b52ee8d0 Fixed a bug reported by thefox: The .CHARMAP command must not accept indices
or character codes with a value of zero. The assembler runs into a CHECK in
tgttrans anyway if the index is zero.


git-svn-id: svn://svn.cc65.org/cc65/trunk@5826 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-09-17 15:09:39 +00:00
karri
2222df9143 Shring the bootloader by 20 bytes and remove restrictions on file size
git-svn-id: svn://svn.cc65.org/cc65/trunk@5824 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-09-11 13:01:39 +00:00
uz
574c8fa273 Added a "fillval" attribute to the segment definition. When given, it
overrides the value from the memory area for all space that lies within the
segment itself.


git-svn-id: svn://svn.cc65.org/cc65/trunk@5823 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-09-09 19:00:43 +00:00
uz
5693df8bf2 Do not try to dump an expression that has errors (circular references in this
case) because the dump routine doesn't detect this and runs into an endless
recursion.


git-svn-id: svn://svn.cc65.org/cc65/trunk@5811 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-08-22 21:24:54 +00:00
uz
c1bbf69d72 New option --relax-checks that disable the check for a match beween size oif
an expression and the address size. Will allow short branches between segments
among other things. Suggested by Spiro Trikaliotis.


git-svn-id: svn://svn.cc65.org/cc65/trunk@5810 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-08-20 20:07:05 +00:00
uz
5fe9e2c3b3 Don't add the current directory to the list of search paths. If the main file
is located there, it is added anyway. If the main file is located elsewhere,
we don't want to search in the current directory.


git-svn-id: svn://svn.cc65.org/cc65/trunk@5803 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-08-01 21:44:36 +00:00
uz
148363810b Don't add the current directory to the list of search paths. If the main file
is located there, it is added anyway. If the main file is located elsewhere,
we don't want to search in the current directory.


git-svn-id: svn://svn.cc65.org/cc65/trunk@5802 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-08-01 21:42:26 +00:00
uz
3c9f722fbf Fixed a problem with a memcpy optimization (source and target have been
swapped).


git-svn-id: svn://svn.cc65.org/cc65/trunk@5796 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-07-28 12:26:57 +00:00
uz
6345c4ee25 Fixed an error in the macro package that prevented the macros to work
correctly. The short forms of the jumps were never choosen. The error was
introduced with release 3176 in 2004(!) and reported by thefox.


git-svn-id: svn://svn.cc65.org/cc65/trunk@5787 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-07-17 18:30:05 +00:00
uz
b4214634b2 Permit the .string builtin function to work with scoped identifiers.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5786 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-07-17 18:28:07 +00:00
uz
eef430e45a Fixed a problem with the optimizations for shifts.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5783 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-07-12 21:12:50 +00:00
uz
49e5d19950 Added an option to output the assembly after each transformation step of the
optimizer.


git-svn-id: svn://svn.cc65.org/cc65/trunk@5781 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-07-12 20:30:01 +00:00
uz
44f965c462 Enable optimization for arithmetic right shift. NOTE: There's a bug lingering
in the shift code optimization which needs fixing.


git-svn-id: svn://svn.cc65.org/cc65/trunk@5780 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-07-11 20:58:29 +00:00
uz
40a3084553 Add another form of duplicate load removal.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5778 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-07-10 20:46:21 +00:00
uz
58530c142a Rearrange order of opt steps for better efficiency.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5774 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-07-08 21:56:01 +00:00
uz
59ae850db7 Replacement in OptShift3 is even possible, when X is used later.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5773 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-07-08 13:05:57 +00:00
uz
440cc47770 Fixed an error.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5772 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-07-07 22:22:59 +00:00