Commit Graph

  • 0c161a6cdd Now that cc65 programs can run as SYS files themselves my ProDOS Loader ulimately has to change from a minimalistic shell replacement to a pure loader (without exit hook). This approach simplifies several things. However the "reboot after exit" option now present as a ProDOS Loader variant has to move into the cc65 program. ol.sc 2009-09-14 19:58:06 +00:00
  • 29cea09e0d Removed debug output uz 2009-09-14 19:56:47 +00:00
  • d451248437 Fixed another problem with OptJumpTarget1, that was mostly prevented from being triggered by other optimizations, which removed or changed the trigger code. uz 2009-09-14 19:54:50 +00:00
  • 254e1169f2 Fixed a problem with OptJumpTarget1: The inspected jump must not have a label attached, because the effective code changes for code jumping to this label if removals are applied. uz 2009-09-14 18:36:38 +00:00
  • b7df1ed5d4 Being loaded by my 'ProDOS Loader' needs to be classified as being loaded as BIN from an interpreter (and not as SYS). But the 'ProDOS Loader' zeros the system bitmap up to the system global page (this is what it's about) so additionally check page $03 protection which is zero when loaded as SYS but one when loaded by 'ProDOS Loader 1.4'. ol.sc 2009-09-13 19:50:09 +00:00
  • 4b84d95891 labs() is also imaxabs(). uz 2009-09-13 18:06:43 +00:00
  • 32e2eb3fad Fixed parsing a labeled-statement: A label is always part of a statement, it is not itself one. uz 2009-09-13 14:36:16 +00:00
  • fe652c8206 Sqeeze out two bytes of the code. uz 2009-09-13 13:39:27 +00:00
  • c9de0e6841 Lynx changes by Karri Kaksonen. uz 2009-09-13 13:37:44 +00:00
  • e035323ab4 Added another condition that allows us to remove pha/pla. uz 2009-09-13 13:22:27 +00:00
  • 785d8ebb43 Removed the ace target. It didn't have a linker config and was untested for ~10 years uz 2009-09-13 11:46:04 +00:00
  • effa1f4864 Fixed a typo uz 2009-09-12 22:04:49 +00:00
  • 4ee6bf6f2c Fixed a few inaccuracies the the description of the --codesize option. uz 2009-09-12 22:04:35 +00:00
  • c271f18d00 Hooking into the MLI call needs much more thoughts - and is currently not necessary... ol.sc 2009-09-12 20:55:20 +00:00
  • df22cbf925 Search config files also in the builtin search directory for libraries and in the directory defined in the CC65_LIB environment variable. uz 2009-09-12 20:12:48 +00:00
  • 2b98ab38f7 Addon to 4155: Fixed error. ol.sc 2009-09-12 06:58:20 +00:00
  • d660356ff7 Added a comment about the first entry being the default entry. Not sure if this is true for GEOS. uz 2009-09-12 06:41:08 +00:00
  • 736db8789e Much better approach for ProDOS 8 IO-buffer custom implementations - the first one was actually kind of stupid. ol.sc 2009-09-11 19:54:29 +00:00
  • c8e1d7e0d2 Adjusted Apple2 targets to the new standard mouse driver paradigm. ol.sc 2009-09-11 19:35:13 +00:00
  • 7de61e351c Define a standard driver and mode for tgi graphics and use it in the sample program. The standard driver and mode is the first one in the tgi_mode_table. uz 2009-09-11 18:59:37 +00:00
  • 569b8d0e77 Separated tgi_load and tgi_load_driver. uz 2009-09-11 18:47:33 +00:00
  • 4ed9b6facf Fixed a copy&paste error. uz 2009-09-11 18:42:34 +00:00
  • 8870eda779 Use mouse_stddrv instead of a platform dependent #define. uz 2009-09-11 16:55:20 +00:00
  • 7c2823e780 Added the mouse_stddrv variable for the C64 and C128. uz 2009-09-11 16:51:21 +00:00
  • d74f9ab396 Added a mouse_stddrv variable that contains the standard mouse driver for a system. uz 2009-09-11 16:45:43 +00:00
  • fa3a7930d7 Fixed a problem with load tracking in OptStackOps. uz 2009-09-11 16:36:17 +00:00
  • aeccd3a776 Allow to run programs as ProDOS SYS files (beside BIN files). To do so detect at runtime if BASIC.SYSTEM is present by checking the "signature" of the last system bitmap byte. ol.sc 2009-09-11 16:27:20 +00:00
  • d9cdca75b6 Make use of the IRQ to swap view and draw pages when they aren't visible. uz 2009-09-11 13:56:50 +00:00
  • d95321f489 Changes by Karri Kaksonen to implement interruptor support. uz 2009-09-11 13:56:20 +00:00
  • 773e05b5f3 Removed '_' prefix from textframe(xy) because this prefix for non-standard symbols isn't necessary if they are declared in non-standard include files. ol.sc 2009-09-10 19:18:15 +00:00
  • d91fe6b877 ProDOS 8 requires an page-aligned 1kB IO-buffer for every open file. The implementation using posix_memalign() is universally correct but quite expensive. There I added support for overriding this implementation with maybe limited (i.e. to one open file) but cheaper custom implementations. ol.sc 2009-09-10 09:59:26 +00:00
  • 19397b742d Fixed typo. ol.sc 2009-09-10 09:35:37 +00:00
  • 648a1b5427 Added support for switching between 40/80 columns. As the Apple //e 80 column firmware features converting the current screen content on switching if was already active before the idea is to keep the 80 column firmware active and initialize it (which clears the screen) only if necessary. ol.sc 2009-09-10 09:04:05 +00:00
  • 079358c3c1 Fixed an error in OptPtrLoad16. uz 2009-09-08 21:10:19 +00:00
  • e68332a10b Fixed several more problems like the one in Assignment() some time ago: An expression that yields a constant value may have side effects, and the expression code must not be removed in this case. uz 2009-09-08 20:29:12 +00:00
  • 2d3b0f1146 Fixed a problem similar to the one in Assignment() some time ago: An expression that yields a constant value may have side effects, and the expression code must not be removed in this case. uz 2009-09-08 20:08:21 +00:00
  • 84e288f21c Use the new function MarkedExprWithCheck. uz 2009-09-08 19:49:30 +00:00
  • 0c20177fce Allow to store start and end of generated code in the ExprDesc structure. New function MarkedExprWithCheck. uz 2009-09-08 19:48:22 +00:00
  • 7d60d32aee Changed the prototype of videomode() to take and return an unsigned instead of an unsigned char. uz 2009-09-08 16:45:21 +00:00
  • 931b6418bf Changed the prototype of videomode() to take and return an unsigned instead of an unsigned char. Two more video mode constants as discussed on the list. uz 2009-09-08 16:25:12 +00:00
  • 6c87aa64be Fixed a typo in the docs. uz 2009-09-08 16:23:59 +00:00
  • 331803126f Fixed flexible array struct members. uz 2009-09-08 07:55:44 +00:00
  • 9f7ca16001 Added initialization of bit-fields. uz 2009-09-07 16:59:46 +00:00
  • f5ca779b9b A constant right side does not necessarily mean that no code is generated for the right side. The expression may have had side effects. This error is also found in several other places. uz 2009-09-07 14:22:27 +00:00
  • b2d30c3283 Remove stack pointer check in RemoveCodeRange - the calling function has to take care about that. uz 2009-09-07 14:21:19 +00:00
  • 96b731dd96 Just presume alternate charset to be active on the //e - how shouldn't it if conio usage activates it. ol.sc 2009-09-07 14:00:17 +00:00
  • 74bfd6ee31 New function videomode() for the C128. Marked toggle_videomode as deprecated. uz 2009-09-07 13:21:04 +00:00
  • 90c731d1e9 Changed a comment line. uz 2009-09-06 21:39:28 +00:00
  • f50520dffe Use xsprintf instead of sprintf. uz 2009-09-06 19:07:18 +00:00
  • 94a2223443 Use SymIsTypeDef and SymIsBitField instead of accessing Sym->Flags directly. uz 2009-09-06 16:51:08 +00:00
  • cc229ce7ba New function SymIsBitField. uz 2009-09-06 16:50:41 +00:00
  • 2402ef005e Fixed an error: When initializing unions, only the first member can be initialized. uz 2009-09-06 16:44:16 +00:00
  • 78a7af13e6 Adjusted to the changed default start address. ol.sc 2009-09-04 21:32:41 +00:00
  • 0d25264ed4 Minor reformatting. ol.sc 2009-09-04 21:28:16 +00:00
  • 38ff6818fc Fixed wrong code generation in g_leasp. uz 2009-09-04 20:57:23 +00:00
  • fa2064ae3b Fix problem with OptPtrLoad1 - never insert before the deleted code, always delete after! Otherwise labels will get wrong. uz 2009-09-04 20:16:18 +00:00
  • 18d865e609 Fixed another problem with OptStackOps: Load tracking will not work across branches - if we find a label, just forget all information we had before. uz 2009-09-04 19:54:29 +00:00
  • f6c589bf8e Fixed problems with OptPrecalc. It removed insns because it results were known - but the insns generate a carry which may be needed later. uz 2009-09-04 15:44:48 +00:00
  • 67d64e67d5 Fixed a typo in a comment. uz 2009-09-04 15:42:36 +00:00
  • e1832b2e57 Replace "lda (zp),y" by "lda (zp,x)" where possible and where it saves us cycles and code bytes. uz 2009-09-03 12:13:08 +00:00
  • d85e6f9124 Replacement code for ule and ugt was wrong and did not cover values that were equal. uz 2009-09-03 11:58:11 +00:00
  • 7cd92c82fa Added code replacements for several missing compare functions. Fixed a bug in coptstop.c that popped up if transfer instructions were used to load a value into X. uz 2009-09-01 20:57:39 +00:00
  • 7c613f7a83 Terminate after printing the version number when -V is used. uz 2009-09-01 14:41:37 +00:00
  • cc3c3e5f5c Updated and clarified the coding hints. uz 2009-09-01 10:19:20 +00:00
  • e9eb9eb77c Improved code generation, better tracking. uz 2009-09-01 10:07:02 +00:00
  • cdc3afa6ef Fixed a problem with OptCmp3 that was in there for a while but is now triggered because of the new subtraction code sequence. uz 2009-09-01 10:06:39 +00:00
  • 7c4240fe69 Minor code improvement. uz 2009-09-01 09:15:19 +00:00
  • 944057238e Simplify code generated for the ?: operator when type conversion code for the second operand is necessary. Instead of generating interleaved code with several jumps, just move the code to the right place. uz 2009-09-01 08:57:36 +00:00
  • 84710f7227 Remember more function infos in the Function struct. uz 2009-08-31 20:37:54 +00:00
  • 0c08f65872 Fixed a bug in Opt_tosaddax. uz 2009-08-31 19:36:06 +00:00
  • c942568af9 Simplify the code somewhat. uz 2009-08-31 18:18:50 +00:00
  • 30f25ae12d Make the AddOpLow and AddOpHigh functions usable with both, lhs and rhs operands. uz 2009-08-31 18:02:44 +00:00
  • b829bda8cb Print the SVN version number when -V or --version is used. uz 2009-08-31 17:17:18 +00:00
  • b3f3b21f80 Fixed a few C99isms that prevented the sources to compile with Watcom-C. uz 2009-08-31 17:15:59 +00:00
  • 514775cbdf Fixed a copy&paste error in a comment. uz 2009-08-31 16:48:45 +00:00
  • 7983009e06 Improved code for bit fields. uz 2009-08-31 15:11:32 +00:00
  • dc678e8dcb Improved the code generated for bit-fields. uz 2009-08-31 14:59:49 +00:00
  • 0a9c7484ad Add a warning if a function returning something does not contain a return statement. uz 2009-08-31 13:18:49 +00:00
  • 1ea503a036 The pleasp.s module is no longer in use. uz 2009-08-31 12:56:54 +00:00
  • 7064aafab9 Added info about changed leaa0sp and leaaxsp. Rewrote g_leasp to cope with 16 stack offsets, because it's rather easy in this case. uz 2009-08-31 12:41:38 +00:00
  • db69c202a4 Oh well. Decided to throw away the separate implementation for leaa0sp, because it's not used too much, may sometimes inlined and can easily be replaced by another entry in leaaxsp.s uz 2009-08-31 12:22:13 +00:00
  • bf9d36a2fa Renamed leaasp.s again, this time to leaa0sp.s. Added a new module leaaxsp.s. uz 2009-08-31 12:15:51 +00:00
  • a1dd468291 Renamed leasp.s to leaasp.s uz 2009-08-31 12:10:59 +00:00
  • 45d4771584 For bit fields contained within single bytes, try to do character operations instead of word sized ops. uz 2009-08-30 09:01:04 +00:00
  • 0b0353de13 Use CHAR_BITS instead of a hardcoded 8 bits/byte. uz 2009-08-30 08:37:21 +00:00
  • 03e206a44f Make the SIZEOF_XXX constants resolve to unsigned values. uz 2009-08-30 08:36:56 +00:00
  • 2ddeb069eb Any field without a name is legal but useless in a union. uz 2009-08-30 08:30:55 +00:00
  • a09c71b3ff Separate the functions that parse unions and structs, because they became too different. uz 2009-08-30 08:28:16 +00:00
  • 829cb7de4c Missing resp. ignored "volatile". uz 2009-08-30 07:55:21 +00:00
  • 8d5999c3a4 Added even more subroutines to the "harmless calls" list. uz 2009-08-29 23:19:01 +00:00
  • 7a7526ef8b Few small changes. Started a new section about implementation-defined behavior. uz 2009-08-29 22:03:41 +00:00
  • b098d8045e Code improvements uz 2009-08-29 21:58:06 +00:00
  • 7f7dc69290 Rewrote the paragraph about compiler limits and standard compliance. uz 2009-08-29 21:32:14 +00:00
  • 6b4fe90928 First implementation of bit fields. uz 2009-08-29 21:20:13 +00:00
  • 7c6ee79ea9 Added more harmless functions to the list, so the stuff gets applied in more cases. uz 2009-08-29 21:17:28 +00:00
  • b0a89ff421 Improved code for shifts. uz 2009-08-29 20:16:52 +00:00
  • b4855e017b The shift long by 4 functions do also destroy Y. uz 2009-08-29 20:14:20 +00:00
  • ddeb171617 Info for long shift functions was missing or wrong. uz 2009-08-29 20:04:18 +00:00
  • d0c4f85e51 Fix wrong check for typedef which caused non allocation of storage for structs after the latest changes. uz 2009-08-29 19:05:01 +00:00
  • 7ced0a2ceb Rename Width to BitWidth. uz 2009-08-29 19:04:21 +00:00