Irmen de Jong
25f25a8767
Get rid of sort() and reverse() builtin functions.
...
Sort() had too many gotchas and reverse() is kinda redundant you can loop in decreasing order through an array too.
2024-07-06 17:07:58 +02:00
Irmen de Jong
0c053e4a2c
IR: don't confuse symbol names starting with 'r', with register names
...
Added start of buffer.p8 (experimental)
2024-07-04 01:39:25 +02:00
Irmen de Jong
a291164953
fix leaving Vera CTRL at 1 instead of 0, could lead to kernal text output errors etc
...
Fixes #143
2024-07-02 23:36:36 +02:00
Irmen de Jong
8efa89165c
sprites.get_data_ptr() signature changed: now properly returns the 2 values
2024-06-27 22:22:26 +02:00
Irmen de Jong
4f8aaf9244
some tweaks and todos
2024-06-26 21:22:40 +02:00
Irmen de Jong
c2f6311367
todo
2024-06-17 22:41:52 +02:00
markjreed
6f00a48772
fix: atan2(anything, 0) should return ±π/2 ( #141 )
...
* fix: atan2(anything, 0) should return pi/2
* fix: if y<0, x=0 maps to 3π/2, not π/2
* fix: standard seems to be atan2(0,0) == 0
2024-06-07 23:19:45 +02:00
Irmen de Jong
b3dba67405
added cx16.rom_version() routine
2024-06-07 23:15:26 +02:00
Irmen de Jong
d2e010c439
added cx16.scnsiz (extapi call), describe profiler.py script
2024-05-31 21:48:29 +02:00
Irmen de Jong
15867ab423
update cx16.mouse_get() and mouse_pos() to also return scroll wheel in X
2024-05-29 23:19:53 +02:00
Irmen de Jong
3ea0f0cbaa
remove 16 bit f_tell variant.
2024-05-22 21:47:02 +02:00
Irmen de Jong
f3e3311598
added diskio.f_tell() and f_tell32() on the cx16 target
2024-05-21 23:14:25 +02:00
Irmen de Jong
ac1d4b4a7a
mouse_pos() now returns the coordinates as unsigned words
2024-05-20 21:38:02 +02:00
Irmen de Jong
6e8a89e6f1
optimize const word repeat setup
2024-05-18 16:30:27 +02:00
Irmen de Jong
5ac9c75521
docs of new floats routines and added them to VM target too
2024-04-17 20:03:36 +02:00
markjreed
07710e0995
Feature/reciprocal tangent functions ( #133 )
...
* feat: additional trig functions
* fix: 64tass won't assemble a proc named 'sec'
* fix: indentation
2024-04-17 19:54:47 +02:00
Irmen de Jong
d8ec03874f
move the pi-related constants from system specific floats module into the shared one. Clarify some stuff.
2024-04-15 19:15:44 +02:00
Irmen de Jong
f88c29e083
convert github doc links into permalinks
2024-04-08 22:12:28 +02:00
Irmen de Jong
9de7698a5c
verafx.mult() and muls() now return both words of the 32 bits result.
2024-04-07 22:41:21 +02:00
Irmen de Jong
112d2d6058
cx16 sprites module: the palette_offset parameter now takes values 0-15 (instead of 0-255) to be more consistent with docs and vera behavior
2024-04-07 21:49:03 +02:00
Irmen de Jong
ddb8346711
added txt.cls() as a shorter alternative to clear_screen().
...
cx16: added new character encodings, and routines in textio to enable the character sets for them.
cx16: added txt.chrout_lit() and txt.print_lit() to always print the literal characters and never as control codes
2024-04-07 19:32:44 +02:00
Irmen de Jong
66a6659a6e
cbm.STOP2() and cbm.GETIN2() convenience routines
2024-04-06 02:16:21 +02:00
Irmen de Jong
88ae3daa42
Merge branch 'refs/heads/master' into multi-assign
...
# Conflicts:
# examples/test.p8
2024-04-06 00:14:41 +02:00
Irmen de Jong
08b8fe01ab
added missing cmp #0 after func()==0
...
cx16: diskio.fastmode() now returns success boolean
2024-04-06 00:04:54 +02:00
Irmen de Jong
98acff802f
better checking for number of return values
...
assignment optimization if return register already is the same as the assignment target
2024-04-04 23:47:33 +02:00
Irmen de Jong
34f3169dda
tweak library routines for multiple return values.
...
cbm:
MEMTOP changed (now also returns nr of banks in A)
STOP2 removed (just use STOP)
RDTIM_safe() added TEST IRQ ENABLE
RDTIM16 changed (internally) TEST IRQ ENABLE
cx16:
screen_mode changed (now also returns width and height in X,Y)
kbdbuf_peek2 removed (just use kbdbuf_peek)
joystick_get changed (presence now returned as bool in Y)
joystick_get2 removed (just use joystick_get)
mouse_pos changed (now properly returns x and y position in R0 and R1)
set_led_brightness changed into set_led_state, with only a boolean on/off argument. There is no variable brightness.
sys.set_leds_brightness() removed. Use cx16.set_led_brightness().
2024-04-04 01:39:19 +02:00
Irmen de Jong
9af4168ae2
cx16: added diskio.fastmode() to select the fast serial disk mode for the SD card
2024-04-02 22:17:51 +02:00
Irmen de Jong
b385dc8c26
add cx16 extapi ROM call, call numbers and shims. (new in Rom R47)
2024-04-02 01:45:10 +02:00
Irmen de Jong
63a4525f06
remove hacks from floats.parse now that kernal R47 is out
2024-03-30 22:29:13 +01:00
Irmen de Jong
b93fa75377
consolidate cbm textio routines
2024-03-28 00:39:58 +01:00
Irmen de Jong
681ce9c60c
fix void warning
2024-03-27 23:05:41 +01:00
Irmen de Jong
dd0f0fe415
conv.str_ub and partners are now much shorter routines than before
2024-03-27 22:34:44 +01:00
Irmen de Jong
119040fc50
also add diskio.status_code() in other comp targets
2024-03-27 20:05:39 +01:00
adiee5
551e5688da
Add diskio.status_code() function ( #130 )
2024-03-27 19:42:47 +01:00
Irmen de Jong
2a3a27c56d
bmx library: set bpp header field correctly on save
2024-03-26 22:01:10 +01:00
Irmen de Jong
c38765301e
gfx2 screenmode tweak
2024-03-19 01:21:56 +01:00
Irmen de Jong
d14c61b160
added string.findstr(). string.find() returns 255 if not found.
...
also fix string assignment bug for sub args.
2024-03-17 23:18:33 +01:00
Irmen de Jong
fe2b67998c
vm: fix load_raw, fix rng bug in textelite (carry flag shifting...)
2024-03-17 16:46:26 +01:00
Irmen de Jong
4db4a5f1b2
vm: txt.width() and height() now return the actual console terminal width and height if possible.
2024-03-16 22:40:08 +01:00
Irmen de Jong
5a0524ff4d
various fixes
2024-03-16 18:48:06 +01:00
Irmen de Jong
fbe231793b
optimized and added "streaming" crc32 and crc16 routines to math module. Return value is put in different register now! r14+r15 instead of r0+r1!
2024-03-16 01:07:03 +01:00
Irmen de Jong
6a9269111e
some changes in SMC routines for the cx16:
...
sys.poweroff_system() moved to cx16
sys.set_leds_brightness() moved to cx16 and changed to set_led_brightness, you can only change the activity led brightness.
2024-03-15 23:00:14 +01:00
Irmen de Jong
1818738fc8
fixed potential bug in cx16.kbdbuf_clear() is and it is now cbm.kbdbuf_clear() and is available on all cbm like targets
2024-03-14 22:12:29 +01:00
Irmen de Jong
7e1e7a0780
fix conv.str_ub and conv.str_b for missing tens digits
2024-03-13 23:03:25 +01:00
Irmen de Jong
51d708bbdd
fix monogfx issue
2024-03-12 23:27:15 +01:00
Irmen de Jong
e63a8f0c01
fix vm textio prefix type
2024-03-11 22:22:30 +01:00
Irmen de Jong
80f39e8097
Merge branch 'booleans'
...
# Conflicts:
# compiler/res/prog8lib/cx16/monogfx.p8
# compiler/res/prog8lib/virtual/monogfx.p8
# compiler/src/prog8/compiler/astprocessing/BoolRemover.kt
# compiler/test/TestTypecasts.kt
# docs/source/todo.rst
# examples/cx16/highresbitmap.p8
# examples/test.p8
# httpCompilerService/src/prog8/http/TestHttp.kt
2024-03-11 01:00:48 +01:00
Irmen de Jong
3a9919a377
implemented a couple more diskio routines for the VM target
2024-03-09 17:36:39 +01:00
Irmen de Jong
f739e679e4
added sys.exit2 and sys.exit3 to set more result registers at program exit
...
todo
2024-03-09 03:30:05 +01:00
Irmen de Jong
52649a8e4f
conv routines now return the string buffer address.
2024-03-08 02:12:46 +01:00
Irmen de Jong
bdfb01f6a0
VM: implemented a few core routines in diskio (load/save)
...
textelite can now load and save your progress like it already could in the real version
2024-03-06 23:21:01 +01:00
Irmen de Jong
6d29b00a80
fix monogfx horizontal line and text draw in invert mode
2024-03-05 22:38:34 +01:00
Irmen de Jong
4d7e96d423
add monogfx inverted (eor) draw mode
2024-03-03 23:28:37 +01:00
Irmen de Jong
449461e412
tweak monogfx stipple plot
2024-03-03 21:47:42 +01:00
Irmen de Jong
e55cde2a81
more nonstrictbool conversions
2024-03-03 19:43:48 +01:00
Irmen de Jong
c532e28841
fix several remaining bool return values in library routines
2024-03-02 23:19:39 +01:00
Irmen de Jong
37b346740b
fix 6502 casting uword and float to bool
2024-03-02 23:19:39 +01:00
Irmen de Jong
fe9a9fc5cb
new if tests
2024-03-02 23:19:39 +01:00
Irmen de Jong
a1574a7187
added txt.print_bool, several fixes
2024-03-02 23:19:39 +01:00
Irmen de Jong
c77cd0da39
ifelse more
2024-03-02 23:19:39 +01:00
Irmen de Jong
577333f2c4
new ifelse codegen
2024-03-02 23:19:39 +01:00
Irmen de Jong
1ca3f64bf0
libraries: add ==0 or !=0 to expressions that depend on implicit conversion from byte to bool
2024-03-02 23:19:20 +01:00
Irmen de Jong
d4b087ea3f
added txt.bell() to make terminal beep/bell sound on most systems
2024-02-21 17:35:37 +01:00
Irmen de Jong
88458f5355
faster array copy and fix for length 256
2024-02-11 23:57:38 +01:00
Irmen de Jong
8b8caa1c2e
added math.randrange() and math.randrangew()
2024-02-10 22:16:13 +01:00
Irmen de Jong
d7f72056fc
rest of the array copying
2024-02-10 17:16:06 +01:00
Irmen de Jong
6eacf1bddd
added a few more IR syscalls for often used copy routines
2024-02-09 23:56:44 +01:00
Irmen de Jong
386a391fd9
added string.lstripped() and string.ltrimmed()
2024-02-07 23:07:45 +01:00
Irmen de Jong
d33aed4ed5
added txt.petscii2scr() and txt.petscii2scr_str()
2024-02-07 22:36:43 +01:00
Irmen de Jong
24944ad49e
added string.strip() and string.trim() and l/r variants.
...
fixed memsizer for pointers-to-ubyte.
2024-02-07 02:09:08 +01:00
Irmen de Jong
344a1b9eb8
cx16: added cx16.get_program_args() and cx16.set_program_args()
2024-02-04 11:35:13 +01:00
Irmen de Jong
a14c192ea3
also other targets
2024-01-18 22:31:34 +01:00
Irmen de Jong
03831a7394
added cx16.cpu_is_65816()
2024-01-18 19:30:18 +01:00
Irmen de Jong
66a836d094
added support for reverse() on split word arrays
2024-01-16 00:52:09 +01:00
Irmen de Jong
7de665d1e4
support for split wordarrays rol/ror and rol2/ror2
...
optimized rol and ror codegen
optimize/fix ror/ror2/rol/rol2 on word arrays
2024-01-15 03:22:37 +01:00
Irmen de Jong
0a356ba73a
added containment check of float arrays
2024-01-14 14:14:09 +01:00
Irmen de Jong
41de8caa13
added sprites.set_mousepointer_image(), sprites.set_mousepointer_hand() and sprites.get_data_ptr()
2024-01-14 00:38:56 +01:00
Irmen de Jong
bc3f2db3de
Fix call graph to no longer mark subroutines unused, that still get their variables referenced somewhere.
...
Revert palette.default_colors_16[] back to palette.set_default16.colors.
2024-01-11 22:12:01 +01:00
Irmen de Jong
06bedb7adb
added palette.get_color() and palette.default_colors[]
2024-01-11 21:27:18 +01:00
Irmen de Jong
38dc7fb7bd
IR: added SCC and SCS instructions
2024-01-09 01:41:37 +01:00
Irmen de Jong
aa4cd13c31
where to place vscode syntax files.
2024-01-08 00:09:21 +01:00
Irmen de Jong
8e6b91cb9e
some optimizations
2024-01-06 00:44:00 +01:00
Irmen de Jong
334e6dca28
added string.contains().
...
fixed string and array containment check for length 1.
2024-01-05 20:46:26 +01:00
Irmen de Jong
19a2110ba2
fix exit() now actually correctly setting the return code in A
...
also, moved some cleanup stuff such as CLRCHN from exit() to the cleanup routine that is always called.
finally, also call the cleanup routine when %option no_sysinit is used
2024-01-04 00:43:35 +01:00
Irmen de Jong
813007a5d8
adjusted options of library modules
2023-12-29 22:21:44 +01:00
Irmen de Jong
01bd648cb2
added math.crc16() and math.crc32()
2023-12-29 08:00:02 +01:00
Irmen de Jong
e35cfd4971
get rid of the redundant 'f' suffix of several funtions in floats module (breaking change!)
...
Unfortunately a few routines (minf, maxf, clampf) remain unchanged, because removing the 'f' would make them clash with a builtin function.
floats.rndf -> floats.rnd
floats.parse_f -> floats.parse
floats.rndseedf -> floats.rndseed
floats.print_f -> floats.print
floats.str_f -> floats.tostr
2023-12-29 03:12:44 +01:00
Irmen de Jong
a0594cbce3
const optimizer now knows about a bunch of library functions, such as math.*
2023-12-28 20:14:13 +01:00
Irmen de Jong
09c6cb4d6b
replace unwritten vars by consts. Improved const eval.
...
Fixed some slight bugs in library code
2023-12-28 05:17:15 +01:00
Irmen de Jong
2b8f613a00
added %option ignore_unused to suppress warnings about unused vars and subs in that module/block.
...
Also improved error for invalid directive.
2023-12-26 23:37:59 +01:00
Irmen de Jong
73864c8101
added -check command line option
2023-12-26 15:45:55 +01:00
Irmen de Jong
f948917124
added floats.push() and floats.pop()
...
fixed vm pop.f
2023-12-26 15:19:49 +01:00
Irmen de Jong
0d44492086
push,pushw,pop and popw are no longer built-in functions but regular routines in sys
2023-12-26 14:47:31 +01:00
Irmen de Jong
38a22fbc99
allow %option no_symbol_prefixing also on module scope
2023-12-26 12:31:18 +01:00
Irmen de Jong
ad9eaeafeb
call
now returns a word value
2023-12-22 22:24:11 +01:00
Irmen de Jong
6cd392909c
added verafx.copy() routine for fast vram-to-vram copying ('blitting')
2023-12-22 17:52:43 +01:00
Irmen de Jong
49ec430592
cx16: added several word Vera-registers as memory-mapped vars as well
2023-12-21 00:28:09 +01:00
Irmen de Jong
8bd7c601c0
cx16: added all remaining audio kernal routines. added the three x16edit kernal entry points.
2023-12-18 22:16:44 +01:00
Irmen de Jong
997288fa03
added cbm.CLEARST() to reset ST to 0
2023-12-18 01:20:24 +01:00
Irmen de Jong
0f26b39997
improve diskio error handling and device not found errors
...
for instance if you set drivenumber to 9 without having a second drive connected, it used to hang in various routines
2023-12-17 22:39:08 +01:00