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

2973 Commits

Author SHA1 Message Date
Lauri Kasanen
d091a57e91 Trampoline stack 2017-05-02 20:43:41 +03:00
Lauri Kasanen
679bfb0ae9 Add IntPtrStack 2017-05-01 21:08:04 +03:00
Oliver Schmidt
18b0aaf9f2 Removed help for non-existent option. 2017-04-15 23:12:19 +02:00
Greg King
1aab287189 Fixed the handling of "while (0) {}".
It's a corner case; but, conditional macroes might create it -- better safe than sorry.
2017-04-07 09:26:58 -04:00
Oliver Schmidt
be772c0198 Bumped version.
As suggested the incompatibility resulting from 02daf9f8b5 makes a new version appropriate.
2017-04-06 12:22:39 +02:00
Greg King
dce5783dc9 Fixed the simulations of the stack pointer and the "break" and decimal-mode flags.
* The pointer wraps around the stack page.
* The break flag exists on only the stack, and only after an interrupt.
* 65C02 interrupts clear the decimal-mode flag.
2017-04-04 13:23:44 -04:00
Oliver Schmidt
02daf9f8b5 So far the built-in inlining of several known standard function was always (!) enabled and the option -Os enabled additional, potentially unsafe inlining of some of those functions.
There were two aspects of this behavior that were considered undesirable:
- Although the safe inlining is in general desirable it should only be enabled if asked for it - like any other optimization.
- The option name -Os implies that it is a safe option, the potentially unsafe inlining should have a more explicit name.

So now:
- The option -Os enables the safe inlining.
- The new option --eagerly-inline-funcs enables the potentially unsafe inlining (including the safe inlining).

