about summary refs log tree commit diff stats
path: root/chessboard.mu
diff options
context:
space:
mode:
Diffstat (limited to 'chessboard.mu')
-rw-r--r--chessboard.mu270
1 files changed, 135 insertions, 135 deletions
diff --git a/chessboard.mu b/chessboard.mu
index 93867fd4..e6e28611 100644
--- a/chessboard.mu
+++ b/chessboard.mu
@@ -68,20 +68,20 @@ recipe chessboard [
 
 recipe init-board [
   default-space:address:array:location <- new location:type, 30:literal
-  initial-position:address:array:integer <- next-ingredient
+  initial-position:address:array:number <- next-ingredient
   # assert(length(initial-position) == 64)
-  len:integer <- length initial-position:address:array:integer/deref
-  correct-length?:boolean <- equal len:integer, 64:literal
+  len:number <- length initial-position:address:array:number/deref
+  correct-length?:boolean <- equal len:number, 64:literal
   assert correct-length?:boolean, [chessboard had incorrect size]
   # board is an array of pointers to files; file is an array of characters
   board:address:array:address:array:character <- new location:type, 8:literal
-  col:integer <- copy 0:literal
+  col:number <- copy 0:literal
   {
-    done?:boolean <- equal col:integer, 8:literal
+    done?:boolean <- equal col:number, 8:literal
     break-if done?:boolean
-    file:address:address:array:character <- index-address board:address:array:address:array:character/deref, col:integer
-    file:address:address:array:character/deref <- init-file initial-position:address:array:integer, col:integer
-    col:integer <- add col:integer, 1:literal
+    file:address:address:array:character <- index-address board:address:array:address:array:character/deref, col:number
+    file:address:address:array:character/deref <- init-file initial-position:address:array:number, col:number
+    col:number <- add col:number, 1:literal
     loop
   }
   reply board:address:array:address:array:character
@@ -89,18 +89,18 @@ recipe init-board [
 
 recipe init-file [
   default-space:address:array:location <- new location:type, 30:literal
-  position:address:array:integer <- next-ingredient
-  index:integer <- next-ingredient
-  index:integer <- multiply index:integer, 8:literal
+  position:address:array:number <- next-ingredient
+  index:number <- next-ingredient
+  index:number <- multiply index:number, 8:literal
   result:address:array:character <- new character:type, 8:literal
-  row:integer <- copy 0:literal
+  row:number <- copy 0:literal
   {
-    done?:boolean <- equal row:integer, 8:literal
+    done?:boolean <- equal row:number, 8:literal
     break-if done?:boolean
-    dest:address:character <- index-address result:address:array:character/deref, row:integer
-    dest:address:character/deref <- index position:address:array:integer/deref, index:integer
-    row:integer <- add row:integer, 1:literal
-    index:integer <- add index:integer, 1:literal
+    dest:address:character <- index-address result:address:array:character/deref, row:number
+    dest:address:character/deref <- index position:address:array:number/deref, index:number
+    row:number <- add row:number, 1:literal
+    index:number <- add index:number, 1:literal
     loop
   }
   reply result:address:array:character
@@ -110,29 +110,29 @@ recipe print-board [
   default-space:address:array:location <- new location:type, 30:literal
   screen:address <- next-ingredient
   board:address:array:address:array:character <- next-ingredient
-  row:integer <- copy 7:literal  # start printing from the top of the board
+  row:number <- copy 7:literal  # start printing from the top of the board
   # print each row
   {
-    done?:boolean <- lesser-than row:integer, 0:literal
+    done?:boolean <- lesser-than row:number, 0:literal
     break-if done?:boolean
     # print rank number as a legend
-    rank:integer <- add row:integer, 1:literal
-    print-integer screen:address, rank:integer
+    rank:number <- add row:number, 1:literal
+    print-integer screen:address, rank:number
     s:address:array:character <- new [ | ]
     print-string screen:address, s:address:array:character
     # print each square in the row
-    col:integer <- copy 0:literal
+    col:number <- copy 0:literal
     {
-      done?:boolean <- equal col:integer, 8:literal
+      done?:boolean <- equal col:number, 8:literal
       break-if done?:boolean
-      f:address:array:character <- index board:address:array:address:array:character/deref, col:integer
-      s:character <- index f:address:array:character/deref, row:integer
+      f:address:array:character <- index board:address:array:address:array:character/deref, col:number
+      s:character <- index f:address:array:character/deref, row:number
       print-character screen:address, s:character
       print-character screen:address, 32:literal  # ' '
-      col:integer <- add col:integer, 1:literal
+      col:number <- add col:number, 1:literal
       loop
     }
-    row:integer <- subtract row:integer, 1:literal
+    row:number <- subtract row:number, 1:literal
     cursor-to-next-line screen:address
     loop
   }
@@ -158,7 +158,7 @@ recipe initial-position [
   #   B P _ _ _ _ p B
   #   N P _ _ _ _ p n
   #   R P _ _ _ _ p r
-  initial-position:address:array:integer <- init-array 82:literal/R, 80:literal/P, 32:literal/blank, 32:literal/blank, 32:literal/blank, 32:literal/blank, 112:literal/p, 114:literal/r, 78:literal/N, 80:literal/P, 32:literal/blank, 32:literal/blank, 32:literal/blank, 32:literal/blank, 112:literal/p, 110:literal/n, 66:literal/B, 80:literal/P, 32:literal/blank, 32:literal/blank, 32:literal/blank, 32:literal/blank, 112:literal/p, 98:literal/b, 81:literal/Q, 80:literal/P, 32:literal/blank, 32:literal/blank, 32:literal/blank, 32:literal/blank, 112:literal/p, 113:literal/q, 75:literal/K, 80:literal/P, 32:literal/blank, 32:literal/blank, 32:literal/blank, 32:literal/blank, 112:literal/p, 107:literal/k, 66:literal/B, 80:literal/P, 32:literal/blank, 32:literal/blank, 32:literal/blank, 32:literal/blank, 112:literal/p, 98:literal/b, 78:literal/N, 80:literal/P, 32:literal/blank, 32:literal/blank, 32:literal/blank, 32:literal/blank, 112:literal/p, 110:literal/n, 82:literal/R, 80:literal/P, 32:literal/blank, 32:literal/blank, 32:literal/blank, 32:literal/blank, 112:literal/p, 114:literal/r
+  initial-position:address:array:number <- init-array 82:literal/R, 80:literal/P, 32:literal/blank, 32:literal/blank, 32:literal/blank, 32:literal/blank, 112:literal/p, 114:literal/r, 78:literal/N, 80:literal/P, 32:literal/blank, 32:literal/blank, 32:literal/blank, 32:literal/blank, 112:literal/p, 110:literal/n, 66:literal/B, 80:literal/P, 32:literal/blank, 32:literal/blank, 32:literal/blank, 32:literal/blank, 112:literal/p, 98:literal/b, 81:literal/Q, 80:literal/P, 32:literal/blank, 32:literal/blank, 32:literal/blank, 32:literal/blank, 112:literal/p, 113:literal/q, 75:literal/K, 80:literal/P, 32:literal/blank, 32:literal/blank, 32:literal/blank, 32:literal/blank, 112:literal/p, 107:literal/k, 66:literal/B, 80:literal/P, 32:literal/blank, 32:literal/blank, 32:literal/blank, 32:literal/blank, 112:literal/p, 98:literal/b, 78:literal/N, 80:literal/P, 32:literal/blank, 32:literal/blank, 32:literal/blank, 32:literal/blank, 112:literal/p, 110:literal/n, 82:literal/R, 80:literal/P, 32:literal/blank, 32:literal/blank, 32:literal/blank, 32:literal/blank, 112:literal/p, 114:literal/r
 #?       82:literal/R, 80:literal/P, 32:literal/blank, 32:literal/blank, 32:literal/blank, 32:literal/blank, 112:literal/p, 114:literal/r,
 #?       78:literal/N, 80:literal/P, 32:literal/blank, 32:literal/blank, 32:literal/blank, 32:literal/blank, 112:literal/p, 110:literal/n,
 #?       66:literal/B, 80:literal/P, 32:literal/blank, 32:literal/blank, 32:literal/blank, 32:literal/blank, 112:literal/p, 98:literal/b, 
@@ -167,7 +167,7 @@ recipe initial-position [
 #?       66:literal/B, 80:literal/P, 32:literal/blank, 32:literal/blank, 32:literal/blank, 32:literal/blank, 112:literal/p, 98:literal/b,
 #?       78:literal/N, 80:literal/P, 32:literal/blank, 32:literal/blank, 32:literal/blank, 32:literal/blank, 112:literal/p, 110:literal/n,
 #?       82:literal/R, 80:literal/P, 32:literal/blank, 32:literal/blank, 32:literal/blank, 32:literal/blank, 112:literal/p, 114:literal/r
-  board:address:array:address:array:character <- init-board initial-position:address:array:integer
+  board:address:array:address:array:character <- init-board initial-position:address:array:number
   reply board:address:array:address:array:character
 ]
 
@@ -198,10 +198,10 @@ scenario printing-the-board [
 
 container move [
   # valid range: 0-7
-  from-file:integer
-  from-rank:integer
-  to-file:integer
-  to-rank:integer
+  from-file:number
+  from-rank:number
+  to-file:number
+  to-rank:number
 ]
 
 # result:address:move, quit?:boolean, error?:boolean <- read-move stdin:address:channel, screen:address
@@ -211,26 +211,26 @@ recipe read-move [
   stdin:address:channel <- next-ingredient
   screen:address <- next-ingredient
 #?   $print screen:address #? 1
-  from-file:integer, quit?:boolean, error?:boolean <- read-file stdin:address:channel, screen:address
+  from-file:number, quit?:boolean, error?:boolean <- read-file stdin:address:channel, screen:address
   reply-if quit?:boolean, 0:literal/dummy, quit?:boolean, error?:boolean
   reply-if error?:boolean, 0:literal/dummy, quit?:boolean, error?:boolean
 #?   return-to-console #? 1
   # construct the move object
   result:address:move <- new move:literal
-  x:address:integer <- get-address result:address:move/deref, from-file:offset
-  x:address:integer/deref <- copy from-file:integer
-  x:address:integer <- get-address result:address:move/deref, from-rank:offset
-  x:address:integer/deref, quit?:boolean, error?:boolean <- read-rank stdin:address:channel, screen:address
+  x:address:number <- get-address result:address:move/deref, from-file:offset
+  x:address:number/deref <- copy from-file:number
+  x:address:number <- get-address result:address:move/deref, from-rank:offset
+  x:address:number/deref, quit?:boolean, error?:boolean <- read-rank stdin:address:channel, screen:address
   reply-if quit?:boolean, 0:literal/dummy, quit?:boolean, error?:boolean
   reply-if error?:boolean, 0:literal/dummy, quit?:boolean, error?:boolean
   error?:boolean <- expect-from-channel stdin:address:channel, 45:literal/dash, screen:address
   reply-if error?:boolean, 0:literal/dummy, 0:literal/quit, error?:boolean
-  x:address:integer <- get-address result:address:move/deref, to-file:offset
-  x:address:integer/deref, quit?:boolean, error?:boolean <- read-file stdin:address:channel, screen:address
+  x:address:number <- get-address result:address:move/deref, to-file:offset
+  x:address:number/deref, quit?:boolean, error?:boolean <- read-file stdin:address:channel, screen:address
   reply-if quit?:boolean, 0:literal/dummy, quit?:boolean, error?:boolean
   reply-if error?:boolean, 0:literal/dummy, quit?:boolean, error?:boolean
-  x:address:integer <- get-address result:address:move/deref, to-rank:offset
-  x:address:integer/deref, quit?:boolean, error?:boolean <- read-rank stdin:address:channel, screen:address
+  x:address:number <- get-address result:address:move/deref, to-rank:offset
+  x:address:number/deref, quit?:boolean, error?:boolean <- read-rank stdin:address:channel, screen:address
   reply-if quit?:boolean, 0:literal/dummy, quit?:boolean, error?:boolean
   reply-if error?:boolean, 0:literal/dummy, quit?:boolean, error?:boolean
 #?   $exit #? 1
@@ -239,7 +239,7 @@ recipe read-move [
   reply result:address:move, quit?:boolean, error?:boolean
 ]
 
-# file:integer, quit:boolean, error:boolean <- read-file stdin:address:channel, screen:address
+# file:number, quit:boolean, error:boolean <- read-file stdin:address:channel, screen:address
 # valid values for file: 0-7
 recipe read-file [
   default-space:address:array:location <- new location:type, 30:literal
@@ -263,12 +263,12 @@ recipe read-file [
     print-string screen:address, error-message:address:array:character
     reply 0:literal/dummy, 0:literal/quit, 1:literal/error
   }
-  file:integer <- subtract c:character, 97:literal  # 'a'
-#?   $print file:integer, [ #? 1
+  file:number <- subtract c:character, 97:literal  # 'a'
+#?   $print file:number, [ #? 1
 #? ] #? 1
   # 'a' <= file <= 'h'
   {
-    above-min:boolean <- greater-or-equal file:integer, 0:literal
+    above-min:boolean <- greater-or-equal file:number, 0:literal
     break-if above-min:boolean
     error-message:address:array:character <- new [file too low: ]
     print-string screen:address, error-message:address:array:character
@@ -277,17 +277,17 @@ recipe read-file [
     reply 0:literal/dummy, 0:literal/quit, 1:literal/error
   }
   {
-    below-max:boolean <- lesser-than file:integer, 8:literal
+    below-max:boolean <- lesser-than file:number, 8:literal
     break-if below-max:boolean
     error-message:address:array:character <- new [file too high: ]
     print-string screen:address, error-message:address:array:character
     print-character screen:address, c:character
     reply 0:literal/dummy, 0:literal/quit, 1:literal/error
   }
-  reply file:integer, 0:literal/quit, 0:literal/error
+  reply file:number, 0:literal/quit, 0:literal/error
 ]
 
-# rank:integer <- read-rank stdin:address:channel, screen:address
+# rank:number <- read-rank stdin:address:channel, screen:address
 # valid values: 0-7, -1 (quit), -2 (error)
 recipe read-rank [
   default-space:address:array:location <- new location:type, 30:literal
@@ -311,12 +311,12 @@ recipe read-rank [
     print-string screen:address, error-message:address:array:character
     reply 0:literal/dummy, 0:literal/quit, 1:literal/error
   }
-  rank:integer <- subtract c:character, 49:literal  # '1'
-#?   $print rank:integer, [ #? 1
+  rank:number <- subtract c:character, 49:literal  # '1'
+#?   $print rank:number, [ #? 1
 #? ] #? 1
   # assert'1' <= rank <= '8'
   {
-    above-min:boolean <- greater-or-equal rank:integer, 0:literal
+    above-min:boolean <- greater-or-equal rank:number, 0:literal
     break-if above-min:boolean
     error-message:address:array:character <- new [rank too low: ]
     print-string screen:address, error-message:address:array:character
@@ -324,14 +324,14 @@ recipe read-rank [
     reply 0:literal/dummy, 0:literal/quit, 1:literal/error
   }
   {
-    below-max:boolean <- lesser-or-equal rank:integer, 7:literal
+    below-max:boolean <- lesser-or-equal rank:number, 7:literal
     break-if below-max:boolean
     error-message:address:array:character <- new [rank too high: ]
     print-string screen:address, error-message:address:array:character
     print-character screen:address, c:character
     reply 0:literal/dummy, 0:literal/quit, 1:literal/error
   }
-  reply rank:integer, 0:literal/quit, 0:literal/error
+  reply rank:number, 0:literal/quit, 0:literal/error
 ]
 
 # read a character from the given channel and check that it's what we expect
@@ -359,15 +359,15 @@ scenario read-move-blocking [
     1:address:channel <- init-channel 2:literal
 #?     $print [aaa channel address: ], 1:address:channel, [ #? 1
 #? ] #? 1
-    2:integer/routine <- start-running read-move:recipe, 1:address:channel, screen:address
+    2:number/routine <- start-running read-move:recipe, 1:address:channel, screen:address
     # 'read-move' is waiting for input
-    wait-for-routine 2:integer
+    wait-for-routine 2:number
 #?     $print [bbb channel address: ], 1:address:channel, [ #? 1
 #? ] #? 1
-    3:integer <- routine-state 2:integer/id
-#?     $print [I: routine ], 2:integer, [ state ], 3:integer [ #? 1
+    3:number <- routine-state 2:number/id
+#?     $print [I: routine ], 2:number, [ state ], 3:number [ #? 1
 #? ] #? 1
-    4:boolean/waiting? <- equal 3:integer/routine-state, 2:literal/waiting
+    4:boolean/waiting? <- equal 3:number/routine-state, 2:literal/waiting
     assert 4:boolean/waiting?, [
 F read-move-blocking: routine failed to pause after coming up (before any keys were pressed)]
     # press 'a'
@@ -375,68 +375,68 @@ F read-move-blocking: routine failed to pause after coming up (before any keys w
 #? ] #? 1
 #?     $exit #? 1
     1:address:channel <- write 1:address:channel, 97:literal  # 'a'
-    restart 2:integer/routine
+    restart 2:number/routine
     # 'read-move' still waiting for input
-    wait-for-routine 2:integer
-    3:integer <- routine-state 2:integer/id
-#?     $print [II: routine ], 2:integer, [ state ], 3:integer [ #? 1
+    wait-for-routine 2:number
+    3:number <- routine-state 2:number/id
+#?     $print [II: routine ], 2:number, [ state ], 3:number [ #? 1
 #? ] #? 1
-    4:boolean/waiting? <- equal 3:integer/routine-state, 2:literal/waiting
+    4:boolean/waiting? <- equal 3:number/routine-state, 2:literal/waiting
     assert 4:boolean/waiting?, [
 F read-move-blocking: routine failed to pause after rank 'a']
     # press '2'
     1:address:channel <- write 1:address:channel, 50:literal  # '2'
-    restart 2:integer/routine
+    restart 2:number/routine
     # 'read-move' still waiting for input
-    wait-for-routine 2:integer
-    3:integer <- routine-state 2:integer/id
-#?     $print [III: routine ], 2:integer, [ state ], 3:integer [ #? 1
+    wait-for-routine 2:number
+    3:number <- routine-state 2:number/id
+#?     $print [III: routine ], 2:number, [ state ], 3:number [ #? 1
 #? ] #? 1
-    4:boolean/waiting? <- equal 3:integer/routine-state, 2:literal/waiting
+    4:boolean/waiting? <- equal 3:number/routine-state, 2:literal/waiting
     assert 4:boolean/waiting?, [
 F read-move-blocking: routine failed to pause after file 'a2']
     # press '-'
     1:address:channel <- write 1:address:channel, 45:literal  # '-'
-    restart 2:integer/routine
+    restart 2:number/routine
     # 'read-move' still waiting for input
-    wait-for-routine 2:integer
-    3:integer <- routine-state 2:integer
-#?     $print [IV: routine ], 2:integer, [ state ], 3:integer [ #? 1
+    wait-for-routine 2:number
+    3:number <- routine-state 2:number
+#?     $print [IV: routine ], 2:number, [ state ], 3:number [ #? 1
 #? ] #? 1
-    4:boolean/waiting? <- equal 3:integer/routine-state, 2:literal/waiting
+    4:boolean/waiting? <- equal 3:number/routine-state, 2:literal/waiting
     assert 4:boolean/waiting?/routine-state, [
 F read-move-blocking: routine failed to pause after hyphen 'a2-']
     # press 'a'
     1:address:channel <- write 1:address:channel, 97:literal  # 'a'
-    restart 2:integer/routine
+    restart 2:number/routine
     # 'read-move' still waiting for input
-    wait-for-routine 2:integer
-    3:integer <- routine-state 2:integer
-#?     $print [V: routine ], 2:integer, [ state ], 3:integer [ #? 1
+    wait-for-routine 2:number
+    3:number <- routine-state 2:number
+#?     $print [V: routine ], 2:number, [ state ], 3:number [ #? 1
 #? ] #? 1
-    4:boolean/waiting? <- equal 3:integer/routine-state, 2:literal/waiting
+    4:boolean/waiting? <- equal 3:number/routine-state, 2:literal/waiting
     assert 4:boolean/waiting?/routine-state, [
 F read-move-blocking: routine failed to pause after rank 'a2-a']
     # press '4'
     1:address:channel <- write 1:address:channel, 52:literal  # '4'
-    restart 2:integer/routine
+    restart 2:number/routine
     # 'read-move' still waiting for input
-    wait-for-routine 2:integer
-    3:integer <- routine-state 2:integer
-#?     $print [VI: routine ], 2:integer, [ state ], 3:integer [ #? 1
+    wait-for-routine 2:number
+    3:number <- routine-state 2:number
+#?     $print [VI: routine ], 2:number, [ state ], 3:number [ #? 1
 #? ] #? 1
-    4:boolean/waiting? <- equal 3:integer/routine-state, 2:literal/waiting
+    4:boolean/waiting? <- equal 3:number/routine-state, 2:literal/waiting
     assert 4:boolean/waiting?, [
 F read-move-blocking: routine failed to pause after file 'a2-a4']
     # press 'newline'
     1:address:channel <- write 1:address:channel, 13:literal  # newline
-    restart 2:integer/routine
+    restart 2:number/routine
     # 'read-move' now completes
-    wait-for-routine 2:integer
-    3:integer <- routine-state 2:integer
-#?     $print [VII: routine ], 2:integer, [ state ], 3:integer [ #? 1
+    wait-for-routine 2:number
+    3:number <- routine-state 2:number
+#?     $print [VII: routine ], 2:number, [ state ], 3:number [ #? 1
 #? ] #? 1
-    4:boolean/completed? <- equal 3:integer/routine-state, 1:literal/completed
+    4:boolean/completed? <- equal 3:number/routine-state, 1:literal/completed
     assert 4:boolean/completed?, [
 F read-move-blocking: routine failed to terminate on newline]
     trace [test], [reached end]
@@ -450,20 +450,20 @@ scenario read-move-quit [
   assume-screen 20:literal/width, 2:literal/height
   run [
     1:address:channel <- init-channel 2:literal
-    2:integer/routine <- start-running read-move:recipe, 1:address:channel, screen:address
+    2:number/routine <- start-running read-move:recipe, 1:address:channel, screen:address
     # 'read-move' is waiting for input
-    wait-for-routine 2:integer
-    3:integer <- routine-state 2:integer/id
-    4:boolean/waiting? <- equal 3:integer/routine-state, 2:literal/waiting
+    wait-for-routine 2:number
+    3:number <- routine-state 2:number/id
+    4:boolean/waiting? <- equal 3:number/routine-state, 2:literal/waiting
     assert 4:boolean/waiting?, [
 F read-move-quit: routine failed to pause after coming up (before any keys were pressed)]
     # press 'q'
     1:address:channel <- write 1:address:channel, 113:literal  # 'q'
-    restart 2:integer/routine
+    restart 2:number/routine
     # 'read-move' completes
-    wait-for-routine 2:integer
-    3:integer <- routine-state 2:integer/id
-    4:boolean/completed? <- equal 3:integer/routine-state, 1:literal/completed
+    wait-for-routine 2:number
+    3:number <- routine-state 2:number/id
+    4:boolean/completed? <- equal 3:number/routine-state, 1:literal/completed
     assert 4:boolean/completed?, [
 F read-move-quit: routine failed to terminate on 'q']
     trace [test], [reached end]
@@ -477,16 +477,16 @@ scenario read-move-illegal-file [
   assume-screen 20:literal/width, 2:literal/height
   run [
     1:address:channel <- init-channel 2:literal
-    2:integer/routine <- start-running read-move:recipe, 1:address:channel, screen:address
+    2:number/routine <- start-running read-move:recipe, 1:address:channel, screen:address
     # 'read-move' is waiting for input
-    wait-for-routine 2:integer
-    3:integer <- routine-state 2:integer/id
-    4:boolean/waiting? <- equal 3:integer/routine-state, 2:literal/waiting
+    wait-for-routine 2:number
+    3:number <- routine-state 2:number/id
+    4:boolean/waiting? <- equal 3:number/routine-state, 2:literal/waiting
     assert 4:boolean/waiting?, [
 F read-move-file: routine failed to pause after coming up (before any keys were pressed)]
     1:address:channel <- write 1:address:channel, 50:literal  # '2'
-    restart 2:integer/routine
-    wait-for-routine 2:integer
+    restart 2:number/routine
+    wait-for-routine 2:number
   ]
   screen-should-contain [
     .file too low: 2     .
@@ -498,17 +498,17 @@ scenario read-move-illegal-rank [
   assume-screen 20:literal/width, 2:literal/height
   run [
     1:address:channel <- init-channel 2:literal
-    2:integer/routine <- start-running read-move:recipe, 1:address:channel, screen:address
+    2:number/routine <- start-running read-move:recipe, 1:address:channel, screen:address
     # 'read-move' is waiting for input
-    wait-for-routine 2:integer
-    3:integer <- routine-state 2:integer/id
-    4:boolean/waiting? <- equal 3:integer/routine-state, 2:literal/waiting
+    wait-for-routine 2:number
+    3:number <- routine-state 2:number/id
+    4:boolean/waiting? <- equal 3:number/routine-state, 2:literal/waiting
     assert 4:boolean/waiting?, [
 F read-move-file: routine failed to pause after coming up (before any keys were pressed)]
     1:address:channel <- write 1:address:channel, 97:literal  # 'a'
     1:address:channel <- write 1:address:channel, 97:literal  # 'a'
-    restart 2:integer/routine
-    wait-for-routine 2:integer
+    restart 2:number/routine
+    wait-for-routine 2:number
   ]
   screen-should-contain [
     .rank too high: a    .
@@ -520,17 +520,17 @@ scenario read-move-empty [
   assume-screen 20:literal/width, 2:literal/height
   run [
     1:address:channel <- init-channel 2:literal
-    2:integer/routine <- start-running read-move:recipe, 1:address:channel, screen:address
+    2:number/routine <- start-running read-move:recipe, 1:address:channel, screen:address
     # 'read-move' is waiting for input
-    wait-for-routine 2:integer
-    3:integer <- routine-state 2:integer/id
-    4:boolean/waiting? <- equal 3:integer/routine-state, 2:literal/waiting
+    wait-for-routine 2:number
+    3:number <- routine-state 2:number/id
+    4:boolean/waiting? <- equal 3:number/routine-state, 2:literal/waiting
     assert 4:boolean/waiting?, [
 F read-move-file: routine failed to pause after coming up (before any keys were pressed)]
     1:address:channel <- write 1:address:channel, 13:literal/newline
     1:address:channel <- write 1:address:channel, 97:literal  # 'a'
-    restart 2:integer/routine
-    wait-for-routine 2:integer
+    restart 2:number/routine
+    wait-for-routine 2:number
   ]
   screen-should-contain [
     .that's not enough   .
@@ -542,22 +542,22 @@ recipe make-move [
   default-space:address:array:location <- new location:type, 30:literal
   b:address:array:address:array:character <- next-ingredient
   m:address:move <- next-ingredient
-  from-file:integer <- get m:address:move/deref, from-file:offset
-#?   $print from-file:integer, [ #? 1
+  from-file:number <- get m:address:move/deref, from-file:offset
+#?   $print from-file:number, [ #? 1
 #? ] #? 1
-  from-rank:integer <- get m:address:move/deref, from-rank:offset
-#?   $print from-rank:integer, [ #? 1
+  from-rank:number <- get m:address:move/deref, from-rank:offset
+#?   $print from-rank:number, [ #? 1
 #? ] #? 1
-  to-file:integer <- get m:address:move/deref, to-file:offset
-#?   $print to-file:integer, [ #? 1
+  to-file:number <- get m:address:move/deref, to-file:offset
+#?   $print to-file:number, [ #? 1
 #? ] #? 1
-  to-rank:integer <- get m:address:move/deref, to-rank:offset
-#?   $print to-rank:integer, [ #? 1
+  to-rank:number <- get m:address:move/deref, to-rank:offset
+#?   $print to-rank:number, [ #? 1
 #? ] #? 1
-  f:address:array:character <- index b:address:array:address:array:character/deref, from-file:integer
-  src:address:character/square <- index-address f:address:array:character/deref, from-rank:integer
-  f:address:array:character <- index b:address:array:address:array:character/deref, to-file:integer
-  dest:address:character/square <- index-address f:address:array:character/deref, to-rank:integer
+  f:address:array:character <- index b:address:array:address:array:character/deref, from-file:number
+  src:address:character/square <- index-address f:address:array:character/deref, from-rank:number
+  f:address:array:character <- index b:address:array:address:array:character/deref, to-file:number
+  dest:address:character/square <- index-address f:address:array:character/deref, to-rank:number
 #?   $print src:address:character/deref, [ #? 1
 #? ] #? 1
   dest:address:character/deref/square <- copy src:address:character/deref/square
@@ -570,14 +570,14 @@ scenario making-a-move [
   run [
     2:address:array:address:array:character/board <- initial-position
     3:address:move <- new move:type
-    4:address:integer <- get-address 3:address:move/deref, from-file:offset
-    4:address:integer/deref <- copy 6:literal/g
-    5:address:integer <- get-address 3:address:move/deref, from-rank:offset
-    5:address:integer/deref <- copy 1:literal/2
-    6:address:integer <- get-address 3:address:move/deref, to-file:offset
-    6:address:integer/deref <- copy 6:literal/g
-    7:address:integer <- get-address 3:address:move/deref, to-rank:offset
-    7:address:integer/deref <- copy 3:literal/4
+    4:address:number <- get-address 3:address:move/deref, from-file:offset
+    4:address:number/deref <- copy 6:literal/g
+    5:address:number <- get-address 3:address:move/deref, from-rank:offset
+    5:address:number/deref <- copy 1:literal/2
+    6:address:number <- get-address 3:address:move/deref, to-file:offset
+    6:address:number/deref <- copy 6:literal/g
+    7:address:number <- get-address 3:address:move/deref, to-rank:offset
+    7:address:number/deref <- copy 3:literal/4
     2:address:array:address:array:character/board <- make-move 2:address:array:address:array:character/board, 3:address:move
     screen:address <- print-board screen:address, 2:address:array:address:array:character/board
   ]