1
0
mirror of https://github.com/cc65/cc65.git synced 2024-11-19 06:31:31 +00:00
Commit Graph

6601 Commits

Author SHA1 Message Date
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
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
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
Oliver Schmidt
023b461bb8 According to the contributor the VGA data is accessed only by the constructor. 2015-10-14 11:50:54 +02:00
Oliver Schmidt
8f67dd5cc7 Merge pull request #215 from greg-king5/c64-init
Save space by using the apple2 target's INIT overlay scheme on the c64 target.
2015-10-14 10:43:11 +02:00
Oliver Schmidt
5e960d106e Allow to override chars used for horizontal and vertical lines. 2015-10-12 21:04:06 +02:00
Oliver Schmidt
08efc299ff Allow to override mouse sprite location data. 2015-10-12 20:18:13 +02:00
Oliver Schmidt
c4966ac6a6 Fixed stupid adressing mode bug.
Thanks Greg for pointing out :-)
2015-10-10 11:15:43 +02:00
Oliver Schmidt
ccc7c2b1f9 Minor style adjustment. 2015-10-09 22:18:51 +02:00
Oliver Schmidt
326da85145 Consistently place constructors (and their exclusive subroutines) in "INIT". 2015-10-09 21:44:20 +02:00
Oliver Schmidt
575f859a03 Keep low level VIC sprite stuff out of user code. 2015-10-09 18:33:35 +02:00
Greg King
8c609dd931 Explained why two variables were moved out of the BSS segment. 2015-10-09 12:00:41 -04:00
Oliver Schmidt
f21e3ae895 According to the contributor the prio wasn't intentionally set. 2015-10-09 13:42:25 +02:00
Greg King
8b89f4f5a6 Reduced c64-overlay.cfg's size by factoring out a different common expression. 2015-10-08 06:11:37 -04:00
Greg King
ca70700a0b Restored the old C-stack initiation code.
I had forgotten that the stack must be put below the CBM overlays.
2015-10-08 06:04:49 -04:00
Greg King
8a880580dc Reduced the size of the moveinit subroutine.
Made other changes that were recommended by Oliver.
* Changed its name from move_init to moveinit.
* Used self-modifying code in the subroutine.
* The INIT segment doesn't need to be optional (it's used by the start-up file).
2015-10-07 14:56:14 -04:00
Oliver Schmidt
e6008026aa Fixed bogus formatting of recent contribution.
I wasn't in the mood for discussion ;-)
2015-10-05 16:28:16 +02:00
Oliver Schmidt
08e4cbfdbc Merge pull request #217 from clbr/master
Some nes documentation updates, joypad defines
2015-10-05 16:24:53 +02:00
Lauri Kasanen
7f409c3edb nes: Expose and document all joypad keys 2015-10-05 17:19:36 +03:00
Lauri Kasanen
04be8020b6 nes: Document whether waitvblank waits for the start or end of vblank 2015-10-05 17:18:53 +03:00
Greg King
074e10d288 Adapted, to the c64 target, the INIT-segment overlay scheme from the apple2 targets.
When a program starts running, INIT is moved from one place to another place.  Then, INIT's code is executed; and, the first place is re-used for variables.  After the INIT code has finished, the second place can be re-used by the heap and the C stack.  That means that initiation code and data won't waste any RAM space after they stop being needed.
2015-10-05 05:47:43 -04:00
Oliver Schmidt
24c2da980b Merge pull request #214 from greg-king5/cbm-exec
Make the CBM exec() work in gigantic programs.
2015-09-30 20:52:31 +02:00
Greg King
6217f8fa3a Made the Commodore version of exec() work in programs that are so big that they load into all of BASIC RAM.
The function won't cause an "out of memory" error.
2015-09-28 11:27:39 -04:00
Oliver Schmidt
067956b808 Merge pull request #211 from greg-king5/errno-helpers
Move errno helper functions into separately linkable files.
2015-09-25 22:13:11 +02:00
Greg King
b82bb4f5ba Moved two errno helper functions into separate files.
Only the function that actually is needed will be linked.  It is very useful for targets that do not have file-system I/O.
2015-09-25 14:06:58 -04:00
Oliver Schmidt
e0b273e86c Merge pull request #210 from greg-king5/archiver
Make an ar65 warning show both object files' names.
2015-09-25 16:21:47 +02:00
Greg King
ed2b8a1609 Fixed a warning message. 2015-09-25 02:31:17 -04:00
Oliver Schmidt
9704b1d11b Update README.md 2015-09-24 10:16:46 +02:00
Oliver Schmidt
74f8de9ab6 Update README.md 2015-09-24 10:14:30 +02:00
Oliver Schmidt
68a4f34b3d Use title case. 2015-09-24 10:06:24 +02:00
Oliver Schmidt
b2657ecef5 Merge pull request #177 from mrdudz/pcenginetarget
new target: PC Engine (TurboGrafx16)
2015-09-24 09:58:28 +02:00
mrdudz
7d453a72fb use 'plot' instead of 'PLOT' 2015-09-20 12:18:41 +02:00
mrdudz
296489ba6c added interruptor support 2015-09-19 15:55:43 +02:00
mrdudz
859604407b fixed more flaws found by greg :) 2015-09-19 15:37:39 +02:00
Oliver Schmidt
45313075fe Merge pull request #208 from greg-king5/big-jump
Improve the longjmp() and setjmp() functions.
2015-09-11 21:06:50 +02:00
Oliver Schmidt
5ff480d6f4 Merge pull request #207 from greg-king5/random-seed
Fix the CBM random-seed generators.
2015-09-11 21:02:40 +02:00
Greg King
dbf0adcec9 Improved longjmp() and setjmp(). 2015-09-11 14:18:22 -04:00
Greg King
031bd2ebf0 Fixed the random-seed generators for the Commodore targets.
They use a byte from the time counter; but, it is stored in big-endian order.
2015-09-11 10:03:07 -04:00
mrdudz
088a25437d fixed VDC register assignments 2015-09-07 12:55:36 +02:00
Oliver Schmidt
fa0709a618 Merge pull request #205 from greg-king5/typo
Fix " til " typos.
2015-09-06 21:35:32 +02:00
Greg King
a555f121fd Fixed the " til " typos. 2015-09-06 12:25:00 -04:00
mrdudz
af2ba26c62 fix gregs complaints :) 2015-09-04 14:14:17 +02:00
mrdudz
d0a1dc73b8 Merge remote-tracking branch 'upstream/master' into pcenginetarget 2015-09-04 13:40:52 +02:00
mrdudz
9fe0c34fe6 updated 2015-09-04 13:38:17 +02:00
mrdudz
01baf36fa8 fixed style issues 2015-09-03 13:09:18 +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
Oliver Schmidt
1ee57eeea4 Merge pull request #202 from greg-king5/argv-null
Fix the preparation of tool command lines.
2015-08-31 17:34:28 +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