Picture File Format

The cybiko internal graphics memory format is very simple. It is exactly 4000 bytes. (160×100/4) It is formatted left to right, top to bottom, 4 pixels per byte, most significant bits to the left, 0=white,1=light,2=dark,3=black:

This is an exact representation of the 2bpp used by the LCD graphics display.

 i.e. $E4 =
 pixel 0,0 = black
 pixel 1,0 = dark
 pixel 2,0 = light
 pixel 3,0 = white

The full screen *.pic files that are created with the SDK Converter or the CyberLoad Converter are the same format except 8 header bytes are added or 4008 bytes total.

Example code snippet that will save the screen to a file.

void SaveScreenShot(struct DisplayGraphics* gfx,char* filename)
	int err;
        //output file
        struct FileOutput* pFile;
        //allocate output file structure
        pFile=(struct FileOutput*)malloc(sizeof(struct FileOutput));
        //construct output file
        //open output file
        //write the header
        FileOutput_write_byte(pFile,0x02);//this is a pic file
        FileOutput_write_byte(pFile,0x01);//only one picture in file
        FileOutput_write_byte(pFile,0xA0);//width of 160
        FileOutput_write_byte(pFile,0x64);//height of 100
        FileOutput_write_byte(pFile,0x00);//left side
        FileOutput_write_byte(pFile,0x00);//top side
        //write pixel information
        err = FileOutput_write(pFile,DisplayGraphics_get_buf_addr(gfx),4000) != 4000;
        //destroy the file struct
	beep( err ? BEEP_ERROR : BEEP_OK );