Additionally was added:
- The option --inline-stdfuncs that does like -Os enable the safe inlining but doesn't enable optimizations.
- The pragma inline-stdfuncs that works identical to --inline-stdfuncs.
- The pragma allow-eager-inline that enables the potentially unsafe inlining but doesn't include the safe inlining. That means that by itself it only marks code as safe for potentially unsafe inlining but doesn't actually enable any inlining.
2017-04-03 23:20:26 +02:00
Oliver Schmidt
cbb2833c01 Merge pull request #414 from IrgendwerA8/SED_Fix
Fixed sim65 SED
2017-03-30 12:26:37 +02:00
IrgendwerA8
170d96898f Fixed SED 2017-03-30 12:17:29 +02:00
Oliver Schmidt
5dbacb538e Merge pull request #411 from pfusik/bss-name-regression
Fix regression of #pragma bss-name
2017-03-22 13:44:48 +01:00
Piotr Fusik
8e35a82c91 Fix regression of #pragma bss-name
Closes #409
2017-03-21 22:35:25 +01:00
Oliver Schmidt
669113b595 Added missing line continuation.
Fixes https://github.com/cc65/cc65/issues/408
2017-03-21 20:45:51 +01:00
IrgendwerA8
cc82cd9992 Fixed addressing error for TSB/TSR and enabled tests again. 2017-03-20 21:53:07 +01:00
Oliver Schmidt
3a30669ff6 Merge pull request #405 from IrgendwerA8/65SC02_sim65_support
Added 65SC02 support for simulator.
2017-03-18 23:38:05 +01:00
IrgendwerA8
e14e13abf4 fixed curly brackets for single line scopes 2017-03-18 22:52:13 +01:00
IrgendwerA8
ad003e5991 style changes 2017-03-18 20:27:41 +01:00
IrgendwerA8
0985655ac7 Fixed bug in original sim65 implementation (reason for C&P error in last commit) 2017-03-18 17:02:22 +01:00
IrgendwerA8
c50e4d25e2 additional fix for scrambled code (sorry) 2017-03-18 16:56:36 +01:00
IrgendwerA8
4ba34f2a69 fixed scrambled semicolon 2017-03-18 16:54:00 +01:00
IrgendwerA8
360372420b Added 65SC02 support for simulator. 2017-03-18 16:37:15 +01:00
Greg King
750a527100 Made C's sizeof operator work with initialized void variables.
Added regression tests that check cc65's handling of void variables.
2017-03-12 14:41:32 -04:00
Oliver Schmidt
a780df1fe1 Merge pull request #381 from pfusik/static-forward-decl
"static" forward declarations
2017-03-12 18:26:14 +01:00
Piotr Fusik
d2c89d2ba9 "static int n; int n;" is an error.
Fixes test/err/static-4.c regression.
2017-03-09 19:14:31 +01:00
Piotr Fusik
5988ec37cd Revert "Disallow global variable declarations with an initializer."
This reverts commit 1f12a06f7c.
2017-02-15 18:51:27 +01:00
Christian Groessler
a5fba551d1 Merge remote-tracking branch 'upstream/master' into something_to_pull2 2017-02-13 21:38:38 +01:00
Piotr Fusik
31f19fbc65 Issue an error for duplicate global variables.
Previously it was an assembler error.
2017-02-13 21:10:21 +01:00
Piotr Fusik
730d01a25f Global uninitialized variable is only a tentative definition.
Closes #204
2017-02-13 21:04:45 +01:00
Piotr Fusik
1f12a06f7c Disallow global variable declarations with an initializer.
E.g.
extern int i = 42;
2017-02-13 19:41:05 +01:00
Greg King
7e8bb7b700 Fixed ca65's BRK instruction encoding for the 65816.
BRK is two bytes on all 6502 variants; but, the 65816's maker declared officially that assemblers should support an optional operand.
2017-02-12 14:54:57 -05:00
Oliver Schmidt
5bbf010029 Merge pull request #371 from jedeoric/master
Create an Oric Telestrat target library
2017-02-10 23:47:13 +01:00
jede
9cde534b23 Rollback for *.vcxproj, telestrat.sgml modified for "don't" instead of "did not" for telemon2.4 2017-02-09 18:46:56 +01:00
Christian Groessler
a08f905224 Cleanups for Creativision. 2017-02-01 20:09:03 +01:00
Christian Groessler
07f840f11c Merge remote-tracking branch 'upstream/master' into creativision 2017-02-01 18:15:05 +01:00
jede
b5fef66f37 Merge telemon24 and telemon30 into telestrat target.
Cleaning, and replace tab to spaces
Converting hex lowercase value into uppercase char.
Changing := and = when it was needed
2017-01-31 22:09:14 +01:00
jede
858e952505 Fix 2017-01-29 23:05:18 +01:00
jede
db3b6603e5 Fix 2017-01-29 23:03:01 +01:00
jede
bd82bf6a7f Fix 2017-01-29 22:59:53 +01:00
jede
e21eca942b new pull fix 2017-01-29 22:55:35 +01:00
jede
2697499b3c Fixing old pull request 2017-01-29 22:53:50 +01:00
jede
0f8fb4d79d Merge with current version 2017-01-29 22:39:51 +01:00
Florent Flament
c1aac0de0e Add C support for Atari 2600 (VCS) 2017-01-13 21:12:22 +01:00
Chris Cacciatore
66b30f0c7a Added 'any' to --list-opt-steps. 2016-12-15 09:06:15 -08:00
jede
252e4afb9c Adding files for telemon30 2016-12-14 21:22:10 +01:00
Peter Ferrie
8a08413263 fix build break on da65 2016-12-03 20:54:14 -08:00
Alan Cox
e4aee2ba34 cc65: remove un-needed logic from octal parsing
We no longer need the extra error handling logic for octal parsing so simplify
it as requested by Greg King.

Signed-off-by: Alan Cox <etchedpixels@gmail.com>
2016-11-20 18:02:45 +00:00
Alan Cox
6ee1fd2a67 scanner: Correct handling of \0101
The C language has this oddity that octal constants are 3 bytes so the sequence
"\0101" is two bytes and well defined by the langage. cc65 currently misparses
this as a 1 byte octal code. Add a count to fix this.

