blob: ebf431616295f82f9a35937f68cb7fc6b534c995 (
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
(function new-screen [
(default-space:space-address <- new space:literal 30:literal)
(nrows:integer <- next-input)
(ncols:integer <- next-input)
(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 <- not-equal rowidx:integer nrows:integer)
(loop-if x:boolean)
}
(reply result:screen-address)
])
|