diff --git a/docs/source/todo.rst b/docs/source/todo.rst index 67382db5b..bb6532f33 100644 --- a/docs/source/todo.rst +++ b/docs/source/todo.rst @@ -1,8 +1,9 @@ TODO ==== -update zsmkit to newest version that includes the on_deck routines when stabilized - +@R0 parameters in normal subs are currently done via injected alias statements. +This means a bool parameter cannot be put into r0 because it is defined as a byte. (error: "using R0-R15 as register param requires integer type") +Can we inject them as regular memory mapped variables instead? &bool param = $02 (where $02 is the zp location of r0L) ... diff --git a/examples/cx16/zsmkit_v2/ZSMKIT-A000.BIN b/examples/cx16/zsmkit_v2/ZSMKIT-A000.BIN index ff713fb89..0e631dced 100644 Binary files a/examples/cx16/zsmkit_v2/ZSMKIT-A000.BIN and b/examples/cx16/zsmkit_v2/ZSMKIT-A000.BIN differ diff --git a/examples/cx16/zsmkit_v2/zsmkit.p8 b/examples/cx16/zsmkit_v2/zsmkit.p8 index 59952fca6..e053be5c3 100644 --- a/examples/cx16/zsmkit_v2/zsmkit.p8 +++ b/examples/cx16/zsmkit_v2/zsmkit.p8 @@ -34,4 +34,11 @@ zsmkit { extsub @bank ZSMKitBank $A054 = zsmkit_setisr() clobbers(A) extsub @bank ZSMKitBank $A057 = zsmkit_clearisr() clobbers(A) extsub @bank ZSMKitBank $A05A = zsmkit_version() -> ubyte @A, ubyte @X + + extsub @bank ZSMKitBank $A05D = zsm_set_ondeck_bank(ubyte prio @X, ubyte bank @A) + extsub @bank ZSMKitBank $A060 = zsm_set_ondeck_mem(ubyte prio @X, uword data_ptr @AY) clobbers(A, X, Y) + extsub @bank ZSMKitBank $A063 = zsm_clear_ondeck(ubyte prio @X) clobbers(A, X, Y) + extsub @bank ZSMKitBank $A066 = zsm_midi_init(ubyte iobase @A, bool parallel @X, bool callback @Pc) clobbers(A, X, Y) + extsub @bank ZSMKitBank $A069 = zsm_psg_suspend(ubyte channel @Y, bool suspend @Pc) clobbers(A, X, Y) + extsub @bank ZSMKitBank $A06C = zsm_opm_suspend(ubyte channel @Y, bool suspend @Pc) clobbers(A, X, Y) }