Signed-off-by: Alan Cox <etchedpixels@gmail.com>
2016-11-19 13:02:19 +00:00
Sven Oliver Moll
2d76d0a657 da65: 4510 support
- cleaned up unnecessary static function
- adjusted table formatting
2016-09-23 13:10:38 +02:00
Sven Oliver Moll
d0ed84c2d0 da65: adding support for 4510 cpu of c65 2016-09-20 17:37:10 +02:00
Sven Oliver Moll
ae3f9bbd77 Added assembler pseudo commands .P4510 and .IFP4510 together with docs and testcase 2016-09-07 19:21:24 +02:00
Christian Groessler
3531bcbf3e Fix some typos. 2016-09-06 15:13:44 +02:00
Greg King
4b2e3be2fc Fixed some bugs in da65's HuC6280 section. 2016-09-02 14:24:29 -04:00
Oliver Schmidt
9c38521ea8 Merge pull request #343 from SvOlli/release
Add 4510 support for C65/C64DX
2016-08-31 22:05:49 +02:00
Sven Oliver Moll
48f64de720 4510 support: yet another round up little updates 2016-08-31 20:18:54 +02:00
Sven Oliver Moll
4384603eeb 4510 support: added some other small improvements:
- fixed typo in doc/ca65.sgml
- Greg found a way to get rid of one extra opcode handling in total
2016-08-30 22:58:40 +02:00
Sven Oliver Moll
91f8e09bcc 4510 support: fixed some cosmetical stuff and documentation 2016-08-29 23:29:31 +02:00
Sven Oliver Moll
0538184699 Add 4510 support for C65/C64DX 2016-08-29 10:45:18 +02:00
Greg King
1dee57bf1f Made cc65 not warn us when we change character code 0x00 back to itself. 2016-08-26 08:08:44 -04:00
Chris Cacciatore
e9295b2a98 Updated comment regarding curly braces. 2016-08-20 09:42:29 -07:00
Chris Cacciatore
7919812378 Updated switch statement comments.
* Now comments represent the fact that there may not be curly braces.
2016-08-19 20:21:10 -07:00
Chris Cacciatore
3bd3fd8749 Removed check for LCURLY in switch statements. 2016-08-15 11:03:02 -07:00
Chris Cacciatore
bad8412131 All programs print version and exit successfully.
* All programs are now using the ProgName variable as well.
2016-08-12 08:54:41 -07:00
Chris Cacciatore
f9482a1b72 Fixed test negation. (#329)
Fixed test negation.
2016-08-09 15:46:51 -04:00
Oliver Schmidt
d90dff5861 Merge pull request #328 from cacciatc/print-sym-name-incompatible-ptr-types
Reporting sym name for incompatible pointer types.
2016-08-05 13:31:34 +02:00
Greg King
33b1d82791 Added the WDC65c02S WAI and STP mnemonics to the disassembler. 2016-08-02 16:38:39 -04:00
Chris Cacciatore
9accf983e1 Reporting sym name for incompatible pointer types. 2016-08-02 11:31:09 -07:00
David M. Lloyd
8f0146f14a Add missing WDC instructions 2016-07-28 11:55:25 -05:00
Christian Groessler
85d755f214 fix indentation 2016-07-05 17:10:10 +02:00
Christian Groessler
97b517a892 sim65: add command line parameter to print number of CPU cycles at exit 2016-07-05 17:07:39 +02:00
Greg King
a6eb7d0763 Fixed how ca65 handles some debug info from cc65.
ca65 used to claim that an assembler error/warning was found on a C code line; and, that an Assembly line is only indirectly related to it.
Now, ca65 says that the Assembly line has the problem; and, that the Assembly line was produced from the C line.
2016-07-03 07:07:09 -04:00
Greg King
90b2f5aff8 Fixed some code that adjusts an index after a deletion from a collection. 2016-07-02 10:26:33 -04:00
Greg King
573381a340 Allowed character code zero to be remapped with other character codes. 2016-06-11 06:43:19 -04:00
Oliver Schmidt
6f0b57fe51 Added chrcvt65 to the Visual Studio project. 2016-06-03 11:37:15 +02:00
Oliver Schmidt
8dd003d2b3 Added --print-target-path option.
If cc65 is installed and used as designed there's no need whatsoever for CC65_HOME (both on *IX and Windows) from the perspective of the cc65 binaries. If the user however has to access files from the 'target' directory thenhe ends up with some assumption on the cc65 installation path nevertheless :-(

In order to avoid this I added the --print-target-path option. It "exports" the logic used by the cc65 binaries to locate their files to the user thus allowing him to leverage the same logic to locate the target files in his build scripts / Makefiles.
2016-06-03 11:08:53 +02:00
Lauri Kasanen
8951e74ba7 ld65: Be more verbose in token errors 2016-05-27 20:03:58 +03:00
Greg King
8d5717b57a Small optimization of some cc65-generated loops.
"bne" means also branch-on-not-zero.  Therefore, this optimization doesn't put a compare-to-zero between an increment and a "bne".
2016-05-24 15:52:12 -04:00
Greg King
2c7ccca210 Added the optional C keyword "volatile" to the __asm__ statement grammar.
It prevents the statement's Assembly code from being optimized (e.g., moved or removed).  Optimization is disabled for that statement's entire function (other functions aren't affected).
2016-04-22 11:33:52 -04:00
Oliver Schmidt
62c2177599 Merge pull request #283 from polluks/sp65
Fixed CPU definition of Lynx.
2016-04-14 11:28:25 +02:00
Polluks
b14021e9ac Fixed CPU definition of Lynx. Removed nonsense target vc20. 2016-04-12 23:58:30 +02:00
Oliver Schmidt
e809d6bf0d Merge pull request #281 from polluks/sp65
sp65: A forgotten option. Empty arguments are not silent anymore.
2016-04-10 21:13:02 +02:00
KORISNIK
7f06405bdb A forgotten option. Empty arguments are not silent anymore. 2016-04-10 02:21:36 +02:00
Greg King
fac246c799 Moved a warning message, about misaligned segments, to a configuration function.
It used to be shown only if the segment was written into a binary file.  Now, it's shown for all badly-aligned segments.
2016-03-29 05:40:12 -04:00
Oliver Schmidt
8b685763d4 Renamed chrcvt to chrcvt65 and added it to the build.
The /Makefile presumes that all binaries are are named *65 so chrcvt had to be renamed in order to be added to the build.
2016-03-27 19:09:00 +02:00
Oliver Schmidt
ab1600b346 Merge pull request #269 from jbrandwood/squarebracket
New ".feature" to use brackets instead of parens for 6502 indirect addressing.
2016-03-03 09:07:21 +01:00
mrdudz
0dc85268c4 fix merge fxxxup 2016-02-28 19:11:04 +01:00
Oliver Schmidt
54e09fdd03 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.

this resembles commit 8e6b8dd0af from oliver
2016-02-28 19:05:40 +01:00
Bob Andrews
25f4482641 Merge pull request #238 from mrdudz/gamate
Bit Corporation 'Gamate' support
2016-02-27 18:44:26 +01:00
John Brandwood
d23db09f7f Add optional feature to use brackets instead of parens for 6502 indirect addressing. 2016-02-25 12:40:31 -08:00
Greg King
7a39b85e30 Fixed how ca65's CONDES-type pseudo-instructions save line numbers (for error messages). 2016-01-15 17:18:09 -05:00
polluks
cb3700ef66 Changed stdout to stderr to separate sim65's output streams. Suggested doc edit. 2016-01-05 17:45:18 +01:00
Greg King
7e14dde07b Fixed the cc65 code that handled an addition of a pointer to a 32-bit offset.
It didn't demote the offset to int because it looked at the pointer (instead of the offset) which already was 16 bits.
2015-12-31 17:41:48 -05:00
Greg King
3b303396bf Made cc65 accept comparisons between pointers with different qualifiers (similarly to subtractions between pointers). 2015-12-29 04:18:17 -05:00
Oliver Schmidt
02e4b5bfe3 Merge pull request #249 from polluks/master
My first PR
2015-12-27 13:40:20 +01:00
polluks
11786b198e Amiga support #192 2015-12-27 01:26:28 +01:00
Greg King
bdbf75372c Added another op-code to the test pattern for a right-shift optimizer in cc65. 2015-12-14 11:50:43 -05:00
Greg King
651b1b40ec Extended a signed char shift optimization, to handle shifts that are longer than 4 bits. 2015-12-13 17:10:31 -05:00
Greg King
4716083f3f Fixed a signed char shift optimization so that it won't be used on signed int also.
(It would lose significant bits from the high byte.)
2015-12-13 17:04:43 -05:00
mrdudz
8a499fdf4e fixup conio.c some more. also includes merge of upstream/master because git is retarded. 2015-12-02 00:13:32 +01:00
mrdudz
9fbf8a4299 conio and most other stuff working now 2015-11-29 01:14:59 +01:00
f
4dc4ea60ee Implemented escaping of spaces in ca65 dependency files. Largely based on input.c from cc65 (WriteEscaped was copied verbatim). 2015-11-26 19:00:47 +02:00
mrdudz
88e7b5776a some more fiddling 2015-11-22 19:02:47 +01:00
Greg King
3c8c62c6ab Fixed the ca65 Assembly-code variable ".paramcount".
Fixed how it's described in the ca65 document.
2015-11-17 14:21:40 -05:00
mrdudz
60285097e3 initial import of the gamate stuff 2015-11-14 13:15:29 +01:00
Oliver Schmidt
202ad62419 Merge pull request #224 from greg-king5/ld65-segstart
Change the way that ld65 handles bad offset/start segment-attributes.
2015-10-24 17:12:49 +02:00
Marcus Rowe
25e0b157be Fixed code style 2015-10-24 01:07:47 +10:00
Greg King
8e9bf4d419 Changed the way that ld65 handles bad offset/start segment attributes, and reports memory area overflows.
1. Offset/start attributes within a memory area are ignored after an overflow.
2. If a previous segment ends past an offset/start address, then that address is not used.
3. Short map files were generated for memory overflows; now, they are generated for bad offset/start addresses, too.
2015-10-22 19:24:08 -04:00
Marcus Rowe
67cd0c2197 Added .asize and .isize pseudo variables
These pseudo variables will return the size of the accumulator/index
in bits.

For the 65816 instruction set .ASIZE/.ISIZE will return either 8 or 16,
depending on the current size of the operand in immediate addressing
mode.

For all other CPU instruction sets, .ASIZE/.ISIZE will always return 8.

For example:

	; Reverse Subtract with Accumulator
	; A = memory - A
	.macro rsb param
		.if .asize = 8
			eor	#$ff
		.else
			eor	#$ffff
		.endif
		sec
		adc	param
	.endmacro
2015-10-20 09:30:25 +10:00
Greg King
ed2b8a1609 Fixed a warning message. 2015-09-25 02:31:17 -04:00
Oliver Schmidt
b2657ecef5 Merge pull request #177 from mrdudz/pcenginetarget
new target: PC Engine (TurboGrafx16)
2015-09-24 09:58:28 +02:00
Greg King
a555f121fd Fixed the " til " typos. 2015-09-06 12:25:00 -04:00
mrdudz
d0a1dc73b8 Merge remote-tracking branch 'upstream/master' into pcenginetarget 2015-09-04 13:40:52 +02:00
Oliver Schmidt
8d5f6b89ae Merge pull request #203 from greg-king5/multi-comments
Change multi-line C comments in files that were missed by a previous pull request.
2015-08-31 17:36:02 +02:00
Greg King
58e56ba24d Changed multi-line C comments in files that I missed in commit 0390c34e88. 2015-08-30 08:43:54 -04:00
Greg King
d280d2610e Don't count the NULL (doh!). 2015-08-30 07:55:35 -04:00
Greg King
a132bc4b28 Fixed a comparison operator; so that the NULL at the end of argv[] is copied by InitCmdLine().
Most POSIX function libraries hid that long-time bug by putting zeroes in their dynamic RAM; but, MinGW's library doesn't do it.  Therefore, a command like
cl65 foo.c -l
would crash with a "Segmentation fault" -- it should give a nice error message about "-l"; and, quit neatly.
2015-08-30 05:16:38 -04:00
Greg King
6032849e60 Added warning diagnostics for conflicts between extern/public and static declarations. 2015-08-10 13:39:17 -04:00
Greg King
4e9842ef33 Stopped extern declarations from changing previous static, but otherwise identical, declarations. 2015-08-09 06:27:05 -04:00
Greg King
d36f31dcff Improved the format of the global symbols' lists of flags, in cc65's debugging output. 2015-08-08 22:04:38 -04:00
JT
cacc5e2ace Style again 2015-07-20 19:16:48 -04:00
JT
10579d0421 Fix style 2015-07-20 19:12:30 -04:00
JT
c3d083fe33 Fix bug #182 2015-07-20 18:55:25 -04:00
mrdudz
0e29a0993f Merge remote-tracking branch 'upstream/master' into pcenginetarget 2015-07-20 18:42:04 +02:00
JT
b79687da2b Fix base 10 bug (ca65 allows 'a' or 'A' in base10 value) 2015-07-19 18:56:42 -04:00
mrdudz
21d7729ad1 Merge remote-tracking branch 'upstream/master' into pcenginetarget 2015-07-16 16:46:24 +02:00
Oliver Schmidt
d3eebc8fcf Merge branch 'pointer' of https://github.com/mrdudz/cc65 into mrdudz-pointer 2015-07-15 12:24:09 +02:00
Oliver Schmidt
a79b17515e Merge pull request #158 from Movax12/definedmacro
Added .DEFINEDMACRO psuedo function
2015-07-12 13:32:03 +02:00
JT
55adf03bdf Move FuncIsMnemonic 2015-07-11 19:09:42 -04:00
mrdudz
877fd532c2 Merge remote-tracking branch 'upstream/master' into pcenginetarget 2015-07-11 13:05:26 +02:00
mrdudz
6ab197f364 patch from Uz that makes some illegal operations on pointers error out 2015-07-10 14:27:49 +02:00
Greg King
8189339e7d Added special-case compiler code that handles a pointer-to-array dereference.
The type needs to change (to array); but, the address shouldn't be changed -- it already points to the first element.
Based on a bug analysis by Daniel Serpell.
2015-07-01 06:55:57 -04:00
JT
e7fca18798 Added .DEFINEDMACRO psuedo function
Fixed typo/fomatting

Formatting fix

Refactor the code to test for a macro

Remove .FEATURE requirement for .DEFINEDMACRO
2015-06-27 01:39:11 -04:00
Oliver Schmidt
d0e0b98b43 Revert "Equality problem (Ullrich von Bassewitz)".
Uz classifies his own fix as broken:

http://www.cc65.org/mailarchive/2015-01/11721.html

Although the original issue fixed seemed rather significant looking
back now the regression caused by the (broken) fix seems even more
significant :-(

(reverted from commit 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.
2015-06-27 01:09:20 +02:00
Oliver Schmidt
8bdbc00ba3 Bumped version.
As suggested the incompatibility resulting form changing the default calling convention makes a new version appropriate - from user perspective.
2015-06-25 09:23:27 +02:00
Oliver Schmidt
a13284a792 Merge pull request #160 from Movax12/definedinstr
.DEFINEDINSTR
2015-06-04 22:05:00 +02:00
Oliver Schmidt
fe023a1218 Merge pull request #151 from greg-king5/fastcall
Make __fastcall__ be the default calling convention.
2015-05-26 22:39:33 +02:00
Greg King
bbb6f89731 Made cc65 properly test calling conventions when it compares forward declarations to function definitions. 2015-05-24 18:31:50 -04:00
Greg King
e72132c8ae Made cc65 properly test variadic-function pointer assignments.
Improved some error messages.
2015-05-24 08:32:15 -04:00
JT
63325a90d1 Added needed changes to pseudo.c 2015-05-19 20:45:49 -04:00
JT
1e3234f370 changed name of function to .ISMNEMONIC, small fixes 2015-05-19 19:50:51 -04:00
JT
9ee5adc190 Remove .FEATURE requirement and add documentation 2015-05-19 00:06:12 -04:00
Christian Groessler
41d19074e7 Fix verbose symbol dumping in ca65. 2015-05-16 05:20:15 +02:00
JT
5ed3a1a6dc Added pseudo function .DEFINEDINSTR 2015-05-12 19:28:57 -04:00
Greg King
0bb3bafb3e Made cc65 catch an assignment of a function pointer to a pointer with a different calling convention. 2015-05-12 04:15:00 -04:00
Greg King
8743e9911d Added a command-line option to compile a program, with __cdecl__ as the default calling convention. 2015-04-22 09:59:23 -04:00
JT
ffa52863b3 Small changes to coding style and to ca65 documentation for .ADDRSIZE 2015-04-21 16:09:01 -04:00
JT
dfddf8f9d2 Improved on funciton .ADDRSIZE. Conform to coding style. 2015-04-20 17:20:54 -04:00
JT
c6f45a338c Added function .ADDRSIZE to ca65 2015-04-19 23:21:56 -04:00
Greg King
2842b68a04 Reverted one of the changes in how function prototypes look, in cc65's assembly output. 2015-03-19 06:27:25 -04:00
Greg King
b452bdc5e4 Catch fastcall pointers to variadic functions. 2015-03-13 12:18:43 -04:00
Greg King
a798b1d648 Made __fastcall__ be the default calling convention for non-variadic functions. 2015-03-10 05:53:52 -04:00
Greg King
6230b6a813 Completed the cc65 code that recognizes __CDECL__ as a calling convention qualifier. 2015-03-09 19:39:04 -04:00
Greg King
ba871635de Added a font translation table because Ohio Scientific machines have three misplaced characters. 2015-03-05 12:45:50 -05:00
Stephan Mühlstrasser
de3df033d3 Remove tabs, fixed accidental insertion of stdio.h. 2015-02-08 17:21:23 +01:00
Stephan Mühlstrasser
4e03d7448c Merge branch 'master' of https://github.com/cc65/cc65 into c1p 2015-02-08 15:58:42 +01:00
Stephan Mühlstrasser
01b0e10fc3 Remove tab character. 2015-02-03 22:56:04 +01:00
Stephan Mühlstrasser
14c7e9fd16 Rename c1p target to osic1p 2015-02-03 22:42:35 +01:00
Wayne LaBelle
d3b2b3df6b Move SBC to correct location in 6280 instruction table 2015-01-11 16:10:34 -05:00
Stephan Mühlstrasser
50164a9d68 Removed c1p65 object file converter.
Now using srec_cat from the srecord package.
2015-01-05 20:55:45 +01:00
Oliver Schmidt
83549e2321 Merge pull request #142 from greg-king5/disassemble-segment
da65's segments feature
2014-12-03 14:07:12 +01:00
Stephan Mühlstrasser
91e21ae024 Merge branch 'master' of https://github.com/cc65/cc65 into c1p 2014-12-02 20:42:54 +01:00
Greg King
1446d99b14 Clarified a segment error message. 2014-11-30 00:51:09 -05:00
Greg King
155f00f25e Fixed the detection of where to start and stop segments. 2014-11-30 00:40:45 -05:00
Stephan Mühlstrasser
67707f342d Set default start address to 0x200 2014-11-29 20:56:49 +01:00
mrdudz
4275b82117 added compiler/assembler target, lib compiles 2014-11-29 15:35:20 +01:00
Stephan Mühlstrasser
a66c93c55b Use CR instead of LF, because this works better over the serial port of a real C1P. 2014-11-26 19:01:15 +01:00
Greg King
0ee891c106 Completed the coding of da65's SEGMENT feature.
Before this commit, we could define segment ranges; but, the disassembler wouldn't do anything with those definitions.  Now, da65 will put ".segment" directives into its output.

Fixed da65's document.
2014-11-23 15:29:16 -05:00
Stephan Mühlstrasser
16bdb10bfe Default is now automatic execution of program after loading 2014-11-23 20:05:38 +01:00
Stephan Mühlstrasser
dfbd2912cc Fix help text for default start address 2014-11-23 19:44:45 +01:00
Stephan Mühlstrasser
1c028c794a Clarify help for -o option 2014-11-23 19:43:24 +01:00
mrdudz
d5844bd63b changed return code to -99 2014-11-20 14:49:35 +01:00
mrdudz
6273d1cdc0 actually make TAS work :) 2014-11-20 02:47:33 +01:00
mrdudz
c2704ec72a uses TAS instead of SHS like da65 did 2014-11-20 01:31:39 +01:00
mrdudz
8cc71f135c added support for LAX#imm, all done 2014-11-20 00:18:12 +01:00
mrdudz
044aee7f8d added support for undocumented NOPs 2014-11-19 23:20:46 +01:00
mrdudz
cf82bfaf37 renamed KIL to the more common JAM, which is also accepted by ca65 2014-11-19 22:54:33 +01:00
mrdudz
2dfdf4dec7 added support for ane, sha, shs, shy, shx 2014-11-19 22:34:33 +01:00
mrdudz
202a2d677b starting branch for adding the missing undocumented opcodes 2014-11-19 22:04:32 +01:00
mrdudz
156f405774 Merge remote-tracking branch 'upstream/master' 2014-11-19 15:44:14 +01:00
Stephan Mühlstrasser
6edf57324e Set default start address to 0x300.
Make start address configurable via --start-addr.
2014-11-16 20:07:59 +01:00
Stephan Mühlstrasser
3b379c10e4 Added missing dependency from c1p65 to common 2014-11-15 20:37:45 +01:00
Stephan Mühlstrasser
1f85c48fb2 Added the c1p65 project. 2014-11-06 20:46:16 +01:00
Stephan Mühlstrasser
29801cd45f Enter bytes in a loop in data mode 2014-11-02 23:22:41 +01:00
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