public void save() {
   if (location == null) return;
   File folder = new File(location);
   File dat = new File(folder, LEVELS_DAT_FILE);
   File lst = new File(folder, LEVELS_LST_FILE);
   SupaplexLevel[] ls = model.getLevels();
   int levelLength = model.getField().getSize() + 96;
   byte[] bs = new byte[ls.length * levelLength];
   for (int i = 0; i < ls.length; i++) {
     byte[] lb = ls[i].getBytes();
     System.arraycopy(lb, 0, bs, levelLength * i, levelLength);
   }
   write(dat, bs);
   bs = new byte[28 * ls.length];
   for (int i = 0; i < ls.length; i++) {
     String n = "" + (i + 1);
     while (n.length() < 3) n = "0" + n;
     n += ' ';
     n += "-" + ls[i].getFullName() + "-";
     n += (char) 10;
     byte[] b = n.getBytes();
     System.arraycopy(b, 0, bs, 28 * i, 28);
   }
   write(lst, bs);
 }