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

288 Commits

Author SHA1 Message Date
Oliver Schmidt
2c975d3642 Create static drivers directly from source files.
Up to now static drivers were created via co65 from dynamic drivers. However there was an issue with that approach:

The dynamic drivers are "o65 simple files" which obligates that they start with the 'code' segment. However dynamic drivers need to start with the module header - which is written to. For dynamic drivers this isn't more than a conceptual issue because they are always contain a 'data' segment and may therefore only be loaded into writable memory.

However when dynamic drivers are converted to static drivers using co65 then that issue becomes a real problem as then the 'code' segment may end up in non-writable memory - and thus writing to the module header fails.

Instead of changing the way dynamic drivers work I opted to rather make static driver creation totally independent from dynamic drivers. This allows to place the module header in the 'data' segment (see 'module.mac').
2014-06-04 23:50:18 +02: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
df782e9500 rename _antic.inc, _pokey.inc, _gtia.inc to atari_antic.inc, atari_pokey.inc, atari_gtia.inc 2014-05-30 22:00:18 +02:00
Christian Groessler
fa7cdf0214 remove atari5200.mac 2014-05-30 13:38:29 +02:00
Christian Groessler
2bf580fb89 remove unneeded ATASCII defs; add header 2014-05-29 00:42:30 +02:00
Christian Groessler
8f2c9f0d8e use atari target scrcode macro for atari5200 target, too 2014-05-29 00:18:55 +02:00
Christian Groessler
b8e5a66f29 changed version, startup screen now not fine anymore 2014-05-16 02:12:01 +02:00
Christian Groessler
0f2f19ef5b some CONIO fixes 2014-05-16 02:10:19 +02:00
Greg King
667f8229c0 Migrated the phantom-key exorcism code to the other C128 mouse drivers. 2014-05-05 05:30:31 -04:00
Christian Groessler
92b32d7d0e atari5200 update: simple conio "hello world" works now 2014-04-25 03:02:44 +02:00
Christian Groessler
ec417c0dc5 Merge remote-tracking branch 'upstream/master' into a5200 2014-04-25 02:07:44 +02:00
Greg King
42595fbf13 Added command-line argument parsing to the CBM510 and CBM610 targets. 2014-04-03 08:23:28 -04:00
Christian Groessler
30b418c734 add gotox, gotoy, and gotoxy 2014-03-13 02:38:35 +01:00
Christian Groessler
c8f7f2f161 first changes for atari5200 target 2014-03-01 17:20:09 +01:00
Oliver Schmidt
a7b84bb618 Removed references to SunPlus. 2014-02-08 22:48:49 +01:00
Christian Groessler
1f64a13559 small comment change 2014-01-29 23:40:48 +01:00
Christian Groessler
f5e7e92a35 Merge remote-tracking branch 'upstream/master' into something_to_pull 2014-01-17 22:33:29 +01:00
Oliver Schmidt
94eb2a2ed7 Some fine tuning of the mouse driver interface harmonization. 2014-01-17 21:09:15 +01:00
Christian Groessler
6ab07261bc Merge remote-tracking branch 'upstream/master' into something_to_pull 2014-01-16 23:34:56 +01:00
Oliver Schmidt
4065cb1983 Harmonized interface between mouse drivers and callbacks.
The Apple2 doesn't have sprites so the Apple2 mouse callbacks place a special character on the text screen to indicate the mouse position. In order to support the necessary character removing and redrawing the Apple2 mouse driver called the Apple2 mouse callbacks in an "unusual way". So far so (sort of) good.

However the upcoming Atari mouse driver aims to support both "sprite-type" mouse callbacks as well as "text-char-type" mouse callbacks. Therefore the interface between mouse drivers and callbacks needs to be extended to allow the mouse callbacks to hide their different types from the mouse driver.

