procedure kcolor(cols, rows, palette)
   local i, j, ims, width

   ims := *cols || "," || palette || ","

   width := *col

   if *cols % 2 ~= 0 then cols ||:= "~"	# dummy

   every i := 1 to *rows by 2 do
      ims ||:= left(collate(decollate(cols, i),
         repl(rows[i], *cols / 2)), width) ||
            left(collate(repl(rows[i + 1], *cols / 2),
               decollate(cols, i + 1)), width)

   return ims

end