1
0
mirror of https://github.com/cc65/cc65.git synced 2024-07-10 23:29:05 +00:00
Commit Graph

2673 Commits

Author SHA1 Message Date
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
uz
3365220827 Added optimization for complax.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5771 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-07-07 19:54:24 +00:00
uz
49905d74bd More shift optimizations.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5770 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-07-07 19:24:17 +00:00
uz
ae42e3b491 Added a comment.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5769 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-07-07 19:09:23 +00:00
uz
a27bc7774e Start adding stuff that optimizes the new shift functions.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5768 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-07-07 17:56:39 +00:00
uz
859236615e Ignore a few more "harmless" functions when optimizing.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5767 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-07-07 17:36:15 +00:00
uz
4139c83abf Move the optimization routines for shifts into a separate module.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5766 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-07-07 15:21:12 +00:00
uz
cd4f87b2cc Fixed compiler warnings.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5765 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-07-06 20:02:43 +00:00
uz
e50649af2c Transform tosshlax and friends into a sequence that doesn't use the stack if
possible.


git-svn-id: svn://svn.cc65.org/cc65/trunk@5764 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-07-06 20:01:46 +00:00
uz
5f0db62f58 Added info for new shift routines that don't use the stack.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5763 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-07-06 20:00:22 +00:00
uz
da766d872c Small code changes for more safety (and to be compatible with the new shift
routines that don't use the stack).


git-svn-id: svn://svn.cc65.org/cc65/trunk@5762 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-07-06 19:59:29 +00:00
uz
43ea0e3df9 Move evaluation of the argument for .BANK into the linker. It is otherwise too
restricted, since no imported symbols may be used.


git-svn-id: svn://svn.cc65.org/cc65/trunk@5746 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-06-30 17:18:03 +00:00
uz
92a0632634 Added register info for the aslaxy and shlaxy routines.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5743 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-06-24 22:05:56 +00:00
ol.sc
e3fb0233c8 Added secondary linker config for Atari overlays (located below main program like Apple II).
git-svn-id: svn://svn.cc65.org/cc65/trunk@5741 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-06-24 21:23:25 +00:00
uz
43d0d2fb78 Special handling for a few more runtime functions.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5737 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-06-24 14:29:27 +00:00
uz
87d19de33f OptSize2 needs an extra removal of duplicate transfers.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5734 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-06-23 19:34:48 +00:00
uz
ec900bc200 Centralize generation of register infos for a code segment. This means that
all optimizer functions can rely on it.


git-svn-id: svn://svn.cc65.org/cc65/trunk@5733 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-06-23 17:33:31 +00:00
uz
d5810a818c Added two replacements for negax. Shift right for signed values can be treated
like unsigned if X is known to be zero.


git-svn-id: svn://svn.cc65.org/cc65/trunk@5732 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-06-23 16:58:05 +00:00
uz
4333c76710 The OptNegXXX function were actually handling bnega... runtime stuff. Renamed
them accordingly.


git-svn-id: svn://svn.cc65.org/cc65/trunk@5731 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-06-23 16:17:56 +00:00
ol.sc
bb41dccfe3 Added secondary linker config for Apple2 overlays (like C64).
git-svn-id: svn://svn.cc65.org/cc65/trunk@5730 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-06-16 23:09:20 +00:00
ol.sc
f6ab932b32 The Apple2 linker configs *-loader.cfg only differed in the presumed HIMEM from the default config. Rather have that value adjustable.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5728 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-06-16 22:48:45 +00:00
ol.sc
4647e98071 Adjusted comment to recent changes.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5727 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-06-16 22:24:06 +00:00
ol.sc
610bb14988 Avoid mixing of memory areas and segments in address computations (and made move of segment INIT somewhat more readable).
git-svn-id: svn://svn.cc65.org/cc65/trunk@5726 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-06-16 22:13:58 +00:00
ol.sc
7691da610b I just don't like 'file = "" '.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5725 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-06-16 21:12:56 +00:00
ol.sc
b7b7de55d0 Replaced "throwing away" of memeory area HEADER with the much more elegant "not referring" of symbol __EXEHDR__. This was recently made possible for the asm program config.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5724 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-06-16 21:06:13 +00:00
ol.sc
094ffa1984 Renamed segment 'HIGHCODE' to 'LC because:
1. Its use isn't limited to code. It may as well be used for rodata.
2. This fits better to the new __LCADDR__ / __LCSIZE__ parameters.

git-svn-id: svn://svn.cc65.org/cc65/trunk@5723 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-06-16 20:57:49 +00:00
ol.sc
c9555b328a The Apple2 linker configs basically cover two dimension of settings:
1. BIN vs. SYS vs. Loader
2. With Quit code vs. w/o Quit code vs. full LC

Up two now these two dimensions were sort of folded into a number of useful combinations. However with the new asm config and the upcominger overlay config we end up with just to many configs.

Therefore now the second dimension isn't expressed anymore as distinct config. Rather the user has to override __LCADDR__ and __LCSIZE__ in order use the Quite code area or the full LC.

git-svn-id: svn://svn.cc65.org/cc65/trunk@5722 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-06-16 20:36:34 +00:00
uz
ec1f955a6e For commutative operators processed by hie_internal, if the left side is a
constant, exchange the order of the operands so that better code can be
generated.


git-svn-id: svn://svn.cc65.org/cc65/trunk@5721 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-06-16 18:12:24 +00:00
uz
b5d88fdedd Mark commutative operators as such (no change in code until now).
git-svn-id: svn://svn.cc65.org/cc65/trunk@5720 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-06-16 15:49:53 +00:00
uz
c1d7ed26e8 Unified the "store via pointer" optimization routines.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5719 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-06-16 15:46:45 +00:00
uz
7c9b27c048 Be more flexible when detecting a special sequence that can be optimized.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5718 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-06-15 20:51:14 +00:00
ol.sc
b014bd8196 Added basic Apple linker config for assembler programs (similiar to C64).
git-svn-id: svn://svn.cc65.org/cc65/trunk@5717 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-06-14 20:59:08 +00:00
ol.sc
95686b169e Moved actual computation of DOS 3.3 header to linker configurations:
- This will allow for different "formulas".
- This brings things together in one place.

git-svn-id: svn://svn.cc65.org/cc65/trunk@5716 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-06-14 20:44:35 +00:00
uz
9142a300c1 Another optimization for array stores.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5715 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-06-12 18:11:53 +00:00
uz
c66185259b Extend OPtShift3 to shift counts larger than 1.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5713 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-06-11 17:58:32 +00:00
uz
22078ba924 The new module was missing from the Watcom makefile.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5712 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-06-11 07:45:47 +00:00
uz
cb9ef2f96a Added a forgotten header file.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5711 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-06-11 07:06:24 +00:00
uz
8dc74f33da Another optimization for right shift of the sum of two bytes.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5710 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-06-10 22:15:00 +00:00
uz
878f469fc8 Removed a unnecessary duplicate call to one routine.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5709 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-06-10 21:47:52 +00:00
ol.sc
9cc99876b2 Moved Apple EXEHDR to separate module (similiar to CBMs).
git-svn-id: svn://svn.cc65.org/cc65/trunk@5708 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-06-10 21:05:51 +00:00
uz
cf509a775d Moved "store through pointers" optimizations into its own file and added
another one.


git-svn-id: svn://svn.cc65.org/cc65/trunk@5707 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-06-10 20:09:40 +00:00
uz
4b80a3b9cd Added new pushl0 runtime function.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5706 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-06-10 19:23:15 +00:00
ol.sc
45bf954fbe Better define 'EXTBSS' to allow developer to memset() set it to zero on startup.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5698 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-06-10 12:37:32 +00:00
ol.sc
ffc06fcea3 Apple GEOS reserves beside the main app area at $4000-$C000 a secondary app area at $0C00-$2000. While it was an elegant idea to use that secondary area for overlays at the end of the day those 5 kB are just too small. So now overlays go at the end of the main area (as with GEOS 64/128).
However the stack (usually 1 kB) can be securely placed in the secondary area without effort from the side of the developer. The rest of the secondary area (usually 4 kB) is made available to the developer as (uninitialized) 'EXTBSS'.

git-svn-id: svn://svn.cc65.org/cc65/trunk@5696 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-06-08 21:46:51 +00:00
uz
5cf9f585a6 In error or warning messages, output the name of the library if this is
relevant. It's otherwise difficult to know what happens when ar65 is called
from within a makefile or similar.


git-svn-id: svn://svn.cc65.org/cc65/trunk@5695 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-06-07 19:59:51 +00:00
uz
b916fae1cc Generate special memcpy code if the target is less than 256 bytes in size and
located at the stack bottom.


git-svn-id: svn://svn.cc65.org/cc65/trunk@5693 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-06-07 13:30:21 +00:00
uz
0f7f7796b1 Added info about the subysp function.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5692 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-06-07 13:14:49 +00:00
uz
cff1a6ffdb Be sure to check the availability of code entries before accessing them.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5691 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-06-06 22:01:04 +00:00
uz
61c1f6b270 Added more to the list of "harmless" calls that do not interrupt a
pushax/stackop sequence.


git-svn-id: svn://svn.cc65.org/cc65/trunk@5690 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-06-06 21:52:54 +00:00
uz
fa69f31982 Don't emit special code because it doesn't work well with the optimizer.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5689 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-06-06 21:52:09 +00:00
uz
fe1c4cd46b Detect an additional sequence that is used with pointers in register
variables.


git-svn-id: svn://svn.cc65.org/cc65/trunk@5688 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-06-06 21:51:10 +00:00
uz
279dc29b45 Output the optimization steps that had changes when debugging is enabled.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5687 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-06-06 21:50:10 +00:00
uz
e416092f70 Similar changes as for the C output target: If the attribute "ident" is given,
place the data into a .PROC with this name. Add additional constants named
COLORS, WIDTH and HEIGHT within this .PROC.


git-svn-id: svn://svn.cc65.org/cc65/trunk@5684 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-06-04 19:29:39 +00:00
uz
e5cdab4544 Fixed a C99ism.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5682 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-06-04 07:48:37 +00:00
ol.sc
3cb0cce00d Added secondary linker config for C64 overlays (incl. demo program).
git-svn-id: svn://svn.cc65.org/cc65/trunk@5679 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-06-03 16:16:11 +00:00
uz
d5cf83deba Fix output of segment sizes. It was broken after some changes to the format.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5670 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-06-03 13:39:28 +00:00
uz
4663245219 Change data generation for C output. The ident attribute is now optional.
Without it, just the data is output. With an identifier given, there will be
additional #defines for xxx_COLORS, xxx_WIDTH, xxx_HEIGHT, and the data is
places into an array with the given name.


git-svn-id: svn://svn.cc65.org/cc65/trunk@5662 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-05-28 11:35:44 +00:00
uz
47c87eb335 Fixed an error: When guessing the address size of an expression used in an
instruction that contains undefined symbols, and the effective address allows
just one address size, use this size instead of the default data segment size.


git-svn-id: svn://svn.cc65.org/cc65/trunk@5658 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-05-25 16:28:46 +00:00
uz
7d62062bd2 Added an optimization for signed shift right.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5657 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-05-09 18:00:27 +00:00
uz
2ce084228f Fixed a comment.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5652 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-04-25 17:26:30 +00:00
uz
0ff4e5cf64 The program dumped core when read/write was used without a conversion of the
input to binary data.


git-svn-id: svn://svn.cc65.org/cc65/trunk@5651 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-04-22 21:57:28 +00:00
uz
cd7e65f97e Fixed an uniniitalized variable which caused ranom error messages on static
local variables.


git-svn-id: svn://svn.cc65.org/cc65/trunk@5650 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-04-22 21:38:31 +00:00
uz
7bf80a4d73 Reverted errorneously commited change to the makefile.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5649 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-04-22 18:09:17 +00:00
uz
faf58a8220 Fixed an error when parsing local variables: Variables must be inserted into
the symbol table *before* the optional initializer is parsed, because they
might be referenced in the intializer.


git-svn-id: svn://svn.cc65.org/cc65/trunk@5648 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-04-22 18:08:45 +00:00
uz
b0c4678ad2 More cleanup.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5647 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-04-11 12:23:33 +00:00
uz
b0ed819891 More preparations for loadable CPUs. Will still not compile.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5646 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-04-09 11:55:18 +00:00
uz
4858614605 Moving around stuff. Preparation for loadable CPUs.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5645 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-04-06 11:35:56 +00:00
uz
74ee7a44a9 One more intermediate state - not compilable.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5644 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-04-05 19:55:04 +00:00
uz
10d58204b5 Intermediate state - doesn't run as is.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5643 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-04-05 13:30:21 +00:00
uz
032c16dda4 Reenable Break(), use a string buffer for safe formatting.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5642 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-04-03 17:35:34 +00:00
uz
b5d4321a4b Added support for several colors.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5641 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-04-03 17:34:54 +00:00
uz
31e0666087 Use FileStat instead of stat.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5640 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-04-03 13:28:33 +00:00
uz
2cd0b5ae91 Fixed an error in the conversion function from Unix time to FILETIME.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5639 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-04-03 13:27:19 +00:00
uz
7287d86dd1 Use the replacement function to set file times.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5638 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-04-03 13:13:28 +00:00
uz
a0c6ae2c62 Added a replacement for utime(), because it has the same DST bug as stat().
git-svn-id: svn://svn.cc65.org/cc65/trunk@5637 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-04-03 13:01:56 +00:00
uz
b833c6c8c5 Explicitly ignore the function result of CloseHandle().
git-svn-id: svn://svn.cc65.org/cc65/trunk@5636 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-04-03 12:54:17 +00:00
uz
dd6475ac3d Fixed an invalid offset.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5635 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-04-01 19:29:04 +00:00
uz
a9550ade4c Added a missing #include.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5634 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-04-01 17:20:10 +00:00
uz
f9729fd0cf Use the new FileStat function to get correct file modification times under
Windows.


git-svn-id: svn://svn.cc65.org/cc65/trunk@5633 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-04-01 17:01:05 +00:00
uz
65fe2ad0d3 Add a new module that works around a bug in the Microsoft version of stat. The
function is buggy since the first version of windows that supports something
else than FAT, and instead of fixing the problem, Microsoft has declared it
"works as designed". The problem has made it into .NET and is also visible in
the standard windows file explorer (modification times of untouched files will
change when entering or leaving DST).
Please note that the new FileStat function returns incorrect times for files
on FAT file systems. This is because I have currently no idea on how to
identify the file system for a given file. However, it should be correct in
quite some more cases than stat().


git-svn-id: svn://svn.cc65.org/cc65/trunk@5632 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-04-01 16:56:42 +00:00
uz
baa4774b08 Fixed a comment.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5631 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-04-01 15:48:53 +00:00
uz
35e1184901 Removed unneeded include files.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5630 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-04-01 15:48:11 +00:00
uz
724d1b9160 Fixed an error: When determining where to place initialized data, the compiler
didn't look "deep enough" into nested arrays to determine the constness
correctly.


git-svn-id: svn://svn.cc65.org/cc65/trunk@5622 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-03-24 14:28:59 +00:00
uz
515661e5f4 Fixed an error: For symbols declared as extern in local scope, the name for
the external assembler symbol wasn't set.


git-svn-id: svn://svn.cc65.org/cc65/trunk@5620 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-03-24 13:42:10 +00:00
uz
63328d3852 Implement anonymous structs/unions in cc65 mode.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5618 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-03-17 20:33:09 +00:00
uz
7260b3687a Pass the source image of the conversion down to the output function, so they
are able to output the image properties as comments.


git-svn-id: svn://svn.cc65.org/cc65/trunk@5616 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-03-15 17:02:12 +00:00
uz
fbbf7e50d2 Added two more conversion targets: geos-bitmap, which will create a GEOS
compacted bitmap, and raw, which is probably mostly useful for debugging. It
converts an indexed image to a row of bytes which correspond to the color
indices of the pixels.


git-svn-id: svn://svn.cc65.org/cc65/trunk@5615 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-03-13 21:12:27 +00:00
uz
1c91618a5d Fixed a C99ism.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5614 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-03-12 08:20:20 +00:00
uz
3f25b9d6a2 Fixed a copy&paste error in a comment.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5613 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-03-11 22:44:22 +00:00
uz
422629ff91 Added conversion to GEOS icon format (which is actually identical to the VIC2
high-res sprite format).


git-svn-id: svn://svn.cc65.org/cc65/trunk@5612 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-03-11 22:43:44 +00:00
karri
4b6720d32b Add lynx sprite generation skeleton
git-svn-id: svn://svn.cc65.org/cc65/trunk@5610 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-03-11 14:00:51 +00:00
karri
cba5d0af56 Add lynx sprite generation skeleton
git-svn-id: svn://svn.cc65.org/cc65/trunk@5609 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-03-11 13:48:40 +00:00
uz
6d0d1575a6 Added generation of C output.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5607 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-03-11 12:38:54 +00:00
uz
b599fe5793 Added the capability to generate multicolor sprites.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5606 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-03-11 12:17:48 +00:00
uz
4a0a76b012 New function GetBitmapName, inlined GetBitmapColors.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5605 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-03-11 11:38:37 +00:00
uz
ca691233e4 New option --dump-palette. Fixed a double free in the cleanup code.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5604 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-03-11 11:25:38 +00:00
uz
c9d65c56c2 Remove the bitmap type since it is not really needed and complicate things.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5603 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-03-11 11:10:41 +00:00
uz
921ef39162 Added sp65 to the tools makefiles.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5600 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-03-10 23:11:42 +00:00
uz
df036dbeaf Free bitmaps and buffers before terminating.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5598 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-03-10 22:13:36 +00:00
uz
e39d1e8d10 Allow to pass NULL pointers to FreeStrBuf.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5597 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-03-10 22:12:44 +00:00
uz
d06625075d Removed the flags and optimized the Attr structure.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5596 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-03-10 22:10:45 +00:00
uz
84d90343ea Removed several memory leaks.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5595 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-03-10 21:46:09 +00:00
uz
4c36a39814 Handle "label" and "segment" attributes for assembler output.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5594 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-03-10 20:51:52 +00:00
uz
74108cd74f Fixed two compiler warnings.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5593 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-03-10 20:35:22 +00:00
uz
1a7b115b3c Move evaluation of attributes into the input routine.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5592 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-03-10 20:26:47 +00:00
uz
44c70d01cb New option --list-conversions.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5591 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-03-10 18:51:00 +00:00
uz
c44c7d9f97 New attribute "base".
git-svn-id: svn://svn.cc65.org/cc65/trunk@5590 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-03-10 18:50:40 +00:00
uz
c140a15dac Move attribute lookup into the output functions. Allow a bytesperline
attribute for asm output files.


git-svn-id: svn://svn.cc65.org/cc65/trunk@5589 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-03-10 14:22:51 +00:00
uz
2d0e71b242 Do also allow ':' as an attribute separator.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5588 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-03-10 14:21:46 +00:00
uz
7563f4096c Implemented main conversion module.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5587 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-03-10 13:50:53 +00:00
uz
1aaff0ce2f Added the main conversion module. New option --convert-to. New short options
for --read and --write.


git-svn-id: svn://svn.cc65.org/cc65/trunk@5586 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-03-09 13:44:51 +00:00
uz
b55c290823 Added a dummy return to fix a watcom warning.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5585 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-03-09 11:48:13 +00:00
uz
4e7488d9b9 Added the write routine.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5584 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-03-09 11:46:16 +00:00
uz
b6329757d7 Export the compare function since it is used in a few places.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5583 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-03-09 11:45:08 +00:00
uz
006be848f2 Added VIC2 sprites as output format. Started to code the processing pipeline:
--slice, --pop.


git-svn-id: svn://svn.cc65.org/cc65/trunk@5582 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-03-09 11:37:10 +00:00
uz
8c1aed8b0f Started to add koala output format.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5578 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-03-05 20:30:25 +00:00
uz
15a8a51aa2 Fix FindInputFormat.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5577 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-03-05 19:28:22 +00:00
uz
3cef75b26c Added parsing of arguments to --read. The explicit format spec is currently
broken.


git-svn-id: svn://svn.cc65.org/cc65/trunk@5576 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-03-04 21:02:31 +00:00
uz
594e446ac5 Added a module to manage attribute/value pairs.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5575 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-03-04 20:17:34 +00:00
uz
bdeefe31e5 The table for sweet 16 instructions had an invalid length word. Reported by
Jeff Tranter.


git-svn-id: svn://svn.cc65.org/cc65/trunk@5572 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-03-04 13:01:50 +00:00
uz
32f4a8d414 Added the output layer.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5566 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-02-27 21:03:01 +00:00
uz
95eb20dc37 Remove the "Tag" field in struct Bitmap since it is of no real use.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5565 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-02-27 20:45:14 +00:00
uz
d46c3fc5a9 Fix two watcom (and probably C89) issues.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5564 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-02-27 20:43:03 +00:00
ol.sc
5817cf1476 Take BSS into account (like done for Apple GEOS in the first place).
git-svn-id: svn://svn.cc65.org/cc65/trunk@5563 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-02-27 19:37:32 +00:00
uz
e4aab75bb0 Added a module for assembler source output.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5562 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-02-27 18:17:28 +00:00
uz
1e4a4cb72c Removed a declaration for a routine that doesn't exist.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5561 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-02-27 18:17:13 +00:00
uz
271e604fb7 Added a module for binary output.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5560 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-02-27 17:58:34 +00:00
uz
f0a73e253d Added a new input layer that manages the different input formats.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5559 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-02-27 16:33:13 +00:00
uz
ca624041a9 Splitted the filetype module into the actual search function (now in fileid)
and the existing file types used by ld65 and cl65.


git-svn-id: svn://svn.cc65.org/cc65/trunk@5558 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-02-27 16:24:35 +00:00
uz
7a3e6abb13 New function to create a bitmap slice.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5557 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-02-26 21:45:42 +00:00
uz
4abdecc728 Use only as many palette entries as there are colors in the image.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5556 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-02-26 21:26:00 +00:00
uz
fa052219e3 First version of PCX reading routine is completed but mostly untested.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5555 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-02-26 15:27:36 +00:00
uz
6893f52a50 Some more work on reading pcx files.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5554 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-02-26 11:54:05 +00:00
uz
c4721fb4e2 Output usage information to stdout, not stderr. This is consistent with the
other tools.


git-svn-id: svn://svn.cc65.org/cc65/trunk@5553 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-02-26 11:53:39 +00:00
uz
3265f0cf44 Started to add PCX routines.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5552 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-02-25 21:45:01 +00:00
uz
eb4001a52f Adapted the file i/o module from od65.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5551 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-02-25 20:51:16 +00:00
uz
364eb07a59 Started to code the front end base layer modules.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5550 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-02-25 15:08:38 +00:00
uz
d27c7d5a75 Added base framework for the sp65 sprite and bitmap tool.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5548 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-02-23 21:32:15 +00:00
uz
083265ed73 Added new cl65 options -Wc and --cc-args.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5538 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-02-21 20:23:36 +00:00
uz
1d8e059eb2 Remove the check for the target system. It is checked by grc65.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5521 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-02-09 22:01:03 +00:00
uz
6e04b7dd71 Pass the target to the geos resource compiler.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5520 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-02-09 21:48:45 +00:00
ol.sc
cc4b960b96 Added support for Apple GEOS VLIR programs.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5519 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-02-09 21:23:24 +00:00
uz
b6276e75f3 Fixed a problem with debug symbol ids. Invalid ids were written to the file
because of a wrong check.


git-svn-id: svn://svn.cc65.org/cc65/trunk@5430 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-01-31 20:44:27 +00:00
uz
44e7225ce6 Fixed an internal error that was triggered by an attempt to move an empty list
of instructions in the code segment (Oliver Schmidt).
                       


git-svn-id: svn://svn.cc65.org/cc65/trunk@5419 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-01-21 21:35:49 +00:00
uz
631c553233 Reverted some errorneously committed changes which enabled debug output.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5414 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-01-20 16:04:37 +00:00
uz
cbefb85d47 Fixed a problem reported by Greg King. structs returned from functions in the
primary register are actually rvalues and need special treatment.
                                                                 


git-svn-id: svn://svn.cc65.org/cc65/trunk@5413 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-01-20 16:01:25 +00:00
uz
66f1f82943 Masking a bit field is unnecessary if there was no shift operation or if the
shift operation shifted just zeroes into the value.


git-svn-id: svn://svn.cc65.org/cc65/trunk@5412 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-01-20 15:54:43 +00:00
uz
772d51aa5e Added handling of new expression opcodes.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5411 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-01-19 11:55:36 +00:00
uz
3f8ceff73f Forgot to check these in. They contain the new expression opcodes for far
addresses (24 bit) and dwords (32 bit).


git-svn-id: svn://svn.cc65.org/cc65/trunk@5409 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-01-19 11:50:21 +00:00
uz
7ecb4c50b1 Add bounded expressions for immediate addressing and list the new feature in
the docs.


git-svn-id: svn://svn.cc65.org/cc65/trunk@5406 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-01-18 19:50:34 +00:00
uz
8ddcbc5f01 Fixed an error in calculation of the fill bytes necessary for alignment.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5396 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-01-11 18:30:25 +00:00
uz
1fccae4cff Finish support for .BANK.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5384 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-01-04 22:45:26 +00:00
uz
e7e4877e6e Mark segments that are referenced in a .BANK statement.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5383 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-01-04 22:15:47 +00:00
uz
02cbc7da25 Moved the segdefs module to ca65, since it was used only there and renamed it
to segdef, since there might be a new segdefs module in common soon.


git-svn-id: svn://svn.cc65.org/cc65/trunk@5381 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-01-04 22:02:02 +00:00
uz
ad88e77f43 Fixed an error in file offset calculation.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5380 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-01-04 21:45:11 +00:00
uz
cb4ba24089 Fixed copy & paste errors in comments.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5379 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-01-04 21:44:46 +00:00
uz
9e68be3842 Started to add a new .BANK instruction that allows access to a memory area
attribute named "bank". Some error checks and a lot of testing is required.
Don't use for now.


git-svn-id: svn://svn.cc65.org/cc65/trunk@5375 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-01-03 21:41:34 +00:00
ol.sc
74be82e77e Minimal beautification.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5374 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-01-03 21:14:33 +00:00
ol.sc
9c2cb68b50 The VLIR table description didn't contain that much information anymore, but on the other hand it seems nice to consolidate all application metadata in one place. So the VLIR table description was replaced by a general MEMORY defintion that allows define the stack size and the usage of the background buffer together with the overlay-related settings.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5373 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-01-03 21:12:43 +00:00
uz
be77192bcf No need to simplify an expression in SegDone() if it is replaced by a constant
anyway.


git-svn-id: svn://svn.cc65.org/cc65/trunk@5372 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-01-03 19:40:00 +00:00
uz
b16a12d260 Adjusted/added names of geos include files.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5371 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-01-03 08:25:04 +00:00
ol.sc
5863777995 Introduced __BACKBUFSIZE__ which can be set to zero in order to disable the GEOS background buffering.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5370 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-01-03 00:32:46 +00:00
ol.sc
803686e179 The (to be written) "Apple GEOS UnConvert" tool should be allowed to rely on a valid file size (aka EOF) in the ProDOS directory entry.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5369 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-01-02 23:30:55 +00:00
ol.sc
110bbeafde Fixed type in target name (it is not supposed to be "geos-apple2") and adjusted the CPU attribute to 65C02 as Apple GEOS only runs on newer Apple machines with 128kB anyway.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5368 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-01-02 12:45:25 +00:00
uz
a9f48e663b Symbols imported from the linker config must have the config file position
added to the symbol references, not the definitions.


git-svn-id: svn://svn.cc65.org/cc65/trunk@5367 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-01-02 12:39:55 +00:00
ol.sc
f24ff82ea2 Renamed apple-geos.cfg to geos-apple.cfg and added it as built-in configuration.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5366 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-01-02 12:28:44 +00:00
ol.sc
4c82d5e0c2 Renamed geos.cfg to geos-cbm.cfg.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5365 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-01-02 12:18:18 +00:00
ol.sc
6fa0564790 According to http://wweicht.homepage.t-online.de/projekte.htm ("GEOS 64/128 (Wheels and MegaPatch also) use internal a two digit value for year. After the year 99 comes the year 00.") it's advisable to generally limit the year to two digits.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5364 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-01-02 12:07:03 +00:00
ol.sc
2bac717dee Another try in normalizing C coding style.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5363 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-01-02 12:01:43 +00:00
ol.sc
8abedd2bae Another try in normalizing C coding style.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5362 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-01-02 11:54:15 +00:00