Commit Graph

325 Commits

Author SHA1 Message Date
Irmen de Jong
f070dc22bb save X register automatically when calling sub that clobbers X 2018-12-09 19:48:59 +01:00
Irmen de Jong
89ac374db9 float stuff 2018-12-02 17:59:36 +01:00
Irmen de Jong
6c8354aef0 taking the address of strings and arrays 2018-11-23 00:31:21 +01:00
Irmen de Jong
069f6ea372 improved assignment of single character values and strings 2018-11-22 00:58:21 +01:00
Irmen de Jong
d6432df90d got rid of 16-bit register pair variables (AX, AY, XY) they were complicating things too much 2018-11-02 22:06:57 +01:00
Irmen de Jong
5bf2c4a798 got rid of matrix type 2018-10-30 20:29:03 +01:00
Irmen de Jong
1fea9e3bc4 matrix doc 2018-10-27 22:16:18 +02:00
Irmen de Jong
a825bbff96 fix array problems, limit size of arrays. 2018-10-23 00:52:51 +02:00
Irmen de Jong
ba384c9722 rsave/rrestore added 2018-10-14 22:32:03 +02:00
Irmen de Jong
b52120139c 6502 start 2018-10-14 01:55:39 +02:00
Irmen de Jong
987915a77a doc 2018-10-12 18:01:40 +02:00
Irmen de Jong
7aec14524e fix datatype conversion issues 2018-10-12 15:50:32 +02:00
Irmen de Jong
f5261a3425 added %zpreserved 2018-10-09 00:01:53 +02:00
Irmen de Jong
42394f561b syntax checks on asmsubs 2018-10-08 22:35:39 +02:00
Irmen de Jong
34d26e42e1 fixed some type checks 2018-10-07 02:05:26 +02:00
Irmen de Jong
30b58c8567 variables are reset to their declared value when entering the scope again 2018-10-07 00:21:13 +02:00
Irmen de Jong
6edd5f9b30 can now declare for loop variable on the spot 2018-10-06 22:54:03 +02:00
Irmen de Jong
1d37841575 for, while, repeat, if, branch bodies are now (anonymous) symbol scopes 2018-10-06 18:42:06 +02:00
Irmen de Jong
a7abc32368 wrd and wrdhi functions added for byte-word conversion, more constant folding optimizations 2018-10-06 00:10:30 +02:00
Irmen de Jong
42e4891fcf allowing vardecl with non-const initial value assignment 2018-10-05 00:29:46 +02:00
Irmen de Jong
4501276217 cube3d and tweaks 2018-10-03 01:57:16 +02:00
Irmen de Jong
38e7d48492 implemented floating-point arrays 2018-10-02 02:20:42 +02:00
Irmen de Jong
0cdae48ce7 implemented array indexing 2018-10-01 22:23:16 +02:00
Irmen de Jong
623b42cc14 added single character literals (petscii byte value) 2018-09-30 23:07:26 +02:00
Irmen de Jong
3278d4c945 fixed function calls, added some string-to-number conversion functions 2018-09-30 22:43:34 +02:00
Irmen de Jong
02075f2cf2 changed subroutine syntax and fixed array/matrix initalizer values 2018-09-30 18:49:58 +02:00
Irmen de Jong
c5d251073f removed broken unused symbol clean up for now
streamlined irq routine handling and compilation
2018-09-28 21:28:16 +02:00
Irmen de Jong
bf5c2e07a2 subroutines cannot use builtin function names for parameters 2018-09-27 23:58:14 +02:00
Irmen de Jong
91f9229b07 fixed memory vars in compiler, added invalid assignment check 2018-09-27 23:21:04 +02:00
Irmen de Jong
53cd50ad48 changed float handling and appropriate compiler messages 2018-09-25 19:52:59 +02:00
Irmen de Jong
70e5a38aa2 changed set/clear carry and irqd somewhat 2018-09-24 23:38:33 +02:00
Irmen de Jong
cef0aae927 compilation of builtin functions to opcode
untit tests for stackvm opcodes, value and parser literalvalue
2018-09-24 22:34:12 +02:00
Irmen de Jong
68037e4425 implemented while and repeat loops 2018-09-23 02:04:45 +02:00
Irmen de Jong
f84e06bdeb tweak branches 2018-09-22 00:33:25 +02:00
Irmen de Jong
455f60fb84 for loop and comparison expression fixes 2018-09-20 01:13:21 +02:00
Irmen de Jong
cba9e7670e added floordivision operator // 2018-09-19 01:24:28 +02:00
Irmen de Jong
00d74551b3 fix for loop code generation.
added flt conversion function.
attempt at implementing break and continue.
var initializer value can be omitted for numeric vars (and default to 0)
subroutine return statement not needed when no return values.
2018-09-18 23:14:32 +02:00
Irmen de Jong
63492a1805 stackvm functions 2018-09-18 00:38:29 +02:00
Irmen de Jong
266f98a888 doc 2018-09-16 11:25:37 +02:00
Irmen de Jong
2591f4e27e forloop in grammar 2018-09-16 03:00:32 +02:00
Irmen de Jong
19cedf91ff prog8 logos 2018-09-16 01:28:07 +02:00
Irmen de Jong
1a40a88103 added remainder operator '%' 2018-09-16 00:59:12 +02:00
Irmen de Jong
3426593a06 fixed a load of type checks regarding arrays and matrixes and strings
added more builtin functions to the compiler to access the syscalls in the stackVm
2018-09-16 00:06:06 +02:00
Irmen de Jong
c05cd72d23 vm tweaks 2018-09-15 18:43:23 +02:00
Irmen de Jong
e382be89db changed source file suffix to .p8 2018-09-15 16:35:15 +02:00
Irmen de Jong
8ff72167a4 renamed project to Prog8 2018-09-15 16:21:05 +02:00
Irmen de Jong
6da048ba4c some type conversion opcodes added 2018-09-15 04:07:42 +02:00
Irmen de Jong
70fe43a6ac improved type checking of builtin functions 2018-09-15 03:12:30 +02:00
Irmen de Jong
28aaf38f22 made position required to avoid some bugs where it was not specified
fixed some type checking bugs
2018-09-15 01:28:01 +02:00
Irmen de Jong
ea94063689 now explicit separation between byte and word literal integers 2018-09-13 23:39:54 +02:00
Irmen de Jong
949e468543 more stackvm opcodes, and sort of finished the stackvm compiler 2018-09-13 03:16:44 +02:00
Irmen de Jong
efd3b1f5c6 matrix decl parsing and fixes 2018-09-12 03:07:49 +02:00
Irmen de Jong
8ef61ffc88 various syntax checks added
first steps code generation
2018-09-08 00:07:25 +02:00
Irmen de Jong
e928997193 arrays are now a datatype as well
fixed array initializer checks
2018-09-06 22:28:37 +02:00
Irmen de Jong
3933fdab13 added lsb, msb functions.
fixed missing errormessages.
changed some zp options.
2018-09-06 21:13:49 +02:00
Irmen de Jong
0b4135698e reorder statments to please the compiler later 2018-09-06 01:35:26 +02:00
Irmen de Jong
d9865a4b97 bunch of new builtin functions, const expression evaluation now also done for array literals 2018-09-04 23:37:21 +02:00
Irmen de Jong
76d07a2de8 recursion checking and bugfix in subroutine usage determination 2018-09-03 23:19:25 +02:00
Irmen de Jong
e39ae3c346 branching instructions 2018-09-02 18:32:48 +02:00
Irmen de Jong
d4341b7afe more builtin functions 2018-09-02 12:34:50 +02:00
Irmen de Jong
6701f2a3a4 fix lib and gitignore 2018-09-01 20:38:01 +02:00
Irmen de Jong
640457f35a stuff 2018-09-01 19:40:28 +02:00
Irmen de Jong
26a7a3c8d0 zeropage 2018-08-16 23:10:28 +02:00
Irmen de Jong
4b7d656a2f range initializers 2018-08-14 16:29:08 +02:00
Irmen de Jong
397fdc61cd if statement 2018-08-14 14:33:36 +02:00
Irmen de Jong
69ff680eaf fix functions 2018-08-14 02:22:59 +02:00
Irmen de Jong
666b9b2263 functions 2018-08-14 01:15:11 +02:00
Irmen de Jong
64032d766e %option 2018-08-13 10:51:05 +02:00
Irmen de Jong
aadd50cc27 optimizer first steps 2018-08-11 19:55:04 +02:00
Irmen de Jong
d702dd1e74 more grammar 2018-08-11 03:22:55 +02:00
Irmen de Jong
437c948c05 grammar 2018-08-09 01:54:43 +02:00
Irmen de Jong
cee0f5bd2a more docs. restructure project. add antlr stuff. 2018-08-07 22:49:01 +02:00
Irmen de Jong
b34ae4c91c new docs 2018-08-07 01:23:34 +02:00
Irmen de Jong
0e785fcfb3 new docs 2018-08-06 03:35:43 +02:00
Irmen de Jong
bc8d56cbd7 rethinking some aspects and rewriting text a bit 2018-07-01 23:24:32 +02:00