1
0
mirror of https://github.com/cc65/cc65.git synced 2024-12-25 17:29:50 +00:00
Commit Graph

49 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
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
5ed1fac0d6 Use unique variables for cc65 toolchain.
Originally I used the usual variables (like $(CC) and $(CFLAGS) ) but after
all this doesn't make sense as any predefined values and/or user defined
settings can only be wrong.
2013-06-04 23:39:00 +02:00
Oliver Schmidt
b0dd6c614f Added library reference tgi_libref to TGI interface. 2013-06-01 12:42:00 +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
Oliver Schmidt
85885001b1 Removed (pretty inconsistently used) tab chars from source code base. 2013-05-09 13:57:12 +02:00
Oliver Schmidt
88648ce717 Avoid usage of cl65 for library build as it requires 'install'. 2013-05-04 23:38:05 +02:00
Oliver Schmidt
008b4c4e1d Replaced whole bunch for Makefiles with a single generic Makefile.
- No complex shell logic.
- "Source file shadowing" for all targets via vpath.
- Dependency handling.
- True incremental build.
- Don't write into source directories.
- Easy cleanup by just removing 'wrk'.
2013-05-04 22:10:48 +02:00
ol.sc
9930379665 Added (naive) implementation of dio_query_sectcount() and dio_query_sectsize() for GEOS 64/128.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5873 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-10-23 19:29:40 +00:00
ol.sc
6e829979d4 Normalized coding style.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5869 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-10-23 19:22:05 +00:00
ol.sc
61d4b6b03f Removed DIO specific typedefs which were just aliases to basic types and replaced the term 'drive' with 'device' in order to harmonize with the recently added device.h.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5847 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-10-11 18:22:49 +00:00
uz
a564450415 Fixed a bug. High byte of the sector number is stored into the wrong place.
Reported by Stefan Haubenthal.
           


git-svn-id: svn://svn.cc65.org/cc65/trunk@5579 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-03-08 18:59:41 +00:00
ol.sc
fb7d8a7c37 My recent decision to reuse the character specification table from the base target was based on the fact that CBM GEOS used a copy of the CBM character specification table for the last ten years.
However now I understand that CBM GEOS does _not_ use PETSCII so the CBM character specification table doesn't make sense at all. After all this is very plausible because GEOS wants to enable the user to share his files across GEOS variants - so we can share the character specification table too.

git-svn-id: svn://svn.cc65.org/cc65/trunk@5527 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-02-17 20:23:35 +00:00
ol.sc
51508843f9 Reuse the character specification table from the base target.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5518 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-02-09 16:41:35 +00:00
ol.sc
764f07e56b Reuse the character specification table from the base target.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5517 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-02-09 16:40:18 +00:00
ol.sc
52f198b6c4 Normalized coding style.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5513 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-02-09 10:17:41 +00:00
ol.sc
6411cc66c1 Defining C constants here doesn't seem to make sense as they are defined already in individual assembler files based on official jumptable entries.
As the disk driver jumptable entries don't seem to be published otherwise I didn't delete the definitions but moved the '_' to the end marking them as "secondary" to the ones in the main jumptable.

git-svn-id: svn://svn.cc65.org/cc65/trunk@5506 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-02-09 07:57:49 +00:00
ol.sc
2a0fd9bda0 Renamed 'UnBlockProcess' to 'UnblockProcess' and 'UnFreezeProcess' to 'UnfreezeProcess' to matchall 3rd party docs.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5504 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-02-09 07:37:08 +00:00
ol.sc
129d3bf872 - The address given for GetSerialNumber in the "Hitchhiker's Guide To GEOS" is obviously wrong: $4b38.
- According to the "Hitchhiker's Guide To GEOS" GetSerialNumber returns a string on Apple GEOS (in contrast to a number on CBM GEOS).
Given both facts and that the API is presumably not important at all it seems reasonable to just go without it on Apple GEOS.

