====== Reminders ====== Things that might be considered to be evaluated/implemented/included... ===== Compiler ===== * 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. * [[cc65:roadmap|Floating point support]] ===== Assembler ===== ===== Linker ===== * 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. ===== Disassembler ===== ===== Compile & Link Utility ===== * 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 ===== * Implement the DIO interface. * Implement a Userport SER driver based on George Hug's 'Toward 2400' source code - http://archive.org/details/transactor-magazines-v9-i03 * Remove prepending "0:" / "1:" to POSIX filenames - http://www.cc65.org/mailarchive/2012-08/10683.html * Review handling of O_... flags in POSIX open(). ===== 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. * algorithm as follows (see http://www.cc65.org/mailarchive/2012-10/10974.html): * 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. ===== Documentation ===== * Update a font engine sample "tgi-preview". ===== Other stuff ===== * Integrate Groepaz test suite and do nightly automated tests to improve the overall quality.