mirror of
https://github.com/irmen/prog8.git
synced 2026-04-20 11:17:01 +00:00
Merge branch 'refs/heads/master' into structs
# Conflicts: # examples/test.p8
This commit is contained in:
@@ -1,6 +1,5 @@
|
||||
|
||||
Prog8 compiler v11.4-SNAPSHOT by Irmen de Jong (irmen@razorvine.net)
|
||||
Prerelease version from git commit a87f2640 in branch master
|
||||
Prog8 compiler v11.4 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
|
||||
@@ -109,7 +108,6 @@ LIBRARY MODULE NAME: coroutines
|
||||
coroutines {
|
||||
const ubyte MAX_TASKS
|
||||
ubyte active_task
|
||||
uword[] returnaddresses
|
||||
uword supervisor
|
||||
uword[] tasklist
|
||||
uword[] userdatas
|
||||
@@ -238,6 +236,7 @@ strings {
|
||||
copy (uword source @R0, uword target @AY) -> clobbers (A) -> ubyte @Y
|
||||
endswith (str st, str suffix) -> bool
|
||||
find (uword string @AY, ubyte character @X) -> ubyte @A, bool @Pc
|
||||
find_eol (uword string @AY) -> ubyte @A, bool @Pc
|
||||
findstr (str haystack, str needle) -> ubyte
|
||||
hash (str string @AY) -> ubyte @A
|
||||
isdigit (ubyte petsciichar @A) -> bool @Pc
|
||||
@@ -529,6 +528,7 @@ sys {
|
||||
exit (ubyte returnvalue @A)
|
||||
exit2 (ubyte resulta @A, ubyte resultx @X, ubyte resulty @Y)
|
||||
exit3 (ubyte resulta @A, ubyte resultx @X, ubyte resulty @Y, bool carry @Pc)
|
||||
get_as_returnaddress (uword address @XY) -> uword @AX
|
||||
internal_stringcopy (uword source @R0, uword target @AY) -> clobbers (A,Y)
|
||||
irqsafe_clear_irqd ()
|
||||
irqsafe_set_irqd ()
|
||||
@@ -561,6 +561,8 @@ cx16 {
|
||||
&uword r0
|
||||
&ubyte r0H
|
||||
&ubyte r0L
|
||||
&bool r0bH
|
||||
&bool r0bL
|
||||
&word r0s
|
||||
&byte r0sH
|
||||
&byte r0sL
|
||||
@@ -568,89 +570,119 @@ cx16 {
|
||||
&uword r10
|
||||
&ubyte r10H
|
||||
&ubyte r10L
|
||||
&bool r10bH
|
||||
&bool r10bL
|
||||
&word r10s
|
||||
&byte r10sH
|
||||
&byte r10sL
|
||||
&uword r11
|
||||
&ubyte r11H
|
||||
&ubyte r11L
|
||||
&bool r11bH
|
||||
&bool r11bL
|
||||
&word r11s
|
||||
&byte r11sH
|
||||
&byte r11sL
|
||||
&uword r12
|
||||
&ubyte r12H
|
||||
&ubyte r12L
|
||||
&bool r12bH
|
||||
&bool r12bL
|
||||
&word r12s
|
||||
&byte r12sH
|
||||
&byte r12sL
|
||||
&uword r13
|
||||
&ubyte r13H
|
||||
&ubyte r13L
|
||||
&bool r13bH
|
||||
&bool r13bL
|
||||
&word r13s
|
||||
&byte r13sH
|
||||
&byte r13sL
|
||||
&uword r14
|
||||
&ubyte r14H
|
||||
&ubyte r14L
|
||||
&bool r14bH
|
||||
&bool r14bL
|
||||
&word r14s
|
||||
&byte r14sH
|
||||
&byte r14sL
|
||||
&uword r15
|
||||
&ubyte r15H
|
||||
&ubyte r15L
|
||||
&bool r15bH
|
||||
&bool r15bL
|
||||
&word r15s
|
||||
&byte r15sH
|
||||
&byte r15sL
|
||||
&ubyte r1H
|
||||
&ubyte r1L
|
||||
&bool r1bH
|
||||
&bool r1bL
|
||||
&word r1s
|
||||
&byte r1sH
|
||||
&byte r1sL
|
||||
&uword r2
|
||||
&ubyte r2H
|
||||
&ubyte r2L
|
||||
&bool r2bH
|
||||
&bool r2bL
|
||||
&word r2s
|
||||
&byte r2sH
|
||||
&byte r2sL
|
||||
&uword r3
|
||||
&ubyte r3H
|
||||
&ubyte r3L
|
||||
&bool r3bH
|
||||
&bool r3bL
|
||||
&word r3s
|
||||
&byte r3sH
|
||||
&byte r3sL
|
||||
&uword r4
|
||||
&ubyte r4H
|
||||
&ubyte r4L
|
||||
&bool r4bH
|
||||
&bool r4bL
|
||||
&word r4s
|
||||
&byte r4sH
|
||||
&byte r4sL
|
||||
&uword r5
|
||||
&ubyte r5H
|
||||
&ubyte r5L
|
||||
&bool r5bH
|
||||
&bool r5bL
|
||||
&word r5s
|
||||
&byte r5sH
|
||||
&byte r5sL
|
||||
&uword r6
|
||||
&ubyte r6H
|
||||
&ubyte r6L
|
||||
&bool r6bH
|
||||
&bool r6bL
|
||||
&word r6s
|
||||
&byte r6sH
|
||||
&byte r6sL
|
||||
&uword r7
|
||||
&ubyte r7H
|
||||
&ubyte r7L
|
||||
&bool r7bH
|
||||
&bool r7bL
|
||||
&word r7s
|
||||
&byte r7sH
|
||||
&byte r7sL
|
||||
&uword r8
|
||||
&ubyte r8H
|
||||
&ubyte r8L
|
||||
&bool r8bH
|
||||
&bool r8bL
|
||||
&word r8s
|
||||
&byte r8sH
|
||||
&byte r8sL
|
||||
&uword r9
|
||||
&ubyte r9H
|
||||
&ubyte r9L
|
||||
&bool r9bH
|
||||
&bool r9bL
|
||||
&word r9s
|
||||
&byte r9sH
|
||||
&byte r9sL
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
|
||||
Prog8 compiler v11.4-SNAPSHOT by Irmen de Jong (irmen@razorvine.net)
|
||||
Prerelease version from git commit a87f2640 in branch master
|
||||
Prog8 compiler v11.4 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
|
||||
@@ -109,7 +108,6 @@ LIBRARY MODULE NAME: coroutines
|
||||
coroutines {
|
||||
const ubyte MAX_TASKS
|
||||
ubyte active_task
|
||||
uword[] returnaddresses
|
||||
uword supervisor
|
||||
uword[] tasklist
|
||||
uword[] userdatas
|
||||
@@ -365,6 +363,7 @@ strings {
|
||||
copy (uword source @R0, uword target @AY) -> clobbers (A) -> ubyte @Y
|
||||
endswith (str st, str suffix) -> bool
|
||||
find (uword string @AY, ubyte character @X) -> ubyte @A, bool @Pc
|
||||
find_eol (uword string @AY) -> ubyte @A, bool @Pc
|
||||
findstr (str haystack, str needle) -> ubyte
|
||||
hash (str string @AY) -> ubyte @A
|
||||
isdigit (ubyte petsciichar @A) -> bool @Pc
|
||||
@@ -658,6 +657,7 @@ sys {
|
||||
exit (ubyte returnvalue @A)
|
||||
exit2 (ubyte resulta @A, ubyte resultx @X, ubyte resulty @Y)
|
||||
exit3 (ubyte resulta @A, ubyte resultx @X, ubyte resulty @Y, bool carry @Pc)
|
||||
get_as_returnaddress (uword address @XY) -> uword @AX
|
||||
internal_stringcopy (uword source @R0, uword target @AY) -> clobbers (A,Y)
|
||||
irqsafe_clear_irqd ()
|
||||
irqsafe_set_irqd ()
|
||||
@@ -690,6 +690,8 @@ cx16 {
|
||||
&uword r0
|
||||
&ubyte r0H
|
||||
&ubyte r0L
|
||||
&bool r0bH
|
||||
&bool r0bL
|
||||
&word r0s
|
||||
&byte r0sH
|
||||
&byte r0sL
|
||||
@@ -697,89 +699,119 @@ cx16 {
|
||||
&uword r10
|
||||
&ubyte r10H
|
||||
&ubyte r10L
|
||||
&bool r10bH
|
||||
&bool r10bL
|
||||
&word r10s
|
||||
&byte r10sH
|
||||
&byte r10sL
|
||||
&uword r11
|
||||
&ubyte r11H
|
||||
&ubyte r11L
|
||||
&bool r11bH
|
||||
&bool r11bL
|
||||
&word r11s
|
||||
&byte r11sH
|
||||
&byte r11sL
|
||||
&uword r12
|
||||
&ubyte r12H
|
||||
&ubyte r12L
|
||||
&bool r12bH
|
||||
&bool r12bL
|
||||
&word r12s
|
||||
&byte r12sH
|
||||
&byte r12sL
|
||||
&uword r13
|
||||
&ubyte r13H
|
||||
&ubyte r13L
|
||||
&bool r13bH
|
||||
&bool r13bL
|
||||
&word r13s
|
||||
&byte r13sH
|
||||
&byte r13sL
|
||||
&uword r14
|
||||
&ubyte r14H
|
||||
&ubyte r14L
|
||||
&bool r14bH
|
||||
&bool r14bL
|
||||
&word r14s
|
||||
&byte r14sH
|
||||
&byte r14sL
|
||||
&uword r15
|
||||
&ubyte r15H
|
||||
&ubyte r15L
|
||||
&bool r15bH
|
||||
&bool r15bL
|
||||
&word r15s
|
||||
&byte r15sH
|
||||
&byte r15sL
|
||||
&ubyte r1H
|
||||
&ubyte r1L
|
||||
&bool r1bH
|
||||
&bool r1bL
|
||||
&word r1s
|
||||
&byte r1sH
|
||||
&byte r1sL
|
||||
&uword r2
|
||||
&ubyte r2H
|
||||
&ubyte r2L
|
||||
&bool r2bH
|
||||
&bool r2bL
|
||||
&word r2s
|
||||
&byte r2sH
|
||||
&byte r2sL
|
||||
&uword r3
|
||||
&ubyte r3H
|
||||
&ubyte r3L
|
||||
&bool r3bH
|
||||
&bool r3bL
|
||||
&word r3s
|
||||
&byte r3sH
|
||||
&byte r3sL
|
||||
&uword r4
|
||||
&ubyte r4H
|
||||
&ubyte r4L
|
||||
&bool r4bH
|
||||
&bool r4bL
|
||||
&word r4s
|
||||
&byte r4sH
|
||||
&byte r4sL
|
||||
&uword r5
|
||||
&ubyte r5H
|
||||
&ubyte r5L
|
||||
&bool r5bH
|
||||
&bool r5bL
|
||||
&word r5s
|
||||
&byte r5sH
|
||||
&byte r5sL
|
||||
&uword r6
|
||||
&ubyte r6H
|
||||
&ubyte r6L
|
||||
&bool r6bH
|
||||
&bool r6bL
|
||||
&word r6s
|
||||
&byte r6sH
|
||||
&byte r6sL
|
||||
&uword r7
|
||||
&ubyte r7H
|
||||
&ubyte r7L
|
||||
&bool r7bH
|
||||
&bool r7bL
|
||||
&word r7s
|
||||
&byte r7sH
|
||||
&byte r7sL
|
||||
&uword r8
|
||||
&ubyte r8H
|
||||
&ubyte r8L
|
||||
&bool r8bH
|
||||
&bool r8bL
|
||||
&word r8s
|
||||
&byte r8sH
|
||||
&byte r8sL
|
||||
&uword r9
|
||||
&ubyte r9H
|
||||
&ubyte r9L
|
||||
&bool r9bH
|
||||
&bool r9bL
|
||||
&word r9s
|
||||
&byte r9sH
|
||||
&byte r9sL
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
|
||||
Prog8 compiler v11.4-SNAPSHOT by Irmen de Jong (irmen@razorvine.net)
|
||||
Prerelease version from git commit a87f2640 in branch master
|
||||
Prog8 compiler v11.4 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
|
||||
@@ -147,7 +146,6 @@ LIBRARY MODULE NAME: coroutines
|
||||
coroutines {
|
||||
const ubyte MAX_TASKS
|
||||
ubyte active_task
|
||||
uword[] returnaddresses
|
||||
uword supervisor
|
||||
uword[] tasklist
|
||||
uword[] userdatas
|
||||
@@ -676,6 +674,7 @@ strings {
|
||||
copy (uword source @R0, uword target @AY) -> clobbers (A) -> ubyte @Y
|
||||
endswith (str st, str suffix) -> bool
|
||||
find (uword string @AY, ubyte character @X) -> ubyte @A, bool @Pc
|
||||
find_eol (uword string @AY) -> ubyte @A, bool @Pc
|
||||
findstr (str haystack, str needle) -> ubyte
|
||||
hash (str string @AY) -> ubyte @A
|
||||
isdigit (ubyte petsciichar @A) -> bool @Pc
|
||||
@@ -894,6 +893,8 @@ cx16 {
|
||||
&uword r0
|
||||
&ubyte r0H
|
||||
&ubyte r0L
|
||||
&bool r0bH
|
||||
&bool r0bL
|
||||
&word r0s
|
||||
&byte r0sH
|
||||
&byte r0sL
|
||||
@@ -901,89 +902,119 @@ cx16 {
|
||||
&uword r10
|
||||
&ubyte r10H
|
||||
&ubyte r10L
|
||||
&bool r10bH
|
||||
&bool r10bL
|
||||
&word r10s
|
||||
&byte r10sH
|
||||
&byte r10sL
|
||||
&uword r11
|
||||
&ubyte r11H
|
||||
&ubyte r11L
|
||||
&bool r11bH
|
||||
&bool r11bL
|
||||
&word r11s
|
||||
&byte r11sH
|
||||
&byte r11sL
|
||||
&uword r12
|
||||
&ubyte r12H
|
||||
&ubyte r12L
|
||||
&bool r12bH
|
||||
&bool r12bL
|
||||
&word r12s
|
||||
&byte r12sH
|
||||
&byte r12sL
|
||||
&uword r13
|
||||
&ubyte r13H
|
||||
&ubyte r13L
|
||||
&bool r13bH
|
||||
&bool r13bL
|
||||
&word r13s
|
||||
&byte r13sH
|
||||
&byte r13sL
|
||||
&uword r14
|
||||
&ubyte r14H
|
||||
&ubyte r14L
|
||||
&bool r14bH
|
||||
&bool r14bL
|
||||
&word r14s
|
||||
&byte r14sH
|
||||
&byte r14sL
|
||||
&uword r15
|
||||
&ubyte r15H
|
||||
&ubyte r15L
|
||||
&bool r15bH
|
||||
&bool r15bL
|
||||
&word r15s
|
||||
&byte r15sH
|
||||
&byte r15sL
|
||||
&ubyte r1H
|
||||
&ubyte r1L
|
||||
&bool r1bH
|
||||
&bool r1bL
|
||||
&word r1s
|
||||
&byte r1sH
|
||||
&byte r1sL
|
||||
&uword r2
|
||||
&ubyte r2H
|
||||
&ubyte r2L
|
||||
&bool r2bH
|
||||
&bool r2bL
|
||||
&word r2s
|
||||
&byte r2sH
|
||||
&byte r2sL
|
||||
&uword r3
|
||||
&ubyte r3H
|
||||
&ubyte r3L
|
||||
&bool r3bH
|
||||
&bool r3bL
|
||||
&word r3s
|
||||
&byte r3sH
|
||||
&byte r3sL
|
||||
&uword r4
|
||||
&ubyte r4H
|
||||
&ubyte r4L
|
||||
&bool r4bH
|
||||
&bool r4bL
|
||||
&word r4s
|
||||
&byte r4sH
|
||||
&byte r4sL
|
||||
&uword r5
|
||||
&ubyte r5H
|
||||
&ubyte r5L
|
||||
&bool r5bH
|
||||
&bool r5bL
|
||||
&word r5s
|
||||
&byte r5sH
|
||||
&byte r5sL
|
||||
&uword r6
|
||||
&ubyte r6H
|
||||
&ubyte r6L
|
||||
&bool r6bH
|
||||
&bool r6bL
|
||||
&word r6s
|
||||
&byte r6sH
|
||||
&byte r6sL
|
||||
&uword r7
|
||||
&ubyte r7H
|
||||
&ubyte r7L
|
||||
&bool r7bH
|
||||
&bool r7bL
|
||||
&word r7s
|
||||
&byte r7sH
|
||||
&byte r7sL
|
||||
&uword r8
|
||||
&ubyte r8H
|
||||
&ubyte r8L
|
||||
&bool r8bH
|
||||
&bool r8bL
|
||||
&word r8s
|
||||
&byte r8sH
|
||||
&byte r8sL
|
||||
&uword r9
|
||||
&ubyte r9H
|
||||
&ubyte r9L
|
||||
&bool r9bH
|
||||
&bool r9bL
|
||||
&word r9s
|
||||
&byte r9sH
|
||||
&byte r9sL
|
||||
@@ -1233,6 +1264,7 @@ sys {
|
||||
exit (ubyte returnvalue @A)
|
||||
exit2 (ubyte resulta @A, ubyte resultx @X, ubyte resulty @Y)
|
||||
exit3 (ubyte resulta @A, ubyte resultx @X, ubyte resulty @Y, bool carry @Pc)
|
||||
get_as_returnaddress (uword address @XY) -> uword @AX
|
||||
internal_stringcopy (uword source @R0, uword target @AY) -> clobbers (A,Y)
|
||||
irqsafe_clear_irqd ()
|
||||
irqsafe_set_irqd ()
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
|
||||
Prog8 compiler v11.4-SNAPSHOT by Irmen de Jong (irmen@razorvine.net)
|
||||
Prerelease version from git commit a87f2640 in branch master
|
||||
Prog8 compiler v11.4 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
|
||||
@@ -109,7 +108,6 @@ LIBRARY MODULE NAME: coroutines
|
||||
coroutines {
|
||||
const ubyte MAX_TASKS
|
||||
ubyte active_task
|
||||
uword[] returnaddresses
|
||||
uword supervisor
|
||||
uword[] tasklist
|
||||
uword[] userdatas
|
||||
@@ -189,6 +187,7 @@ strings {
|
||||
copy (uword source @R0, uword target @AY) -> clobbers (A) -> ubyte @Y
|
||||
endswith (str st, str suffix) -> bool
|
||||
find (uword string @AY, ubyte character @X) -> ubyte @A, bool @Pc
|
||||
find_eol (uword string @AY) -> ubyte @A, bool @Pc
|
||||
findstr (str haystack, str needle) -> ubyte
|
||||
hash (str string @AY) -> ubyte @A
|
||||
isdigit (ubyte petsciichar @A) -> bool @Pc
|
||||
@@ -276,6 +275,7 @@ sys {
|
||||
exit (ubyte returnvalue @A)
|
||||
exit2 (ubyte resulta @A, ubyte resultx @X, ubyte resulty @Y)
|
||||
exit3 (ubyte resulta @A, ubyte resultx @X, ubyte resulty @Y, bool carry @Pc)
|
||||
get_as_returnaddress (uword address @XY) -> uword @AX
|
||||
internal_stringcopy (uword source @R0, uword target @AY) -> clobbers (A,Y)
|
||||
irqsafe_clear_irqd ()
|
||||
irqsafe_set_irqd ()
|
||||
@@ -304,6 +304,8 @@ cx16 {
|
||||
&uword r0
|
||||
&ubyte r0H
|
||||
&ubyte r0L
|
||||
&bool r0bH
|
||||
&bool r0bL
|
||||
&word r0s
|
||||
&byte r0sH
|
||||
&byte r0sL
|
||||
@@ -311,89 +313,119 @@ cx16 {
|
||||
&uword r10
|
||||
&ubyte r10H
|
||||
&ubyte r10L
|
||||
&bool r10bH
|
||||
&bool r10bL
|
||||
&word r10s
|
||||
&byte r10sH
|
||||
&byte r10sL
|
||||
&uword r11
|
||||
&ubyte r11H
|
||||
&ubyte r11L
|
||||
&bool r11bH
|
||||
&bool r11bL
|
||||
&word r11s
|
||||
&byte r11sH
|
||||
&byte r11sL
|
||||
&uword r12
|
||||
&ubyte r12H
|
||||
&ubyte r12L
|
||||
&bool r12bH
|
||||
&bool r12bL
|
||||
&word r12s
|
||||
&byte r12sH
|
||||
&byte r12sL
|
||||
&uword r13
|
||||
&ubyte r13H
|
||||
&ubyte r13L
|
||||
&bool r13bH
|
||||
&bool r13bL
|
||||
&word r13s
|
||||
&byte r13sH
|
||||
&byte r13sL
|
||||
&uword r14
|
||||
&ubyte r14H
|
||||
&ubyte r14L
|
||||
&bool r14bH
|
||||
&bool r14bL
|
||||
&word r14s
|
||||
&byte r14sH
|
||||
&byte r14sL
|
||||
&uword r15
|
||||
&ubyte r15H
|
||||
&ubyte r15L
|
||||
&bool r15bH
|
||||
&bool r15bL
|
||||
&word r15s
|
||||
&byte r15sH
|
||||
&byte r15sL
|
||||
&ubyte r1H
|
||||
&ubyte r1L
|
||||
&bool r1bH
|
||||
&bool r1bL
|
||||
&word r1s
|
||||
&byte r1sH
|
||||
&byte r1sL
|
||||
&uword r2
|
||||
&ubyte r2H
|
||||
&ubyte r2L
|
||||
&bool r2bH
|
||||
&bool r2bL
|
||||
&word r2s
|
||||
&byte r2sH
|
||||
&byte r2sL
|
||||
&uword r3
|
||||
&ubyte r3H
|
||||
&ubyte r3L
|
||||
&bool r3bH
|
||||
&bool r3bL
|
||||
&word r3s
|
||||
&byte r3sH
|
||||
&byte r3sL
|
||||
&uword r4
|
||||
&ubyte r4H
|
||||
&ubyte r4L
|
||||
&bool r4bH
|
||||
&bool r4bL
|
||||
&word r4s
|
||||
&byte r4sH
|
||||
&byte r4sL
|
||||
&uword r5
|
||||
&ubyte r5H
|
||||
&ubyte r5L
|
||||
&bool r5bH
|
||||
&bool r5bL
|
||||
&word r5s
|
||||
&byte r5sH
|
||||
&byte r5sL
|
||||
&uword r6
|
||||
&ubyte r6H
|
||||
&ubyte r6L
|
||||
&bool r6bH
|
||||
&bool r6bL
|
||||
&word r6s
|
||||
&byte r6sH
|
||||
&byte r6sL
|
||||
&uword r7
|
||||
&ubyte r7H
|
||||
&ubyte r7L
|
||||
&bool r7bH
|
||||
&bool r7bL
|
||||
&word r7s
|
||||
&byte r7sH
|
||||
&byte r7sL
|
||||
&uword r8
|
||||
&ubyte r8H
|
||||
&ubyte r8L
|
||||
&bool r8bH
|
||||
&bool r8bL
|
||||
&word r8s
|
||||
&byte r8sH
|
||||
&byte r8sL
|
||||
&uword r9
|
||||
&ubyte r9H
|
||||
&ubyte r9L
|
||||
&bool r9bH
|
||||
&bool r9bL
|
||||
&word r9s
|
||||
&byte r9sH
|
||||
&byte r9sL
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
|
||||
Prog8 compiler v11.4-SNAPSHOT by Irmen de Jong (irmen@razorvine.net)
|
||||
Prerelease version from git commit a87f2640 in branch master
|
||||
Prog8 compiler v11.4 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
|
||||
@@ -280,7 +279,8 @@ strings {
|
||||
contains (str st, ubyte character) -> bool
|
||||
copy (str source, str target) -> ubyte
|
||||
endswith (str st, str suffix) -> bool
|
||||
find (str st, ubyte character) -> ubyte
|
||||
find (str st, ubyte character) -> ubyte, bool
|
||||
find_eol (str st) -> ubyte, bool
|
||||
findstr (str haystack, str needle) -> ubyte
|
||||
hash (str st) -> ubyte
|
||||
isdigit (ubyte character) -> bool
|
||||
@@ -298,7 +298,7 @@ strings {
|
||||
ltrim (str s)
|
||||
ltrimmed (str s) -> str
|
||||
ncompare (str st1, str st2, ubyte length) -> byte
|
||||
rfind (uword stringptr, ubyte character) -> ubyte
|
||||
rfind (uword stringptr, ubyte character) -> ubyte, bool
|
||||
right (str source, ubyte slen, str target)
|
||||
rstrip (str s)
|
||||
rtrim (str s)
|
||||
@@ -338,6 +338,7 @@ sys {
|
||||
disable_caseswitch ()
|
||||
enable_caseswitch ()
|
||||
exit (ubyte returnvalue)
|
||||
get_as_returnaddress (uword address) -> uword
|
||||
gfx_clear (ubyte color)
|
||||
gfx_enable (ubyte mode)
|
||||
gfx_getpixel (uword xx, uword yy) -> ubyte
|
||||
@@ -366,6 +367,8 @@ cx16 {
|
||||
&uword r0
|
||||
&ubyte r0H
|
||||
&ubyte r0L
|
||||
&bool r0bH
|
||||
&bool r0bL
|
||||
&word r0s
|
||||
&byte r0sH
|
||||
&byte r0sL
|
||||
@@ -373,89 +376,119 @@ cx16 {
|
||||
&uword r10
|
||||
&ubyte r10H
|
||||
&ubyte r10L
|
||||
&bool r10bH
|
||||
&bool r10bL
|
||||
&word r10s
|
||||
&byte r10sH
|
||||
&byte r10sL
|
||||
&uword r11
|
||||
&ubyte r11H
|
||||
&ubyte r11L
|
||||
&bool r11bH
|
||||
&bool r11bL
|
||||
&word r11s
|
||||
&byte r11sH
|
||||
&byte r11sL
|
||||
&uword r12
|
||||
&ubyte r12H
|
||||
&ubyte r12L
|
||||
&bool r12bH
|
||||
&bool r12bL
|
||||
&word r12s
|
||||
&byte r12sH
|
||||
&byte r12sL
|
||||
&uword r13
|
||||
&ubyte r13H
|
||||
&ubyte r13L
|
||||
&bool r13bH
|
||||
&bool r13bL
|
||||
&word r13s
|
||||
&byte r13sH
|
||||
&byte r13sL
|
||||
&uword r14
|
||||
&ubyte r14H
|
||||
&ubyte r14L
|
||||
&bool r14bH
|
||||
&bool r14bL
|
||||
&word r14s
|
||||
&byte r14sH
|
||||
&byte r14sL
|
||||
&uword r15
|
||||
&ubyte r15H
|
||||
&ubyte r15L
|
||||
&bool r15bH
|
||||
&bool r15bL
|
||||
&word r15s
|
||||
&byte r15sH
|
||||
&byte r15sL
|
||||
&ubyte r1H
|
||||
&ubyte r1L
|
||||
&bool r1bH
|
||||
&bool r1bL
|
||||
&word r1s
|
||||
&byte r1sH
|
||||
&byte r1sL
|
||||
&uword r2
|
||||
&ubyte r2H
|
||||
&ubyte r2L
|
||||
&bool r2bH
|
||||
&bool r2bL
|
||||
&word r2s
|
||||
&byte r2sH
|
||||
&byte r2sL
|
||||
&uword r3
|
||||
&ubyte r3H
|
||||
&ubyte r3L
|
||||
&bool r3bH
|
||||
&bool r3bL
|
||||
&word r3s
|
||||
&byte r3sH
|
||||
&byte r3sL
|
||||
&uword r4
|
||||
&ubyte r4H
|
||||
&ubyte r4L
|
||||
&bool r4bH
|
||||
&bool r4bL
|
||||
&word r4s
|
||||
&byte r4sH
|
||||
&byte r4sL
|
||||
&uword r5
|
||||
&ubyte r5H
|
||||
&ubyte r5L
|
||||
&bool r5bH
|
||||
&bool r5bL
|
||||
&word r5s
|
||||
&byte r5sH
|
||||
&byte r5sL
|
||||
&uword r6
|
||||
&ubyte r6H
|
||||
&ubyte r6L
|
||||
&bool r6bH
|
||||
&bool r6bL
|
||||
&word r6s
|
||||
&byte r6sH
|
||||
&byte r6sL
|
||||
&uword r7
|
||||
&ubyte r7H
|
||||
&ubyte r7L
|
||||
&bool r7bH
|
||||
&bool r7bL
|
||||
&word r7s
|
||||
&byte r7sH
|
||||
&byte r7sL
|
||||
&uword r8
|
||||
&ubyte r8H
|
||||
&ubyte r8L
|
||||
&bool r8bH
|
||||
&bool r8bL
|
||||
&word r8s
|
||||
&byte r8sH
|
||||
&byte r8sL
|
||||
&uword r9
|
||||
&ubyte r9H
|
||||
&ubyte r9L
|
||||
&bool r9bH
|
||||
&bool r9bL
|
||||
&word r9s
|
||||
&byte r9sH
|
||||
&byte r9sL
|
||||
|
||||
@@ -1113,14 +1113,19 @@ so pay attention to any jumps and rts instructions in the inlined code!
|
||||
don't want a ``rts`` or ``jmp`` or ``bra`` in it!
|
||||
|
||||
.. note::
|
||||
The 'virtual' 16-bit registers from the Commander X16 can also be specified as ``R0`` .. ``R15`` .
|
||||
The **sixteen 'virtual' 16-bit registers** from the Commander X16 can also be specified as ``R0`` .. ``R15`` .
|
||||
This means you don't have to set them up manually before calling a subroutine that takes
|
||||
one or more parameters in those 'registers'. You can just list the arguments directly.
|
||||
*This also works on the Commodore 64!* (however they are not as efficient there because they're not in zeropage)
|
||||
In prog8 and assembly code these 'registers' are directly accessible too via
|
||||
``cx16.r0`` .. ``cx16.r15`` (these are memory-mapped uword values),
|
||||
``cx16.r0s`` .. ``cx16.r15s`` (these are memory-mapped word values),
|
||||
and ``L`` / ``H`` variants are also available to directly access the low and high bytes of these.
|
||||
*This also works on the other compilation targets!* (however they might not be as efficient there as on the X16,
|
||||
because on most other targets such as the C64, these registers are not placed in zeropage due to lack of space)
|
||||
In both regular **prog8** *and* **assembly** code these 'registers' are directly accessible too via:
|
||||
|
||||
- ``cx16.r0`` - ``cx16.r15`` (memory-mapped **uword** values, most often these are used)
|
||||
- ``cx16.r0s`` - ``cx16.r15s`` (memory-mapped **word** values, used when you need a signed word)
|
||||
- ``cx16.r0H``, ``cx16.r0L`` (for each r0..r15; memory-mapped **ubyte** values, both bytes of the register)
|
||||
- ``cx16.r0sH``, ``cx16.r0sL`` (for each r0..r15; memory-mapped **byte** values, both bytes of the register)
|
||||
- ``cx16.r0bH``, ``cx16.r0bL`` (for each r0..r15; memory-mapped **bool** values, both bytes of the register)
|
||||
|
||||
You can use them directly but their name isn't very descriptive, so it may be useful to define
|
||||
an alias for them when using them regularly.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user