Irmen de Jong
ecca854c7c
Added cx16.edkeyvec and cx16.set_chrin_keyhandler(). mention the Github actions builds.
2023-11-09 01:03:31 +01:00
Irmen de Jong
c5a333a904
CX16: diskio.f_write() now uses fast MCIOUT block writes, including hiram bank boundary wrap-over
2023-11-08 01:12:49 +01:00
markjreed
ff324955dd
Feature/read cursor position ( #111 )
...
* feat: add ability to read cursor position on CBM machines
* feat: implement plot()/column() for atari target; add get_cursor(), get_column(), row(), and get_row()
* feat: implement wait_key() for Commodore targets; add get_cursor(), get_column(), row(), get_row()
* feat: really implement waitkey() on CBM targets
* fix: make waitkey void for compatibility with atari
2023-11-07 22:19:16 +01:00
Irmen de Jong
70436f5dca
cx16.vpeek() use VERA_DATA0 instead of 1, to not cause ADDRSEL to be != 0 (interferes with kernal)
2023-11-07 22:09:53 +01:00
Irmen de Jong
31177a2b1b
added sys.disable_caseswitch() and sys.enable_caseswitch()
2023-11-07 00:27:34 +01:00
Irmen de Jong
4de012fc49
added notes to textio about PETSCII vs Screencode encoding.
2023-11-06 23:18:24 +01:00
Irmen de Jong
ee2888e744
verafx.mult/muls now return upper 16 bits of the result in r0
2023-11-06 21:55:58 +01:00
Irmen de Jong
723ab54f97
optimized all circle routines a little more. Added gfx2/monogfx safe_circle and safe_disc. Warning for when on const value.
2023-11-05 21:29:59 +01:00
Irmen de Jong
d5f35bb3fb
added gfx2.init_mode()
2023-11-04 14:53:08 +01:00
Irmen de Jong
72f1a779f2
optimize monogfx.fill() and gfx2.fill(), also don't read outside screen area
2023-11-04 14:30:51 +01:00
Irmen de Jong
16b24fadea
gfx2 future mode, upgrate to Kotlin 1.9.20
2023-11-01 23:18:44 +01:00
Irmen de Jong
92374e122b
IR: optimize concat with msb 0 into ext
2023-10-28 12:53:41 +02:00
Irmen de Jong
94f12732ab
add math.diff() and math.diffw()
2023-10-27 22:36:43 +02:00
Irmen de Jong
32becdbced
add monogfx lib to virtual target
2023-10-24 00:16:25 +02:00
Irmen de Jong
34aa21f7d9
improve function call arg type casting
2023-10-22 22:33:35 +02:00
Irmen de Jong
cc81dd7d3e
remove useless close calls from diskio load
2023-10-22 17:24:05 +02:00
Irmen de Jong
335213b55f
tweaks
2023-10-21 02:16:58 +02:00
Irmen de Jong
e15c5cde53
tiny fill() optimization
2023-10-18 23:11:16 +02:00
Irmen de Jong
1fb94e7a7b
monogfx and gfx2: flood fill uses optimized horizontal line drawing
2023-10-15 23:19:11 +02:00
Irmen de Jong
68539d6cc9
micro tweaks adpcm.p8
2023-10-13 00:55:56 +02:00
Irmen de Jong
836bc9d456
added verafx.available()
2023-10-10 22:12:21 +02:00
Irmen de Jong
68e62e4bd2
added cx16.MCIOUT() kernal call
...
correct case of several other cx16 kernal calls.
corrected to upper case: cx16 kernal calls CLOSE_ALL, LKUPLA, LKUPSA, JSRFAR, PRIMM, MACPTR.
2023-10-09 22:44:36 +02:00
Irmen de Jong
a48ce35f0b
added %option verafxmuls
2023-10-05 22:06:33 +02:00
Irmen de Jong
e1835b5775
removed dysfunctional c128.graphics library module
2023-10-05 21:03:47 +02:00
Irmen de Jong
433832b329
gfx2.clear_screen and monogfx.clear_screen() now have color parameter to clear the screen with
...
this is much faster than filling a rectangle of the full screen size with a color.
2023-10-05 21:00:39 +02:00
Irmen de Jong
ee81da14d6
cx16: removed monochrome modes from gfx2 (use monogfx instead). New screen mode numbering!
...
programs will now be a lot smaller than before if they use gfx2 (or monogfx if they were only using monochrome drawing)
monogfx also fixes some drawing errors with small horizontal lines, and stippled vertical lines.
2023-10-05 02:12:46 +02:00
Irmen de Jong
6395d1908e
cx16: added monogfx library module, replaces gfx2 for monochrome screenmodes.
2023-10-04 22:32:13 +02:00
Irmen de Jong
a8507b437d
add verafx.transparency()
2023-10-03 01:47:52 +02:00
Irmen de Jong
e505bf9ccf
added "emudbg" library (cx16 only) to interface with the emulator
2023-10-02 22:23:09 +02:00
Irmen de Jong
c3f1f09ad1
added verafx.clear()
2023-10-02 01:34:56 +02:00
Irmen de Jong
70ee2026ff
fix gfx2 screen fill broken when using verafx
2023-10-02 00:12:48 +02:00
Irmen de Jong
690782bf60
added -verafxmul compiler option to use vera fx multiplication routine on cx16
2023-10-01 22:44:45 +02:00
Irmen de Jong
452e9e275f
diskio module: set correct read or write i/o channel every time f_read or f_write is called
2023-09-28 23:39:37 +02:00
Irmen de Jong
cd40088636
vm: added math.mul16_last_upper()
2023-09-28 03:18:49 +02:00
Irmen de Jong
9b9e6f4af5
added math.mul16_last_upper() to fetch the upper 16 bits of the last word multiplication
2023-09-25 23:59:57 +02:00
Irmen de Jong
390263a34e
added cx16 verafx library module
2023-09-24 23:00:40 +02:00
Irmen de Jong
b500a0d477
c64: added a couple of routines that calculate the correct memory locations for video ram and sprite pointers etc. based on current VIC-II memory setup.
...
the examples with sprites, now use it.
2023-09-08 21:27:38 +02:00
Irmen de Jong
dd2463a440
proper fix for the previous commit. + fix for i/o channel reset in diskio.f_seek()
...
it wasn't the adressing mode, it was that it assumed the pointer variable was always in zeropage (which might not be)
2023-09-07 22:17:46 +02:00
Irmen de Jong
3caf9108ad
finalizing 9.4.1 release
2023-09-06 21:18:01 +02:00
Irmen de Jong
31458ffd81
examples cleanup and improving c64 graphics module (shift bitmap to higher ram area)
2023-09-05 20:39:12 +02:00
Irmen de Jong
c3fbdf34ca
fixed c64 float problem
2023-09-03 16:40:10 +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
5cd4b874ea
tweak sprites module
2023-09-01 21:25:19 +02:00
Irmen de Jong
f14ea1b3de
micro optimization to save 2 cycles: change some pha+pla into tax+txa
2023-09-01 20:37:24 +02:00
Irmen de Jong
9cc0cda0fb
added sprites library module (cx16 only)
2023-09-01 17:35:07 +02:00
Irmen de Jong
cfea8b3745
save a cycle
2023-09-01 00:50:24 +02:00
Irmen de Jong
28bf0b61ce
added math.log2() and math.log2w()
2023-09-01 00:42:15 +02:00
Irmen de Jong
2dc2429735
tweaks to the cx16 sprite example
2023-08-31 23:24:46 +02:00
Irmen de Jong
2d7ebff8e9
fix shadowing warnings in asm and library code
2023-08-29 11:00:53 +02:00
Irmen de Jong
77f3852cdc
added floats.parse_f()
2023-08-16 14:47:20 +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
d8991894e3
added pet stubs for cbm.SETTIM,RDTIM,RDTIM16
2023-08-14 14:49:59 +02:00
Irmen de Jong
c7b7dcfd03
made pet textio more compatible with the other platforms by putting the (dummy) color arguments back
2023-08-14 13:51:15 +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
923367296d
fix reset_system() on PET, added some missing kernal routines
2023-08-13 01:46:25 +02:00
Irmen de Jong
151a206617
experimental Commodore PET target
2023-08-12 23:25:07 +02:00
Irmen de Jong
a82d21ac05
fixed gfx2.plot in mode 1+5 with certain combinations of color and stipple
2023-08-08 00:01:43 +02:00
Irmen de Jong
0bf8378fcb
fixed gfx2.horizontal_line problem with monochrome stippling mode (regression since version 9.0)
...
todo
2023-08-07 22:56:07 +02:00
Irmen de Jong
c36afd872e
optimization in assignment to memory
2023-08-04 23:54:11 +02:00
Irmen de Jong
19a4bf1088
clean up AugmentableAssignmentAsmGen a bit
2023-08-04 21:48:02 +02:00
Irmen de Jong
9167ba499d
Merge branch 'remove_evalstack'
2023-07-30 17:49:35 +02:00
Irmen de Jong
2d7e95e1b6
release 9.2.1
2023-07-30 17:39:18 +02:00
Irmen de Jong
a0ab0bd3e2
Merge branch 'master' into remove_evalstack
...
# Conflicts:
# examples/test.p8
2023-07-29 18:57:06 +02:00
Irmen de Jong
c112b327ab
tiny optimization
2023-07-29 17:04:41 +02:00
Irmen de Jong
4a8ee6815a
merge
2023-07-28 03:34:58 +02:00
Irmen de Jong
e1b6bb154a
Merge branch 'master' into remove_evalstack
...
# Conflicts:
# compiler/res/prog8lib/cx16/gfx2.p8
# docs/source/todo.rst
# examples/test.p8
2023-07-28 02:09:45 +02:00
Irmen de Jong
e520921746
todo
2023-07-26 23:16:43 +02:00
Irmen de Jong
970642244b
optimized gfx2.text() for hires 4c mode
2023-07-26 04:17:44 +02:00
Irmen de Jong
3b90be2d9e
gfx2.text() per-pixel positioning implemented for screen modes 1 and 5
2023-07-25 00:43:45 +02:00
Irmen de Jong
65a7a8caf8
fix and optimize gfx2.position2(), added cx16.vaddr_clone()
2023-07-24 00:04:47 +02:00
Irmen de Jong
7cf6aba625
Merge branch 'master' into remove_evalstack
...
# Conflicts:
# examples/test.p8
2023-07-22 23:37:20 +02:00
Irmen de Jong
0e781d18fa
cx16: added cx16.vaddr_autoincr() and cx16.vaddr_autodecr()
2023-07-21 23:04:21 +02:00
Irmen de Jong
4575a8fffe
cx16: added cx16.vaddr_autoincr() and cx16.vaddr_autodecr()
2023-07-21 22:40:07 +02:00
Irmen de Jong
7136b33f2e
cx16: change reset_system() to use Reset SMC sequence instead of hard reboot
2023-07-20 01:59:20 +02:00
Irmen de Jong
d5707b7bf3
rebuilding floating point stack evaluation (using cpu stack)
2023-07-20 00:45:04 +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
da57f76de3
fix augassign
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
3933bf5c1a
remove eval stack references from p8 code
2023-07-15 22:24:22 +02:00
Irmen de Jong
84925ab69c
remove eval stack options
2023-07-15 22:24:19 +02:00
Irmen de Jong
9cb61fa34d
tweaks
2023-07-15 20:46:14 +02:00
Irmen de Jong
4e863ecdac
vm: fixed abs() and word-to-string conversion
2023-07-08 22:57:16 +02:00
Irmen de Jong
4cc0dfa10b
comment
2023-07-08 11:42:29 +02:00
Irmen de Jong
4ced8889d3
cx16: fix signature return values of cx16.screen_mode(), add get_screen_mode() and set_screen_mode() convenience routines
2023-07-08 11:37:29 +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
ee3e3a3a40
optimize text rendering in gfx2
2023-07-03 21:45:09 +02:00
Irmen de Jong
cad18b8a3a
uniform symbol prefixing with p8_
2023-07-02 06:15:02 +02:00
Irmen de Jong
7649be97b1
add git hash to compiler header output
2023-06-29 21:01:02 +02:00
Irmen de Jong
b0794cf35e
added hiram bank number to -varshigh
2023-06-27 00:27:34 +02:00
Irmen de Jong
e9163aa3a7
added cx16.save_virtual_registers() and cx16.restore_virtual_registers()
2023-06-24 21:04:47 +02:00
Irmen de Jong
8c617515ba
don't prefix 3-letter symbols too aggressively (could cause some compilation errors)
2023-06-23 23:36:59 +02:00
Irmen de Jong
0aac9350d5
rename math.atan() to math.atan2()
2023-06-18 13:05:36 +02:00
Irmen de Jong
ff7f3484e4
atan
2023-06-17 23:01:47 +02:00
Irmen de Jong
c0b398e0ce
add various math.atan() routines
2023-06-17 00:43:33 +02:00