Carlo Bramini
b04d79b1da
[SIM65] Support undocumented opcodes for 6502
...
This PR is mostly a complete rewrite of the emulator for 6502/65c02 opcodes.
It provides an easier to maintain implementation of the instructions, by using few macros rather than having hand-written code for each function.
All undocumented, previously missing opcodes for 6502 are also implemented.
The patch also includes a detailed documentation of those opcodes, for reference to developers.
This PR should fix one of the milestones listed here for the next version of CC65:
https://github.com/cc65/wiki/wiki/Before-the-next-release
2024-02-08 12:13:17 +01:00
Bob Andrews
4343eebe67
Merge pull request #2314 from acqn/PPFix
...
[cc65] Separated C preprocessor errors from other errors
2023-12-31 19:16:44 +01:00
Bob Andrews
9e3d1e1027
Merge pull request #2309 from acqn/Diagnostics
...
[cc65] Added warning on static functions that are used but not defined
2023-12-31 19:15:48 +01:00
Bob Andrews
0ece9449d7
Merge pull request #2307 from acqn/FuncDeclFix
...
[cc65] Fixed function declarator parser when a parameter has a function type
2023-12-31 19:11:25 +01:00
Bob Andrews
7297d2c8b6
Merge pull request #2310 from pm100/vs64
...
second try at fixing win64 build
2023-12-31 18:54:23 +01:00
acqn
b876a6b213
Fixed cc65 exitcode when there are only preprocessor errors.
2023-12-19 19:30:50 +08:00
acqn
cd7c688dff
Separated C preprocessor errors from other errors.
2023-12-18 15:30:53 +08:00
paul moore
08341aae30
second try at fixing win64 build
2023-12-14 14:25:35 -08:00
acqn
a5746227dc
Added warning on static functions that are used but not defined.
2023-12-14 21:27:48 +08:00
acqn
1e4d1b4311
Fixed function declarator parser when a parameter has a function type.
...
Ensured check on parameter lists without types in non-definition declarations.
2023-12-14 02:34:03 +08:00
acqn
f8fe1d1560
Fixed missing diagnosis on function parameter lists with trailing commas.
2023-12-13 22:57:32 +08:00
Bob Andrews
bc97bce8c1
Merge pull request #2297 from acqn/WrappedCall
...
[cc65] Fixed wrapped call when the function was defined before its later declaration gets wrapped with the pragma
2023-12-12 17:11:47 +01:00
acqn
befc9533c6
More accurate diagnostic messages on empty declarations without any type specifiers.
2023-12-10 20:21:50 +08:00
mrdudz
b1c1502494
MS compiler insists on those typecasts apparently
2023-12-11 00:35:07 +01:00
mrdudz
9985ee7f61
fix %hhn and %hn in the internal xvsnprintf function
2023-12-11 00:18:40 +01:00
Bob Andrews
cc5e9c38ca
Merge pull request #2296 from acqn/Diagnostics
...
[cc65] Fixed and improved diagnostics regarding type names and declarations
2023-12-10 22:32:33 +01:00
acqn
bbd542fac7
Fixed missing diagnosis on extra identifiers in type names.
2023-12-10 17:01:54 +08:00
Colin Leroy-Mira
07c71541f4
Fix #2262 : Make sure there's no branching after the sequence
...
Also better check that arguments match
2023-12-10 09:45:15 +01:00
acqn
3215d377ea
More accurate diagnostic messages on wrong missing declaration specifiers.
2023-12-10 15:46:48 +08:00
acqn
cadf8012f6
Improved error recovery with type cast and sizeof.
2023-12-10 15:43:24 +08:00
acqn
a1a060c291
Declaration specifier flags cleanup.
2023-12-10 15:43:24 +08:00
acqn
79b4690077
Fixed missing diagnostics on empty enum/struct/union declareations without tag names.
...
Improved error recovery with local declarations and _Static_assert.
2023-12-10 15:43:24 +08:00
Bob Andrews
a16a6298e2
Merge pull request #2287 from acqn/Diagnostics
...
[cc65] Minor diagnostics improvements
2023-12-09 22:16:47 +01:00
Bob Andrews
92f869cdfb
Merge pull request #2288 from acqn/TypeFix
...
[cc65] Fixed an iteration bug in type composition
2023-12-09 22:15:24 +01:00
Bob Andrews
a956f6f9ed
Merge pull request #2289 from acqn/FuncDeclFix
...
[cc65] Fixed the issue that qualifiers of pointees of function parameters were ignored for type compatibility check
2023-12-09 22:14:41 +01:00
acqn
b66682a05b
Fixed wrapped call when the function to wrap has already got defined before it is wrapped with the pragma.
2023-12-10 00:47:10 +08:00
Colin Leroy-Mira
2a2cc6cad6
Fix bug introduced in #2260
...
bne should have applied to A, not X, but adding a cmp #$00 before
makes the change less optimized than the existing.
2023-12-09 16:43:23 +01:00
acqn
d8a722b638
Improved diagnostics on multiple definition of struct/union types.
2023-12-09 17:34:01 +08:00
acqn
87f8893886
Avoided "Variable 'XXX' is defined but never used" error message resulted from an earlier error.
2023-12-09 17:33:46 +08:00
acqn
98ffc031d1
Fixed an iteration bug in type composition.
2023-12-09 14:35:00 +08:00
acqn
b7e7bb7489
Fixed the issue that qualifiers of pointees of function parameters were ignored for type compatibility check.
2023-12-09 14:34:37 +08:00
Bob Andrews
519a52d92c
Merge pull request #2209 from vrubleg/linecont
...
ca65: `.LINECONT` as a part of `.FEATURE`
2023-12-08 02:10:45 +01:00
Bob Andrews
66bfc31988
Merge pull request #2262 from colinleroy/optimize-long-assign
...
Optimize static long assignment a bit
2023-12-08 01:58:01 +01:00
Bob Andrews
09735b26c5
Merge pull request #2274 from acqn/UnionFix
...
[cc65] Fixed initialization of union when it has an anonymous bit-field as the first member declaration
2023-12-08 01:55:06 +01:00
Bob Andrews
c4575ec2c4
Merge pull request #2275 from acqn/BitfieldFix
...
[cc65] Fixed constness of bit-fields
2023-12-08 01:54:02 +01:00
Colin Leroy-Mira
63861766e1
Fix Makefile change
2023-12-01 14:22:30 +01:00
Colin Leroy-Mira
d8a3938f2b
Optimize a bit static long assignation
2023-12-01 14:20:00 +01:00
acqn
47e7ed2f56
Fixed wrong "Mixed declarations and code are not supported in cc65" error message when it should be "Expression expected".
2023-11-30 00:36:13 +08:00
acqn
c0a2021d9a
Fixed endlessly repeated disgnostics when there are some certain patterns of syntax errors in a struct/union declaration.
2023-11-30 00:35:30 +08:00
acqn
6434176909
Fixed constness of bit-fields.
2023-11-29 12:27:01 +08:00
Bob Andrews
5537b61e6a
Merge pull request #2272 from acqn/Diagnostics
...
[cc65] Improved diagnostics
2023-11-28 15:06:39 +01:00
Bob Andrews
2af16ee82b
Merge pull request #2271 from acqn/InternalFix
...
[cc65] Fixed assertion failure when there is an undeclared symbol used in a parameter list
2023-11-28 15:03:09 +01:00
Bob Andrews
97cfb8c67a
Merge pull request #2266 from acqn/StructFix
...
[cc65] Fixes for structs/unions
2023-11-28 15:00:58 +01:00
Bob Andrews
86b09f56a6
Merge pull request #2260 from colinleroy/optimize-substraction
...
Optimize integer decrements by 1
2023-11-28 14:40:51 +01:00
Bob Andrews
acf159adbc
Merge pull request #2269 from colinleroy/optimize_gt_255
...
Optimize unsigned int and long > 255
2023-11-28 14:36:39 +01:00
Bob Andrews
ad0b778008
Merge pull request #2265 from acqn/C99Main
...
[cc65] Enabled implicit "return 0" in C99 standard main function in default cc65 mode
2023-11-28 14:27:55 +01:00
Bob Andrews
7e6399d439
Merge pull request #2268 from picocomputer/master
...
add rp6502 target
2023-11-27 17:53:43 +01:00
acqn
546be1d5dd
Fixed assertion failure when there is an undefined symbol used in a parameter list.
2023-11-27 20:42:50 +08:00
acqn
b99ebc1256
Fixed diagnostic messages about undeclared identifiers.
2023-11-27 20:39:15 +08:00
acqn
7574e36e95
Improved error recovery with function declarations.
...
Fixed some rare cases when a single file-scope error could get reapeated endlessly until the maximum total count of errors allowed is reached.
2023-11-27 20:39:15 +08:00