The nature of this change can be seen best by looking at the Apple2 file modifications. The CBM drivers and callbacks (at least the current ones) don't benefit from this change.
2014-01-15 22:47:59 +01:00
Christian Groessler
86fe20fb14 fix some typos 2014-01-14 14:03:06 +01:00
Christian Groessler
f4b86394b0 fix typo 2014-01-04 20:33:24 +01:00
Greg King
d56f5d65ab Added a simplistic read() that gives a stdin console on the Atmos. 2013-12-24 05:18:04 -05:00
Christian Groessler
9124d0f051 add SER_BAUD_56_875 2013-12-06 20:53:49 +01:00
Christian Groessler
367ab2d531 add SER_ERR_NOT_OPEN status code 2013-12-06 20:53:49 +01:00
kym
11be575b6d Initial Creativision Import 2013-12-05 11:40:44 +00:00
Christian Groessler
7fb0cf4bb2 Some formatting and style fixes. 2013-10-01 11:36:37 +02:00
Christian Groessler
ac9f0d6a05 Merge remote-tracking branch 'upstream/master' 2013-09-10 13:36:28 +02:00
Greg King
e0c8c7dcb1 Added a cbm510 lightpen driver.
It's similar to the current c64 and c128 lightpen drivers.
2013-09-09 17:03:40 -04:00
Christian Groessler
1e8e998991 Merge remote-tracking branch 'upstream/master' 2013-09-04 13:28:10 +02:00
Oliver Schmidt
3969d920fa Bumped driver api versions due to recent intoduction of library references. 2013-09-01 09:46:07 +02:00
Christian Groessler
20c9fe44b4 Merge remote-tracking branch 'upstream/master' 2013-08-27 10:22:41 +02:00
Oliver Schmidt
bc992e0398 Merge pull request #31 from greg-king5/cbm-chain
Commodore exec() function
2013-08-26 23:50:34 -07:00
Greg King
67571d4f5f Changed some CPU memory-mapped register definitions from expression mode into label mode. 2013-08-26 22:02:00 -04:00
Christian Groessler
13a7812cf5 add some more SIO information 2013-08-26 12:18:11 +02:00
Christian Groessler
4062cb6b6c atarixl target: add support for interruptors, adapt TGI drivers 2013-08-25 11:20:27 +02:00
Greg King
d0fb1fe0ae Added the model-specific addresses that the CBM exec() needs. 2013-08-25 00:43:23 -04:00
Christian Groessler
b1f69e0696 add some more SIO information 2013-08-22 13:08:48 +02:00
Christian Groessler
7242ce8744 Merge remote-tracking branch 'upstream/master' 2013-08-06 19:48:07 +02:00
Greg King
bf160cae69 Added symbol names for useful Atmos addresses. 2013-08-06 10:13:48 -04:00
Christian Groessler
7a45a7b2eb Merge remote-tracking branch 'upstream/master' 2013-07-29 10:09:24 +02:00
Oliver Schmidt
1f36066946 Merge pull request #24 from greg-king5/oric
Atmos Symbol Names
2013-07-26 03:01:10 -07:00
Greg King
f02843f05d Replaced number literals in source code with meaningful symbol names. 2013-07-26 03:33:54 -04:00
Christian Groessler
b78bbb5be7 Merge remote-tracking branch 'upstream/master' 2013-07-25 23:34:50 +02:00
Oliver Schmidt
752141b026 Merge pull request #12 from greg-king5/lightpen
Added Inkwell lightpen drivers for the C64 and the C128.
2013-07-25 13:29:46 -07:00
Greg King
3574f3a742 Normalized some hexadecimal addresses. 2013-07-16 01:48:57 -04:00
Greg King
641a609cf3 Moved common symbol names out of sources, and into a global include file. 2013-07-16 00:30:56 -04:00
Christian Groessler
e0aaac0088 fix '_sysrmdir' for SpartaDOS 2013-07-16 01:31:15 +02:00
Christian Groessler
a3ad7d07a1 fix '_sysrmdir' for SpartaDOS 2013-07-16 01:29:49 +02:00
Greg King
a555b5f6a5 Merge branch 'master' into lightpen 2013-07-01 09:25:02 -04:00
Christian Groessler
c79b23e95b Merge remote-tracking branch 'upstream/master' 2013-06-17 23:54:49 +02:00
Oliver Schmidt
83280e1ee2 Have __APPLE2ENH__ imply __APPLE2__ and __ATARIXL__ imply __ATARI__. 2013-06-17 21:34:08 +02:00
Christian Groessler
0bf24103a6 Merge remote-tracking branch 'upstream/master'
Conflicts:
	asminc/atari.inc
