]> git.sur5r.net Git - cc65/log
cc65
6 years agoAdded vic20 - ram emd.
Marco van den Heuvel [Fri, 16 Mar 2018 21:23:52 +0000 (14:23 -0700)]
Added vic20 - ram emd.

6 years agoMerge branch 'master' of https://github.com/blackystardust/cc65
Marco van den Heuvel [Fri, 16 Mar 2018 19:33:49 +0000 (12:33 -0700)]
Merge branch 'master' of https://github.com/blackystardust/cc65

6 years agoMerge remote-tracking branch 'upstream/master'
Marco van den Heuvel [Fri, 16 Mar 2018 19:33:01 +0000 (12:33 -0700)]
Merge remote-tracking branch 'upstream/master'

6 years agoMerge pull request #613 from polluks/patch-4
Oliver Schmidt [Thu, 15 Mar 2018 18:37:44 +0000 (18:37 +0000)]
Merge pull request #613 from polluks/patch-4

Added another console

6 years agoMerge branch 'master' of https://github.com/cc65/cc65
Marco van den Heuvel [Thu, 15 Mar 2018 18:15:40 +0000 (11:15 -0700)]
Merge branch 'master' of https://github.com/cc65/cc65

6 years agoAdded console 613/head
Stefan [Tue, 13 Mar 2018 22:19:19 +0000 (22:19 +0000)]
Added console

6 years agoAdded missing ror absolute override.
Oliver Schmidt [Mon, 12 Mar 2018 11:14:25 +0000 (12:14 +0100)]
Added missing ror absolute override.

Fixes https://github.com/cc65/cc65/issues/489 as suggested by EtchedPixels.

6 years agoMerge pull request #609 from polluks/master
Oliver Schmidt [Sun, 11 Mar 2018 08:58:23 +0000 (08:58 +0000)]
Merge pull request #609 from polluks/master

Added missing PCE conio functions.

6 years agoAdded missing PCE conio functions. 609/head
Stefan [Sat, 10 Mar 2018 23:49:40 +0000 (00:49 +0100)]
Added missing PCE conio functions.

6 years agoMerge pull request #606 from pfusik/ldec
Oliver Schmidt [Sat, 10 Mar 2018 11:28:46 +0000 (11:28 +0000)]
Merge pull request #606 from pfusik/ldec

Optimize deceaxy

6 years agoUndo my previous commit.
Marco van den Heuvel [Fri, 9 Mar 2018 18:46:02 +0000 (10:46 -0800)]
Undo my previous commit.

6 years agoFix coding style. 606/head
Piotr Fusik [Fri, 9 Mar 2018 17:48:24 +0000 (18:48 +0100)]
Fix coding style.

6 years agoImproved tv timing detection for the c64. 608/head
Marco van den Heuvel [Fri, 9 Mar 2018 00:06:33 +0000 (16:06 -0800)]
Improved tv timing detection for the c64.

6 years agoAdd comments.
Piotr Fusik [Thu, 8 Mar 2018 21:10:11 +0000 (22:10 +0100)]
Add comments.

6 years agoMerge pull request #604 from blackystardust/master
Bob Andrews [Thu, 8 Mar 2018 18:19:35 +0000 (19:19 +0100)]
Merge pull request #604 from blackystardust/master

Improved reu size detection.

6 years agoMerge pull request #605 from mrdudz/4playerfix
Oliver Schmidt [Thu, 8 Mar 2018 08:09:24 +0000 (08:09 +0000)]
Merge pull request #605 from mrdudz/4playerfix

4playerfix

6 years agostyle fixes 605/head
mrdudz [Thu, 8 Mar 2018 03:05:10 +0000 (04:05 +0100)]
style fixes

6 years agoSwitched Apple II output format to AppleSingle. V2.17
Oliver Schmidt [Wed, 7 Mar 2018 22:04:33 +0000 (23:04 +0100)]
Switched Apple II output format to AppleSingle.

Although the primary target OS for the Apple II for sure isn't DOS 3.3 but ProDOS 8 the Apple II binary files contained a DOS 3.3 4-byte header. Recently I was made aware of the AppleSingle file format. That format is a much better way to transport Apple II meta data from the cc65 toolchain to the ProDOS 8 file system. Therefore I asked AppleCommander to support the AppleSingle file format. Now that there's an AppleCommander BETA with AppleSingle support it's the right time for this change.

I bumped version to 2.17 because of this from the perspective of Apple II users of course incompatible change.

6 years agoMerge pull request #607 from pfusik/runtime-typos
Oliver Schmidt [Wed, 7 Mar 2018 20:56:02 +0000 (20:56 +0000)]
Merge pull request #607 from pfusik/runtime-typos

