1
0
mirror of https://github.com/KarolS/millfork.git synced 2024-11-01 21:04:51 +00:00
Commit Graph

231 Commits

Author SHA1 Message Date
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
2282e56845 6502: Faster summing for-loops 2019-06-25 18:23:31 +02:00
Karol Stasiak
e9e52d11a7 Add readkey for C64 & ZXS. Fix putchar('{q}') on C64. 2019-06-25 18:19:33 +02:00
Karol Stasiak
e394fe15c3 Add struct literals 2019-06-25 00:45:49 +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
96b5918728 Clarify console output behaviour 2019-06-24 21:26:08 +02:00
Karol Stasiak
0205520bf9 Allow taking addresses of stack variables 2019-06-23 22:53:42 +02:00
Karol Stasiak
7194bc1f1c More details on 8086 support (2) 2019-06-15 19:42:51 +02:00
Karol Stasiak
6e4e5863c6 More details on 8086 support 2019-06-15 01:44:04 +02:00
Karol Stasiak
f46466365b Compilation order should be decided by the import statements 2019-06-14 23:20:03 +02:00
Karol Stasiak
ba16021426 Allow using $$ instead of # in preprocessor directives 2019-06-14 15:33:17 +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
ecb366eafb Add the -i option 2019-06-14 11:28:26 +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
91a7e42d9f Update documentation 2019-06-12 00:20:24 +02:00
Karol Stasiak
e31737ad40 Unsigned division of word by byte 2019-06-06 13:06:30 +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
326e9d0585 Documentation fixes 2019-06-05 18:34:32 +02:00
Karol Stasiak
bc8ac1f696 Preliminary MSX support 2019-06-05 13:31:43 +02:00
Karol Stasiak
b4b2e9b041 Documentation fixes 2019-06-05 13:31:30 +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
305376bcec Update documentation 2019-05-29 14:21:00 +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
41e6bddfd9 Documentatin update 2019-04-18 17:20:35 +02:00
Karol Stasiak
546c4d0f44 Unified syntax for indexing 2019-04-18 16:24:46 +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
6979cbfe39 Generate checksums for Game Boy 2019-01-11 15:17:48 +01:00
Karol Stasiak
492300d298 C64: File I/O support 2019-01-05 01:19:14 +01:00
Karol Stasiak
7d596f3ed6 Minor improvements 2019-01-05 01:04:08 +01:00
Karol Stasiak
b400c884e0 Add memory barriers 2018-12-31 13:20:32 +01:00
Karol Stasiak
75e572f58c Library improvements:
– random module
– ensure_mixedcase() function
2018-12-30 18:59:32 +01:00
Karol Stasiak
b068663729 PET: Add oldpet and origpet encodings 2018-12-30 18:54:45 +01:00
Karol Stasiak
a100675c7c Documentation update 2018-12-29 20:16:05 +01:00
Karol Stasiak
f12463aef0 Optimization refactoring:
– -Of should imply -finline
– certain optimizations should be controllable
– unused global symbols should be removed even if we're not optimizing
2018-12-27 01:18:29 +01:00
Karol Stasiak
438d8dbe6e Detection of the default include path. 2018-12-24 02:38:28 +01:00
Karol Stasiak
7bf9616fcb Fix/improve documentation 2018-12-24 01:32:17 +01:00
Karol Stasiak
acaaa5bdfe Implicit ranges in for loops are dumb, remove 2018-12-22 01:30:54 +01:00
Karol Stasiak
e43fb39781 Optimize some stdlib calls 2018-12-21 22:33:27 +01:00
Karol Stasiak
62575263c2 NEC PC-88: readline 2018-12-20 00:47:42 +01:00
Karol Stasiak
10492bc534 Updated examples 2018-12-19 22:32:55 +01:00
Karol Stasiak
310df1a8de It's Amstrad not Armstrad 2018-12-19 22:21:51 +01:00
Karol Stasiak
9f16311aff Preliminary CPC support 2018-12-19 19:02:29 +01:00
Karol Stasiak
05884f2c7b Standard library improvements 2018-12-19 19:01:53 +01:00
Karol Stasiak
960cee5124 Foreach statement; emitting subprocedures 2018-12-19 18:13:38 +01:00
Karol Stasiak
fc10746522 Alias improvements:
– aliases can now override other objects
– take aliases into account when ordering functions for optimizations and inlining
2018-12-19 17:33:51 +01:00
Karol Stasiak
08f9426ccb Multiplication fixes and improvements 2018-12-19 01:10:39 +01:00
Karol Stasiak
2454f223c8 Return dispatch over enums 2018-12-19 01:04:56 +01:00
Karol Stasiak
585407e9bb Library improvements 2018-12-17 17:18:29 +01:00
Karol Stasiak
7616c246ee Fix Apple 2 text codec 2018-12-17 17:15:34 +01:00
Karol Stasiak
007b1dc839 C64: ROM cartridge support 2018-12-17 11:13:01 +01:00
Karol Stasiak
235700c44c Multiline value support in platform definition files 2018-12-17 10:41:28 +01:00
Karol Stasiak
8fcf628c8f Better tracking of the original source 2018-12-17 00:35:32 +01:00
Karol Stasiak
78afe3d5f5 Preliminary support for volatile variables 2018-12-16 21:07:04 +01:00
Karol Stasiak
cd8697552c Add sizeof operator 2018-12-16 15:43:17 +01:00
Karol Stasiak
f32d72b51f Multiplication u16×u8 2018-12-14 22:50:20 +01:00
Karol Stasiak
c28b71add5 6502: Stack-related things:
– software variable stack
– fixes for handling stack variables
2018-12-14 22:01:52 +01:00
Karol Stasiak
406d69c74a Add original line numbers to generated assembly 2018-12-14 15:42:31 +01:00
Karol Stasiak
fe1bf68295 Add align keyword 2018-10-04 21:34:53 +02:00
Karol Stasiak
f37696df5a Added #infoeval preprocessor directive 2018-09-28 22:49:28 +02:00
Karol Stasiak
376c3283b8 Improvements to trigonometric functions 2018-08-08 23:52:47 +02:00
Karol Stasiak
debeb8a609 Initial version of FAQ 2018-08-08 23:16:05 +02:00
Karol Stasiak
34b7107d27 Allow casting to wider types 2018-08-08 23:14:09 +02:00
Karol Stasiak
2b279ac5e8 Give the preprocessor access to compilation options 2018-08-08 13:44:30 +02:00
Karol Stasiak
2af8304512 Deduplicate more complex code. Better deduplication. 2018-08-08 01:53:47 +02:00
Karol Stasiak
8dfb223a8c Fast memset for Z80 and 6502 2018-08-07 17:37:09 +02:00
Karol Stasiak
ff16854a11 Code deduplication 2018-08-06 19:29:09 +02:00
Karol Stasiak
bf47473162 Allow setting the size of the zeropage register from the command line. 2018-08-06 19:15:41 +02:00
Karol Stasiak
516b44ad05 Add docs about Intel asm syntax 2018-08-03 17:26:26 +02:00
Karol Stasiak
48b183828b Z80: LDH instruction for LR35902 2018-08-03 16:43:31 +02:00
Karol Stasiak
f4a2c96512 Fix comparisons 2018-08-03 16:21:02 +02:00
Karol Stasiak
fab1cafec3 Z80: Intel syntax support 2018-08-03 13:23:37 +02:00
Karol Stasiak
388ceb8b3a 6502: software BCD, increase default zpreg to 4 2018-08-03 13:06:23 +02:00
Karol Stasiak
a8ab3b2c3f Documentation update 2018-08-03 13:00:52 +02:00
Karol Stasiak
e952d89849 Z80: Intel syntax for output. 2018-08-01 21:16:20 +02:00
Karol Stasiak
d4beba11a1 Z80: >>' operator 2018-08-01 18:49:37 +02:00
Karol Stasiak
107474978e Updated reentrancy documentation 2018-08-01 18:49:15 +02:00
Karol Stasiak
69f233e378 Z80: Interrupt handlers. Allow using IY as base pointer. 2018-08-01 12:50:05 +02:00
Karol Stasiak
f929e396df Preliminary CP/M support 2018-07-31 01:02:55 +02:00
Karol Stasiak
2046f94b55 Z80: Compile 8-bit values directly into registers other than A 2018-07-31 01:00:17 +02:00
Karol Stasiak
e0bec29318 Minor documentation updates 2018-07-31 00:58:43 +02:00
Karol Stasiak
2ef79d6894 Minor improvements for Intel 8080 and ZX Spectrum 2018-07-30 18:55:20 +02:00
Karol Stasiak
cb92b09942 Improvements related to large types:
– returning types larger than 2
– fastcall for 1 parameter of size 3 or 4 on Z80
– more integer types (up to int128)
– marked farword as a deprecated alias of int24
2018-07-30 14:33:16 +02:00
Karol Stasiak
070ae395ee Text literals in expressions, escape sequences, and more 2018-07-28 00:58:20 +02:00
Karol Stasiak
67f3034afb Enable 8080 and LR35902 for users 2018-07-27 19:12:54 +02:00
Karol Stasiak
7ea2fe6a4e Almost full LR35902 opcode space coverage 2018-07-27 19:07:12 +02:00
Karol Stasiak
27de426a38 Documentation updates 2018-07-25 00:04:00 +02:00
Karol Stasiak
9bcaffaa30 Z80: Faster calling convention 2018-07-24 01:43:59 +02:00
Karol Stasiak
a34acbf6ce Z80: Operators *'=, <<' and <<'= 2018-07-23 15:47:03 +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
2c8de8b6a5 Text encoding improvements 2018-07-07 00:58:44 +02:00
Karol Stasiak
351d2ac5f9 Documentation update 2018-07-03 23:28:05 +02:00
Karol Stasiak
24ae52e3cc Really early and very incomplete ZX Spectrum support 2018-07-03 22:37:18 +02:00
Karol Stasiak
a394ab631f Faster array iteration for Z80 2018-07-02 14:59:21 +02:00
Karol Stasiak
ed067d3a67 Splitting and tweaking documentation 2018-07-02 00:45:53 +02:00
Karol Stasiak
9512e8e7ae Really early and very incomplete PC-88 support 2018-07-02 00:31:47 +02:00
Karol Stasiak
35caae6d8b Unify syntax of command-line switches 2018-07-01 19:19:30 +02:00
Karol Stasiak
f51e42cc1d Fixed all the legal stuff 2018-06-25 22:42:12 +02:00
Karol Stasiak
2500f842e9 Interprocedural optimization plus some minor fixes:
– fixed handling LDX/LDY/LDZ when inlining variables into registers
– fixed CLA/CLX/CLY instruction generation
– refactored optimization definitions
2018-06-25 21:29:04 +02:00
Karol Stasiak
24a3943501 Array filters (@word, @word_be) 2018-06-18 02:52:14 +02:00
Karol Stasiak
70818cc3d2 Fixing invalid short jumps 2018-06-11 00:04:24 +02:00
Karol Stasiak
278cbcec63 Fixed return dispatch returns on LUnix. Added non-relocated address constants. 2018-06-10 01:56:04 +02:00
Karol Stasiak
8931ced6fc Preliminary LUnix support 2018-06-09 00:18:21 +02:00
Karol Stasiak
775707801c Documentation improvements 2018-06-09 00:05:17 +02:00
Karol Stasiak
c71af26989 Documentation updates 2018-06-04 16:24:18 +02:00
Karol Stasiak
e2f7c6ee32 Typo fix 2018-06-01 09:51:04 +02:00
Karol Stasiak
2f1faa12c2 A 24-bit integer type 2018-05-14 02:16:46 +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
76a30acf9a Preliminary BBC Micro support 2018-04-02 23:40:40 +02:00
Karol Stasiak
0ddf2f31c8 Inserting raw byte sequences in assembly 2018-04-02 21:40:54 +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
2ea964f35b Small documentation fix 2018-03-28 19:47:44 +02:00
Karol Stasiak
b93340e7d1 Set theme jekyll-theme-dinky 2018-03-28 19:38:48 +02:00
Karol Stasiak
c2a4110c6b Set theme jekyll-theme-cayman 2018-03-28 19:37:46 +02:00
Karol Stasiak
d484959a85 Set theme jekyll-theme-dinky 2018-03-28 19:36:03 +02:00
Karol Stasiak
66597ffc57 Set theme jekyll-theme-minimal 2018-03-28 19:31:51 +02:00
Karol Stasiak
1a0737e4c9 Rename documentation files 2018-03-28 19:31:10 +02:00