From: Adam Shamblin Date: Mon, 16 May 2022 03:01:36 +0000 (-0600) Subject: Start on gpio X-Git-Url: https://git.vexinglabs.com/?a=commitdiff_plain;h=dcb82d8fcbc0a2b4cb5ec0d007dfd43dfd67e967;p=forthdeck.git Start on gpio --- diff --git a/gpio.fs b/gpio.fs new file mode 100644 index 0000000..e4fdd2c --- /dev/null +++ b/gpio.fs @@ -0,0 +1,13 @@ +\ Functions for managing GPIO pins + +\ User bank IO registers +$40014000 constant IO_BANK0_BASE + +: pins ( -- ) + $30 $00 DO I u. 4 +LOOP ; + +: pin-status ( -- ) + cr + 30 0 DO + I u. + I 8 * IO_BANK0_BASE + @ hex. cr LOOP ; diff --git a/terminal.fs b/terminal.fs index 6275df4..34a5e2f 100644 --- a/terminal.fs +++ b/terminal.fs @@ -1,37 +1,47 @@ +\ Emit escape codes : ESC[ ( -- ) 27 emit 91 emit ; -: erase ( n -- ) - 0 ?DO $08 emit LOOP ; - -: countdown ( n -- ) - cr ." Counting... " - 0 ?DO I . 2 ERASE LOOP ; +\ Movement +: [home] ( -- ) ESC[ ." H" ; +: at-xy ( column row -- ) 1+ swap 1+ swap ESC[ u. ." ;" u. ." H" ; \ Foreground colors -: [black] ( -- ) ESC[ ." 30m " ; -: [red] ( -- ) ESC[ ." 31m " ; -: [green] ( -- ) ESC[ ." 32m " ; -: [yellow] ( -- ) ESC[ ." 33m " ; -: [blue] ( -- ) ESC[ ." 34m " ; -: [magenta] ( -- ) ESC[ ." 35m " ; -: [cyan] ( -- ) ESC[ ." 36m " ; +: [color] ( n -- ) ESC[ u. ." m" ; +: [black] ( -- ) 30 [color] ; +: [red] ( -- ) 31 [color] ; +: [green] ( -- ) 32 [color] ; +: [yellow] ( -- ) 33 [color] ; +: [blue] ( -- ) 34 [color] ; +: [magenta] ( -- ) 35 [color] ; +: [cyan] ( -- ) 36 [color] ; \ Background colors -: [black/bg] ( -- ) ESC[ ." 40m " ; -: [red/bg] ( -- ) ESC[ ." 41m " ; -: [green/bg] ( -- ) ESC[ ." 42m " ; -: [yellow/bg] ( -- ) ESC[ ." 43m " ; -: [blue/bg] ( -- ) ESC[ ." 44m " ; -: [magenta/bg] ( -- ) ESC[ ." 45m " ; -: [cyan/bg] ( -- ) ESC[ ." 46m " ; +: [black/bg] ( -- ) ESC[ ." 40m" ; +: [red/bg] ( -- ) ESC[ ." 41m" ; +: [green/bg] ( -- ) ESC[ ." 42m" ; +: [yellow/bg] ( -- ) ESC[ ." 43m" ; +: [blue/bg] ( -- ) ESC[ ." 44m" ; +: [magenta/bg] ( -- ) ESC[ ." 45m" ; +: [cyan/bg] ( -- ) ESC[ ." 46m" ; \ Attributes -: [bold] ( -- ) ESC[ ." 1m " ; -: [dim] ( -- ) ESC[ ." 2m " ; -: [smso] ( -- ) ESC[ ." 3m " ; -: [underline] ( -- ) ESC[ ." 4m " ; -: [blink] ( -- ) ESC[ ." 5m " ; -: [reverse] ( -- ) ESC[ ." 7m " ; +: [bold] ( -- ) ESC[ ." 1m" ; +: [dim] ( -- ) ESC[ ." 2m" ; +: [smso] ( -- ) ESC[ ." 3m" ; +: [underline] ( -- ) ESC[ ." 4m" ; +: [blink] ( -- ) ESC[ ." 5m" ; +: [reverse] ( -- ) ESC[ ." 7m" ; \ Reset to default colors -: [reset] ( -- ) ESC[ ." 0m " ; +: [reset] ( -- ) ESC[ ." 0m" ; + +: rainbow ( -- ) + [red] ." r" + [yellow] ." a" + [green] ." i" + [blue] ." n" + [cyan] ." b" + [magenta] ." o" + [red] ." w" + [reset] ; +