aboutsummaryrefslogtreecommitdiffstats
path: root/msp430/alee-msp430.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'msp430/alee-msp430.cpp')
-rw-r--r--msp430/alee-msp430.cpp15
1 files changed, 11 insertions, 4 deletions
diff --git a/msp430/alee-msp430.cpp b/msp430/alee-msp430.cpp
index 48a806e..c270612 100644
--- a/msp430/alee-msp430.cpp
+++ b/msp430/alee-msp430.cpp
@@ -42,13 +42,18 @@ static void initUART();
static void Software_Trim();
#define MCLK_FREQ_MHZ (8) // MCLK = 8MHz
-#define ALEE_RODICTSIZE (7000)
+#define ALEE_RODICTSIZE (9200)
__attribute__((section(".lodict")))
#include "core.fth.h"
static bool exitLpm;
static Addr isr_list[24] = {};
-static SplitMemDictRW<ALEE_RODICTSIZE, 32767> dict (alee_dat, 0x10000);
+
+using DictType = SplitMemDictRW<ALEE_RODICTSIZE, 32767>;
+
+alignas(DictType)
+static unsigned char dictbuf[sizeof(DictType)];
+static auto dict = reinterpret_cast<DictType *>(dictbuf);
int main()
{
@@ -59,7 +64,9 @@ int main()
SYSCFG0 = FRWPPW;
(void)alee_dat_len;
- State state (dict, readchar);
+ dict->lodict = alee_dat;
+ dict->hidict = 0x10000;
+ State state (*dict, readchar);
Parser::customParse = findword;
serputs("alee forth\n\r");
@@ -371,7 +378,7 @@ bool alee_isr_handle(unsigned index)
const Addr isr = isr_list[index];
if (isr != 0) {
- State isrstate (dict, readchar);
+ State isrstate (*dict, readchar);
exitLpm = false;
isrstate.execute(isr);
return exitLpm;