1
0
mirror of https://github.com/KarolS/millfork.git synced 2024-05-31 18:41:30 +00:00
Commit Graph

203 Commits

Author SHA1 Message Date
Karol Stasiak
4b98f334fc Update CHANGELOG 2019-07-30 22:51:33 +02:00
Karol Stasiak
5fb6efbd61 Change PETSCII encoding to match CC65 and readkey 2019-07-29 02:07:30 +02:00
Karol Stasiak
35ba36ce11 Function pointers – initial version 2019-07-27 00:58:10 +02:00
Karol Stasiak
3aac33b54f Add the bool type. Few boolean-related bugfixes. 2019-07-26 19:02:32 +02:00
Karol Stasiak
adc93aeb74 Z80: Fix optimizations near stack variables 2019-07-26 14:15:35 +02:00
Karol Stasiak
a25f6ca3f6 6502: Fix optimizations involving the zeropage pseudoregister 2019-07-23 23:16:37 +02:00
Karol Stasiak
20f4baf2b2 Allow setting segments for multiple declarations at once 2019-07-17 20:51:34 +02:00
Karol Stasiak
f3dcfc78ba Dijkstra wept 2019-07-15 02:06:23 +02:00
Karol Stasiak
6d499f3623 Arrays with elements larger than one byte 2019-07-10 16:51:12 +02:00
Karol Stasiak
65338555ad Update changelog 2019-07-09 22:40:26 +02:00
Karol Stasiak
6661e2781b Update changelog 2019-07-08 19:24:27 +02:00
Karol Stasiak
32bb0d4453 Switch to snapshot versioning 2019-07-01 01:24:55 +02:00
Karol Stasiak
34b9075573 Version 0.3.4 2019-07-01 00:33:28 +02:00
Karol Stasiak
b0df56c8c0 Add more compatibility warnings to documentation 2019-06-28 17:53:00 +02:00
Karol Stasiak
6deee5f69b Update changelog 2019-06-28 16:43:50 +02:00
Karol Stasiak
51599c9615 Allow defining free zeropage bytes instead of pointers 2019-06-26 18:33:59 +02:00
Karol Stasiak
c580ba33ea Fix nested #ifs 2019-06-26 18:31:45 +02:00
Karol Stasiak
32476f2a4e Move readkey to a separate module 2019-06-26 15:51:09 +02:00
Karol Stasiak
c9a65d5971 Added #define directive 2019-06-26 13:43:15 +02:00
Karol Stasiak
b85e175292 Use CBM_64_COMPAT for Commodore 128 2019-06-26 13:41:57 +02:00
Karol Stasiak
03f2bacd2b Add readkey and fix putchar for more targets. 2019-06-26 13:00:55 +02:00
Karol Stasiak
f90d6afc43 8080: Fixed inlining of byte-sized variables into registers 2019-06-26 01:45:34 +02:00
Karol Stasiak
2ad43cf3b3 Update changelog 2019-06-25 18:26:48 +02:00
Karol Stasiak
d8defaad82 Fix and document for-each loops 2019-06-24 23:51:17 +02:00
Karol Stasiak
25c440f17d Add local arrays 2019-06-24 22:32:29 +02:00
Karol Stasiak
0205520bf9 Allow taking addresses of stack variables 2019-06-23 22:53:42 +02:00
Karol Stasiak
51a6ec9d73 Preprocessor: add #use A=B and if(i,t,e) 2019-06-14 12:00:45 +02:00
Karol Stasiak
3852b2dbe9 More label file formats 2019-06-14 11:39:11 +02:00
Karol Stasiak
0f179f79aa Many big important things:
– Add support for undocumented 8085 instructions
– Convert undocumented  8085 instructions to 8086
– Add new CPU types and categorize CPU types correctly
– Fix macro expansion in some situations
– Improve 8080 optimizations
– Improve documentation
– Other improvements
2019-06-12 12:06:02 +02:00
Karol Stasiak
2583f280a8 Unsigned byte division by non-constant 2019-06-06 01:17:34 +02:00
Karol Stasiak
010b44f23e Unsigned byte division by a constant 2019-06-05 18:36:39 +02:00
Karol Stasiak
9164e78a2d 6502: Fix comparison optimizations 2019-06-05 18:12:57 +02:00
Karol Stasiak
bc8ac1f696 Preliminary MSX support 2019-06-05 13:31:43 +02:00
Karol Stasiak
b3bb9bb063 Intel 8085 support 2019-05-31 17:27:38 +02:00
Karol Stasiak
1cb3b672b1 Add 8080-to-8086 translation 2019-05-31 17:03:35 +02:00
Karol Stasiak
4eba80b735 Fix name clashes when passing parameters to functions 2019-05-02 13:24:21 +02:00
Karol Stasiak
1862fed70f The @struct array format; fix the @long format 2019-04-30 01:30:22 +02:00
Karol Stasiak
d9f88cdfad Const arrays 2019-04-30 00:41:42 +02:00
Karol Stasiak
0a36d83164 nullptr 2019-04-16 16:59:16 +02:00
Karol Stasiak
d0f64f2cee Short syntax for small functions 2019-04-15 19:56:14 +02:00
Karol Stasiak
029e84b0f0 Unions, typed pointers, indirect field access via pointers 2019-04-15 19:45:26 +02:00
Karol Stasiak
eb69957ada Update documentation 2019-04-15 01:58:51 +02:00
Karol Stasiak
7635fc256f Update documentation 2019-03-18 23:15:28 +01:00
Karol Stasiak
b400c884e0 Add memory barriers 2018-12-31 13:20:32 +01:00
Karol Stasiak
fb42e77e6e 6502: Two fixes:
– fix writing constants to volatile variables
– fix optimizing variables to registers yet again
2018-12-31 13:19:13 +01:00
Karol Stasiak
c438152f1d Update changelog 2018-12-30 19:01:38 +01:00
Karol Stasiak
7a1abfba24 Optimization improvements 2018-12-30 00:52:40 +01:00
Karol Stasiak
a100675c7c Documentation update 2018-12-29 20:16:05 +01:00
Karol Stasiak
ff78c738f2 Switch to snapshot versioning 2018-12-28 19:24:56 +01:00
Karol Stasiak
57ada60435 Version 0.3.2 2018-12-28 19:14:30 +01:00
Karol Stasiak
438d8dbe6e Detection of the default include path. 2018-12-24 02:38:28 +01:00
Karol Stasiak
acaaa5bdfe Implicit ranges in for loops are dumb, remove 2018-12-22 01:30:54 +01:00
Karol Stasiak
36a0065b96 Forbid redefining builtins 2018-12-21 22:35:16 +01:00
Karol Stasiak
310df1a8de It's Amstrad not Armstrad 2018-12-19 22:21:51 +01:00
Karol Stasiak
e23e9afb86 Update readme and changelog 2018-12-19 19:04:19 +01:00
Karol Stasiak
eb9e3e063b Update changelog 2018-12-16 21:07:42 +01:00
Karol Stasiak
8055de506b Update changelog 2018-12-14 22:51:09 +01:00
Karol Stasiak
fe1bf68295 Add align keyword 2018-10-04 21:34:53 +02:00
Karol Stasiak
ff16854a11 Code deduplication 2018-08-06 19:29:09 +02:00
Karol Stasiak
f4a2c96512 Fix comparisons 2018-08-03 16:21:02 +02:00
Karol Stasiak
070ae395ee Text literals in expressions, escape sequences, and more 2018-07-28 00:58:20 +02:00
Karol Stasiak
847a7255c6 Update README and CHANGELOG 2018-07-27 19:15:57 +02:00
Karol Stasiak
27de426a38 Documentation updates 2018-07-25 00:04:00 +02:00
Karol Stasiak
c4c1bf00f2 Enumeration types. Stricter type checks. 2018-07-20 22:46:53 +02:00
Karol Stasiak
215d8d92b4 Preprocessor. Z80 improvements. Library improvements. 2018-07-12 19:39:25 +02:00
Karol Stasiak
35f3638a4f Added alias support 2018-07-12 01:23:38 +02:00
Karol Stasiak
af1e6d9c9f Updated changelog 2018-07-07 01:11:53 +02:00
Karol Stasiak
2c8de8b6a5 Text encoding improvements 2018-07-07 00:58:44 +02:00
Karol Stasiak
9512e8e7ae Really early and very incomplete PC-88 support 2018-07-02 00:31:47 +02:00
Karol Stasiak
86b12bd5f9 Switch to snapshot versioning 2018-07-01 19:07:12 +02:00
Karol Stasiak
63988dbe8c Version 0.3.0 2018-06-25 22:46:52 +02:00
Karol Stasiak
a692a9868e Update changelog 2018-06-24 00:31:10 +02:00
Karol Stasiak
5ee9fd85ce Humblebrag 2018-06-19 00:08:18 +02:00
Karol Stasiak
992ea7090e Comparison fixes and improvements 2018-06-19 00:08:04 +02:00
Karol Stasiak
24a3943501 Array filters (@word, @word_be) 2018-06-18 02:52:14 +02:00
Karol Stasiak
8931ced6fc Preliminary LUnix support 2018-06-09 00:18:21 +02:00
Karol Stasiak
c71af26989 Documentation updates 2018-06-04 16:24:18 +02:00
Karol Stasiak
7eab7c439e Preliminary Atari 2600 support 2018-04-03 23:13:57 +02:00
Karol Stasiak
3296d5a201 Documentation improvements 2018-04-03 00:21:26 +02:00
Karol Stasiak
d6995091cf Character literals 2018-04-02 21:06:18 +02:00
Karol Stasiak
95375378ed More text codecs 2018-04-02 19:47:11 +02:00
Karol Stasiak
d785d43ae7 Many optimization improvements and bugfixes
- fixed VariableToRegisterOptimization removing variables during superoptimization
- fixed PointlessMathFromFlow giving results that do not fit a byte
- fixed PointlessLoadBeforeReturn moving reads from before to after memory modification
- achieved and exceeded CC65 performance when doing 16-bit Eratosthenes sieve
2018-03-28 12:37:38 +02:00
Karol Stasiak
0231e4c4fd Added ATASCII text codec 2018-03-26 00:01:29 +02:00
Karol Stasiak
e32887b6b7 Added array initialization syntax with for 2018-03-25 23:14:16 +02:00
Karol Stasiak
cb25c8e960 Update CHANGELOG.md 2018-03-25 16:19:37 +02:00
Karol Stasiak
ec20d8e79b Version 0.2.2 2018-03-19 22:04:14 +01:00
Karol Stasiak
c9c0c16e98 Allowed more kinds of constants within variable and array initializers 2018-03-19 21:58:51 +01:00
Karol Stasiak
6f98af3eb7 Updated CHANGELOG.md 2018-03-18 23:58:42 +01:00
Karol Stasiak
6e089b03d8 Version 0.2 2018-03-17 18:21:50 +01:00
Karol Stasiak
14a2592170 Updated CHANGELOG 2018-03-16 22:15:07 +01:00
Karol Stasiak
8a347e5058 Preliminary segment support; C16/+4 fixes 2018-03-15 23:09:19 +01:00
Karol Stasiak
465ba2f02f Update documentation 2018-03-10 22:05:10 +01:00
Karol Stasiak
59cf1e06b4 nonet() operator 2018-03-10 00:08:13 +01:00
Karol Stasiak
9d1159e923 Documentation improvements 2018-03-06 16:59:18 +01:00
Karol Stasiak
05e147b880 Removal of detailed flow analysis; it was slow and not worth it 2018-03-05 12:41:43 +01:00
Karol Stasiak
50ddd52786 Added break and continue statements 2018-03-03 21:34:12 +01:00
Karol Stasiak
6ed5d51260 Preliminary support for 65816, 65CE02 and HuC6280 2018-03-03 01:21:57 +01:00
Karol Stasiak
747925f8fd Added new -O1 optimization preset 2018-02-26 17:57:16 +01:00
Karol Stasiak
3c3ac9d70e Simple loop unrolling; --blast-processing command line option 2018-02-26 12:22:10 +01:00
Karol Stasiak
42818df340 Updated changelog 2018-02-26 01:20:50 +01:00
Karol Stasiak
0ca1be0c00 Tons of things:
– changed `inline` to `macro`
– added support for parameters for macros written in Millfork
– added `inline`, `noinline`, `register` hints
– added <<<< operator
– pointer dereference expressions are now supported more widely
– C64 library fixes
– added `-O1` command line option as an alias for `-O`
2018-02-01 22:39:38 +01:00
Karol Stasiak
f7247ab7d8 Fixed some typos 2018-01-30 17:43:18 +01:00
Karol Stasiak
c26d36f974 Added return dispatch statements. 2018-01-30 17:38:32 +01:00