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

165 Commits

Author SHA1 Message Date
Greg King
3a0506ccb3 Changed the PC-Engine's configuration file, so that the command line can build 8K, 16K, and 32K carts.
Adjusted the PCE's document, the start-up code, and the PCE library test makefile.  That makefile shows how to post-process the linker's output file.
2018-02-23 16:06:49 -05:00
Oliver Schmidt
9031320dff Added Makefile for recently added linker config test program. 2018-02-01 21:50:54 +01:00
Oliver Schmidt
855aceaba8 Added Apple II linker configs for programs including a hires screen.
The Apple II hires screen buffer is located at $2000 (and can't be moved). The usual way to get along with this is to load the cc65 program above the hires screen buffer at $4000. However, that means that it becomes difficult to make good use of the memory below the hires screen buffer. The simplest approach is to add that memory to the heap. But there are programs containing just lots of code and not much data. One could think of moving the code to the area below the hires screen after loading (like it is done with the code for the language card). But if the program is really large (and already contains code to be moved to the language card) it won't just fit into memory in the first place.

The alternative is to load the program at the usual $803 and have it "cover" the hires screen buffer. Of course the part of the program that actually "covers" the hires screen buffer mustn't contain anything necessary for the program. The downside of this approach is that the program file on disk contains 8kB that can't be used by the program. But instead of just containing zeros the program can as well contain a hires screen picture that can be displayed right after startup.

Now the user can have code loaded below the hires screen buffer by setting the code-name to LOWCODE. However, he needs to explicitly do so. Otherwise the memory below the hires screen is totally wasted.

Trivia: Allowing to do this hires screen buffer "covering" was the very reason to change tgi_init() to not clear the hires screen anymore.
2018-01-29 17:46:36 +01:00
Oliver Schmidt
040134e775
Fixed typo. 2018-01-02 13:48:30 +01:00
mrdudz
4abe12c729 fix spelling 2018-01-01 14:01:25 +01:00
mrdudz
142ba12634 updated testprog 2017-12-28 01:58:58 +01:00
mrdudz
2957acd133 some tweaks to testprog 2017-12-12 17:05:52 +01:00
mrdudz
4d95e578f4 added missing tests 2017-12-12 03:49:07 +01:00
mrdudz
a54b4bebde PET screen memory is at $8000, not $0800 2017-12-11 21:15:29 +01:00
mrdudz
8902730756 cbm stuff from greggs pull request 2017-12-11 19:52:11 +01:00
Oliver Schmidt
7f52a770d9 Removed joy_masks array.
So far the joy_masks array allowed several joystick drivers for a single target to each have different joy_read return values. However this meant that every call to joy_read implied an additional joy_masks lookup to post-process the return value.

Given that almost all targets only come with a single joystick driver this seems an inappropriate overhead. Therefore now the target header files contain constants matching the return value of the joy_read of the joystick driver(s) on that target.

If there indeed are several joystick drivers for a single target they must agree on a common return value for joy_read. In some cases this was alredy the case as there's a "natural" return value for joy_read. However a few joystick drivers need to be adjusted. This may cause some overhead inside the driver. But that is for sure smaller than the overhead introduced by the joy_masks lookup before.

!!! ToDo !!!

The following three joystick drivers become broken with this commit and need to be adjusted:
- atrmj8.s
- c64-numpad.s
- vic20-stdjoy.s
2017-08-19 19:11:28 +02:00
Oliver Schmidt
6002e59c28 Merge pull request #453 from mrdudz/waitvsync
waitvblank for cbm targets
2017-07-18 15:38:27 +02:00
mrdudz
1abce3a2a1 rename all waitvblank() to waitvsync() 2017-07-17 23:15:05 +02:00
Oliver Schmidt
233dd5062a Merge pull request #389 from IrgendwerA8/stringimprovements
Optimization of string functions (size & speed).
2017-04-04 15:39:37 +02: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
Christian Groessler
8a81f9c0c8 Fix line endings (CRLF -> LF) on all affected files. 2017-03-10 11:21:14 +01:00
IrgendwerA8
81115aa826 Added further optimizations and unit tests. 2017-03-05 02:09:12 +01:00
IrgendwerA8
09de875330 Changed the location of unittest.h 2017-02-28 08:05:11 +01:00
IrgendwerA8
3d28f5ca90 Fixed indentation 2017-02-26 22:36:19 +01:00
IrgendwerA8
c240d42a9e Added "strrchr" optimizaion a matching unit test and tiny unit test framework. (Documentation for that will follow later) 2017-02-26 20:03:05 +01:00
IrgendwerA8
6afcc370ed Optimization of two string functions (size & speed). 2017-02-25 20:19:50 +01:00
Irgendwer
e5af45b913 Update displaylist.c 2017-02-24 11:21:56 +01:00
IrgendwerA8
ae7fa8f2ea Improved display list instruction definition for more comfortable use within void data definition. 2017-02-24 00:10:02 +01:00
Christian Groessler
e6530d68dd Fix joystick driver. Add interruptor support.
Note that the joystick driver doesn't support combined movements (like
left/up or right/down). This should be fixed.
2017-02-15 15:45:49 +01:00
Christian Groessler
ccdbb2b0e6 Add testcode/lib/mouse-test.c. Rename samples/mousetest.c to mousedemo.c.
mouse-test.c can be use to test all available mouse drivers for a given target.
Currently supported targets are Atari, C64, and C128.
To avoid confusion, rename samples/mousetest.c to mousedemo.c.
2017-02-13 22:48:34 +01:00
IrgendwerA8
024f66a84f Allow use of different charmaps on Atari target 2016-08-19 17:27:41 +02:00
Christian Groessler
d0faf471b8 Some improvements to Atari exec() after review. 2016-06-14 20:44:57 +02:00
Christian Groessler
94ba9575ec Implement exec() for Atari XDOS.
- Adds new ENOEXEC error code, also used by Apple2 targets.
- Maximum command line length is 40, incl. program name. This is
  an XDOS restriction.
