rename examples/vm to examples/virtual

This commit is contained in:
Irmen de Jong 2025-04-04 19:55:48 +02:00
parent 73f6880ff8
commit f1fec37c79
19 changed files with 120 additions and 115 deletions

View File

@ -1148,7 +1148,7 @@ asmsub init_system_phase2() {
asmsub cleanup_at_exit() {
; executed when the main subroutine does rts
; TODO: Romable (It's technically an easy fix, but i've decided not to touch it for now)
; TODO: Romable
%asm {{
lda #0
sta $ff00 ; default bank 15

View File

@ -1999,7 +1999,7 @@ asmsub init_system_phase2() {
asmsub cleanup_at_exit() {
; executed when the main subroutine does rts
; TODO: Romable (I've decided not to do that yet)
; TODO: Romable
%asm {{
lda #1
sta $00 ; ram bank 1

View File

@ -61,7 +61,7 @@ private fun prepareTestFiles(source: String, optimize: Boolean, target: ICompila
when (target) {
is C64Target -> searchIn.add(0, assumeDirectory(examplesDir, "c64"))
is Cx16Target -> searchIn.add(0, assumeDirectory(examplesDir, "cx16"))
is VMTarget -> searchIn.add(0, assumeDirectory(examplesDir, "vm"))
is VMTarget -> searchIn.add(0, assumeDirectory(examplesDir, "virtual"))
is C128Target -> searchIn.add(0, assumeDirectory(examplesDir, "c128"))
}
val filepath = searchIn.asSequence()

View File

@ -1,6 +1,6 @@
Prog8 compiler v11.3-SNAPSHOT by Irmen de Jong (irmen@razorvine.net)
Prerelease version from git commit 8e31b622 in branch master
Prerelease version from git commit 73f6880f in branch master
This software is licensed under the GNU GPL 3.0, see https://www.gnu.org/licenses/gpl.html
Compiling program import-all-c128.p8
@ -77,7 +77,7 @@ LIBRARY MODULE NAME: conv
-------------------------
conv {
str @shared string_out
ubyte[] @shared string_out
any2uword (str string @AY) -> clobbers (Y) -> ubyte @A
bin2uword (str string @AY) -> uword @AY
hex2uword (str string @AY) -> uword @AY
@ -133,6 +133,55 @@ cx16logo {
}
LIBRARY MODULE NAME: diskio
---------------------------
diskio {
const ubyte READ_IO_CHANNEL
const ubyte STATUS_EOF
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
directory_dirs () -> bool
directory_files () -> 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
get_loadaddress (str filename) -> uword
lf_end_list ()
lf_next_entry () -> bool
lf_start_list (uword pattern_ptr) -> bool
lf_start_list_dirs (uword pattern_ptr) -> bool
lf_start_list_files (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
loadlib (uword libnameptr, uword libaddress) -> 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
-------------------------
@ -174,53 +223,6 @@ 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
directory_dirs () -> bool
directory_files () -> 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
get_loadaddress (str filename) -> uword
lf_end_list ()
lf_next_entry () -> bool
lf_start_list (uword pattern_ptr) -> bool
lf_start_list_dirs (uword pattern_ptr) -> bool
lf_start_list_files (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: strings
----------------------------

View File

@ -1,6 +1,6 @@
Prog8 compiler v11.3-SNAPSHOT by Irmen de Jong (irmen@razorvine.net)
Prerelease version from git commit 8e31b622 in branch master
Prerelease version from git commit 73f6880f in branch master
This software is licensed under the GNU GPL 3.0, see https://www.gnu.org/licenses/gpl.html
Compiling program import-all-c64.p8
@ -77,7 +77,7 @@ LIBRARY MODULE NAME: conv
-------------------------
conv {
str @shared string_out
ubyte[] @shared string_out
any2uword (str string @AY) -> clobbers (Y) -> ubyte @A
bin2uword (str string @AY) -> uword @AY
hex2uword (str string @AY) -> uword @AY
@ -133,6 +133,55 @@ cx16logo {
}
LIBRARY MODULE NAME: diskio
---------------------------
diskio {
const ubyte READ_IO_CHANNEL
const ubyte STATUS_EOF
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
directory_dirs () -> bool
directory_files () -> 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
get_loadaddress (str filename) -> uword
lf_end_list ()
lf_next_entry () -> bool
lf_start_list (uword pattern_ptr) -> bool
lf_start_list_dirs (uword pattern_ptr) -> bool
lf_start_list_files (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
loadlib (uword libnameptr, uword libaddress) -> 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
---------------------------
@ -298,53 +347,6 @@ 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
directory_dirs () -> bool
directory_files () -> 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
get_loadaddress (str filename) -> uword
lf_end_list ()
lf_next_entry () -> bool
lf_start_list (uword pattern_ptr) -> bool
lf_start_list_dirs (uword pattern_ptr) -> bool
lf_start_list_files (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: strings
----------------------------

View File

@ -1,6 +1,6 @@
Prog8 compiler v11.3-SNAPSHOT by Irmen de Jong (irmen@razorvine.net)
Prerelease version from git commit 8e31b622 in branch master
Prerelease version from git commit 73f6880f in branch master
This software is licensed under the GNU GPL 3.0, see https://www.gnu.org/licenses/gpl.html
Compiling program import-all-cx16.p8
@ -115,7 +115,7 @@ LIBRARY MODULE NAME: conv
-------------------------
conv {
str @shared string_out
ubyte[] @shared string_out
any2uword (str string @AY) -> clobbers (Y) -> ubyte @A
bin2uword (str string @AY) -> uword @AY
hex2uword (str string @AY) -> uword @AY
@ -176,6 +176,7 @@ LIBRARY MODULE NAME: diskio
diskio {
const ubyte READ_IO_CHANNEL
const ubyte STATUS_EOF
const ubyte WRITE_IO_CHANNEL
ubyte @shared drivenumber
bool iteration_in_progress
@ -220,6 +221,7 @@ diskio {
load (uword filenameptr, uword address_override) -> uword
load_raw (uword filenameptr, uword startaddress) -> uword
load_size (ubyte startbank, uword startaddress, uword endaddress) -> uword
loadlib (uword libnameptr, uword libaddress) -> uword
mkdir (str name)
read4hex () -> uword
relabel (str name)

View File

@ -1,6 +1,6 @@
Prog8 compiler v11.3-SNAPSHOT by Irmen de Jong (irmen@razorvine.net)
Prerelease version from git commit 8e31b622 in branch master
Prerelease version from git commit 73f6880f in branch master
This software is licensed under the GNU GPL 3.0, see https://www.gnu.org/licenses/gpl.html
Compiling program import-all-pet32.p8
@ -77,7 +77,7 @@ LIBRARY MODULE NAME: conv
-------------------------
conv {
str @shared string_out
ubyte[] @shared string_out
any2uword (str string @AY) -> clobbers (Y) -> ubyte @A
bin2uword (str string @AY) -> uword @AY
hex2uword (str string @AY) -> uword @AY

View File

@ -1,6 +1,6 @@
Prog8 compiler v11.3-SNAPSHOT by Irmen de Jong (irmen@razorvine.net)
Prerelease version from git commit 8e31b622 in branch master
Prerelease version from git commit 73f6880f in branch master
This software is licensed under the GNU GPL 3.0, see https://www.gnu.org/licenses/gpl.html
Compiling program import-all-virtual.p8

View File

@ -257,7 +257,7 @@ One or more .p8 module files
Assembling the program will fail if there are too many variables to fit in a single high ram bank.
``-vm``
load and run a p8-virt or p8-ir listing in the internal VirtualMachine instead of compiling a prog8 program file..
load and run a 'p8ir' intermediate representation file in the internal VirtualMachine instead of compiling a prog8 program file.
``-warnshadow``
Tells the assembler to issue warning messages about symbol shadowing.

View File

@ -3,12 +3,8 @@ TODO
atari customtarget: default output should be .xex not .prg (10.5 still did it correctly)
megascroll has become larger, why?
test irqs on various targets: set_irq, set_rasterirq
cleanup_at_exit : is that not romable?
can memset/memsetw be written without the need of a temp register variable?
@ -18,6 +14,7 @@ can memset/memsetw be written without the need of a temp register variable?
Future Things and Ideas
^^^^^^^^^^^^^^^^^^^^^^^
- make compiler quiet when running .p8ir files via -vm (also add -quiet flag to suppress output on regular operation?)
- romable: fix / add "TODO: Romable" in libraries
- romable: should we have a way to explicitly set the memory address for the BSS area (instead of only the highram bank number on X16, allow a memory address too for the -varshigh option?)
- Kotlin: can we use inline value classes in certain spots?

View File

@ -563,6 +563,7 @@ p8_sys_startup {
asmsub cleanup_at_exit() {
; executed when the main subroutine does rts
; TODO: Romable
%asm {{
_exitcodeCarry = *+1
lda #0

View File

@ -493,6 +493,7 @@ p8_sys_startup {
asmsub cleanup_at_exit() {
; executed when the main subroutine does rts
; TODO: Romable
%asm {{
_exitcodeCarry = *+1
lda #0

View File

@ -64,6 +64,7 @@ p8_sys_startup {
asmsub cleanup_at_exit() {
; executed when the main subroutine does rts
; TODO: Romable
%asm {{
_exitcodeCarry = *+1
lda #0

View File

@ -68,6 +68,7 @@ p8_sys_startup {
asmsub cleanup_at_exit() {
; executed when the main subroutine does rts
; TODO: Romable
%asm {{
_exitcodeCarry = *+1
lda #0

View File

@ -62,6 +62,7 @@ p8_sys_startup {
asmsub cleanup_at_exit() {
; executed when the main subroutine does rts
; TODO: Romable
%asm {{
_exitcodeCarry = *+1
lda #0

View File

@ -3,10 +3,7 @@
; Draw sine and cosine graphs. The sine and cosine functions are table lookups
; where the tables are generated by 64tass list functions.
; Note: this program is compatible with CX16 only.
; it doesn't work correctly on C64 because the bitmap screen data overlaps
; the program itself in memory $2000-...
; NOTE: meant to test to virtual machine output target (use -target virtual)
main {
const uword width = 320