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
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