docs: private void allocate(short id) throws IdAllocatorException
     {
        if (tc.isEntryEnabled()) SibTr.entry(tc, "allocate", ""+id);
        
        // Find the position in the allocation map byte array and set its bit on
        int bitToSet = (id % 8) + 1;
        int allocMapPos = (int) Math.floor((float) (id) / (float) 8);
        
        byte currentMapSetting = (byte) allocMap[allocMapPos];
        
        // Set the bit on
        if (bitToSet == 1)
        {
           if ((currentMapSetting & 0x01) != 0) throw new IdAllocatorException();
           currentMapSetting |= 0x01;
        }
        else if (bitToSet == 2)
        {
           if ((currentMapSetting & 0x02) != 0) throw new IdAllocatorException();
           currentMapSetting |= 0x02;
        }
        else if (bitToSet == 3)
        {
           if ((currentMapSetting & 0x04) != 0) throw new IdAllocatorException();
           currentMapSetting |= 0x04;
        }
        else if (bitToSet == 4)
        {
           if ((currentMapSetting & 0x08) != 0) throw new IdAllocatorException();
           currentMapSetting |= 0x08;
        }
        else if (bitToSet == 5)
        {
           if ((currentMapSetting & 0x10) != 0) throw new IdAllocatorException();
           currentMapSetting |= 0x10;
        }
        else if (bitToSet == 6)
        {
           if ((currentMapSetting & 0x20) != 0) throw new IdAllocatorException();
           currentMapSetting |= 0x20;
        }
        else if (bitToSet == 7)
        {
           if ((currentMapSetting & 0x40) != 0) throw new IdAllocatorException();
           currentMapSetting |= 0x40;
        }
        else if (bitToSet == 8)
        {
           if ((currentMapSetting & 0x80) != 0) throw new IdAllocatorException();
           currentMapSetting |= 0x80;
        }
        
        allocMap[allocMapPos] = (byte) currentMapSetting;
        
        if (tc.isEntryEnabled()) SibTr.exit(tc, "allocate");
     }