Irmen de Jong
34bedbeef1
optimize byte modulus (%) routine with repeated subtraction instead of using full division
2025-05-29 13:26:04 +02:00
Irmen de Jong
0ab98033b5
add rom-compatible random number routines
2025-04-14 22:04:11 +02:00
Irmen de Jong
4388466451
romable comments
2025-04-10 22:21:27 +02:00
adiee5
9be40e85ff
Improve romability of low-level libs ( #160 )
...
* Improve romability of low-level libs
* Improve ROMability of targeted syslibs
Previous commit just did that for multitarget libs, now it's also syslibs of built-in targets that get this treatment too.
2025-04-01 23:00:14 +02:00
Irmen de Jong
5c56267662
Also romable warning for inline variables. Added TODO: Romable in library files where applicable
2025-02-21 21:58:31 +01:00
Irmen de Jong
e8f3af6981
adding a configurable compilation target
2025-01-17 00:56:44 +01:00
Irmen de Jong
9c7a645e18
remove non-functional verafx.mult(). note: muls() is still there and just fine!
...
added documentation/source code comments to the cpu word*word multiplication routine not producing the correct upper 16 bits.
2024-09-28 00:43:05 +02:00
Irmen de Jong
32becdbced
add monogfx lib to virtual target
2023-10-24 00:16:25 +02:00
Irmen de Jong
390263a34e
added cx16 verafx library module
2023-09-24 23:00:40 +02:00
Irmen de Jong
e97303c226
fix word multiplication to not clobber r0 and r1 anymore
...
This was causing corruption in certain programs such as the cx16/amiga example.
The problem was introduced in 9.4 with the new multiply_words routine
2023-09-02 20:52:16 +02:00
Irmen de Jong
3b786c819d
avoid using temp var even more
2023-09-01 23:47:01 +02:00
Irmen de Jong
be06d871b6
fix code for bitwise shifts by zero
2023-08-14 21:49:13 +02:00
Irmen de Jong
bc8126eb16
2x faster word multiplication routine
2023-08-14 18:11:30 +02:00
Irmen de Jong
4c8beefdcb
slightly faster integer bytes multiplication routine
2023-08-14 17:00:16 +02:00
Irmen de Jong
bbb6c53457
slightly faster sqrt() routine for integers
2023-08-14 17:00:02 +02:00
Irmen de Jong
2c9e50873c
use math.square for optimized X*X calculation (words only).
...
Added IR SQUARE instruction.
2023-08-14 01:05:17 +02:00
Irmen de Jong
47485e4b49
added more missing codegen for bit shifts
2023-07-16 17:42:10 +02:00
Irmen de Jong
3841cef497
implemented missing bitshift codegen (non-stack)
2023-07-15 22:26:56 +02:00
Irmen de Jong
41af63b333
remove even more X register save/restore code
2023-07-15 22:26:54 +02:00
Irmen de Jong
9e8c8973d8
remove eval stack references from asm code
2023-07-15 22:24:22 +02:00
Irmen de Jong
1f7180d9a8
math.multiply_words returns lower 16 bits of the result also in AY (to avoid repeating some load instructions)
2023-07-06 22:54:13 +02:00
Irmen de Jong
adcbe55307
replaced integer RNG with smaller and faster routine.
2022-10-22 22:01:57 +02:00
Irmen de Jong
ec5adffdc2
rnd()/rndf() routines can now be seeded with new rndseed()/rndseedf() routines. fixes #80
2022-10-22 13:34:22 +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
0a5b30e21c
added fast code for x*640
2021-04-30 22:30:21 +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
60e169bd87
added optimized integer square (x*x) routine
2021-03-08 23:08:47 +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
76f459ee95
amiga
2021-02-02 23:09:03 +01:00
Irmen de Jong
ee7f9d457d
text editor configs
2021-01-07 01:56:31 +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
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
452c29574d
added optimized mul 320 routine
2020-12-07 22:55:16 +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
9d17421c66
implemented the arithmetic functions with new cc. fixed sgn().
2020-11-04 02:27:29 +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
aec3b82476
fixed bitshifting by more than the number of bits in the value
2020-10-19 02:05:01 +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
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
2201765366
mult fixes
2020-09-20 00:17:33 +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
ea8b7ab193
reg_x removal: math.asm and some others
2020-09-13 20:38:50 +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
e112dfd910
implemented signed byte and word division
2020-08-29 00:00:53 +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
d97da3bb7b
implemented almost all math operations
2020-08-27 20:47:22 +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