- testcode/lib/tinyshell.c has been extended to be able to run
  programs.
2016-06-13 20:40:01 +02:00
Christian Groessler
346d88a6a7 Add issues from pull request #307. 2016-06-07 12:07:38 +02:00
Christian Groessler
c7874b9f60 Add Atari version of of doesclrscrafterexit().
- Update documentation.
- Update atari.h and apple2.h header files.
- Adapt Atari test/target programs.
- Fix a typo in "div" entry in funcref.sgml.
2016-06-07 00:42:51 +02:00
Christian Groessler
da65866e24 Atari: add new function '_is_cmdline_dos()' and some other small changes.
- use this function instead of directly looking at _dos_type in the included
  targetutil and test programs
- fixes/improvements to the Atari runtime library regarding the recently
  changed _dos_type values
- libsrc/atari/targetutil/w2cas.c: exit if no filename was entered
- add documentation for the new function
2016-05-25 00:57:43 +02:00
Bob Andrews
25f4482641 Merge pull request #238 from mrdudz/gamate
Bit Corporation 'Gamate' support
2016-02-27 18:44:26 +01:00
Bob Andrews
3f72e59e93 Merge pull request #241 from blackystardust/c128-function-ram-emd
C128 function ram emd
2016-02-27 18:08:55 +01:00
silverdr
2bcdf32458 blackystardust pull request with post-review changes 2016-02-26 23:55:55 +01:00
mrdudz
5d3e7eeae3 tweaked soft env 2015-12-25 00:59:22 +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
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
Oliver Schmidt
22f10b1459 Made conio program compatible with joystick-only target(s). 2015-12-01 23:06:51 +01:00
Marco van den Heuvel
2e2f19ba79 Finished adding c128 internal/external function ram emd's. 2015-11-30 20:14:45 -08:00
mrdudz
b851be1b23 naive music test 2015-11-30 19:16:28 +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
7df35cac94 Started on making c128 function ram emd's. 2015-11-30 09:53:30 -08:00
mrdudz
7496e669be fixed stuff according to Olivers review 2015-11-30 18:44:04 +01:00
Marco van den Heuvel
18208f4d2e Fixed the c128 ram (bank 1) emd. 2015-11-29 23:04:23 -08:00
mrdudz
b39a8b7a61 more cleanup 2015-11-29 20:04:10 +01:00
Marco van den Heuvel
97c9ed3273 Changed according to suggestions. 2015-11-29 10:50:22 -08:00
mrdudz
c636675521 moved cart header into seperate file, moved nmi stub into several file, tweaked linker config 2015-11-29 16:01:36 +01: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
mrdudz
1893e24da9 updated 2015-11-29 01:24:01 +01:00
mrdudz
9fbf8a4299 conio and most other stuff working now 2015-11-29 01:14:59 +01:00