1
0
mirror of https://github.com/cc65/cc65.git synced 2024-11-08 13:04:52 +00:00
Commit Graph

26 Commits

Author SHA1 Message Date
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
13482984ca Introduced internal gotoxy that pops both parameters.
About all CONIO functions offering a <...>xy variant call
  popa
  _gotoxy

By providing an internal gotoxy variant that starts with a popa all those CONIO function can be shortened by 3 bytes. As soon as program calls more than one CONIO function this means an overall code size reduction.
2016-06-05 14:58:38 +02:00
Oliver Schmidt
f103617512 Use .macpack to include macro package. 2016-03-27 18:29:45 +02:00
Oliver Schmidt
69fbcb30fd Use AX paradigm for stack initalization. 2016-03-07 01:44:19 +01:00
Oliver Schmidt
419eb700b5 Renamed INITBSS to INIT and INIT to ONCE.
The way we want to use the INITBSS segment - and especially the fact that it won't have the type bss on all ROM based targets - means that the name INITBSS is misleading. After all INIT is the best name from my perspective as it serves several purposes and therefore needs a rather generic name.

Unfortunately this means that the current INIT segment needs to be renamed too. Looking for a short (ideally 4 letter) name I came up with ONCE as it contains all code (and data) accessed only once during initialization.
2016-03-06 21:27:19 +01:00
Oliver Schmidt
326da85145 Consistently place constructors (and their exclusive subroutines) in "INIT". 2015-10-09 21:44:20 +02:00
Greg King
c7969a78b0 Refined the comments in the target start-up files.
Fixed typo errors.  Made the comments consistent across all those files.
2014-08-24 10:10:20 -04:00
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
Christian Groessler
fa7cdf0214 remove atari5200.mac 2014-05-30 13:38:29 +02:00
Christian Groessler
f54ef4efe4 provide CLK_TCK and CLOCKS_PER_SEC values for atari5200 2014-05-29 13:23:45 +02:00
Christian Groessler
4286e55453 fix build error 2014-05-29 01:50:41 +02:00
Christian Groessler
245a69a043 don't use scrcode for numbers 2014-05-29 00:18:22 +02:00
Christian Groessler
0bcb615d33 remove TABs 2014-05-28 23:39:31 +02:00
Christian Groessler
8c5aebef81 cleanups and add comments 2014-05-28 23:38:22 +02:00
Christian Groessler
98195a516e check trigger button (TRIGx); correctly report joystick count depending
on 5200 console version
2014-05-28 00:35:49 +02:00
Christian Groessler
b6f712ef58 not a dummy implementation anymore... 2014-05-27 01:47:37 +02:00
Christian Groessler
0f2f19ef5b some CONIO fixes 2014-05-16 02:10:19 +02:00
Christian Groessler
8cb68071cd clrscr for Atari 5200 default conio screen 2014-05-12 03:05:21 +02:00
Christian Groessler
82544b8678 add joystick driver -- trigger buttons are not queried yet 2014-05-12 03:03:44 +02:00
Christian Groessler
1532ad6792 add dummy irq.s 2014-05-12 03:02:17 +02:00
Christian Groessler
92b32d7d0e atari5200 update: simple conio "hello world" works now 2014-04-25 03:02:44 +02:00
Christian Groessler
30b418c734 add gotox, gotoy, and gotoxy 2014-03-13 02:38:35 +01: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
889783bedb add some conio functions 2014-03-11 01:17:59 +01:00
Christian Groessler
361da29e51 add get_tv() 2014-03-04 16:02:24 +01:00
Christian Groessler
c8f7f2f161 first changes for atari5200 target 2014-03-01 17:20:09 +01:00