From 124ec77b58f00a10b64270bf04c7e42043d0f217 Mon Sep 17 00:00:00 2001 From: Irmen de Jong Date: Fri, 13 Dec 2024 20:11:19 +0100 Subject: [PATCH] update zsmkit to version 2.4, including the new on_deck routines --- docs/source/todo.rst | 5 +++-- examples/cx16/zsmkit_v2/ZSMKIT-A000.BIN | Bin 4593 -> 5316 bytes examples/cx16/zsmkit_v2/zsmkit.p8 | 7 +++++++ 3 files changed, 10 insertions(+), 2 deletions(-) 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 ff713fb892e12c0ea6250e6394f96963c334a379..0e631dced956dd56811c46c1174f0ce5a23e4f31 100644 GIT binary patch literal 5316 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 lgV%;{7d`;bM 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) }