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

7544 Commits

Author SHA1 Message Date
Greg King
e9cbd42b18 Normalized the definitions of structs in <supervision.h>.
The change matches the way that I/O register structures are defined in other headers.  The names are defined as "struct", instead of as "pointer to struct".
2018-02-06 08:52:36 -05:00
Christian Groessler
ae4e9fab8c Atari: CONSOL port of GTIA is readable and writable.
Adjust include/_gtia.h accordingly.
2018-02-02 18:28:52 +01:00
Oliver Schmidt
dacee3b9ed Removed IRQ support from TGI drivers.
All but one TGI drivers didn't use IRQs. Especially when the TGI driver kernel was the only .interruptor this meant quite some unnecessary overhead because it pulled in the whole IRQ infrastructure.

The one driver using IRQs (the graphics driver for the 160x102x16 mode on the Lynx) now uses a library reference to set up a JMP to its IRQ handler.
2018-02-02 18:15:45 +01:00
Oliver Schmidt
7521ae888a Marked Apple II EXEHDR segment as optional.
The docs say "Use -D __EXEHDR__=0 to omit the header." so it should work without generating a linker warning.
2018-02-02 14:46:57 +01:00
Oliver Schmidt
d7afadb2fe Factored out target specific inclusion of target header.
So far conio.h included the target header to get the CH_... and COLOR_... macros. However tgi.h never did the same to get the TGI_COLOR_... macros. And some time ago the JOY_..._MASK macros moved from joystick.h into the target header yet joystick.h didn't include the target header.

Why wasn't that issue detected so far? Because about every program using TGI and/or the joystick uses CONIO too and therefore includes the target header that way.

However, conceptually it's clean to factor out the target header inclusion and have tgi.h and joystick.h do it like conio.h.

Apart from that user code may make direct use of target.h too.
2018-02-02 12:59:05 +01:00
Oliver Schmidt
2cf1bb89be Removed ACE header.
There's no code in the tool chain to set __ACE__ nor is there an ace.lib C library.
2018-02-02 12:35:40 +01:00
Oliver Schmidt
935f68f686 Harmonized the style of including headers from headers.
We surely don't care about some file I/O on host machines in 2018 ;-)
2018-02-02 12:28:22 +01:00
Oliver Schmidt
f15cd3e468 Removed IRQ support from joystick drivers. 2018-02-02 12:02:52 +01:00
Oliver Schmidt
1976d6cd32 Removed IRQ support from joystick drivers.
All but one joystick drivers didn't use IRQs. Espsecially when the joystick driver kernel was the only .interruptor this meant quite some unnecessary overhead because it pulled in the whole IRQ infrastructure.

I was told that the one driver using IRQs (the DXS/HIT-4 Player joystick driver for the C64) can be reworked to not do it. Until this is done that driver is defunct.
2018-02-01 22:38:36 +01:00
Oliver Schmidt
27dacca4d3 Added missing dummy libref. 2018-02-01 22:06:59 +01:00
Oliver Schmidt
9031320dff Added Makefile for recently added linker config test program. 2018-02-01 21:50:54 +01:00
Oliver Schmidt
5145235b97 Updated AppleCommander URL. 2018-02-01 21:46:56 +01:00
Oliver Schmidt
ef5461a32c Mention the recently added linker configs. 2018-02-01 00:18:07 +01:00
Oliver Schmidt
58bfe28244 Updated AppleCommander URL. 2018-01-31 23:52:08 +01:00
Stefan
fb03b1105c
Merge pull request #5 from cc65/master
Update
2018-01-31 20:40:49 +01:00
Oliver Schmidt
19ed94fe25 Adjust alternative ProDOS 8 I/O buffer allocation module to linker configs.
The Apple II linker configs don't define symbols for the STARTP segment anymore. There refer to the load/start address in the same way the executable file header does.
2018-01-31 15:06:37 +01:00
Oliver Schmidt
38049d22ba Provide symbole for RAM memory area.
The RAM memory area symbols are referred by the startup code. The 64k and 128k variant say "for assembler" so it may be not necessary to do that there. However given the "limited" state of documentation for the target I don't assign too much value to those statements.

