Things that might be considered to be evaluated/implemented/included…


  • Fix standard compliance problems in the preprocessor.
  • Braces in initializers work in a non standard way, standard compliant initializer with braces are not always accepted.
  • Fix issue with goto into a block that declares a local label.
  • Make fastcall the standard.



  • Fix issues with o65 format.
  • Fix internal error in complex setups where the precalculated memory setup differs from the one determined later.
  • Map files do not work for o65 output in presence of external symbols.
  • Add option to omit generation of output files if the file length is zero (useful for unused overlays).
  • Intel hex output.
  • Segment overlays.


  • Add capability to call other external programs for processing, for example Pucrunch.

Platform independent runtime library

  • Complete multiplication and division routines. Currently it's somewhat a mess.
  • The changes in the TGI library need a review and cleanup. The new vector font routines need testing, docs and maybe a sample program. Clipping is probably not implemented (needs check).
  • There's a function tgi_imulround() - declared in tgi/tgi-kernel.h - that can be used with tgi_getaspectratio() to scale a value “up” by the aspect ratio. However it is as well desirable to be able to scale “down” by the aspect ratio - maybe with a function called tgi_idivround().
  • Implement an alternative “naive” heap manager that simply increments a pointer for every allocation (and doesn't actually de-allocate anything) to allow i.e. the module loader to be used without linking in the full blown heap manager.
  • Discuss if it is desirable to have standard SER and/or EMD drivers - like the standard JOY, MOU and TGI drivers.
  • Several formats in printf are broken: printf(”%04d”,-12) and printf(”%#04x”,12) are examples.
  • Abstract printer support.

CBM library

C64 library

  • Implement OUTTEXT in the TGI driver.
  • Implement Soft-80 CONIO support as an “extra” .o file that “overrides” the cputc.o in the C library.
  • Add extra EMD and joystick drivers.

C128 library

  • If possible do that “blinding” of the keyboard scanner while any button/switch is active which was done for the C64-1351 driver for the C128-1351 driver too.
  • Implement OUTTEXT in the TGI drivers.
  • Find ways to increase the RAM size available to cc65 programs.
  • Test EM drivers with multidemo sample and fix the broken ones.

Apple II library

  • Implement lseek().
  • Update documentation to reflect the current linker configs.
  • Have the EM driver detect AUXMEM and cooperate with /RAM.
  • Implement a TGI driver that “hides” the hires screen using AUXMEM.
  • Allow _sys() to call ROM routines.
  • Add cmdline support to exec().
  • Add support for visible cursor on cgetc().

Atari library

  • Add dio_query_sectcount() to complete the DIO implementation.
      • Read the 4th sector. (the xf551 drive had a bug, it returned the wrong PERCOM info after reading the normally 128-byte boot sectors, a read from sector 4 eliminates this chance)
      • Read status (SIO command 0x53) and save that info.
      • Request a PERCOM block. If it succeeds use that information.
      • If reading PERCOM block fails assume 1050, 810 (or even 815) or compatible. Use the status byte 0 to differentiate between single, enhanced (medium) and double density. (bit 5 is set if double density and bit 7 is set if enhanced density). If we're only looking for sector count, only the bit 7 matters.
  • Implement the functions in device.h and test them with samples/enumdevdir.c.
  • Implement exec().
  • Add documentation for TGI and EMD drivers.

GEOS library

  • Make dio_query_sectcount() less naive.
  • Adjust the MOU driver to the current MOU kernel interface.
  • Implement the functions in device.h and test them with samples/enumdevdir.c.


  • Update a font engine sample “tgi-preview”.

Other stuff

  • Integrate Groepaz test suite and do nightly automated tests to improve the overall quality.
cc65/reminders.txt · Last modified: 2016-04-27 22:36 by polluks
Except where otherwise noted, content on this wiki is licensed under the following license: CC Attribution 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki