about summary refs log tree commit diff stats
path: root/edit.mu
blob: be32f94384487a51cb03ada3a5995d4e9cc7a036 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
; a screen is an array of pointers to lines, in turn arrays of characters

(new-screen
  ((601 integer) <- arg)
  ((602 integer) <- arg)
  ((603 screen-address) <- new (screen literal) (601 integer))
  ((604 integer) <- copy (0 literal))
  { begin
    ((606 line-address-address) <- index-address (603 screen-address deref) (604 integer))
    ((606 line-address-address deref) <- new (line literal) (602 integer))
    ((605 line-address) <- copy (606 line-address-address deref))
    ((604 integer) <- add (604 integer) (1 literal))
    ((607 boolean) <- neq (604 integer) (601 integer))
    (continue-if (607 boolean))
  }
  (reply (603 screen-address))
)