about summary refs log tree commit diff stats
path: root/forth/pomo.fs
diff options
context:
space:
mode:
authorelioat <elioat@tilde.institute>2022-11-20 22:10:36 -0500
committerelioat <elioat@tilde.institute>2022-11-20 22:10:36 -0500
commit7fb19d2655a47f6767ac5b46467110976f41d493 (patch)
treece15994343b1b5aad8ce2fe31e2ab67d8a58b1f7 /forth/pomo.fs
parent466fd30cc33624d5bc975ec1b416fbaffb9f08bd (diff)
downloadtour-7fb19d2655a47f6767ac5b46467110976f41d493.tar.gz
*
Diffstat (limited to 'forth/pomo.fs')
-rw-r--r--forth/pomo.fs44
1 files changed, 44 insertions, 0 deletions
diff --git a/forth/pomo.fs b/forth/pomo.fs
new file mode 100644
index 0000000..aaed3f7
--- /dev/null
+++ b/forth/pomo.fs
@@ -0,0 +1,44 @@
+( POMO POMO POMO )
+
+VARIABLE POMO-TIME
+1500000 POMO-TIME !
+
+VARIABLE REST-TIME
+600000 REST-TIME !
+
+( TODO: Consider using VALUE instead of VARIABLE )
+
+: 1SEC  1000  MS ;
+: 30SEC 30000 MS ;
+: 60SEC 60000 MS ;
+
+: PRETTY-TIME
+	1000 / 
+	60 / 
+; 
+
+( DECREMENTS POMO-TIME if it is greater than 0 )
+: CHECK-POMO-TIME? 
+	0> IF
+		POMO-TIME @ 1000 - POMO-TIME ! ." 🍅" SPACE POMO-TIME @ PRETTY-TIME . ." minutes" CR
+		." ....." SPACE POMO-TIME ? CR
+	ELSE 
+		REST-TIME @ 1000 - REST-TIME ! ." 😴" SPACE REST-TIME @ PRETTY-TIME . ." minutes" CR
+		." ....." SPACE REST-TIME ? CR
+	THEN
+;
+
+( POMO-LOOP exits when POMO-TIME reaches 0 )
+( FIXME: reset POMO-TIME and REST-TIME once they've reached 0 )
+: POMO-LOOP
+	BEGIN
+		PAGE
+      POMO-TIME @ CHECK-POMO-TIME? 1SEC 
+		PAGE
+		POMO-TIME @ REST-TIME @ + 0=
+	UNTIL
+;
+
+POMO-LOOP
+
+BYE