2007-09-20 18:09:08 -04:00
|
|
|
USING: sequences kernel math io ;
|
|
|
|
IN: lcd
|
|
|
|
|
2008-01-28 19:13:35 -05:00
|
|
|
: lcd-digit ( row digit -- str )
|
|
|
|
dup CHAR: : = [ drop 10 ] [ CHAR: 0 - ] if swap {
|
|
|
|
" _ _ _ _ _ _ _ _ "
|
|
|
|
" | | | _| _| |_| |_ |_ | |_| |_| * "
|
|
|
|
" |_| | |_ _| | _| |_| | |_| | * "
|
2007-09-20 18:09:08 -04:00
|
|
|
} nth >r 4 * dup 4 + r> subseq ;
|
|
|
|
|
2008-01-28 19:13:35 -05:00
|
|
|
: lcd-row ( num row -- string )
|
|
|
|
[ swap lcd-digit ] curry { } map-as concat ;
|
2007-09-20 18:09:08 -04:00
|
|
|
|
2008-01-28 19:13:35 -05:00
|
|
|
: lcd ( digit-str -- string )
|
|
|
|
3 [ lcd-row ] with map "\n" join ;
|
2007-09-20 18:09:08 -04:00
|
|
|
|
2008-01-28 19:13:35 -05:00
|
|
|
: lcd-demo ( -- ) "31337" lcd print ;
|
2007-09-20 18:09:08 -04:00
|
|
|
|
|
|
|
MAIN: lcd-demo
|