Fix comment typos

6 years agoFix comment typos. 607/head
Piotr Fusik [Wed, 7 Mar 2018 20:01:29 +0000 (21:01 +0100)]
Fix comment typos.

6 years agoOptimize deceaxy.
Piotr Fusik [Wed, 7 Mar 2018 19:45:50 +0000 (20:45 +0100)]
Optimize deceaxy.

6 years agoMerge remote-tracking branch 'upstream/master' 604/head
Marco van den Heuvel [Wed, 7 Mar 2018 02:00:57 +0000 (18:00 -0800)]
Merge remote-tracking branch 'upstream/master'

6 years agoUpdated documentation for the reu emd.
Marco van den Heuvel [Wed, 7 Mar 2018 02:00:36 +0000 (18:00 -0800)]
Updated documentation for the reu emd.

6 years agotweak driver to no more use IRQ
mrdudz [Tue, 6 Mar 2018 23:20:42 +0000 (00:20 +0100)]
tweak driver to no more use IRQ

6 years agoalso show pressed key, so we can verify keyboard works with the joystick driver
mrdudz [Tue, 6 Mar 2018 23:19:14 +0000 (00:19 +0100)]
also show pressed key, so we can verify keyboard works with the joystick driver

6 years agoadd comment on linking, tweak a bit for easier debugging
mrdudz [Tue, 6 Mar 2018 22:36:11 +0000 (23:36 +0100)]
add comment on linking, tweak a bit for easier debugging

6 years agoCC65_HOME is gone for quite some time by now.
Oliver Schmidt [Tue, 6 Mar 2018 19:43:08 +0000 (20:43 +0100)]
CC65_HOME is gone for quite some time by now.

6 years agoReplaced reu commands with defined constants.
Marco van den Heuvel [Tue, 6 Mar 2018 01:46:51 +0000 (17:46 -0800)]
Replaced reu commands with defined constants.

6 years agoMerge remote-tracking branch 'upstream/master'
Marco van den Heuvel [Mon, 5 Mar 2018 23:02:14 +0000 (15:02 -0800)]
Merge remote-tracking branch 'upstream/master'

6 years agoImproved reu size detection.
Marco van den Heuvel [Mon, 5 Mar 2018 23:01:55 +0000 (15:01 -0800)]
Improved reu size detection.

6 years agoFixed -W cmdline option handling.
Oliver Schmidt [Mon, 5 Mar 2018 21:31:10 +0000 (22:31 +0100)]
Fixed -W cmdline option handling.

Reverted part of https://github.com/cc65/cc65/commit/3157e4be1ec7f2a5ac61ca45b232cd07c5e30483 as it actually introduced a regression.

It doesn't make sense to check for Arg[3] == '\0' _before_ checking Arg[2] != '\0'. This made the Win32 builds fail to correctly parse e.g. cl65 -W unused-var test.c

6 years agoMade 'wrapped call' code build with VS 2015.
Oliver Schmidt [Mon, 5 Mar 2018 19:44:32 +0000 (20:44 +0100)]
Made 'wrapped call' code build with VS 2015.

6 years agoUpdated from Visual Studio 2013 to Visual Studio 2015.
Oliver Schmidt [Mon, 5 Mar 2018 19:08:17 +0000 (20:08 +0100)]
Updated from Visual Studio 2013 to Visual Studio 2015.

6 years agoMerge pull request #602 from blackystardust/master
Oliver Schmidt [Sat, 3 Mar 2018 17:55:05 +0000 (17:55 +0000)]
Merge pull request #602 from blackystardust/master

 Added 2a03/2a07 and HuC6280 detection.

6 years agoMerge remote-tracking branch 'upstream/master' 602/head
Marco van den Heuvel [Fri, 2 Mar 2018 22:09:22 +0000 (14:09 -0800)]
Merge remote-tracking branch 'upstream/master'

6 years agoFixed hex digits case.
Marco van den Heuvel [Fri, 2 Mar 2018 22:09:02 +0000 (14:09 -0800)]
Fixed hex digits case.

6 years agoJoystick drivers don't depend on interrupts anymore.
Oliver Schmidt [Fri, 2 Mar 2018 21:16:59 +0000 (22:16 +0100)]
Joystick drivers don't depend on interrupts anymore.

6 years agoMerge remote-tracking branch 'upstream/master'
Marco van den Heuvel [Thu, 1 Mar 2018 22:57:55 +0000 (14:57 -0800)]
Merge remote-tracking branch 'upstream/master'

