Looking at the actual IBM_VGA_8x8.bin file: the file size is 1024 bytes (8192 bits). I calculated the entropy of the data to be only 638 bits of information.
MATLAB code:
fid = fopen('IBM_PC_BIOS_1981-04-24_HALF_8x8.bin','r');
ibmVga = fread(fid);
fclose(fid);
p = histogram(double(ibmVga),255);
E = -sum(log2(p.Values(p.Values > 0)).*log2(p.Values(p.Values > 0)));Word size matters when calculating entropy. Calculating entropy on this file using 2 to 64 bits nets a minimum information of 860 bits using a 64 bit word size. Moving past a 64 bit word size requires rethinking some things. MATLAB doesn't have great support for data sizes greater than 64 bits (and I'm certain the performance impact would be great).
words = double(unique(X))';
binEdges = [words-0.5; words+0.5];
binEdges = unique(binEdges(:));
P = histcounts(X, binEdges) / M;
P(P == 0) = [];
M = numel(X);
H = -sum(P .* log(P) ./ log(max([nBits, 2]))) / nBits * log2(max([nBits, 2]));
E = H * M * nBits;However I don't think a 1664 bits is an accurate count. You must subtract the information provided by knowing it represents the alphabet, which constrains the number of possibilities to only a few choices per letter - say 2 or 3 bits at most. So a 64-character alphabet is right on the edge of "reasonably nontrivial", due entirely down to the combinatorial complexity of choosing which glyph to use in each case. A single glyph should not be copyrightable.