51 lines
771 B
Text
51 lines
771 B
Text
get "libhdr"
|
|
|
|
manifest $(
|
|
amount = 15
|
|
bufsize = 128
|
|
$)
|
|
|
|
let move(dest,src) be
|
|
$( until !src = 0 do
|
|
$( !dest := !src
|
|
dest := dest + 1
|
|
src := src + 1
|
|
$)
|
|
!dest := 0
|
|
$)
|
|
|
|
let count(v) = valof
|
|
$( let i=1
|
|
while v!i = !v do i := i + 1
|
|
resultis i
|
|
$)
|
|
|
|
let looksay(in,out) be
|
|
$( until !in = 0 do
|
|
$( let n = count(in)
|
|
out!0 := n
|
|
out!1 := !in
|
|
out := out + 2
|
|
in := in + n
|
|
$)
|
|
!out := 0
|
|
$)
|
|
|
|
let show(v) be
|
|
$( until !v = 0 do
|
|
$( writen(!v)
|
|
v := v + 1
|
|
$)
|
|
wrch('*N')
|
|
$)
|
|
|
|
let start() be
|
|
$( let buf1 = vec bufsize and buf2 = vec bufsize
|
|
buf1!0 := 1
|
|
buf1!1 := 0
|
|
for n = 1 to amount do
|
|
$( show(buf1)
|
|
looksay(buf1,buf2)
|
|
move(buf1,buf2)
|
|
$)
|
|
$)
|