\ 4tH Demo application - (c) 1995,2003 HanSoft & Partners
\ Portions by Leo Brodie
[needs lib/enter.4th]
: sextal 6 base ! ;
: :00 # sextal # decimal 58 hold ;
: sec <# :00 :00 #S #> type space ;
: to_secs [char] : parse-word number * ;
: margin 25 spaces ;
: EnterTime
cr ." Enter time as 'hh:mm:ss': " refill drop
3600 to_secs
60 to_secs
1 to_secs + +
;
: Show sp@ 2 < if exit else swap dup cr margin rot execute cr then ;
: Seconds ." Seconds: " . ;
: Times ." Time: " sec ;
: EnterSecs cr ." Enter number of seconds: " enter ;
: AddEntries sp@ 2 < if exit else + then ;
: ShowSecs ' Seconds Show ;
: ShowTime ' Times Show ;
create jumptable
' EnterTime , ' EnterSecs ,
' AddEntries , ' ShowSecs ,
' ShowTime ,
: menu ( -- n )
margin 5 spaces ." ** MENU **" cr cr
margin ." 1) Enter time" cr
margin ." 2) Enter seconds" cr
margin ." 3) Add previous two entries" cr
margin ." 4) Show number of seconds" cr
margin ." 5) Show time" cr
margin ." 6) Exit" cr cr
margin ." Your choice: "
enter
dup 0 > if
dup 6 < if
jumptable 1- + @c execute 0
then
then
cr cr
;
: do_menu begin menu 6 = until ;
do_menu
|