blob: b390d42a6abb064e9da724a80345a42b4ad63796 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
; a screen is an array of pointers to lines, in turn arrays of characters
(def new-screen [
((default-scope scope-address) <- new (scope literal) (30 literal))
((nrows integer) <- arg)
((ncols integer) <- arg)
((result screen-address) <- new (screen literal) (nrows integer))
((rowidx integer) <- copy (0 literal))
{ begin
((curr-line-address-address line-address-address) <- index-address (result screen-address deref) (rowidx integer))
((curr-line-address-address line-address-address deref) <- new (line literal) (ncols integer))
((curr-line-address line-address) <- copy (curr-line-address-address line-address-address deref))
((rowidx integer) <- add (rowidx integer) (1 literal))
((x boolean) <- neq (rowidx integer) (nrows integer))
(continue-if (x boolean))
}
(reply (result screen-address))
])
|