git-svn-id: svn://svn.cc65.org/cc65/trunk@5503 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-02-08 19:48:31 +00:00
ol.sc
7a076cf145 Normalized coding style.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5502 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-02-08 17:21:18 +00:00
ol.sc
75dc65c217 Prepared infrastructure for a shared loadable generic mouse driver based the GEOS API.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5496 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-02-08 14:30:07 +00:00
ol.sc
baa6c53dec Normalized coding style.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5494 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-02-07 22:37:13 +00:00
ol.sc
286d5979a2 Adjusted sorting.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5493 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-02-07 22:36:17 +00:00
ol.sc
ea993a5e31 Moved the assembler include files from 'geos-cbm' to 'geos-common' which are believed to work as-is on Apple GEOS too.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5492 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-02-07 20:11:36 +00:00
ol.sc
ee8c9944f1 Renamed 'devel' to 'drivers'.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5490 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-02-07 17:02:34 +00:00
ol.sc
4494a930e3 Moved non-driver files from 'geos-cbm/devel' to 'geos-common/system' which are believed to work as-is on Apple GEOS too.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5488 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-02-07 16:42:59 +00:00
ol.sc
6542cd2ced "Apple disk names are null-terminated strings of 16 characters or less (counting the null-terminator)."
git-svn-id: svn://svn.cc65.org/cc65/trunk@5487 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-02-07 16:14:23 +00:00
ol.sc
b944a6acdf Moved the 'conio' files from 'geos-cbm' to 'geos-common' which are believed to work as-is on Apple GEOS too.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5486 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-02-07 13:53:14 +00:00
ol.sc
829609133c Added adjustment for Apple GEOS screen size.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5485 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-02-07 13:42:27 +00:00
ol.sc
5f4129f14d Moved the 'common' files from 'geos-cbm' to 'geos-common' which are believed to work as-is on Apple GEOS too.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5449 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-02-04 22:17:46 +00:00
ol.sc
10374c66ce Moved the 'disk' files from 'geos-cbm' to 'geos-common' which are believed to work as-is on Apple GEOS too.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5447 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-02-04 21:46:26 +00:00
ol.sc
e6d886750b Moved the 'system' files from 'geos-cbm' to 'geos-common' which are believed to work as-is on Apple GEOS too.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5446 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-02-04 20:58:15 +00:00
ol.sc
6cdef72fb3 Moved the 'runtime' files from 'geos-cbm' to 'geos-common' which are believed to work as-is on Apple GEOS too.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5445 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-02-04 19:55:02 +00:00
ol.sc
4c16163c7c Moved the 'process' files from 'geos-cbm' to 'geos-common' which are believed to work as-is on Apple GEOS too.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5444 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-02-04 17:56:46 +00:00
ol.sc
a525fdafb0 Moved the 'mousesprite' files from 'geos-cbm' to 'geos-common' which are believed to work as-is on Apple GEOS too.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5443 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-02-04 17:51:17 +00:00
ol.sc
a589fdca80 Added adjustment for Apple GEOS screen size.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5442 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-02-04 17:39:36 +00:00
ol.sc
6192140c83 Moved the 'menuicon' files from 'geos-cbm' to 'geos-common' which are believed to work as-is on Apple GEOS too.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5441 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-02-04 17:23:22 +00:00
ol.sc
d0c9ba3c76 Moved the 'graph' files from 'geos-cbm' to 'geos-common' which are believed to work as-is on Apple GEOS too.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5440 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-02-04 17:17:55 +00:00
ol.sc
0828464f26 Moved the 'graph' files from 'geos-cbm' to 'geos-common' which are believed to work as-is on Apple GEOS too.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5439 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-02-04 17:17:32 +00:00
ol.sc
abc9eba009 Moved the 'memory' files from 'geos-cbm' to 'geos-common' which are believed to work as-is on Apple GEOS too. The REU stuff isn't available on Apple GEOS.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5438 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-02-04 14:53:09 +00:00
ol.sc
2f10491672 Moved the 'file' files from 'geos-cbm' to 'geos-common' which are believed to work as-is on Apple GEOS too. 'FollowChain' isn't available on Apple GEOS.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5437 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-02-04 14:08:37 +00:00
ol.sc
2bf9cd2ee1 Moved the first couple of files from 'geos-cbm' to 'geos-common' which are believed to work as-is on Apple GEOS too.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5435 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-02-04 13:47:31 +00:00
ol.sc
bff8525ba9 Moved assembler include files from the 'inc' subfolder to the target "main" folder - as it is the case with the other targets.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5433 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-01-31 21:22:06 +00:00
ol.sc
157fbddc68 Avoid paths in .include directives. The path needs to be rather set in the Makefile to allow to set it later depending on the target currently built.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5432 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-01-31 21:15:28 +00:00
ol.sc
b89b9b7049 Avoid paths in .include directives. The path needs to be rather set in the Makefile to allow to set it later depending on the target currently built.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5431 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-01-31 20:49:58 +00:00
ol.sc
0c69d4866c The cc65 library build system is designed to call sub-makes in direct sub-directories of 'libsrc' only (meaning that sub-sub-directories are not supported). The GEOSLib source files however are organized in sub-directories of the 'libsrc/geos-cbm'. This mismatch was up to now handled by replicating the cc65 library build system functionality to allow for individal sub-makes in each 'libsrc/geos-cbm' sub-directory. This is unnecessarily hard understand and causes additional maintainance effort.
Now the whole GEOSLib is built in a single make instance running in 'libsrc/geos-cbm' - which is just what the cc65 library build system can handle. The 'libsrc/geos-cbm' sub-directories still contain Makefiles. However those files only define the set of object files to create from their sub-directory and get included into the 'libsrc/geos-cbm' Makefile.

git-svn-id: svn://svn.cc65.org/cc65/trunk@5429 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-01-30 21:19:09 +00:00
ol.sc
fb3c3f6a68 Replace some more instance of geos.lib with geos-cbm.lib.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5390 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-01-05 16:36:27 +00:00
uz
e6d74e7205 Renamed the old geos target to geos-cbm.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5343 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-12-28 17:11:21 +00:00