From 16061947d4376b41e596d87f97ec53ec29d17644 Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Sat, 6 Jan 2018 17:29:10 -0800 Subject: altos/scheme: Add ports. Split scheme code up. And lots of other changes, including freeing unreferenced atoms. Signed-off-by: Keith Packard --- src/lambdakey-v1.0/ao_scheme_os.h | 2 ++ 1 file changed, 2 insertions(+) (limited to 'src/lambdakey-v1.0/ao_scheme_os.h') diff --git a/src/lambdakey-v1.0/ao_scheme_os.h b/src/lambdakey-v1.0/ao_scheme_os.h index b3080f31..5641b476 100644 --- a/src/lambdakey-v1.0/ao_scheme_os.h +++ b/src/lambdakey-v1.0/ao_scheme_os.h @@ -56,11 +56,13 @@ ao_scheme_abort(void) ao_panic(1); } +#ifdef LEDS_AVAILABLE static inline void ao_scheme_os_led(int led) { ao_led_set(led); } +#endif #define AO_SCHEME_JIFFIES_PER_SECOND AO_HERTZ -- cgit v1.2.3 From b446d9657cad0ff45f6f65c774d82cb9f2f65088 Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Sat, 6 Jan 2018 18:11:19 -0800 Subject: altos/lambdakey-v1.0: Switch back to command buffered input Instead of just reading from stdin with no echo or editing. Signed-off-by: Keith Packard --- src/lambdakey-v1.0/ao_lambdakey.c | 2 +- src/lambdakey-v1.0/ao_scheme_os.h | 8 ++------ src/scheme/ao_scheme_read.c | 6 +++++- 3 files changed, 8 insertions(+), 8 deletions(-) (limited to 'src/lambdakey-v1.0/ao_scheme_os.h') diff --git a/src/lambdakey-v1.0/ao_lambdakey.c b/src/lambdakey-v1.0/ao_lambdakey.c index 2bd626f1..f1a2aa38 100644 --- a/src/lambdakey-v1.0/ao_lambdakey.c +++ b/src/lambdakey-v1.0/ao_lambdakey.c @@ -16,7 +16,7 @@ #include static void scheme_cmd() { - ao_scheme_read_eval_print(stdin, stdout, true); + ao_scheme_read_eval_print(stdin, stdout, false); } static const struct ao_cmds blink_cmds[] = { diff --git a/src/lambdakey-v1.0/ao_scheme_os.h b/src/lambdakey-v1.0/ao_scheme_os.h index 5641b476..6a2ab819 100644 --- a/src/lambdakey-v1.0/ao_scheme_os.h +++ b/src/lambdakey-v1.0/ao_scheme_os.h @@ -30,7 +30,7 @@ #endif static inline int -ao_scheme_getc() { +_ao_scheme_getc() { static uint8_t at_eol; int c; @@ -44,11 +44,7 @@ ao_scheme_getc() { return c; } -static inline void -ao_scheme_os_flush(void) -{ - flush(); -} +#define ao_scheme_getc(f) ({ (void) (f); _ao_scheme_getc(); }) static inline void ao_scheme_abort(void) diff --git a/src/scheme/ao_scheme_read.c b/src/scheme/ao_scheme_read.c index a26965f2..f9630d39 100644 --- a/src/scheme/ao_scheme_read.c +++ b/src/scheme/ao_scheme_read.c @@ -150,6 +150,10 @@ static const uint16_t lex_classes[128] = { static int lex_unget_c; +#ifndef ao_scheme_getc +#define ao_scheme_getc(f) getc(f) +#endif + static inline int lex_get(FILE *in) { @@ -158,7 +162,7 @@ lex_get(FILE *in) c = lex_unget_c; lex_unget_c = 0; } else { - c = getc(in); + c = ao_scheme_getc(in); } return c; } -- cgit v1.2.3 From f8a967959b2f5ca3486ab3422f30fe4ad4ba17a8 Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Sun, 7 Jan 2018 23:06:51 -0800 Subject: altos/lambdakey-v1.0: Add LED function back in We've made things smaller, so there's (barely) space for this now. Signed-off-by: Keith Packard --- src/lambdakey-v1.0/Makefile | 5 +++-- src/lambdakey-v1.0/ao_pins.h | 6 +++--- src/lambdakey-v1.0/ao_scheme_os.h | 2 +- 3 files changed, 7 insertions(+), 6 deletions(-) (limited to 'src/lambdakey-v1.0/ao_scheme_os.h') diff --git a/src/lambdakey-v1.0/Makefile b/src/lambdakey-v1.0/Makefile index cfa009bb..9d30c521 100644 --- a/src/lambdakey-v1.0/Makefile +++ b/src/lambdakey-v1.0/Makefile @@ -32,6 +32,7 @@ ALTOS_SRC = \ ao_interrupt.c \ ao_product.c \ ao_cmd.c \ + ao_led.c \ ao_notask.c \ ao_stdio.c \ ao_stdio_newlib.c \ @@ -72,8 +73,8 @@ $(OBJ): $(INC) ao_product.h: ao-make-product.5c ../Version $(call quiet,NICKLE,$<) $< -m altusmetrum.org -i $(IDPRODUCT) -p $(PRODUCT) -v $(VERSION) > $@ -ao_scheme_const.h: ao_scheme_make_const ao_scheme_basic_syntax.scheme ao_scheme_finish.scheme - $^ -o $@ -d GPIO,FLOAT,VECTOR,QUASI,BIGINT,POSIX,PORT,SAVE,UNDEF +ao_scheme_const.h: ao_scheme_make_const ao_scheme_basic_syntax.scheme + $^ -o $@ -d FLOAT,VECTOR,QUASI,BIGINT,POSIX,PORT,SAVE,UNDEF load: $(PROG) stm-load $(PROG) diff --git a/src/lambdakey-v1.0/ao_pins.h b/src/lambdakey-v1.0/ao_pins.h index f330213d..58a75080 100644 --- a/src/lambdakey-v1.0/ao_pins.h +++ b/src/lambdakey-v1.0/ao_pins.h @@ -22,15 +22,15 @@ #define fprintf(file, ...) ({ (void) (file); printf(__VA_ARGS__); }) #undef putc #define putc(c,file) ({ (void) (file); putchar(c); }) -#define fputs(s,file) ({ (void) (file); printf("%s", s); }) -#define puts(s) ({ printf("%s\n", s); }) +#define fputs(s,file) ({ (void) (file); ao_put_string(s); }) #undef getc #define getc(file) ({ (void) (file); getchar(); }) +#define fflush(file) ({ (void) (file); flush(); }) #define HAS_TASK 0 #define HAS_AO_DELAY 1 -#if 0 +#if 1 #define LED_PORT_ENABLE STM_RCC_AHBENR_IOPBEN #define LED_PORT (&stm_gpiob) #define LED_PIN_RED 4 diff --git a/src/lambdakey-v1.0/ao_scheme_os.h b/src/lambdakey-v1.0/ao_scheme_os.h index 6a2ab819..8af199c2 100644 --- a/src/lambdakey-v1.0/ao_scheme_os.h +++ b/src/lambdakey-v1.0/ao_scheme_os.h @@ -20,7 +20,7 @@ #include "ao.h" -#define AO_SCHEME_POOL 3584 +#define AO_SCHEME_POOL 3792 #define AO_SCHEME_TOKEN_MAX 64 #ifndef __BYTE_ORDER -- cgit v1.2.3