From d92a6115b918b335ebed80ce7c411fe7937c93b3 Mon Sep 17 00:00:00 2001 From: "Kartik K. Agaram" Date: Thu, 12 Mar 2015 12:36:22 -0700 Subject: 889 - ah, fixed that final error --- trace.arc.t | 32 ++++++++++++++++++++++++++++++++ trace.mu | 4 ++++ 2 files changed, 36 insertions(+) diff --git a/trace.arc.t b/trace.arc.t index fe4b2549..6dcebe0a 100644 --- a/trace.arc.t +++ b/trace.arc.t @@ -1581,9 +1581,11 @@ run: main 5: l") "+ main/ 2 : g hi " "+ main/ 3 : j ")) (prn "F - process-key expands trace index on a page with only subindex lines")) + (run-code main31 (default-space:space-address <- new space:literal 30:literal/capacity) (0:space-address/names:browser-state <- copy 3:space-address/raw/browser-state) + ; reinitialize (first-index-on-page:integer/space:1 <- copy 0:literal) (first-subindex-on-page:integer/space:1 <- copy -2:literal) (last-index-on-page:integer/space:1 <- copy 2:literal) @@ -1623,5 +1625,35 @@ run: main 5: l") " ")) (prn "F - process-key expands final index of trace at bottom of page")) +(run-code main32 + (default-space:space-address <- new space:literal 30:literal/capacity) + (0:space-address/names:browser-state <- copy 3:space-address/raw/browser-state) + ; reinitialize + (first-index-on-page:integer/space:1 <- copy 0:literal) + (first-subindex-on-page:integer/space:1 <- copy -2:literal) + (last-index-on-page:integer/space:1 <- copy 2:literal) + (last-subindex-on-page:integer/space:1 <- copy -2:literal) + (expanded-index:integer/space:1 <- copy -1:literal) + (expanded-children:integer/space:1 <- copy -1:literal) + (to-top 0:space-address/browser-state 2:terminal-address/raw) + (print-page 0:space-address/browser-state 2:terminal-address/raw) +;? (replace-character 2:terminal-address/raw ((#\* literal))) ;? 1 + (s:string-address <- new "kk\nJjj") + (k:keyboard-address <- init-keyboard s:string-address) + (process-key 3:space-address/raw/browser-state k:keyboard-address 2:terminal-address/raw) + (process-key 3:space-address/raw/browser-state k:keyboard-address 2:terminal-address/raw) + (process-key 3:space-address/raw/browser-state k:keyboard-address 2:terminal-address/raw) + (process-key 3:space-address/raw/browser-state k:keyboard-address 2:terminal-address/raw) + (process-key 3:space-address/raw/browser-state k:keyboard-address 2:terminal-address/raw) + (process-key 3:space-address/raw/browser-state k:keyboard-address 2:terminal-address/raw) + (5:integer-address/raw <- get-address 2:terminal-address/raw/deref cursor-row:offset) + ) +(each routine completed-routines* + (awhen rep.routine!error + (prn "error - " it))) +;? (prn (memory* memory*.5)) ;? 1 +(when (~is 3 (memory* memory*.5)) + (prn "F - key movement stays within screen bounds, even when no next trace on page")) + (reset2) ;? (print-times) ;? 3 diff --git a/trace.mu b/trace.mu index dd46c664..89e0d17c 100644 --- a/trace.mu +++ b/trace.mu @@ -301,6 +301,8 @@ { begin (done?:boolean <- greater-or-equal i:integer n:integer) (break-if done?:boolean) + (at-bottom?:boolean <- greater-or-equal cursor-row:integer/space:1 printed-height:integer/space:1) + (break-if at-bottom?:boolean) ;? ($print (("down: incrementing\n" literal))) ;? 1 (cursor-row:integer/space:1 <- add cursor-row:integer/space:1 1:literal) (cursor-down screen:terminal-address) @@ -335,6 +337,8 @@ { begin (done?:boolean <- greater-or-equal i:integer n:integer) (break-if done?:boolean) + (at-top?:boolean <- lesser-or-equal cursor-row:integer/space:1 0:literal) + (break-if at-top?:boolean) (cursor-row:integer/space:1 <- subtract cursor-row:integer/space:1 1:literal) (cursor-up screen:terminal-address) (i:integer <- add i:integer 1:literal) -- cgit 1.4.1-2-gfad0