Basic 3D graphics for the MBED application-shield on-board LCD (initial/incomplete).

Dependents:   co657_lcdplay

Committer:
co657_frmb
Date:
Sun Nov 29 00:03:41 2015 +0000
Revision:
9:db4ec6f7d8b2
Parent:
8:55ee7af49f47
Font updates.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
co657_frmb 8:55ee7af49f47 1 /*
co657_frmb 8:55ee7af49f47 2 * g3d_font04b.cpp -- G3D font rendering for Yuji Oshimoo's font 04b30 (www.04.jp.org)
co657_frmb 8:55ee7af49f47 3 * Fred Barnes, University of Kent
co657_frmb 8:55ee7af49f47 4 */
co657_frmb 8:55ee7af49f47 5
co657_frmb 8:55ee7af49f47 6
co657_frmb 8:55ee7af49f47 7 #include "mbed.h"
co657_frmb 8:55ee7af49f47 8 #include "C12832.h"
co657_frmb 8:55ee7af49f47 9 #include "gfx3d.h"
co657_frmb 8:55ee7af49f47 10
co657_frmb 8:55ee7af49f47 11 static uint8_t font_metrics_04b[96] = {
co657_frmb 8:55ee7af49f47 12 0xe1, 0x37, 0x2d, 0x2f, 0xe1, 0x2f, 0xe1, 0x25, 0x38, 0x47, 0x37, 0x2f, 0x25, 0x2d, 0x25, 0x2f,
co657_frmb 8:55ee7af49f47 13 0x2f, 0x2a, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x25, 0x25, 0x2a, 0x2d, 0x2a, 0x2f,
co657_frmb 8:55ee7af49f47 14 0xe1, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x37, 0x2f, 0x2f, 0x2e, 0x20, 0x2f, 0x2f,
co657_frmb 8:55ee7af49f47 15 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x20, 0x2f, 0x2f, 0x2f, 0x37, 0x2f, 0x37, 0x38, 0x2f,
co657_frmb 8:55ee7af49f47 16 0x38, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x26, 0x2d, 0x2d, 0x2c, 0x2e, 0x2d, 0x2d,
co657_frmb 8:55ee7af49f47 17 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2e, 0x2d, 0x2d, 0x2d, 0x2a, 0x37, 0x2a, 0x38, 0x00,
co657_frmb 8:55ee7af49f47 18 };
co657_frmb 8:55ee7af49f47 19
co657_frmb 9:db4ec6f7d8b2 20 /* 2x8-bit vertical slices, LSB=topmost (big-endian pairs) */
co657_frmb 8:55ee7af49f47 21 static uint8_t font_data_04b[96*32] = {
co657_frmb 8:55ee7af49f47 22 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
co657_frmb 8:55ee7af49f47 23 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
co657_frmb 8:55ee7af49f47 24 0x00, 0x3c, 0x71, 0xe2, 0xfb, 0xfa, 0xfb, 0xfa, 0xfb, 0xfe, 0x71, 0xfe, 0x00, 0x3c, 0x00, 0x00,
co657_frmb 8:55ee7af49f47 25 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
co657_frmb 8:55ee7af49f47 26 0x01, 0xf8, 0x03, 0xc4, 0x03, 0xf4, 0x03, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xf8,
co657_frmb 8:55ee7af49f47 27 0x03, 0xc4, 0x03, 0xf4, 0x03, 0xf4, 0x03, 0xfc, 0x01, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
co657_frmb 8:55ee7af49f47 28 0x00, 0x60, 0x18, 0xe0, 0x7f, 0xfc, 0xff, 0xe2, 0xff, 0xfa, 0xff, 0xfa, 0x7f, 0xfc, 0x08, 0xe0,
co657_frmb 8:55ee7af49f47 29 0x7f, 0xfc, 0xff, 0xfe, 0xff, 0xfe, 0xff, 0xfe, 0x7f, 0xfc, 0x18, 0xe0, 0x00, 0x60, 0x00, 0x00,
co657_frmb 8:55ee7af49f47 30 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
co657_frmb 8:55ee7af49f47 31 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
co657_frmb 8:55ee7af49f47 32 0x70, 0x1c, 0xf8, 0x22, 0xfe, 0x3a, 0xfe, 0x3a, 0x7f, 0x1c, 0x3f, 0xc0, 0x3f, 0xc0, 0x1f, 0xe0,
co657_frmb 8:55ee7af49f47 33 0x07, 0xf8, 0x07, 0xf8, 0x71, 0xfc, 0xf8, 0xfe, 0xf8, 0xfe, 0xf8, 0x3e, 0x70, 0x1c, 0x00, 0x00,
co657_frmb 8:55ee7af49f47 34 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
co657_frmb 8:55ee7af49f47 35 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
co657_frmb 8:55ee7af49f47 36 0x01, 0xf8, 0x03, 0xc4, 0x03, 0xf4, 0x03, 0xf4, 0x01, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
co657_frmb 8:55ee7af49f47 37 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
co657_frmb 8:55ee7af49f47 38 0x07, 0x80, 0x3f, 0xf0, 0x3f, 0xf8, 0x7f, 0xf0, 0xff, 0xfa, 0xf8, 0x7e, 0xf0, 0x1e, 0x60, 0x0c,
co657_frmb 8:55ee7af49f47 39 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
co657_frmb 8:55ee7af49f47 40 0x70, 0x0c, 0xf0, 0x12, 0xff, 0xfe, 0xff, 0xfe, 0x7f, 0xfc, 0x3f, 0xf8, 0x0f, 0xf0, 0x00, 0x00,
co657_frmb 8:55ee7af49f47 41 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
co657_frmb 8:55ee7af49f47 42 0x00, 0xdc, 0x01, 0xe2, 0x01, 0xfa, 0x01, 0xfa, 0x00, 0xfc, 0x01, 0xfe, 0x00, 0xdc, 0x00, 0x00,
co657_frmb 8:55ee7af49f47 43 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
co657_frmb 8:55ee7af49f47 44 0x03, 0x00, 0x07, 0xc0, 0x07, 0xc0, 0x07, 0xc0, 0x7f, 0xfc, 0xff, 0xe2, 0xff, 0xfa, 0xff, 0xfa,
co657_frmb 8:55ee7af49f47 45 0xff, 0xfe, 0xff, 0xfe, 0x7f, 0xfc, 0x07, 0xc0, 0x07, 0xc0, 0x07, 0xc0, 0x03, 0x00, 0x00, 0x00,
co657_frmb 8:55ee7af49f47 46 0x7c, 0x00, 0xe2, 0x00, 0xfa, 0x00, 0xfa, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
co657_frmb 8:55ee7af49f47 47 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
co657_frmb 8:55ee7af49f47 48 0x07, 0x00, 0x08, 0xc0, 0x0e, 0xc0, 0x0e, 0xc0, 0x0f, 0xc0, 0x0f, 0xc0, 0x0f, 0xc0, 0x0f, 0xc0,
co657_frmb 8:55ee7af49f47 49 0x0f, 0xc0, 0x0f, 0xc0, 0x0f, 0xc0, 0x0f, 0xc0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
co657_frmb 8:55ee7af49f47 50 0x38, 0x00, 0x44, 0x00, 0x74, 0x00, 0x74, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
co657_frmb 8:55ee7af49f47 51 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
co657_frmb 8:55ee7af49f47 52 0x70, 0x00, 0xf8, 0x00, 0xfc, 0x00, 0xfe, 0x00, 0x7f, 0x00, 0x3f, 0xc0, 0x1f, 0xe0, 0x0f, 0xf0,
co657_frmb 8:55ee7af49f47 53 0x07, 0xf8, 0x07, 0xf8, 0x03, 0xfc, 0x01, 0xfe, 0x00, 0xfe, 0x00, 0x3e, 0x00, 0x1c, 0x00, 0x00,
co657_frmb 8:55ee7af49f47 54 0x3f, 0xf8, 0x7f, 0xf0, 0xff, 0xfa, 0xff, 0xfe, 0xff, 0xfe, 0xff, 0xfe, 0xff, 0xfe, 0xff, 0xfe,
co657_frmb 8:55ee7af49f47 55 0xf0, 0x0e, 0xf0, 0x0e, 0xf0, 0x0e, 0xff, 0xfe, 0xff, 0xfe, 0x7f, 0xfc, 0x3f, 0xf8, 0x00, 0x00,
co657_frmb 8:55ee7af49f47 56 0x00, 0x1c, 0x00, 0x02, 0x7f, 0xfa, 0x7f, 0xfa, 0xff, 0xfe, 0xff, 0xfe, 0xff, 0xfe, 0xff, 0xfe,
co657_frmb 8:55ee7af49f47 57 0x7f, 0xfc, 0x7f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
co657_frmb 8:55ee7af49f47 58 0x7f, 0x1c, 0xff, 0x02, 0xff, 0xda, 0xff, 0xda, 0xff, 0xde, 0xff, 0xde, 0xff, 0xde, 0xfb, 0xde,
co657_frmb 8:55ee7af49f47 59 0xfb, 0xde, 0xfb, 0xde, 0xfb, 0xfe, 0xfb, 0xfe, 0xfb, 0xfe, 0xf8, 0xfc, 0x70, 0xf8, 0x00, 0x00,
co657_frmb 8:55ee7af49f47 60 0x30, 0x08, 0x78, 0x10, 0xfb, 0xda, 0xfb, 0xde, 0xfb, 0xde, 0xfb, 0xde, 0xfb, 0xde, 0xfb, 0xde,
co657_frmb 8:55ee7af49f47 61 0xfb, 0xde, 0xfb, 0xde, 0xfb, 0xde, 0xff, 0xfe, 0xff, 0xfe, 0x7f, 0xfc, 0x3f, 0xf8, 0x00, 0x00,
co657_frmb 8:55ee7af49f47 62 0x07, 0xfc, 0x0f, 0xe2, 0x1f, 0xfa, 0x1f, 0xfa, 0x1f, 0xfe, 0x1f, 0xfc, 0x1e, 0x00, 0x7f, 0xfc,
co657_frmb 8:55ee7af49f47 63 0xff, 0xfe, 0xff, 0xfe, 0xff, 0xfe, 0xff, 0xfe, 0x7f, 0xfc, 0x1e, 0x00, 0x0c, 0x00, 0x00, 0x00,
co657_frmb 8:55ee7af49f47 64 0x71, 0xfc, 0xfb, 0xe2, 0xfb, 0xfa, 0xfb, 0xfa, 0xfb, 0xfe, 0xfb, 0xfe, 0xfb, 0xfe, 0xfb, 0xde,
co657_frmb 8:55ee7af49f47 65 0xfb, 0xde, 0xfb, 0xde, 0xff, 0xde, 0xff, 0xde, 0xff, 0xde, 0x7f, 0x1e, 0x3e, 0x1c, 0x00, 0x00,
co657_frmb 8:55ee7af49f47 66 0x3f, 0xf8, 0x7f, 0xf0, 0xff, 0xfa, 0xff, 0xfe, 0xff, 0xfe, 0xff, 0xfe, 0xff, 0xfe, 0xff, 0xfe,
co657_frmb 8:55ee7af49f47 67 0xf1, 0x8e, 0xf1, 0x8e, 0xf1, 0x8e, 0xff, 0x8e, 0xff, 0x8e, 0x7f, 0x04, 0x3e, 0x00, 0x00, 0x00,
co657_frmb 8:55ee7af49f47 68 0x00, 0x1c, 0x00, 0x02, 0x00, 0x1a, 0x00, 0x1a, 0x7e, 0x1e, 0xff, 0x1e, 0xff, 0xde, 0xff, 0xfe,
co657_frmb 8:55ee7af49f47 69 0xff, 0xfe, 0xff, 0xfe, 0x7f, 0xfe, 0x01, 0xfe, 0x01, 0xfe, 0x00, 0xfe, 0x00, 0x3c, 0x00, 0x00,
co657_frmb 8:55ee7af49f47 70 0x3e, 0xf8, 0x7f, 0xf0, 0xff, 0xfa, 0xff, 0xfe, 0xff, 0xfe, 0xff, 0xfe, 0xff, 0xfe, 0xff, 0xfe,
co657_frmb 8:55ee7af49f47 71 0xf1, 0x8e, 0xf1, 0x8e, 0xf1, 0x8e, 0xff, 0xfe, 0xff, 0xfe, 0x7f, 0xfc, 0x3e, 0xf8, 0x00, 0x00,
co657_frmb 8:55ee7af49f47 72 0x00, 0xf8, 0x01, 0xf0, 0x03, 0xfa, 0x43, 0xfe, 0xe3, 0xfe, 0xe3, 0xfe, 0xfb, 0xfe, 0xfb, 0xfe,
co657_frmb 8:55ee7af49f47 73 0x7f, 0x8e, 0x7f, 0x8e, 0x3f, 0x8e, 0x1f, 0xfe, 0x1f, 0xfe, 0x07, 0xfc, 0x01, 0xf8, 0x00, 0x00,
co657_frmb 8:55ee7af49f47 74 0x3c, 0x38, 0x78, 0xc4, 0x78, 0xf4, 0x78, 0xf4, 0x3c, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
co657_frmb 8:55ee7af49f47 75 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
co657_frmb 8:55ee7af49f47 76 0x7e, 0x1c, 0xfc, 0x62, 0xfc, 0x7a, 0xfc, 0x7a, 0x7e, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
co657_frmb 8:55ee7af49f47 77 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
co657_frmb 8:55ee7af49f47 78 0x07, 0x80, 0x0f, 0xe0, 0x0f, 0xe0, 0x3f, 0xf8, 0x7f, 0xe0, 0xfc, 0x7a, 0xfc, 0x7a, 0xf0, 0x1e,
co657_frmb 8:55ee7af49f47 79 0x70, 0x1c, 0x70, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
co657_frmb 8:55ee7af49f47 80 0x38, 0x38, 0x7c, 0x44, 0x7c, 0x74, 0x7c, 0x74, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c,
co657_frmb 8:55ee7af49f47 81 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x38, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
co657_frmb 8:55ee7af49f47 82 0x60, 0x1c, 0xe0, 0x02, 0xf8, 0x3a, 0xf8, 0x3a, 0x7f, 0xfc, 0x3f, 0xf8, 0x1f, 0xe0, 0x0f, 0xf0,
co657_frmb 8:55ee7af49f47 83 0x07, 0xc0, 0x07, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
co657_frmb 8:55ee7af49f47 84 0x00, 0x1c, 0x00, 0x02, 0x00, 0x1a, 0x00, 0x1a, 0x70, 0x1e, 0xfd, 0xde, 0xfd, 0xde, 0xfd, 0xde,
co657_frmb 8:55ee7af49f47 85 0x71, 0xde, 0x71, 0xde, 0x01, 0xfe, 0x01, 0xfe, 0x01, 0xfe, 0x00, 0xfc, 0x00, 0xf8, 0x00, 0x00,
co657_frmb 8:55ee7af49f47 86 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
co657_frmb 8:55ee7af49f47 87 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
co657_frmb 8:55ee7af49f47 88 0x7f, 0xf8, 0xff, 0xf0, 0xff, 0xfa, 0xff, 0xfe, 0xff, 0xfe, 0xff, 0xfe, 0xff, 0xfe, 0x7f, 0xfe,
co657_frmb 8:55ee7af49f47 89 0x01, 0x8e, 0x01, 0x8e, 0x01, 0x8e, 0x7f, 0xfe, 0xff, 0xfc, 0xff, 0xf8, 0x7f, 0xf0, 0x00, 0x00,
co657_frmb 8:55ee7af49f47 90 0x7f, 0xfe, 0xff, 0xf0, 0xff, 0xfe, 0xff, 0xfe, 0xff, 0xfe, 0xff, 0xfe, 0xff, 0xfe, 0xff, 0xfe,
co657_frmb 8:55ee7af49f47 91 0xf1, 0x8e, 0xf1, 0x8e, 0xf1, 0x8e, 0xff, 0xfe, 0xff, 0xfe, 0x7f, 0xfe, 0x3e, 0xfc, 0x00, 0x00,
co657_frmb 8:55ee7af49f47 92 0x3f, 0xf8, 0x7f, 0xf0, 0xff, 0xfa, 0xff, 0xfe, 0xff, 0xfe, 0xff, 0xfe, 0xff, 0xfe, 0xf0, 0x0e,
co657_frmb 8:55ee7af49f47 93 0xf0, 0x0e, 0xf0, 0x0e, 0xf0, 0x0e, 0xf0, 0x0e, 0xf0, 0x0e, 0xf0, 0x0e, 0x60, 0x04, 0x00, 0x00,
co657_frmb 8:55ee7af49f47 94 0x7f, 0xfc, 0xff, 0xe2, 0xff, 0xfa, 0xff, 0xfa, 0xff, 0xfe, 0xff, 0xfe, 0xff, 0xfe, 0xff, 0xfe,
co657_frmb 8:55ee7af49f47 95 0xf0, 0x1e, 0xf0, 0x1e, 0xf0, 0x1e, 0xff, 0xfe, 0xff, 0xfc, 0x7f, 0xf8, 0x3f, 0xe0, 0x00, 0x00,
co657_frmb 8:55ee7af49f47 96 0x7f, 0xfe, 0xff, 0xf0, 0xff, 0xfe, 0xff, 0xfe, 0xff, 0xfe, 0xff, 0xfe, 0xff, 0xfe, 0xf1, 0x8e,
co657_frmb 8:55ee7af49f47 97 0xf1, 0x8e, 0xf1, 0x8e, 0xf1, 0x8e, 0xf1, 0x8e, 0xf1, 0x8e, 0xf1, 0x8e, 0x61, 0xc6, 0x00, 0x00,
co657_frmb 8:55ee7af49f47 98 0x7f, 0xfe, 0xff, 0xf0, 0xff, 0xfe, 0xff, 0xfe, 0xff, 0xfe, 0xff, 0xfe, 0x7f, 0xfe, 0x03, 0x8e,
co657_frmb 8:55ee7af49f47 99 0x03, 0x8e, 0x03, 0x8e, 0x03, 0x8e, 0x03, 0x8e, 0x03, 0x8e, 0x03, 0x8e, 0x01, 0xc6, 0x00, 0x00,
co657_frmb 8:55ee7af49f47 100 0x3f, 0xf8, 0x7f, 0xf0, 0xff, 0xfa, 0xff, 0xfe, 0xff, 0xfe, 0xff, 0xfe, 0xff, 0xfe, 0xff, 0xfe,
co657_frmb 8:55ee7af49f47 101 0xf0, 0x0e, 0xf1, 0x8e, 0xf1, 0x8e, 0xff, 0x8e, 0xff, 0x8e, 0x7f, 0x8e, 0x3f, 0x84, 0x00, 0x00,
co657_frmb 8:55ee7af49f47 102 0x7f, 0xfc, 0xff, 0xe2, 0xff, 0xfa, 0xff, 0xfa, 0xff, 0xfe, 0xff, 0xfe, 0x7f, 0xfc, 0x03, 0xc0,
co657_frmb 8:55ee7af49f47 103 0x03, 0xc0, 0x03, 0xc0, 0x7f, 0xfc, 0xff, 0xfe, 0xff, 0xfe, 0xff, 0xfe, 0x7f, 0xfc, 0x00, 0x00,
co657_frmb 8:55ee7af49f47 104 0x7f, 0xfc, 0xff, 0xe2, 0xff, 0xfa, 0xff, 0xfa, 0xff, 0xfe, 0xff, 0xfe, 0x7f, 0xfc, 0x00, 0x00,
co657_frmb 8:55ee7af49f47 105 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
co657_frmb 8:55ee7af49f47 106 0x3e, 0x00, 0x7f, 0x00, 0xff, 0x00, 0xff, 0x00, 0xf0, 0x00, 0xf0, 0x00, 0xf0, 0x00, 0xff, 0xfc,
co657_frmb 8:55ee7af49f47 107 0xff, 0xfc, 0xff, 0xe2, 0xff, 0xfa, 0xff, 0xfa, 0xff, 0xfe, 0x7f, 0xfe, 0x3f, 0xfc, 0x00, 0x00,
co657_frmb 8:55ee7af49f47 108 0x7f, 0xfc, 0xff, 0xe2, 0xff, 0xfa, 0xff, 0xfa, 0xff, 0xfe, 0xff, 0xfe, 0xff, 0xfe, 0x7f, 0xfc,
co657_frmb 8:55ee7af49f47 109 0x0f, 0xe0, 0x1f, 0xe0, 0x1f, 0xe0, 0x7f, 0xfc, 0xfe, 0xfe, 0xfc, 0x7e, 0x70, 0x1c, 0x00, 0x00,
co657_frmb 8:55ee7af49f47 110 0x7f, 0xfc, 0xff, 0xe2, 0xff, 0xfa, 0xff, 0xfa, 0xff, 0xfe, 0xff, 0xfe, 0xff, 0xfc, 0xf0, 0x00,
co657_frmb 8:55ee7af49f47 111 0xf0, 0x00, 0xf0, 0x00, 0xf0, 0x00, 0xf0, 0x00, 0xf0, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
co657_frmb 8:55ee7af49f47 112 0x7f, 0xfc, 0xff, 0xe2, 0xff, 0xfa, 0xff, 0xfa, 0xff, 0xfe, 0x7f, 0xfc, 0x7f, 0xfc, 0x0f, 0xc0,
co657_frmb 8:55ee7af49f47 113 0x1f, 0x00, 0x1f, 0x00, 0x0f, 0xc0, 0x7f, 0xfc, 0x7f, 0xfc, 0xff, 0xfe, 0xff, 0xfe, 0x7f, 0xfc,
co657_frmb 8:55ee7af49f47 114 0x7f, 0xfc, 0xff, 0xe2, 0xff, 0xfa, 0xff, 0xfa, 0xff, 0xfe, 0xff, 0xfe, 0x7f, 0xfc, 0x07, 0xc0,
co657_frmb 8:55ee7af49f47 115 0x0f, 0x00, 0x7f, 0xfc, 0xff, 0xfe, 0xff, 0xfe, 0xff, 0xfe, 0xff, 0xfe, 0x7f, 0xfc, 0x00, 0x00,
co657_frmb 8:55ee7af49f47 116 0x3f, 0xf8, 0x7f, 0xf0, 0xff, 0xfa, 0xff, 0xfe, 0xff, 0xfe, 0xff, 0xfe, 0xff, 0xfe, 0xff, 0xfe,
co657_frmb 8:55ee7af49f47 117 0xf0, 0x0e, 0xf0, 0x0e, 0xf0, 0x0e, 0xff, 0xfe, 0xff, 0xfe, 0x7f, 0xfc, 0x3f, 0xf8, 0x00, 0x00,
co657_frmb 8:55ee7af49f47 118 0x7f, 0xfc, 0xff, 0xe2, 0xff, 0xfa, 0xff, 0xfa, 0xff, 0xfe, 0xff, 0xfe, 0x7f, 0xfe, 0x0e, 0x1e,
co657_frmb 8:55ee7af49f47 119 0x0e, 0x1e, 0x0e, 0x1e, 0x0f, 0xfe, 0x0f, 0xfe, 0x0f, 0xfe, 0x07, 0xfc, 0x03, 0xf8, 0x00, 0x00,
co657_frmb 8:55ee7af49f47 120 0x0f, 0xfe, 0x1f, 0xfc, 0x3f, 0xfe, 0x3f, 0xff, 0x3f, 0xff, 0x3f, 0xff, 0x3f, 0xff, 0x3f, 0xff,
co657_frmb 8:55ee7af49f47 121 0xfc, 0x03, 0xfc, 0x03, 0xfc, 0x03, 0xff, 0xff, 0xff, 0xff, 0x1f, 0xff, 0x0f, 0xfe, 0x00, 0x00,
co657_frmb 8:55ee7af49f47 122 0x7f, 0xfe, 0xff, 0xf0, 0xff, 0xfe, 0xff, 0xfe, 0xff, 0xfe, 0xff, 0xfe, 0xff, 0xfe, 0x7f, 0xfe,
co657_frmb 8:55ee7af49f47 123 0x0f, 0x8e, 0x1f, 0x8e, 0x1f, 0x8e, 0x7f, 0xfe, 0xff, 0xfe, 0xfd, 0xfe, 0x78, 0xfc, 0x00, 0x00,
co657_frmb 8:55ee7af49f47 124 0x71, 0xf8, 0xfb, 0xf0, 0xfb, 0xfa, 0xfb, 0xfe, 0xfb, 0xfe, 0xfb, 0xfe, 0xfb, 0xfe, 0xfb, 0xde,
co657_frmb 8:55ee7af49f47 125 0xfb, 0xde, 0xfb, 0xde, 0xff, 0xde, 0xff, 0xde, 0xff, 0xde, 0x7f, 0xde, 0x3f, 0x8c, 0x00, 0x00,
co657_frmb 8:55ee7af49f47 126 0x00, 0x1c, 0x00, 0x02, 0x00, 0x1a, 0x00, 0x1a, 0x7f, 0xfe, 0xff, 0xfe, 0xff, 0xfe, 0xff, 0xfe,
co657_frmb 8:55ee7af49f47 127 0xff, 0xfe, 0xff, 0xfe, 0x7f, 0xfe, 0x00, 0x1e, 0x00, 0x1e, 0x00, 0x1e, 0x00, 0x1c, 0x00, 0x00,
co657_frmb 8:55ee7af49f47 128 0x3f, 0xfc, 0x7f, 0xe2, 0xff, 0xfa, 0xff, 0xfa, 0xff, 0xfe, 0xff, 0xfe, 0xff, 0xfc, 0xf0, 0x00,
co657_frmb 8:55ee7af49f47 129 0xf0, 0x00, 0xf0, 0x00, 0xff, 0xfc, 0xff, 0xfe, 0xff, 0xfe, 0x7f, 0xfe, 0x3f, 0xfc, 0x00, 0x00,
co657_frmb 8:55ee7af49f47 130 0x3f, 0xfc, 0x7f, 0xe2, 0xff, 0xfa, 0xff, 0xfa, 0xff, 0xfe, 0xff, 0xfe, 0xff, 0xfc, 0xfc, 0x00,
co657_frmb 8:55ee7af49f47 131 0x7e, 0x00, 0x7e, 0x00, 0x3f, 0xfc, 0x1f, 0xfe, 0x0f, 0xfe, 0x07, 0xfe, 0x03, 0xfc, 0x00, 0x00,
co657_frmb 8:55ee7af49f47 132 0x7f, 0xfc, 0xff, 0xe2, 0xff, 0xfa, 0xff, 0xfa, 0xff, 0xfe, 0xff, 0xfe, 0x7f, 0xfc, 0x7f, 0xfc,
co657_frmb 8:55ee7af49f47 133 0x3e, 0x00, 0x1f, 0x00, 0x3e, 0x00, 0x7f, 0xfc, 0x7f, 0xfc, 0xff, 0xfe, 0xff, 0xfe, 0x7f, 0xfc,
co657_frmb 8:55ee7af49f47 134 0x40, 0x1c, 0xfc, 0x22, 0xf8, 0xfa, 0x78, 0xfc, 0x7f, 0xfc, 0x3f, 0xf8, 0x1f, 0xe0, 0x1f, 0xe0,
co657_frmb 8:55ee7af49f47 135 0x1f, 0xe0, 0x7f, 0xfc, 0x7f, 0xfc, 0x7f, 0xfc, 0xf8, 0xfe, 0xfc, 0x3e, 0x40, 0x1c, 0x00, 0x00,
co657_frmb 8:55ee7af49f47 136 0x00, 0x1c, 0x00, 0x72, 0x00, 0xfa, 0x01, 0xfe, 0x7f, 0xfe, 0xff, 0xfc, 0xff, 0xf8, 0xff, 0xf8,
co657_frmb 8:55ee7af49f47 137 0xff, 0xfc, 0xff, 0xfc, 0x7f, 0xfe, 0x01, 0xfe, 0x00, 0xfe, 0x00, 0x7e, 0x00, 0x1c, 0x00, 0x00,
co657_frmb 8:55ee7af49f47 138 0x70, 0x1c, 0xf8, 0x02, 0xfc, 0x1a, 0xfc, 0x1a, 0xff, 0x1e, 0xff, 0xde, 0xff, 0xfe, 0xff, 0xfe,
co657_frmb 8:55ee7af49f47 139 0xff, 0xfe, 0xff, 0xfe, 0xfb, 0xfe, 0xf8, 0xfe, 0xf8, 0xfe, 0xf8, 0x3e, 0x70, 0x1c, 0x00, 0x00,
co657_frmb 8:55ee7af49f47 140 0x3f, 0xf8, 0x7f, 0xe0, 0xff, 0xfa, 0xff, 0xfe, 0xff, 0xfe, 0xf0, 0x3e, 0x70, 0x1c, 0x00, 0x00,
co657_frmb 8:55ee7af49f47 141 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
co657_frmb 8:55ee7af49f47 142 0x00, 0x1c, 0x00, 0x22, 0x00, 0xfa, 0x00, 0xfa, 0x03, 0xfc, 0x07, 0xf8, 0x0f, 0xe0, 0x1f, 0xe0,
co657_frmb 8:55ee7af49f47 143 0x3f, 0xc0, 0x3f, 0xc0, 0x7f, 0x00, 0xfe, 0x00, 0xfc, 0x00, 0xf8, 0x00, 0x70, 0x00, 0x00, 0x00,
co657_frmb 8:55ee7af49f47 144 0x60, 0x1c, 0xf0, 0x02, 0xff, 0xfa, 0xff, 0xfa, 0xff, 0xfe, 0x7f, 0xfc, 0x3f, 0xf8, 0x00, 0x00,
co657_frmb 8:55ee7af49f47 145 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
co657_frmb 8:55ee7af49f47 146 0x00, 0x38, 0x00, 0xc4, 0x00, 0xf4, 0x00, 0xf4, 0x00, 0xfc, 0x00, 0xfc, 0x00, 0xfc, 0x00, 0x38,
co657_frmb 8:55ee7af49f47 147 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
co657_frmb 8:55ee7af49f47 148 0x70, 0x00, 0x88, 0x00, 0xe8, 0x00, 0xe8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00,
co657_frmb 8:55ee7af49f47 149 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0x70, 0x00, 0x00, 0x00,
co657_frmb 8:55ee7af49f47 150 0x00, 0x38, 0x00, 0xc4, 0x00, 0xf4, 0x00, 0xf4, 0x00, 0xfc, 0x00, 0xfc, 0x00, 0xfc, 0x00, 0x38,
co657_frmb 8:55ee7af49f47 151 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
co657_frmb 8:55ee7af49f47 152 0x7f, 0xe0, 0xff, 0xc0, 0xff, 0xe8, 0xff, 0xf8, 0xff, 0xf8, 0xff, 0xf8, 0x7f, 0xf8, 0x07, 0xb8,
co657_frmb 8:55ee7af49f47 153 0x07, 0xb8, 0x07, 0xb8, 0x7f, 0xf8, 0xff, 0xf0, 0x7f, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
co657_frmb 8:55ee7af49f47 154 0x7f, 0xf0, 0xff, 0x88, 0xff, 0xe8, 0xff, 0xe8, 0xff, 0xf8, 0xff, 0xf8, 0xff, 0xf8, 0xf7, 0x78,
co657_frmb 8:55ee7af49f47 155 0xf7, 0x78, 0xf7, 0x78, 0xff, 0xf8, 0x7f, 0xf0, 0x3d, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
co657_frmb 8:55ee7af49f47 156 0x3f, 0xe0, 0x7f, 0xc0, 0xff, 0xe8, 0xff, 0xf8, 0xff, 0xf8, 0xff, 0xf8, 0xf8, 0x38, 0xf8, 0x38,
co657_frmb 8:55ee7af49f47 157 0xf8, 0x38, 0xf8, 0x38, 0xf8, 0x38, 0xf8, 0x38, 0x60, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
co657_frmb 8:55ee7af49f47 158 0x7f, 0xf0, 0xff, 0x88, 0xff, 0xe8, 0xff, 0xe8, 0xff, 0xf8, 0xff, 0xf8, 0xff, 0xf8, 0xf0, 0x78,
co657_frmb 8:55ee7af49f47 159 0xf0, 0x78, 0xf0, 0x78, 0xff, 0xf0, 0x7f, 0xe0, 0x3f, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
co657_frmb 8:55ee7af49f47 160 0x7f, 0xf0, 0xff, 0xc8, 0xff, 0xe8, 0xff, 0xe8, 0xff, 0xf8, 0xff, 0xf8, 0xf7, 0xb8, 0xf7, 0xb8,
co657_frmb 8:55ee7af49f47 161 0xf7, 0xb8, 0xf7, 0xb8, 0xf7, 0xb8, 0xf7, 0xb8, 0x63, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
co657_frmb 8:55ee7af49f47 162 0x7f, 0xf0, 0xff, 0xc8, 0xff, 0xe8, 0xff, 0xe8, 0xff, 0xf8, 0x7f, 0xf8, 0x07, 0xb8, 0x07, 0xb8,
co657_frmb 8:55ee7af49f47 163 0x07, 0xb8, 0x07, 0xb8, 0x07, 0xb8, 0x07, 0xb8, 0x03, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
co657_frmb 8:55ee7af49f47 164 0x3f, 0xe0, 0x7f, 0xc0, 0xff, 0xe8, 0xff, 0xf8, 0xff, 0xf8, 0xff, 0xf8, 0xff, 0xf8, 0xf0, 0x38,
co657_frmb 8:55ee7af49f47 165 0xf0, 0x38, 0xf2, 0x38, 0xff, 0xb8, 0x7f, 0xb8, 0x3e, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
co657_frmb 8:55ee7af49f47 166 0x7f, 0xf0, 0xff, 0x88, 0xff, 0xe8, 0xff, 0xe8, 0x7f, 0xf0, 0x07, 0x00, 0x07, 0x00, 0x07, 0x00,
co657_frmb 8:55ee7af49f47 167 0x7f, 0xf0, 0xff, 0xf8, 0xff, 0xf8, 0xff, 0xf8, 0x7f, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
co657_frmb 8:55ee7af49f47 168 0x7f, 0xf0, 0xff, 0x88, 0xff, 0xe8, 0xff, 0xe8, 0xff, 0xf8, 0x7f, 0xf0, 0x00, 0x00, 0x00, 0x00,
co657_frmb 8:55ee7af49f47 169 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
co657_frmb 8:55ee7af49f47 170 0x3c, 0x00, 0x7e, 0x00, 0xfe, 0x00, 0xf0, 0x00, 0xf0, 0x00, 0xf0, 0x00, 0xff, 0xf0, 0xff, 0x88,
co657_frmb 8:55ee7af49f47 171 0xff, 0xe8, 0xff, 0xe8, 0xff, 0xf8, 0x7f, 0xf8, 0x3f, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
co657_frmb 8:55ee7af49f47 172 0x7f, 0xf0, 0xff, 0x88, 0xff, 0xe8, 0xff, 0xe8, 0xff, 0xf8, 0xff, 0xf8, 0x1f, 0x80, 0x3f, 0xe0,
co657_frmb 8:55ee7af49f47 173 0x3f, 0xe0, 0x7f, 0xf0, 0xfd, 0xf8, 0xf8, 0xf8, 0x60, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
co657_frmb 8:55ee7af49f47 174 0x7f, 0xf0, 0xff, 0x88, 0xff, 0xe8, 0xff, 0xe8, 0xff, 0xf8, 0xff, 0xf0, 0xf0, 0x00, 0xf0, 0x00,
co657_frmb 8:55ee7af49f47 175 0xf0, 0x00, 0xf0, 0x00, 0xf0, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
co657_frmb 8:55ee7af49f47 176 0x7f, 0xf0, 0xff, 0x88, 0xff, 0xe8, 0xff, 0xe8, 0x7f, 0xf0, 0x7f, 0xf0, 0x07, 0x80, 0x0f, 0x00,
co657_frmb 8:55ee7af49f47 177 0x0f, 0x00, 0x07, 0x80, 0x7f, 0xf0, 0x7f, 0xf0, 0xff, 0xf8, 0x7f, 0xf0, 0x00, 0x00, 0x00, 0x00,
co657_frmb 8:55ee7af49f47 178 0x7f, 0xf0, 0xff, 0x88, 0xff, 0xe8, 0xff, 0xe8, 0xff, 0xf8, 0x7f, 0xf0, 0x03, 0x80, 0x07, 0x00,
co657_frmb 8:55ee7af49f47 179 0x7f, 0xf0, 0xff, 0xf8, 0xff, 0xf8, 0xff, 0xf8, 0x7f, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
co657_frmb 8:55ee7af49f47 180 0x3f, 0xe0, 0x7f, 0xc0, 0xff, 0xe8, 0xff, 0xf8, 0xff, 0xf8, 0xff, 0xf8, 0xff, 0xf8, 0xf8, 0x38,
co657_frmb 8:55ee7af49f47 181 0xf8, 0x38, 0xf8, 0x38, 0xff, 0xf8, 0x7f, 0xf0, 0x3f, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
co657_frmb 8:55ee7af49f47 182 0x7f, 0xf0, 0xff, 0xc8, 0xff, 0xe8, 0xff, 0xe8, 0xff, 0xf8, 0x0e, 0x38, 0x0e, 0x38, 0x0e, 0x38,
co657_frmb 8:55ee7af49f47 183 0x0f, 0xf8, 0x0f, 0xf8, 0x0f, 0xf8, 0x07, 0xf0, 0x01, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
co657_frmb 8:55ee7af49f47 184 0x0f, 0xf8, 0x1f, 0xf0, 0x3f, 0xfa, 0x3f, 0xfe, 0x3f, 0xfe, 0x3f, 0xfe, 0x3f, 0xfe, 0xfe, 0x0e,
co657_frmb 8:55ee7af49f47 185 0xfe, 0x0e, 0xfe, 0x0e, 0xff, 0xfe, 0x1f, 0xfc, 0x0f, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
co657_frmb 8:55ee7af49f47 186 0x7f, 0xf0, 0xff, 0xc8, 0xff, 0xe8, 0xff, 0xe8, 0xff, 0xf8, 0xff, 0xf8, 0x0f, 0xb8, 0x1f, 0xb8,
co657_frmb 8:55ee7af49f47 187 0x1f, 0xb8, 0x7f, 0xf8, 0x7f, 0xf8, 0xfb, 0xf0, 0x71, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
co657_frmb 8:55ee7af49f47 188 0x71, 0xe0, 0xfb, 0xc0, 0xfb, 0xe8, 0xfb, 0xf8, 0xfb, 0xf8, 0xfb, 0xf8, 0xfb, 0xb8, 0xfb, 0xb8,
co657_frmb 8:55ee7af49f47 189 0xff, 0xb8, 0xff, 0xb8, 0xff, 0xb8, 0x7f, 0xb8, 0x3e, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
co657_frmb 8:55ee7af49f47 190 0x00, 0x70, 0x00, 0x88, 0x00, 0xe8, 0x00, 0xe8, 0xff, 0xf8, 0xff, 0xf8, 0xff, 0xf8, 0xff, 0xf8,
co657_frmb 8:55ee7af49f47 191 0x7f, 0xf8, 0x7f, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
co657_frmb 8:55ee7af49f47 192 0x3f, 0xf0, 0x7f, 0x88, 0xff, 0xe8, 0xff, 0xe8, 0xff, 0xf0, 0xf0, 0x00, 0xf0, 0x00, 0xf0, 0x00,
co657_frmb 8:55ee7af49f47 193 0xff, 0xf0, 0xff, 0xf8, 0xff, 0xf8, 0x7f, 0xf8, 0x3f, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
co657_frmb 8:55ee7af49f47 194 0x3f, 0xf0, 0x7f, 0x88, 0xff, 0xe8, 0xff, 0xe8, 0xff, 0xf8, 0xff, 0xf0, 0xf8, 0x00, 0x7c, 0x00,
co657_frmb 8:55ee7af49f47 195 0x7c, 0x00, 0x3f, 0xf0, 0x1f, 0xf8, 0x0f, 0xf8, 0x07, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
co657_frmb 8:55ee7af49f47 196 0x7f, 0xf0, 0xff, 0x88, 0xff, 0xe8, 0xff, 0xe8, 0x7f, 0xf0, 0x7f, 0xf0, 0x3c, 0x00, 0x1e, 0x00,
co657_frmb 8:55ee7af49f47 197 0x3c, 0x00, 0x7f, 0xf0, 0x7f, 0xf0, 0xff, 0xf8, 0xff, 0xf8, 0x7f, 0xf0, 0x00, 0x00, 0x00, 0x00,
co657_frmb 8:55ee7af49f47 198 0x40, 0xf0, 0xf1, 0x88, 0xfb, 0xe8, 0xfb, 0xe8, 0x7f, 0xe0, 0x3f, 0x80, 0x1f, 0xe0, 0x3f, 0xf0,
co657_frmb 8:55ee7af49f47 199 0x7f, 0xf8, 0x7f, 0xf8, 0xfd, 0xf8, 0xf8, 0xf8, 0x70, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
co657_frmb 8:55ee7af49f47 200 0x00, 0x70, 0x00, 0x88, 0x01, 0xe8, 0x01, 0xe8, 0x7f, 0xf0, 0xff, 0xe0, 0xff, 0xe0, 0xff, 0xe0,
co657_frmb 8:55ee7af49f47 201 0x7f, 0xf0, 0x7f, 0xf8, 0x01, 0xf8, 0x00, 0xf8, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
co657_frmb 8:55ee7af49f47 202 0x40, 0x70, 0xf0, 0x88, 0xf8, 0xe8, 0xf8, 0xe8, 0xfe, 0xf8, 0xff, 0xf8, 0xff, 0xf8, 0xff, 0xf8,
co657_frmb 8:55ee7af49f47 203 0xfb, 0xf8, 0xfb, 0xf8, 0xf9, 0xf8, 0xf8, 0xf8, 0x70, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
co657_frmb 8:55ee7af49f47 204 0x03, 0x00, 0x07, 0xc0, 0x3f, 0xf8, 0x7f, 0xf0, 0xff, 0xfa, 0xff, 0xfe, 0xff, 0xfe, 0xf0, 0x1e,
co657_frmb 8:55ee7af49f47 205 0x60, 0x0c, 0x60, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
co657_frmb 8:55ee7af49f47 206 0x7f, 0xfc, 0xff, 0xe2, 0xff, 0xfa, 0xff, 0xfa, 0xff, 0xfe, 0xff, 0xfe, 0x7f, 0xfc, 0x00, 0x00,
co657_frmb 8:55ee7af49f47 207 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
co657_frmb 8:55ee7af49f47 208 0x60, 0x1c, 0xf0, 0x02, 0xff, 0xfa, 0xff, 0xfa, 0xff, 0xfe, 0x7f, 0xfc, 0x3f, 0xf8, 0x07, 0xc0,
co657_frmb 8:55ee7af49f47 209 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
co657_frmb 8:55ee7af49f47 210 0x00, 0x38, 0x00, 0xc4, 0x00, 0xf4, 0x00, 0xf4, 0x00, 0xfc, 0x00, 0xfc, 0x00, 0xfc, 0x00, 0x38,
co657_frmb 8:55ee7af49f47 211 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
co657_frmb 8:55ee7af49f47 212 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
co657_frmb 8:55ee7af49f47 213 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
co657_frmb 8:55ee7af49f47 214 };
co657_frmb 8:55ee7af49f47 215
co657_frmb 8:55ee7af49f47 216
co657_frmb 9:db4ec6f7d8b2 217 int gfx3d_font04b_char_dpw (const char ch)
co657_frmb 9:db4ec6f7d8b2 218 {
co657_frmb 9:db4ec6f7d8b2 219 int sel, cw, sw;
co657_frmb 9:db4ec6f7d8b2 220
co657_frmb 9:db4ec6f7d8b2 221 if ((ch < 32) || (ch > 127)) {
co657_frmb 9:db4ec6f7d8b2 222 return 0;
co657_frmb 9:db4ec6f7d8b2 223 }
co657_frmb 9:db4ec6f7d8b2 224 sel = ch - 32;
co657_frmb 9:db4ec6f7d8b2 225 cw = (font_metrics_04b[sel] & 0x0f);
co657_frmb 9:db4ec6f7d8b2 226 if (!cw) {
co657_frmb 9:db4ec6f7d8b2 227 cw = 16;
co657_frmb 9:db4ec6f7d8b2 228 }
co657_frmb 9:db4ec6f7d8b2 229 sw = (font_metrics_04b[sel] >> 4) & 0x0f;
co657_frmb 9:db4ec6f7d8b2 230 if (!sw) {
co657_frmb 9:db4ec6f7d8b2 231 sw = 16;
co657_frmb 9:db4ec6f7d8b2 232 }
co657_frmb 9:db4ec6f7d8b2 233 return cw + sw;
co657_frmb 9:db4ec6f7d8b2 234 }
co657_frmb 9:db4ec6f7d8b2 235
co657_frmb 9:db4ec6f7d8b2 236
co657_frmb 9:db4ec6f7d8b2 237 void gfx3d_font04b_tx_putchar (uint8_t *txbuf, const int txwidth, int *xptr, const int y, const char ch, const bool inv)
co657_frmb 8:55ee7af49f47 238 {
co657_frmb 9:db4ec6f7d8b2 239 int sel, cw, sw, i, dcs, dcw;
co657_frmb 9:db4ec6f7d8b2 240
co657_frmb 9:db4ec6f7d8b2 241 if ((ch < 32) || (ch > 127)) {
co657_frmb 9:db4ec6f7d8b2 242 return;
co657_frmb 9:db4ec6f7d8b2 243 }
co657_frmb 9:db4ec6f7d8b2 244 sel = ch - 32;
co657_frmb 9:db4ec6f7d8b2 245 cw = (font_metrics_04b[sel] & 0x0f);
co657_frmb 9:db4ec6f7d8b2 246 if (!cw) {
co657_frmb 9:db4ec6f7d8b2 247 cw = 16;
co657_frmb 9:db4ec6f7d8b2 248 }
co657_frmb 9:db4ec6f7d8b2 249 sw = (font_metrics_04b[sel] >> 4) & 0x0f;
co657_frmb 9:db4ec6f7d8b2 250 if (!sw) {
co657_frmb 9:db4ec6f7d8b2 251 sw = 16;
co657_frmb 9:db4ec6f7d8b2 252 }
co657_frmb 9:db4ec6f7d8b2 253
co657_frmb 9:db4ec6f7d8b2 254 if (*xptr >= txwidth) {
co657_frmb 9:db4ec6f7d8b2 255 *xptr += cw+sw; /* advance space but do nothing else */
co657_frmb 9:db4ec6f7d8b2 256 return;
co657_frmb 9:db4ec6f7d8b2 257 } else if ((*xptr + cw) < 0) {
co657_frmb 9:db4ec6f7d8b2 258 /* all character data off-left, advance space and nothing else */
co657_frmb 9:db4ec6f7d8b2 259 *xptr += cw+sw;
co657_frmb 9:db4ec6f7d8b2 260 return;
co657_frmb 9:db4ec6f7d8b2 261 }
co657_frmb 9:db4ec6f7d8b2 262 sel <<= 5; /* in 32-byte steps */
co657_frmb 9:db4ec6f7d8b2 263
co657_frmb 9:db4ec6f7d8b2 264 if ((*xptr + cw) > txwidth) {
co657_frmb 9:db4ec6f7d8b2 265 /* means it won't all fit */
co657_frmb 9:db4ec6f7d8b2 266 dcw = (txwidth - *xptr);
co657_frmb 9:db4ec6f7d8b2 267 } else {
co657_frmb 9:db4ec6f7d8b2 268 dcw = cw;
co657_frmb 9:db4ec6f7d8b2 269 }
co657_frmb 9:db4ec6f7d8b2 270 if (*xptr < 0) {
co657_frmb 9:db4ec6f7d8b2 271 dcs = -*xptr;
co657_frmb 9:db4ec6f7d8b2 272 } else {
co657_frmb 9:db4ec6f7d8b2 273 dcs = 0;
co657_frmb 9:db4ec6f7d8b2 274 }
co657_frmb 9:db4ec6f7d8b2 275
co657_frmb 9:db4ec6f7d8b2 276 /* copy in character data */
co657_frmb 9:db4ec6f7d8b2 277 for (i=dcs; i<dcw; i++) {
co657_frmb 9:db4ec6f7d8b2 278 uint8_t chigh = font_data_04b[sel + (i << 1) + 0];
co657_frmb 9:db4ec6f7d8b2 279 uint8_t clow = font_data_04b[sel + (i << 1) + 1];
co657_frmb 9:db4ec6f7d8b2 280
co657_frmb 9:db4ec6f7d8b2 281 if (inv) {
co657_frmb 9:db4ec6f7d8b2 282 chigh = ~chigh;
co657_frmb 9:db4ec6f7d8b2 283 clow = ~clow;
co657_frmb 9:db4ec6f7d8b2 284 }
co657_frmb 9:db4ec6f7d8b2 285
co657_frmb 9:db4ec6f7d8b2 286 if (y == 0) {
co657_frmb 9:db4ec6f7d8b2 287 txbuf[((*xptr + i) << 2) + 0] = clow;
co657_frmb 9:db4ec6f7d8b2 288 txbuf[((*xptr + i) << 2) + 1] = chigh;
co657_frmb 9:db4ec6f7d8b2 289 } else if (y == 8) {
co657_frmb 9:db4ec6f7d8b2 290 txbuf[((*xptr + i) << 2) + 1] = clow;
co657_frmb 9:db4ec6f7d8b2 291 txbuf[((*xptr + i) << 2) + 2] = chigh;
co657_frmb 9:db4ec6f7d8b2 292 } else if (y == 16) {
co657_frmb 9:db4ec6f7d8b2 293 txbuf[((*xptr + i) << 2) + 2] = clow;
co657_frmb 9:db4ec6f7d8b2 294 txbuf[((*xptr + i) << 2) + 3] = chigh;
co657_frmb 9:db4ec6f7d8b2 295 } else {
co657_frmb 9:db4ec6f7d8b2 296 /* FIXME: all the other cases */
co657_frmb 9:db4ec6f7d8b2 297 }
co657_frmb 9:db4ec6f7d8b2 298 }
co657_frmb 9:db4ec6f7d8b2 299 *xptr += cw + sw;
co657_frmb 9:db4ec6f7d8b2 300
co657_frmb 8:55ee7af49f47 301 return;
co657_frmb 8:55ee7af49f47 302 }
co657_frmb 8:55ee7af49f47 303
co657_frmb 9:db4ec6f7d8b2 304
co657_frmb 9:db4ec6f7d8b2 305 void gfx3d_font04b_tx_putstr (uint8_t *txbuf, const int txwidth, int *xptr, const int y, const char *str, const bool inv)
co657_frmb 8:55ee7af49f47 306 {
co657_frmb 9:db4ec6f7d8b2 307 const char *ch;
co657_frmb 9:db4ec6f7d8b2 308
co657_frmb 9:db4ec6f7d8b2 309 for (ch=str; (*ch != '\0'); ch++) {
co657_frmb 9:db4ec6f7d8b2 310 gfx3d_font04b_tx_putchar (txbuf, txwidth, xptr, y, *ch, inv);
co657_frmb 9:db4ec6f7d8b2 311 }
co657_frmb 8:55ee7af49f47 312 return;
co657_frmb 8:55ee7af49f47 313 }
co657_frmb 9:db4ec6f7d8b2 314
co657_frmb 9:db4ec6f7d8b2 315
co657_frmb 9:db4ec6f7d8b2 316 void gfx3d_font04b_tx_putstrn (uint8_t *txbuf, const int txwidth, int *xptr, const int y, const char *str, const int slen, const bool inv)
co657_frmb 9:db4ec6f7d8b2 317 {
co657_frmb 9:db4ec6f7d8b2 318 const char *ch;
co657_frmb 9:db4ec6f7d8b2 319 int left = slen;
co657_frmb 9:db4ec6f7d8b2 320
co657_frmb 9:db4ec6f7d8b2 321 for (ch=str; (*ch != '\0') && left; ch++, left--) {
co657_frmb 9:db4ec6f7d8b2 322 gfx3d_font04b_tx_putchar (txbuf, txwidth, xptr, y, *ch, inv);
co657_frmb 9:db4ec6f7d8b2 323 }
co657_frmb 9:db4ec6f7d8b2 324 return;
co657_frmb 9:db4ec6f7d8b2 325 }
co657_frmb 9:db4ec6f7d8b2 326