Additionally it's unclear to me why two variants provide symbols for the ROM memory.
2018-01-31 14:53:31 +01:00
Oliver Schmidt
80b09ba9fc Significantly simplified recently added linker config files.
I just forgot about the 'start' segment attribute - which makes the scenario at hand dead easy.
2018-01-31 08:54:48 +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
374c7e815c
Merge pull request #577 from polluks/master
Moved initcgetc to initcputc
2018-01-25 12:35:21 +00:00
Stefan
caa40866c3 Moved initcgetc to initcputc 2018-01-23 13:02:47 +01:00
Oliver Schmidt
5cc1426346
Merge pull request #575 from groessler/something_to_pull
atari5200: put default display list into its own memory area
2018-01-22 15:03:58 +00:00
Christian Groessler
356c73f2cf atari5200.cfg: fix formatting 2018-01-21 15:42:12 +01:00
Christian Groessler
643152fb38 Fix last change, put display list at beginning of ROM. 2018-01-21 15:40:22 +01:00
Christian Groessler
2ef6514e47 atari5200: put default display list into its own memory area
This avoids 1K boundary crossing of the display list. Fix for issue #560.
2018-01-19 15:18:43 +01:00
Oliver Schmidt
811424cc1b
Added recently published ProDOS version. 2018-01-18 12:37:21 +01:00
Oliver Schmidt
ed3546d8b2
Merge pull request #574 from prandeamus/paravirt-fix
Call ParaVirtHooks on JMP (indirect)
2018-01-15 08:37:32 +00:00
prandeamus
1a95be9c3a 65C02 JMP (ind,x) opcode 7C 2018-01-14 19:42:29 +00:00
prandeamus
009f56afb6 65C02 version too. 2018-01-13 22:42:39 +00:00
prandeamus
c23f264fe4 Call ParaVirtHooks on JMP (indirect) 2018-01-13 18:30:53 +00:00
Christian Groessler
f0708db792 crt0.s ("none" target): fix initialization of sp variable. 2018-01-11 13:15:19 +01:00
Oliver Schmidt
9229bb1f3e
Merge pull request #571 from greg-king5/win64
Change the type of a cc65 variable that holds both integers and pointers.
2018-01-10 12:48:28 +00:00
Oliver Schmidt
5a39dfd56c
Merge pull request #570 from prandeamus/compiler-optimizer-check
Complain if unsupported flags are provided after -O
2018-01-10 12:21:09 +00:00
Greg King
c67e90dd19 Changed the type of a compiler variable that holds either integers or pointers.
The change allows cc65 to be compiled on 64-bit Windows, without getting warnings.  That OS is actually 32 bits with 64-bit pointers.  Its pointers are "long long" instead of "long".  The change uses type-names that are configured for the actual pointer width.
2018-01-09 05:34:16 -05:00
Greg King
da22c90d33 Shrank Telestrat initcwd.s by 3 bytes.
Changing when a loop test is done allowed the removal of an extra STA instruction.
2018-01-09 04:48:39 -05:00
prandeamus
e7aabce8e9 Complain if unsupported flags are provided after -O 2018-01-07 18:57:48 +00:00
Oliver Schmidt
1ea5889a87
Merge pull request #564 from bauen1/none-library
Add none.lib
2018-01-05 11:05:30 +00:00
bauen1
94077404f9
Added ctype.s to none.lib as suggested by oliverschmidt 2018-01-05 10:39:23 +01:00
bauen1
aa34aed7dd
Fixed unused import and export of none.cfg and none/crt0.s 2018-01-04 22:27:39 +01:00
bauen1
45482b4fb1
Fixed none/crt0.s to respect none.cfg 2018-01-04 22:14:01 +01:00
bauen1
cea8332084
Fixed none.cfg 2018-01-04 22:01:44 +01:00
bauen1
ef993f2fcf
none.cfg consistency changes 2018-01-04 21:29:58 +01:00
bauen1
60c68b1111
cl65 now links against none.lib when using --target none 2018-01-04 17:11:44 +01:00
bauen1
4759d3956e
Removed initialization of the stack from none.lib 2018-01-04 13:54:00 +01:00
bauen1
884dfcf3c1
Fixed none.lib missing symbols 2018-01-04 12:22:42 +01:00
bauen1
98b2b2544d
Added crt0 to none.lib 2018-01-04 12:07:35 +01:00
bauen1
14909f12fe
Implemented the requested changes.
Moved none to its alphabetic place in the Makefile
Reverted all changes to doc/customizing.sgml
2018-01-04 11:17:20 +01:00
bauen1
72bb32fcda
Revert "Renamed none.lib to no-platform.lib"
This reverts commit 26350714ee.

It breaks the build
2018-01-02 15:32:27 +01:00
bauen1
26350714ee
Renamed none.lib to no-platform.lib 2018-01-02 15:15:27 +01:00
Oliver Schmidt
040134e775
Fixed typo. 2018-01-02 13:48:30 +01:00