\ 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