Basic uses 1-based arrays.
I know that
90 get #1,c+b // read byte "offset + index"
But that's not an array - it's file, isn't it?
The "get" command gets one byte from the file pointer "1" at index "c+b" and stores it in the string variable "d$". Then, using "asc(d$)" gives me the value of the byte. For example, if the byte at file location 24 was the letter "A", I would get this:
* get #1, 24
* (now d$ == "A")
* asc(d$) == 65 (a.k.a. 0x41)
Let's say the first 8 bytes of the font file are 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07.
The result would be:
fin(0) == 0
fin(1) == 1
fin(2) == 2
......
fin(6) == 6
fin(7) == 7
See? fin() in BASIC is the same thing as fin[] in C. At the top of the program where I do "dim fin(8)" is the same thing as "char fin[8];" in C.
Make sense?