Article 1653 of comp.sys.handhelds:
Path: en.ecn.purdue.edu!pur-ee!mentor.cc.purdue.edu!purdue!tut.cis.ohio-state.edu!ucbvax!INDYVAX.BITNET!IUGC500
From: IUGC500@INDYVAX.BITNET
Newsgroups: comp.sys.handhelds
Subject: Grob format's
Message-ID: <9003281622.AA15446@hercules.csl.sri.com>
Date: 28 Mar 90 16:22:00 GMT
Sender: daemon@ucbvax.BERKELEY.EDU
Distribution: inet
Organization: The Internet
Lines: 52

Okay, for those of you with 48sx's, and are curious....
This is what i've figured out about the format of GROB's

An example would probably be the easiest.

say you've got a
Graphic 7 x 3 that looks (internally) - > GROB 7 3 B2B2B2

it looks on the screen (1=pixels on, 0=pixels off)
1101010
1101010
1101010
                (yes, I know its a dumb object but it serves my point)

the GROB's are padded with zero bits untill they are a even multiple of 8
so that it comes out to be a even byte, so that each line gets at least
one complete byte.

now when they're put on the screen, they're not treated as bytes, but as
4 bit nybbles, with the LSB on the left, and MSB to the right (similar
to the way Apple //'s did they're display memory)

so that one line of our graphic object (in binary is)
10110010
if you grab the first four bits, turn them around, and display them, and
continue to the next four it works out ie.
1  0  1  1  0  0  1  0
|  |  |  |  |  |  |  |
|  |  |  |  |  |  |  --- Bit #5
|  |  |  |  |  |  ------ Bit #6
|  |  |  |  |  --------- Bit #7 (right most display'd bit)
|  |  |  |  ------------ Padded Zero Bit
|  |  |  --------------- Bit #1 (left most display'd bit)
|  |  ------------------ Bit #2
|  --------------------- Bit #3
------------------------ Bit #4

I think this explains them well enough that you should be able to convert
28S LCD screens to 48SX GROB's.

For those of you who don't know, 28S lcd screens are created by taking
a vertical column of 8 dots, converting it into a binary # with
LSB at top, and MSB at bottom, and then converting the #, into its character
equivilent. (ie convert binary to decimal and then use the CHR function)

I'm also going to post this to comp.sys.handhelds to.....

Hope this explains them a bit
David Holland
IUGC500@INDYVAX.BITNET

PS- this could be slightly messed up, bit it seems to work.


