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

102 Commits

Author SHA1 Message Date
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
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
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
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
mrdudz
9e1d39a409 more cleanup and fixing 2015-07-12 16:40:52 +02:00
mrdudz
891cb97b2f more cleanup, joystick works again 2015-07-12 14:27:24 +02:00
mrdudz
21999b081f simple conio test works again 2015-07-12 10:32:55 +02:00
mrdudz
877fd532c2 Merge remote-tracking branch 'upstream/master' into pcenginetarget 2015-07-11 13:05:26 +02:00
Stephan Mühlstrasser
b4bab018ac More room by default for zero-page data. 2015-03-23 18:42:25 +01:00
Stephan Mühlstrasser
72a9e331e3 Fixed uninitialized use of low byte of address "load". 2015-03-14 00:01:12 +01:00
Greg King
87bce0d56b Changed a comment in the osic1p configure files. 2015-03-09 06:17:28 -04:00
Greg King
2d50267bd8 Added a second OSI C1P program file format.
Unlike the first format, the new format is already loadable; it doesn't need to be converted.
2015-03-07 16:39:44 -05:00
Stephan Mühlstrasser
222668c016 Implemented a one-character buffer for kbhit() and cgetc().
If kbhit() detects that a key is pressed, it fetches and
buffers the character. If cgetc() detects a buffered character,
this one is returned instead of fetching one with the PROM
routine.
2015-02-21 20:24:58 +01:00
Stephan Mühlstrasser
94f83ea439 Replace zeropage variable with standard tmp variable. 2015-02-12 21:29:19 +01:00
Stephan Mühlstrasser
679f5aa675 Use constants for screen width and height. 2015-02-12 20:54:47 +01:00
Stephan Mühlstrasser
5063e0ecca Incorporated feedback for initial pull request. 2015-02-11 19:21:17 +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
14c7e9fd16 Rename c1p target to osic1p 2015-02-03 22:42:35 +01:00
Stephan Mühlstrasser
19b3c1b32b Configuration file for assembler-only build. 2015-01-31 22:45:18 +01:00
Stephan Mühlstrasser
b1f764bdc9 Minor cleanup of unnecessary newlines. 2015-01-11 20:08:39 +01:00
Greg King
43342366ed Added comments that say why the ZPSAVE1 and ZPSAVE2 segments must be together. 2015-01-08 17:07:28 -05:00
Greg King
22e06c41d1 Fixed a bug that had padded Atmos binaries with 25 bytes too many. 2015-01-08 03:51:20 -05:00
Stephan Mühlstrasser
073b4c264a Set default RAM size to 32 kB.
8 kB RAM are very small for "interesting" programs
compiled with cc65. Therefore set the default
RAM size to 32 kB.
2015-01-05 20:37:23 +01:00
Stephan Mühlstrasser
8fa5fc6108 Restructured according to coding conventions. 2015-01-02 20:28:36 +01:00
Greg King
d9df576fa6 Used an easier-to-remember way of creating a program that uses graphics RAM for other purposes. 2014-12-13 09:52:39 -05:00
mrdudz
1365afa845 more hacking 2014-11-30 11:20:57 +01:00
Stephan Mühlstrasser
67707f342d Set default start address to 0x200 2014-11-29 20:56:49 +01:00
Stephan Mühlstrasser
ac88639f4a Implemented cursor functionality. 2014-11-29 20:07:30 +01:00
mrdudz
4275b82117 added compiler/assembler target, lib compiles 2014-11-29 15:35:20 +01:00
Stephan Mühlstrasser
0a6afb59c0 Switch to assembler for cputc implementation. 2014-11-22 01:07:55 +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
Greg King
09e50d433d * Changed the way that Atmos programs are started.
- Put a BASIC-language stub at the beginning.
  - Removed the Autostart flag.

  Those changes make it easy to give command-line arguments to a program.

* Made the Atmos configure file accept a special symbol definition on ld65's command line.  We can use "__RAMEND__" to increase the amount of RAM that's available to programs.
2014-11-09 06:32:11 -05:00
Stephan Mühlstrasser
0b186407f1 Merge https://github.com/cc65/cc65 into c1p 2014-11-02 16:17:16 +01: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
d9a8ea3b6c Don't reserve space for display list in __RESERVED_MEMORY__ since the
default display list is in ROM.
2014-05-27 02:43:17 +02:00
Oliver Schmidt
9056e41f7f Reintroduced optional INIT segment for (weird) NES TGI driver. 2014-05-01 22:12:05 +02:00
Oliver Schmidt
d6c3bd29ac Renamed JUMPTABLE and cleaned up module.cfg.
This change was suppsed to fix the issue that the former JUMPTABLE is merked as 'ro' while it is actually written to in several scenarios. When drivers are converted using co65 and then compiled into ROMs the JUMPTABLE isn't copied to RAM and therefore the write operations in question fail.

However unfortunately I didn't succeed in changing that :-( Just setting the former JUMPTABLE to 'rw' broke the drivers. So I placed the DATA segment directly after the former JUMPTABLE segment. This made the drivers converted with co65 work again - obviously after changing libsrc/Makefile:235 from '--code-label' to '--data-label'. But the actual dynamic drivers still didn't work as the former JUMPTABLE wasn't placed as the beginning of the loaded file anymore. That effect could be changed by exchanging src/ld65/o65.c:1391 with src/ld65/o65.c:1394 but doing so broke the drivers again :-((
2014-05-01 21:44:39 +02:00
Oliver Schmidt
73a50ae3c0 Made LOWCODE and INIT optional (like the other targets). 2014-04-28 22:14:26 +02:00
Christian Groessler
92b32d7d0e atari5200 update: simple conio "hello world" works now 2014-04-25 03:02:44 +02:00
Christian Groessler
f266612697 Merge remote-tracking branch 'upstream/master' into a5200 2014-03-20 00:24:11 +01:00
Karri Kaksonen
100ecb0a45 Use LOWCODE segment 2014-03-19 11:32:44 +02:00
Christian Groessler
84c655a907 use __RESERVED_MEMORY__ to reserve memory for the default 20x24 text screen 2014-03-13 02:36:10 +01:00
Christian Groessler
c8f7f2f161 first changes for atari5200 target 2014-03-01 17:20:09 +01:00
Christian Groessler
4b58a20b8c Increase the default start address a bit in case BASIC is started
('OPTION' not pressed at power on). It would otherwise overwrite parts
at the beginning.
2014-02-21 23:34:05 +01:00
Christian Groessler
81fe7a3805 cleanups; split 'header' and 'init' part into two source files 2014-02-21 22:43:44 +01:00
Christian Groessler
478da8e51f load CASHDR segment into RAM 2014-02-20 00:45:48 +01:00