void buildTestInterface(FICL_SYSTEM *pSys) { ficlBuild(pSys, "break", ficlBreak, FW_DEFAULT); ficlBuild(pSys, "clock", ficlClock, FW_DEFAULT); ficlBuild(pSys, "cd", ficlChDir, FW_DEFAULT); ficlBuild(pSys, "execxt", execxt, FW_DEFAULT); ficlBuild(pSys, "load", ficlLoad, FW_DEFAULT); ficlBuild(pSys, "pwd", ficlGetCWD, FW_DEFAULT); ficlBuild(pSys, "system", ficlSystem, FW_DEFAULT); ficlBuild(pSys, "spewhash", spewHash, FW_DEFAULT); ficlBuild(pSys, "clocks/sec", clocksPerSec, FW_DEFAULT); return; }
/* * Initialise the Forth interpreter, create all our commands as words. */ void bf_init(void) { struct bootblk_command **cmdp; char create_buf[41]; /* 31 characters-long builtins */ int fd; ficlInitSystem(8000); /* Default dictionary ~4000 cells */ bf_vm = ficlNewVM(); /* Builtin constructor word */ ficlExec(bf_vm, BUILTIN_CONSTRUCTOR, -1); /* make all commands appear as Forth words */ SET_FOREACH(cmdp, Xcommand_set) { ficlBuild((*cmdp)->c_name, bf_command, FW_DEFAULT); sprintf(create_buf, "builtin: %s", (*cmdp)->c_name); ficlExec(bf_vm, create_buf, -1); }
/* * Initialise the Forth interpreter, create all our commands as words. */ void bf_init(void) { struct bootblk_command **cmdp; char create_buf[41]; /* 31 characters-long builtins */ int fd; bf_sys = ficlInitSystem(10000); /* Default dictionary ~4000 cells */ bf_vm = ficlNewVM(bf_sys); /* Put all private definitions in a "builtins" vocabulary */ ficlExec(bf_vm, "vocabulary builtins also builtins definitions"); /* Builtin constructor word */ ficlExec(bf_vm, BUILTIN_CONSTRUCTOR); /* make all commands appear as Forth words */ SET_FOREACH(cmdp, Xcommand_set) { ficlBuild(bf_sys, (char *)(*cmdp)->c_name, bf_command, FW_DEFAULT); ficlExec(bf_vm, "forth definitions builtins"); sprintf(create_buf, "builtin: %s", (*cmdp)->c_name); ficlExec(bf_vm, create_buf); ficlExec(bf_vm, "builtins definitions"); }