From f2dc0091a80019e82591f216df26e5b3541e8f58 Mon Sep 17 00:00:00 2001 From: drmortalwombat <90205530+drmortalwombat@users.noreply.github.com> Date: Fri, 19 Nov 2021 08:13:36 +0100 Subject: [PATCH] At get to charwin --- include/c64/charwin.c | 33 +++++++++++++++++++++++++++++++++ include/c64/charwin.h | 11 +++++++++++ 2 files changed, 44 insertions(+) diff --git a/include/c64/charwin.c b/include/c64/charwin.c index f40d749..22a3b1b 100644 --- a/include/c64/charwin.c +++ b/include/c64/charwin.c @@ -303,6 +303,39 @@ char cwin_putat_string(CharWin * win, char x, char y, const char * str, char col #pragma native(cwin_putat_string) + +char cwin_getat_char(CharWin * win, char x, char y) +{ + char * sp = win->sp + 40 * y + x; + + char c = *sp; + + if (c & 0x40) + c ^= 0xc0; + if (!(c & 0x20)) + c |= 0x40; + + return c; +} + +void cwin_getat_chars(CharWin * win, char x, char y, char * chars, char num) +{ + char * sp = win->sp + 40 * y + x; + + for(char i=0; iwy - 1, rx = win->wx - 1; diff --git a/include/c64/charwin.h b/include/c64/charwin.h index 02f1446..b7e0572 100644 --- a/include/c64/charwin.h +++ b/include/c64/charwin.h @@ -74,6 +74,17 @@ void cwin_putat_chars(CharWin * win, char x, char y, const char * chars, char nu // char cwin_putat_string(CharWin * win, char x, char y, const char * str, char color); + +// Get a single char at the given window location +// +char cwin_getat_char(CharWin * win, char x, char y); + +// Get an array of chars at the given window location +// +void cwin_getat_chars(CharWin * win, char x, char y, char * chars, char num); + + + // Insert one space character at the cursor position // void cwin_insert_char(CharWin * win);