Oliver Schmidt [Thu, 1 Feb 2018 21:38:36 +0000 (22:38 +0100)]
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.
Oliver Schmidt [Wed, 31 Jan 2018 14:06:37 +0000 (15:06 +0100)]
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.
Oliver Schmidt [Wed, 31 Jan 2018 13:53:31 +0000 (14:53 +0100)]
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.
Oliver Schmidt [Mon, 29 Jan 2018 16:46:36 +0000 (17:46 +0100)]
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.
Greg King [Mon, 8 Jan 2018 17:47:00 +0000 (12:47 -0500)]
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.
Greg King [Thu, 30 Nov 2017 16:38:12 +0000 (11:38 -0500)]
Fixed a Table-Of-Contents bug in the TGI document.
The <toc> tag can't be put inside of a section. It isn't needed, anyway; we can get a TOC by putting the header as a section, and the functions as subsections.
Oliver Schmidt [Tue, 21 Nov 2017 21:42:43 +0000 (22:42 +0100)]
Bumped API version.
Removal of the joy_masks array with https://github.com/cc65/cc65/commit/7f52a770d9c6a43dde67689032bb3a4848eb6b30 was exactly the very type of change asking for a new API version.