about summary refs log tree commit diff stats
path: root/trace.mu
diff options
context:
space:
mode:
Diffstat (limited to 'trace.mu')
-rw-r--r--trace.mu26
1 files changed, 12 insertions, 14 deletions
diff --git a/trace.mu b/trace.mu
index d0302354..bd8e9ec6 100644
--- a/trace.mu
+++ b/trace.mu
@@ -225,11 +225,9 @@
 (function screen-state [
   (default-space:space-address <- new space:literal 30:literal/capacity)
   (traces:instruction-trace-address-array-address <- next-input)
-  ; app-specific coordinates depending on where the cursor was when the trace
-  ; browser was started
-  (cursor-row:integer <- copy 0:literal)
-  (max-rows:integer <- copy 0:literal)  ; area of the screen we're responsible for
-  (height:integer <- copy 0:literal)  ; part of it that currently has text
+  (app-height:integer <- copy 0:literal)  ; area of the screen we're responsible for; can't be larger than screen-height
+  (printed-height:integer <- copy 0:literal)  ; part of screen that currently has text; can't be larger than app-height
+  (cursor-row:integer <- copy 0:literal)  ; position of cursor on screen; can't be larger than printed-height + 1
   (expanded-index:integer <- copy -1:literal)
   (reply default-space:space-address)
 ])
@@ -259,7 +257,7 @@
   }
   ; if not at bottom, move cursor down
   { begin
-    (at-bottom?:boolean <- greater-or-equal cursor-row:integer/space:1 height:integer/space:1)
+    (at-bottom?:boolean <- greater-or-equal cursor-row:integer/space:1 printed-height:integer/space:1)
     (break-if at-bottom?:boolean)
     (cursor-row:integer/space:1 <- add cursor-row:integer/space:1 1:literal)
     (cursor-down screen:terminal-address)
@@ -304,7 +302,7 @@
   (0:space-address/names:screen-state <- next-input)
   (screen:terminal-address <- next-input)
   { begin
-    (at-bottom?:boolean <- greater-or-equal cursor-row:integer/space:1 height:integer/space:1)
+    (at-bottom?:boolean <- greater-or-equal cursor-row:integer/space:1 printed-height:integer/space:1)
     (break-if at-bottom?:boolean)
     (down 0:space-address screen:terminal-address)
     (loop)
@@ -335,14 +333,14 @@
   (0:space-address/names:screen-state <- next-input)
   (screen:terminal-address <- next-input)
   { begin
-    (at-bottom?:boolean <- greater-or-equal cursor-row:integer/space:1 height:integer/space:1)
+    (at-bottom?:boolean <- greater-or-equal cursor-row:integer/space:1 printed-height:integer/space:1)
     (break-unless at-bottom?:boolean)
-    (height:integer/space:1 <- add height:integer/space:1 1:literal)
-    ; update max-rows if necessary
+    (printed-height:integer/space:1 <- add printed-height:integer/space:1 1:literal)
+    ; update app-height if necessary
     { begin
-      (grow-max?:boolean <- greater-than height:integer/space:1 max-rows:integer/space:1)
+      (grow-max?:boolean <- greater-than printed-height:integer/space:1 app-height:integer/space:1)
       (break-unless grow-max?:boolean)
-      (max-rows:integer/space:1 <- copy height:integer/space:1)
+      (app-height:integer/space:1 <- copy printed-height:integer/space:1)
     }
   }
   (cursor-row:integer/space:1 <- add cursor-row:integer/space:1 1:literal)
@@ -375,9 +373,9 @@
   ; empty any remaining lines
 ;?   ($print i:integer) ;? 1
 ;?   ($print ((#\space literal))) ;? 1
-;?   ($print max-rows:integer/space:1) ;? 1
+;?   ($print app-height:integer/space:1) ;? 1
   { begin
-    (done?:boolean <- greater-or-equal i:integer max-rows:integer/space:1)
+    (done?:boolean <- greater-or-equal i:integer app-height:integer/space:1)
     (break-if done?:boolean)
     (clear-line screen:terminal-address)
     (down 0:space-address/screen-state screen:terminal-address)