GROB is a (usually) bi-level raster graphics format associated with HP-48 and HP-49 series calculators.
There are two ways to encode a GROB image: "binary" and "ASCII". Sometimes, GROB images are also ASC-encoded.
Binary format has an 18-byte header, followed by the pixel data.
Although the format only really supports bi-level images, some images are intended to be interpreted as grayscale with 2 bits/pixel (or perhaps more). The physical image consists of the bit-planes stacked vertically. Unfortunately, there does not seem to be any way to detect whether this is the case.
A binary GROB file begins with "
HPHP48" or "
HPHP49", and has bytes
1E 2B at offset 8.
ASCII format apparently begins with "
GROB ". An ASCII GROB might be embedded inside a script, or preceded by a "
%%HP" header line, so it won't necessarily start at the beginning of the file.
- My HP48 and HP49 software → hp48-mf-0.6.zip → hp48.dtx → grob2eps.c