mirror of
https://github.com/irmen/prog8.git
synced 2026-04-21 17:16:33 +00:00
version 10.5
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
|
||||
Prog8 compiler v10.4.2 by Irmen de Jong (irmen@razorvine.net)
|
||||
Prog8 compiler v10.5 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
|
||||
@@ -111,9 +111,11 @@ diskio {
|
||||
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
|
||||
@@ -160,6 +162,7 @@ math {
|
||||
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
|
||||
@@ -224,9 +227,9 @@ atari {
|
||||
&uword NMI_VEC
|
||||
&uword RESET_VEC
|
||||
&ubyte ROWCRS
|
||||
getchar () -> ubyte @A = $f24a
|
||||
outchar (ubyte character @A) = $f2b0
|
||||
waitkey () -> ubyte @A = $f2fd
|
||||
getchar () -> ubyte @A = $f24a
|
||||
outchar (ubyte character @A) = $f2b0
|
||||
waitkey () -> ubyte @A = $f2fd
|
||||
}
|
||||
|
||||
sys {
|
||||
@@ -237,7 +240,6 @@ sys {
|
||||
const ubyte sizeof_uword
|
||||
const ubyte sizeof_word
|
||||
const ubyte target
|
||||
cleanup_at_exit ()
|
||||
clear_carry ()
|
||||
clear_irqd ()
|
||||
disable_caseswitch ()
|
||||
@@ -245,11 +247,10 @@ 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)
|
||||
init_system ()
|
||||
init_system_phase2 ()
|
||||
internal_stringcopy (uword source @R0, uword target @AY) -> clobbers (A,Y)
|
||||
irqsafe_clear_irqd ()
|
||||
irqsafe_set_irqd ()
|
||||
memcmp (uword address1 @R0, uword address2 @R1, uword size @AY) -> byte @A
|
||||
memcopy (uword source @R0, uword target @R1, uword count @AY) -> clobbers (A,X,Y)
|
||||
memset (uword mem @R0, uword numbytes @R1, ubyte value @A) -> clobbers (A,X,Y)
|
||||
memsetw (uword mem @R0, uword numwords @R1, uword value @AY) -> clobbers (A,X,Y)
|
||||
@@ -370,6 +371,12 @@ cx16 {
|
||||
save_virtual_registers () -> clobbers (A,Y)
|
||||
}
|
||||
|
||||
p8_sys_startup {
|
||||
cleanup_at_exit ()
|
||||
init_system ()
|
||||
init_system_phase2 ()
|
||||
}
|
||||
|
||||
|
||||
LIBRARY MODULE NAME: test_stack
|
||||
-------------------------------
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
|
||||
Prog8 compiler v10.4.2 by Irmen de Jong (irmen@razorvine.net)
|
||||
Prog8 compiler v10.5 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
|
||||
@@ -111,9 +111,11 @@ diskio {
|
||||
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
|
||||
@@ -160,6 +162,7 @@ math {
|
||||
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
|
||||
@@ -257,52 +260,52 @@ cbm {
|
||||
&ubyte TIME_HI
|
||||
&ubyte TIME_LO
|
||||
&ubyte TIME_MID
|
||||
ACPTR () -> ubyte @A = $ffa5
|
||||
CHKIN (ubyte logical @X) -> clobbers (A,X) -> bool @Pc = $ffc6
|
||||
CHKOUT (ubyte logical @X) -> clobbers (A,X) = $ffc9
|
||||
CHRIN () -> clobbers (X,Y) -> ubyte @A = $ffcf
|
||||
CHROUT (ubyte character @A) = $ffd2
|
||||
CINT () -> clobbers (A,X,Y) = $ff81
|
||||
CIOUT (ubyte databyte @A) = $ffa8
|
||||
CLALL () -> clobbers (A,X) = $ffe7
|
||||
ACPTR () -> ubyte @A = $ffa5
|
||||
CHKIN (ubyte logical @X) -> clobbers (A,X) -> bool @Pc = $ffc6
|
||||
CHKOUT (ubyte logical @X) -> clobbers (A,X) = $ffc9
|
||||
CHRIN () -> clobbers (X,Y) -> ubyte @A = $ffcf
|
||||
CHROUT (ubyte character @A) = $ffd2
|
||||
CINT () -> clobbers (A,X,Y) = $ff81
|
||||
CIOUT (ubyte databyte @A) = $ffa8
|
||||
CLALL () -> clobbers (A,X) = $ffe7
|
||||
CLEARST ()
|
||||
CLOSE (ubyte logical @A) -> clobbers (A,X,Y) = $ffc3
|
||||
CLRCHN () -> clobbers (A,X) = $ffcc
|
||||
GETIN () -> clobbers (X,Y) -> bool @Pc, ubyte @A = $ffe4
|
||||
CLOSE (ubyte logical @A) -> clobbers (A,X,Y) = $ffc3
|
||||
CLRCHN () -> clobbers (A,X) = $ffcc
|
||||
GETIN () -> clobbers (X,Y) -> bool @Pc, ubyte @A = $ffe4
|
||||
GETIN2 () -> clobbers (X,Y) -> ubyte @A
|
||||
IOBASE () -> uword @XY = $fff3
|
||||
IOINIT () -> clobbers (A,X) = $ff84
|
||||
IRQDFEND () -> clobbers (A,X,Y) = $ff33
|
||||
IRQDFRT () -> clobbers (A,X,Y) = $fa65
|
||||
LISTEN (ubyte device @A) -> clobbers (A) = $ffb1
|
||||
LOAD (ubyte verify @A, uword address @XY) -> bool @Pc, ubyte @A, uword @XY = $ffd5
|
||||
MEMBOT (uword address @XY, bool dir @Pc) -> uword @XY = $ff9c
|
||||
MEMTOP (uword address @XY, bool dir @Pc) -> uword @XY = $ff99
|
||||
OPEN () -> clobbers (X,Y) -> bool @Pc, ubyte @A = $ffc0
|
||||
PLOT (ubyte col @Y, ubyte row @X, bool dir @Pc) -> clobbers (A) -> ubyte @X, ubyte @Y = $fff0
|
||||
RAMTAS () -> clobbers (A,X,Y) = $ff87
|
||||
RDTIM () -> ubyte @A, ubyte @X, ubyte @Y = $ffde
|
||||
IOBASE () -> uword @XY = $fff3
|
||||
IOINIT () -> clobbers (A,X) = $ff84
|
||||
IRQDFEND () -> clobbers (A,X,Y) = $ff33
|
||||
IRQDFRT () -> clobbers (A,X,Y) = $fa65
|
||||
LISTEN (ubyte device @A) -> clobbers (A) = $ffb1
|
||||
LOAD (ubyte verify @A, uword address @XY) -> bool @Pc, ubyte @A, uword @XY = $ffd5
|
||||
MEMBOT (uword address @XY, bool dir @Pc) -> uword @XY = $ff9c
|
||||
MEMTOP (uword address @XY, bool dir @Pc) -> uword @XY = $ff99
|
||||
OPEN () -> clobbers (X,Y) -> bool @Pc, ubyte @A = $ffc0
|
||||
PLOT (ubyte col @Y, ubyte row @X, bool dir @Pc) -> clobbers (A) -> ubyte @X, ubyte @Y = $fff0
|
||||
RAMTAS () -> clobbers (A,X,Y) = $ff87
|
||||
RDTIM () -> ubyte @A, ubyte @X, ubyte @Y = $ffde
|
||||
RDTIM16 () -> clobbers (X) -> uword @AY
|
||||
READST () -> ubyte @A = $ffb7
|
||||
RESTOR () -> clobbers (A,X,Y) = $ff8a
|
||||
SAVE (ubyte zp_startaddr @A, uword endaddr @XY) -> bool @Pc, ubyte @A = $ffd8
|
||||
SCNKEY () -> clobbers (A,X,Y) = $ff9f
|
||||
SCREEN () -> ubyte @X, ubyte @Y = $ffed
|
||||
SCRORG () -> ubyte @X, ubyte @Y = $ffed
|
||||
SECOND (ubyte address @A) -> clobbers (A) = $ff93
|
||||
SETLFS (ubyte logical @A, ubyte device @X, ubyte secondary @Y) = $ffba
|
||||
SETMSG (ubyte value @A) = $ff90
|
||||
SETNAM (ubyte namelen @A, str filename @XY) = $ffbd
|
||||
SETTIM (ubyte low @A, ubyte middle @X, ubyte high @Y) = $ffdb
|
||||
SETTMO (ubyte timeout @A) = $ffa2
|
||||
STOP () -> clobbers (X) -> bool @Pz, ubyte @A = $ffe1
|
||||
READST () -> ubyte @A = $ffb7
|
||||
RESTOR () -> clobbers (A,X,Y) = $ff8a
|
||||
SAVE (ubyte zp_startaddr @A, uword endaddr @XY) -> bool @Pc, ubyte @A = $ffd8
|
||||
SCNKEY () -> clobbers (A,X,Y) = $ff9f
|
||||
SCREEN () -> ubyte @X, ubyte @Y = $ffed
|
||||
SCRORG () -> ubyte @X, ubyte @Y = $ffed
|
||||
SECOND (ubyte address @A) -> clobbers (A) = $ff93
|
||||
SETLFS (ubyte logical @A, ubyte device @X, ubyte secondary @Y) = $ffba
|
||||
SETMSG (ubyte value @A) = $ff90
|
||||
SETNAM (ubyte namelen @A, str filename @XY) = $ffbd
|
||||
SETTIM (ubyte low @A, ubyte middle @X, ubyte high @Y) = $ffdb
|
||||
SETTMO (ubyte timeout @A) = $ffa2
|
||||
STOP () -> clobbers (X) -> bool @Pz, ubyte @A = $ffe1
|
||||
STOP2 () -> clobbers (A,X) -> bool @Pz
|
||||
TALK (ubyte device @A) -> clobbers (A) = $ffb4
|
||||
TKSA (ubyte address @A) -> clobbers (A) = $ff96
|
||||
UDTIM () -> clobbers (A,X) = $ffea
|
||||
UNLSN () -> clobbers (A) = $ffae
|
||||
UNTLK () -> clobbers (A) = $ffab
|
||||
VECTOR (uword userptr @XY, bool dir @Pc) -> clobbers (A,Y) = $ff8d
|
||||
TALK (ubyte device @A) -> clobbers (A) = $ffb4
|
||||
TKSA (ubyte address @A) -> clobbers (A) = $ff96
|
||||
UDTIM () -> clobbers (A,X) = $ffea
|
||||
UNLSN () -> clobbers (A) = $ffae
|
||||
UNTLK () -> clobbers (A) = $ffab
|
||||
VECTOR (uword userptr @XY, bool dir @Pc) -> clobbers (A,Y) = $ff8d
|
||||
kbdbuf_clear ()
|
||||
}
|
||||
|
||||
@@ -441,7 +444,9 @@ c128 {
|
||||
&ubyte VM2
|
||||
&ubyte VM3
|
||||
&ubyte VM4
|
||||
JSRFAR () = $ff6e
|
||||
disable_basic () -> clobbers (A)
|
||||
x16jsrfar ()
|
||||
}
|
||||
|
||||
sys {
|
||||
@@ -452,21 +457,19 @@ sys {
|
||||
const ubyte sizeof_uword
|
||||
const ubyte sizeof_word
|
||||
const ubyte target
|
||||
cleanup_at_exit ()
|
||||
clear_carry ()
|
||||
clear_irqd ()
|
||||
disable_caseswitch ()
|
||||
disable_runstop_and_charsetswitch () -> clobbers (A)
|
||||
disable_runstop_and_charsetswitch ()
|
||||
enable_caseswitch ()
|
||||
enable_runstop_and_charsetswitch () -> clobbers (A)
|
||||
enable_runstop_and_charsetswitch ()
|
||||
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)
|
||||
init_system ()
|
||||
init_system_phase2 ()
|
||||
internal_stringcopy (uword source @R0, uword target @AY) -> clobbers (A,Y)
|
||||
irqsafe_clear_irqd ()
|
||||
irqsafe_set_irqd ()
|
||||
memcmp (uword address1 @R0, uword address2 @R1, uword size @AY) -> byte @A
|
||||
memcopy (uword source @R0, uword target @R1, uword count @AY) -> clobbers (A,X,Y)
|
||||
memset (uword mem @R0, uword numbytes @R1, ubyte value @A) -> clobbers (A,X,Y)
|
||||
memsetw (uword mem @R0, uword numwords @R1, uword value @AY) -> clobbers (A,X,Y)
|
||||
@@ -591,6 +594,14 @@ cx16 {
|
||||
save_virtual_registers () -> clobbers (A,Y)
|
||||
}
|
||||
|
||||
p8_sys_startup {
|
||||
cleanup_at_exit ()
|
||||
disable_runstop_and_charsetswitch () -> clobbers (A)
|
||||
enable_runstop_and_charsetswitch () -> clobbers (A)
|
||||
init_system ()
|
||||
init_system_phase2 ()
|
||||
}
|
||||
|
||||
|
||||
LIBRARY MODULE NAME: test_stack
|
||||
-------------------------------
|
||||
@@ -607,7 +618,7 @@ txt {
|
||||
const ubyte DEFAULT_HEIGHT
|
||||
const ubyte DEFAULT_WIDTH
|
||||
bell ()
|
||||
chrout (ubyte character @A) = $ffd2
|
||||
chrout (ubyte character @A) = $ffd2
|
||||
clear_screen ()
|
||||
clear_screenchars (ubyte char @A) -> clobbers (Y)
|
||||
clear_screencolors (ubyte color @A) -> clobbers (Y)
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
|
||||
Prog8 compiler v10.4.2 by Irmen de Jong (irmen@razorvine.net)
|
||||
Prog8 compiler v10.5 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
|
||||
@@ -111,9 +111,11 @@ diskio {
|
||||
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
|
||||
@@ -142,65 +144,65 @@ LIBRARY MODULE NAME: floats
|
||||
---------------------------
|
||||
|
||||
floats {
|
||||
&uword AYINT_facmo
|
||||
const float PI
|
||||
const float TWOPI
|
||||
const float π
|
||||
ABS () = $bc58
|
||||
ATN () -> clobbers (A,X,Y) = $e30e
|
||||
AYINT () -> clobbers (A,X,Y) = $b1bf
|
||||
CONUPK (uword mflpt @AY) -> clobbers (A,Y) = $ba8c
|
||||
COS () -> clobbers (A,X,Y) = $e264
|
||||
DIV10 () -> clobbers (A,X,Y) = $bafe
|
||||
EXP () -> clobbers (A,X,Y) = $bfed
|
||||
FADD (uword mflpt @AY) -> clobbers (A,X,Y) = $b867
|
||||
FADDH () -> clobbers (A,X,Y) = $b849
|
||||
FADDT () -> clobbers (A,X,Y) = $b86a
|
||||
FAREADMEM () -> clobbers (A,Y) = $ba90
|
||||
FCOMP (uword mflpt @AY) -> clobbers (X,Y) -> ubyte @A = $bc5b
|
||||
FDIV (uword mflpt @AY) -> clobbers (A,X,Y) = $bb0f
|
||||
FDIVT () -> clobbers (A,X,Y) = $bb12
|
||||
FINLOG (byte value @A) -> clobbers (A,X,Y) = $bd7e
|
||||
FMULT (uword mflpt @AY) -> clobbers (A,X,Y) = $ba28
|
||||
FMULTT () -> clobbers (A,X,Y) = $ba2b
|
||||
FOUT () -> clobbers (X) -> uword @AY = $bddd
|
||||
FPRINTLN () -> clobbers (A,X,Y) = $aabc
|
||||
FPWR (uword mflpt @AY) -> clobbers (A,X,Y) = $bf78
|
||||
FPWRT () -> clobbers (A,X,Y) = $bf7b
|
||||
FREADMEM () -> clobbers (A,Y) = $bba6
|
||||
ABS () = $bc58
|
||||
ATN () -> clobbers (A,X,Y) = $e30e
|
||||
AYINT () -> clobbers (A,X,Y) = $b1bf
|
||||
AYINT2 () -> clobbers (X) -> word @AY
|
||||
CONUPK (uword mflpt @AY) -> clobbers (A,Y) = $ba8c
|
||||
COS () -> clobbers (A,X,Y) = $e264
|
||||
DIV10 () -> clobbers (A,X,Y) = $bafe
|
||||
EXP () -> clobbers (A,X,Y) = $bfed
|
||||
FADD (uword mflpt @AY) -> clobbers (A,X,Y) = $b867
|
||||
FADDH () -> clobbers (A,X,Y) = $b849
|
||||
FADDT () -> clobbers (A,X,Y) = $b86a
|
||||
FAREADMEM () -> clobbers (A,Y) = $ba90
|
||||
FCOMP (uword mflpt @AY) -> clobbers (X,Y) -> ubyte @A = $bc5b
|
||||
FDIV (uword mflpt @AY) -> clobbers (A,X,Y) = $bb0f
|
||||
FDIVT () -> clobbers (A,X,Y) = $bb12
|
||||
FINLOG (byte value @A) -> clobbers (A,X,Y) = $bd7e
|
||||
FMULT (uword mflpt @AY) -> clobbers (A,X,Y) = $ba28
|
||||
FMULTT () -> clobbers (A,X,Y) = $ba2b
|
||||
FOUT () -> clobbers (X) -> uword @AY = $bddd
|
||||
FPRINTLN () -> clobbers (A,X,Y) = $aabc
|
||||
FPWR (uword mflpt @AY) -> clobbers (A,X,Y) = $bf78
|
||||
FPWRT () -> clobbers (A,X,Y) = $bf7b
|
||||
FREADMEM () -> clobbers (A,Y) = $bba6
|
||||
FREADS24AXY (ubyte lo @A, ubyte mid @X, ubyte hi @Y) -> clobbers (A,X,Y)
|
||||
FREADS32 () -> clobbers (A,X,Y)
|
||||
FREADSA (byte value @A) -> clobbers (A,X,Y) = $bc3c
|
||||
FREADSTR (ubyte length @A) -> clobbers (A,X,Y) = $b7b5
|
||||
FREADSA (byte value @A) -> clobbers (A,X,Y) = $bc3c
|
||||
FREADSTR (ubyte length @A) -> clobbers (A,X,Y) = $b7b5
|
||||
FREADU24AXY (ubyte lo @A, ubyte mid @X, ubyte hi @Y) -> clobbers (A,X,Y) -> float @FAC1
|
||||
FREADUS32 () -> clobbers (A,X,Y)
|
||||
FREADUY (ubyte value @Y) -> clobbers (A,X,Y) = $b3a2
|
||||
FSUB (uword mflpt @AY) -> clobbers (A,X,Y) = $b850
|
||||
FSUBT () -> clobbers (A,X,Y) = $b853
|
||||
GETADR () -> clobbers (X) -> ubyte @Y, ubyte @A = $b7f7
|
||||
FREADUY (ubyte value @Y) -> clobbers (A,X,Y) = $b3a2
|
||||
FSUB (uword mflpt @AY) -> clobbers (A,X,Y) = $b850
|
||||
FSUBT () -> clobbers (A,X,Y) = $b853
|
||||
GETADR () -> clobbers (X) -> ubyte @Y, ubyte @A = $b7f7
|
||||
GETADRAY () -> clobbers (X) -> uword @AY
|
||||
GIVAYF (ubyte lo @Y, ubyte hi @A) -> clobbers (A,X,Y) = $b391
|
||||
GIVAYF (ubyte lo @Y, ubyte hi @A) -> clobbers (A,X,Y) = $b391
|
||||
GIVAYFAY (uword value @AY) -> clobbers (A,X,Y)
|
||||
GIVUAYFAY (uword value @AY) -> clobbers (A,X,Y)
|
||||
INT () -> clobbers (A,X,Y) = $bccc
|
||||
LOG () -> clobbers (A,X,Y) = $b9ea
|
||||
MOVAF () -> clobbers (A,X) = $bc0c
|
||||
MOVEF () -> clobbers (A,X) = $bc0f
|
||||
MOVFA () -> clobbers (A,X) = $bbfc
|
||||
MOVFM (uword mflpt @AY) -> clobbers (A,Y) = $bba2
|
||||
MOVMF (uword mflpt @XY) -> clobbers (A,Y) = $bbd4
|
||||
MUL10 () -> clobbers (A,X,Y) = $bae2
|
||||
NEGOP () -> clobbers (A) = $bfb4
|
||||
NORMAL () -> clobbers (A) = $b8d7
|
||||
NOTOP () -> clobbers (A,X,Y) = $aed4
|
||||
QINT () -> clobbers (A,X,Y) = $bc9b
|
||||
RND () -> clobbers (A,X,Y) = $e097
|
||||
SGN () -> clobbers (A,X,Y) = $bc39
|
||||
SIGN () -> ubyte @A = $bc2b
|
||||
SIN () -> clobbers (A,X,Y) = $e26b
|
||||
SQR () -> clobbers (A,X,Y) = $bf71
|
||||
SQRA () -> clobbers (A,X,Y) = $bf74
|
||||
TAN () -> clobbers (A,X,Y) = $e2b4
|
||||
INT () -> clobbers (A,X,Y) = $bccc
|
||||
LOG () -> clobbers (A,X,Y) = $b9ea
|
||||
MOVAF () -> clobbers (A,X) = $bc0c
|
||||
MOVEF () -> clobbers (A,X) = $bc0f
|
||||
MOVFA () -> clobbers (A,X) = $bbfc
|
||||
MOVFM (uword mflpt @AY) -> clobbers (A,Y) = $bba2
|
||||
MOVMF (uword mflpt @XY) -> clobbers (A,Y) = $bbd4
|
||||
MUL10 () -> clobbers (A,X,Y) = $bae2
|
||||
NEGOP () -> clobbers (A) = $bfb4
|
||||
NORMAL () -> clobbers (A) = $b8d7
|
||||
NOTOP () -> clobbers (A,X,Y) = $aed4
|
||||
QINT () -> clobbers (A,X,Y) = $bc9b
|
||||
RND () -> clobbers (A,X,Y) = $e097
|
||||
SGN () -> clobbers (A,X,Y) = $bc39
|
||||
SIGN () -> ubyte @A = $bc2b
|
||||
SIN () -> clobbers (A,X,Y) = $e26b
|
||||
SQR () -> clobbers (A,X,Y) = $bf71
|
||||
SQRA () -> clobbers (A,X,Y) = $bf74
|
||||
TAN () -> clobbers (A,X,Y) = $e2b4
|
||||
atan (float value) -> float
|
||||
atan2 (float y, float x) -> float
|
||||
ceil (float value) -> float
|
||||
@@ -210,6 +212,8 @@ floats {
|
||||
csc (float value) -> float
|
||||
deg (float angle) -> float
|
||||
floor (float value) -> float
|
||||
lerp (float v0, float v1, float t) -> float
|
||||
lerp_fast (float v0, float v1, float t) -> float
|
||||
ln (float value) -> float
|
||||
log2 (float value) -> float
|
||||
maxf (float f1, float f2) -> float
|
||||
@@ -249,7 +253,7 @@ graphics {
|
||||
fillrect (uword xx, ubyte yy, uword width, ubyte height)
|
||||
get_y_lookup (ubyte yy @Y) -> uword @AY
|
||||
horizontal_line (uword xx, ubyte yy, uword length)
|
||||
internal_plot (ubyte ploty @A) -> clobbers (A,X,Y)
|
||||
internal_plot (ubyte ploty @Y) -> clobbers (A,X,Y)
|
||||
line (uword x1, ubyte y1, uword x2, ubyte y2)
|
||||
plot (uword plotx @XY, ubyte ploty @A) -> clobbers (A,X,Y)
|
||||
rect (uword xx, ubyte yy, uword width, ubyte height)
|
||||
@@ -279,6 +283,7 @@ math {
|
||||
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
|
||||
@@ -379,54 +384,54 @@ cbm {
|
||||
&ubyte TIME_MID
|
||||
&uword USERCMD
|
||||
&uword USRADD
|
||||
ACPTR () -> ubyte @A = $ffa5
|
||||
CHKIN (ubyte logical @X) -> clobbers (A,X) -> bool @Pc = $ffc6
|
||||
CHKOUT (ubyte logical @X) -> clobbers (A,X) = $ffc9
|
||||
CHRIN () -> clobbers (X,Y) -> ubyte @A = $ffcf
|
||||
CHROUT (ubyte character @A) = $ffd2
|
||||
CINT () -> clobbers (A,X,Y) = $ff81
|
||||
CIOUT (ubyte databyte @A) = $ffa8
|
||||
CLALL () -> clobbers (A,X) = $ffe7
|
||||
CLEARSCR () -> clobbers (A,X,Y) = $e544
|
||||
ACPTR () -> ubyte @A = $ffa5
|
||||
CHKIN (ubyte logical @X) -> clobbers (A,X) -> bool @Pc = $ffc6
|
||||
CHKOUT (ubyte logical @X) -> clobbers (A,X) = $ffc9
|
||||
CHRIN () -> clobbers (X,Y) -> ubyte @A = $ffcf
|
||||
CHROUT (ubyte character @A) = $ffd2
|
||||
CINT () -> clobbers (A,X,Y) = $ff81
|
||||
CIOUT (ubyte databyte @A) = $ffa8
|
||||
CLALL () -> clobbers (A,X) = $ffe7
|
||||
CLEARSCR () -> clobbers (A,X,Y) = $e544
|
||||
CLEARST ()
|
||||
CLOSE (ubyte logical @A) -> clobbers (A,X,Y) = $ffc3
|
||||
CLRCHN () -> clobbers (A,X) = $ffcc
|
||||
GETIN () -> clobbers (X,Y) -> bool @Pc, ubyte @A = $ffe4
|
||||
CLOSE (ubyte logical @A) -> clobbers (A,X,Y) = $ffc3
|
||||
CLRCHN () -> clobbers (A,X) = $ffcc
|
||||
GETIN () -> clobbers (X,Y) -> bool @Pc, ubyte @A = $ffe4
|
||||
GETIN2 () -> clobbers (X,Y) -> ubyte @A
|
||||
HOMECRSR () -> clobbers (A,X,Y) = $e566
|
||||
IOBASE () -> uword @XY = $fff3
|
||||
IOINIT () -> clobbers (A,X) = $ff84
|
||||
IRQDFEND () -> clobbers (A,X,Y) = $ea81
|
||||
IRQDFRT () -> clobbers (A,X,Y) = $ea31
|
||||
LISTEN (ubyte device @A) -> clobbers (A) = $ffb1
|
||||
LOAD (ubyte verify @A, uword address @XY) -> bool @Pc, ubyte @A, uword @XY = $ffd5
|
||||
MEMBOT (uword address @XY, bool dir @Pc) -> uword @XY = $ff9c
|
||||
MEMTOP (uword address @XY, bool dir @Pc) -> uword @XY = $ff99
|
||||
OPEN () -> clobbers (X,Y) -> bool @Pc, ubyte @A = $ffc0
|
||||
PLOT (ubyte col @Y, ubyte row @X, bool dir @Pc) -> clobbers (A) -> ubyte @X, ubyte @Y = $fff0
|
||||
RAMTAS () -> clobbers (A,X,Y) = $ff87
|
||||
RDTIM () -> ubyte @A, ubyte @X, ubyte @Y = $ffde
|
||||
HOMECRSR () -> clobbers (A,X,Y) = $e566
|
||||
IOBASE () -> uword @XY = $fff3
|
||||
IOINIT () -> clobbers (A,X) = $ff84
|
||||
IRQDFEND () -> clobbers (A,X,Y) = $ea81
|
||||
IRQDFRT () -> clobbers (A,X,Y) = $ea31
|
||||
LISTEN (ubyte device @A) -> clobbers (A) = $ffb1
|
||||
LOAD (ubyte verify @A, uword address @XY) -> bool @Pc, ubyte @A, uword @XY = $ffd5
|
||||
MEMBOT (uword address @XY, bool dir @Pc) -> uword @XY = $ff9c
|
||||
MEMTOP (uword address @XY, bool dir @Pc) -> uword @XY = $ff99
|
||||
OPEN () -> clobbers (X,Y) -> bool @Pc, ubyte @A = $ffc0
|
||||
PLOT (ubyte col @Y, ubyte row @X, bool dir @Pc) -> clobbers (A) -> ubyte @X, ubyte @Y = $fff0
|
||||
RAMTAS () -> clobbers (A,X,Y) = $ff87
|
||||
RDTIM () -> ubyte @A, ubyte @X, ubyte @Y = $ffde
|
||||
RDTIM16 () -> clobbers (X) -> uword @AY
|
||||
READST () -> ubyte @A = $ffb7
|
||||
RESTOR () -> clobbers (A,X,Y) = $ff8a
|
||||
SAVE (ubyte zp_startaddr @A, uword endaddr @XY) -> bool @Pc, ubyte @A = $ffd8
|
||||
SCNKEY () -> clobbers (A,X,Y) = $ff9f
|
||||
SCREEN () -> ubyte @X, ubyte @Y = $ffed
|
||||
SECOND (ubyte address @A) -> clobbers (A) = $ff93
|
||||
SETLFS (ubyte logical @A, ubyte device @X, ubyte secondary @Y) = $ffba
|
||||
SETMSG (ubyte value @A) = $ff90
|
||||
SETNAM (ubyte namelen @A, str filename @XY) = $ffbd
|
||||
SETTIM (ubyte low @A, ubyte middle @X, ubyte high @Y) = $ffdb
|
||||
SETTMO (ubyte timeout @A) = $ffa2
|
||||
STOP () -> clobbers (X) -> bool @Pz, ubyte @A = $ffe1
|
||||
READST () -> ubyte @A = $ffb7
|
||||
RESTOR () -> clobbers (A,X,Y) = $ff8a
|
||||
SAVE (ubyte zp_startaddr @A, uword endaddr @XY) -> bool @Pc, ubyte @A = $ffd8
|
||||
SCNKEY () -> clobbers (A,X,Y) = $ff9f
|
||||
SCREEN () -> ubyte @X, ubyte @Y = $ffed
|
||||
SECOND (ubyte address @A) -> clobbers (A) = $ff93
|
||||
SETLFS (ubyte logical @A, ubyte device @X, ubyte secondary @Y) = $ffba
|
||||
SETMSG (ubyte value @A) = $ff90
|
||||
SETNAM (ubyte namelen @A, str filename @XY) = $ffbd
|
||||
SETTIM (ubyte low @A, ubyte middle @X, ubyte high @Y) = $ffdb
|
||||
SETTMO (ubyte timeout @A) = $ffa2
|
||||
STOP () -> clobbers (X) -> bool @Pz, ubyte @A = $ffe1
|
||||
STOP2 () -> clobbers (A,X) -> bool @Pz
|
||||
STROUT (uword strptr @AY) -> clobbers (A,X,Y) = $ab1e
|
||||
TALK (ubyte device @A) -> clobbers (A) = $ffb4
|
||||
TKSA (ubyte address @A) -> clobbers (A) = $ff96
|
||||
UDTIM () -> clobbers (A,X) = $ffea
|
||||
UNLSN () -> clobbers (A) = $ffae
|
||||
UNTLK () -> clobbers (A) = $ffab
|
||||
VECTOR (uword userptr @XY, bool dir @Pc) -> clobbers (A,Y) = $ff8d
|
||||
STROUT (uword strptr @AY) -> clobbers (A,X,Y) = $ab1e
|
||||
TALK (ubyte device @A) -> clobbers (A) = $ffb4
|
||||
TKSA (ubyte address @A) -> clobbers (A) = $ff96
|
||||
UDTIM () -> clobbers (A,X) = $ffea
|
||||
UNLSN () -> clobbers (A) = $ffae
|
||||
UNTLK () -> clobbers (A) = $ffab
|
||||
VECTOR (uword userptr @XY, bool dir @Pc) -> clobbers (A,Y) = $ff8d
|
||||
kbdbuf_clear ()
|
||||
}
|
||||
|
||||
@@ -558,11 +563,14 @@ c64 {
|
||||
&ubyte VMCSB
|
||||
&ubyte XXPAND
|
||||
&ubyte YXPAND
|
||||
banks (ubyte banks @A)
|
||||
get_bitmap_ptr () -> uword
|
||||
get_char_matrix_ptr () -> uword
|
||||
get_sprite_addr_ptrs () -> uword
|
||||
get_vic_memory_base () -> uword
|
||||
getbanks () -> ubyte @A
|
||||
set_sprite_ptr (ubyte sprite_num, uword sprite_data_address)
|
||||
x16jsrfar ()
|
||||
}
|
||||
|
||||
sys {
|
||||
@@ -573,21 +581,19 @@ sys {
|
||||
const ubyte sizeof_uword
|
||||
const ubyte sizeof_word
|
||||
const ubyte target
|
||||
cleanup_at_exit ()
|
||||
clear_carry ()
|
||||
clear_irqd ()
|
||||
disable_caseswitch ()
|
||||
disable_runstop_and_charsetswitch () -> clobbers (A)
|
||||
disable_runstop_and_charsetswitch ()
|
||||
enable_caseswitch ()
|
||||
enable_runstop_and_charsetswitch () -> clobbers (A)
|
||||
enable_runstop_and_charsetswitch ()
|
||||
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)
|
||||
init_system ()
|
||||
init_system_phase2 ()
|
||||
internal_stringcopy (uword source @R0, uword target @AY) -> clobbers (A,Y)
|
||||
irqsafe_clear_irqd ()
|
||||
irqsafe_set_irqd ()
|
||||
memcmp (uword address1 @R0, uword address2 @R1, uword size @AY) -> byte @A
|
||||
memcopy (uword source @R0, uword target @R1, uword count @AY) -> clobbers (A,X,Y)
|
||||
memset (uword mem @R0, uword numbytes @R1, ubyte value @A) -> clobbers (A,X,Y)
|
||||
memsetw (uword mem @R0, uword numwords @R1, uword value @AY) -> clobbers (A,X,Y)
|
||||
@@ -712,6 +718,14 @@ cx16 {
|
||||
save_virtual_registers () -> clobbers (A,Y)
|
||||
}
|
||||
|
||||
p8_sys_startup {
|
||||
cleanup_at_exit ()
|
||||
disable_runstop_and_charsetswitch () -> clobbers (A)
|
||||
enable_runstop_and_charsetswitch () -> clobbers (A)
|
||||
init_system ()
|
||||
init_system_phase2 ()
|
||||
}
|
||||
|
||||
|
||||
LIBRARY MODULE NAME: test_stack
|
||||
-------------------------------
|
||||
@@ -728,7 +742,7 @@ txt {
|
||||
const ubyte DEFAULT_HEIGHT
|
||||
const ubyte DEFAULT_WIDTH
|
||||
bell ()
|
||||
chrout (ubyte character @A) = $ffd2
|
||||
chrout (ubyte character @A) = $ffd2
|
||||
clear_screen ()
|
||||
clear_screenchars (ubyte character @A) -> clobbers (Y)
|
||||
clear_screencolors (ubyte color @A) -> clobbers (Y)
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
|
||||
Prog8 compiler v10.4.2 by Irmen de Jong (irmen@razorvine.net)
|
||||
Prog8 compiler v10.5 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
|
||||
@@ -17,70 +17,6 @@ anyall {
|
||||
}
|
||||
|
||||
|
||||
LIBRARY MODULE NAME: audio
|
||||
--------------------------
|
||||
|
||||
audio {
|
||||
const ubyte rom_bank
|
||||
audio_init () -> clobbers (A,X,Y) -> bool @Pc
|
||||
bas_fmchordstring (ubyte length @A, str string @XY) -> clobbers (A,X,Y)
|
||||
bas_fmfreq (ubyte channel @A, uword freq @XY, bool noretrigger @Pc) -> clobbers (A,X,Y) -> bool @Pc
|
||||
bas_fmnote (ubyte channel @A, ubyte note @X, ubyte fracsemitone @Y, bool noretrigger @Pc) -> clobbers (A,X,Y) -> bool @Pc
|
||||
bas_fmplaystring (ubyte length @A, str string @XY) -> clobbers (A,X,Y)
|
||||
bas_fmvib (ubyte speed @A, ubyte depth @X) -> clobbers (A,X,Y) -> bool @Pc
|
||||
bas_playstringvoice (ubyte channel @A) -> clobbers (Y)
|
||||
bas_psgchordstring (ubyte length @A, str string @XY) -> clobbers (A,X,Y)
|
||||
bas_psgfreq (ubyte voice @A, uword freq @XY) -> clobbers (A,X,Y) -> bool @Pc
|
||||
bas_psgnote (ubyte voice @A, ubyte note @X, ubyte fracsemitone @Y) -> clobbers (A,X,Y) -> bool @Pc
|
||||
bas_psgplaystring (ubyte length @A, str string @XY) -> clobbers (A,X,Y)
|
||||
bas_psgwav (ubyte voice @A, ubyte waveform @X) -> clobbers (A,X,Y) -> bool @Pc
|
||||
notecon_bas2fm (ubyte note @X) -> clobbers (A) -> ubyte @X, bool @Pc
|
||||
notecon_bas2midi (ubyte note @X) -> clobbers (A) -> ubyte @X, bool @Pc
|
||||
notecon_bas2psg (ubyte note @X, ubyte fracsemitone @Y) -> clobbers (A) -> uword @XY, bool @Pc
|
||||
notecon_fm2bas (ubyte note @X) -> clobbers (A) -> ubyte @X, bool @Pc
|
||||
notecon_fm2midi (ubyte note @X) -> clobbers (A) -> ubyte @X, bool @Pc
|
||||
notecon_fm2psg (ubyte note @X, ubyte fracsemitone @Y) -> clobbers (A) -> uword @XY, bool @Pc
|
||||
notecon_freq2bas (uword freqHz @XY) -> clobbers (A) -> ubyte @X, ubyte @Y, bool @Pc
|
||||
notecon_freq2fm (uword freqHz @XY) -> clobbers (A) -> ubyte @X, ubyte @Y, bool @Pc
|
||||
notecon_freq2midi (uword freqHz @XY) -> clobbers (A) -> ubyte @X, ubyte @Y, bool @Pc
|
||||
notecon_freq2psg (uword freqHz @XY) -> clobbers (A) -> uword @XY, bool @Pc
|
||||
notecon_midi2bas (ubyte note @X) -> clobbers (A) -> ubyte @X, bool @Pc
|
||||
notecon_midi2fm (ubyte note @X) -> clobbers (A) -> ubyte @X, bool @Pc
|
||||
notecon_midi2psg (ubyte note @X, ubyte fracsemitone @Y) -> clobbers (A) -> uword @XY, bool @Pc
|
||||
notecon_psg2bas (uword freq @XY) -> clobbers (A) -> ubyte @X, ubyte @Y, bool @Pc
|
||||
notecon_psg2fm (uword freq @XY) -> clobbers (A) -> ubyte @X, ubyte @Y, bool @Pc
|
||||
notecon_psg2midi (uword freq @XY) -> clobbers (A) -> ubyte @X, ubyte @Y, bool @Pc
|
||||
psg_getatten (ubyte voice @A) -> clobbers (Y) -> ubyte @X
|
||||
psg_getpan (ubyte voice @A) -> clobbers (Y) -> ubyte @X
|
||||
psg_init () -> clobbers (A,X,Y)
|
||||
psg_playfreq (ubyte voice @A, uword freq @XY) -> clobbers (A,X,Y)
|
||||
psg_read (ubyte offset @X, bool cookedVol @Pc) -> clobbers (Y) -> ubyte @A
|
||||
psg_setatten (ubyte voice @A, ubyte attenuation @X) -> clobbers (A,X,Y)
|
||||
psg_setfreq (ubyte voice @A, uword freq @XY) -> clobbers (A,X,Y)
|
||||
psg_setpan (ubyte voice @A, ubyte panning @X) -> clobbers (A,X,Y)
|
||||
psg_setvol (ubyte voice @A, ubyte volume @X) -> clobbers (A,X,Y)
|
||||
psg_write (ubyte value @A, ubyte offset @X) -> clobbers (Y)
|
||||
psg_write_fast (ubyte value @A, ubyte offset @X) -> clobbers (Y)
|
||||
ym_get_chip_type () -> clobbers (X) -> ubyte @A
|
||||
ym_getatten (ubyte channel @A) -> clobbers (Y) -> ubyte @X
|
||||
ym_getpan (ubyte channel @A) -> clobbers (Y) -> ubyte @X
|
||||
ym_init () -> clobbers (A,X,Y) -> bool @Pc
|
||||
ym_loaddefpatches () -> clobbers (A,X,Y) -> bool @Pc
|
||||
ym_loadpatch (ubyte channel @A, uword patchOrAddress @XY, bool what @Pc) -> clobbers (A,X,Y)
|
||||
ym_loadpatchlfn (ubyte channel @A, ubyte lfn @X) -> clobbers (X,Y) -> ubyte @A, bool @Pc
|
||||
ym_playdrum (ubyte channel @A, ubyte note @X) -> clobbers (A,X,Y) -> bool @Pc
|
||||
ym_playnote (ubyte channel @A, ubyte kc @X, ubyte kf @Y, bool notrigger @Pc) -> clobbers (A,X,Y) -> bool @Pc
|
||||
ym_read (ubyte register @X, bool cooked @Pc) -> clobbers (Y) -> ubyte @A, bool @Pc
|
||||
ym_release (ubyte channel @A) -> clobbers (A,X,Y) -> bool @Pc
|
||||
ym_setatten (ubyte channel @A, ubyte attenuation @X) -> clobbers (Y) -> bool @Pc
|
||||
ym_setdrum (ubyte channel @A, ubyte note @X) -> clobbers (A,X,Y) -> bool @Pc
|
||||
ym_setnote (ubyte channel @A, ubyte kc @X, ubyte kf @Y) -> clobbers (A,X,Y) -> bool @Pc
|
||||
ym_setpan (ubyte channel @A, ubyte panning @X) -> clobbers (A,X,Y) -> bool @Pc
|
||||
ym_trigger (ubyte channel @A, bool noRelease @Pc) -> clobbers (A,X,Y) -> bool @Pc
|
||||
ym_write (ubyte value @A, ubyte register @X) -> clobbers (Y) -> bool @Pc
|
||||
}
|
||||
|
||||
|
||||
LIBRARY MODULE NAME: bmx
|
||||
------------------------
|
||||
|
||||
@@ -214,11 +150,13 @@ diskio {
|
||||
str list_filetype
|
||||
uword list_pattern
|
||||
bool list_skip_disk_name
|
||||
bool write_iteration_in_progress
|
||||
chdir (str path)
|
||||
curdir () -> uword
|
||||
delete (uword filenameptr)
|
||||
directory () -> bool
|
||||
diskname () -> uword
|
||||
exists (str filename) -> bool
|
||||
f_close ()
|
||||
f_close_w ()
|
||||
f_open (str filenameptr) -> bool
|
||||
@@ -298,66 +236,66 @@ LIBRARY MODULE NAME: floats
|
||||
---------------------------
|
||||
|
||||
floats {
|
||||
&uword AYINT_facmo
|
||||
const float PI
|
||||
const float TWOPI
|
||||
const float π
|
||||
ABS () -> clobbers (A,X,Y) = $fe4e
|
||||
ATN () -> clobbers (A,X,Y) = $fe48
|
||||
AYINT () -> clobbers (A,X,Y) = $fe00
|
||||
CONUPK (uword mflpt @AY) -> clobbers (A,X,Y) = $fe5a
|
||||
COS () -> clobbers (A,X,Y) = $fe3f
|
||||
DIV10 () -> clobbers (A,X,Y) = $fe7e
|
||||
EXP () -> clobbers (A,X,Y) = $fe3c
|
||||
FADD (uword mflpt @AY) -> clobbers (A,X,Y) = $fe18
|
||||
FADDH () -> clobbers (A,X,Y) = $fe6f
|
||||
FADDT () -> clobbers (A,X,Y) = $fe1b
|
||||
FCOMP (uword mflpt @AY) -> clobbers (X,Y) -> ubyte @A = $fe54
|
||||
FDIV (uword mflpt @AY) -> clobbers (A,X,Y) = $fe24
|
||||
FDIVT () -> clobbers (A,X,Y) = $fe27
|
||||
FINLOG (byte value @A) -> clobbers (A,X,Y) = $fe90
|
||||
FLOAT () -> clobbers (A,X,Y) = $fe87
|
||||
FLOATC () -> clobbers (A,X,Y) = $fe0f
|
||||
FLOATS () -> clobbers (A,X,Y) = $fe8a
|
||||
FMULT (uword mflpt @AY) -> clobbers (A,X,Y) = $fe1e
|
||||
FMULTT () -> clobbers (A,X,Y) = $fe21
|
||||
FOUT () -> clobbers (X) -> uword @AY = $fe06
|
||||
FPWR (uword mflpt @AY) -> clobbers (A,X,Y) = $fe36
|
||||
FPWRT () -> clobbers (A,X,Y) = $fe39
|
||||
ABS () -> clobbers (A,X,Y) = $fe4e
|
||||
ATN () -> clobbers (A,X,Y) = $fe48
|
||||
AYINT () -> clobbers (A,X,Y) = $fe00
|
||||
AYINT2 () -> clobbers (X) -> word @AY
|
||||
CONUPK (uword mflpt @AY) -> clobbers (A,X,Y) = $fe5a
|
||||
COS () -> clobbers (A,X,Y) = $fe3f
|
||||
DIV10 () -> clobbers (A,X,Y) = $fe7e
|
||||
EXP () -> clobbers (A,X,Y) = $fe3c
|
||||
FADD (uword mflpt @AY) -> clobbers (A,X,Y) = $fe18
|
||||
FADDH () -> clobbers (A,X,Y) = $fe6f
|
||||
FADDT () -> clobbers (A,X,Y) = $fe1b
|
||||
FCOMP (uword mflpt @AY) -> clobbers (X,Y) -> ubyte @A = $fe54
|
||||
FDIV (uword mflpt @AY) -> clobbers (A,X,Y) = $fe24
|
||||
FDIVT () -> clobbers (A,X,Y) = $fe27
|
||||
FINLOG (byte value @A) -> clobbers (A,X,Y) = $fe90
|
||||
FLOAT () -> clobbers (A,X,Y) = $fe87
|
||||
FLOATC () -> clobbers (A,X,Y) = $fe0f
|
||||
FLOATS () -> clobbers (A,X,Y) = $fe8a
|
||||
FMULT (uword mflpt @AY) -> clobbers (A,X,Y) = $fe1e
|
||||
FMULTT () -> clobbers (A,X,Y) = $fe21
|
||||
FOUT () -> clobbers (X) -> uword @AY = $fe06
|
||||
FPWR (uword mflpt @AY) -> clobbers (A,X,Y) = $fe36
|
||||
FPWRT () -> clobbers (A,X,Y) = $fe39
|
||||
FREADSA (byte value @A) -> clobbers (A,X,Y)
|
||||
FREADU24AXY (ubyte lo @A, ubyte mid @X, ubyte hi @Y) -> clobbers (A,X,Y) -> float @FAC1
|
||||
FREADUY (ubyte value @Y)
|
||||
FSUB (uword mflpt @AY) -> clobbers (A,X,Y) = $fe12
|
||||
FSUBT () -> clobbers (A,X,Y) = $fe15
|
||||
GETADR () -> clobbers (X) -> ubyte @Y, ubyte @A = $fe0c
|
||||
FSUB (uword mflpt @AY) -> clobbers (A,X,Y) = $fe12
|
||||
FSUBT () -> clobbers (A,X,Y) = $fe15
|
||||
GETADR () -> clobbers (X) -> ubyte @Y, ubyte @A = $fe0c
|
||||
GETADRAY () -> clobbers (X) -> uword @AY
|
||||
GIVAYF (ubyte lo @Y, ubyte hi @A) -> clobbers (A,X,Y) = $fe03
|
||||
GIVAYF (ubyte lo @Y, ubyte hi @A) -> clobbers (A,X,Y) = $fe03
|
||||
GIVAYFAY (uword value @AY) -> clobbers (A,X,Y)
|
||||
GIVUAYFAY (uword value @AY) -> clobbers (A,X,Y)
|
||||
INT () -> clobbers (A,X,Y) = $fe2d
|
||||
LOG () -> clobbers (A,X,Y) = $fe2a
|
||||
MOVAF () -> clobbers (A,X) = $fe6c
|
||||
MOVEF () -> clobbers (A,X) = $fe81
|
||||
MOVFA () -> clobbers (A,X) = $fe69
|
||||
MOVFM (uword mflpt @AY) -> clobbers (A,X,Y) = $fe63
|
||||
MOVFRM (uword mflpt @AY) -> clobbers (A,X,Y) = $fe60
|
||||
MOVMF (uword mflpt @XY) -> clobbers (A,X,Y) = $fe66
|
||||
MUL10 () -> clobbers (A,X,Y) = $fe7b
|
||||
NEGFAC () -> clobbers (A) = $fe78
|
||||
NEGOP () -> clobbers (A) = $fe33
|
||||
NORMAL () -> clobbers (A,X,Y) = $fe75
|
||||
QINT () -> clobbers (A,X,Y) = $fe8d
|
||||
RND () -> clobbers (A,X,Y) = $fe57
|
||||
RND_0 () -> clobbers (A,X,Y) = $fe57
|
||||
ROMUPK (uword mflpt @AY) -> clobbers (A,X,Y) = $fe5d
|
||||
ROUND () -> clobbers (A,X,Y) = $fe4b
|
||||
SGN () -> clobbers (A,X,Y) = $fe84
|
||||
SIGN () -> clobbers (X,Y) -> ubyte @A = $fe51
|
||||
SIN () -> clobbers (A,X,Y) = $fe42
|
||||
SQR () -> clobbers (A,X,Y) = $fe30
|
||||
TAN () -> clobbers (A,X,Y) = $fe45
|
||||
VAL_1 (uword string @XY, ubyte length @A) -> clobbers (A,X,Y) -> float @FAC1 = $fe09
|
||||
ZEROFC () -> clobbers (A,X,Y) = $fe72
|
||||
INT () -> clobbers (A,X,Y) = $fe2d
|
||||
LOG () -> clobbers (A,X,Y) = $fe2a
|
||||
MOVAF () -> clobbers (A,X) = $fe6c
|
||||
MOVEF () -> clobbers (A,X) = $fe81
|
||||
MOVFA () -> clobbers (A,X) = $fe69
|
||||
MOVFM (uword mflpt @AY) -> clobbers (A,X,Y) = $fe63
|
||||
MOVFRM (uword mflpt @AY) -> clobbers (A,X,Y) = $fe60
|
||||
MOVMF (uword mflpt @XY) -> clobbers (A,X,Y) = $fe66
|
||||
MUL10 () -> clobbers (A,X,Y) = $fe7b
|
||||
NEGFAC () -> clobbers (A) = $fe78
|
||||
NEGOP () -> clobbers (A) = $fe33
|
||||
NORMAL () -> clobbers (A,X,Y) = $fe75
|
||||
QINT () -> clobbers (A,X,Y) = $fe8d
|
||||
RND () -> clobbers (A,X,Y) = $fe57
|
||||
RND_0 () -> clobbers (A,X,Y) = $fe57
|
||||
ROMUPK (uword mflpt @AY) -> clobbers (A,X,Y) = $fe5d
|
||||
ROUND () -> clobbers (A,X,Y) = $fe4b
|
||||
SGN () -> clobbers (A,X,Y) = $fe84
|
||||
SIGN () -> clobbers (X,Y) -> ubyte @A = $fe51
|
||||
SIN () -> clobbers (A,X,Y) = $fe42
|
||||
SQR () -> clobbers (A,X,Y) = $fe30
|
||||
TAN () -> clobbers (A,X,Y) = $fe45
|
||||
VAL_1 (uword string @XY, ubyte length @A) -> clobbers (A,X,Y) -> float @FAC1 = $fe09
|
||||
ZEROFC () -> clobbers (A,X,Y) = $fe72
|
||||
atan (float value) -> float
|
||||
atan2 (float y, float x) -> float
|
||||
ceil (float value) -> float
|
||||
@@ -367,6 +305,8 @@ floats {
|
||||
csc (float value) -> float
|
||||
deg (float angle) -> float
|
||||
floor (float value) -> float
|
||||
lerp (float v0, float v1, float t) -> float
|
||||
lerp_fast (float v0, float v1, float t) -> float
|
||||
ln (float value) -> float
|
||||
log2 (float value) -> float
|
||||
maxf (float f1, float f2) -> float
|
||||
@@ -389,26 +329,23 @@ floats {
|
||||
}
|
||||
|
||||
|
||||
LIBRARY MODULE NAME: gfx2
|
||||
-------------------------
|
||||
LIBRARY MODULE NAME: gfx_hires4
|
||||
-------------------------------
|
||||
|
||||
gfx2 {
|
||||
ubyte active_mode
|
||||
ubyte bpp
|
||||
gfx_hires4 {
|
||||
const uword HEIGHT
|
||||
const uword WIDTH
|
||||
const uword charset_addr
|
||||
const ubyte charset_bank
|
||||
uword height
|
||||
uword width
|
||||
addr_mul_24_for_highres_4c (uword yy @R2, uword xx @R3) -> clobbers (A,Y) -> uword @R0, uword @R1
|
||||
addr_mul_24_for_lores_256c (uword yy @R0, uword xx @AY) -> clobbers (A) -> uword @R0, ubyte @R1
|
||||
circle (uword xcenter, uword ycenter, ubyte radius, ubyte color)
|
||||
clear_screen (ubyte color)
|
||||
cs_innerloop640 (ubyte color @A) -> clobbers (Y)
|
||||
disc (uword xcenter, uword ycenter, ubyte radius, ubyte color)
|
||||
fill (uword x, uword y, ubyte new_color)
|
||||
fillrect (uword xx, uword yy, uword rwidth, uword rheight, ubyte color)
|
||||
graphics_mode ()
|
||||
horizontal_line (uword xx, uword yy, uword length, ubyte color)
|
||||
init_mode (ubyte mode)
|
||||
line (uword x1, uword y1, uword x2, uword y2, ubyte color)
|
||||
next_pixel (ubyte color @A)
|
||||
next_pixels (uword pixels @AY, uword amount @R0) -> clobbers (A,X,Y)
|
||||
@@ -419,16 +356,58 @@ gfx2 {
|
||||
rect (uword xx, uword yy, uword rwidth, uword rheight, ubyte color)
|
||||
safe_circle (uword xcenter, uword ycenter, ubyte radius, ubyte color)
|
||||
safe_disc (uword xcenter, uword ycenter, ubyte radius, ubyte color)
|
||||
safe_fillrect (uword xx, uword yy, uword rwidth, uword rheight, ubyte color)
|
||||
safe_horizontal_line (uword xx, uword yy, uword length, ubyte color)
|
||||
safe_plot (uword xx, uword yy, ubyte color)
|
||||
screen_mode (ubyte mode)
|
||||
safe_rect (uword xx, uword yy, uword rwidth, uword rheight, ubyte color)
|
||||
safe_vertical_line (uword xx, uword yy, uword lheight, ubyte color)
|
||||
set_8_pixels_from_bits (ubyte bits @R0, ubyte oncolor @A, ubyte offcolor @Y) -> clobbers (X)
|
||||
text (uword xx, uword yy, ubyte color, uword sctextptr)
|
||||
text_charset (ubyte charset)
|
||||
text_mode ()
|
||||
vertical_line (uword xx, uword yy, uword lheight, ubyte color)
|
||||
}
|
||||
|
||||
|
||||
LIBRARY MODULE NAME: gfx_lores
|
||||
------------------------------
|
||||
|
||||
gfx_lores {
|
||||
const ubyte HEIGHT
|
||||
const uword WIDTH
|
||||
const uword charset_addr
|
||||
const ubyte charset_bank
|
||||
bool eor_mode
|
||||
circle (uword xcenter, ubyte ycenter, ubyte radius, ubyte color)
|
||||
clear_screen (ubyte color)
|
||||
disc (uword xcenter, ubyte ycenter, ubyte radius, ubyte color)
|
||||
drawmode_eor (bool enabled)
|
||||
fill (uword x, ubyte y, ubyte new_color)
|
||||
fillrect (uword xx, ubyte yy, uword rwidth, ubyte rheight, ubyte color)
|
||||
graphics_mode ()
|
||||
horizontal_line (uword xx, ubyte yy, uword length, ubyte color)
|
||||
line (uword x1, ubyte y1, uword x2, ubyte y2, ubyte color)
|
||||
next_pixel (ubyte color @A)
|
||||
next_pixels (uword pixels @AY, uword amount @R0) -> clobbers (A,X,Y)
|
||||
pget (uword x @AX, ubyte y @Y) -> ubyte @A
|
||||
plot (uword x @AX, ubyte y @Y, ubyte color @R0)
|
||||
position (uword x @AX, ubyte y @Y)
|
||||
rect (uword xx, ubyte yy, uword rwidth, ubyte rheight, ubyte color)
|
||||
safe_circle (uword xcenter, uword ycenter, ubyte radius, ubyte color)
|
||||
safe_disc (uword xcenter, uword ycenter, ubyte radius, ubyte color)
|
||||
safe_fillrect (uword xx, ubyte yy, uword rwidth, ubyte rheight, ubyte color)
|
||||
safe_horizontal_line (uword xx, ubyte yy, uword length, ubyte color)
|
||||
safe_plot (uword xx, ubyte yy, ubyte color)
|
||||
safe_rect (uword xx, ubyte yy, uword rwidth, ubyte rheight, ubyte color)
|
||||
safe_vertical_line (uword xx, ubyte yy, ubyte lheight, ubyte color)
|
||||
set_8_pixels_from_bits (ubyte bits @R0, ubyte oncolor @A, ubyte offcolor @Y) -> clobbers (X)
|
||||
text (uword xx, uword yy, ubyte color, uword textptr)
|
||||
text_charset (ubyte charset)
|
||||
text_mode ()
|
||||
vertical_line (uword xx, ubyte yy, ubyte lheight, ubyte color)
|
||||
}
|
||||
|
||||
|
||||
LIBRARY MODULE NAME: graphics
|
||||
-----------------------------
|
||||
|
||||
@@ -437,7 +416,7 @@ graphics {
|
||||
const uword WIDTH
|
||||
ubyte background_color
|
||||
ubyte stroke_color
|
||||
FB_cursor_position2 () -> clobbers (A,X,Y) = $feff
|
||||
FB_cursor_position2 () -> clobbers (A,X,Y) = $feff
|
||||
circle (uword xcenter, ubyte ycenter, ubyte radius)
|
||||
clear_screen (ubyte pixelcolor, ubyte bgcolor)
|
||||
colors (ubyte stroke, ubyte fill)
|
||||
@@ -477,6 +456,7 @@ math {
|
||||
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
|
||||
@@ -691,50 +671,50 @@ cbm {
|
||||
&ubyte SXREG
|
||||
&ubyte SYREG
|
||||
&uword USRADD
|
||||
ACPTR () -> ubyte @A = $ffa5
|
||||
CHKIN (ubyte logical @X) -> clobbers (A,X) -> bool @Pc = $ffc6
|
||||
CHKOUT (ubyte logical @X) -> clobbers (A,X) = $ffc9
|
||||
CHRIN () -> clobbers (X,Y) -> ubyte @A = $ffcf
|
||||
CHROUT (ubyte character @A) = $ffd2
|
||||
CINT () -> clobbers (A,X,Y) = $ff81
|
||||
CIOUT (ubyte databyte @A) = $ffa8
|
||||
CLALL () -> clobbers (A,X) = $ffe7
|
||||
ACPTR () -> ubyte @A = $ffa5
|
||||
CHKIN (ubyte logical @X) -> clobbers (A,X) -> bool @Pc = $ffc6
|
||||
CHKOUT (ubyte logical @X) -> clobbers (A,X) = $ffc9
|
||||
CHRIN () -> clobbers (X,Y) -> ubyte @A = $ffcf
|
||||
CHROUT (ubyte character @A) = $ffd2
|
||||
CINT () -> clobbers (A,X,Y) = $ff81
|
||||
CIOUT (ubyte databyte @A) = $ffa8
|
||||
CLALL () -> clobbers (A,X) = $ffe7
|
||||
CLEARST ()
|
||||
CLOSE (ubyte logical @A) -> clobbers (A,X,Y) = $ffc3
|
||||
CLRCHN () -> clobbers (A,X) = $ffcc
|
||||
GETIN () -> clobbers (X,Y) -> bool @Pc, ubyte @A = $ffe4
|
||||
CLOSE (ubyte logical @A) -> clobbers (A,X,Y) = $ffc3
|
||||
CLRCHN () -> clobbers (A,X) = $ffcc
|
||||
GETIN () -> clobbers (X,Y) -> bool @Pc, ubyte @A = $ffe4
|
||||
GETIN2 () -> clobbers (X,Y) -> ubyte @A
|
||||
IOBASE () -> uword @XY = $fff3
|
||||
IOINIT () -> clobbers (A,X) = $ff84
|
||||
LISTEN (ubyte device @A) -> clobbers (A) = $ffb1
|
||||
LOAD (ubyte verify @A, uword address @XY) -> bool @Pc, ubyte @A, uword @XY = $ffd5
|
||||
MEMBOT (uword address @XY, bool dir @Pc) -> uword @XY = $ff9c
|
||||
MEMTOP (uword address @XY, bool dir @Pc) -> uword @XY, ubyte @A = $ff99
|
||||
OPEN () -> clobbers (X,Y) -> bool @Pc, ubyte @A = $ffc0
|
||||
PLOT (ubyte col @Y, ubyte row @X, bool dir @Pc) -> clobbers (A) -> ubyte @X, ubyte @Y = $fff0
|
||||
RAMTAS () -> clobbers (A,X,Y) = $ff87
|
||||
RDTIM () -> ubyte @A, ubyte @X, ubyte @Y = $ffde
|
||||
IOBASE () -> uword @XY = $fff3
|
||||
IOINIT () -> clobbers (A,X) = $ff84
|
||||
LISTEN (ubyte device @A) -> clobbers (A) = $ffb1
|
||||
LOAD (ubyte verify @A, uword address @XY) -> bool @Pc, ubyte @A, uword @XY = $ffd5
|
||||
MEMBOT (uword address @XY, bool dir @Pc) -> uword @XY = $ff9c
|
||||
MEMTOP (uword address @XY, bool dir @Pc) -> uword @XY, ubyte @A = $ff99
|
||||
OPEN () -> clobbers (X,Y) -> bool @Pc, ubyte @A = $ffc0
|
||||
PLOT (ubyte col @Y, ubyte row @X, bool dir @Pc) -> clobbers (A) -> ubyte @X, ubyte @Y = $fff0
|
||||
RAMTAS () -> clobbers (A,X,Y) = $ff87
|
||||
RDTIM () -> ubyte @A, ubyte @X, ubyte @Y = $ffde
|
||||
RDTIM16 () -> clobbers (X) -> uword @AY
|
||||
RDTIM_safe () -> ubyte @A, ubyte @X, ubyte @Y
|
||||
READST () -> ubyte @A = $ffb7
|
||||
RESTOR () -> clobbers (A,X,Y) = $ff8a
|
||||
SAVE (ubyte zp_startaddr @A, uword endaddr @XY) -> clobbers (X,Y) -> bool @Pc, ubyte @A = $ffd8
|
||||
SCNKEY () -> clobbers (A,X,Y) = $ff9f
|
||||
SCREEN () -> ubyte @X, ubyte @Y = $ffed
|
||||
SECOND (ubyte address @A) -> clobbers (A) = $ff93
|
||||
SETLFS (ubyte logical @A, ubyte device @X, ubyte secondary @Y) = $ffba
|
||||
SETMSG (ubyte value @A) = $ff90
|
||||
SETNAM (ubyte namelen @A, str filename @XY) = $ffbd
|
||||
SETTIM (ubyte low @A, ubyte middle @X, ubyte high @Y) = $ffdb
|
||||
SETTMO (ubyte timeout @A) = $ffa2
|
||||
STOP () -> clobbers (X) -> bool @Pz, ubyte @A = $ffe1
|
||||
READST () -> ubyte @A = $ffb7
|
||||
RESTOR () -> clobbers (A,X,Y) = $ff8a
|
||||
SAVE (ubyte zp_startaddr @A, uword endaddr @XY) -> clobbers (X,Y) -> bool @Pc, ubyte @A = $ffd8
|
||||
SCNKEY () -> clobbers (A,X,Y) = $ff9f
|
||||
SCREEN () -> ubyte @X, ubyte @Y = $ffed
|
||||
SECOND (ubyte address @A) -> clobbers (A) = $ff93
|
||||
SETLFS (ubyte logical @A, ubyte device @X, ubyte secondary @Y) = $ffba
|
||||
SETMSG (ubyte value @A) = $ff90
|
||||
SETNAM (ubyte namelen @A, str filename @XY) = $ffbd
|
||||
SETTIM (ubyte low @A, ubyte middle @X, ubyte high @Y) = $ffdb
|
||||
SETTMO (ubyte timeout @A) = $ffa2
|
||||
STOP () -> clobbers (X) -> bool @Pz, ubyte @A = $ffe1
|
||||
STOP2 () -> clobbers (A,X) -> bool @Pz
|
||||
TALK (ubyte device @A) -> clobbers (A) = $ffb4
|
||||
TKSA (ubyte address @A) -> clobbers (A) = $ff96
|
||||
UDTIM () -> clobbers (A,X) = $ffea
|
||||
UNLSN () -> clobbers (A) = $ffae
|
||||
UNTLK () -> clobbers (A) = $ffab
|
||||
VECTOR (uword userptr @XY, bool dir @Pc) -> clobbers (A,Y) = $ff8d
|
||||
TALK (ubyte device @A) -> clobbers (A) = $ffb4
|
||||
TKSA (ubyte address @A) -> clobbers (A) = $ff96
|
||||
UDTIM () -> clobbers (A,X) = $ffea
|
||||
UNLSN () -> clobbers (A) = $ffae
|
||||
UNTLK () -> clobbers (A) = $ffab
|
||||
VECTOR (uword userptr @XY, bool dir @Pc) -> clobbers (A,Y) = $ff8d
|
||||
kbdbuf_clear ()
|
||||
}
|
||||
|
||||
@@ -969,128 +949,128 @@ cx16 {
|
||||
&ubyte via2t1ll
|
||||
&ubyte via2t2h
|
||||
&ubyte via2t2l
|
||||
BSAVE (ubyte zp_startaddr @A, uword endaddr @XY) -> clobbers (X,Y) -> bool @Pc, ubyte @A = $feba
|
||||
CLOSE_ALL (ubyte device @A) -> clobbers (A,X,Y) = $ff4a
|
||||
FB_cursor_next_line (uword x @R0) -> clobbers (A,X,Y) = $ff02
|
||||
FB_cursor_position (uword x @R0, uword y @R1) -> clobbers (A,X,Y) = $feff
|
||||
FB_fill_pixels (uword count @R0, uword pstep @R1, ubyte color @A) -> clobbers (A,X,Y) = $ff17
|
||||
FB_filter_pixels (uword pointer @R0, uword count @R1) -> clobbers (A,X,Y) = $ff1a
|
||||
FB_get_info () -> clobbers (X,Y) -> byte @A, uword @R0, uword @R1 = $fef9
|
||||
FB_get_pixel () -> clobbers (X,Y) -> ubyte @A = $ff05
|
||||
FB_get_pixels (uword pointer @R0, uword count @R1) -> clobbers (A,X,Y) = $ff08
|
||||
FB_init () -> clobbers (A,X,Y) = $fef6
|
||||
FB_move_pixels (uword sx @R0, uword sy @R1, uword tx @R2, uword ty @R3, uword count @R4) -> clobbers (A,X,Y) = $ff1d
|
||||
FB_set_8_pixels (ubyte pattern @A, ubyte color @X) -> clobbers (A,X,Y) = $ff11
|
||||
FB_set_8_pixels_opaque (ubyte pattern @R0, ubyte mask @A, ubyte color1 @X, ubyte color2 @Y) -> clobbers (A,X,Y) = $ff14
|
||||
FB_set_palette (uword pointer @R0, ubyte index @A, ubyte colorcount @X) -> clobbers (A,X,Y) = $fefc
|
||||
FB_set_pixel (ubyte color @A) -> clobbers (A,X,Y) = $ff0b
|
||||
FB_set_pixels (uword pointer @R0, uword count @R1) -> clobbers (A,X,Y) = $ff0e
|
||||
GRAPH_clear () -> clobbers (A,X,Y) = $ff23
|
||||
GRAPH_draw_image (uword x @R0, uword y @R1, uword ptr @R2, uword width @R3, uword height @R4) -> clobbers (A,X,Y) = $ff38
|
||||
GRAPH_draw_line (uword x1 @R0, uword y1 @R1, uword x2 @R2, uword y2 @R3) -> clobbers (A,X,Y) = $ff2c
|
||||
GRAPH_draw_oval (uword x @R0, uword y @R1, uword width @R2, uword height @R3, bool fill @Pc) -> clobbers (A,X,Y) = $ff35
|
||||
GRAPH_draw_rect (uword x @R0, uword y @R1, uword width @R2, uword height @R3, uword cornerradius @R4, bool fill @Pc) -> clobbers (A,X,Y) = $ff2f
|
||||
GRAPH_get_char_size (ubyte baseline @A, ubyte width @X, ubyte height_or_style @Y, bool is_control @Pc) -> clobbers (A,X,Y) = $ff3e
|
||||
GRAPH_init (uword vectors @R0) -> clobbers (A,X,Y) = $ff20
|
||||
GRAPH_move_rect (uword sx @R0, uword sy @R1, uword tx @R2, uword ty @R3, uword width @R4, uword height @R5) -> clobbers (A,X,Y) = $ff32
|
||||
GRAPH_put_char (uword x @R0, uword y @R1, ubyte character @A) -> clobbers (A,X,Y) = $ff41
|
||||
GRAPH_put_next_char (ubyte character @A) -> clobbers (A,X,Y) = $ff41
|
||||
GRAPH_set_colors (ubyte stroke @A, ubyte fill @X, ubyte background @Y) -> clobbers (A,X,Y) = $ff29
|
||||
GRAPH_set_font (uword fontptr @R0) -> clobbers (A,X,Y) = $ff3b
|
||||
GRAPH_set_window (uword x @R0, uword y @R1, uword width @R2, uword height @R3) -> clobbers (A,X,Y) = $ff26
|
||||
JSRFAR () = $ff6e
|
||||
LKUPLA (ubyte la @A) -> clobbers (A,X,Y) = $ff59
|
||||
LKUPSA (ubyte sa @Y) -> clobbers (A,X,Y) = $ff5c
|
||||
MACPTR (ubyte length @A, uword buffer @XY, bool dontAdvance @Pc) -> clobbers (A) -> bool @Pc, uword @XY = $ff44
|
||||
MCIOUT (ubyte length @A, uword buffer @XY, bool dontAdvance @Pc) -> clobbers (A) -> bool @Pc, uword @XY = $feb1
|
||||
PRIMM () = $ff7d
|
||||
audio_init () -> clobbers (A,X,Y) -> bool @Pc = $c09f
|
||||
bas_fmchordstring (ubyte length @A, str string @XY) -> clobbers (A,X,Y) = $c08d
|
||||
bas_fmfreq (ubyte channel @A, uword freq @XY, bool noretrigger @Pc) -> clobbers (A,X,Y) -> bool @Pc = $c000
|
||||
bas_fmnote (ubyte channel @A, ubyte note @X, ubyte fracsemitone @Y, bool noretrigger @Pc) -> clobbers (A,X,Y) -> bool @Pc = $c003
|
||||
bas_fmplaystring (ubyte length @A, str string @XY) -> clobbers (A,X,Y) = $c006
|
||||
bas_fmvib (ubyte speed @A, ubyte depth @X) -> clobbers (A,X,Y) -> bool @Pc = $c009
|
||||
bas_playstringvoice (ubyte channel @A) -> clobbers (Y) = $c00c
|
||||
bas_psgchordstring (ubyte length @A, str string @XY) -> clobbers (A,X,Y) = $c090
|
||||
bas_psgfreq (ubyte voice @A, uword freq @XY) -> clobbers (A,X,Y) -> bool @Pc = $c00f
|
||||
bas_psgnote (ubyte voice @A, ubyte note @X, ubyte fracsemitone @Y) -> clobbers (A,X,Y) -> bool @Pc = $c012
|
||||
bas_psgplaystring (ubyte length @A, str string @XY) -> clobbers (A,X,Y) = $c018
|
||||
bas_psgwav (ubyte voice @A, ubyte waveform @X) -> clobbers (A,X,Y) -> bool @Pc = $c015
|
||||
clock_get_date_time () -> clobbers (A,X,Y) -> uword @R0, uword @R1, uword @R2, uword @R3 = $ff50
|
||||
clock_set_date_time (uword yearmonth @R0, uword dayhours @R1, uword minsecs @R2, uword jiffiesweekday @R3) -> clobbers (A,X,Y) = $ff4d
|
||||
console_get_char () -> clobbers (X,Y) -> ubyte @A = $fee1
|
||||
console_init (uword x @R0, uword y @R1, uword width @R2, uword height @R3) -> clobbers (A,X,Y) = $fedb
|
||||
console_put_char (ubyte character @A, bool wrapping @Pc) -> clobbers (A,X,Y) = $fede
|
||||
console_put_image (uword pointer @R0, uword width @R1, uword height @R2) -> clobbers (A,X,Y) = $fed8
|
||||
console_set_paging_message (uword msgptr @R0) -> clobbers (A,X,Y) = $fed5
|
||||
BSAVE (ubyte zp_startaddr @A, uword endaddr @XY) -> clobbers (X,Y) -> bool @Pc, ubyte @A = $feba
|
||||
CLOSE_ALL (ubyte device @A) -> clobbers (A,X,Y) = $ff4a
|
||||
FB_cursor_next_line (uword x @R0) -> clobbers (A,X,Y) = $ff02
|
||||
FB_cursor_position (uword x @R0, uword y @R1) -> clobbers (A,X,Y) = $feff
|
||||
FB_fill_pixels (uword count @R0, uword pstep @R1, ubyte color @A) -> clobbers (A,X,Y) = $ff17
|
||||
FB_filter_pixels (uword pointer @R0, uword count @R1) -> clobbers (A,X,Y) = $ff1a
|
||||
FB_get_info () -> clobbers (X,Y) -> byte @A, uword @R0, uword @R1 = $fef9
|
||||
FB_get_pixel () -> clobbers (X,Y) -> ubyte @A = $ff05
|
||||
FB_get_pixels (uword pointer @R0, uword count @R1) -> clobbers (A,X,Y) = $ff08
|
||||
FB_init () -> clobbers (A,X,Y) = $fef6
|
||||
FB_move_pixels (uword sx @R0, uword sy @R1, uword tx @R2, uword ty @R3, uword count @R4) -> clobbers (A,X,Y) = $ff1d
|
||||
FB_set_8_pixels (ubyte pattern @A, ubyte color @X) -> clobbers (A,X,Y) = $ff11
|
||||
FB_set_8_pixels_opaque (ubyte pattern @R0, ubyte mask @A, ubyte color1 @X, ubyte color2 @Y) -> clobbers (A,X,Y) = $ff14
|
||||
FB_set_palette (uword pointer @R0, ubyte index @A, ubyte colorcount @X) -> clobbers (A,X,Y) = $fefc
|
||||
FB_set_pixel (ubyte color @A) -> clobbers (A,X,Y) = $ff0b
|
||||
FB_set_pixels (uword pointer @R0, uword count @R1) -> clobbers (A,X,Y) = $ff0e
|
||||
GRAPH_clear () -> clobbers (A,X,Y) = $ff23
|
||||
GRAPH_draw_image (uword x @R0, uword y @R1, uword ptr @R2, uword width @R3, uword height @R4) -> clobbers (A,X,Y) = $ff38
|
||||
GRAPH_draw_line (uword x1 @R0, uword y1 @R1, uword x2 @R2, uword y2 @R3) -> clobbers (A,X,Y) = $ff2c
|
||||
GRAPH_draw_oval (uword x @R0, uword y @R1, uword width @R2, uword height @R3, bool fill @Pc) -> clobbers (A,X,Y) = $ff35
|
||||
GRAPH_draw_rect (uword x @R0, uword y @R1, uword width @R2, uword height @R3, uword cornerradius @R4, bool fill @Pc) -> clobbers (A,X,Y) = $ff2f
|
||||
GRAPH_get_char_size (ubyte baseline @A, ubyte width @X, ubyte height_or_style @Y, bool is_control @Pc) -> clobbers (A,X,Y) = $ff3e
|
||||
GRAPH_init (uword vectors @R0) -> clobbers (A,X,Y) = $ff20
|
||||
GRAPH_move_rect (uword sx @R0, uword sy @R1, uword tx @R2, uword ty @R3, uword width @R4, uword height @R5) -> clobbers (A,X,Y) = $ff32
|
||||
GRAPH_put_char (uword x @R0, uword y @R1, ubyte character @A) -> clobbers (A,X,Y) = $ff41
|
||||
GRAPH_put_next_char (ubyte character @A) -> clobbers (A,X,Y) = $ff41
|
||||
GRAPH_set_colors (ubyte stroke @A, ubyte fill @X, ubyte background @Y) -> clobbers (A,X,Y) = $ff29
|
||||
GRAPH_set_font (uword fontptr @R0) -> clobbers (A,X,Y) = $ff3b
|
||||
GRAPH_set_window (uword x @R0, uword y @R1, uword width @R2, uword height @R3) -> clobbers (A,X,Y) = $ff26
|
||||
JSRFAR () = $ff6e
|
||||
LKUPLA (ubyte la @A) -> clobbers (A,X,Y) = $ff59
|
||||
LKUPSA (ubyte sa @Y) -> clobbers (A,X,Y) = $ff5c
|
||||
MACPTR (ubyte length @A, uword buffer @XY, bool dontAdvance @Pc) -> clobbers (A) -> bool @Pc, uword @XY = $ff44
|
||||
MCIOUT (ubyte length @A, uword buffer @XY, bool dontAdvance @Pc) -> clobbers (A) -> bool @Pc, uword @XY = $feb1
|
||||
PRIMM () = $ff7d
|
||||
audio_init () -> clobbers (A,X,Y) -> bool @Pc @bank 10 = $c09f
|
||||
bas_fmchordstring (ubyte length @A, str string @XY) -> clobbers (A,X,Y) @bank 10 = $c08d
|
||||
bas_fmfreq (ubyte channel @A, uword freq @XY, bool noretrigger @Pc) -> clobbers (A,X,Y) -> bool @Pc @bank 10 = $c000
|
||||
bas_fmnote (ubyte channel @A, ubyte note @X, ubyte fracsemitone @Y, bool noretrigger @Pc) -> clobbers (A,X,Y) -> bool @Pc @bank 10 = $c003
|
||||
bas_fmplaystring (ubyte length @A, str string @XY) -> clobbers (A,X,Y) @bank 10 = $c006
|
||||
bas_fmvib (ubyte speed @A, ubyte depth @X) -> clobbers (A,X,Y) -> bool @Pc @bank 10 = $c009
|
||||
bas_playstringvoice (ubyte channel @A) -> clobbers (Y) @bank 10 = $c00c
|
||||
bas_psgchordstring (ubyte length @A, str string @XY) -> clobbers (A,X,Y) @bank 10 = $c090
|
||||
bas_psgfreq (ubyte voice @A, uword freq @XY) -> clobbers (A,X,Y) -> bool @Pc @bank 10 = $c00f
|
||||
bas_psgnote (ubyte voice @A, ubyte note @X, ubyte fracsemitone @Y) -> clobbers (A,X,Y) -> bool @Pc @bank 10 = $c012
|
||||
bas_psgplaystring (ubyte length @A, str string @XY) -> clobbers (A,X,Y) @bank 10 = $c018
|
||||
bas_psgwav (ubyte voice @A, ubyte waveform @X) -> clobbers (A,X,Y) -> bool @Pc @bank 10 = $c015
|
||||
clock_get_date_time () -> clobbers (A,X,Y) -> uword @R0, uword @R1, uword @R2, uword @R3 = $ff50
|
||||
clock_set_date_time (uword yearmonth @R0, uword dayhours @R1, uword minsecs @R2, uword jiffiesweekday @R3) -> clobbers (A,X,Y) = $ff4d
|
||||
console_get_char () -> clobbers (X,Y) -> ubyte @A = $fee1
|
||||
console_init (uword x @R0, uword y @R1, uword width @R2, uword height @R3) -> clobbers (A,X,Y) = $fedb
|
||||
console_put_char (ubyte character @A, bool wrapping @Pc) -> clobbers (A,X,Y) = $fede
|
||||
console_put_image (uword pointer @R0, uword width @R1, uword height @R2) -> clobbers (A,X,Y) = $fed8
|
||||
console_set_paging_message (uword msgptr @R0) -> clobbers (A,X,Y) = $fed5
|
||||
cpu_is_65816 () -> bool @A
|
||||
disable_irq_handlers ()
|
||||
disable_irqs () -> clobbers (A)
|
||||
enable_irq_handlers (bool disable_all_irq_sources @Pc) -> clobbers (A,Y)
|
||||
enter_basic (bool cold_or_warm @Pc) -> clobbers (A,X,Y) = $ff47
|
||||
entropy_get () -> ubyte @A, ubyte @X, ubyte @Y = $fecf
|
||||
extapi (ubyte callnumber @A) -> clobbers (A,X,Y) = $feab
|
||||
fetch (ubyte zp_startaddr @A, ubyte bank @X, ubyte index @Y) -> clobbers (X) -> ubyte @A = $ff74
|
||||
enter_basic (bool cold_or_warm @Pc) -> clobbers (A,X,Y) = $ff47
|
||||
entropy_get () -> ubyte @A, ubyte @X, ubyte @Y = $fecf
|
||||
extapi (ubyte callnumber @A) -> clobbers (A,X,Y) = $feab
|
||||
fetch (ubyte zp_startaddr @A, ubyte bank @X, ubyte index @Y) -> clobbers (X) -> ubyte @A = $ff74
|
||||
get_chrin_keyhandler () -> ubyte @R0, uword @R1
|
||||
get_program_args (uword buffer @R0, ubyte buf_size @R1, bool binary @Pc)
|
||||
get_screen_mode () -> ubyte @A, ubyte @X, ubyte @Y
|
||||
getlfs () -> ubyte @X, ubyte @A, ubyte @Y
|
||||
getrambank () -> ubyte @A
|
||||
getrombank () -> ubyte @A
|
||||
i2c_batch_read (ubyte device @X, uword buffer @R0, uword length @R1, bool advance @Pc) -> clobbers (A,Y) -> bool @Pc = $feb4
|
||||
i2c_batch_write (ubyte device @X, uword buffer @R0, uword length @R1, bool advance @Pc) -> clobbers (A,Y) -> bool @Pc = $feb7
|
||||
i2c_read_byte (ubyte device @X, ubyte offset @Y) -> clobbers (X,Y) -> ubyte @A, bool @Pc = $fec6
|
||||
i2c_write_byte (ubyte device @X, ubyte offset @Y, ubyte data @A) -> clobbers (A,X,Y) -> bool @Pc = $fec9
|
||||
i2c_batch_read (ubyte device @X, uword buffer @R0, uword length @R1, bool advance @Pc) -> clobbers (A,Y) -> bool @Pc = $feb4
|
||||
i2c_batch_write (ubyte device @X, uword buffer @R0, uword length @R1, bool advance @Pc) -> clobbers (A,Y) -> bool @Pc = $feb7
|
||||
i2c_read_byte (ubyte device @X, ubyte offset @Y) -> clobbers (X,Y) -> ubyte @A, bool @Pc = $fec6
|
||||
i2c_write_byte (ubyte device @X, ubyte offset @Y, ubyte data @A) -> clobbers (A,X,Y) -> bool @Pc = $fec9
|
||||
iso_cursor_char (ubyte character @X) -> clobbers (A,X,Y)
|
||||
joystick_get (ubyte joynr @A) -> uword @AX, bool @Y = $ff56
|
||||
joystick_scan () -> clobbers (A,X,Y) = $ff53
|
||||
kbdbuf_get_modifiers () -> ubyte @A = $fec0
|
||||
kbdbuf_peek () -> ubyte @A, ubyte @X = $febd
|
||||
kbdbuf_put (ubyte key @A) -> clobbers (X) = $fec3
|
||||
keymap (uword identifier @XY, bool read @Pc) -> bool @Pc = $fed2
|
||||
memory_copy (uword source @R0, uword target @R1, uword num_bytes @R2) -> clobbers (A,X,Y) = $fee7
|
||||
memory_crc (uword address @R0, uword num_bytes @R1) -> clobbers (A,X,Y) -> uword @R2 = $feea
|
||||
memory_decompress (uword input @R0, uword output @R1) -> clobbers (A,X,Y) -> uword @R1 = $feed
|
||||
memory_fill (uword address @R0, uword num_bytes @R1, ubyte value @A) -> clobbers (A,X,Y) = $fee4
|
||||
monitor () -> clobbers (A,X,Y) = $fecc
|
||||
mouse_config (byte shape @A, ubyte resX @X, ubyte resY @Y) -> clobbers (A,X,Y) = $ff68
|
||||
joystick_get (ubyte joynr @A) -> uword @AX, bool @Y = $ff56
|
||||
joystick_scan () -> clobbers (A,X,Y) = $ff53
|
||||
kbdbuf_get_modifiers () -> ubyte @A = $fec0
|
||||
kbdbuf_peek () -> ubyte @A, ubyte @X = $febd
|
||||
kbdbuf_put (ubyte key @A) -> clobbers (X) = $fec3
|
||||
keymap (uword identifier @XY, bool read @Pc) -> bool @Pc = $fed2
|
||||
memory_copy (uword source @R0, uword target @R1, uword num_bytes @R2) -> clobbers (A,X,Y) = $fee7
|
||||
memory_crc (uword address @R0, uword num_bytes @R1) -> clobbers (A,X,Y) -> uword @R2 = $feea
|
||||
memory_decompress (uword input @R0, uword output @R1) -> clobbers (A,X,Y) -> uword @R1 = $feed
|
||||
memory_fill (uword address @R0, uword num_bytes @R1, ubyte value @A) -> clobbers (A,X,Y) = $fee4
|
||||
monitor () -> clobbers (A,X,Y) = $fecc
|
||||
mouse_config (byte shape @A, ubyte resX @X, ubyte resY @Y) -> clobbers (A,X,Y) = $ff68
|
||||
mouse_config2 (byte shape @A) -> clobbers (A,X,Y)
|
||||
mouse_get (ubyte zdataptr @X) -> ubyte @A, byte @X = $ff6b
|
||||
mouse_get (ubyte zdataptr @X) -> ubyte @A, byte @X = $ff6b
|
||||
mouse_get_sprite_offset () -> clobbers (A,X,Y) -> word @R0, word @R1
|
||||
mouse_pos () -> ubyte @A, uword @R0, uword @R1, byte @X
|
||||
mouse_present () -> bool
|
||||
mouse_scan () -> clobbers (A,X,Y) = $ff71
|
||||
mouse_scan () -> clobbers (A,X,Y) = $ff71
|
||||
mouse_set_pos (uword xpos @R0, uword ypos @R1) -> clobbers (X)
|
||||
mouse_set_sprite_offset (word xoffset @R0, word yoffset @R1) -> clobbers (A,X,Y)
|
||||
notecon_bas2fm (ubyte note @X) -> clobbers (A) -> ubyte @X, bool @Pc = $c01b
|
||||
notecon_bas2midi (ubyte note @X) -> clobbers (A) -> ubyte @X, bool @Pc = $c01e
|
||||
notecon_bas2psg (ubyte note @X, ubyte fracsemitone @Y) -> clobbers (A) -> uword @XY, bool @Pc = $c021
|
||||
notecon_fm2bas (ubyte note @X) -> clobbers (A) -> ubyte @X, bool @Pc = $c024
|
||||
notecon_fm2midi (ubyte note @X) -> clobbers (A) -> ubyte @X, bool @Pc = $c027
|
||||
notecon_fm2psg (ubyte note @X, ubyte fracsemitone @Y) -> clobbers (A) -> uword @XY, bool @Pc = $c02a
|
||||
notecon_freq2bas (uword freqHz @XY) -> clobbers (A) -> ubyte @X, ubyte @Y, bool @Pc = $c02d
|
||||
notecon_freq2fm (uword freqHz @XY) -> clobbers (A) -> ubyte @X, ubyte @Y, bool @Pc = $c030
|
||||
notecon_freq2midi (uword freqHz @XY) -> clobbers (A) -> ubyte @X, ubyte @Y, bool @Pc = $c033
|
||||
notecon_freq2psg (uword freqHz @XY) -> clobbers (A) -> uword @XY, bool @Pc = $c036
|
||||
notecon_midi2bas (ubyte note @X) -> clobbers (A) -> ubyte @X, bool @Pc = $c039
|
||||
notecon_midi2fm (ubyte note @X) -> clobbers (A) -> ubyte @X, bool @Pc = $c03c
|
||||
notecon_midi2psg (ubyte note @X, ubyte fracsemitone @Y) -> clobbers (A) -> uword @XY, bool @Pc = $c03f
|
||||
notecon_psg2bas (uword freq @XY) -> clobbers (A) -> ubyte @X, ubyte @Y, bool @Pc = $c042
|
||||
notecon_psg2fm (uword freq @XY) -> clobbers (A) -> ubyte @X, ubyte @Y, bool @Pc = $c045
|
||||
notecon_psg2midi (uword freq @XY) -> clobbers (A) -> ubyte @X, ubyte @Y, bool @Pc = $c048
|
||||
notecon_bas2fm (ubyte note @X) -> clobbers (A) -> ubyte @X, bool @Pc @bank 10 = $c01b
|
||||
notecon_bas2midi (ubyte note @X) -> clobbers (A) -> ubyte @X, bool @Pc @bank 10 = $c01e
|
||||
notecon_bas2psg (ubyte note @X, ubyte fracsemitone @Y) -> clobbers (A) -> uword @XY, bool @Pc @bank 10 = $c021
|
||||
notecon_fm2bas (ubyte note @X) -> clobbers (A) -> ubyte @X, bool @Pc @bank 10 = $c024
|
||||
notecon_fm2midi (ubyte note @X) -> clobbers (A) -> ubyte @X, bool @Pc @bank 10 = $c027
|
||||
notecon_fm2psg (ubyte note @X, ubyte fracsemitone @Y) -> clobbers (A) -> uword @XY, bool @Pc @bank 10 = $c02a
|
||||
notecon_freq2bas (uword freqHz @XY) -> clobbers (A) -> ubyte @X, ubyte @Y, bool @Pc @bank 10 = $c02d
|
||||
notecon_freq2fm (uword freqHz @XY) -> clobbers (A) -> ubyte @X, ubyte @Y, bool @Pc @bank 10 = $c030
|
||||
notecon_freq2midi (uword freqHz @XY) -> clobbers (A) -> ubyte @X, ubyte @Y, bool @Pc @bank 10 = $c033
|
||||
notecon_freq2psg (uword freqHz @XY) -> clobbers (A) -> uword @XY, bool @Pc @bank 10 = $c036
|
||||
notecon_midi2bas (ubyte note @X) -> clobbers (A) -> ubyte @X, bool @Pc @bank 10 = $c039
|
||||
notecon_midi2fm (ubyte note @X) -> clobbers (A) -> ubyte @X, bool @Pc @bank 10 = $c03c
|
||||
notecon_midi2psg (ubyte note @X, ubyte fracsemitone @Y) -> clobbers (A) -> uword @XY, bool @Pc @bank 10 = $c03f
|
||||
notecon_psg2bas (uword freq @XY) -> clobbers (A) -> ubyte @X, ubyte @Y, bool @Pc @bank 10 = $c042
|
||||
notecon_psg2fm (uword freq @XY) -> clobbers (A) -> ubyte @X, ubyte @Y, bool @Pc @bank 10 = $c045
|
||||
notecon_psg2midi (uword freq @XY) -> clobbers (A) -> ubyte @X, ubyte @Y, bool @Pc @bank 10 = $c048
|
||||
numbanks () -> clobbers (X) -> uword @AY
|
||||
poweroff_system ()
|
||||
psg_getatten (ubyte voice @A) -> clobbers (Y) -> ubyte @X = $c093
|
||||
psg_getpan (ubyte voice @A) -> clobbers (Y) -> ubyte @X = $c096
|
||||
psg_init () -> clobbers (A,X,Y) = $c04b
|
||||
psg_playfreq (ubyte voice @A, uword freq @XY) -> clobbers (A,X,Y) = $c04e
|
||||
psg_read (ubyte offset @X, bool cookedVol @Pc) -> clobbers (Y) -> ubyte @A = $c051
|
||||
psg_setatten (ubyte voice @A, ubyte attenuation @X) -> clobbers (A,X,Y) = $c054
|
||||
psg_setfreq (ubyte voice @A, uword freq @XY) -> clobbers (A,X,Y) = $c057
|
||||
psg_setpan (ubyte voice @A, ubyte panning @X) -> clobbers (A,X,Y) = $c05a
|
||||
psg_setvol (ubyte voice @A, ubyte volume @X) -> clobbers (A,X,Y) = $c05d
|
||||
psg_write (ubyte value @A, ubyte offset @X) -> clobbers (Y) = $c060
|
||||
psg_write_fast (ubyte value @A, ubyte offset @X) -> clobbers (Y) = $c0a2
|
||||
psg_getatten (ubyte voice @A) -> clobbers (Y) -> ubyte @X @bank 10 = $c093
|
||||
psg_getpan (ubyte voice @A) -> clobbers (Y) -> ubyte @X @bank 10 = $c096
|
||||
psg_init () -> clobbers (A,X,Y) @bank 10 = $c04b
|
||||
psg_playfreq (ubyte voice @A, uword freq @XY) -> clobbers (A,X,Y) @bank 10 = $c04e
|
||||
psg_read (ubyte offset @X, bool cookedVol @Pc) -> clobbers (Y) -> ubyte @A @bank 10 = $c051
|
||||
psg_setatten (ubyte voice @A, ubyte attenuation @X) -> clobbers (A,X,Y) @bank 10 = $c054
|
||||
psg_setfreq (ubyte voice @A, uword freq @XY) -> clobbers (A,X,Y) @bank 10 = $c057
|
||||
psg_setpan (ubyte voice @A, ubyte panning @X) -> clobbers (A,X,Y) @bank 10 = $c05a
|
||||
psg_setvol (ubyte voice @A, ubyte volume @X) -> clobbers (A,X,Y) @bank 10 = $c05d
|
||||
psg_write (ubyte value @A, ubyte offset @X) -> clobbers (Y) @bank 10 = $c060
|
||||
psg_write_fast (ubyte value @A, ubyte offset @X) -> clobbers (Y) @bank 10 = $c0a2
|
||||
rambank (ubyte bank @A)
|
||||
reset_system ()
|
||||
restore_vera_context () -> clobbers (A)
|
||||
@@ -1100,8 +1080,8 @@ cx16 {
|
||||
save_vera_context () -> clobbers (A)
|
||||
save_virtual_registers () -> clobbers (A,Y)
|
||||
scnsiz (ubyte width @X, ubyte heigth @Y) -> clobbers (A,X,Y)
|
||||
screen_mode (ubyte mode @A, bool getCurrent @Pc) -> ubyte @A, ubyte @X, ubyte @Y, bool @Pc = $ff5f
|
||||
screen_set_charset (ubyte charset @A, uword charsetptr @XY) -> clobbers (A,X,Y) = $ff62
|
||||
screen_mode (ubyte mode @A, bool getCurrent @Pc) -> ubyte @A, ubyte @X, ubyte @Y, bool @Pc = $ff5f
|
||||
screen_set_charset (ubyte charset @A, uword charsetptr @XY) -> clobbers (A,X,Y) = $ff62
|
||||
search_x16edit () -> ubyte
|
||||
set_aflow_irq_handler (uword address @AY) -> clobbers (A)
|
||||
set_chrin_keyhandler (ubyte handlerbank @A, uword handler @XY) -> clobbers (A)
|
||||
@@ -1111,9 +1091,9 @@ cx16 {
|
||||
set_screen_mode (ubyte mode @A) -> clobbers (A,X,Y) -> bool @Pc
|
||||
set_sprcol_irq_handler (uword address @AY) -> clobbers (A)
|
||||
set_vsync_irq_handler (uword address @AY) -> clobbers (A)
|
||||
sprite_set_image (uword pixels @R0, uword mask @R1, ubyte bpp @R2, ubyte number @A, ubyte width @X, ubyte height @Y, bool apply_mask @Pc) -> clobbers (A,X,Y) -> bool @Pc = $fef0
|
||||
sprite_set_position (uword x @R0, uword y @R1, ubyte number @A) -> clobbers (A,X,Y) = $fef3
|
||||
stash (ubyte data @A, ubyte bank @X, ubyte index @Y) -> clobbers (X) = $ff77
|
||||
sprite_set_image (uword pixels @R0, uword mask @R1, ubyte bpp @R2, ubyte number @A, ubyte width @X, ubyte height @Y, bool apply_mask @Pc) -> clobbers (A,X,Y) -> bool @Pc = $fef0
|
||||
sprite_set_position (uword x @R0, uword y @R1, ubyte number @A) -> clobbers (A,X,Y) = $fef3
|
||||
stash (ubyte data @A, ubyte bank @X, ubyte index @Y) -> clobbers (X) = $ff77
|
||||
vaddr (ubyte bank @A, uword address @R0, ubyte addrsel @R1, byte autoIncrOrDecrByOne @Y) -> clobbers (A)
|
||||
vaddr_autodecr (ubyte bank @A, uword address @R0, ubyte addrsel @R1, uword autoDecrAmount @R2) -> clobbers (A,Y)
|
||||
vaddr_autoincr (ubyte bank @A, uword address @R0, ubyte addrsel @R1, uword autoIncrAmount @R2) -> clobbers (A,Y)
|
||||
@@ -1124,26 +1104,26 @@ cx16 {
|
||||
vpoke_mask (ubyte bank @A, uword address @R0, ubyte mask @X, ubyte value @Y) -> clobbers (A)
|
||||
vpoke_or (ubyte bank @A, uword address @R0, ubyte value @Y) -> clobbers (A)
|
||||
vpoke_xor (ubyte bank @A, uword address @R0, ubyte value @Y) -> clobbers (A)
|
||||
x16edit_default () -> clobbers (A,X,Y) = $c000
|
||||
x16edit_loadfile (ubyte firstbank @X, ubyte lastbank @Y, str filename @R0, ubyte filenameLength @R1) -> clobbers (A,X,Y) = $c003
|
||||
x16edit_loadfile_options (ubyte firstbank @X, ubyte lastbank @Y, str filename @R0, uword filenameLengthAndOptions @R1, uword tabstopAndWordwrap @R2, uword disknumberAndColors @R3, uword headerAndStatusColors @R4) -> clobbers (A,X,Y) = $c006
|
||||
ym_get_chip_type () -> clobbers (X) -> ubyte @A = $c0a5
|
||||
ym_getatten (ubyte channel @A) -> clobbers (Y) -> ubyte @X = $c099
|
||||
ym_getpan (ubyte channel @A) -> clobbers (Y) -> ubyte @X = $c09c
|
||||
ym_init () -> clobbers (A,X,Y) -> bool @Pc = $c063
|
||||
ym_loaddefpatches () -> clobbers (A,X,Y) -> bool @Pc = $c066
|
||||
ym_loadpatch (ubyte channel @A, uword patchOrAddress @XY, bool what @Pc) -> clobbers (A,X,Y) = $c069
|
||||
ym_loadpatchlfn (ubyte channel @A, ubyte lfn @X) -> clobbers (X,Y) -> ubyte @A, bool @Pc = $c06c
|
||||
ym_playdrum (ubyte channel @A, ubyte note @X) -> clobbers (A,X,Y) -> bool @Pc = $c06f
|
||||
ym_playnote (ubyte channel @A, ubyte kc @X, ubyte kf @Y, bool notrigger @Pc) -> clobbers (A,X,Y) -> bool @Pc = $c072
|
||||
ym_read (ubyte register @X, bool cooked @Pc) -> clobbers (Y) -> ubyte @A, bool @Pc = $c081
|
||||
ym_release (ubyte channel @A) -> clobbers (A,X,Y) -> bool @Pc = $c084
|
||||
ym_setatten (ubyte channel @A, ubyte attenuation @X) -> clobbers (Y) -> bool @Pc = $c075
|
||||
ym_setdrum (ubyte channel @A, ubyte note @X) -> clobbers (A,X,Y) -> bool @Pc = $c078
|
||||
ym_setnote (ubyte channel @A, ubyte kc @X, ubyte kf @Y) -> clobbers (A,X,Y) -> bool @Pc = $c07b
|
||||
ym_setpan (ubyte channel @A, ubyte panning @X) -> clobbers (A,X,Y) -> bool @Pc = $c07e
|
||||
ym_trigger (ubyte channel @A, bool noRelease @Pc) -> clobbers (A,X,Y) -> bool @Pc = $c087
|
||||
ym_write (ubyte value @A, ubyte register @X) -> clobbers (Y) -> bool @Pc = $c08a
|
||||
x16edit_default () -> clobbers (A,X,Y) = $c000
|
||||
x16edit_loadfile (ubyte firstbank @X, ubyte lastbank @Y, str filename @R0, ubyte filenameLength @R1) -> clobbers (A,X,Y) = $c003
|
||||
x16edit_loadfile_options (ubyte firstbank @X, ubyte lastbank @Y, str filename @R0, uword filenameLengthAndOptions @R1, uword tabstopAndWordwrap @R2, uword disknumberAndColors @R3, uword headerAndStatusColors @R4) -> clobbers (A,X,Y) = $c006
|
||||
ym_get_chip_type () -> clobbers (X) -> ubyte @A @bank 10 = $c0a5
|
||||
ym_getatten (ubyte channel @A) -> clobbers (Y) -> ubyte @X @bank 10 = $c099
|
||||
ym_getpan (ubyte channel @A) -> clobbers (Y) -> ubyte @X @bank 10 = $c09c
|
||||
ym_init () -> clobbers (A,X,Y) -> bool @Pc @bank 10 = $c063
|
||||
ym_loaddefpatches () -> clobbers (A,X,Y) -> bool @Pc @bank 10 = $c066
|
||||
ym_loadpatch (ubyte channel @A, uword patchOrAddress @XY, bool what @Pc) -> clobbers (A,X,Y) @bank 10 = $c069
|
||||
ym_loadpatchlfn (ubyte channel @A, ubyte lfn @X) -> clobbers (X,Y) -> ubyte @A, bool @Pc @bank 10 = $c06c
|
||||
ym_playdrum (ubyte channel @A, ubyte note @X) -> clobbers (A,X,Y) -> bool @Pc @bank 10 = $c06f
|
||||
ym_playnote (ubyte channel @A, ubyte kc @X, ubyte kf @Y, bool notrigger @Pc) -> clobbers (A,X,Y) -> bool @Pc @bank 10 = $c072
|
||||
ym_read (ubyte register @X, bool cooked @Pc) -> clobbers (Y) -> ubyte @A, bool @Pc @bank 10 = $c081
|
||||
ym_release (ubyte channel @A) -> clobbers (A,X,Y) -> bool @Pc @bank 10 = $c084
|
||||
ym_setatten (ubyte channel @A, ubyte attenuation @X) -> clobbers (Y) -> bool @Pc @bank 10 = $c075
|
||||
ym_setdrum (ubyte channel @A, ubyte note @X) -> clobbers (A,X,Y) -> bool @Pc @bank 10 = $c078
|
||||
ym_setnote (ubyte channel @A, ubyte kc @X, ubyte kf @Y) -> clobbers (A,X,Y) -> bool @Pc @bank 10 = $c07b
|
||||
ym_setpan (ubyte channel @A, ubyte panning @X) -> clobbers (A,X,Y) -> bool @Pc @bank 10 = $c07e
|
||||
ym_trigger (ubyte channel @A, bool noRelease @Pc) -> clobbers (A,X,Y) -> bool @Pc @bank 10 = $c087
|
||||
ym_write (ubyte value @A, ubyte register @X) -> clobbers (Y) -> bool @Pc @bank 10 = $c08a
|
||||
}
|
||||
|
||||
sys {
|
||||
@@ -1154,7 +1134,6 @@ sys {
|
||||
const ubyte sizeof_uword
|
||||
const ubyte sizeof_word
|
||||
const ubyte target
|
||||
cleanup_at_exit ()
|
||||
clear_carry ()
|
||||
clear_irqd ()
|
||||
disable_caseswitch ()
|
||||
@@ -1162,11 +1141,10 @@ 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)
|
||||
init_system ()
|
||||
init_system_phase2 ()
|
||||
internal_stringcopy (uword source @R0, uword target @AY) -> clobbers (A,Y)
|
||||
irqsafe_clear_irqd ()
|
||||
irqsafe_set_irqd ()
|
||||
memcmp (uword address1 @R0, uword address2 @R1, uword size @AY) -> byte @A
|
||||
memcopy (uword source @R0, uword target @R1, uword count @AY) -> clobbers (A,X,Y)
|
||||
memset (uword mem @R0, uword numbytes @R1, ubyte value @A) -> clobbers (A,X,Y)
|
||||
memsetw (uword mem @R0, uword numwords @R1, uword value @AY) -> clobbers (A,X,Y)
|
||||
@@ -1190,6 +1168,12 @@ sys {
|
||||
waitvsync ()
|
||||
}
|
||||
|
||||
p8_sys_startup {
|
||||
cleanup_at_exit ()
|
||||
init_system ()
|
||||
init_system_phase2 ()
|
||||
}
|
||||
|
||||
|
||||
LIBRARY MODULE NAME: test_stack
|
||||
-------------------------------
|
||||
@@ -1209,7 +1193,7 @@ txt {
|
||||
const ubyte VERA_TEXTMATRIX_BANK
|
||||
ubyte[] color_to_charcode
|
||||
bell ()
|
||||
chrout (ubyte character @A) = $ffd2
|
||||
chrout (ubyte character @A) = $ffd2
|
||||
chrout_lit (ubyte character @A)
|
||||
clear_screen ()
|
||||
clear_screenchars (ubyte character @A) -> clobbers (X,Y)
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
|
||||
Prog8 compiler v10.5-SNAPSHOT by Irmen de Jong (irmen@razorvine.net)
|
||||
Prerelease version from git commit 7d4dc3c0 in branch master
|
||||
Prog8 compiler v10.5 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
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
|
||||
Prog8 compiler v10.4.2 by Irmen de Jong (irmen@razorvine.net)
|
||||
Prog8 compiler v10.5 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
|
||||
@@ -111,9 +111,11 @@ diskio {
|
||||
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
|
||||
@@ -160,6 +162,7 @@ math {
|
||||
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
|
||||
@@ -230,20 +233,20 @@ cbm {
|
||||
&ubyte TIME_HI
|
||||
&ubyte TIME_LO
|
||||
&ubyte TIME_MID
|
||||
CHKIN (ubyte logical @X) -> clobbers (A,X) -> bool @Pc = $ffc6
|
||||
CHKOUT (ubyte logical @X) -> clobbers (A,X) = $ffc9
|
||||
CHRIN () -> clobbers (X,Y) -> ubyte @A = $ffcf
|
||||
CHROUT (ubyte character @A) = $ffd2
|
||||
CLALL () -> clobbers (A,X) = $ffe7
|
||||
CLRCHN () -> clobbers (A,X) = $ffcc
|
||||
GETIN () -> clobbers (X,Y) -> bool @Pc, ubyte @A = $ffe4
|
||||
CHKIN (ubyte logical @X) -> clobbers (A,X) -> bool @Pc = $ffc6
|
||||
CHKOUT (ubyte logical @X) -> clobbers (A,X) = $ffc9
|
||||
CHRIN () -> clobbers (X,Y) -> ubyte @A = $ffcf
|
||||
CHROUT (ubyte character @A) = $ffd2
|
||||
CLALL () -> clobbers (A,X) = $ffe7
|
||||
CLRCHN () -> clobbers (A,X) = $ffcc
|
||||
GETIN () -> clobbers (X,Y) -> bool @Pc, ubyte @A = $ffe4
|
||||
GETIN2 () -> clobbers (X,Y) -> ubyte @A
|
||||
RDTIM () -> ubyte @A, ubyte @X, ubyte @Y
|
||||
RDTIM16 () -> clobbers (X) -> uword @AY
|
||||
SETTIM (ubyte low @A, ubyte middle @X, ubyte high @Y)
|
||||
STOP () -> clobbers (X) -> bool @Pz, ubyte @A = $ffe1
|
||||
STOP () -> clobbers (X) -> bool @Pz, ubyte @A = $ffe1
|
||||
STOP2 () -> clobbers (A,X) -> bool @Pz
|
||||
UDTIM () -> clobbers (A,X) = $ffea
|
||||
UDTIM () -> clobbers (A,X) = $ffea
|
||||
kbdbuf_clear ()
|
||||
}
|
||||
|
||||
@@ -255,7 +258,6 @@ sys {
|
||||
const ubyte sizeof_uword
|
||||
const ubyte sizeof_word
|
||||
const ubyte target
|
||||
cleanup_at_exit ()
|
||||
clear_carry ()
|
||||
clear_irqd ()
|
||||
disable_caseswitch ()
|
||||
@@ -263,11 +265,10 @@ 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)
|
||||
init_system ()
|
||||
init_system_phase2 ()
|
||||
internal_stringcopy (uword source @R0, uword target @AY) -> clobbers (A,Y)
|
||||
irqsafe_clear_irqd ()
|
||||
irqsafe_set_irqd ()
|
||||
memcmp (uword address1 @R0, uword address2 @R1, uword size @AY) -> byte @A
|
||||
memcopy (uword source @R0, uword target @R1, uword count @AY) -> clobbers (A,X,Y)
|
||||
memset (uword mem @R0, uword numbytes @R1, ubyte value @A) -> clobbers (A,X,Y)
|
||||
memsetw (uword mem @R0, uword numwords @R1, uword value @AY) -> clobbers (A,X,Y)
|
||||
@@ -388,6 +389,12 @@ cx16 {
|
||||
save_virtual_registers () -> clobbers (A,Y)
|
||||
}
|
||||
|
||||
p8_sys_startup {
|
||||
cleanup_at_exit ()
|
||||
init_system ()
|
||||
init_system_phase2 ()
|
||||
}
|
||||
|
||||
|
||||
LIBRARY MODULE NAME: test_stack
|
||||
-------------------------------
|
||||
@@ -404,7 +411,7 @@ txt {
|
||||
const ubyte DEFAULT_HEIGHT
|
||||
const ubyte DEFAULT_WIDTH
|
||||
bell ()
|
||||
chrout (ubyte character @A) = $ffd2
|
||||
chrout (ubyte character @A) = $ffd2
|
||||
clear_screen ()
|
||||
clear_screenchars (ubyte character @A) -> clobbers (Y)
|
||||
clear_screencolors (ubyte color)
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
|
||||
Prog8 compiler v10.4.2 by Irmen de Jong (irmen@razorvine.net)
|
||||
Prog8 compiler v10.5 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
|
||||
@@ -102,6 +102,7 @@ diskio {
|
||||
curdir () -> uword
|
||||
delete (uword filenameptr)
|
||||
directory () -> bool
|
||||
exists (str filename) -> bool
|
||||
f_close ()
|
||||
f_close_w ()
|
||||
f_open (uword filenameptr) -> bool
|
||||
@@ -154,6 +155,8 @@ floats {
|
||||
csc (float value) -> float
|
||||
deg (float angle) -> float
|
||||
floor (float value) -> float
|
||||
lerp (float v0, float v1, float t) -> float
|
||||
lerp_fast (float v0, float v1, float t) -> float
|
||||
ln (float value) -> float
|
||||
log2 (float value) -> float
|
||||
maxf (float f1, float f2) -> float
|
||||
@@ -197,6 +200,7 @@ math {
|
||||
direction (ubyte x1, ubyte y1, ubyte x2, ubyte y2) -> ubyte
|
||||
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
|
||||
log2 (ubyte value) -> ubyte
|
||||
log2w (uword value) -> ubyte
|
||||
mul16_last_upper () -> uword
|
||||
@@ -306,6 +310,7 @@ sys {
|
||||
gfx_getpixel (uword xx, uword yy) -> ubyte
|
||||
gfx_plot (uword xx, uword yy, ubyte color)
|
||||
internal_stringcopy (uword source, uword tgt)
|
||||
memcmp (uword address1, uword address2, uword size) -> byte
|
||||
memcopy (uword source, uword tgt, uword count)
|
||||
memset (uword mem, uword numbytes, ubyte value)
|
||||
memsetw (uword mem, uword numwords, uword value)
|
||||
|
||||
Reference in New Issue
Block a user