import lisp-programs, start working on picocalc editor

This commit is contained in:
2025-05-01 17:36:07 -07:00
parent 86411d214d
commit c69cb88e90
18 changed files with 1668 additions and 49 deletions

View File

@@ -519,50 +519,11 @@ fn_sd_list(object *args, object *env)
* Only works on the PicoCalc...
*/
#if defined(PLATFORM_PICOCALC)
char
getkey()
{
PCKeyboard::KeyEvent kevt;
char keypress;
#define KEYPAD_DIR_UP 3
#define KEYPAD_DIR_DOWN 15
#define KEYPAD_DIR_LEFT 1
#define KEYPAD_DIR_RIGHT 2
do {
kevt = pc_kbd.keyEvent();
if (kevt.state == PCKeyboard::StatePress) {
if (kevt.key == 6) {
continue;
}
keypress = kevt.key;
break;
}
} while (pc_kbd.keyCount() == 0);
do {
kevt = pc_kbd.keyEvent();
} while (kevt.state != PCKeyboard::StateRelease);
switch (keypress) {
case 177:
keypress = 27;
break;
default:
// do nothing
break;
}
return keypress;
}
object *
fn_get_key(object *args, object *env)
{
(void) args;
(void) env;
return character(getkey());
}
void
@@ -842,8 +803,7 @@ initPlatform()
void
initPlatform()
{
initTouch();
inittrackball();
}
#endif
@@ -875,7 +835,7 @@ const char stringsd_dir[] PROGMEM = "sd-list";
#endif
#if defined(PLATFORM_PICOCALC)
const char string_get_key[] PROGMEM = "get-key";
#elif defined(TDECK_PERI_POWERON)
const char string_gettouchpoints[] PROGMEM = "get-touch-points";
const char stringKeyboardGetKey[] PROGMEM = "keyboard-get-key";
@@ -955,8 +915,6 @@ const char docsd_rmdir[] PROGMEM = "(sd-remove-dir directory)\n"
// PicoCalc-specific doc strings
#if defined(PLATFORM_PICOCALC)
const char doc_get_key[] PROGMEM = "(get-key)\n"
"Waits for a keypress event, then returns the key.";
// T-Deck-specific doc strings
#elif defined(TDECK_PERI_POWERON)
@@ -994,7 +952,7 @@ const tbl_entry_t lookup_table2[] PROGMEM = {
#endif
#if defined(PLATFORM_PICOCALC)
{ string_get_key, fn_get_key, 0200, doc_get_key },
#elif defined(TDECK_PERI_POWERON)
{ string_gettouchpoints, fn_get_touch_points, 0200, doc_gettouchpoints },
{ stringKeyboardGetKey, fn_KeyboardGetKey, 0201, docKeyboardGetKey },