2013-06-10 13:44:52 +02:00
Christian Groessler
a14d4c803d remove TABs 2013-06-10 13:26:56 +02:00
Christian Groessler
56e330a4d7 Use symbolic names for all CIO commands. 2013-06-10 12:45:51 +02:00
Christian Groessler
b03913370c Use symbolic names for all CIO commands. 2013-06-08 00:35:07 +02:00
Christian Groessler
2823bc1e66 Merge remote-tracking branch 'upstream/master' 2013-06-04 10:54:34 +02:00
Greg King
66ca781bb1 Added library reference address to lightpen driver header. 2013-06-03 06:09:22 -04:00
Oliver Schmidt
b0dd6c614f Added library reference tgi_libref to TGI interface. 2013-06-01 12:42:00 +02:00
Oliver Schmidt
ae409e4978 Added library reference ser_libref to SER interface. 2013-06-01 11:03:14 +02:00
Oliver Schmidt
744abda24f Added library reference mouse_libref to MOU interface. 2013-06-01 00:53:17 +02:00
Oliver Schmidt
23650cb946 Added library reference joy_libref to JOY interface. 2013-06-01 00:36:08 +02:00
Oliver Schmidt
619b215260 Added library reference em_libref to EMD interface.
Occasionally dynamically drivers suffer from not being to refer to
content in the C library. Therefore I added a mechanism to allow
a C library for a certian target to define a symbol that will be
handed over to dynamic drivers for that target. Then the drivers
can use their refernce to that symbol to access content in the C
library.
2013-06-01 00:11:31 +02:00
Christian Groessler
c1468f11b2 rename CIOV and SIOV to CIOV_org and SIOV_org for atarixl target 2013-05-31 01:37:40 +02:00
Greg King
051c21726b Added Inkwell lightpen drivers for the C64 and the C128.
They use the mouse driver programming interface.

Added a test program for lightpen drivers.  Now, it knows about only those two drivers; it will need updating when others are added.
2013-05-29 20:02:29 -04:00
Oliver Schmidt
98c47d1877 Introduced target 'atarixl'.
The target 'atarixl' is to be used for Atari XL (and better) machines.
It will disable the OS ROM and enable the Shadow RAM available on
those machine.

Note: This commit is only the inital step towards for this goal that just
replicates the target 'atari' as a starting point!
2013-05-28 21:56:37 +02:00
Oliver Schmidt
85885001b1 Removed (pretty inconsistently used) tab chars from source code base. 2013-05-09 13:57:12 +02:00
Greg King
7d1d929391 Added two useful opcode mnemonic aliases.
bnz - jump if not zero.
bze - jump if zero.
2013-05-08 00:03:44 -04:00
Greg King
662aef4efa Made CBM scrcode assembly-macro properly handle all 256 codes.
And, made it smaller.
2013-04-25 14:28:01 -04:00
Oliver Schmidt
54299fae5a Replaced builtin macro packages with .mac files that are included like ordinary .inc files.
The benefits are:
- Independency of ca65 build from perl
- More transparent behaviour
2013-04-08 00:11:05 +02:00
uz
bf91be8790 Small fixes by Christian Krüger.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5960 b7a2c559-68d2-44c3-8de9-860c34a00d81
2013-01-07 20:25:45 +00:00
karri
b939a22f68 Define timer 7 for sound
git-svn-id: svn://svn.cc65.org/cc65/trunk@5945 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-12-11 05:56:59 +00:00
uz
673b982b22 Change imports from "import" to "global", so the file can be used from
zeropage.s


git-svn-id: svn://svn.cc65.org/cc65/trunk@5908 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-11-04 13:54:06 +00:00
uz
c07f1ccde6 Add some more definitions for the zero page variables used by the compiler.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5907 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-11-04 13:52:41 +00:00
ol.sc
50a884d530 Removed reference to old rs232 framework.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5896 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-11-01 20:43:28 +00:00
ol.sc
72f456536f Turned the 'ST' status byte into a symbol resolved by the linker in order to allow to use it from code living in the 'cbm' directory.
Moved getdevice.s from 'c64'/'c128' to 'cbm' making use of the new 'ST' setup.

git-svn-id: svn://svn.cc65.org/cc65/trunk@5837 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-10-02 16:41:40 +00:00
ol.sc
58c8db7c75 Have _em_load_driver exported here now that it is an asm function.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5799 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-07-31 21:37:07 +00:00
uz
dcff1d0774 An already loaded driver is an error in ser_load_driver, because the library
cannot know if it was dynamically loaded or statically linked.


git-svn-id: svn://svn.cc65.org/cc65/trunk@5794 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-07-22 19:54:04 +00:00
uz
e7ed3b374f Rewrote em_load_driver in assembler fixing a possible memory leak.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5793 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-07-22 11:36:09 +00:00
uz
975a06c2ee Rewrote tgi_load_driver in assembler and fixed a possible memory leak when
doing so. Changed the behaviour in case a driver is already loaded: Since the
library cannot know if this driver was linked statically or loaded
dynamically, an already installed driver is considered an error. It must be
removed before calling tgi_load_driver.


