Commit graph

25 commits

Author SHA1 Message Date
slederer
87ec71bd6d align _END label, add ALIGN directive to assembler
- fixes failing memory allocator when _END label is not aligned
2025-11-05 00:30:49 +01:00
slederer
14d6de059d implement newOrNil, changes to stdlib
- newOrNil works like new, but sets the variable to nil
  if the heap allocation failed
- change stdlib to use newOrNil in openfile and openvolumeid
- changes to programs that use openvolumeid
2025-08-31 23:30:40 +02:00
slederer
0ea7dcef29 improve Makefile, update example pictures 2025-08-15 23:55:48 +02:00
slederer
8c420dff75 changemem: program to change heap/stack size in program files 2025-07-05 00:05:44 +02:00
slederer
901a2b3e6d sasm: set stack size correctly 2025-07-03 00:45:26 +02:00
slederer
bde01e402c add program to recover deleted files 2025-05-31 22:19:10 +02:00
slederer
bddddf190b Bugfix Makefile compiling shortgen, update gitignore 2025-05-15 02:10:22 +02:00
slederer
3eb51f7d4e add rogue submodule and support for compiling, some cleanup 2025-05-15 01:44:06 +02:00
slederer
3526060a19 sasm: bugfix for LBRANCH/LCBRANCH size changes
- The LBRANCH and LCBRANCH directives
  create different instruction sequences
  depending on the jump distance.
  So the code size can shrink during the first pass
  when the jump distance can be determined (when the
  label that is the jump destination is parsed).
  In the long form, LOADREL/JUMP is used, which might
  or might not need 2 bytes of padding. With this bugfix,
  the padding is always added, either before or after
  the LOADREL indirect operand, so that the code
  size does not change depending on the padding
  required. Otherwise the code might shrink further
  on the second pass because a LBRANCH/LCBRANCH
  instruction no longer needs padding due to an
  earlier code size change.
2025-04-07 00:25:32 +02:00
slederer
a1795d9b1f implement outward calling of nested procedures, fix standalone mode 2025-04-01 00:14:20 +02:00
slederer
6d08db2933 Correctly implement negative array indices, other bugfixes
- check for negative string lengths
- handle negative values for emitInc/emitDec
- bugfix for parseInteger with leading minus
- fix set literals containing variables as elements
2025-03-31 00:47:34 +02:00
slederer
bb602043d2 Bugfix skip-line directive with Unix line endings 2025-03-30 23:31:58 +02:00
slederer
dd1e1f7b41 disallow GOTO when it could corrupt the estack
- this occurs inside a FOR or CASE statement
- GOTO out of a WHILE or REPEAT loop  works
2025-02-20 01:41:08 +01:00
slederer
c779cd0d3f stdlib: add nointr procedure
stdlib: give PExec2 and PExec3 more sensible names

pcomp: increase heap size
2025-02-02 01:18:01 +01:00
slederer
74a467cba6 pcomp: Increase heap and stack sizes 2025-01-12 00:02:54 +01:00
slederer
def08c6c94 add serload python script, wrong filename in make.bat 2024-11-25 00:09:35 +01:00
slederer
7fdbd247e6 adjust some filename suffixes for new stdlib scheme 2024-11-11 00:33:26 +01:00
slederer
840299187d adjust Makefile for precompiled stdlib 2024-11-09 23:18:58 +01:00
slederer
fbc72c5438 sasm: show filename when processing INCBIN
libgen: renamed
2024-11-09 23:02:39 +01:00
slederer
91cb059f38 use precompiled standard library (not really a linker) 2024-11-09 22:22:48 +01:00
slederer
5ce5bc44b8 sasm: use filesize() for incbin directive 2024-11-09 19:03:09 +01:00
slederer
ab57b5ce7a sasm: add INCBIN meta directive 2024-11-09 00:54:57 +01:00
slederer
19f7d2a0eb Bugfix return type for some set operators 2024-10-16 02:01:12 +02:00
slederer
a35b8eaf60 Bugfix int range in sasm, create Makefile, portability fixes 2024-10-06 23:51:57 +02:00
slederer
60db522e87 initial commit 2024-09-19 14:12:22 +02:00