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);