diff --git a/internal/c/User Mods/luke_mods.cpp b/internal/c/User Mods/luke_mods.cpp index 12e4546d5..304092370 100644 --- a/internal/c/User Mods/luke_mods.cpp +++ b/internal/c/User Mods/luke_mods.cpp @@ -51,3 +51,22 @@ qbs *func__cwd(){ return final; } +void sub__keyclear(int32 buf, int32 passed) { + if (new_error) return; + if (passed && (buf > 3 || buf < 1)) error(5); + // Sleep(10); + if ((buf == 1 && passed) || !passed) { + //INKEY$ buffer + cmem[0x41a]=30; cmem[0x41b]=0; //head + cmem[0x41c]=30; cmem[0x41d]=0; //tail + } + if ((buf == 2 && passed) || !passed) { + //_KEYHIT buffer + keyhit_nextfree = 0; + keyhit_next = 0; + } + if ((buf == 3 && passed) || !passed) { + //INP(&H60) buffer + port60h_events = 0; + } +} diff --git a/internal/c/User Mods/luke_mods.h b/internal/c/User Mods/luke_mods.h index a40503dea..7a9ac24d6 100644 --- a/internal/c/User Mods/luke_mods.h +++ b/internal/c/User Mods/luke_mods.h @@ -3,3 +3,4 @@ * Write me at if I broke something */ qbs *func__cwd(); +void sub__keyclear(int32 buf, int32 passed); diff --git a/source/subs_functions/extensions/Luke Stuff-ID_Includes.bas b/source/subs_functions/extensions/Luke Stuff-ID_Includes.bas index 38071ba0b..c14cba4b7 100644 --- a/source/subs_functions/extensions/Luke Stuff-ID_Includes.bas +++ b/source/subs_functions/extensions/Luke Stuff-ID_Includes.bas @@ -5,4 +5,13 @@ id.musthave = "$" id.subfunc = 1 id.callname = "func__cwd" id.ret = STRINGTYPE - ISPOINTER +regid + +clearid +id.n = "_KEYCLEAR" +id.subfunc = 2 +id.args = 1 +id.arg = MKL$(LONGTYPE - ISPOINTER) +id.specialformat = "[?]" +id.callname = "sub__keyclear" regid \ No newline at end of file