From 1f5706bbeb7ef80d7ccd9bbafcc298fad256c2cb Mon Sep 17 00:00:00 2001 From: Irmen de Jong Date: Wed, 20 Nov 2024 22:54:26 +0100 Subject: [PATCH] version 10.5.1 --- .../_static/symboldumps/skeletons-atari.txt | 46 +--------- .../_static/symboldumps/skeletons-c128.txt | 84 +++++++++--------- .../_static/symboldumps/skeletons-c64.txt | 88 ++++++++++--------- .../_static/symboldumps/skeletons-cx16.txt | 11 ++- .../_static/symboldumps/skeletons-neo.txt | 4 +- .../_static/symboldumps/skeletons-pet32.txt | 46 +--------- .../_static/symboldumps/skeletons-virtual.txt | 3 +- docs/source/todo.rst | 2 - gradle.properties | 2 +- 9 files changed, 107 insertions(+), 179 deletions(-) diff --git a/docs/source/_static/symboldumps/skeletons-atari.txt b/docs/source/_static/symboldumps/skeletons-atari.txt index 5921dfa9a..65e7df9df 100644 --- a/docs/source/_static/symboldumps/skeletons-atari.txt +++ b/docs/source/_static/symboldumps/skeletons-atari.txt @@ -1,5 +1,5 @@ -Prog8 compiler v10.5 by Irmen de Jong (irmen@razorvine.net) +Prog8 compiler v10.5.1 by Irmen de Jong (irmen@razorvine.net) This software is licensed under the GNU GPL 3.0, see https://www.gnu.org/licenses/gpl.html Compiling program import-all-atari.p8 @@ -98,48 +98,6 @@ cx16logo { } -LIBRARY MODULE NAME: diskio ---------------------------- - -diskio { - const ubyte READ_IO_CHANNEL - const ubyte WRITE_IO_CHANNEL - ubyte @shared drivenumber - bool iteration_in_progress - uword list_blocks - str list_filename - str list_filetype - uword list_pattern - bool list_skip_disk_name - bool write_iteration_in_progress - delete (uword filenameptr) - directory () -> bool - diskname () -> uword - exists (str filename) -> bool - f_close () - f_close_w () - f_open (uword filenameptr) -> bool - f_open_w (uword filenameptr) -> bool - f_read (uword bufferpointer, uword num_bytes) -> uword - f_read_all (uword bufferpointer) -> uword - f_readline (uword bufptr @AY) -> clobbers (X) -> ubyte @Y, ubyte @A - f_write (uword bufferpointer, uword num_bytes) -> bool - lf_end_list () - lf_next_entry () -> bool - lf_start_list (uword pattern_ptr) -> bool - list_filenames (uword pattern_ptr, uword filenames_buffer, uword filenames_buf_size) -> ubyte - load (uword filenameptr, uword address_override) -> uword - load_raw (uword filenameptr, uword start_address) -> uword - rename (uword oldfileptr, uword newfileptr) - reset_read_channel () - reset_write_channel () - save (uword filenameptr, uword start_address, uword savesize) -> bool - send_command (uword commandptr) - status () -> uword - status_code () -> ubyte -} - - LIBRARY MODULE NAME: math ------------------------- @@ -163,6 +121,7 @@ math { direction_qd (ubyte quadrant @A, ubyte xdelta @X, ubyte ydelta @Y) -> ubyte @A direction_sc (byte x1, byte y1, byte x2, byte y2) -> ubyte lerp (ubyte v0, ubyte v1, ubyte t) -> ubyte + lerpw (uword v0, uword v1, uword t) -> uword log2 (ubyte value @A) -> ubyte @Y log2w (uword value @AY) -> ubyte @Y mul16_last_upper () -> uword @AY @@ -257,6 +216,7 @@ sys { pop () -> ubyte @A popw () -> uword @AY progend () -> uword @AY + progstart () -> uword @AY push (ubyte value @A) pushw (uword value @AY) read_flags () -> ubyte @A diff --git a/docs/source/_static/symboldumps/skeletons-c128.txt b/docs/source/_static/symboldumps/skeletons-c128.txt index 2be36acc1..1ae9b43f0 100644 --- a/docs/source/_static/symboldumps/skeletons-c128.txt +++ b/docs/source/_static/symboldumps/skeletons-c128.txt @@ -1,5 +1,5 @@ -Prog8 compiler v10.5 by Irmen de Jong (irmen@razorvine.net) +Prog8 compiler v10.5.1 by Irmen de Jong (irmen@razorvine.net) This software is licensed under the GNU GPL 3.0, see https://www.gnu.org/licenses/gpl.html Compiling program import-all-c128.p8 @@ -98,8 +98,47 @@ cx16logo { } -LIBRARY MODULE NAME: diskio ---------------------------- +LIBRARY MODULE NAME: math +------------------------- + +math { + atan2 (ubyte x1 @R0, ubyte y1 @R1, ubyte x2 @R2, ubyte y2 @R3) -> ubyte @A + cos8 (ubyte angle @A) -> clobbers (Y) -> byte @A + cos8u (ubyte angle @A) -> clobbers (Y) -> ubyte @A + cosr8 (ubyte radians @A) -> clobbers (Y) -> byte @A + cosr8u (ubyte radians @A) -> clobbers (Y) -> ubyte @A + crc16 (uword data, uword length) -> uword + crc16_end () -> uword + crc16_start () + crc16_update (ubyte value @A) + crc32 (uword data, uword length) + crc32_end () + crc32_start () + crc32_update (ubyte value @A) + diff (ubyte v1 @A, ubyte v2 @Y) -> ubyte @A + diffw (uword w1 @R0, uword w2 @AY) -> uword @AY + direction (ubyte x1, ubyte y1, ubyte x2, ubyte y2) -> ubyte + direction_qd (ubyte quadrant @A, ubyte xdelta @X, ubyte ydelta @Y) -> ubyte @A + direction_sc (byte x1, byte y1, byte x2, byte y2) -> ubyte + lerp (ubyte v0, ubyte v1, ubyte t) -> ubyte + lerpw (uword v0, uword v1, uword t) -> uword + log2 (ubyte value @A) -> ubyte @Y + log2w (uword value @AY) -> ubyte @Y + mul16_last_upper () -> uword @AY + randrange (ubyte n) -> ubyte + randrangew (uword n) -> uword + rnd () -> clobbers (Y) -> ubyte @A + rndseed (uword seed1 @AY, uword seed2 @R0) -> clobbers (A,Y) + rndw () -> uword @AY + sin8 (ubyte angle @A) -> clobbers (Y) -> byte @A + sin8u (ubyte angle @A) -> clobbers (Y) -> ubyte @A + sinr8 (ubyte radians @A) -> clobbers (Y) -> byte @A + sinr8u (ubyte radians @A) -> clobbers (Y) -> ubyte @A +} + + +LIBRARY MODULE NAME: shared_cbm_diskio +-------------------------------------- diskio { const ubyte READ_IO_CHANNEL @@ -140,44 +179,6 @@ diskio { } -LIBRARY MODULE NAME: math -------------------------- - -math { - atan2 (ubyte x1 @R0, ubyte y1 @R1, ubyte x2 @R2, ubyte y2 @R3) -> ubyte @A - cos8 (ubyte angle @A) -> clobbers (Y) -> byte @A - cos8u (ubyte angle @A) -> clobbers (Y) -> ubyte @A - cosr8 (ubyte radians @A) -> clobbers (Y) -> byte @A - cosr8u (ubyte radians @A) -> clobbers (Y) -> ubyte @A - crc16 (uword data, uword length) -> uword - crc16_end () -> uword - crc16_start () - crc16_update (ubyte value @A) - crc32 (uword data, uword length) - crc32_end () - crc32_start () - crc32_update (ubyte value @A) - diff (ubyte v1 @A, ubyte v2 @Y) -> ubyte @A - diffw (uword w1 @R0, uword w2 @AY) -> uword @AY - direction (ubyte x1, ubyte y1, ubyte x2, ubyte y2) -> ubyte - direction_qd (ubyte quadrant @A, ubyte xdelta @X, ubyte ydelta @Y) -> ubyte @A - direction_sc (byte x1, byte y1, byte x2, byte y2) -> ubyte - lerp (ubyte v0, ubyte v1, ubyte t) -> ubyte - log2 (ubyte value @A) -> ubyte @Y - log2w (uword value @AY) -> ubyte @Y - mul16_last_upper () -> uword @AY - randrange (ubyte n) -> ubyte - randrangew (uword n) -> uword - rnd () -> clobbers (Y) -> ubyte @A - rndseed (uword seed1 @AY, uword seed2 @R0) -> clobbers (A,Y) - rndw () -> uword @AY - sin8 (ubyte angle @A) -> clobbers (Y) -> byte @A - sin8u (ubyte angle @A) -> clobbers (Y) -> ubyte @A - sinr8 (ubyte radians @A) -> clobbers (Y) -> byte @A - sinr8u (ubyte radians @A) -> clobbers (Y) -> ubyte @A -} - - LIBRARY MODULE NAME: string --------------------------- @@ -478,6 +479,7 @@ sys { pop () -> ubyte @A popw () -> uword @AY progend () -> uword @AY + progstart () -> uword @AY push (ubyte value @A) pushw (uword value @AY) read_flags () -> ubyte @A diff --git a/docs/source/_static/symboldumps/skeletons-c64.txt b/docs/source/_static/symboldumps/skeletons-c64.txt index 71a4f78ac..ac5e6c73f 100644 --- a/docs/source/_static/symboldumps/skeletons-c64.txt +++ b/docs/source/_static/symboldumps/skeletons-c64.txt @@ -1,5 +1,5 @@ -Prog8 compiler v10.5 by Irmen de Jong (irmen@razorvine.net) +Prog8 compiler v10.5.1 by Irmen de Jong (irmen@razorvine.net) This software is licensed under the GNU GPL 3.0, see https://www.gnu.org/licenses/gpl.html Compiling program import-all-c64.p8 @@ -98,48 +98,6 @@ cx16logo { } -LIBRARY MODULE NAME: diskio ---------------------------- - -diskio { - const ubyte READ_IO_CHANNEL - const ubyte WRITE_IO_CHANNEL - ubyte @shared drivenumber - bool iteration_in_progress - uword list_blocks - str list_filename - str list_filetype - uword list_pattern - bool list_skip_disk_name - bool write_iteration_in_progress - delete (uword filenameptr) - directory () -> bool - diskname () -> uword - exists (str filename) -> bool - f_close () - f_close_w () - f_open (uword filenameptr) -> bool - f_open_w (uword filenameptr) -> bool - f_read (uword bufferpointer, uword num_bytes) -> uword - f_read_all (uword bufferpointer) -> uword - f_readline (uword bufptr @AY) -> clobbers (X) -> ubyte @Y, ubyte @A - f_write (uword bufferpointer, uword num_bytes) -> bool - lf_end_list () - lf_next_entry () -> bool - lf_start_list (uword pattern_ptr) -> bool - list_filenames (uword pattern_ptr, uword filenames_buffer, uword filenames_buf_size) -> ubyte - load (uword filenameptr, uword address_override) -> uword - load_raw (uword filenameptr, uword start_address) -> uword - rename (uword oldfileptr, uword newfileptr) - reset_read_channel () - reset_write_channel () - save (uword filenameptr, uword start_address, uword savesize) -> bool - send_command (uword commandptr) - status () -> uword - status_code () -> ubyte -} - - LIBRARY MODULE NAME: floats --------------------------- @@ -284,6 +242,7 @@ math { direction_qd (ubyte quadrant @A, ubyte xdelta @X, ubyte ydelta @Y) -> ubyte @A direction_sc (byte x1, byte y1, byte x2, byte y2) -> ubyte lerp (ubyte v0, ubyte v1, ubyte t) -> ubyte + lerpw (uword v0, uword v1, uword t) -> uword log2 (ubyte value @A) -> ubyte @Y log2w (uword value @AY) -> ubyte @Y mul16_last_upper () -> uword @AY @@ -299,6 +258,48 @@ math { } +LIBRARY MODULE NAME: shared_cbm_diskio +-------------------------------------- + +diskio { + const ubyte READ_IO_CHANNEL + const ubyte WRITE_IO_CHANNEL + ubyte @shared drivenumber + bool iteration_in_progress + uword list_blocks + str list_filename + str list_filetype + uword list_pattern + bool list_skip_disk_name + bool write_iteration_in_progress + delete (uword filenameptr) + directory () -> bool + diskname () -> uword + exists (str filename) -> bool + f_close () + f_close_w () + f_open (uword filenameptr) -> bool + f_open_w (uword filenameptr) -> bool + f_read (uword bufferpointer, uword num_bytes) -> uword + f_read_all (uword bufferpointer) -> uword + f_readline (uword bufptr @AY) -> clobbers (X) -> ubyte @Y, ubyte @A + f_write (uword bufferpointer, uword num_bytes) -> bool + lf_end_list () + lf_next_entry () -> bool + lf_start_list (uword pattern_ptr) -> bool + list_filenames (uword pattern_ptr, uword filenames_buffer, uword filenames_buf_size) -> ubyte + load (uword filenameptr, uword address_override) -> uword + load_raw (uword filenameptr, uword start_address) -> uword + rename (uword oldfileptr, uword newfileptr) + reset_read_channel () + reset_write_channel () + save (uword filenameptr, uword start_address, uword savesize) -> bool + send_command (uword commandptr) + status () -> uword + status_code () -> ubyte +} + + LIBRARY MODULE NAME: string --------------------------- @@ -600,6 +601,7 @@ sys { pop () -> ubyte @A popw () -> uword @AY progend () -> uword @AY + progstart () -> uword @AY push (ubyte value @A) pushw (uword value @AY) read_flags () -> ubyte @A diff --git a/docs/source/_static/symboldumps/skeletons-cx16.txt b/docs/source/_static/symboldumps/skeletons-cx16.txt index ea2f46707..2992c8b3e 100644 --- a/docs/source/_static/symboldumps/skeletons-cx16.txt +++ b/docs/source/_static/symboldumps/skeletons-cx16.txt @@ -1,5 +1,5 @@ -Prog8 compiler v10.5 by Irmen de Jong (irmen@razorvine.net) +Prog8 compiler v10.5.1 by Irmen de Jong (irmen@razorvine.net) This software is licensed under the GNU GPL 3.0, see https://www.gnu.org/licenses/gpl.html Compiling program import-all-cx16.p8 @@ -329,10 +329,10 @@ floats { } -LIBRARY MODULE NAME: gfx_hires4 -------------------------------- +LIBRARY MODULE NAME: gfx_hires +------------------------------ -gfx_hires4 { +gfx_hires { const uword HEIGHT const uword WIDTH const uword charset_addr @@ -457,6 +457,7 @@ math { direction_qd (ubyte quadrant @A, ubyte xdelta @X, ubyte ydelta @Y) -> ubyte @A direction_sc (byte x1, byte y1, byte x2, byte y2) -> ubyte lerp (ubyte v0, ubyte v1, ubyte t) -> ubyte + lerpw (uword v0, uword v1, uword t) -> uword log2 (ubyte value @A) -> ubyte @Y log2w (uword value @AY) -> ubyte @Y mul16_last_upper () -> uword @AY @@ -588,6 +589,7 @@ sprites { movey (ubyte spritenum, word dy) pos (ubyte spritenum, word xpos, word ypos) pos_batch (ubyte first_spritenum, ubyte num_sprites, uword xpositions_ptr, uword ypositions_ptr) + reset (ubyte spritenum_start, ubyte count) set_mousepointer_hand () set_mousepointer_image (uword data, bool compressed) set_palette_offset (ubyte spritenum, ubyte offset) @@ -1152,6 +1154,7 @@ sys { popw () -> uword @AY poweroff_system () progend () -> uword @AY + progstart () -> uword @AY push (ubyte value @A) pushw (uword value @AY) read_flags () -> ubyte @A diff --git a/docs/source/_static/symboldumps/skeletons-neo.txt b/docs/source/_static/symboldumps/skeletons-neo.txt index 01adf0570..a3a8d10d7 100644 --- a/docs/source/_static/symboldumps/skeletons-neo.txt +++ b/docs/source/_static/symboldumps/skeletons-neo.txt @@ -1,5 +1,5 @@ -Prog8 compiler v10.5 by Irmen de Jong (irmen@razorvine.net) +Prog8 compiler v10.5.1 by Irmen de Jong (irmen@razorvine.net) This software is licensed under the GNU GPL 3.0, see https://www.gnu.org/licenses/gpl.html Compiling program import-all-neo.p8 @@ -111,6 +111,7 @@ math { direction_qd (ubyte quadrant @A, ubyte xdelta @X, ubyte ydelta @Y) -> ubyte @A direction_sc (byte x1, byte y1, byte x2, byte y2) -> ubyte lerp (ubyte v0, ubyte v1, ubyte t) -> ubyte + lerpw (uword v0, uword v1, uword t) -> uword log2 (ubyte value @A) -> ubyte @Y log2w (uword value @AY) -> ubyte @Y mul16_last_upper () -> uword @AY @@ -199,6 +200,7 @@ sys { pop () -> ubyte @A popw () -> uword @AY progend () -> uword @AY + progstart () -> uword @AY push (ubyte value @A) pushw (uword value @AY) read_flags () -> ubyte @A diff --git a/docs/source/_static/symboldumps/skeletons-pet32.txt b/docs/source/_static/symboldumps/skeletons-pet32.txt index 63be54883..f4de0b06c 100644 --- a/docs/source/_static/symboldumps/skeletons-pet32.txt +++ b/docs/source/_static/symboldumps/skeletons-pet32.txt @@ -1,5 +1,5 @@ -Prog8 compiler v10.5 by Irmen de Jong (irmen@razorvine.net) +Prog8 compiler v10.5.1 by Irmen de Jong (irmen@razorvine.net) This software is licensed under the GNU GPL 3.0, see https://www.gnu.org/licenses/gpl.html Compiling program import-all-pet32.p8 @@ -98,48 +98,6 @@ cx16logo { } -LIBRARY MODULE NAME: diskio ---------------------------- - -diskio { - const ubyte READ_IO_CHANNEL - const ubyte WRITE_IO_CHANNEL - ubyte @shared drivenumber - bool iteration_in_progress - uword list_blocks - str list_filename - str list_filetype - uword list_pattern - bool list_skip_disk_name - bool write_iteration_in_progress - delete (uword filenameptr) - directory () -> bool - diskname () -> uword - exists (str filename) -> bool - f_close () - f_close_w () - f_open (uword filenameptr) -> bool - f_open_w (uword filenameptr) -> bool - f_read (uword bufferpointer, uword num_bytes) -> uword - f_read_all (uword bufferpointer) -> uword - f_readline (uword bufptr @AY) -> clobbers (X) -> ubyte @Y, ubyte @A - f_write (uword bufferpointer, uword num_bytes) -> bool - lf_end_list () - lf_next_entry () -> bool - lf_start_list (uword pattern_ptr) -> bool - list_filenames (uword pattern_ptr, uword filenames_buffer, uword filenames_buf_size) -> ubyte - load (uword filenameptr, uword address_override) -> uword - load_raw (uword filenameptr, uword start_address) -> uword - rename (uword oldfileptr, uword newfileptr) - reset_read_channel () - reset_write_channel () - save (uword filenameptr, uword start_address, uword savesize) -> bool - send_command (uword commandptr) - status () -> uword - status_code () -> ubyte -} - - LIBRARY MODULE NAME: math ------------------------- @@ -163,6 +121,7 @@ math { direction_qd (ubyte quadrant @A, ubyte xdelta @X, ubyte ydelta @Y) -> ubyte @A direction_sc (byte x1, byte y1, byte x2, byte y2) -> ubyte lerp (ubyte v0, ubyte v1, ubyte t) -> ubyte + lerpw (uword v0, uword v1, uword t) -> uword log2 (ubyte value @A) -> ubyte @Y log2w (uword value @AY) -> ubyte @Y mul16_last_upper () -> uword @AY @@ -275,6 +234,7 @@ sys { pop () -> ubyte @A popw () -> uword @AY progend () -> uword @AY + progstart () -> uword @AY push (ubyte value @A) pushw (uword value @AY) read_flags () -> ubyte @A diff --git a/docs/source/_static/symboldumps/skeletons-virtual.txt b/docs/source/_static/symboldumps/skeletons-virtual.txt index fd402b241..3d0584ece 100644 --- a/docs/source/_static/symboldumps/skeletons-virtual.txt +++ b/docs/source/_static/symboldumps/skeletons-virtual.txt @@ -1,5 +1,5 @@ -Prog8 compiler v10.5 by Irmen de Jong (irmen@razorvine.net) +Prog8 compiler v10.5.1 by Irmen de Jong (irmen@razorvine.net) This software is licensed under the GNU GPL 3.0, see https://www.gnu.org/licenses/gpl.html Compiling program import-all-virtual.p8 @@ -201,6 +201,7 @@ math { direction_qd (ubyte quadrant, ubyte xdelta, ubyte ydelta) -> ubyte direction_sc (byte x1, byte y1, byte x2, byte y2) -> ubyte lerp (ubyte v0, ubyte v1, ubyte t) -> ubyte + lerpw (uword v0, uword v1, uword t) -> uword log2 (ubyte value) -> ubyte log2w (uword value) -> ubyte mul16_last_upper () -> uword diff --git a/docs/source/todo.rst b/docs/source/todo.rst index cc3b5fb35..50b408034 100644 --- a/docs/source/todo.rst +++ b/docs/source/todo.rst @@ -8,8 +8,6 @@ Future Things and Ideas ^^^^^^^^^^^^^^^^^^^^^^^ - something to reduce the need to use fully qualified names all the time. 'with' ? Or 'using '? -- Why are blocks without an addr moved BEHIND a block with an address? That's done in the StatementReorderer. -- Make extsub address a (constant) expression instead of a numeric literal - rename 'string' module to 'strings' to be consistent with 'floats'? - on the C64: make the floating point routines @banked so that basic can be permanently banked out even if you use floats? But this will crash when the call is done from program code at $a000+ - Libraries: improve ability to create library files in prog8; for instance there's still stuff injected into the start of the start() routine AND there is separate setup logic going on before calling it. diff --git a/gradle.properties b/gradle.properties index aed39f747..4d286c4ff 100644 --- a/gradle.properties +++ b/gradle.properties @@ -5,4 +5,4 @@ org.gradle.daemon=true kotlin.code.style=official javaVersion=11 kotlinVersion=2.0.21 -version=10.5.1-SNAPSHOT +version=10.5.1