Go to the documentation of this file.
6 #ifndef __SRC_N4_CORE_H
7 #define __SRC_N4_CORE_H
17 #define show(s) { io->print(F(s)); io->flush(); }
19 #define show(s) log(s)
21 #define ENC8(p, c) (*(U8*)(p)++=(U8)(c))
36 #define ENCA(p, a) { IU x=(IU)(a); ENC8(p,(x)>>8); ENC8(p,(x)&0xff); }
37 #define GETA(p) (((IU)(*(U8*)(p))<<8) + *((U8*)(p)+1))
38 #define STORE(p, v) { DU x=(DU)(v); ENC8(p,(x)>>8); ENC8(p,(x)&0xff); }
39 #define FETCH(p) (((DU)(*(U8*)(p))<<8) + *((U8*)(p)+1))
113 #endif //__SRC_N4_CORE_H
N4Task vm
VM context.
Definition: n4_core.cpp:17
U16 a_in(U16 p)
fetch from analog port
Definition: n4_core.cpp:100
U8 scan(U8 *tkn, const char *lst, IU *id)
Definition: n4_core.cpp:284
constexpr U16 N4_DIC_SZ
Definition: n4_core.h:12
constexpr U16 N4_STK_SZ
Definition: n4_core.h:13
char key()
Arduino's Serial.getchar(), yield to user tasks when waiting.
Definition: n4_core.cpp:66
void clear_tib()
reset input buffer
Definition: n4_core.cpp:173
constexpr U16 N4_TIB_SZ
Definition: n4_core.h:14
void d_str(U8 *p)
handle dot string (byte-stream leading with length)
Definition: n4_core.cpp:114
U8 number(U8 *str, DU *num)
Definition: n4_core.cpp:149
U8 * get_token(U8 rst)
get a token from console input
Definition: n4_core.cpp:247
U8 trc
tracing control flag
Definition: n4_core.cpp:22
void set_hex(U8 f)
enable/disable hex numeric radix
void set_io(Stream *s)
initialize or redirect IO stream
U16 d_in(U16 p)
fetch from GPIO port
Definition: n4_core.cpp:82
void d_out(U16 p, U16 v)
send output to GPIO ports
Definition: n4_core.cpp:83
void d_mem(U8 *base, U8 *p0, IU sz, U8 delim)
Definition: n4_core.cpp:121
void d_chr(char c)
print a char to console
Definition: n4_core.cpp:71
DU * sp
top of data stack
Definition: n4_core.h:46
void mstat()
display MMU statistics
Definition: n4_core.cpp:45
Definition: n4_core.cpp:12
S16 DU
16-bit data unit (CELL)
Definition: n4.h:76
U8 * dic
base of dictionary
Definition: n4_core.cpp:16
void d_u8(U8 c)
print a 8-bit hex number
Definition: n4_core.cpp:116
void d_adr(IU a)
print a 12-bit address
Definition: n4_core.cpp:78
void d_num(DU n)
sent a number literal to console
Definition: n4_core.cpp:80
U8 ok()
check whether input buffer is empty
Definition: n4_core.cpp:219
uint16_t U16
16-bit unsigned integer, for return stack, and pointers
Definition: n4.h:66
void d_pin(U16 p, U16 v)
set pin a given pinMode (INPUT, OUTPUT)
Definition: n4_core.cpp:81
Stream * io
default to Arduino Serial Monitor
Definition: n4_core.cpp:21
char uc(char c)
Definition: n4_core.cpp:39
void init_mem()
initialize MMU
Definition: n4_core.cpp:30
void a_out(U16 p, U16 v)
send output to GPIO ports
Definition: n4_core.cpp:101
void d_nib(U8 n)
print a nibble
Definition: n4_core.cpp:115
uint8_t U8
8-bit unsigned integer, for char and short int
Definition: n4.h:65
IU * rp
base of return stack
Definition: n4_core.h:45
void d_ptr(U8 *p)
print a pointer
Definition: n4_core.cpp:79
void d_name(U8 *p)
print 3 characters name
Definition: n4_core.cpp:133
void set_ucase(U8 uc)
set case sensitiveness
nanoForth main controller
U16 IU
16-bit instruction unit (ADDR)
Definition: n4.h:75
void set_pre(const char *code)
set embedded Forth code
Definition: n4_core.cpp:35