6 years agoAdded 2a03/2a07 and HuC6280 detection.
Marco van den Heuvel [Thu, 1 Mar 2018 22:57:42 +0000 (14:57 -0800)]
Added 2a03/2a07 and HuC6280 detection.

6 years agoMerge pull request #601 from blackystardust/master
Bob Andrews [Thu, 1 Mar 2018 18:07:36 +0000 (19:07 +0100)]
Merge pull request #601 from blackystardust/master

Updated the getcpu() function documentation.

6 years agoMerge remote-tracking branch 'upstream/master' 601/head
Marco van den Heuvel [Thu, 1 Mar 2018 17:32:38 +0000 (09:32 -0800)]
Merge remote-tracking branch 'upstream/master'

6 years agoUpdated getcpu() function documentation.
Marco van den Heuvel [Thu, 1 Mar 2018 16:55:29 +0000 (08:55 -0800)]
Updated getcpu() function documentation.

6 years agoMerge pull request #599 from greg-king5/pce-point-func
Oliver Schmidt [Thu, 1 Mar 2018 16:50:40 +0000 (16:50 +0000)]
Merge pull request #599 from greg-king5/pce-point-func

Fix how the PC-Engine calls functions through pointers.

6 years agoMerge pull request #598 from blackystardust/master
Oliver Schmidt [Thu, 1 Mar 2018 16:47:52 +0000 (16:47 +0000)]
Merge pull request #598 from blackystardust/master

Added proper 65sc02, 65ce02 and 4510 detection.

6 years agoMade two indirect jumps through the zero-page go through page $20 on the PC-Engine. 599/head
Greg King [Wed, 28 Feb 2018 19:59:52 +0000 (14:59 -0500)]
Made two indirect jumps through the zero-page go through page $20 on the PC-Engine.

6 years agoMerge pull request #600 from polluks/patch-3
Oliver Schmidt [Wed, 28 Feb 2018 07:54:36 +0000 (07:54 +0000)]
Merge pull request #600 from polluks/patch-3

Update docu

6 years agoUpdate 600/head
Stefan [Wed, 28 Feb 2018 00:24:28 +0000 (00:24 +0000)]
Update

More conio targets

6 years agoFixed the 65816/65802 detection. 598/head
Marco van den Heuvel [Tue, 27 Feb 2018 19:44:34 +0000 (11:44 -0800)]
Fixed the 65816/65802 detection.

6 years agoRemoved bit opcode, not needed anymore.
Marco van den Heuvel [Tue, 27 Feb 2018 03:30:25 +0000 (19:30 -0800)]
Removed bit opcode, not needed anymore.

6 years agoMerge branch 'master' of https://github.com/blackystardust/cc65
Marco van den Heuvel [Tue, 27 Feb 2018 03:23:35 +0000 (19:23 -0800)]
Merge branch 'master' of https://github.com/blackystardust/cc65

6 years agoAdded proper 65sc02, 65ce02 and 4510 detection.
Marco van den Heuvel [Tue, 27 Feb 2018 03:19:13 +0000 (19:19 -0800)]
Added proper 65sc02, 65ce02 and 4510 detection.

6 years agoAdded proper 65sc02, 65ce02 and 4510 detection.
Marco van den Heuvel [Tue, 27 Feb 2018 03:19:13 +0000 (19:19 -0800)]
Added proper 65sc02, 65ce02 and 4510 detection.

6 years agoShortenned the CBM close() by a byte and a cycle.
Greg King [Mon, 26 Feb 2018 20:07:13 +0000 (15:07 -0500)]
Shortenned the CBM close() by a byte and a cycle.

6 years agoMerge pull request #597 from polluks/patch-3
Oliver Schmidt [Mon, 26 Feb 2018 10:02:11 +0000 (10:02 +0000)]
Merge pull request #597 from polluks/patch-3

Small typo

6 years agoMerge pull request #7 from cc65/master
Stefan [Mon, 26 Feb 2018 00:36:38 +0000 (01:36 +0100)]
Merge pull request #7 from cc65/master

Update

6 years agoSmall typo 597/head
Stefan [Sun, 25 Feb 2018 22:38:58 +0000 (22:38 +0000)]
Small typo

6 years agoMerge pull request #594 from greg-king5/pce-32k-rom
Oliver Schmidt [Sat, 24 Feb 2018 11:00:57 +0000 (11:00 +0000)]
Merge pull request #594 from greg-king5/pce-32k-rom

Change the PC-Engine's config., so that we can make 8K, 16K, and 32K carts.

