def allocClusters(start, num = 1)
      first = 0; clus = 0
      if start == 0 # Start chain.
        first = getNextAvailableCluster(@rootCluster)
        putFatEntry(first, CC_END_MARK)
        clus = first; num -= 1
      else # Allocate on chain - seek to end.
        clus = start
        # while (nxt = getFatEntry(clus)) <= CC_END_OF_CHAIN do clus = nxt end
        loop do
          nxt = getFatEntry(clus)
          break if nxt > CC_END_OF_CHAIN
          clus = nxt
        end
      end
      # Allocate num clusters, put end mark at end.
      num.times do
        nxt = getNextAvailableCluster(clus)
        first = nxt if first == 0
        putFatEntry(clus, nxt)
        putCluster(nxt, MemoryBuffer.create(@bytesPerCluster))
        clus = nxt
        putFatEntry(clus, CC_END_MARK)
      end
      first
    end
def allocClusters(start, num = 1)
      first = 0; clus = 0
      if start == 0 # Start chain.
        first = getNextAvailableCluster(@rootCluster)
        putFatEntry(first, CC_END_MARK)
        clus = first; num -= 1
      else # Allocate on chain - seek to end.
        clus = start
        # while (nxt = getFatEntry(clus)) <= CC_END_OF_CHAIN do clus = nxt end
        loop do
          nxt = getFatEntry(clus)
          break if nxt > CC_END_OF_CHAIN
          clus = nxt
        end
      end
      # Allocate num clusters, put end mark at end.
      num.times do
        nxt = getNextAvailableCluster(clus)
        first = nxt if first == 0
        putFatEntry(clus, nxt)
        putCluster(nxt, MemoryBuffer.create(@bytesPerCluster))
        clus = nxt
        putFatEntry(clus, CC_END_MARK)
      end
      first
    end
Allocate a number of clusters on a particular cluster chain or start a chain.
 Start can be anywhere on the chain, but most efficient when just before end.
 If start is 0 then start a chain (for file data).