From 132d72d28a63e58ec7f5e6fc955be140ee5844b0 Mon Sep 17 00:00:00 2001 From: Kartik Agaram Date: Mon, 11 Oct 2021 21:35:16 -0700 Subject: . --- html/shell/primitives.mu.html | 328 +++++++++++++++++++++--------------------- 1 file changed, 164 insertions(+), 164 deletions(-) (limited to 'html/shell/primitives.mu.html') diff --git a/html/shell/primitives.mu.html b/html/shell/primitives.mu.html index 8a761270..a885204d 100644 --- a/html/shell/primitives.mu.html +++ b/html/shell/primitives.mu.html @@ -134,59 +134,59 @@ if ('onhashchange' in window) { 69 70 # Slightly misnamed; renders primitives as well as special forms that don't 71 # evaluate all their arguments. - 72 fn render-primitives screen: (addr screen), xmin: int, xmax: int, ymax: int { + 72 fn render-primitives screen: (addr screen), xmin: int, xmax: int, ymax: int { 73 var y/ecx: int <- copy ymax 74 y <- subtract 0x11/primitives-border - 75 clear-rect screen, xmin, y, xmax, ymax, 0xdc/bg=green-bg + 75 clear-rect screen, xmin, y, xmax, ymax, 0xdc/bg=green-bg 76 y <- increment 77 var right-min/edx: int <- copy xmax 78 right-min <- subtract 0x1e/primitives-divider - 79 set-cursor-position screen, right-min, y - 80 draw-text-wrapping-right-then-down-from-cursor screen, "primitives", right-min, y, xmax, ymax, 7/fg=grey, 0xdc/bg=green-bg + 79 set-cursor-position screen, right-min, y + 80 draw-text-wrapping-right-then-down-from-cursor screen, "primitives", right-min, y, xmax, ymax, 7/fg=grey, 0xdc/bg=green-bg 81 y <- increment - 82 set-cursor-position screen, right-min, y - 83 draw-text-wrapping-right-then-down-from-cursor screen, " fn apply set if while", right-min, y, xmax, ymax, 0x2a/fg=orange, 0xdc/bg=green-bg + 82 set-cursor-position screen, right-min, y + 83 draw-text-wrapping-right-then-down-from-cursor screen, " fn apply set if while", right-min, y, xmax, ymax, 0x2a/fg=orange, 0xdc/bg=green-bg 84 y <- increment - 85 set-cursor-position screen, right-min, y - 86 draw-text-wrapping-right-then-down-from-cursor screen, "booleans", right-min, y, xmax, ymax, 7/fg=grey, 0xdc/bg=green-bg + 85 set-cursor-position screen, right-min, y + 86 draw-text-wrapping-right-then-down-from-cursor screen, "booleans", right-min, y, xmax, ymax, 7/fg=grey, 0xdc/bg=green-bg 87 y <- increment - 88 set-cursor-position screen, right-min, y - 89 draw-text-wrapping-right-then-down-from-cursor screen, " = and or not", right-min, y, xmax, ymax, 0x2a/fg=orange, 0xdc/bg=green-bg + 88 set-cursor-position screen, right-min, y + 89 draw-text-wrapping-right-then-down-from-cursor screen, " = and or not", right-min, y, xmax, ymax, 0x2a/fg=orange, 0xdc/bg=green-bg 90 y <- increment - 91 set-cursor-position screen, right-min, y - 92 draw-text-wrapping-right-then-down-from-cursor screen, "lists", right-min, y, xmax, ymax, 7/fg=grey, 0xdc/bg=green-bg + 91 set-cursor-position screen, right-min, y + 92 draw-text-wrapping-right-then-down-from-cursor screen, "lists", right-min, y, xmax, ymax, 7/fg=grey, 0xdc/bg=green-bg 93 y <- increment - 94 set-cursor-position screen, right-min, y - 95 draw-text-wrapping-right-then-down-from-cursor screen, " cons car cdr no cons? len", right-min, y, xmax, ymax, 0x2a/fg=orange, 0xdc/bg=green-bg + 94 set-cursor-position screen, right-min, y + 95 draw-text-wrapping-right-then-down-from-cursor screen, " cons car cdr no cons? len", right-min, y, xmax, ymax, 0x2a/fg=orange, 0xdc/bg=green-bg 96 y <- increment - 97 set-cursor-position screen, right-min, y - 98 draw-text-wrapping-right-then-down-from-cursor screen, "numbers", right-min, y, xmax, ymax, 7/fg=grey, 0xdc/bg=green-bg + 97 set-cursor-position screen, right-min, y + 98 draw-text-wrapping-right-then-down-from-cursor screen, "numbers", right-min, y, xmax, ymax, 7/fg=grey, 0xdc/bg=green-bg 99 y <- increment - 100 set-cursor-position screen, right-min, y - 101 draw-text-wrapping-right-then-down-from-cursor screen, " + - * / %", right-min, y, xmax, ymax, 0x2a/fg=orange, 0xdc/bg=green-bg + 100 set-cursor-position screen, right-min, y + 101 draw-text-wrapping-right-then-down-from-cursor screen, " + - * / %", right-min, y, xmax, ymax, 0x2a/fg=orange, 0xdc/bg=green-bg 102 y <- increment - 103 set-cursor-position screen, right-min, y - 104 draw-text-wrapping-right-then-down-from-cursor screen, " < > <= >=", right-min, y, xmax, ymax, 0x2a/fg=orange, 0xdc/bg=green-bg + 103 set-cursor-position screen, right-min, y + 104 draw-text-wrapping-right-then-down-from-cursor screen, " < > <= >=", right-min, y, xmax, ymax, 0x2a/fg=orange, 0xdc/bg=green-bg 105 y <- increment - 106 set-cursor-position screen, right-min, y - 107 draw-text-wrapping-right-then-down-from-cursor screen, " sqrt abs sgn", right-min, y, xmax, ymax, 0x2a/fg=orange, 0xdc/bg=green-bg + 106 set-cursor-position screen, right-min, y + 107 draw-text-wrapping-right-then-down-from-cursor screen, " sqrt abs sgn", right-min, y, xmax, ymax, 0x2a/fg=orange, 0xdc/bg=green-bg 108 y <- increment - 109 set-cursor-position screen, right-min, y - 110 draw-text-wrapping-right-then-down-from-cursor screen, "arrays", right-min, y, xmax, ymax, 7/fg=grey, 0xdc/bg=green-bg + 109 set-cursor-position screen, right-min, y + 110 draw-text-wrapping-right-then-down-from-cursor screen, "arrays", right-min, y, xmax, ymax, 7/fg=grey, 0xdc/bg=green-bg 111 y <- increment - 112 set-cursor-position screen, right-min, y - 113 draw-text-wrapping-right-then-down-from-cursor screen, " array index iset len", right-min, y, xmax, ymax, 0x2a/fg=orange, 0xdc/bg=green-bg + 112 set-cursor-position screen, right-min, y + 113 draw-text-wrapping-right-then-down-from-cursor screen, " array index iset len", right-min, y, xmax, ymax, 0x2a/fg=orange, 0xdc/bg=green-bg 114 y <- increment 115 var tmpx/eax: int <- copy right-min - 116 tmpx <- draw-text-rightward screen, " populate", tmpx, xmax, y, 0x2a/fg=orange, 0xdc/bg=green-bg - 117 tmpx <- draw-text-rightward screen, ": int _ -> array", tmpx, xmax, y, 7/fg=grey, 0xdc/bg=green-bg + 116 tmpx <- draw-text-rightward screen, " populate", tmpx, xmax, y, 0x2a/fg=orange, 0xdc/bg=green-bg + 117 tmpx <- draw-text-rightward screen, ": int _ -> array", tmpx, xmax, y, 7/fg=grey, 0xdc/bg=green-bg 118 y <- increment - 119 set-cursor-position screen, right-min, y - 120 draw-text-wrapping-right-then-down-from-cursor screen, "images", right-min, y, xmax, ymax, 7/fg=grey, 0xdc/bg=green-bg + 119 set-cursor-position screen, right-min, y + 120 draw-text-wrapping-right-then-down-from-cursor screen, "images", right-min, y, xmax, ymax, 7/fg=grey, 0xdc/bg=green-bg 121 y <- increment 122 var tmpx/eax: int <- copy right-min - 123 tmpx <- draw-text-rightward screen, " img", tmpx, xmax, y, 0x2a/fg=orange, 0xdc/bg=green-bg - 124 tmpx <- draw-text-rightward screen, ": screen stream x y w h", tmpx, xmax, y, 7/fg=grey, 0xdc/bg=green-bg + 123 tmpx <- draw-text-rightward screen, " img", tmpx, xmax, y, 0x2a/fg=orange, 0xdc/bg=green-bg + 124 tmpx <- draw-text-rightward screen, ": screen stream x y w h", tmpx, xmax, y, 7/fg=grey, 0xdc/bg=green-bg 125 #? { 126 #? compare screen, 0 127 #? break-if-!= @@ -199,64 +199,64 @@ if ('onhashchange' in window) { 134 var left-max/edx: int <- copy xmax 135 left-max <- subtract 0x20/primitives-divider 136 var tmpx/eax: int <- copy xmin - 137 tmpx <- draw-text-rightward screen, "cursor graphics", tmpx, left-max, y, 7/fg=grey, 0xdc/bg=green-bg + 137 tmpx <- draw-text-rightward screen, "cursor graphics", tmpx, left-max, y, 7/fg=grey, 0xdc/bg=green-bg 138 y <- increment 139 var tmpx/eax: int <- copy xmin - 140 tmpx <- draw-text-rightward screen, " print", tmpx, left-max, y, 0x2a/fg=orange, 0xdc/bg=green-bg - 141 tmpx <- draw-text-rightward screen, ": screen _ -> _", tmpx, left-max, y, 7/fg=grey, 0xdc/bg=green-bg + 140 tmpx <- draw-text-rightward screen, " print", tmpx, left-max, y, 0x2a/fg=orange, 0xdc/bg=green-bg + 141 tmpx <- draw-text-rightward screen, ": screen _ -> _", tmpx, left-max, y, 7/fg=grey, 0xdc/bg=green-bg 142 y <- increment 143 var tmpx/eax: int <- copy xmin - 144 tmpx <- draw-text-rightward screen, " lines columns", tmpx, left-max, y, 0x2a/fg=orange, 0xdc/bg=green-bg - 145 tmpx <- draw-text-rightward screen, ": screen -> number", tmpx, left-max, y, 7/fg=grey, 0xdc/bg=green-bg + 144 tmpx <- draw-text-rightward screen, " lines columns", tmpx, left-max, y, 0x2a/fg=orange, 0xdc/bg=green-bg + 145 tmpx <- draw-text-rightward screen, ": screen -> number", tmpx, left-max, y, 7/fg=grey, 0xdc/bg=green-bg 146 y <- increment 147 var tmpx/eax: int <- copy xmin - 148 tmpx <- draw-text-rightward screen, " up down left right", tmpx, left-max, y, 0x2a/fg=orange, 0xdc/bg=green-bg - 149 tmpx <- draw-text-rightward screen, ": screen", tmpx, left-max, y, 7/fg=grey, 0xdc/bg=green-bg + 148 tmpx <- draw-text-rightward screen, " up down left right", tmpx, left-max, y, 0x2a/fg=orange, 0xdc/bg=green-bg + 149 tmpx <- draw-text-rightward screen, ": screen", tmpx, left-max, y, 7/fg=grey, 0xdc/bg=green-bg 150 y <- increment 151 var tmpx/eax: int <- copy xmin - 152 tmpx <- draw-text-rightward screen, " cr", tmpx, left-max, y, 0x2a/fg=orange, 0xdc/bg=green-bg - 153 tmpx <- draw-text-rightward screen, ": screen ", tmpx, left-max, y, 7/fg=grey, 0xdc/bg=green-bg - 154 tmpx <- draw-text-rightward screen, "# move cursor down and to left margin", tmpx, left-max, y, 0x38/fg=trace, 0xdc/bg=green-bg + 152 tmpx <- draw-text-rightward screen, " cr", tmpx, left-max, y, 0x2a/fg=orange, 0xdc/bg=green-bg + 153 tmpx <- draw-text-rightward screen, ": screen ", tmpx, left-max, y, 7/fg=grey, 0xdc/bg=green-bg + 154 tmpx <- draw-text-rightward screen, "# move cursor down and to left margin", tmpx, left-max, y, 0x38/fg=trace, 0xdc/bg=green-bg 155 y <- increment 156 var tmpx/eax: int <- copy xmin - 157 tmpx <- draw-text-rightward screen, "pixel graphics", tmpx, left-max, y, 7/fg=grey, 0xdc/bg=green-bg + 157 tmpx <- draw-text-rightward screen, "pixel graphics", tmpx, left-max, y, 7/fg=grey, 0xdc/bg=green-bg 158 y <- increment 159 var tmpx/eax: int <- copy xmin - 160 tmpx <- draw-text-rightward screen, " circle bezier line hline vline pixel", tmpx, left-max, y, 0x2a/fg=orange, 0xdc/bg=green-bg + 160 tmpx <- draw-text-rightward screen, " circle bezier line hline vline pixel", tmpx, left-max, y, 0x2a/fg=orange, 0xdc/bg=green-bg 161 y <- increment 162 var tmpx/eax: int <- copy xmin - 163 tmpx <- draw-text-rightward screen, " width height", tmpx, left-max, y, 0x2a/fg=orange, 0xdc/bg=green-bg - 164 tmpx <- draw-text-rightward screen, ": screen -> number", tmpx, left-max, y, 7/fg=grey, 0xdc/bg=green-bg + 163 tmpx <- draw-text-rightward screen, " width height", tmpx, left-max, y, 0x2a/fg=orange, 0xdc/bg=green-bg + 164 tmpx <- draw-text-rightward screen, ": screen -> number", tmpx, left-max, y, 7/fg=grey, 0xdc/bg=green-bg 165 y <- increment 166 var tmpx/eax: int <- copy xmin - 167 tmpx <- draw-text-rightward screen, " clear", tmpx, left-max, y, 0x2a/fg=orange, 0xdc/bg=green-bg - 168 tmpx <- draw-text-rightward screen, ": screen", tmpx, left-max, y, 7/fg=grey, 0xdc/bg=green-bg + 167 tmpx <- draw-text-rightward screen, " clear", tmpx, left-max, y, 0x2a/fg=orange, 0xdc/bg=green-bg + 168 tmpx <- draw-text-rightward screen, ": screen", tmpx, left-max, y, 7/fg=grey, 0xdc/bg=green-bg 169 y <- increment 170 var tmpx/eax: int <- copy xmin - 171 tmpx <- draw-text-rightward screen, "input", tmpx, left-max, y, 7/fg=grey, 0xdc/bg=green-bg + 171 tmpx <- draw-text-rightward screen, "input", tmpx, left-max, y, 7/fg=grey, 0xdc/bg=green-bg 172 y <- increment 173 var tmpx/eax: int <- copy xmin - 174 tmpx <- draw-text-rightward screen, " key", tmpx, left-max, y, 0x2a/fg=orange, 0xdc/bg=green-bg - 175 tmpx <- draw-text-rightward screen, ": keyboard -> grapheme?", tmpx, left-max, y, 7/fg=grey, 0xdc/bg=green-bg + 174 tmpx <- draw-text-rightward screen, " key", tmpx, left-max, y, 0x2a/fg=orange, 0xdc/bg=green-bg + 175 tmpx <- draw-text-rightward screen, ": keyboard -> grapheme?", tmpx, left-max, y, 7/fg=grey, 0xdc/bg=green-bg 176 y <- increment 177 var tmpx/eax: int <- copy xmin - 178 tmpx <- draw-text-rightward screen, "streams", tmpx, left-max, y, 7/fg=grey, 0xdc/bg=green-bg + 178 tmpx <- draw-text-rightward screen, "streams", tmpx, left-max, y, 7/fg=grey, 0xdc/bg=green-bg 179 y <- increment 180 var tmpx/eax: int <- copy xmin - 181 tmpx <- draw-text-rightward screen, " stream", tmpx, left-max, y, 0x2a/fg=orange, 0xdc/bg=green-bg - 182 tmpx <- draw-text-rightward screen, ": -> stream ", tmpx, left-max, y, 7/fg=grey, 0xdc/bg=green-bg + 181 tmpx <- draw-text-rightward screen, " stream", tmpx, left-max, y, 0x2a/fg=orange, 0xdc/bg=green-bg + 182 tmpx <- draw-text-rightward screen, ": -> stream ", tmpx, left-max, y, 7/fg=grey, 0xdc/bg=green-bg 183 y <- increment 184 var tmpx/eax: int <- copy xmin - 185 tmpx <- draw-text-rightward screen, " write", tmpx, left-max, y, 0x2a/fg=orange, 0xdc/bg=green-bg - 186 tmpx <- draw-text-rightward screen, ": stream grapheme -> stream", tmpx, left-max, y, 7/fg=grey, 0xdc/bg=green-bg + 185 tmpx <- draw-text-rightward screen, " write", tmpx, left-max, y, 0x2a/fg=orange, 0xdc/bg=green-bg + 186 tmpx <- draw-text-rightward screen, ": stream grapheme -> stream", tmpx, left-max, y, 7/fg=grey, 0xdc/bg=green-bg 187 y <- increment 188 var tmpx/eax: int <- copy xmin - 189 tmpx <- draw-text-rightward screen, " rewind clear", tmpx, left-max, y, 0x2a/fg=orange, 0xdc/bg=green-bg - 190 tmpx <- draw-text-rightward screen, ": stream", tmpx, left-max, y, 7/fg=grey, 0xdc/bg=green-bg + 189 tmpx <- draw-text-rightward screen, " rewind clear", tmpx, left-max, y, 0x2a/fg=orange, 0xdc/bg=green-bg + 190 tmpx <- draw-text-rightward screen, ": stream", tmpx, left-max, y, 7/fg=grey, 0xdc/bg=green-bg 191 y <- increment 192 var tmpx/eax: int <- copy xmin - 193 tmpx <- draw-text-rightward screen, " read", tmpx, left-max, y, 0x2a/fg=orange, 0xdc/bg=green-bg - 194 tmpx <- draw-text-rightward screen, ": stream -> grapheme", tmpx, left-max, y, 7/fg=grey, 0xdc/bg=green-bg + 193 tmpx <- draw-text-rightward screen, " read", tmpx, left-max, y, 0x2a/fg=orange, 0xdc/bg=green-bg + 194 tmpx <- draw-text-rightward screen, ": stream -> grapheme", tmpx, left-max, y, 7/fg=grey, 0xdc/bg=green-bg 195 } 196 197 fn primitive-global? _x: (addr global) -> _/eax: boolean { @@ -1812,9 +1812,9 @@ if ('onhashchange' in window) { 1747 error trace, "first arg for 'print' is not a screen" 1748 return 1749 } -1750 var screen-ah/eax: (addr handle screen) <- get first, screen-data -1751 var _screen/eax: (addr screen) <- lookup *screen-ah -1752 var screen/ecx: (addr screen) <- copy _screen +1750 var screen-ah/eax: (addr handle screen) <- get first, screen-data +1751 var _screen/eax: (addr screen) <- lookup *screen-ah +1752 var screen/ecx: (addr screen) <- copy _screen 1753 # args->right->left 1754 var right-ah/eax: (addr handle cell) <- get args, right 1755 var right/eax: (addr cell) <- lookup *right-ah @@ -1836,7 +1836,7 @@ if ('onhashchange' in window) { 1771 var stream-storage: (stream byte 0x100) 1772 var stream/edi: (addr stream byte) <- address stream-storage 1773 print-cell second-ah, stream, trace -1774 draw-stream-wrapping-right-then-down-from-cursor-over-full-screen screen, stream, 7/fg, 0/bg +1774 draw-stream-wrapping-right-then-down-from-cursor-over-full-screen screen, stream, 7/fg, 0/bg 1775 # return what was printed 1776 copy-object second-ah, out 1777 } @@ -1876,13 +1876,13 @@ if ('onhashchange' in window) { 1811 compare *first-type, 5/screen 1812 { 1813 break-if-!= -1814 var screen-ah/eax: (addr handle screen) <- get first, screen-data -1815 var _screen/eax: (addr screen) <- lookup *screen-ah -1816 var screen/ecx: (addr screen) <- copy _screen -1817 clear-screen screen +1814 var screen-ah/eax: (addr handle screen) <- get first, screen-data +1815 var _screen/eax: (addr screen) <- lookup *screen-ah +1816 var screen/ecx: (addr screen) <- copy _screen +1817 clear-screen screen 1818 return 1819 } -1820 error trace, "first arg for 'clear' is not a screen or a stream" +1820 error trace, "first arg for 'clear' is not a screen or a stream" 1821 } 1822 1823 fn apply-up _args-ah: (addr handle cell), out: (addr handle cell), trace: (addr trace) { @@ -1914,11 +1914,11 @@ if ('onhashchange' in window) { 1849 error trace, "first arg for 'up' is not a screen" 1850 return 1851 } -1852 var screen-ah/eax: (addr handle screen) <- get first, screen-data -1853 var _screen/eax: (addr screen) <- lookup *screen-ah -1854 var screen/ecx: (addr screen) <- copy _screen +1852 var screen-ah/eax: (addr handle screen) <- get first, screen-data +1853 var _screen/eax: (addr screen) <- lookup *screen-ah +1854 var screen/ecx: (addr screen) <- copy _screen 1855 # -1856 move-cursor-up screen +1856 move-cursor-up screen 1857 } 1858 1859 fn apply-down _args-ah: (addr handle cell), out: (addr handle cell), trace: (addr trace) { @@ -1950,11 +1950,11 @@ if ('onhashchange' in window) { 1885 error trace, "first arg for 'down' is not a screen" 1886 return 1887 } -1888 var screen-ah/eax: (addr handle screen) <- get first, screen-data -1889 var _screen/eax: (addr screen) <- lookup *screen-ah -1890 var screen/ecx: (addr screen) <- copy _screen +1888 var screen-ah/eax: (addr handle screen) <- get first, screen-data +1889 var _screen/eax: (addr screen) <- lookup *screen-ah +1890 var screen/ecx: (addr screen) <- copy _screen 1891 # -1892 move-cursor-down screen +1892 move-cursor-down screen 1893 } 1894 1895 fn apply-left _args-ah: (addr handle cell), out: (addr handle cell), trace: (addr trace) { @@ -1986,11 +1986,11 @@ if ('onhashchange' in window) { 1921 error trace, "first arg for 'left' is not a screen" 1922 return 1923 } -1924 var screen-ah/eax: (addr handle screen) <- get first, screen-data -1925 var _screen/eax: (addr screen) <- lookup *screen-ah -1926 var screen/ecx: (addr screen) <- copy _screen +1924 var screen-ah/eax: (addr handle screen) <- get first, screen-data +1925 var _screen/eax: (addr screen) <- lookup *screen-ah +1926 var screen/ecx: (addr screen) <- copy _screen 1927 # -1928 move-cursor-left screen +1928 move-cursor-left screen 1929 } 1930 1931 fn apply-right _args-ah: (addr handle cell), out: (addr handle cell), trace: (addr trace) { @@ -2022,11 +2022,11 @@ if ('onhashchange' in window) { 1957 error trace, "first arg for 'right' is not a screen" 1958 return 1959 } -1960 var screen-ah/eax: (addr handle screen) <- get first, screen-data -1961 var _screen/eax: (addr screen) <- lookup *screen-ah -1962 var screen/ecx: (addr screen) <- copy _screen +1960 var screen-ah/eax: (addr handle screen) <- get first, screen-data +1961 var _screen/eax: (addr screen) <- lookup *screen-ah +1962 var screen/ecx: (addr screen) <- copy _screen 1963 # -1964 move-cursor-right screen +1964 move-cursor-right screen 1965 } 1966 1967 fn apply-cr _args-ah: (addr handle cell), out: (addr handle cell), trace: (addr trace) { @@ -2058,11 +2058,11 @@ if ('onhashchange' in window) { 1993 error trace, "first arg for 'cr' is not a screen" 1994 return 1995 } -1996 var screen-ah/eax: (addr handle screen) <- get first, screen-data -1997 var _screen/eax: (addr screen) <- lookup *screen-ah -1998 var screen/ecx: (addr screen) <- copy _screen +1996 var screen-ah/eax: (addr handle screen) <- get first, screen-data +1997 var _screen/eax: (addr screen) <- lookup *screen-ah +1998 var screen/ecx: (addr screen) <- copy _screen 1999 # -2000 move-cursor-to-left-margin-of-next-line screen +2000 move-cursor-to-left-margin-of-next-line screen 2001 } 2002 2003 fn apply-pixel _args-ah: (addr handle cell), out: (addr handle cell), trace: (addr trace) { @@ -2094,9 +2094,9 @@ if ('onhashchange' in window) { 2029 error trace, "first arg for 'pixel' is not a screen" 2030 return 2031 } -2032 var screen-ah/eax: (addr handle screen) <- get first, screen-data -2033 var _screen/eax: (addr screen) <- lookup *screen-ah -2034 var screen/edi: (addr screen) <- copy _screen +2032 var screen-ah/eax: (addr handle screen) <- get first, screen-data +2033 var _screen/eax: (addr screen) <- lookup *screen-ah +2034 var screen/edi: (addr screen) <- copy _screen 2035 # x = args->right->left->value 2036 var rest-ah/eax: (addr handle cell) <- get args, right 2037 var _rest/eax: (addr cell) <- lookup *rest-ah @@ -2184,7 +2184,7 @@ if ('onhashchange' in window) { 2119 } 2120 var fourth-value/eax: (addr float) <- get fourth, number-data 2121 var color/eax: int <- convert *fourth-value -2122 pixel screen, x, y, color +2122 pixel screen, x, y, color 2123 # return nothing 2124 } 2125 @@ -2217,9 +2217,9 @@ if ('onhashchange' in window) { 2152 error trace, "first arg for 'line' is not a screen" 2153 return 2154 } -2155 var screen-ah/eax: (addr handle screen) <- get first, screen-data -2156 var _screen/eax: (addr screen) <- lookup *screen-ah -2157 var screen/edi: (addr screen) <- copy _screen +2155 var screen-ah/eax: (addr handle screen) <- get first, screen-data +2156 var _screen/eax: (addr screen) <- lookup *screen-ah +2157 var screen/edi: (addr screen) <- copy _screen 2158 # x1 = args->right->left->value 2159 var rest-ah/eax: (addr handle cell) <- get args, right 2160 var _rest/eax: (addr cell) <- lookup *rest-ah @@ -2244,7 +2244,7 @@ if ('onhashchange' in window) { 2179 var second-type/eax: (addr int) <- get second, type 2180 compare *second-type, 1/number 2181 break-if-= -2182 error trace, "second arg for 'line' is not a number (screen x coordinate of start point)" +2182 error trace, "second arg for 'line' is not a number (screen x coordinate of start point)" 2183 return 2184 } 2185 var second-value/eax: (addr float) <- get second, number-data @@ -2273,7 +2273,7 @@ if ('onhashchange' in window) { 2208 var third-type/eax: (addr int) <- get third, type 2209 compare *third-type, 1/number 2210 break-if-= -2211 error trace, "third arg for 'line' is not a number (screen y coordinate of start point)" +2211 error trace, "third arg for 'line' is not a number (screen y coordinate of start point)" 2212 return 2213 } 2214 var third-value/eax: (addr float) <- get third, number-data @@ -2302,7 +2302,7 @@ if ('onhashchange' in window) { 2237 var fourth-type/eax: (addr int) <- get fourth, type 2238 compare *fourth-type, 1/number 2239 break-if-= -2240 error trace, "fourth arg for 'line' is not a number (screen x coordinate of end point)" +2240 error trace, "fourth arg for 'line' is not a number (screen x coordinate of end point)" 2241 return 2242 } 2243 var fourth-value/eax: (addr float) <- get fourth, number-data @@ -2331,7 +2331,7 @@ if ('onhashchange' in window) { 2266 var fifth-type/eax: (addr int) <- get fifth, type 2267 compare *fifth-type, 1/number 2268 break-if-= -2269 error trace, "fifth arg for 'line' is not a number (screen y coordinate of end point)" +2269 error trace, "fifth arg for 'line' is not a number (screen y coordinate of end point)" 2270 return 2271 } 2272 var fifth-value/eax: (addr float) <- get fifth, number-data @@ -2367,7 +2367,7 @@ if ('onhashchange' in window) { 2302 } 2303 var sixth-value/eax: (addr float) <- get sixth, number-data 2304 var color/eax: int <- convert *sixth-value -2305 draw-line screen, x1, y1, x2, y2, color +2305 draw-line screen, x1, y1, x2, y2, color 2306 # return nothing 2307 } 2308 @@ -2400,9 +2400,9 @@ if ('onhashchange' in window) { 2335 error trace, "first arg for 'hline' is not a screen" 2336 return 2337 } -2338 var screen-ah/eax: (addr handle screen) <- get first, screen-data -2339 var _screen/eax: (addr screen) <- lookup *screen-ah -2340 var screen/edi: (addr screen) <- copy _screen +2338 var screen-ah/eax: (addr handle screen) <- get first, screen-data +2339 var _screen/eax: (addr screen) <- lookup *screen-ah +2340 var screen/edi: (addr screen) <- copy _screen 2341 # y = args->right->left->value 2342 var rest-ah/eax: (addr handle cell) <- get args, right 2343 var _rest/eax: (addr cell) <- lookup *rest-ah @@ -2427,7 +2427,7 @@ if ('onhashchange' in window) { 2362 var second-type/eax: (addr int) <- get second, type 2363 compare *second-type, 1/number 2364 break-if-= -2365 error trace, "second arg for 'hline' is not a number (screen y coordinate)" +2365 error trace, "second arg for 'hline' is not a number (screen y coordinate)" 2366 return 2367 } 2368 var second-value/eax: (addr float) <- get second, number-data @@ -2456,7 +2456,7 @@ if ('onhashchange' in window) { 2391 var third-type/eax: (addr int) <- get third, type 2392 compare *third-type, 1/number 2393 break-if-= -2394 error trace, "third arg for 'hline' is not a number (screen x coordinate of start point)" +2394 error trace, "third arg for 'hline' is not a number (screen x coordinate of start point)" 2395 return 2396 } 2397 var third-value/eax: (addr float) <- get third, number-data @@ -2485,7 +2485,7 @@ if ('onhashchange' in window) { 2420 var fourth-type/eax: (addr int) <- get fourth, type 2421 compare *fourth-type, 1/number 2422 break-if-= -2423 error trace, "fourth arg for 'hline' is not a number (screen x coordinate of end point)" +2423 error trace, "fourth arg for 'hline' is not a number (screen x coordinate of end point)" 2424 return 2425 } 2426 var fourth-value/eax: (addr float) <- get fourth, number-data @@ -2519,7 +2519,7 @@ if ('onhashchange' in window) { 2454 } 2455 var fifth-value/eax: (addr float) <- get fifth, number-data 2456 var color/eax: int <- convert *fifth-value -2457 draw-horizontal-line screen, y, x1, x2, color +2457 draw-horizontal-line screen, y, x1, x2, color 2458 # return nothing 2459 } 2460 @@ -2552,9 +2552,9 @@ if ('onhashchange' in window) { 2487 error trace, "first arg for 'vline' is not a screen" 2488 return 2489 } -2490 var screen-ah/eax: (addr handle screen) <- get first, screen-data -2491 var _screen/eax: (addr screen) <- lookup *screen-ah -2492 var screen/edi: (addr screen) <- copy _screen +2490 var screen-ah/eax: (addr handle screen) <- get first, screen-data +2491 var _screen/eax: (addr screen) <- lookup *screen-ah +2492 var screen/edi: (addr screen) <- copy _screen 2493 # x = args->right->left->value 2494 var rest-ah/eax: (addr handle cell) <- get args, right 2495 var _rest/eax: (addr cell) <- lookup *rest-ah @@ -2579,7 +2579,7 @@ if ('onhashchange' in window) { 2514 var second-type/eax: (addr int) <- get second, type 2515 compare *second-type, 1/number 2516 break-if-= -2517 error trace, "second arg for 'vline' is not a number (screen x coordinate)" +2517 error trace, "second arg for 'vline' is not a number (screen x coordinate)" 2518 return 2519 } 2520 var second-value/eax: (addr float) <- get second, number-data @@ -2608,7 +2608,7 @@ if ('onhashchange' in window) { 2543 var third-type/eax: (addr int) <- get third, type 2544 compare *third-type, 1/number 2545 break-if-= -2546 error trace, "third arg for 'vline' is not a number (screen y coordinate of start point)" +2546 error trace, "third arg for 'vline' is not a number (screen y coordinate of start point)" 2547 return 2548 } 2549 var third-value/eax: (addr float) <- get third, number-data @@ -2637,7 +2637,7 @@ if ('onhashchange' in window) { 2572 var fourth-type/eax: (addr int) <- get fourth, type 2573 compare *fourth-type, 1/number 2574 break-if-= -2575 error trace, "fourth arg for 'vline' is not a number (screen y coordinate of end point)" +2575 error trace, "fourth arg for 'vline' is not a number (screen y coordinate of end point)" 2576 return 2577 } 2578 var fourth-value/eax: (addr float) <- get fourth, number-data @@ -2671,7 +2671,7 @@ if ('onhashchange' in window) { 2606 } 2607 var fifth-value/eax: (addr float) <- get fifth, number-data 2608 var color/eax: int <- convert *fifth-value -2609 draw-vertical-line screen, x, y1, y2, color +2609 draw-vertical-line screen, x, y1, y2, color 2610 # return nothing 2611 } 2612 @@ -2704,9 +2704,9 @@ if ('onhashchange' in window) { 2639 error trace, "first arg for 'circle' is not a screen" 2640 return 2641 } -2642 var screen-ah/eax: (addr handle screen) <- get first, screen-data -2643 var _screen/eax: (addr screen) <- lookup *screen-ah -2644 var screen/edi: (addr screen) <- copy _screen +2642 var screen-ah/eax: (addr handle screen) <- get first, screen-data +2643 var _screen/eax: (addr screen) <- lookup *screen-ah +2644 var screen/edi: (addr screen) <- copy _screen 2645 # cx = args->right->left->value 2646 var rest-ah/eax: (addr handle cell) <- get args, right 2647 var _rest/eax: (addr cell) <- lookup *rest-ah @@ -2731,7 +2731,7 @@ if ('onhashchange' in window) { 2666 var second-type/eax: (addr int) <- get second, type 2667 compare *second-type, 1/number 2668 break-if-= -2669 error trace, "second arg for 'circle' is not a number (screen x coordinate of center)" +2669 error trace, "second arg for 'circle' is not a number (screen x coordinate of center)" 2670 return 2671 } 2672 var second-value/eax: (addr float) <- get second, number-data @@ -2760,7 +2760,7 @@ if ('onhashchange' in window) { 2695 var third-type/eax: (addr int) <- get third, type 2696 compare *third-type, 1/number 2697 break-if-= -2698 error trace, "third arg for 'circle' is not a number (screen y coordinate of center)" +2698 error trace, "third arg for 'circle' is not a number (screen y coordinate of center)" 2699 return 2700 } 2701 var third-value/eax: (addr float) <- get third, number-data @@ -2789,7 +2789,7 @@ if ('onhashchange' in window) { 2724 var fourth-type/eax: (addr int) <- get fourth, type 2725 compare *fourth-type, 1/number 2726 break-if-= -2727 error trace, "fourth arg for 'circle' is not a number (screen radius)" +2727 error trace, "fourth arg for 'circle' is not a number (screen radius)" 2728 return 2729 } 2730 var fourth-value/eax: (addr float) <- get fourth, number-data @@ -2823,7 +2823,7 @@ if ('onhashchange' in window) { 2758 } 2759 var fifth-value/eax: (addr float) <- get fifth, number-data 2760 var color/eax: int <- convert *fifth-value -2761 draw-circle screen, cx, cy, r, color +2761 draw-circle screen, cx, cy, r, color 2762 # return nothing 2763 } 2764 @@ -2856,9 +2856,9 @@ if ('onhashchange' in window) { 2791 error trace, "first arg for 'bezier' is not a screen" 2792 return 2793 } -2794 var screen-ah/eax: (addr handle screen) <- get first, screen-data -2795 var _screen/eax: (addr screen) <- lookup *screen-ah -2796 var screen/edi: (addr screen) <- copy _screen +2794 var screen-ah/eax: (addr handle screen) <- get first, screen-data +2795 var _screen/eax: (addr screen) <- lookup *screen-ah +2796 var screen/edi: (addr screen) <- copy _screen 2797 # x0 = args->right->left->value 2798 var rest-ah/eax: (addr handle cell) <- get args, right 2799 var _rest/eax: (addr cell) <- lookup *rest-ah @@ -2883,7 +2883,7 @@ if ('onhashchange' in window) { 2818 var second-type/eax: (addr int) <- get second, type 2819 compare *second-type, 1/number 2820 break-if-= -2821 error trace, "second arg for 'bezier' is not a number (screen x coordinate of start point)" +2821 error trace, "second arg for 'bezier' is not a number (screen x coordinate of start point)" 2822 return 2823 } 2824 var second-value/eax: (addr float) <- get second, number-data @@ -2912,7 +2912,7 @@ if ('onhashchange' in window) { 2847 var third-type/eax: (addr int) <- get third, type 2848 compare *third-type, 1/number 2849 break-if-= -2850 error trace, "third arg for 'bezier' is not a number (screen y coordinate of start point)" +2850 error trace, "third arg for 'bezier' is not a number (screen y coordinate of start point)" 2851 return 2852 } 2853 var third-value/eax: (addr float) <- get third, number-data @@ -2941,7 +2941,7 @@ if ('onhashchange' in window) { 2876 var fourth-type/eax: (addr int) <- get fourth, type 2877 compare *fourth-type, 1/number 2878 break-if-= -2879 error trace, "fourth arg for 'bezier' is not a number (screen x coordinate of control point)" +2879 error trace, "fourth arg for 'bezier' is not a number (screen x coordinate of control point)" 2880 return 2881 } 2882 var fourth-value/eax: (addr float) <- get fourth, number-data @@ -2972,7 +2972,7 @@ if ('onhashchange' in window) { 2907 var fifth-type/eax: (addr int) <- get fifth, type 2908 compare *fifth-type, 1/number 2909 break-if-= -2910 error trace, "fifth arg for 'bezier' is not a number (screen y coordinate of control point)" +2910 error trace, "fifth arg for 'bezier' is not a number (screen y coordinate of control point)" 2911 return 2912 } 2913 var fifth-value/eax: (addr float) <- get fifth, number-data @@ -3003,7 +3003,7 @@ if ('onhashchange' in window) { 2938 var sixth-type/eax: (addr int) <- get sixth, type 2939 compare *sixth-type, 1/number 2940 break-if-= -2941 error trace, "sixth arg for 'bezier' is not a number (screen x coordinate of end point)" +2941 error trace, "sixth arg for 'bezier' is not a number (screen x coordinate of end point)" 2942 return 2943 } 2944 var sixth-value/eax: (addr float) <- get sixth, number-data @@ -3034,7 +3034,7 @@ if ('onhashchange' in window) { 2969 var seventh-type/eax: (addr int) <- get seventh, type 2970 compare *seventh-type, 1/number 2971 break-if-= -2972 error trace, "seventh arg for 'bezier' is not a number (screen y coordinate of end point)" +2972 error trace, "seventh arg for 'bezier' is not a number (screen y coordinate of end point)" 2973 return 2974 } 2975 var seventh-value/eax: (addr float) <- get seventh, number-data @@ -3070,7 +3070,7 @@ if ('onhashchange' in window) { 3005 } 3006 var eighth-value/eax: (addr float) <- get eighth, number-data 3007 var color/eax: int <- convert *eighth-value -3008 draw-monotonic-bezier screen, x0, y0, x1, y1, x2, y2, color +3008 draw-monotonic-bezier screen, x0, y0, x1, y1, x2, y2, color 3009 # return nothing 3010 } 3011 @@ -3301,13 +3301,13 @@ if ('onhashchange' in window) { 3236 error trace, "first arg for 'lines' is not a screen" 3237 return 3238 } -3239 var screen-ah/eax: (addr handle screen) <- get first, screen-data -3240 var _screen/eax: (addr screen) <- lookup *screen-ah -3241 var screen/edx: (addr screen) <- copy _screen +3239 var screen-ah/eax: (addr handle screen) <- get first, screen-data +3240 var _screen/eax: (addr screen) <- lookup *screen-ah +3241 var screen/edx: (addr screen) <- copy _screen 3242 # compute dimensions 3243 var dummy/eax: int <- copy 0 3244 var height/ecx: int <- copy 0 -3245 dummy, height <- screen-size screen +3245 dummy, height <- screen-size screen 3246 var result/xmm0: float <- convert height 3247 new-float out, result 3248 } @@ -3341,13 +3341,13 @@ if ('onhashchange' in window) { 3276 error trace, "first arg for 'columns' is not a screen" 3277 return 3278 } -3279 var screen-ah/eax: (addr handle screen) <- get first, screen-data -3280 var _screen/eax: (addr screen) <- lookup *screen-ah -3281 var screen/edx: (addr screen) <- copy _screen +3279 var screen-ah/eax: (addr handle screen) <- get first, screen-data +3280 var _screen/eax: (addr screen) <- lookup *screen-ah +3281 var screen/edx: (addr screen) <- copy _screen 3282 # compute dimensions 3283 var width/eax: int <- copy 0 3284 var dummy/ecx: int <- copy 0 -3285 width, dummy <- screen-size screen +3285 width, dummy <- screen-size screen 3286 var result/xmm0: float <- convert width 3287 new-float out, result 3288 } @@ -3381,13 +3381,13 @@ if ('onhashchange' in window) { 3316 error trace, "first arg for 'width' is not a screen" 3317 return 3318 } -3319 var screen-ah/eax: (addr handle screen) <- get first, screen-data -3320 var _screen/eax: (addr screen) <- lookup *screen-ah -3321 var screen/edx: (addr screen) <- copy _screen +3319 var screen-ah/eax: (addr handle screen) <- get first, screen-data +3320 var _screen/eax: (addr screen) <- lookup *screen-ah +3321 var screen/edx: (addr screen) <- copy _screen 3322 # compute dimensions 3323 var width/eax: int <- copy 0 3324 var dummy/ecx: int <- copy 0 -3325 width, dummy <- screen-size screen +3325 width, dummy <- screen-size screen 3326 width <- shift-left 3/log2-font-width 3327 var result/xmm0: float <- convert width 3328 new-float out, result @@ -3422,13 +3422,13 @@ if ('onhashchange' in window) { 3357 error trace, "first arg for 'height' is not a screen" 3358 return 3359 } -3360 var screen-ah/eax: (addr handle screen) <- get first, screen-data -3361 var _screen/eax: (addr screen) <- lookup *screen-ah -3362 var screen/edx: (addr screen) <- copy _screen +3360 var screen-ah/eax: (addr handle screen) <- get first, screen-data +3361 var _screen/eax: (addr screen) <- lookup *screen-ah +3362 var screen/edx: (addr screen) <- copy _screen 3363 # compute dimensions 3364 var dummy/eax: int <- copy 0 3365 var height/ecx: int <- copy 0 -3366 dummy, height <- screen-size screen +3366 dummy, height <- screen-size screen 3367 height <- shift-left 4/log2-font-height 3368 var result/xmm0: float <- convert height 3369 new-float out, result @@ -3460,7 +3460,7 @@ if ('onhashchange' in window) { 3395 var first-type/eax: (addr int) <- get first, type 3396 compare *first-type, 1/number 3397 break-if-= -3398 error trace, "first arg for 'screen' is not a number (screen width in pixels)" +3398 error trace, "first arg for 'screen' is not a number (screen width in pixels)" 3399 return 3400 } 3401 var first-value-a/ecx: (addr float) <- get first, number-data @@ -3488,7 +3488,7 @@ if ('onhashchange' in window) { 3423 var second-type/eax: (addr int) <- get second, type 3424 compare *second-type, 1/number 3425 break-if-= -3426 error trace, "second arg for 'screen' is not a number (screen height in pixels)" +3426 error trace, "second arg for 'screen' is not a number (screen height in pixels)" 3427 return 3428 } 3429 var second-value-a/edx: (addr float) <- get second, number-data @@ -3526,9 +3526,9 @@ if ('onhashchange' in window) { 3461 error trace, "first arg for 'blit' is not a screen" 3462 return 3463 } -3464 var src-ah/eax: (addr handle screen) <- get first, screen-data -3465 var _src/eax: (addr screen) <- lookup *src-ah -3466 var src/ecx: (addr screen) <- copy _src +3464 var src-ah/eax: (addr handle screen) <- get first, screen-data +3465 var _src/eax: (addr screen) <- lookup *src-ah +3466 var src/ecx: (addr screen) <- copy _src 3467 # args->right->left 3468 var right-ah/eax: (addr handle cell) <- get args, right 3469 var right/eax: (addr cell) <- lookup *right-ah @@ -3555,11 +3555,11 @@ if ('onhashchange' in window) { 3490 error trace, "second arg for 'blit' is not a screen" 3491 return 3492 } -3493 var dest-ah/eax: (addr handle screen) <- get second, screen-data -3494 var dest/eax: (addr screen) <- lookup *dest-ah +3493 var dest-ah/eax: (addr handle screen) <- get second, screen-data +3494 var dest/eax: (addr screen) <- lookup *dest-ah 3495 # -3496 convert-screen-cells-to-pixels src -3497 copy-pixels src, dest +3496 convert-screen-cells-to-pixels src +3497 copy-pixels src, dest 3498 } 3499 3500 fn apply-array _args-ah: (addr handle cell), _out-ah: (addr handle cell), trace: (addr trace) { @@ -3866,9 +3866,9 @@ if ('onhashchange' in window) { 3801 error trace, "first arg for 'img' is not a screen" 3802 return 3803 } -3804 var screen-ah/eax: (addr handle screen) <- get first, screen-data -3805 var _screen/eax: (addr screen) <- lookup *screen-ah -3806 var screen/edi: (addr screen) <- copy _screen +3804 var screen-ah/eax: (addr handle screen) <- get first, screen-data +3805 var _screen/eax: (addr screen) <- lookup *screen-ah +3806 var screen/edi: (addr screen) <- copy _screen 3807 # x1 = args->right->left->value 3808 var rest-ah/eax: (addr handle cell) <- get args, right 3809 var _rest/eax: (addr cell) <- lookup *rest-ah @@ -3925,7 +3925,7 @@ if ('onhashchange' in window) { 3860 var third-type/eax: (addr int) <- get third, type 3861 compare *third-type, 1/number 3862 break-if-= -3863 error trace, "third arg for 'img' is not a number (screen x coordinate of top left)" +3863 error trace, "third arg for 'img' is not a number (screen x coordinate of top left)" 3864 return 3865 } 3866 var third-value/eax: (addr float) <- get third, number-data @@ -3954,7 +3954,7 @@ if ('onhashchange' in window) { 3889 var fourth-type/eax: (addr int) <- get fourth, type 3890 compare *fourth-type, 1/number 3891 break-if-= -3892 error trace, "fourth arg for 'img' is not a number (screen x coordinate of end point)" +3892 error trace, "fourth arg for 'img' is not a number (screen x coordinate of end point)" 3893 return 3894 } 3895 var fourth-value/eax: (addr float) <- get fourth, number-data @@ -3983,7 +3983,7 @@ if ('onhashchange' in window) { 3918 var fifth-type/eax: (addr int) <- get fifth, type 3919 compare *fifth-type, 1/number 3920 break-if-= -3921 error trace, "fifth arg for 'img' is not a number (screen y coordinate of end point)" +3921 error trace, "fifth arg for 'img' is not a number (screen y coordinate of end point)" 3922 return 3923 } 3924 var fifth-value/eax: (addr float) <- get fifth, number-data @@ -4026,7 +4026,7 @@ if ('onhashchange' in window) { 3961 var img-cell/eax: (addr cell) <- lookup *img-cell-ah 3962 var img-ah/eax: (addr handle image) <- get img-cell, image-data 3963 var img/eax: (addr image) <- lookup *img-ah -3964 render-image screen, img, x y, w h +3964 render-image screen, img, x y, w h 3965 # return nothing 3966 } 3967 -- cgit 1.4.1-2-gfad0