6 years agoMerge pull request #595 from greg-king5/geo-dio
Oliver Schmidt [Sat, 24 Feb 2018 10:54:26 +0000 (10:54 +0000)]
Merge pull request #595 from greg-king5/geo-dio

Fix sector-number conversions in the CBM GEOS DIO code.

6 years agoMade dio_read(), dio_write(), and dio_write_verify() catch sector number conversion... 595/head
Greg King [Thu, 27 Aug 2015 09:10:01 +0000 (05:10 -0400)]
Made dio_read(), dio_write(), and dio_write_verify() catch sector number conversion errors.

6 years agoFixed bugs in the geos-cbm DIO sector-number converter functions.
Greg King [Thu, 27 Aug 2015 08:02:26 +0000 (04:02 -0400)]
Fixed bugs in the geos-cbm DIO sector-number converter functions.

* The 16-bit comparison code actually didn't compare the high byte.
* This implementation supports only the 1541, 1571, and 1581; but, it didn't exclude the other drive types that GEOS supports.
* Two error code numbers were swapped.
* A 1571 converter didn't catch sector numbers that are too high.
* A 1581 converter didn't catch sector numbers that are too high.

6 years agoFixed bugs in geos-cbm's dio_open().
Greg King [Mon, 24 Aug 2015 06:53:47 +0000 (02:53 -0400)]
Fixed bugs in geos-cbm's dio_open().

* Trying to open an unused drive would leave a byte on the hardware stack.

* Too high device numbers weren't caught.

6 years agoChanged the PC-Engine's configuration file, so that the command line can build 8K... 594/head
Greg King [Fri, 23 Feb 2018 21:06:49 +0000 (16:06 -0500)]
Changed the PC-Engine's configuration file, so that the command line can build 8K, 16K, and 32K carts.

Adjusted the PCE's document, the start-up code, and the PCE library test makefile.  That makefile shows how to post-process the linker's output file.

6 years agoUpdate dio.sgml
Oliver Schmidt [Thu, 22 Feb 2018 12:30:50 +0000 (13:30 +0100)]
Update dio.sgml

6 years agoMerge pull request #6 from cc65/master
Stefan [Wed, 21 Feb 2018 21:44:17 +0000 (22:44 +0100)]
Merge pull request #6 from cc65/master

Update

6 years agoMerge pull request #593 from blackystardust/master
Bob Andrews [Fri, 16 Feb 2018 16:35:18 +0000 (17:35 +0100)]
Merge pull request #593 from blackystardust/master

Added GEOS 1.3 and 1.5 detection.

6 years agoAdded GEOS 1.3 and 1.5 detection. 593/head
Marco van den Heuvel [Thu, 15 Feb 2018 23:24:58 +0000 (15:24 -0800)]
Added GEOS 1.3 and 1.5 detection.

6 years agoMerge pull request #592 from blackystardust/master
Bob Andrews [Wed, 14 Feb 2018 18:36:43 +0000 (19:36 +0100)]
Merge pull request #592 from blackystardust/master

Improved GeOS version detection.

6 years agoFixed GeOS -> GEOS and added newline to geossym2.inc. 592/head
Marco van den Heuvel [Wed, 14 Feb 2018 18:22:10 +0000 (10:22 -0800)]
Fixed GeOS -> GEOS and added newline to geossym2.inc.

6 years agoImproved GeOS version detection.
Marco van den Heuvel [Wed, 14 Feb 2018 03:19:40 +0000 (19:19 -0800)]
Improved GeOS version detection.

6 years agoAdded a definition for the CBM610's first CIA chip.
Greg King [Sat, 10 Feb 2018 21:14:53 +0000 (16:14 -0500)]
Added a definition for the CBM610's first CIA chip.

6 years agoAdded size_t.
Oliver Schmidt [Sat, 10 Feb 2018 10:45:50 +0000 (11:45 +0100)]
Added size_t.

6 years agoReduced default stack size to a reasonable value.
Oliver Schmidt [Sat, 10 Feb 2018 10:29:50 +0000 (11:29 +0100)]
Reduced default stack size to a reasonable value.

The unexpanded Creativision has only $206 bytes of RAM available to cc65 programs. So it's a bad idea(tm) to reserve $180 bytes for the software stack. $40 bytes seems a much better default (aka guess).

6 years agoMerge pull request #588 from polluks/master
Oliver Schmidt [Sat, 10 Feb 2018 00:35:14 +0000 (00:35 +0000)]
Merge pull request #588 from polluks/master

Cleanup notes

6 years agoMore notes 588/head
Stefan [Fri, 9 Feb 2018 23:08:28 +0000 (00:08 +0100)]
More notes

