Irmen de Jong
10b5fb5d72
fix for total size returnvalue of diskio.f_read_all()
2022-06-01 01:13:19 +02:00
Irmen de Jong
a735939d1e
removed confusing GPL software license reference and copyright header from library files. (because of exclusion in output files)
...
Reworded software license and exclusion clause somewhat again in attempt to make it even clearer.
2022-05-30 20:12:20 +02:00
Irmen de Jong
6ed5f04970
version 8.1
2022-05-25 20:00:26 +02:00
Irmen de Jong
e69aeb8b98
added warning about shadowing variables
2022-05-22 17:34:08 +02:00
Irmen de Jong
4e1184a400
vm: added some of the sin cos tables in math.p8
2022-05-17 22:56:00 +02:00
Irmen de Jong
0bf00d1ca4
c64/c128 targets: perform cleanup at program exit such as re-enabling run-stop key and character set switching.
2022-05-15 16:44:26 +02:00
Irmen de Jong
4dc9b45297
vm: fixed string comparisons, added missing vm string module
2022-05-13 23:10:13 +02:00
Irmen de Jong
4be7bc8323
vm: limit float instructions to just 2 register args
2022-05-11 22:09:46 +02:00
Irmen de Jong
942c5cc04b
fix crash when optimizing pipe expression too aggressively
2022-05-07 17:29:36 +02:00
Irmen de Jong
b1a49e5f29
vm: implement rest of float instructions
2022-05-04 22:31:45 +02:00
Irmen de Jong
da01a5b4dc
vm: implement float to integer cast, any, all, reverse
2022-05-04 22:08:21 +02:00
Irmen de Jong
0f9e87d7bb
fixed compiler crash when casting float to integer, fixed float to int cast value error on cx16
2022-05-03 23:43:38 +02:00
Irmen de Jong
30c2e3e8ff
vm: fix comparisons codegen
2022-05-02 21:32:45 +02:00
Irmen de Jong
86cc2f1075
vm: implementing more fp instructions
2022-05-02 21:06:14 +02:00
Irmen de Jong
b32641db87
remove syscall() builtin functions
...
vm code can do this via inline assembly
2022-05-01 00:41:30 +02:00
Irmen de Jong
0ee790969d
vm: allow inline "assembly"
2022-04-30 23:24:25 +02:00
Irmen de Jong
7844ace934
vm: implementing floating-point
2022-04-29 22:27:02 +02:00
Irmen de Jong
cf50e4f6ec
vm: printing of numbers now via conv module.
...
assigning strings now converted to strcopy function call in the compiler ast.
2022-04-23 02:15:51 +02:00
Irmen de Jong
7eea97d741
- floats: remove all floating point builtin functions and move them to the floats module instead
2022-04-22 00:45:54 +02:00
Irmen de Jong
88b55ab93e
vm: add abs() and fix 6502 abs() code.
2022-04-18 21:20:17 +02:00
Irmen de Jong
ee36d47c27
vm: added cmp() and most of the status-branch instructions
2022-04-18 19:59:48 +02:00
Irmen de Jong
7dbff5b9e6
abs: remove support for floats. Use floats.fabs() instead.
...
this solves: can't use abs() etc in pipe expression because return type depends on argument type
2022-04-14 00:38:31 +02:00
Irmen de Jong
220246278a
removed sum(), max(), min(). abs() now always returns uword type.
...
This greatly simplifies internal handling of builtin functions by always having one fixed return type.
2022-04-14 00:21:16 +02:00
Irmen de Jong
ab1766a559
moved all *integer* builtin trig functions (sin8u, cos8u etc) as regular asmsubs in math module
2022-04-13 00:27:35 +02:00
Irmen de Jong
a2c7273801
vm: use memory load instruction better
2022-04-11 20:55:06 +02:00
Irmen de Jong
a0face4a28
vm: implementing rol/ror
2022-04-09 11:13:49 +02:00
Irmen de Jong
a8cf9f5cc4
vm: syscalls can now return value
2022-04-05 20:46:34 +02:00
Irmen de Jong
1d342cc6af
optimize cx16 textio.setcc()/setcc2()
2022-04-04 22:23:06 +02:00
Irmen de Jong
62b32b2211
todos
2022-04-03 22:56:13 +02:00
Irmen de Jong
9874fe2c23
fix superfluous printing of WARN/ERROR words
2022-04-02 22:16:47 +02:00
Irmen de Jong
520a142992
version 8.0
2022-04-02 19:10:18 +02:00
Irmen de Jong
3e62ffed0a
x16 r39: optimize diskio.load_raw() to use kernal's headerless load support
2022-04-02 03:26:48 +02:00
Irmen de Jong
037b89f018
x16 r39: tweak kbdbuf_peek() result value
2022-04-01 23:47:09 +02:00
Irmen de Jong
156cf7315c
x16 r39: add new keyboard apis and more vector location definitions
2022-04-01 21:41:38 +02:00
Irmen de Jong
fb6e9fa58f
x16 r39: fix textio routines for new vera memory layout
2022-03-31 23:47:11 +02:00
Irmen de Jong
b2ce1e8029
x16 r39: fix gfx2.text() charset rendering due to new Vera mem layout
2022-03-31 18:51:54 +02:00
Irmen de Jong
d90c51220f
x16 r39: additional FP routine changes
2022-03-31 18:43:32 +02:00
Irmen de Jong
d911728611
x16 r39: cx16.mouse_config() API changed, added mouse_config2() convenience wrapper
2022-03-31 18:24:23 +02:00
Irmen de Jong
86a7200012
x16 r39: cx16.screen_set_mode() -> cx16.screen_mode()
2022-03-31 18:17:28 +02:00
Irmen de Jong
582c498fe3
major version bump because upcoming breaking changes in cx16 r39 release target (kernal routines)
2022-03-31 00:12:26 +02:00
Irmen de Jong
3e1a7c6102
fix vm signed comparisons
2022-03-29 00:57:33 +02:00
Irmen de Jong
6d79903eb3
workin on vm issues
2022-03-28 01:49:43 +02:00
Irmen de Jong
30cbb6c9a8
implementing more of the vm
2022-03-27 21:59:46 +02:00
Irmen de Jong
4e33ab1e89
cx16 target: update float routine addresses to new r39 kernal FP package
2022-03-27 19:34:49 +02:00
Irmen de Jong
5494f309c0
working on vm
2022-03-27 17:46:15 +02:00
Irmen de Jong
3b6e7eccdd
simplified containment check, only possible on string and arrays (as per the docs)
2022-03-27 16:59:55 +02:00
Irmen de Jong
ed30108961
removed '**' power-operator. Use floats.pow() instead.
2022-03-27 13:16:34 +02:00
Irmen de Jong
12712ef812
working on vm
2022-03-27 11:48:44 +02:00
Irmen de Jong
7424f1f768
remove kernal bug workaround for joystick_get() routine. Fixes #39
2022-03-25 18:03:33 +01:00
Irmen de Jong
b5331d821c
fix string encoding for escaped characters
2022-03-25 00:17:41 +01:00
Irmen de Jong
27f6d47efa
working on vm codegen
2022-03-24 23:26:57 +01:00
Irmen de Jong
fd581ffc37
moved pattern_match() from prog8_lib to string module
2022-03-21 21:32:10 +01:00
Irmen de Jong
9b16d7c786
working on vm
2022-03-20 15:06:29 +01:00
Irmen de Jong
7d2bf892b1
added start of virtual machine compilation target
2022-03-19 00:57:35 +01:00
Irmen de Jong
a03c4c3659
working on symbol table
2022-03-04 22:26:46 +01:00
Irmen de Jong
2812736ae5
preparing version 7.9
2022-03-03 00:42:53 +01:00
Irmen de Jong
c5504c6657
added ATASCII encoding table for atari
2022-02-25 23:48:39 +01:00
Freddy
ad9933f0f6
fixed chrout for atari and added two examples
2022-02-23 16:42:22 +01:00
Irmen de Jong
406658a10f
reimplemented sys.memcopy and sys.memset on cx16 to work without kernal too
2022-02-22 21:07:19 +01:00
Irmen de Jong
6a0551cea1
added 'atari' compiler target beginnings (Atari 800 XL)
...
also default char and string encoding now taken from compiler target
2022-02-22 00:52:35 +01:00
Irmen de Jong
af0e7f7187
searching names in inlined assembly now ignores source comments
2022-02-13 13:41:12 +01:00
Irmen de Jong
a3a6812608
version 7.8
2022-02-12 17:40:32 +01:00
Irmen de Jong
343f01d5e1
re-enabled unused variable removal from library modules (+fixed some @shared vars in libraries)
2022-02-10 03:10:47 +01:00
Irmen de Jong
08bacdd090
temp vars are now dynamically added to AST as needed
2022-02-10 02:52:47 +01:00
Irmen de Jong
8c2e6971fc
start using vars instead of callgraph (2)
2022-02-08 21:09:00 +01:00
Irmen de Jong
1903990f30
start using vars instead of callgraph
2022-02-08 20:40:10 +01:00
Irmen de Jong
7d67005709
more rewrite variable allocation
2022-02-08 20:40:10 +01:00
Irmen de Jong
72dfb0bda3
fix: undefined sys.memcopy when initializing array on cx16
2022-02-08 20:29:47 +01:00
Natt Akuma
49d37c016e
Optimize strcmp_mem
2022-02-04 22:07:03 +07:00
Natt Akuma
73dfb5f443
Optimize sign extension to AY
2022-02-04 00:59:44 +07:00
Irmen de Jong
fa48746ba9
increase internal buffer for diskio.list_files to be able to list larger directories
2022-01-26 03:17:33 +01:00
Irmen de Jong
46f9fab140
library API change: string.find now returns index of character + carry bit status (instead of substring address)
2022-01-24 21:37:04 +01:00
Irmen de Jong
b7d06f2c0a
API change: added alignment parameter to memory() function
2022-01-24 18:58:57 +01:00
Irmen de Jong
118196a0bf
library API change: moved cx16.vload() to cx16diskio module
2022-01-24 18:31:18 +01:00
Irmen de Jong
adb979df38
tweak comment
2022-01-23 22:34:05 +01:00
Irmen de Jong
3401cb5b4a
fixed compiler recursion crash when returning certain typecasted value
2022-01-23 19:13:20 +01:00
Irmen de Jong
c8bd57cd4d
fixed signature of mouse_get(): it returns the buttonstatus in A. Added convenience cx16.mouse_pos() routine.
2022-01-21 22:06:17 +01:00
Irmen de Jong
6b02f2eea0
implement iso encoding and new string encoding syntax, fixes #38
2022-01-19 21:21:32 +01:00
Irmen de Jong
5237e55326
added txt.iso() to enable iso-charset on cx16
2022-01-18 21:35:29 +01:00
Irmen de Jong
d916027e75
labels no longer start with '_' fixes #62
2022-01-17 22:03:53 +01:00
Irmen de Jong
8966d2aa06
comments and prepare new version 7.7
2022-01-16 23:03:00 +01:00
Irmen de Jong
50c16fe6de
code size optimization: don't copy floats with inlined copy code but use copy_float routine
2022-01-09 16:18:13 +01:00
Irmen de Jong
c1a39c269e
optimized code for stack eval comparisons with zero
2022-01-09 03:19:49 +01:00
Irmen de Jong
8f3df3039a
added pipe operator `|>
`
2022-01-06 22:54:18 +01:00
Irmen de Jong
c57ef7725e
preparing v7.6
2022-01-04 20:40:35 +01:00
Irmen de Jong
96225efd96
library doc tweaks
2022-01-03 23:15:34 +01:00
Irmen de Jong
05a1ddad05
Merge branch 'master' into c128target
...
# Conflicts:
# examples/test.p8
2021-12-29 18:14:24 +01:00
Irmen de Jong
de6ce4a46e
add "X in [1,2,3]" expression (efficient containment check)
2021-12-29 17:26:00 +01:00
Irmen de Jong
d4153da8b9
setup float routine addresses for c128
2021-12-25 02:34:52 +01:00
Irmen de Jong
fc33ab8905
shuffled some system functions back to c64 block to remain compatible with existing code, added missing float and graphics library stubs
2021-12-24 00:08:32 +01:00
Irmen de Jong
8fa84de28e
fix c128 clearscreen and bdmusic sound issue
2021-12-22 22:59:36 +01:00
Irmen de Jong
3e3da38de1
correctly disable charset switching
2021-12-22 21:47:41 +01:00
Irmen de Jong
cabf1e82e8
some shadow registers added to make uppercase()/lowercase() work
2021-12-22 21:20:34 +01:00
Irmen de Jong
836d40072f
c128 evalstack corrections
2021-12-22 00:07:05 +01:00
Irmen de Jong
431401d90e
c128 corrections
2021-12-21 23:37:15 +01:00
Irmen de Jong
6da83e2bd7
first steps to add C128 compiler target
2021-12-21 19:08:33 +01:00
Irmen de Jong
890327b381
the returnvalue of the diskio.load() function family now is just the last load address+1 (like kernal's LOAD routine).
...
This fixes the inconsistent attempt to calculate a size, just let the caller do this if required.
Added a small helper function in cx16diskio to do this for loads that span multiple banks.
2021-12-14 23:54:42 +01:00
Irmen de Jong
5df623bd2e
doc
2021-12-14 22:40:03 +01:00
Irmen de Jong
02010170ce
fix compiler crash when attempting to call a non-function
2021-12-11 13:20:13 +01:00
Irmen de Jong
35998142fe
version 7.5
2021-12-10 20:18:17 +01:00
Irmen de Jong
d901a1531f
added missing vectors to syslib
2021-12-09 21:38:00 +01:00
Irmen de Jong
d8d56b195f
comments
2021-12-09 21:13:13 +01:00
Irmen de Jong
900cdd3fa1
added cx16diskio with load() and load_raw() that are HIMEM bank-aware
2021-12-05 02:20:48 +01:00
Irmen de Jong
20401b99d8
added cx16.getrambank() / getrombank() to retrieve the current ram and rom bank numbers.
2021-12-04 15:27:54 +01:00
Irmen de Jong
9a68864b67
version 7.5-dev
2021-12-04 00:18:44 +01:00
Irmen de Jong
72d7178762
added diskio.load_raw() to load headerless files
2021-12-04 00:07:21 +01:00
Irmen de Jong
b7fffbb6df
release 7.4.1 - oops, funcion call arg count validation was broken
2021-12-01 21:44:03 +01:00
Irmen de Jong
1f346230e3
release 7.4
2021-11-30 22:50:12 +01:00
Irmen de Jong
7748c261da
rsave/rrestore moved from sys to builtin function to solve the stack related problem when calling it as a regular subroutine
2021-11-29 23:13:04 +01:00
Irmen de Jong
56dc6d7f1e
comment
2021-11-29 01:10:11 +01:00
Irmen de Jong
45b8762188
use inc/ina instead of adc
2021-11-29 00:07:15 +01:00
Irmen de Jong
e8f4686430
undid failed attempt of using sys.push/sys.pop for stack args - now using new push(), pushw(), pop(), popw() builtin functions
2021-11-28 01:22:40 +01:00
Irmen de Jong
02348924d0
failed attempt of using sys.push/pop for stack args
2021-11-27 23:52:47 +01:00
Irmen de Jong
8b4ac7801f
fix sys.push() signature for c64
2021-11-27 20:18:41 +01:00
Irmen de Jong
e8e25c6fd6
added sys.push() and sys.pop() to put values on cpu stack. Added missing builtin functions to syntax-files.
2021-11-27 18:09:15 +01:00
Irmen de Jong
54025d2bf5
small refactor and spelling fixes
2021-11-27 14:49:18 +01:00
Irmen de Jong
0a53bd4956
fix parameter name conflict
2021-11-26 01:01:59 +01:00
Irmen de Jong
0c2f30fd45
links to 6502 bresenham line algorithms
2021-11-23 21:51:18 +01:00
Irmen de Jong
e08871c637
oops! replace phx/plx 65C02 (cx16) instructions by 6502 (c64) compatible alternative.
...
Couldn't assemble code that used some of the routines in conv on c64 before...
2021-11-22 21:02:43 +01:00
Irmen de Jong
dde4c751da
version 7.4-dev
2021-11-21 03:28:13 +01:00
Irmen de Jong
fa11a6e18b
removed faulty and too aggressive assembly optimization of double-store
2021-11-18 01:43:22 +01:00
Irmen de Jong
5fd83f2757
version 7.3
2021-11-14 22:55:13 +01:00
Irmen de Jong
53e1729e2f
introduce option to use internal scratch variables via prog8_lib definitions (ony for compiler, not for user code!)
2021-11-14 16:01:54 +01:00
Irmen de Jong
00c6f74481
tweak temp float
2021-11-13 12:56:59 +01:00
Irmen de Jong
2177ba0ed2
added signed versions of the cx16 virtual registers
2021-11-13 02:42:21 +01:00
Irmen de Jong
8df3da11e3
add cosr8, sinr8, cosr16 and sinr16 builtin functions that take a degree 0..179 (= 0..358 in 2 degree steps)
...
to more easily scale halves/quarters etc of a circle than possible with the ones that take 0..255 'degrees'.
2021-11-09 23:39:26 +01:00
Irmen de Jong
857724c7e6
attempt to make if-statement not use stack eval anymore
2021-11-08 19:07:36 +01:00
Irmen de Jong
f4c4ee78d9
re-use global returnvalue temp var instead of duplicating it in every subroutine that needs it
2021-11-07 14:19:21 +01:00
Irmen de Jong
72a7e61fd0
version 7.2
2021-11-06 23:42:13 +01:00
Irmen de Jong
1605791f1b
float swap() no longer uses evaluation stack but a single temp var instead + FAC1
2021-11-06 03:36:14 +01:00
Irmen de Jong
3410aea788
fix regression: don't add 0 initializer when variable is assigned to anyway (or is loopvar in a for-loop)
2021-11-02 21:23:59 +01:00
Irmen de Jong
14aad2358f
version 7.2 started
2021-10-16 18:46:08 +02:00
Irmen de Jong
07132a2c42
removed unreliable inlining of non-asmsub subroutines. Fixes #60
2021-10-08 23:09:38 +02:00
Irmen de Jong
b3107cfad0
Merge branch 'master' into v7.1
2021-10-04 22:38:53 +02:00
Irmen de Jong
06b3bf27b5
slightly improve sys.waitvsync() on c64
2021-10-03 21:35:12 +02:00
Irmen de Jong
3aeca0a770
Merge branch 'master' into v7.1
2021-09-28 23:15:06 +02:00
Irmen de Jong
4bd4733e52
fix index calc bug in palette.set_color
2021-09-28 23:12:59 +02:00
Irmen de Jong
fd1f30f92b
removed %target directive (didn't add much, too confusing, only supported single target)
2021-09-04 15:01:16 +02:00
Irmen de Jong
9bd3a6758a
improve testability: use error returnvalues instead of using exitProcess()
2021-07-02 00:11:21 +02:00
Irmen de Jong
f53848b4b9
wording and version
2021-06-24 21:25:35 +02:00
Irmen de Jong
73863acc12
version bump
2021-06-06 10:50:05 +02:00
Irmen de Jong
e145d2255e
added palette.set_all_black() and set_all_white()
2021-05-26 21:33:18 +02:00
Irmen de Jong
d7f83f8df2
version bump
2021-05-20 23:38:41 +02:00
Irmen de Jong
e4fb5946dd
optimize cx16 sys.wait and sys.waitvsync to use WAI instruction
2021-05-17 18:44:42 +02:00
Irmen de Jong
0416aacbbd
fix %asminclude by removing scopelabel argument and improving docs to remove false promise about labels
2021-05-16 00:14:57 +02:00
Irmen de Jong
e2f5752d9a
add f_open_w, f_write, f_close_w to diskio to be able to save parts of memory sequentially
2021-05-01 19:13:56 +02:00
Irmen de Jong
1a59019fc8
add generic error in diskio.status() if drive status can't be read
2021-05-01 15:39:39 +02:00
Irmen de Jong
0a5b30e21c
added fast code for x*640
2021-04-30 22:30:21 +02:00
Irmen de Jong
5ee36c897d
todo
2021-04-29 00:57:32 +02:00
Irmen de Jong
ed7479c854
version 7 due to removal of structs and v39 cx16 support changes
2021-04-29 00:15:54 +02:00
Irmen de Jong
1bde7c7718
ver
2021-04-28 20:05:56 +02:00
Irmen de Jong
17068130bb
removed PROG8_LIBDIR env variables and replaced with -libdirs command line option
2021-04-28 20:04:23 +02:00
Irmen de Jong
81a91d62cb
improved horizontal_line in highres 4c
2021-04-28 02:55:49 +02:00
Irmen de Jong
2575263438
optimized gfx2.plot() for hires-4c
2021-04-28 02:49:25 +02:00
Irmen de Jong
7f0e25cb50
optimized gfx2.plot() for hires-monochrome
2021-04-28 02:32:11 +02:00
Irmen de Jong
a1e4e9c50f
optimized gfx2.plot() for lores-256c
2021-04-28 02:22:21 +02:00
Irmen de Jong
98eff2701b
optimized gfx2.plot() for lores-monochrome
2021-04-28 02:15:07 +02:00
Irmen de Jong
8b84f87217
removed fastrnd8() because it was hilariously bad, just use rnd()
2021-04-28 01:53:12 +02:00
Irmen de Jong
306a1b7bc2
optimized gfx2.vertical_line for hires monochrome mode
2021-04-28 01:19:10 +02:00
Irmen de Jong
481214c46e
optimized gfx2.vertical_line for lores monochrome mode
2021-04-28 01:02:29 +02:00
Irmen de Jong
a5961cbeab
optimized gfx2.vertical_line for highres 4c mode
2021-04-28 00:29:21 +02:00
Irmen de Jong
ee1c43ca91
improved scanning for return statement in routines that should return a value.
2021-04-21 20:31:29 +02:00
Irmen de Jong
1c2e6f9e4c
lower() and upper() now also return the lenght of the processed string.
2021-04-21 20:21:58 +02:00
Irmen de Jong
3d956ef554
fix wrong values for register used in array indexing expressions
...
added the L/H byte parts of the cx16 virtual registers
2021-04-18 13:53:02 +02:00
Irmen de Jong
e680de05ea
workaround for the joystick_get() irq problem
2021-04-15 22:56:52 +02:00
Irmen de Jong
8d567f6b06
added cx16.joystick_get2() for convenience api
2021-04-12 01:07:46 +02:00
Irmen de Jong
3dda29781e
changed MEMTOP2 into cx16.numbanks() to query the number of RAM banks installed
2021-04-08 01:05:38 +02:00
Irmen de Jong
d116eb7655
paranoid, be sure to not kill carry
2021-04-06 23:55:20 +02:00
Irmen de Jong
bc726c6334
optimized slow evaluation of byte-to-wordarray assignment
2021-04-06 22:50:16 +02:00
Irmen de Jong
123473dfc8
cleanup
2021-04-06 00:16:29 +02:00
Irmen de Jong
5b890847e5
make sure BASIC rom is banked in again when program exits
2021-04-05 23:12:10 +02:00
Irmen de Jong
64c85b9617
fix cx16 rom v39 float changes
2021-04-05 22:54:40 +02:00
Irmen de Jong
3f30d3aa89
added sys.waitrastborder() for c64
2021-04-01 18:53:16 +02:00
Irmen de Jong
129e17b33a
added sys.waitvsync() + missing documentation
2021-04-01 18:31:33 +02:00
Irmen de Jong
bf2d8c3f4b
update kotlin plugin to 1.4.32
2021-03-31 20:52:05 +02:00
Irmen de Jong
ec60cad8bb
commander-x16 prototype board #2 (rom v39+) address changes
2021-03-27 22:20:46 +01:00
Irmen de Jong
4cae2c56ec
implemented last remaining codegen for word-byte division and remainders.
2021-03-25 22:03:36 +01:00
Irmen de Jong
ca868ae19e
added cx16.vload() (like the VLOAD basic instruction)
2021-03-20 02:39:53 +01:00
Irmen de Jong
b30b8b7368
fix bug in float < and > comparisons
2021-03-18 01:41:54 +01:00
Irmen de Jong
b5523c7077
don't optimize with inlining too aggressively (code bloat)
2021-03-16 00:33:15 +01:00
Irmen de Jong
eb3594b18c
revert to just using comparison expressions in graphics code (we're optimizing these now!)
2021-03-16 00:11:55 +01:00
Irmen de Jong
852d85d010
improve uword '<' and '>' codegen
2021-03-16 00:03:51 +01:00
Irmen de Jong
496a3b0d2c
todo
2021-03-15 18:56:25 +01:00
Irmen de Jong
1c1da8e38e
additional optimization to the bresenham line routines
2021-03-10 18:49:40 +01:00
Irmen de Jong
6995ee2d17
fix cx16 bresenham line inaccuracy
2021-03-09 22:04:19 +01:00
Irmen de Jong
6c60ea9cac
allocate even more c64 zeropage locations for floats
2021-03-09 21:47:36 +01:00
Irmen de Jong
6bd205c02a
fix c64 bresenham line inaccuracy
2021-03-09 21:07:55 +01:00
Irmen de Jong
62ec77e148
ver
2021-03-08 23:35:52 +01:00
Irmen de Jong
9120e1de88
fix ubyte/uword to float conversion crashes on Commander X16
2021-03-08 23:21:52 +01:00
Irmen de Jong
60e169bd87
added optimized integer square (x*x) routine
2021-03-08 23:08:47 +01:00
Irmen de Jong
e4bca5fe47
version
2021-03-06 23:07:30 +01:00
Irmen de Jong
a1729b65ab
fix min(), max(), sum(), abs()
2021-03-06 22:57:22 +01:00
Irmen de Jong
de04bd8cfa
added more convenient number-to-string functions to conv library
2021-03-06 13:47:27 +01:00
Irmen de Jong
076a547f91
added more convenient number-to-string functions to conv library
2021-03-06 13:34:57 +01:00
Irmen de Jong
dffd0a2706
added fastrnd8() with the old rnd() generator code in it, new code for rnd() uses the much better rndw() generator now.
2021-03-05 22:49:14 +01:00
Irmen de Jong
96ba9f5902
spelling correction
2021-03-04 01:31:29 +01:00
Irmen de Jong
7e3e18a5c7
deal with 'bra' better on 65c02
2021-02-28 16:20:03 +01:00
Irmen de Jong
8e3ebc84f0
readme
2021-02-28 15:40:04 +01:00
Irmen de Jong
2b435fe6a5
vtui example updated to vtui 0.6
2021-02-27 03:30:21 +01:00
Irmen de Jong
fd11927708
optimized highres 4c position calc a bit
2021-02-26 00:43:51 +01:00
Irmen de Jong
f275ed96ea
optimized palette.set_color()
2021-02-24 00:01:27 +01:00
Irmen de Jong
e65c5402d7
added cx16 rasterbars example
2021-02-22 02:11:44 +01:00
Irmen de Jong
334f86480a
added irq routines for cx16
2021-02-22 00:48:41 +01:00
Irmen de Jong
edf9a500d3
kernel -> kernal
2021-02-21 22:48:06 +01:00
Irmen de Jong
a95677564e
changed system irq/rasterirq setting routines
2021-02-21 22:23:50 +01:00
Irmen de Jong
9bb5b454e4
reduce dependencies on global compilaiontarget
2021-02-18 23:44:26 +01:00
Irmen de Jong
ab544ee965
improved string constant interning; no longer output duplicate strings in the Ast
2021-02-16 23:43:38 +01:00
Irmen de Jong
81930312ff
added textio.setcc2() on commanderX16 to enable setting fg+bg colors.
2021-02-15 17:47:48 +01:00
Irmen de Jong
62dda4d891
fix asm bug in conv.any2uword
2021-02-14 17:13:56 +01:00
Irmen de Jong
53f0318187
version 6.1
2021-02-14 00:07:45 +01:00
Irmen de Jong
02cb237623
added poke() and pokew() builtin functions
2021-02-13 23:16:50 +01:00
Irmen de Jong
cc0f19653e
added peek() and peekw() builtin functions
2021-02-13 22:38:39 +01:00
Irmen de Jong
1bbd77fddb
added txt.column()
2021-02-10 22:47:49 +01:00
Irmen de Jong
eb2d5bb1f8
fix bank arg error in gfx2.position
2021-02-06 16:58:17 +01:00
Irmen de Jong
f1478d776b
fix vertical line highres 4color
2021-02-05 18:09:21 +01:00
Irmen de Jong
40e4cfb686
amiga
2021-02-04 17:47:52 +01:00
Irmen de Jong
76f459ee95
amiga
2021-02-02 23:09:03 +01:00
Irmen de Jong
c478718019
fixed and optimized horiz_line for highres 4c
2021-02-01 22:03:10 +01:00
Irmen de Jong
c27248a58b
amiga
2021-01-29 23:52:29 +01:00
Irmen de Jong
51bc539468
added palette.set_rgb()
2021-01-29 02:46:07 +01:00
Irmen de Jong
69c459c8ac
gfx2 highres 4colors
2021-01-28 22:28:14 +01:00
Irmen de Jong
a910c0fddb
gfx2 highres 4colors
2021-01-27 02:31:20 +01:00
Irmen de Jong
52f6be2bb0
gfx2: changed screen mode numbering to a more intuitive sequence
2021-01-26 18:17:20 +01:00
Irmen de Jong
9f047ba752
palette.set_monochrome() now has 2 arguments: screen and draw color RGB values
2021-01-24 04:15:15 +01:00
Irmen de Jong
cdc6d9aa65
moved cx16 imageviewer into its own git repo. Version 6.0.
2021-01-23 23:49:17 +01:00
Irmen de Jong
975af4764d
remove no longer needed strlen() calls from diskio routines
2021-01-23 22:46:46 +01:00
Irmen de Jong
f34f9329f1
fixed bug in memcopy
2021-01-23 19:49:53 +01:00
Irmen de Jong
4a81406262
fix diskio rename() and delete()
2021-01-23 17:57:30 +01:00
Irmen de Jong
c328e9018c
cx16 assembler was moved into its own github repo
2021-01-18 01:38:33 +01:00
Irmen de Jong
b270f6f713
added cx16.rombank() and rambank(). Select kernal rom in i/o heavy programs for faster disk i/o
2021-01-17 19:16:21 +01:00
Irmen de Jong
5c13918f11
cx16 reset_system() bank selection change
2021-01-17 18:28:43 +01:00
Irmen de Jong
7277c08fa6
added textio.spc(). assem tweaks.
2021-01-14 22:51:09 +01:00
Irmen de Jong
8ac17ae14e
fix assem parsing of 4 letter instructions
2021-01-14 18:41:29 +01:00
Irmen de Jong
e0794db33a
version 6.0beta
2021-01-13 22:41:11 +01:00
Irmen de Jong
b128b79132
clearer description of memory()
2021-01-13 22:32:17 +01:00
Irmen de Jong
79e6d4b8dd
better check for EOF status
2021-01-13 22:11:51 +01:00
Irmen de Jong
506ac8014c
fix diskio.f_readline() that skipped first char. It also doesn't leave the end of line char in the string now.
2021-01-10 16:21:25 +01:00
Irmen de Jong
72b4198301
added string.lower() / string.upper()
2021-01-10 15:29:43 +01:00
Irmen de Jong
9fc0c3f849
removed diskio.f_read_exact() - wasn't worth it over f_read()
2021-01-10 14:29:51 +01:00
Irmen de Jong
db314ed903
added diskio.f_readline()
2021-01-10 05:04:56 +01:00
Irmen de Jong
79782ad547
conv.any2uword() changed return value
2021-01-08 22:43:01 +01:00
Irmen de Jong
b4d1d545a8
introduced txt.nl()
2021-01-08 16:56:17 +01:00
Irmen de Jong
f61682cdc7
moved various miscellaneous builtin functions such as exit() and progend() to sys.*
2021-01-08 16:44:34 +01:00
Irmen de Jong
3d09d605e1
moved memcopy, memset, memsetw builtin functions to sys.*
2021-01-08 01:09:37 +01:00
Irmen de Jong
025dde264a
move target() builtin to sys.target constant
2021-01-07 23:36:28 +01:00
Irmen de Jong
61784a03bb
removed all string related builtin functions and moved them to separate routines in new 'string' library module
2021-01-07 23:10:29 +01:00
Irmen de Jong
9d9ca0f08d
fix bit shifting words by 8. fix type error for signed return types.
2021-01-07 22:50:40 +01:00
Irmen de Jong
58f37513e7
removed all string related builtin functions and moved them to separate routines in new 'string' library module
2021-01-07 20:01:11 +01:00
Irmen de Jong
ee7f9d457d
text editor configs
2021-01-07 01:56:31 +01:00
Irmen de Jong
07dd64958f
conv.bin2uword, conv.hex2uword, conv.str2uword, conv.str2word more robust and return parsed length in cx16.r15
2021-01-06 00:11:15 +01:00
Irmen de Jong
7d6a0ab256
added conv.any2uword()
2021-01-05 22:28:46 +01:00
Irmen de Jong
ee9f662016
added MEMTOP2 pseudo kernal routine on cx16 to get the number of RAM banks
2021-01-05 01:48:23 +01:00
Irmen de Jong
e6a1442296
sys.wait() no longer resets the jiffyclock to zero
2021-01-03 02:45:25 +01:00
Irmen de Jong
cb65480c6c
moved wait() and reset_system() to sys block so they are now unified across c64 and cx16
2021-01-03 02:36:45 +01:00
Irmen de Jong
f0930d8a18
added c64.RDTIM16() utility routine to just get the lower 16 bits of the jiffy clock
2021-01-02 20:59:48 +01:00
Irmen de Jong
edd3a22848
added strfind()
2021-01-02 17:49:58 +01:00
Irmen de Jong
8e927e0b73
nontrivial return value evaluation now via intermediary variable to try to avoid slow stack based evaluation
2020-12-31 22:13:24 +01:00
Irmen de Jong
8e3e996f4a
diskio.f_open() now also checks if file exists
2020-12-31 19:27:34 +01:00
Irmen de Jong
b6fa361bcc
exit() now also resets the io channels. Optimized diskio data read subroutines. added diskio.f_read_all()
2020-12-31 19:09:29 +01:00
Irmen de Jong
89230ade7a
change in pattern arguments of diskio.list_files() and lf_start_list(): you can now use a simple pattern with ? and * wildcards
2020-12-30 23:34:00 +01:00
Irmen de Jong
b4931c9a1f
optimize horzontal_line drawing
2020-12-30 18:58:47 +01:00
Irmen de Jong
ddfcf45d40
added some missing clobbers() specs
2020-12-30 16:59:31 +01:00
Irmen de Jong
ee12236d53
added rect functions
2020-12-30 00:53:13 +01:00
Irmen de Jong
df6698c98f
fixed circle and disc geometry
2020-12-30 00:11:42 +01:00
Irmen de Jong
c3b82f2cfa
optimized disc()
2020-12-29 23:58:11 +01:00
Irmen de Jong
64c89f1c8f
fix circle and disc geometry, added rect and line routines
2020-12-29 23:52:48 +01:00
Irmen de Jong
e09b65ea94
fix gfx2 vertical_line
2020-12-29 23:07:26 +01:00
Irmen de Jong
c81952c356
gfx2 optimizations for vertical lines
2020-12-29 02:13:38 +01:00
Irmen de Jong
f80e462d25
gfx2 optimizations for vertical lines
2020-12-29 01:36:34 +01:00
Irmen de Jong
51f32677b7
gfx2 optimizations for horizontal lines, fix bug in disc drawing
2020-12-29 01:23:14 +01:00
Irmen de Jong
4b366358c4
fix gfx2 color of horiz/vert lines
2020-12-28 01:33:51 +01:00
Irmen de Jong
6777d952c1
fixed crash when loopvar in for loop wasn't defined
2020-12-28 00:30:08 +01:00
Irmen de Jong
6c8b18ddbd
fixed crash on cx16 in word to float conversion
2020-12-28 00:19:58 +01:00
Irmen de Jong
9e2c52e1ec
added Cx16 highresbitmap example. added stippled drawing to gfx2 monochrome mode
2020-12-27 23:57:13 +01:00
Irmen de Jong
dd82e550d5
adding rect and fillrect to gfx2
2020-12-27 17:34:25 +01:00
Irmen de Jong
cdcda27d07
adding circle and disc to gfx2
2020-12-27 16:17:06 +01:00
Irmen de Jong
e17c18b653
fix issues with memory() function, rewrite examples to use it
2020-12-27 03:35:56 +01:00
Irmen de Jong
3b8e18004c
fixed callgraph issue that allocated ALL variables in a (library) module even though some clearly weren't used at all. Variables declared in block level scope in a library are still all allocated / defined due to the nature of a library module with lists of definitions
2020-12-27 01:02:36 +01:00
Irmen de Jong
4c03950c28
changed 'c64colors' module to 'palette' and added more general Cx16 palette manipulation routines in there.
2020-12-27 00:35:25 +01:00
Irmen de Jong
170a0183f8
added 'inline' keyword to force inlining of trivial subroutines
2020-12-26 05:34:14 +01:00
Irmen de Jong
c62ff16f8b
added gfx2.text_charset()
2020-12-26 03:15:24 +01:00
Irmen de Jong
ab495fe6e1
added gfx2.text()
2020-12-26 02:25:53 +01:00
Irmen de Jong
6734ae3c88
imageviewer now uses gfx2 for full-screen graphics. gfx2 promoted to built-in library on the cx16 target.
2020-12-25 17:57:46 +01:00
Irmen de Jong
4c1c595f14
removed requirement of virtual regs R0-R15 to be at start of subroutine params
2020-12-25 15:43:48 +01:00
Irmen de Jong
b91aabd3c0
max 16 subroutine params
2020-12-25 03:02:34 +01:00
Irmen de Jong
3307f673f6
optimized cx16.vpoke etc. to be asmsubroutines instead
2020-12-24 07:12:59 +01:00
Irmen de Jong
e0d2b60d8b
added diskio.f_read_exact()
2020-12-24 06:24:52 +01:00
Irmen de Jong
7d08380c7f
added cx16.vaddr()
2020-12-23 05:04:19 +01:00
Irmen de Jong
583af3bd4f
additional vpoke operations to do or,and,xor in one go without the need for a separate vpeek
2020-12-23 01:02:43 +01:00
Irmen de Jong
d65cfbf093
fixed math.mul_word_40 that was actually doing *80...
2020-12-23 00:54:11 +01:00
Irmen de Jong
684e081399
optimized register save/restore on Cx16 cpu target
2020-12-22 05:59:01 +01:00
Irmen de Jong
c70b4daf87
cleanup obsolete routine
2020-12-22 03:40:44 +01:00
Irmen de Jong
928611eb20
Got rid of problematic attempts to save status register after function calls. If you really need it (for instance for if_XX instructions) it's probably better to use a short asmsub wrapper.
...
For function calls, register saves go via stack (to allow nested saves) for simpler cases, registers are saved in a local variable.
Fixed too agressive removal of sta-lda sequence if the lda is followed by a branching instruction.
Insert missing cmp #0 after functioncall if the value of the A register is needed in a comparison expression (could otherwise test wrong status flag)
2020-12-22 03:35:00 +01:00
Irmen de Jong
f1d55c688a
cx16 registers should come first in subroutine arg list
2020-12-22 00:59:07 +01:00
Irmen de Jong
061e1be0a4
removed ROM-float optimizations, too troublesome. Fixed LOG2 not being defined on Cx16 as well.
2020-12-21 23:22:02 +01:00
Irmen de Jong
950bc4b937
cx16 virtual registers R0-R15 also available on C64 target (although in a different location in memory)
2020-12-21 21:04:29 +01:00
Irmen de Jong
dcb81e6bea
adding CommanderX16 virtual registers language support, rewrite cx16 examples
2020-12-21 20:38:00 +01:00
Irmen de Jong
b7c1450121
upgrade to Antlr 4.9
2020-12-21 19:19:04 +01:00
Irmen de Jong
787f52d1f8
doc
2020-12-21 18:28:10 +01:00
Irmen de Jong
50213f146a
undefined symbol errors are no longer reported one at a time but all at once
2020-12-21 13:03:56 +01:00
Irmen de Jong
52e8a44517
version 5.4
2020-12-15 22:59:02 +01:00
Irmen de Jong
4977d1fbd5
bit shift expressions are "expanded" to the target value's datatype, now also for subroutine arguments.
...
implemented word bit shifts by variable number of bits.
2020-12-14 20:44:48 +01:00
Irmen de Jong
3b7a92f1b4
adding strcopy()
2020-12-14 17:26:17 +01:00
Irmen de Jong
8b75ceb412
diskio.list_files now has a bigger buffer to store more filenames (around 30-40 max)
2020-12-14 14:29:42 +01:00
Irmen de Jong
c39fc4010d
textio.clear_screen() now uses kernal routine to clear the text screen, this also resets the cursor to top left.
2020-12-14 14:28:53 +01:00
Irmen de Jong
e221d674d9
pcxviewer done
2020-12-13 01:32:03 +01:00
Irmen de Jong
251f947293
fixed parameter signature for FB_set_8_pixels_opaque() (docs are wrong)
2020-12-12 03:32:01 +01:00
Irmen de Jong
34babfb5de
added diskio.list_files(). ci-viewer now loads all *.ci files it finds.
2020-12-11 22:36:14 +01:00
Irmen de Jong
1d299c56e0
fix float '**' (pow) on cx16
2020-12-10 22:19:07 +01:00
Irmen de Jong
0d735c2ccc
workaround for FB_set_pixels bug
2020-12-10 21:51:32 +01:00
Irmen de Jong
b5dc5fc615
added iterative file loading to diskio
2020-12-10 00:58:59 +01:00
Irmen de Jong
08f0303178
diskio status() now returns the status string instead of printing it
2020-12-10 00:02:21 +01:00
Irmen de Jong
0d7a291b81
regenerated example disk , version 5.3
2020-12-08 23:15:31 +01:00
Irmen de Jong
ddf1be2a13
status condition couldn't properly be tested because restoring the X register clobbers the status flag
2020-12-08 22:15:07 +01:00
Irmen de Jong
b7694686c2
optimized code for branches containing just a goto or break statement
2020-12-08 22:00:52 +01:00
Irmen de Jong
106fc5daa4
tweak
2020-12-08 03:39:45 +01:00
Irmen de Jong
7accb73993
iterative file listing instead
2020-12-08 03:34:45 +01:00
Irmen de Jong
e9aa6a0956
TODOs
2020-12-08 02:20:24 +01:00
Irmen de Jong
df20467e03
completed diskio file lister
2020-12-08 02:16:41 +01:00
Irmen de Jong
ecbd9d739e
completed diskio file lister
2020-12-08 01:34:08 +01:00
Irmen de Jong
8af17c295a
fixed diskio directory block sizes
2020-12-08 01:02:38 +01:00
Irmen de Jong
329b28cad1
making diskio.listfiles
2020-12-07 23:49:34 +01:00
Irmen de Jong
452c29574d
added optimized mul 320 routine
2020-12-07 22:55:16 +01:00
Irmen de Jong
4b53641e1d
optimized text screen clear/fill and scrolling on c64
2020-12-06 01:16:31 +01:00
Irmen de Jong
00071d53d5
optimized disc (filled circle) drawing on c64, fixed off by 1 disc width in cx16 version
2020-12-06 00:33:32 +01:00
Irmen de Jong
6902834568
remove dummy argument for txt.scroll_XXXX() functions on cx16
2020-12-06 00:19:47 +01:00
Irmen de Jong
fa2d87f3dd
optimized disc (filled circle) drawing on cx16
2020-12-06 00:01:19 +01:00
Irmen de Jong
6f74fb49bd
added c64colors module. added vpeek/vpoke to cx16 syslib. koalaviewer example now uses better c64 color palette.
2020-12-03 18:14:49 +01:00
Irmen de Jong
3e63a29c59
diskio now properly closes files after a load or save
2020-12-03 16:01:58 +01:00
Irmen de Jong
261c0fc9b6
started adding syntax highlighting files
2020-12-02 20:48:50 +01:00
Irmen de Jong
895b30f7e5
version 5.2
2020-12-01 22:49:08 +01:00
Irmen de Jong
8b981f03bf
optimized reg_lesseq_w (word <= word) to avoid using extra zp word, by swapping operands
2020-12-01 02:09:48 +01:00
Irmen de Jong
d0d0910bf2
corrected greatereq_w (word >= word)
2020-12-01 01:57:12 +01:00
Irmen de Jong
b8bda867b6
optimized reg_lesseq_w (word <= word)
2020-11-30 02:26:00 +01:00
Irmen de Jong
05d3a2450c
optimized reg_less_w (word < word)
2020-11-30 01:53:44 +01:00
Irmen de Jong
a74403c347
float typecasts optimization
2020-11-26 01:52:48 +01:00
Irmen de Jong
238d8197f5
byte/word typecasts optimized even further to just use cpu registers (and fixed sign extending AY)
2020-11-26 01:33:45 +01:00
Irmen de Jong
936b046ed9
optimize word [operator] byte, without translateExpression()
2020-11-24 23:41:10 +01:00
Irmen de Jong
a7f56fe0fc
remaining float comparisons with expression now without translateExpression()
2020-11-24 00:35:30 +01:00
Irmen de Jong
58a9452c36
fixed the YSCROLL graphics mode on the C64 (mistake in 5.1)
2020-11-23 23:05:51 +01:00
Irmen de Jong
acdbd0c391
todos for next version
2020-11-22 19:18:57 +01:00
Irmen de Jong
122796fbba
version 5.1
2020-11-22 18:36:04 +01:00
Irmen de Jong
510ca042c9
stack tested for most example programs
2020-11-22 18:35:43 +01:00
Irmen de Jong
38d06a7e94
optimized float var comparison without translateExpression()
2020-11-22 15:05:45 +01:00
Irmen de Jong
49db10539a
optimized float var equality comparison without translateExpression()
2020-11-22 14:33:03 +01:00
Irmen de Jong
5980e58ac6
word comparison jumps now without translateExpression()
2020-11-22 01:15:05 +01:00
Irmen de Jong
8be234973c
rollback failed optimization of memory expressions (code size got too large)
2020-11-21 19:09:02 +01:00
Irmen de Jong
7e0f7ba438
todos
2020-11-20 23:46:14 +01:00
Irmen de Jong
ee724eb4f1
float variable casts without translateExpression()
2020-11-19 22:58:38 +01:00
Irmen de Jong
72509eef44
inplace modification for memory now without translateExpression()
2020-11-18 23:23:06 +01:00
Irmen de Jong
59ae3c3fcd
<< and >> for byte values slightly optimized, no longer use translateExpression(). preparing for more operator optimizations.
2020-11-18 01:27:02 +01:00
Irmen de Jong
7fa21fbdff
@(...) in an expression is now more efficient, without translateExpression()
2020-11-18 00:58:04 +01:00
Irmen de Jong
8bd4914e2f
fix stack error for float casts
2020-11-15 17:34:27 +01:00
Irmen de Jong
5c9e0c9f51
emit extra nop for breakpoints so vice label list works again (requires 64tass 1.55.2257 or newer!)
2020-11-15 14:31:06 +01:00
Irmen de Jong
d29ce78c86
todos and version
2020-11-10 22:44:48 +01:00
Irmen de Jong
94bc9d7a69
string compare in expression no longer via stack args
2020-11-10 21:48:28 +01:00
Irmen de Jong
225295a7d8
fix float casts
2020-11-09 01:18:22 +01:00
Irmen de Jong
d0bd2f522c
rol and ror
2020-11-07 00:56:54 +01:00
Irmen de Jong
661c757236
fix string compare in expressions
2020-11-06 22:59:56 +01:00
Irmen de Jong
aaa20093ef
cleaning up and correcting cc for builtin functions
2020-11-06 00:56:26 +01:00
Irmen de Jong
800b5b2a43
cleaning up and correcting cc for builtin functions
2020-11-05 02:29:33 +01:00
Irmen de Jong
9d17421c66
implemented the arithmetic functions with new cc. fixed sgn().
2020-11-04 02:27:29 +01:00
Irmen de Jong
0edd50e956
implemented cc for abs()
2020-11-03 23:01:23 +01:00
Irmen de Jong
288d4f08b3
implemented cc for integer sin and cos variants
2020-11-03 22:42:59 +01:00
Irmen de Jong
e0c5ccc16b
begun with converting builtin functions to new call convention
2020-11-02 23:00:20 +01:00
Irmen de Jong
431f2a2088
optimized memset and memcopy on CX16, memcopy can deal with any size now
2020-11-01 08:00:32 +01:00
Irmen de Jong
95c0425151
improved sqrt16
2020-11-01 05:45:49 +01:00
Irmen de Jong
e7b75d591c
assigning float results from functions (from FAC1)
2020-10-31 01:22:19 +01:00
Irmen de Jong
3efa8da8e0
made versions of various builtin funcs returning value in registers
2020-10-30 14:35:20 +01:00
Irmen de Jong
3e28ed4fe4
mader versions of abs() and sgn() returning value in register
2020-10-28 22:56:13 +01:00
Irmen de Jong
ff3f985658
refactoring
2020-10-22 23:41:16 +02:00
Irmen de Jong
e35ad0cc8f
code cleanups
2020-10-20 17:54:16 +02:00
Irmen de Jong
1a36302cf1
rest of optimizations following simplification of array indexer
2020-10-19 23:57:00 +02:00
Irmen de Jong
aec3b82476
fixed bitshifting by more than the number of bits in the value
2020-10-19 02:05:01 +02:00
Irmen de Jong
e83796b5b9
fixed bit shifting by 0. optimized bitshifting code.
2020-10-18 17:12:52 +02:00
Irmen de Jong
8eb69d6eda
vardecl with initializer expression are now optimized again (unless floats)
2020-10-18 16:15:05 +02:00
Irmen de Jong
7626c9fff7
only allow array indexing via a number, or a variable (eliminate complex expression calcs for array indexing, force explicit use of an index variable)
2020-10-17 19:57:55 +02:00
Irmen de Jong
7cb4100419
string can be compared directly (uses strcmp() automatically in asm)
2020-10-17 02:01:00 +02:00
Irmen de Jong
2d3b7eb878
started making string compares use strcmp() automatically
2020-10-17 01:11:01 +02:00
Irmen de Jong
4d01a78731
introduced strcmp() builtin function
2020-10-16 19:00:06 +02:00
Irmen de Jong
a03e36828a
fixed lines in assembly source optimizer
2020-10-16 01:48:03 +02:00
Irmen de Jong
9fb8526136
added conv.bin and hex string to number
2020-10-15 23:47:10 +02:00
Irmen de Jong
095c8b2309
corrected name and added cx16logo library module for fun
2020-10-15 00:58:41 +02:00
Irmen de Jong
aba437e5a2
diskio load and save use kernel routines for load and save, and don't bother with SEQ files
2020-10-14 22:33:49 +02:00
Irmen de Jong
439761cb67
fixed C64 ZP addresses to allow disk I/O, introduced diskio library module
2020-10-14 01:17:18 +02:00
Irmen de Jong
ebf4b50059
reused existing CallGraph to check for recursion, which is now fixed. It's a warning too now.
2020-10-12 23:04:00 +02:00
Irmen de Jong
f2c19afd95
version 4.5
2020-10-11 21:47:41 +02:00
Irmen de Jong
ec9e722927
added conv.str2byte and conv.str2ubyte
2020-10-11 18:36:20 +02:00
Irmen de Jong
b759d5e06a
fixed X register corruption on Cx16 verions of float.GIVUAYFAY and GIVAYFAY
2020-10-11 17:46:19 +02:00
Irmen de Jong
216f48b7c1
txtelite
2020-10-10 22:45:03 +02:00
Irmen de Jong
c426f4626c
added some more missing aug assign operator code
2020-10-07 22:53:18 +02:00
Irmen de Jong
f8b04a6357
added status return flags to some kernel i/o operations
2020-10-05 19:48:21 +02:00
Irmen de Jong
ec8cfe1591
make string-assignment actually work (using strcpy)
2020-10-04 18:18:58 +02:00
Irmen de Jong
22eac159e5
txtelite
2020-10-04 17:47:57 +02:00
Irmen de Jong
a6427e0949
added \$HH escape character to strings
2020-10-03 15:11:09 +02:00
Irmen de Jong
c4673d3a67
v4.4
2020-10-02 23:32:45 +02:00
Irmen de Jong
e83e021541
doc
2020-10-02 23:31:49 +02:00
Irmen de Jong
3994de77d0
fix expression splitter handling related to code ballooning
2020-10-02 01:49:55 +02:00
Irmen de Jong
8d67056f84
fixed estack corruption caused by c64 print_f
2020-09-29 21:12:16 +02:00
Irmen de Jong
448c934cba
optimized neg(x) and abs(x)
2020-09-29 03:58:17 +02:00
Irmen de Jong
d7ceda4d82
removed the automatic system reset at program exit, this did't work with the new init code
2020-09-25 22:12:14 +02:00
Irmen de Jong
2b9316c4ff
reworked program init logic so that it is included as the first thing inside main.start itself, to allow better stand alone asm
2020-09-23 22:29:21 +02:00
Irmen de Jong
b93d9ecd7e
memtop cx16
2020-09-23 02:34:49 +02:00
Irmen de Jong
4daf75a8cc
better checks for invalid %output and %launcher values. Added diskdir examples.
2020-09-23 00:22:36 +02:00
Irmen de Jong
af6731c9c8
preparing version 4.3
2020-09-22 21:50:56 +02:00
Irmen de Jong
25cf0d2b94
don't suggest a mult replacement routine to be used, faster ones are likely to require large tables
2020-09-22 21:19:01 +02:00
Irmen de Jong
9389791d91
created own circle and disc subroutines for cx16 because its rom routine is not yet implemented and just does a BRK
2020-09-22 02:52:09 +02:00
Irmen de Jong
aa8191d0a1
introduced graphics module wrapper for cx16 to make even more programs compatible
2020-09-22 02:21:16 +02:00
Irmen de Jong
0d5c78e875
introduced graphics module wrapper for cx16 to make even more programs compatible
2020-09-22 02:12:01 +02:00
Irmen de Jong
d1d224b7fc
fixed print_f on cx16. Some more examples are now multi-platform.
2020-09-22 01:34:05 +02:00
Irmen de Jong
ffa38955d6
improved scroll_down and scroll_up to use VERA dual data ports instead of a copybuffer
2020-09-22 00:34:43 +02:00
Irmen de Jong
8d82fb6d8f
added cx16 txt.scroll_right
2020-09-22 00:00:22 +02:00
Irmen de Jong
306770331a
added cx16 txt.scroll_left
2020-09-21 23:39:25 +02:00
Irmen de Jong
d3f433c8cf
specify VERA data port to use
2020-09-21 23:04:01 +02:00
Irmen de Jong
cf49cbd1f8
more consistent about the system reset routine
2020-09-21 22:35:07 +02:00
Irmen de Jong
8a99e75299
added cx16 txt.scroll_down
2020-09-21 22:06:48 +02:00
Irmen de Jong
2dbf849c82
added cx16 txt.scroll_up
2020-09-21 21:39:36 +02:00
Irmen de Jong
ba3dce0b4c
optimized cx16 txt screen functions to use VERA autoincrement
2020-09-21 19:30:21 +02:00
Irmen de Jong
ca9588380a
added cx16 txt.clear_screencolors
2020-09-21 18:42:28 +02:00
Irmen de Jong
de06353194
auto select correct library to import based on target, instead of having c64- and cx16- prefix variants
...
some programs are now 100% source compatible between C64 and Cx16 targets!
import libraries have been rena;med
2020-09-21 00:50:09 +02:00
Irmen de Jong
4b747859b3
types of constant values now actually follow their declared const var type
2020-09-20 01:14:53 +02:00
Irmen de Jong
2201765366
mult fixes
2020-09-20 00:17:33 +02:00
Irmen de Jong
dfa1d5e398
removed the ".w" word suffix (it confused the parser).
2020-09-19 23:27:40 +02:00
Irmen de Jong
ce9a90f626
updates to make c16txtio more complete
2020-09-19 23:00:47 +02:00
Irmen de Jong
2deb18beb2
tweaks to c64 txtio. Fixed expression evaluation of bitwise invert.
2020-09-19 22:37:24 +02:00
Irmen de Jong
0f7454059c
tweaks to c64 txtio
2020-09-19 22:10:33 +02:00
Irmen de Jong
f9ba09ac4d
todo
2020-09-19 17:39:46 +02:00
Irmen de Jong
9b66a597bb
array literal const check added
2020-09-18 21:30:59 +02:00
Irmen de Jong
f1ee3b4e60
version 4.2
2020-09-16 23:04:18 +02:00
Irmen de Jong
dd4a56cb5f
cx16 safe clobbers for now
2020-09-15 00:14:36 +02:00
Irmen de Jong
48858019b7
added the last of the optimized mul_word asm routines
2020-09-14 23:54:01 +02:00
Irmen de Jong
aff6b1fca5
added some more optimized mul_word asm routines
2020-09-14 23:03:18 +02:00
Irmen de Jong
d260182ef3
added some more optimized mul_byte asm routines
2020-09-14 22:06:40 +02:00
Irmen de Jong
82d7179c92
printf now uses proper zp addressing
2020-09-13 21:01:19 +02:00
Irmen de Jong
f42746ba06
reg_x removal: c64textio and c64lib. last one.
2020-09-13 20:52:29 +02:00
Irmen de Jong
1f69deaccd
reg_x removal: c64floats
2020-09-13 20:44:55 +02:00
Irmen de Jong
ea8b7ab193
reg_x removal: math.asm and some others
2020-09-13 20:38:50 +02:00
Irmen de Jong
9938959026
reg_x removal: prog8lib
2020-09-13 20:25:30 +02:00
Irmen de Jong
81f7419f70
fix X register clobbering in asmfunc call, fixed graphics.plot()
2020-09-12 01:23:56 +02:00
Irmen de Jong
2f951bd54d
tweaking cobra mk3
2020-09-11 19:46:11 +02:00
Irmen de Jong
49a0584c54
added a %target directive
2020-09-09 22:53:34 +02:00
Irmen de Jong
e21aa2c8f0
better naming of the optimized math mult routines
2020-09-09 22:16:37 +02:00
Irmen de Jong
02e29e6990
added some preliminary clobber specs to some cx16 graphics calls, This fixes the 3d cube gfx
2020-09-07 04:06:46 +02:00
Irmen de Jong
e19de0901e
Fix cx16 system reset. Added cx16 VIA registers. Fix cx16 VERA register widths.
2020-09-07 03:09:09 +02:00
Irmen de Jong
1377bed988
fix assembly for cx16 when zp is not basicsafe
2020-09-06 17:58:05 +02:00
Irmen de Jong
8f9f947c42
fix some issues with float const 0.0 and 1.0
2020-09-05 02:07:41 +02:00
Irmen de Jong
13d7f239ab
floating point 1.0 no longer referenced from ROM because cx16 doesn't have it. Added some more cx16 examples.
2020-09-05 00:17:58 +02:00
Irmen de Jong
a6f3c84e28
fix cx16 word sign extend in bitshift
2020-09-04 22:38:03 +02:00
Irmen de Jong
809917f13b
version 4.1
2020-08-31 21:44:38 +02:00
Irmen de Jong
2b35498370
added CX16 txt.setcc and swirl examples that use it
2020-08-31 21:01:18 +02:00
Irmen de Jong
f45eabdd9e
added CX16 VERA registers, made txt.fill_screen work on CX16
2020-08-31 18:23:52 +02:00
Irmen de Jong
438f3ee8d2
make GIVUAYFAY work (unsigned word to float)
2020-08-31 17:16:51 +02:00
Irmen de Jong
5eae7a2b93
tweak mandelbrots and c64 graphics plot() doesnt work with XY parameter
2020-08-31 00:36:40 +02:00
Irmen de Jong
364ef3e55c
tweak cx16 mandelbrots
2020-08-31 00:03:05 +02:00
Irmen de Jong
e61818f194
tweak cx16 mandelbrots
2020-08-30 19:31:20 +02:00
Irmen de Jong
5d90871789
got floating points working in commanderx16, added txt.color() to set text color
2020-08-30 00:15:18 +02:00
Irmen de Jong
88a9e09918
got floating points working in commanderx16
2020-08-29 23:55:26 +02:00
Irmen de Jong
c50ecf6055
fix for loop asm creation with word loopvar
2020-08-29 02:05:24 +02:00
Irmen de Jong
e112dfd910
implemented signed byte and word division
2020-08-29 00:00:53 +02:00
Irmen de Jong
9154d8bd37
optimizing X register saving for 65c02 using phx/plx instead of zp location
2020-08-28 22:11:33 +02:00
Irmen de Jong
0b55372b3b
cleanup cx16 things and added call signatures. c64graphics moved into built-in libraries.
2020-08-28 21:42:53 +02:00
Irmen de Jong
a6f564ad88
version 4.0
2020-08-27 20:54:08 +02:00
Irmen de Jong
d97da3bb7b
implemented almost all math operations
2020-08-27 20:47:22 +02:00
Irmen de Jong
4ffb194847
readme and version
2020-08-27 18:18:29 +02:00
Irmen de Jong
f08fc18ab5
renamed c64scr. to txt.
2020-08-27 18:10:22 +02:00
Irmen de Jong
9cec554f7c
moved the type conversion routines to their own library file to avoid duplication
2020-08-26 20:52:38 +02:00
Irmen de Jong
08b25e610d
commander x16 improvements
2020-08-26 19:34:12 +02:00
Irmen de Jong
e896d5a1a6
ver
2020-08-26 02:03:18 +02:00
Irmen de Jong
b939562062
added preliminary CommanderX16 machine target support. Fixed nullpointer when importing a missing file.
2020-08-26 01:56:26 +02:00
Irmen de Jong
3ce692bb10
even better machinetarget independence
2020-08-25 19:56:53 +02:00
Irmen de Jong
78bdbde3ae
refer to ZP scratch constants from asm code via the global P8ZP constants as well
2020-08-25 19:44:08 +02:00
Irmen de Jong
8d8c066447
made the ZP and compilation target more generic
2020-08-25 19:32:31 +02:00
Irmen de Jong
d19b17cbfe
optimize strlen()
2020-08-25 17:31:47 +02:00
Irmen de Jong
b9ca1c2e2c
more uniform code for array indexing (all using scaled offset now)
2020-08-23 20:25:00 +02:00
Irmen de Jong
b27cbfac5e
removed lsl() and lsr() functions just use <<=1 and >>=1
2020-08-22 16:44:48 +02:00
Irmen de Jong
bfc8a26381
implemented bit shifting for non-const amounts
2020-08-22 16:13:52 +02:00
Irmen de Jong
9d98746501
version 3.2
2020-08-21 18:02:49 +02:00
Irmen de Jong
ef7744dbda
asm fix
2020-08-21 04:02:10 +02:00
Irmen de Jong
c83a61c460
some float asm code added for in-place
2020-08-21 03:06:37 +02:00
Irmen de Jong
8d6220ce51
added most essential of the new in-place assignment code
2020-08-21 02:17:40 +02:00
Irmen de Jong
e1812ce16c
fix typecast removal error.
2020-08-20 18:07:48 +02:00
Irmen de Jong
65ba91411d
improved function arg type checking and error message
2020-08-20 12:38:22 +02:00
Irmen de Jong
9cbb8e1a64
version 3.1
2020-08-18 16:26:23 +02:00
Irmen de Jong
402827497e
fix float array assignment
2020-07-26 23:32:20 +02:00
Irmen de Jong
8a3189123a
to reduce complexity, augmented assignment has been removed again from internal Ast and codegen for now.
2020-07-26 13:48:31 +02:00
Irmen de Jong
b37231d0f5
version 3.0
2020-07-26 01:33:02 +02:00
Irmen de Jong
b0e8738ab8
remove unused c64 resources
2020-07-25 14:47:31 +02:00
Irmen de Jong
cae480768e
version is work in progress
2020-07-25 14:45:06 +02:00
Irmen de Jong
0c461ffe2e
removed Register expression (directly accessing cpu register)
2020-07-25 14:14:24 +02:00
Irmen de Jong
237511f2d6
v2.4
2020-07-04 18:56:47 +02:00
Irmen de Jong
3050156325
reverted subroutine inlining, it was a mistake
2020-07-04 01:02:36 +02:00
Irmen de Jong
06137ecdc4
v2.3
2020-07-03 23:51:27 +02:00
Irmen de Jong
cb9825484d
some more optimized in-array assignments codegeneration
2020-06-17 21:41:38 +02:00
Irmen de Jong
37b61d9e6b
v2.2
2020-06-16 01:39:11 +02:00
Irmen de Jong
ceb2c9e4f8
added string value assignment, leftstr, rightstr, substr functions
2020-06-06 00:05:39 +02:00
Irmen de Jong
68a7f9c665
version 2.1
2020-06-04 23:03:18 +02:00
Irmen de Jong
edee70cf31
use new api for ast mods in unused code remover
2020-05-15 00:16:53 +02:00
Irmen de Jong
1978a9815a
version 2.0
2020-05-14 23:59:18 +02:00
Irmen de Jong
cc4e272526
the new assignment code (once complete) really is a big enough change to bump the version to 2.0
2020-04-09 00:24:37 +02:00
Irmen de Jong
3be3989e1c
version
2020-04-06 14:31:23 +02:00
Irmen de Jong
95e76058d3
version
2020-04-03 23:55:29 +02:00
Irmen de Jong
a6bee6a860
some slight tweaks to asm for setting float value in array
2020-04-03 22:44:10 +02:00
Irmen de Jong
d22780ee44
implemented asm for lsl array values
2020-04-03 21:45:52 +02:00
Irmen de Jong
f8b0b9575d
implemented asm for rol array values
2020-04-03 21:31:39 +02:00
Irmen de Jong
4274fd168e
implemented asm for rol2 array values
2020-04-03 21:24:55 +02:00
Irmen de Jong
be7f5957f3
implemented asm for ror2 array values
2020-04-03 21:04:42 +02:00
Irmen de Jong
f2e5d987a9
implemented asm for ror array values
2020-04-03 00:03:42 +02:00
Irmen de Jong
15e8e0bf6d
implemented asm for lsr array values
2020-04-02 23:38:45 +02:00
Irmen de Jong
b73da4ed02
some more obvious optimizations for X+X and X-X
2020-03-31 23:54:01 +02:00
Irmen de Jong
267adb4612
doc
2020-03-29 03:06:51 +02:00
Irmen de Jong
05c73fa8bc
version
2020-03-28 17:06:59 +01:00
Irmen de Jong
bed34378be
doc
2020-03-28 14:24:00 +01:00
Irmen de Jong
152888ee93
fix direcetmemoryread invalid asm
2020-03-26 22:46:05 +01:00
Irmen de Jong
131fe670a4
optimized scroll routines by removing needless twin loops
2020-03-24 17:33:47 +01:00
Irmen de Jong
11e9539416
smooth scroll
2020-03-24 02:42:32 +01:00
Irmen de Jong
50a85ee6b0
attempt to optimize asm for bitshifts more.
2020-03-23 22:59:29 +01:00
Irmen de Jong
f0d4c3aba9
moved initialvalues to asmgen, fixed sgn bug and internal float 0.0 variable disappearing bug
2020-03-22 18:17:12 +01:00
Irmen de Jong
4fbdd6d570
fix ubyte number print bug for 100-109 and 200-209 missing the tens digit
2020-03-22 01:49:05 +01:00
Irmen de Jong
4929c198ba
tweak error reporting, expanded lines and circles example
2020-03-22 00:43:46 +01:00
Irmen de Jong
0ee4d420b1
slight tweaks on the Ast, Program (the top level) is now a Node as well
2020-03-18 22:29:30 +01:00
Irmen de Jong
6c23ae14ab
ver
2020-03-15 01:37:01 +01:00
Irmen de Jong
85c7f8314b
added exit(rc) builtin function to immediately exit the program with a return code in A register
2020-03-13 02:08:18 +01:00
Irmen de Jong
7fbe486dff
fix eval stack register X error in print_uw
2020-03-13 00:50:30 +01:00
Irmen de Jong
87e5a9859a
remove autogenerated labels from vice mon list, fixes #17
2020-03-12 22:33:58 +01:00
Irmen de Jong
aa36acd65a
implemented reverse(floatarray) builtin function
2020-03-11 23:18:03 +01:00
Irmen de Jong
98a638a2f3
split asmsub and romsub declarations
2020-03-10 23:09:31 +01:00
Irmen de Jong
96d8a7f0d7
float assembly code moved to separate library file
2020-03-10 22:03:24 +01:00
Irmen de Jong
e2358de27c
ver
2020-03-10 20:39:30 +01:00
Irmen de Jong
7facb4f372
correct version 1.70
2020-02-09 01:41:05 +01:00
Irmen de Jong
52769decd4
fix assembler float truncation warning
2019-11-27 22:36:59 +01:00
Irmen de Jong
8c2e602cc7
preparing for multiple compiler backends/targets
2019-10-26 23:41:15 +02:00
Irmen de Jong
b5d1e8653d
tiny cleanups
2019-10-20 23:52:26 +02:00
Irmen de Jong
f6d4c90dea
improved number-to-decimal routines
2019-09-23 20:44:41 +02:00
Irmen de Jong
adfddddac6
attempt to fix bcd
2019-09-05 21:38:40 +02:00
Irmen de Jong
772e48105e
fixed some type cast compiler errors in for loops
2019-08-26 23:38:59 +02:00
Irmen de Jong
9edc92ec29
more bitshift asm stubs (actual functions still to be done)
2019-08-23 23:06:36 +02:00
Irmen de Jong
1d178080a3
more bitshift asm
2019-08-23 21:33:43 +02:00
Irmen de Jong
0f1485f30b
added sorted, sgn, reverse to the AstVm
2019-08-18 16:39:08 +02:00
Irmen de Jong
f0d4654917
v1.60
2019-08-18 14:06:30 +02:00
Irmen de Jong
bb7b063757
revert inline var declaration in for loops
2019-08-18 03:16:23 +02:00
Irmen de Jong
1cc1f2d91d
reverse() added (byte+word)
2019-08-18 02:05:51 +02:00
Irmen de Jong
d837cc11f9
sort() added (bytes+words)
2019-08-18 00:04:03 +02:00
Irmen de Jong
cbb7083307
fix problem with typechecking of const arrays
2019-08-17 21:43:48 +02:00
Irmen de Jong
d4a17dfad1
fixed builtin functions no longer const-folding over arrays
2019-08-17 20:16:39 +02:00
Irmen de Jong
59f8b91e25
tweak
2019-08-17 18:44:44 +02:00
Irmen de Jong
80113f9208
version 1.52
2019-08-17 16:44:46 +02:00
Irmen de Jong
27f987f0ae
fixed bit shifts, added sgn() function
2019-08-17 16:44:28 +02:00
Irmen de Jong
b5c5560af8
info
2019-08-11 18:21:15 +02:00
Irmen de Jong
065587525e
version
2019-08-11 17:43:14 +02:00
Irmen de Jong
b44e76db57
fix any/all assembly routine, added asm for min/max/sum/ etc aggregates
...
removed avg function because of hidden internal overflow issues
2019-08-11 16:13:09 +02:00