git-svn-id: svn://svn.cc65.org/cc65/trunk@5790 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-07-22 11:07:46 +00:00
uz
b7325f7abe According to Greg King, Vorpal files are regular files.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5755 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-07-01 18:10:57 +00:00
uz
7aefd9b4e7 Added classification macros for file types from struct dirent.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5736 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-06-24 14:23:33 +00:00
uz
5bc67cdaee Move definitions for CBM file types into its own header file, since these
definitions are needed for file type macros in dirent.h. Unify names for the
include files.


git-svn-id: svn://svn.cc65.org/cc65/trunk@5735 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-06-24 13:52:06 +00:00
uz
ebca2991a3 Moved most of the file type detection from cbm_dir.c into a new function
called _cbm_filetype().
Added an assembler include file with the file type definitions from cbm.h.
Added a first implementation of readdir() for the CBMs.


git-svn-id: svn://svn.cc65.org/cc65/trunk@5669 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-06-02 22:56:14 +00:00
uz
a0d3f0c180 Renamed smc.mac to smc.inc.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5537 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-02-21 20:05:36 +00:00
uz
0d4b9c59f3 Added a macro package for writing self modyfying code. By Christian Krüger.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5536 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-02-21 20:02:20 +00:00
cpg
ae39e1c0af recognize XDOS -- patch from Stefan Haubenthal
git-svn-id: svn://svn.cc65.org/cc65/trunk@5524 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-02-11 08:35:54 +00:00
uz
edca940a86 Declaration of tgi_settextdir() added.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5101 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-07-31 22:17:21 +00:00
uz
9c55586569 Renamed tgi_textheight -> tgi_gettextheight, tgi_textwidth -> tgi_gettextwidth
tgi_textstyle -> tgi_settextstyle and tgi_textscale -> tgi_settextscale.


git-svn-id: svn://svn.cc65.org/cc65/trunk@5090 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-07-17 18:36:12 +00:00
uz
928f675e4b Small change in the vector font format.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5088 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-07-17 17:15:54 +00:00
uz
4026a28c60 Added a new flags byte to the TGI headers. Bumped the API version.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5083 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-07-17 11:23:27 +00:00
uz
f40c977623 Added (again) IRQ support for the Oric Atmos by Stefan Haubenthal. This time
with the correct patch for atmos.inc.


git-svn-id: svn://svn.cc65.org/cc65/trunk@5039 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-06-07 21:22:02 +00:00
uz
bc9e55cbab _tgi_getaspectratio was declared global twice, while tgi_setaspectratio was
missing (Greg King).


git-svn-id: svn://svn.cc65.org/cc65/trunk@5018 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-05-02 19:18:38 +00:00
ol.sc
4aa00e84e1 Removed tgi_load() and all corresponding infrastructure. The idea behind tgi_load() was to be able to describe a TGI mode in a target-neutral way by resolution and colordepth. However it turned out that there arn't any cc65 targets sharing any resolution. As a result the only working target-independent approach for a TGI program is to call tgi_loaddriver(tgi_stddrv); and then look up the resolution provided - and to adapt to that resolution.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5016 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-05-02 10:38:48 +00:00
uz
a507605a89 New TGI routines tgi_getaspectratio/tgi_setaspectratio.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5009 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-05-01 18:40:38 +00:00
ol.sc
a27eee5718 Minimal source reformatting.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4998 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-04-28 13:05:12 +00:00
ol.sc
f9b25bad48 Added TGI mode tables for Atmos and Lynx
git-svn-id: svn://svn.cc65.org/cc65/trunk@4997 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-04-25 19:05:43 +00:00
ol.sc
5e37ed1a16 Target-specific black & white values for use by the target-shared TGI kernel
git-svn-id: svn://svn.cc65.org/cc65/trunk@4993 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-04-25 17:11:23 +00:00
cpg
bfb8dd8f95 add Antic opcodes (submitted by Christian Krueger)
git-svn-id: svn://svn.cc65.org/cc65/trunk@4968 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-02-06 20:57:14 +00:00
uz
ce886f4c5e Removed the header files for the rs232 API since it has been replaced by
loadable serial drivers and serial.h a long time ago.


git-svn-id: svn://svn.cc65.org/cc65/trunk@4744 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-07-11 16:43:31 +00:00