6 years agoRemoved empty notes
Stefan [Wed, 7 Feb 2018 17:08:40 +0000 (18:08 +0100)]
Removed empty notes

6 years agoAdded note
Stefan [Wed, 7 Feb 2018 16:23:23 +0000 (17:23 +0100)]
Added note

6 years agoMerge pull request #587 from polluks/master
Oliver Schmidt [Wed, 7 Feb 2018 15:45:36 +0000 (15:45 +0000)]
Merge pull request #587 from polluks/master

 Added missing documentation of header

6 years agoRequested changes 587/head
Stefan [Wed, 7 Feb 2018 15:23:49 +0000 (16:23 +0100)]
Requested changes

6 years agoSorted
Stefan [Wed, 7 Feb 2018 02:07:30 +0000 (03:07 +0100)]
Sorted

6 years agoAdded missing function
Stefan [Wed, 7 Feb 2018 00:55:56 +0000 (01:55 +0100)]
Added missing function

6 years agoAdded missing documentation of header
Stefan [Tue, 6 Feb 2018 23:11:55 +0000 (00:11 +0100)]
Added missing documentation of header

6 years agoNormalized the definitions of structs in <supervision.h>.
Greg King [Tue, 6 Feb 2018 13:52:36 +0000 (08:52 -0500)]
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".

6 years agoAtari: CONSOL port of GTIA is readable and writable.
Christian Groessler [Fri, 2 Feb 2018 17:28:52 +0000 (18:28 +0100)]
Atari: CONSOL port of GTIA is readable and writable.

Adjust include/_gtia.h accordingly.

6 years agoRemoved IRQ support from TGI drivers.
Oliver Schmidt [Fri, 2 Feb 2018 17:15:45 +0000 (18:15 +0100)]
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.

6 years agoMarked Apple II EXEHDR segment as optional.
Oliver Schmidt [Fri, 2 Feb 2018 13:46:57 +0000 (14:46 +0100)]
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.

6 years agoFactored out target specific inclusion of target header.
Oliver Schmidt [Fri, 2 Feb 2018 11:59:05 +0000 (12:59 +0100)]
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.

6 years agoRemoved ACE header.
Oliver Schmidt [Fri, 2 Feb 2018 11:35:40 +0000 (12:35 +0100)]
Removed ACE header.

There's no code in the tool chain to set __ACE__ nor is there an ace.lib C library.

6 years agoHarmonized the style of including headers from headers.
Oliver Schmidt [Fri, 2 Feb 2018 11:28:22 +0000 (12:28 +0100)]
Harmonized the style of including headers from headers.

We surely don't care about some file I/O on host machines in 2018 ;-)

6 years agoRemoved IRQ support from joystick drivers.
Oliver Schmidt [Fri, 2 Feb 2018 11:02:52 +0000 (12:02 +0100)]
Removed IRQ support from joystick drivers.

6 years agoRemoved IRQ support from joystick drivers.
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.

6 years agoAdded missing dummy libref.
Oliver Schmidt [Thu, 1 Feb 2018 21:06:59 +0000 (22:06 +0100)]
Added missing dummy libref.

6 years agoAdded Makefile for recently added linker config test program.
Oliver Schmidt [Thu, 1 Feb 2018 20:50:54 +0000 (21:50 +0100)]
Added Makefile for recently added linker config test program.

6 years agoUpdated AppleCommander URL.
Oliver Schmidt [Thu, 1 Feb 2018 20:46:56 +0000 (21:46 +0100)]
Updated AppleCommander URL.

6 years agoMention the recently added linker configs.
Oliver Schmidt [Wed, 31 Jan 2018 23:18:07 +0000 (00:18 +0100)]
Mention the recently added linker configs.

6 years agoUpdated AppleCommander URL.
Oliver Schmidt [Wed, 31 Jan 2018 22:52:08 +0000 (23:52 +0100)]
Updated AppleCommander URL.

6 years agoMerge pull request #5 from cc65/master
Stefan [Wed, 31 Jan 2018 19:40:49 +0000 (20:40 +0100)]
Merge pull request #5 from cc65/master

Update

6 years agoAdjust alternative ProDOS 8 I/O buffer allocation module to linker configs.
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.

6 years agoProvide symbole for RAM memory area.
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.

6 years agoSignificantly simplified recently added linker config files.
Oliver Schmidt [Wed, 31 Jan 2018 07:54:48 +0000 (08:54 +0100)]
Significantly simplified recently added linker config files.

I just forgot about the 'start' segment attribute - which makes the scenario at hand dead easy.

6 years agoAdded Apple II linker configs for programs including a hires screen.
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.