This is a tiny OS for IchigoJam board like a Unix. It has a shell, vi and FORTH engine named 'ts'. See this article.
cls 15 BEGIN DUP 5 lc 0 . 32 rnd 23 lc 1 . 0 scroll DUP 5 scr 0 = WHILE 30 sleep inkey DUP 28 = IF SWAP 1 - SWAP THEN DUP 29 = IF SWAP 1 + SWAP THEN DROP REPEAT
BEGIN 33 out 1000 sleep 18 out 1000 sleep REPEAT
[[ ver 0.3.0 ]]
* BEGIN / WHILE / REPEAT
* IF / ELSE / THEN
* DUP, DROP, SWAP, OVER, ROT
* +, -, *, /, =, <, >
* ., .s
* Words for the board:
led ( onoff -- ) \ on/off the LED. [onoff:0,1]
btn ( -- onoff ) \ get the Button status. [onoff:0,1]
in ( port -- onoff ) \ get from the GPIO-IN ports. [port:1,2,3,4]
ana ( port -- val ) \ get from the GPIO-Analog input. [port:0,2]
out ( bits -- ) \ set the GPIO-OUT ports. [bits:000000-111111](specify the 'bits' by decimal)
pwm ( port, usec -- ) \ set the PWM hi-time usec.
pwmt ( usec -- ) \ set the PWM period usec.
cls ( -- ) \ clear the screen
lc ( x y -- ) \ locate the screen cursor.
scr ( x y -- char ) \ get the screen charactor.
sleep ( msec -- ) \ sleep msec.
dsleep ( msec -- ) \ deep sleep msec. [msec:1000-]
inkey ( -- key ) \ get key from the keyboard.
rnd ( max -- val ) \ get a random number.
tick ( -- msec ) \ get the timer count from system booted.
scroll ( dir -- ) \ scroll the screen. [dir:0,1,2,3]
rscroll ( dir -- ) \ scroll the screen rotately. [dir:0,1,2,3]
video ( onoff -- ) \ set screen mode. [onoff:0,1,2,3]
input ( -- val ) \ get a number from user input.
bps ( rate -- ) \ set the uart serial bps. (default:115,200)
uartw ( char -- ) \ send 1 byte to uart.
uartr ( -- char ) \ receive 1 byte from urat.
exit ( code -- ) \ exit from this process.
envw ( val -- ) \ set OS-env number.
envr ( -- val ) \ get OS-env number.
(** These Words specification may change in the future. **)
[[ ver 0.4.0 ]]
*[add] '\' comment
*[add] 'VARIABLE', '!', '@'
*[add] ':', ';' with '(',')'
*[mod] minus literal number supported
ichigoforth.dj.0.4.0.us.hex (in facebook group)
See here.
See IchigoLatte JavaScript Reference for OS and lash usage.
See here to use without NTSC tv and PS/2 keyboard.
See here.