anchor.diff:      ndk := undk.open('stuff.ndk');
       cmd := ui.ZInput.Create(self);
       cmd.x := xMax div 2 - 16; cmd.y := yMax div 2;
  -    cmd.dlen := 32; cmd.maxlen := cmd.dlen;
  +    cmd.w := 32; cmd.maxlen := cmd.w;
       cmd.tcol := $11f3; cmd.work := '';
       cmd.OnAccept := self.OnCmdAccept;
  +    _views.append(cmd);
       wrap := uww.TWordWrap.Create(self); wrap.width := kvm.width;
       buf := TBuffer.Create(64, kvm.height);
       self.loadPage('home');
     end;
   
   procedure TTokEd.done;
  -  begin
  -    wrap.Free;
  +  begin wrap.Free
     end;
    
  
positive.code:   end;
  
  procedure TTokEd.OnCmdAccept( s : string );
    begin
      buf.addline(s); cmd.reset; cmd.work :=''; _dirty := true;
    end;
    
  procedure TTokEd.onspace;
    begin
      oncmdaccept(cmd.work);
    end;
  
  
negative.code:     if length(edges) > 0 then begin
        for i := 0 to high(edges) do buf.addline(edges[i].obj.s)
      end;
    end;
  
  procedure TTokEd.draw;
    var word : string; y : byte = 0;
        tok : ug2d.IBounds2D;
    begin
      bg('k'); fg('w'); gotoxy(0,y); clrscr; wrap.reset;
      tok := ug2d.bounds2d(0, 0, 1, 1);
      for word in buf.tostrings do begin
        tok.w := length(word); wrap.place(tok);
        if tok.y > y then begin y := tok.y; gotoxy(0,y) end
  