get "libhdr" let reads(v) be $( v%0 := 0 $( let ch = rdch() if ch = '*N' | ch = endstreamch break v%0 := v%0 + 1 v%(v%0) := ch $) repeat $) let digits(v) = valof $( for i=1 to v%0 $( unless '0' <= v%i <= '9' resultis false v%i := v%i - '0' $) resultis true $) let base20(v) be $( let i = ? for j=v%0-1 to 1 by -1 for i=1 to j $( v%(i+1) := v%(i+1) + 10*(v%i & 1) v%i := v%i >> 1 $) i := 1 while v%i=0 & i " @ ", " ") or $( num := num - line*5 writes(num<=0 -> " ", num =1 -> " . ", num =2 -> " .. ", num =3 -> "... ", num =4 -> "....", "----") $) border(v%0) for l=3 to 0 by -1 $( for d=1 to v%0 $( wrch('|') part(v%d, l) $) writes("|*N") $) border(v%0) $) let start() be $( let v = vec 1+255/BYTESPERWORD $( writes("Number? ") reads(v) if v%0=0 finish unless digits(v) loop base20(v) mayan(v) $) repeat $)