1
0
mirror of https://github.com/cc65/cc65.git synced 2024-07-02 15:29:33 +00:00
Commit Graph

6696 Commits

Author SHA1 Message Date
Greg King
5e7c7d78fc Added a regression test program for the changes in the right-shift optimizer. 2015-12-14 11:46:30 -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
Oliver Schmidt
377f31d085 Fixed soft80 shutdown.
A call to $FDA3 cannot be used because it re-enables the BASIC ROM. If a large program (such as Contiki's webbrowser80) has destructor code or data "behind" that ROM, then the program might crash when it tries to quit gracefully. Changing that code to set CIA2_PRA works well enough.
2015-12-02 21:34:08 +01:00
Oliver Schmidt
d403c1e7f0 Merge pull request #240 from blackystardust/fix-c128-ram-rts
Fixed the c128 bank 1 emd.
2015-12-02 10:40:06 +01:00
Marco van den Heuvel
7cd80e7450 optimized the sei/cli pairing a bit. 2015-12-02 00:21:55 -08:00
Oliver Schmidt
22f10b1459 Made conio program compatible with joystick-only target(s). 2015-12-01 23:06:51 +01:00
Oliver Schmidt
bdf4a7bd89 Merge pull request #237 from blackystardust/master
Added a menu to em-test.c and a struct that holds the available emd's…
2015-12-01 16:18:31 +01:00
Marco van den Heuvel
3a01ba9509 Fixed emd driver names for atari-xl and apple2e. 2015-11-30 10:15:28 -08:00
Marco van den Heuvel
18208f4d2e Fixed the c128 ram (bank 1) emd. 2015-11-29 23:04:23 -08:00
Marco van den Heuvel
cf9e7856cf Removed an 'rts'. 2015-11-29 11:35:25 -08:00
Marco van den Heuvel
97c9ed3273 Changed according to suggestions. 2015-11-29 10:50:22 -08:00
Marco van den Heuvel
25ab2c60d5 Added a menu to em-test.c and a struct that holds the available emd's, this way the user that wants to test an emd can use the menu to select which one to test. 2015-11-28 22:06:32 -08:00
Oliver Schmidt
d99451ca50 Merge pull request #236 from fo-fo/master
Escaping of spaces in ca65 dependency files
2015-11-26 20:19:14 +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
Oliver Schmidt
d1d57f5cd6 Merge pull request #233 from mrdudz/soft80shutdown
reset screen editor at shutdown
2015-11-23 10:24:03 +01:00
mrdudz
4a49b0c8f8 reset screen editor at shutdown 2015-11-22 19:20:58 +01:00
Oliver Schmidt
d54e515e08 Merge pull request #232 from greg-king5/arg-count
Fix ca65's ".paramcount" Assembly-code read-only variable.
2015-11-17 21:23:30 +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
Oliver Schmidt
b6f429f934 Merge pull request #229 from greg-king5/nes-registers
Update the <nes.h> include file.
2015-11-12 13:20:45 +01:00
Greg King
c5d624c941 Added C declarations of the NES's I/O registers to <nes.h>. 2015-11-12 05:40:47 -05:00
Oliver Schmidt
f70acd9f51 Merge pull request #227 from mrdudz/soft80syms
remove unneeded exports
2015-11-07 13:37:46 +01:00
mrdudz
54de8ac031 remove unneeded exports 2015-11-07 11:45:38 +01:00
Oliver Schmidt
ced08a1f44 Merge pull request #226 from greg-king5/pce-memset
Add a PC-Engine version of memset().
2015-11-07 11:37:36 +01:00
Greg King
5e36315d05 Style changes. 2015-11-07 00:29:07 -05:00
Greg King
999d57401c Added a version of memset() that uses the HuC6280's TII instruction to get more speed. 2015-11-06 23:59:19 -05:00
Oliver Schmidt
d8174af7fb Merge pull request #225 from greg-king5/pce-memmove
Handle the special case of a zero-length move on the PC Engine.
2015-11-03 10:13:20 +01:00
Greg King
8180ac20d3 Added code to handle the special case of a zero-length move.
Added more tests of memcpy() and memmove().
2015-11-02 17:09:45 -05:00
Oliver Schmidt
281dc33e5a Made addr/size hex consts 4 digits wide. 2015-10-30 17:19:19 +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
Oliver Schmidt
fdf71df3a1 Merge pull request #223 from greg-king5/pce-memmove
Add PC Engine-specific substitutes for memcpy() and memmove().
2015-10-24 17:10:25 +02:00
Greg King
8e8d112029 Added pce-specific substitutes for memcpy() and memmove().
They are smaller and faster because they take advantage of the pce CPU's block-copy instructions.

Also, made a small improvement to the common memmove(), so that it is similar to the pce version.
2015-10-23 18:02:21 -04:00
Oliver Schmidt
43bda6928d Merge pull request #221 from undisbeliever/master
Added .asize and .isize pseudo variables in ca65
2015-10-23 20:41:28 +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
Oliver Schmidt
2cbc8fbd64 Merge pull request #222 from mrdudz/pcedatacopy
use tii instead of copy loop to copy data section to ram
2015-10-22 21:17:50 +02:00
mrdudz
8f8f12ceab use tii instead of copy loop to copy data section to ram 2015-10-22 19:48:21 +02:00
Oliver Schmidt
a957f80204 Merge pull request #213 from mrdudz/soft80
soft80 implementation for C-64
2015-10-22 17:56:21 +02:00
mrdudz
ba901d2de7 removed apple2 specific note 2015-10-22 17:33:01 +02: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
mrdudz
07a77d1259 updated docs 2015-10-19 03:12:19 +02:00
mrdudz
60334c40e6 added size optimized monochrom soft80 driver 2015-10-19 02:49:32 +02:00
mrdudz
d6d016bb80 updated comments 2015-10-19 02:47:40 +02:00
mrdudz
5099910b18 updated docs 2015-10-18 23:57:58 +02:00
Oliver Schmidt
f4335eca87 Merge pull request #220 from greg-king5/holes
Fix a samples/sieve.s typo.
2015-10-17 21:37:41 +02:00
Greg King
f94945308f Added missing parentheses.
A function call had looked like a function pointer (which caused an incompatible comparison).
2015-10-17 12:09:06 -04:00
mrdudz
8263083506 move variables into INITBSS 2015-10-15 15:11:05 +02:00
mrdudz
63d4c93006 Merge remote-tracking branch 'upstream/master' into soft80 2015-10-15 15:07:44 +02:00
Oliver Schmidt
76a5a72403 Adjusted current working directory initialization on Apple and Atari.
Moving __cwd from BSS into INITBSS does of course ;-) not only impact the CBM targets but all targets with disk I/O support.

Note: Code using `__cwd-1` may trigger an ld65 range error because __cwd may end up at the very begining of a segment. As far as I see this is an ld65 bug which I'm not try to fix - at least here.
2015-10-15 00:15:38 +02:00
Oliver Schmidt
0ee9b2e446 Changed run location of INIT segment.
So far the INIT segment was run from the later heap+stack. Now the INIT segment is run from the later BSS. The background is that so far the INIT segment was pretty small (from $80 to $180 bytes). But upcoming changes will increase the INIT segment in certain scenarios up to ~ $1000 bytes. So programs with very limited heap+stack might just not been able to move the INIT segment to its run location. But moving the INIT segment to the later BSS allows it to occupy the later BSS+heap+stack.

In order to allow that the constructors are _NOT_ allowed anymore to access the BSS. Rather they must use the DATA segment or the new INITBSS segment. The latter isn't cleared at any point so the constructors may use it to expose values to the main program. However they must make sure to always write the values as they are not pre-initialized.
2015-10-14 22:52:09 +02:00