From 14c5f1912c3d97e55eac8781c216d48e6e2b8ce8 Mon Sep 17 00:00:00 2001 From: phamthit <phamthit@fel.cvut.cz> Date: Wed, 31 May 2023 18:54:12 +0200 Subject: [PATCH] Change indentation to 4 spaces --- main/.DS_Store | Bin 0 -> 8196 bytes main/change_me.c | 46 +- main/draw.c | 642 ++-- main/draw.h | 72 +- main/enemy.h | 8 +- main/font_prop14x16.c | 8530 ++++++++++++++++++++--------------------- main/knobs.c | 236 +- main/knobs.h | 14 +- main/led_line.c | 14 +- main/led_line.h | 8 +- main/led_rgb.c | 86 +- main/main.c | 396 +- main/mzapo_parlcd.c | 36 +- main/mzapo_phys.c | 56 +- main/mzapo_phys.h | 16 +- main/mzapo_regs.h | 26 +- main/obstacle.h | 10 +- main/player.h | 8 +- main/projectile.h | 8 +- main/serialize_lock.c | 64 +- main/text.h | 8 +- main/utils.h | 8 +- 22 files changed, 5146 insertions(+), 5146 deletions(-) create mode 100644 main/.DS_Store diff --git a/main/.DS_Store b/main/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..aa283db6fc4e765c6261ba490dd9cdfb3f4b85fb GIT binary patch literal 8196 zcmeI0&u$Yj5XQ%8l!PX#a^TS8UbrEoB7``hs0s&)P$iJy2>H`CC7W&(wxaDRM;@b( z(FfoG`bO~0*sARDrp=`)0<UCGx;vl8{@Gr4mWa&m>3D}|n}}K{Y`bk#6&F9}5?wWS z=LxKVp6G}U=nKtIKa0H6jYJ?3NCXmrL?99P8wlXc=Bu^h+_z6tod_fX|0Mx_KV&Fu zd(JMcl~)HUNdaK%xGficBM%Tw=4{W|rL`hOn>KqePHJ3=VXPd_Gj@mVIlHvh%E?$c z85h~O48=%v=rVC9)3Y|!i9jL{6X4vvO(UAnfKGz^ee^ajM#H=q!h<(eALaRPx$ujq zL1S7#^#i%S_Px5rcM`U1o+{raz8;*Q%;-FB*<9Z0t=g_VR^DAYqynv%_)0NH?+esB z^n%V%zl@{Rek%Qzr)TwyUais!uPcvN$J3S=+Z<#3j+m;?#O!=slcwl#K|}FYq=nvU zZ`HQY^Sw7IM=!>pk<+nIkLFSs-lb7-gqyE<bQ5QRH8zY%GcEJlqZKPu4CYj!C^5GO zm{}&PSzY41x{hM_3KfIL9w^$F@qv)auxEJnRIO30=%8nf8&zeW0^b(BM}#THaELgV zop85sj{^TKw0!}^9KGQ+J;2y=^lcoEpJ!!lts)`w^UGt`QE?|AQNdhhX&s%4$Lrdx z)-Ay2sA~7{3J-LfZs(LBGm=#p&4DoWV^wKX|AeKlX@Px?80WJ3q8QAtw&(HF{;GZE z7WjA2KEH9kq5TooxU7wMj+xt9Iu(z(1-dTi@;*AonE2grfxq}IQ6Ty>jw?IGAKzVi z6`y$q@f)&_&rnA!#n<1*zOQPRxo>>(xHsw4(W_dmJWGDdp|@_E=g9YN(P!GH5A+Uw zE^#iD;og<G@%{0lf6!~gM&IWA|IO;}{}0;76g&|~1n!rBsrNtjcM-$o)=@OhwKJ5j zD15Qs(pr(Al5`xlj@$g)rQ`BDbN71AF0B<Qd_@W?Qdld!w+{jFdBXow`Db}L|2gAJ L=ReUueE$CdX+pxU literal 0 HcmV?d00001 diff --git a/main/change_me.c b/main/change_me.c index b2057fe..6fb981c 100644 --- a/main/change_me.c +++ b/main/change_me.c @@ -1,15 +1,15 @@ /******************************************************************* - Project main function template for MicroZed based MZ_APO board - designed by Petr Porazil at PiKRON + Project main function template for MicroZed based MZ_APO board + designed by Petr Porazil at PiKRON - change_me.c - main file + change_me.c - main file - include your name there and license for distribution. + include your name there and license for distribution. - Remove next text: This line should not appear in submitted - work and project name should be change to match real application. - If this text is there I want 10 points subtracted from final - evaluation. + Remove next text: This line should not appear in submitted + work and project name should be change to match real application. + If this text is there I want 10 points subtracted from final + evaluation. *******************************************************************/ @@ -29,27 +29,27 @@ int main(int argc, char *argv[]) { - /* Serialize execution of applications */ + /* Serialize execution of applications */ - /* Try to acquire lock the first */ - if (serialize_lock(1) <= 0) { - printf("System is occupied\n"); + /* Try to acquire lock the first */ + if (serialize_lock(1) <= 0) { + printf("System is occupied\n"); - if (1) { - printf("Waitting\n"); - /* Wait till application holding lock releases it or exits */ - serialize_lock(0); + if (1) { + printf("Waitting\n"); + /* Wait till application holding lock releases it or exits */ + serialize_lock(0); + } } - } - printf("Hello world\n"); + printf("Hello world\n"); - sleep(4); + sleep(4); - printf("Goodbye world\n"); + printf("Goodbye world\n"); - /* Release the lock */ - serialize_unlock(); + /* Release the lock */ + serialize_unlock(); - return 0; + return 0; } diff --git a/main/draw.c b/main/draw.c index 4788be7..e66738e 100644 --- a/main/draw.c +++ b/main/draw.c @@ -1,7 +1,7 @@ /******************************************************************* - Class representing frame_buffer - authors: Pelech Ondrej, Pham Thi Thien Trang - date: Mai 2023 + Class representing frame_buffer + authors: Pelech Ondrej, Pham Thi Thien Trang + date: Mai 2023 *******************************************************************/ #define _POSIX_C_SOURCE 200112L @@ -25,78 +25,78 @@ // inits frame_buffer dimensions // return 0 on success F_BUF error otherwise int16_t frame_buffer_init(struct frame_buffer* self, FBUF_DTYPE h, FBUF_DTYPE w) { - int16_t ret = EXIT_SUCCESS; - if (w < 0 || h < 0 || w > 480 || h > 320) { - ret = ERROR_WRONG_INIT_INPUT; - error("wrong input in buffer init"); - } else if ( w != 480 || h != 320){ - warn("Unexpeted paramaters in frame_baffer_init"); - warn("Unexpeted behaivor may occur"); - } + int16_t ret = EXIT_SUCCESS; + if (w < 0 || h < 0 || w > 480 || h > 320) { + ret = ERROR_WRONG_INIT_INPUT; + error("wrong input in buffer init"); + } else if ( w != 480 || h != 320){ + warn("Unexpeted paramaters in frame_baffer_init"); + warn("Unexpeted behaivor may occur"); + } volatile void *lcdBaseAddr = map_phys_address(PARLCD_REG_BASE_PHYS, PARLCD_REG_SIZE, 0); if (lcdBaseAddr == NULL) { - printf("Counld not get rgb"); - exit(1); + printf("Counld not get rgb"); + exit(1); } else { - self->lcdBaseAddr = lcdBaseAddr; - parlcd_hx8357_init(lcdBaseAddr); + self->lcdBaseAddr = lcdBaseAddr; + parlcd_hx8357_init(lcdBaseAddr); } - if(ret == EXIT_SUCCESS){ - // buffer varibles init - self->height = h; - self->width = w; - self->buffer_length = w * h; // uint32_t so /2 - self->mem_size = w * h * sizeof(FBUF_DTYPE); - self->buffer = my_malloc(self->mem_size); - self->background_color = FB_BLACK; - - // buffer buffer init to background color - for (int i = 0; i < self->buffer_length; ++i) { - self->buffer[i] = (FBUF_DTYPE)self->background_color; + if(ret == EXIT_SUCCESS){ + // buffer varibles init + self->height = h; + self->width = w; + self->buffer_length = w * h; // uint32_t so /2 + self->mem_size = w * h * sizeof(FBUF_DTYPE); + self->buffer = my_malloc(self->mem_size); + self->background_color = FB_BLACK; + + // buffer buffer init to background color + for (int i = 0; i < self->buffer_length; ++i) { + self->buffer[i] = (FBUF_DTYPE)self->background_color; + } + + // buffer methods assignment + self->draw = draw; + self->draw_plane = draw_plane; + self->draw_enemy = draw_enemy; + self->draw_obstacle = draw_obstacle; + self->draw_projectile = draw_projectile; + self->color_background = color_background; + self->null_buffer = null_buffer; + self->draw_letter = draw_letter; + self->free = free_buffer; + + info("draw.c : FRAME BUFFER INIT DONE"); } - // buffer methods assignment - self->draw = draw; - self->draw_plane = draw_plane; - self->draw_enemy = draw_enemy; - self->draw_obstacle = draw_obstacle; - self->draw_projectile = draw_projectile; - self->color_background = color_background; - self->null_buffer = null_buffer; - self->draw_letter = draw_letter; - self->free = free_buffer; - - info("draw.c : FRAME BUFFER INIT DONE"); - } - - return ret; + return ret; } //sets whole buffer to color //returns EXIT_SUCCESS on success, ERROR otherwise int16_t color_background(struct frame_buffer* self,uint16_t color) { - info("Coloring background..."); - int16_t ret = ERROR_INVALID_VALUES; - if (!self) { - ret = ERROR_INIT; - error("draw.c : F_BUFF not inited"); - }else if(!self->buffer || !self->buffer_length){ - error("draw.c : frame buffer not initialized or contains invalid values"); - ret = ERROR_INVALID_VALUES; - }else{ - if (self->lcdBaseAddr == NULL) { - error("draw.c : could not access lcdBaseAddr. Exiting ..."); - exit(ERROR_ADDRESS_ACCESS); - } - - for (int i = 0; i < self->buffer_length; ++i) { - self->buffer[i] = (FBUF_DTYPE)color; + info("Coloring background..."); + int16_t ret = ERROR_INVALID_VALUES; + if (!self) { + ret = ERROR_INIT; + error("draw.c : F_BUFF not inited"); + }else if(!self->buffer || !self->buffer_length){ + error("draw.c : frame buffer not initialized or contains invalid values"); + ret = ERROR_INVALID_VALUES; + }else{ + if (self->lcdBaseAddr == NULL) { + error("draw.c : could not access lcdBaseAddr. Exiting ..."); + exit(ERROR_ADDRESS_ACCESS); + } + + for (int i = 0; i < self->buffer_length; ++i) { + self->buffer[i] = (FBUF_DTYPE)color; + } } - } - return ret; + return ret; } //draws buffer from framebuffer on display MZ_APO @@ -105,13 +105,13 @@ int16_t draw(struct frame_buffer* self) { info("Drawing buffer to screen..."); int16_t ret = 0; if (!self) { - ret = ERROR_INIT; - error("draw.c : F_BUFF not inited"); + ret = ERROR_INIT; + error("draw.c : F_BUFF not inited"); } else { - *(volatile uint16_t *)(self->lcdBaseAddr + PARLCD_REG_CMD_o) = 0x2c; - for (int i = 0; i < self->buffer_length; ++i) { - parlcd_write_data(self->lcdBaseAddr, self->buffer[i]); - } + *(volatile uint16_t *)(self->lcdBaseAddr + PARLCD_REG_CMD_o) = 0x2c; + for (int i = 0; i < self->buffer_length; ++i) { + parlcd_write_data(self->lcdBaseAddr, self->buffer[i]); + } } return ret; @@ -120,311 +120,311 @@ int16_t draw(struct frame_buffer* self) { //set plane to buffer to location x - horizontal, y - vertical //returns EXIT_SUCCESS on success, ERROR otherwise int16_t draw_plane(struct frame_buffer* self, const int x, const int y) { - info("Drawing plane to buffer..."); - uint16_t ret = EXIT_SUCCESS; - - if (!self) { - ret = ERROR_INIT; - error("draw.c : F_BUFF not inited"); - }else if(!self->buffer){ - error("draw.c : frame buffer not initialized or contains invalid values"); - ret = ERROR_INVALID_VALUES; - } - - volatile uint16_t plane_size = DEFAULT_PICTURE_SIZE; - uint16_t plane_sprite[] = { - 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, - 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, - 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0 - }; - - uint16_t multipliactor = 3; - uint16_t picture[DEFAULT_PICTURE_SIZE*DEFAULT_PICTURE_SIZE*9]; - multiply_buffer(picture,plane_sprite,plane_size,multipliactor); - - int pic_size = plane_size * multipliactor; - - for (int i = 0; i < pic_size*pic_size; ++i) { - uint32_t col = i % pic_size; - uint32_t row = i / pic_size; - int fb_index = ((y + row) * self->width) + (x + col); - self->buffer[fb_index] = picture[i] != 0 ? FB_BLUE : (FBUF_DTYPE)self->background_color; - } - - return ret; + info("Drawing plane to buffer..."); + uint16_t ret = EXIT_SUCCESS; + + if (!self) { + ret = ERROR_INIT; + error("draw.c : F_BUFF not inited"); + }else if(!self->buffer){ + error("draw.c : frame buffer not initialized or contains invalid values"); + ret = ERROR_INVALID_VALUES; + } + + volatile uint16_t plane_size = DEFAULT_PICTURE_SIZE; + uint16_t plane_sprite[] = { + 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, + 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, + 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0 + }; + + uint16_t multipliactor = 3; + uint16_t picture[DEFAULT_PICTURE_SIZE*DEFAULT_PICTURE_SIZE*9]; + multiply_buffer(picture,plane_sprite,plane_size,multipliactor); + + int pic_size = plane_size * multipliactor; + + for (int i = 0; i < pic_size*pic_size; ++i) { + uint32_t col = i % pic_size; + uint32_t row = i / pic_size; + int fb_index = ((y + row) * self->width) + (x + col); + self->buffer[fb_index] = picture[i] != 0 ? FB_BLUE : (FBUF_DTYPE)self->background_color; + } + + return ret; } //set enemy to buffer to location x - horizontal, y - vertical //returns EXIT_SUCCESS on success, ERROR otherwise int16_t draw_enemy(struct frame_buffer* self, const int x, const int y){ - info("Drawing enemy to buffer..."); - uint16_t ret = EXIT_SUCCESS; - - if (!self) { - ret = ERROR_INIT; - error("draw.c : F_BUFF not inited"); - }else if(!self->buffer){ - error("draw.c : frame buffer not initialized or contains invalid values"); - ret = ERROR_INVALID_VALUES; - } - - - volatile uint16_t enemy_size = DEFAULT_PICTURE_SIZE; - uint16_t enemy_sprite[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, - 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, - 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, - 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 0, - 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, - 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, - 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 - }; - - uint16_t multipliactor = 3; - uint16_t picture[DEFAULT_PICTURE_SIZE*DEFAULT_PICTURE_SIZE*9]; - multiply_buffer(picture,enemy_sprite,enemy_size,multipliactor); - - int pic_size = enemy_size * multipliactor; - - for (int i = 0; i < pic_size*pic_size; ++i) { - - - uint32_t col = i % pic_size; - uint32_t row = i / pic_size; - int fb_index = ((y + row) * self->width) + (x + col); - self->buffer[fb_index] = picture[i] != 0 ? FB_BLUE : (FBUF_DTYPE)self->background_color; - } - - return ret; + info("Drawing enemy to buffer..."); + uint16_t ret = EXIT_SUCCESS; + + if (!self) { + ret = ERROR_INIT; + error("draw.c : F_BUFF not inited"); + }else if(!self->buffer){ + error("draw.c : frame buffer not initialized or contains invalid values"); + ret = ERROR_INVALID_VALUES; + } + + + volatile uint16_t enemy_size = DEFAULT_PICTURE_SIZE; + uint16_t enemy_sprite[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, + 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, + 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 0, + 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, + 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, + 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + }; + + uint16_t multipliactor = 3; + uint16_t picture[DEFAULT_PICTURE_SIZE*DEFAULT_PICTURE_SIZE*9]; + multiply_buffer(picture,enemy_sprite,enemy_size,multipliactor); + + int pic_size = enemy_size * multipliactor; + + for (int i = 0; i < pic_size*pic_size; ++i) { + + + uint32_t col = i % pic_size; + uint32_t row = i / pic_size; + int fb_index = ((y + row) * self->width) + (x + col); + self->buffer[fb_index] = picture[i] != 0 ? FB_BLUE : (FBUF_DTYPE)self->background_color; + } + + return ret; } //set letter to buffer to location x - horizontal, y - vertical //returns EXIT_SUCCESS on success, ERROR otherwise int16_t draw_letter(struct frame_buffer* self, const int x, const int y, char letter){ - info("Drawing letter to buffer..."); - uint16_t ret = EXIT_SUCCESS; - - if (!self) { - ret = ERROR_INIT; - error("draw.c : F_BUFF not inited"); - }else if(!self->buffer){ - error("draw.c : frame buffer not initialized or contains invalid values"); - ret = ERROR_INVALID_VALUES; - } - - uint16_t* letter_sprite = get_letter(letter); - - uint16_t letter_size_w = 8; - uint16_t letter_size_h = 16; - - uint16_t multipliactor = 3; - uint16_t picture[letter_size_w*letter_size_h*9]; - - multiply_letter(picture,letter_sprite,letter_size_w,letter_size_h,multipliactor); - - for(int i=0;i < letter_size_w * letter_size_h * multipliactor * multipliactor;++i){ - uint32_t col = i % (letter_size_w * multipliactor); - uint32_t row = i / (letter_size_w * multipliactor); - - int fb_index = ((y + row) * self->width) + (x + col); - self->buffer[fb_index] = picture[i] != 0 ? FB_BLUE : (FBUF_DTYPE)self->background_color; - } - - return ret; + info("Drawing letter to buffer..."); + uint16_t ret = EXIT_SUCCESS; + + if (!self) { + ret = ERROR_INIT; + error("draw.c : F_BUFF not inited"); + }else if(!self->buffer){ + error("draw.c : frame buffer not initialized or contains invalid values"); + ret = ERROR_INVALID_VALUES; + } + + uint16_t* letter_sprite = get_letter(letter); + + uint16_t letter_size_w = 8; + uint16_t letter_size_h = 16; + + uint16_t multipliactor = 3; + uint16_t picture[letter_size_w*letter_size_h*9]; + + multiply_letter(picture,letter_sprite,letter_size_w,letter_size_h,multipliactor); + + for(int i=0;i < letter_size_w * letter_size_h * multipliactor * multipliactor;++i){ + uint32_t col = i % (letter_size_w * multipliactor); + uint32_t row = i / (letter_size_w * multipliactor); + + int fb_index = ((y + row) * self->width) + (x + col); + self->buffer[fb_index] = picture[i] != 0 ? FB_BLUE : (FBUF_DTYPE)self->background_color; + } + + return ret; } //set obstacle to buffer to location x - horizontal, y - vertical //returns EXIT_SUCCESS on success, ERROR otherwise int16_t draw_obstacle(struct frame_buffer* self, const int x, const int y){ - info("Drawing obstacle to buffer..."); - uint16_t ret = EXIT_SUCCESS; - - if (!self) { - ret = ERROR_INIT; - error("draw.c : F_BUFF not inited"); - }else if(!self->buffer){ - error("draw.c : frame buffer not initialized or contains invalid values"); - ret = ERROR_INVALID_VALUES; - } - - - volatile uint16_t obstacle_size = DEFAULT_PICTURE_SIZE; - uint16_t obstacle_sprite[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, - 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, - 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 - }; - - uint16_t multipliactor = 3; - uint16_t picture[DEFAULT_PICTURE_SIZE*DEFAULT_PICTURE_SIZE*9]; - multiply_buffer(picture,obstacle_sprite,obstacle_size,multipliactor); - - int pic_size = obstacle_size * multipliactor; - - for (int i = 0; i < pic_size*pic_size; ++i) { - uint32_t col = i % pic_size; - uint32_t row = i / pic_size; - int fb_index = ((y + row) * self->width) + (x + col); - // self->buffer[fb_index] = picture[i] != 0 ? FB_BLUE : (FBUF_DTYPE)self->background_color; - self->buffer[fb_index] = picture[i] != 0 ? FB_BLUE : self->buffer[fb_index]; - } - - return ret; + info("Drawing obstacle to buffer..."); + uint16_t ret = EXIT_SUCCESS; + + if (!self) { + ret = ERROR_INIT; + error("draw.c : F_BUFF not inited"); + }else if(!self->buffer){ + error("draw.c : frame buffer not initialized or contains invalid values"); + ret = ERROR_INVALID_VALUES; + } + + + volatile uint16_t obstacle_size = DEFAULT_PICTURE_SIZE; + uint16_t obstacle_sprite[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, + 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, + 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + }; + + uint16_t multipliactor = 3; + uint16_t picture[DEFAULT_PICTURE_SIZE*DEFAULT_PICTURE_SIZE*9]; + multiply_buffer(picture,obstacle_sprite,obstacle_size,multipliactor); + + int pic_size = obstacle_size * multipliactor; + + for (int i = 0; i < pic_size*pic_size; ++i) { + uint32_t col = i % pic_size; + uint32_t row = i / pic_size; + int fb_index = ((y + row) * self->width) + (x + col); + // self->buffer[fb_index] = picture[i] != 0 ? FB_BLUE : (FBUF_DTYPE)self->background_color; + self->buffer[fb_index] = picture[i] != 0 ? FB_BLUE : self->buffer[fb_index]; + } + + return ret; } //set projectile to buffer to location x - horizontal, y - vertical //returns EXIT_SUCCESS on success, ERROR otherwise //IS SAFE TO USE OVER OTHER PICTURES fce does not modyfi already drawn pictures int16_t draw_projectile(struct frame_buffer* self, const int x, const int y, uint16_t type){ - info("Drawing projectile..."); - uint16_t ret = EXIT_SUCCESS; - - if (!self) { - ret = ERROR_INIT; - error("draw.c : F_BUFF not inited"); - }else if(!self->buffer){ - error("draw.c : frame buffer not initialized or contains invalid values"); - ret = ERROR_INVALID_VALUES; - } - - volatile uint16_t obstacle_size = DEFAULT_PICTURE_SIZE; - uint16_t obstacle_sprite[] = { - 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 - }; - - - uint16_t multipliactor = 3; - if(type == PROJECTILE_SMALL){ - multipliactor = 1; - } else if (type == PROJECTILE_MEDIUM){ - multipliactor = 2; - } - - // uint16_t* picture = my_malloc(DEFAULT_PICTURE_SIZE*DEFAULT_PICTURE_SIZE * multipliactor * multipliactor); - uint16_t picture[DEFAULT_PICTURE_SIZE * DEFAULT_PICTURE_SIZE * multipliactor * multipliactor]; - multiply_buffer(picture, obstacle_sprite, obstacle_size, multipliactor); - int pic_size = obstacle_size * multipliactor; - - for (int i = 0; i < pic_size*pic_size; ++i) { - uint32_t col = i % pic_size; - uint32_t row = i / pic_size; - int fb_index = ((y + row) * self->width) + (x + col); - self->buffer[fb_index] = picture[i] != 0 ? FB_BLUE : self->buffer[fb_index]; - } - - // free(picture); - - return ret; + info("Drawing projectile..."); + uint16_t ret = EXIT_SUCCESS; + + if (!self) { + ret = ERROR_INIT; + error("draw.c : F_BUFF not inited"); + }else if(!self->buffer){ + error("draw.c : frame buffer not initialized or contains invalid values"); + ret = ERROR_INVALID_VALUES; + } + + volatile uint16_t obstacle_size = DEFAULT_PICTURE_SIZE; + uint16_t obstacle_sprite[] = { + 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + }; + + + uint16_t multipliactor = 3; + if(type == PROJECTILE_SMALL){ + multipliactor = 1; + } else if (type == PROJECTILE_MEDIUM){ + multipliactor = 2; + } + + // uint16_t* picture = my_malloc(DEFAULT_PICTURE_SIZE*DEFAULT_PICTURE_SIZE * multipliactor * multipliactor); + uint16_t picture[DEFAULT_PICTURE_SIZE * DEFAULT_PICTURE_SIZE * multipliactor * multipliactor]; + multiply_buffer(picture, obstacle_sprite, obstacle_size, multipliactor); + int pic_size = obstacle_size * multipliactor; + + for (int i = 0; i < pic_size*pic_size; ++i) { + uint32_t col = i % pic_size; + uint32_t row = i / pic_size; + int fb_index = ((y + row) * self->width) + (x + col); + self->buffer[fb_index] = picture[i] != 0 ? FB_BLUE : self->buffer[fb_index]; + } + + // free(picture); + + return ret; } //sets buffer to buffer->background color //makes new clean buffer int16_t null_buffer(struct frame_buffer* self){ - info("Nulling buffer..."); - int16_t ret = EXIT_SUCCESS; - if(self == NULL){ - ret = ERROR_BUFFER_NULL; - } + info("Nulling buffer..."); + int16_t ret = EXIT_SUCCESS; + if(self == NULL){ + ret = ERROR_BUFFER_NULL; + } - self->color_background(self,self->background_color); + self->color_background(self,self->background_color); - return ret; + return ret; } //multiplies the size of the buffer with its contents void multiply_buffer(uint16_t ret_buffer[],uint16_t buffer[],const uint16_t picture_size,uint16_t multipliactor){ - uint16_t buffer_size = picture_size*picture_size; + uint16_t buffer_size = picture_size*picture_size; - int row_size = picture_size*multipliactor; + int row_size = picture_size*multipliactor; - for(int i=0;i<buffer_size;++i){ + for(int i=0;i<buffer_size;++i){ - for(int a=0;a<multipliactor;++a){ - int row = i/picture_size * multipliactor + a; + for(int a=0;a<multipliactor;++a){ + int row = i/picture_size * multipliactor + a; - for(int b=0;b<multipliactor;++b){ + for(int b=0;b<multipliactor;++b){ - int col = i % picture_size * multipliactor + b; + int col = i % picture_size * multipliactor + b; - ret_buffer[row * row_size + col] = buffer[i]; - } + ret_buffer[row * row_size + col] = buffer[i]; + } + } } - } } void multiply_letter(uint16_t ret_buffer[],uint16_t buffer[],const uint16_t width, const uint16_t height,uint16_t multipliactor){ - uint16_t buffer_size = width*height; - int row_size = width*multipliactor; - - for(int i=0;i<buffer_size;++i){ - for(int a=0;a<multipliactor;++a){ - int row = i/width * multipliactor + a; - for(int b=0;b<multipliactor;++b){ - int col = i % width * multipliactor + b; - ret_buffer[row * row_size + col] = buffer[i]; - } + uint16_t buffer_size = width*height; + int row_size = width*multipliactor; + + for(int i=0;i<buffer_size;++i){ + for(int a=0;a<multipliactor;++a){ + int row = i/width * multipliactor + a; + for(int b=0;b<multipliactor;++b){ + int col = i % width * multipliactor + b; + ret_buffer[row * row_size + col] = buffer[i]; + } + } } - } } void free_buffer(struct frame_buffer* self) { - free(self->buffer); - free(self); + free(self->buffer); + free(self); } /* diff --git a/main/draw.h b/main/draw.h index 1141cfa..5e67745 100644 --- a/main/draw.h +++ b/main/draw.h @@ -1,8 +1,8 @@ /******************************************************************* - Header for draw.c - Method representing frame_buffer - authors: Pelech Ondrej, Pham Thi Thien Trang - date: Mai 2023 + Header for draw.c + Method representing frame_buffer + authors: Pelech Ondrej, Pham Thi Thien Trang + date: Mai 2023 *******************************************************************/ #ifndef __DRAW_H__ @@ -60,48 +60,48 @@ enum {ERROR_BUF_INIT = 201,ERROR_INVALID_VALUES}; #define INVERT_COLORS 0 // set to not 0 typedef struct frame_buffer{ - FBUF_DTYPE *buffer; - uint32_t width, height; - uint32_t buffer_length; - uint32_t mem_size; + FBUF_DTYPE *buffer; + uint32_t width, height; + uint32_t buffer_length; + uint32_t mem_size; - void* background_color; + void* background_color; - volatile void *lcdBaseAddr; + volatile void *lcdBaseAddr; - // draws buffer to MZ - // Method draw - int16_t (*draw)(struct frame_buffer* self); + // draws buffer to MZ + // Method draw + int16_t (*draw)(struct frame_buffer* self); - // draws plane to buffer to pos x, y - // Method draw_plane - int16_t (*draw_plane)(struct frame_buffer* self, const int x, const int y); + // draws plane to buffer to pos x, y + // Method draw_plane + int16_t (*draw_plane)(struct frame_buffer* self, const int x, const int y); - // draws obstacle to buffer to pos x, y - // Method draw_obstacle - int16_t (*draw_obstacle)(struct frame_buffer* self, const int x, const int y); + // draws obstacle to buffer to pos x, y + // Method draw_obstacle + int16_t (*draw_obstacle)(struct frame_buffer* self, const int x, const int y); - // draws obstacle to buffer to pos x, y - // Method draw_enemy - int16_t (*draw_enemy)(struct frame_buffer* self, const int x, const int y); + // draws obstacle to buffer to pos x, y + // Method draw_enemy + int16_t (*draw_enemy)(struct frame_buffer* self, const int x, const int y); - // draws projectile of type to buffer to pos x,y - // Method draw_projectile - int16_t (*draw_projectile)(struct frame_buffer* self, const int x, const int y, uint16_t type); + // draws projectile of type to buffer to pos x,y + // Method draw_projectile + int16_t (*draw_projectile)(struct frame_buffer* self, const int x, const int y, uint16_t type); - // draws letter to buffer pos x,y - // Method draw_letter - int16_t (*draw_letter)(struct frame_buffer* self, const int x, const int y, char letter); + // draws letter to buffer pos x,y + // Method draw_letter + int16_t (*draw_letter)(struct frame_buffer* self, const int x, const int y, char letter); - // set whole buffer to color - // Method color_background - int16_t (*color_background)(struct frame_buffer* self,uint16_t color); + // set whole buffer to color + // Method color_background + int16_t (*color_background)(struct frame_buffer* self,uint16_t color); - // Method mull_buffer - int16_t (*null_buffer)(struct frame_buffer* self); - - // frees buffer - void (*free)(struct frame_buffer* self); + // Method mull_buffer + int16_t (*null_buffer)(struct frame_buffer* self); + + // frees buffer + void (*free)(struct frame_buffer* self); } frame_buffer_t; diff --git a/main/enemy.h b/main/enemy.h index fa4d097..5ab9136 100644 --- a/main/enemy.h +++ b/main/enemy.h @@ -1,8 +1,8 @@ /******************************************************************* - Header file for enemy.c - Method representing enemy - authors: Pelech Ondrej, Pham Thi Thien Trang - date: Mai 2023 + Header file for enemy.c + Method representing enemy + authors: Pelech Ondrej, Pham Thi Thien Trang + date: Mai 2023 *******************************************************************/ #ifndef __ENEMY_H__ diff --git a/main/font_prop14x16.c b/main/font_prop14x16.c index 410b602..1300671 100644 --- a/main/font_prop14x16.c +++ b/main/font_prop14x16.c @@ -12,25 +12,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { /* Character (0x20): - ht=16, width=4 - +----+ - | | - | | - | | - | | - | | - | | - | | - | | - | | - | | - | | - | | - | | - | | - | | - | | - +----+ */ + ht=16, width=4 + +----+ + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + +----+ */ 0x0000, 0x0000, 0x0000, @@ -49,25 +49,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character ! (0x21): - ht=16, width=4 - +----+ - | | - | | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | | - | ** | - | ** | - | | - | | - | | - +----+ */ + ht=16, width=4 + +----+ + | | + | | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | | + | ** | + | ** | + | | + | | + | | + +----+ */ 0x0000, 0x0000, 0x6000, @@ -86,25 +86,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character " (0x22): - ht=16, width=6 - +------+ - | | - | | - |** **| - |** **| - |** **| - |** **| - |** **| - | | - | | - | | - | | - | | - | | - | | - | | - | | - +------+ */ + ht=16, width=6 + +------+ + | | + | | + |** **| + |** **| + |** **| + |** **| + |** **| + | | + | | + | | + | | + | | + | | + | | + | | + | | + +------+ */ 0x0000, 0x0000, 0xcc00, @@ -123,25 +123,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character # (0x23): - ht=16, width=8 - +--------+ - | | - | | - | ** ** | - | ** ** | - | *******| - | *******| - | ** ** | - | ** ** | - | ** ** | - | ** ** | - |******* | - |******* | - | ** ** | - | ** ** | - | | - | | - +--------+ */ + ht=16, width=8 + +--------+ + | | + | | + | ** ** | + | ** ** | + | *******| + | *******| + | ** ** | + | ** ** | + | ** ** | + | ** ** | + |******* | + |******* | + | ** ** | + | ** ** | + | | + | | + +--------+ */ 0x0000, 0x0000, 0x3600, @@ -160,25 +160,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character $ (0x24): - ht=16, width=8 - +--------+ - | | - | | - | ** | - | ****** | - |** ** **| - |** ** **| - |** ** | - |****** | - | ***** | - | ** **| - |** ** **| - |** ** **| - | ****** | - | ** | - | | - | | - +--------+ */ + ht=16, width=8 + +--------+ + | | + | | + | ** | + | ****** | + |** ** **| + |** ** **| + |** ** | + |****** | + | ***** | + | ** **| + |** ** **| + |** ** **| + | ****** | + | ** | + | | + | | + +--------+ */ 0x0000, 0x0000, 0x1800, @@ -197,25 +197,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character % (0x25): - ht=16, width=11 - +-----------+ - | | - | | - | *** **| - |** ** ** | - |** ** ** | - |** ** ** | - | *** ** | - | ** | - | ** *** | - | ** ** **| - | ** ** **| - | ** ** **| - |** *** | - | | - | | - | | - +-----------+ */ + ht=16, width=11 + +-----------+ + | | + | | + | *** **| + |** ** ** | + |** ** ** | + |** ** ** | + | *** ** | + | ** | + | ** *** | + | ** ** **| + | ** ** **| + | ** ** **| + |** *** | + | | + | | + | | + +-----------+ */ 0x0000, 0x0000, 0x7060, @@ -234,25 +234,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character & (0x26): - ht=16, width=9 - +---------+ - | | - | | - | *** | - | ** ** | - | * * | - | * * | - | ** ** | - | *** | - | *** * | - | ** ** * | - | * *** | - | ** ** | - | ****** | - | | - | | - | | - +---------+ */ + ht=16, width=9 + +---------+ + | | + | | + | *** | + | ** ** | + | * * | + | * * | + | ** ** | + | *** | + | *** * | + | ** ** * | + | * *** | + | ** ** | + | ****** | + | | + | | + | | + +---------+ */ 0x0000, 0x0000, 0x1c00, @@ -271,25 +271,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character ' (0x27): - ht=16, width=4 - +----+ - | | - | | - | ** | - | ** | - | ** | - | ** | - | ** | - | | - | | - | | - | | - | | - | | - | | - | | - | | - +----+ */ + ht=16, width=4 + +----+ + | | + | | + | ** | + | ** | + | ** | + | ** | + | ** | + | | + | | + | | + | | + | | + | | + | | + | | + | | + +----+ */ 0x0000, 0x0000, 0x6000, @@ -308,25 +308,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character ( (0x28): - ht=16, width=4 - +----+ - | | - | | - | **| - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | **| - +----+ */ + ht=16, width=4 + +----+ + | | + | | + | **| + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | **| + +----+ */ 0x0000, 0x0000, 0x3000, @@ -345,25 +345,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x3000, /* Character ) (0x29): - ht=16, width=4 - +----+ - | | - | | - |** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - |** | - +----+ */ + ht=16, width=4 + +----+ + | | + | | + |** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + |** | + +----+ */ 0x0000, 0x0000, 0xc000, @@ -382,25 +382,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0xc000, /* Character * (0x2a): - ht=16, width=6 - +------+ - | | - | | - | ** | - | ** | - |******| - | ** | - | **** | - | * * | - | | - | | - | | - | | - | | - | | - | | - | | - +------+ */ + ht=16, width=6 + +------+ + | | + | | + | ** | + | ** | + |******| + | ** | + | **** | + | * * | + | | + | | + | | + | | + | | + | | + | | + | | + +------+ */ 0x0000, 0x0000, 0x3000, @@ -419,25 +419,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character + (0x2b): - ht=16, width=8 - +--------+ - | | - | | - | | - | | - | ** | - | ** | - | ** | - | ** | - |********| - | ** | - | ** | - | ** | - | ** | - | | - | | - | | - +--------+ */ + ht=16, width=8 + +--------+ + | | + | | + | | + | | + | ** | + | ** | + | ** | + | ** | + |********| + | ** | + | ** | + | ** | + | ** | + | | + | | + | | + +--------+ */ 0x0000, 0x0000, 0x0000, @@ -456,25 +456,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character , (0x2c): - ht=16, width=4 - +----+ - | | - | | - | | - | | - | | - | | - | | - | | - | | - | | - | ** | - | ** | - | ** | - |** | - | | - | | - +----+ */ + ht=16, width=4 + +----+ + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | ** | + | ** | + | ** | + |** | + | | + | | + +----+ */ 0x0000, 0x0000, 0x0000, @@ -493,25 +493,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character - (0x2d): - ht=16, width=4 - +----+ - | | - | | - | | - | | - | | - | | - | | - |****| - |****| - | | - | | - | | - | | - | | - | | - | | - +----+ */ + ht=16, width=4 + +----+ + | | + | | + | | + | | + | | + | | + | | + |****| + |****| + | | + | | + | | + | | + | | + | | + | | + +----+ */ 0x0000, 0x0000, 0x0000, @@ -530,25 +530,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character . (0x2e): - ht=16, width=4 - +----+ - | | - | | - | | - | | - | | - | | - | | - | | - | | - | | - |*** | - |*** | - |*** | - | | - | | - | | - +----+ */ + ht=16, width=4 + +----+ + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + |*** | + |*** | + |*** | + | | + | | + | | + +----+ */ 0x0000, 0x0000, 0x0000, @@ -567,25 +567,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character / (0x2f): - ht=16, width=4 - +----+ - | | - | | - | **| - | **| - | **| - | **| - | ***| - | ** | - | ** | - | ** | - | ** | - |*** | - |** | - |** | - |** | - | | - +----+ */ + ht=16, width=4 + +----+ + | | + | | + | **| + | **| + | **| + | **| + | ***| + | ** | + | ** | + | ** | + | ** | + |*** | + |** | + |** | + |** | + | | + +----+ */ 0x0000, 0x0000, 0x3000, @@ -604,25 +604,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character 0 (0x30): - ht=16, width=8 - +--------+ - | | - | | - | **** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | **** | - | | - | | - | | - +--------+ */ + ht=16, width=8 + +--------+ + | | + | | + | **** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | **** | + | | + | | + | | + +--------+ */ 0x0000, 0x0000, 0x3c00, @@ -641,25 +641,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character 1 (0x31): - ht=16, width=8 - +--------+ - | | - | | - | ** | - | **** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | | - | | - | | - +--------+ */ + ht=16, width=8 + +--------+ + | | + | | + | ** | + | **** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | | + | | + | | + +--------+ */ 0x0000, 0x0000, 0x1800, @@ -678,25 +678,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character 2 (0x32): - ht=16, width=8 - +--------+ - | | - | | - | **** | - | ** ** | - | ** ** | - | ** ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ****** | - | | - | | - | | - +--------+ */ + ht=16, width=8 + +--------+ + | | + | | + | **** | + | ** ** | + | ** ** | + | ** ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ****** | + | | + | | + | | + +--------+ */ 0x0000, 0x0000, 0x3c00, @@ -715,25 +715,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character 3 (0x33): - ht=16, width=8 - +--------+ - | | - | | - | **** | - | ** ** | - | ** ** | - | ** | - | ** | - | *** | - | ** | - | ** | - | ** ** | - | ** ** | - | **** | - | | - | | - | | - +--------+ */ + ht=16, width=8 + +--------+ + | | + | | + | **** | + | ** ** | + | ** ** | + | ** | + | ** | + | *** | + | ** | + | ** | + | ** ** | + | ** ** | + | **** | + | | + | | + | | + +--------+ */ 0x0000, 0x0000, 0x3c00, @@ -752,25 +752,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character 4 (0x34): - ht=16, width=8 - +--------+ - | | - | | - | | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | ****** | - | ****** | - | ** | - | ** | - | ** | - | | - | | - | | - +--------+ */ + ht=16, width=8 + +--------+ + | | + | | + | | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | ****** | + | ****** | + | ** | + | ** | + | ** | + | | + | | + | | + +--------+ */ 0x0000, 0x0000, 0x0000, @@ -789,25 +789,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character 5 (0x35): - ht=16, width=8 - +--------+ - | | - | | - | ****** | - | ** | - | ** | - | ** | - | ***** | - | ** ** | - | ** | - | ** | - | ** ** | - | ** ** | - | **** | - | | - | | - | | - +--------+ */ + ht=16, width=8 + +--------+ + | | + | | + | ****** | + | ** | + | ** | + | ** | + | ***** | + | ** ** | + | ** | + | ** | + | ** ** | + | ** ** | + | **** | + | | + | | + | | + +--------+ */ 0x0000, 0x0000, 0x7e00, @@ -826,25 +826,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character 6 (0x36): - ht=16, width=8 - +--------+ - | | - | | - | **** | - | ** ** | - | ** ** | - | ** | - | ** | - | ***** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | **** | - | | - | | - | | - +--------+ */ + ht=16, width=8 + +--------+ + | | + | | + | **** | + | ** ** | + | ** ** | + | ** | + | ** | + | ***** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | **** | + | | + | | + | | + +--------+ */ 0x0000, 0x0000, 0x3c00, @@ -863,25 +863,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character 7 (0x37): - ht=16, width=8 - +--------+ - | | - | | - | ****** | - | ** | - | ** | - | ** | - | ** | - | ****** | - | ** | - | ** | - | ** | - | ** | - | ** | - | | - | | - | | - +--------+ */ + ht=16, width=8 + +--------+ + | | + | | + | ****** | + | ** | + | ** | + | ** | + | ** | + | ****** | + | ** | + | ** | + | ** | + | ** | + | ** | + | | + | | + | | + +--------+ */ 0x0000, 0x0000, 0x7e00, @@ -900,25 +900,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character 8 (0x38): - ht=16, width=8 - +--------+ - | | - | | - | **** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | **** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | **** | - | | - | | - | | - +--------+ */ + ht=16, width=8 + +--------+ + | | + | | + | **** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | **** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | **** | + | | + | | + | | + +--------+ */ 0x0000, 0x0000, 0x3c00, @@ -937,25 +937,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character 9 (0x39): - ht=16, width=8 - +--------+ - | | - | | - | **** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | ***** | - | ** | - | ** | - | ** | - | ** ** | - | **** | - | | - | | - | | - +--------+ */ + ht=16, width=8 + +--------+ + | | + | | + | **** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | ***** | + | ** | + | ** | + | ** | + | ** ** | + | **** | + | | + | | + | | + +--------+ */ 0x0000, 0x0000, 0x3c00, @@ -974,25 +974,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character : (0x3a): - ht=16, width=4 - +----+ - | | - | | - | | - | | - | ** | - | ** | - | | - | | - | | - | | - | | - | ** | - | ** | - | | - | | - | | - +----+ */ + ht=16, width=4 + +----+ + | | + | | + | | + | | + | ** | + | ** | + | | + | | + | | + | | + | | + | ** | + | ** | + | | + | | + | | + +----+ */ 0x0000, 0x0000, 0x0000, @@ -1011,25 +1011,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character ; (0x3b): - ht=16, width=4 - +----+ - | | - | | - | | - | | - | ** | - | ** | - | | - | | - | | - | | - | ** | - | ** | - | ** | - |** | - | | - | | - +----+ */ + ht=16, width=4 + +----+ + | | + | | + | | + | | + | ** | + | ** | + | | + | | + | | + | | + | ** | + | ** | + | ** | + |** | + | | + | | + +----+ */ 0x0000, 0x0000, 0x0000, @@ -1048,25 +1048,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character < (0x3c): - ht=16, width=8 - +--------+ - | | - | | - | | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | | - | | - | | - +--------+ */ + ht=16, width=8 + +--------+ + | | + | | + | | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | | + | | + | | + +--------+ */ 0x0000, 0x0000, 0x0000, @@ -1085,25 +1085,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character = (0x3d): - ht=16, width=8 - +--------+ - | | - | | - | | - | | - | | - | ****** | - | ****** | - | | - | ****** | - | ****** | - | | - | | - | | - | | - | | - | | - +--------+ */ + ht=16, width=8 + +--------+ + | | + | | + | | + | | + | | + | ****** | + | ****** | + | | + | ****** | + | ****** | + | | + | | + | | + | | + | | + | | + +--------+ */ 0x0000, 0x0000, 0x0000, @@ -1122,25 +1122,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character > (0x3e): - ht=16, width=8 - +--------+ - | | - | | - | | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | | - | | - | | - +--------+ */ + ht=16, width=8 + +--------+ + | | + | | + | | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | | + | | + | | + +--------+ */ 0x0000, 0x0000, 0x0000, @@ -1159,25 +1159,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character ? (0x3f): - ht=16, width=8 - +--------+ - | | - | | - | **** | - | ** ** | - | ** ** | - | ** ** | - | ** | - | ** | - | ** | - | ** | - | | - | ** | - | ** | - | | - | | - | | - +--------+ */ + ht=16, width=8 + +--------+ + | | + | | + | **** | + | ** ** | + | ** ** | + | ** ** | + | ** | + | ** | + | ** | + | ** | + | | + | ** | + | ** | + | | + | | + | | + +--------+ */ 0x0000, 0x0000, 0x3c00, @@ -1196,25 +1196,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character @ (0x40): - ht=16, width=14 - +--------------+ - | | - | **** | - | *** *** | - | *** *** | - | ** ** ** | - | ** **** ** | - | ** ** ** ** | - | ** ** ** ** | - | ** ** ** ** | - | ** ** ** ** | - | ** **** ** | - | ** * **** | - | ** | - | *** *** | - | ***** | - | | - +--------------+ */ + ht=16, width=14 + +--------------+ + | | + | **** | + | *** *** | + | *** *** | + | ** ** ** | + | ** **** ** | + | ** ** ** ** | + | ** ** ** ** | + | ** ** ** ** | + | ** ** ** ** | + | ** **** ** | + | ** * **** | + | ** | + | *** *** | + | ***** | + | | + +--------------+ */ 0x0000, 0x0780, 0x1ce0, @@ -1233,25 +1233,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character A (0x41): - ht=16, width=8 - +--------+ - | | - | | - | ** | - | ** | - | **** | - | **** | - | * * | - | ** ** | - | ****** | - | ****** | - |*** ***| - |** **| - |** **| - | | - | | - | | - +--------+ */ + ht=16, width=8 + +--------+ + | | + | | + | ** | + | ** | + | **** | + | **** | + | * * | + | ** ** | + | ****** | + | ****** | + |*** ***| + |** **| + |** **| + | | + | | + | | + +--------+ */ 0x0000, 0x0000, 0x1800, @@ -1270,25 +1270,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character B (0x42): - ht=16, width=10 - +----------+ - | | - | | - | ******* | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | ******* | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | ******* | - | | - | | - | | - +----------+ */ + ht=16, width=10 + +----------+ + | | + | | + | ******* | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | ******* | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | ******* | + | | + | | + | | + +----------+ */ 0x0000, 0x0000, 0x7f00, @@ -1307,25 +1307,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character C (0x43): - ht=16, width=9 - +---------+ - | | - | | - | **** | - | ** ** | - | ** * | - | ** * | - | ** | - | ** | - | ** | - | ** * | - | ** * | - | ** ** | - | **** | - | | - | | - | | - +---------+ */ + ht=16, width=9 + +---------+ + | | + | | + | **** | + | ** ** | + | ** * | + | ** * | + | ** | + | ** | + | ** | + | ** * | + | ** * | + | ** ** | + | **** | + | | + | | + | | + +---------+ */ 0x0000, 0x0000, 0x1e00, @@ -1344,25 +1344,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character D (0x44): - ht=16, width=10 - +----------+ - | | - | | - | ****** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | ****** | - | | - | | - | | - +----------+ */ + ht=16, width=10 + +----------+ + | | + | | + | ****** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | ****** | + | | + | | + | | + +----------+ */ 0x0000, 0x0000, 0x7e00, @@ -1381,25 +1381,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character E (0x45): - ht=16, width=9 - +---------+ - | | - | | - | ******* | - | ** | - | ** | - | ** | - | ** | - | ******* | - | ** | - | ** | - | ** | - | ** | - | ******* | - | | - | | - | | - +---------+ */ + ht=16, width=9 + +---------+ + | | + | | + | ******* | + | ** | + | ** | + | ** | + | ** | + | ******* | + | ** | + | ** | + | ** | + | ** | + | ******* | + | | + | | + | | + +---------+ */ 0x0000, 0x0000, 0x7f00, @@ -1418,25 +1418,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character F (0x46): - ht=16, width=8 - +--------+ - | | - | | - | *******| - | ** | - | ** | - | ** | - | ** | - | *******| - | ** | - | ** | - | ** | - | ** | - | ** | - | | - | | - | | - +--------+ */ + ht=16, width=8 + +--------+ + | | + | | + | *******| + | ** | + | ** | + | ** | + | ** | + | *******| + | ** | + | ** | + | ** | + | ** | + | ** | + | | + | | + | | + +--------+ */ 0x0000, 0x0000, 0x7f00, @@ -1455,25 +1455,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character G (0x47): - ht=16, width=10 - +----------+ - | | - | | - | ***** | - | ** ** | - | ** * | - | ** * | - | ** | - | ** | - | ** **** | - | ** ** | - | ** ** | - | ** ** | - | **** * | - | | - | | - | | - +----------+ */ + ht=16, width=10 + +----------+ + | | + | | + | ***** | + | ** ** | + | ** * | + | ** * | + | ** | + | ** | + | ** **** | + | ** ** | + | ** ** | + | ** ** | + | **** * | + | | + | | + | | + +----------+ */ 0x0000, 0x0000, 0x1f00, @@ -1492,25 +1492,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character H (0x48): - ht=16, width=10 - +----------+ - | | - | | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | ******** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | | - | | - | | - +----------+ */ + ht=16, width=10 + +----------+ + | | + | | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | ******** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | | + | | + | | + +----------+ */ 0x0000, 0x0000, 0x6180, @@ -1529,25 +1529,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character I (0x49): - ht=16, width=4 - +----+ - | | - | | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | | - | | - | | - +----+ */ + ht=16, width=4 + +----+ + | | + | | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | | + | | + | | + +----+ */ 0x0000, 0x0000, 0x6000, @@ -1566,25 +1566,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character J (0x4a): - ht=16, width=7 - +-------+ - | | - | | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - |** ** | - |** ** | - |** ** | - | **** | - | | - | | - | | - +-------+ */ + ht=16, width=7 + +-------+ + | | + | | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + |** ** | + |** ** | + |** ** | + | **** | + | | + | | + | | + +-------+ */ 0x0000, 0x0000, 0x0c00, @@ -1603,25 +1603,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character K (0x4b): - ht=16, width=9 - +---------+ - | | - | | - | ** **| - | ** ** | - | ** ** | - | ** ** | - | **** | - | *** | - | **** | - | ** ** | - | ** ** | - | ** ** | - | ** **| - | | - | | - | | - +---------+ */ + ht=16, width=9 + +---------+ + | | + | | + | ** **| + | ** ** | + | ** ** | + | ** ** | + | **** | + | *** | + | **** | + | ** ** | + | ** ** | + | ** ** | + | ** **| + | | + | | + | | + +---------+ */ 0x0000, 0x0000, 0x6180, @@ -1640,25 +1640,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character L (0x4c): - ht=16, width=8 - +--------+ - | | - | | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | *******| - | | - | | - | | - +--------+ */ + ht=16, width=8 + +--------+ + | | + | | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | *******| + | | + | | + | | + +--------+ */ 0x0000, 0x0000, 0x6000, @@ -1677,25 +1677,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character M (0x4d): - ht=16, width=12 - +------------+ - | | - | | - | ** ** | - | ** ** | - | *** *** | - | *** *** | - | **** **** | - | **** **** | - | ** **** ** | - | ** **** ** | - | ** ** ** | - | ** ** ** | - | ** ** | - | | - | | - | | - +------------+ */ + ht=16, width=12 + +------------+ + | | + | | + | ** ** | + | ** ** | + | *** *** | + | *** *** | + | **** **** | + | **** **** | + | ** **** ** | + | ** **** ** | + | ** ** ** | + | ** ** ** | + | ** ** | + | | + | | + | | + +------------+ */ 0x0000, 0x0000, 0x6060, @@ -1714,25 +1714,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character N (0x4e): - ht=16, width=10 - +----------+ - | | - | | - | ** ** | - | *** ** | - | *** ** | - | **** ** | - | ***** ** | - | ** ** ** | - | ** ***** | - | ** **** | - | ** *** | - | ** *** | - | ** ** | - | | - | | - | | - +----------+ */ + ht=16, width=10 + +----------+ + | | + | | + | ** ** | + | *** ** | + | *** ** | + | **** ** | + | ***** ** | + | ** ** ** | + | ** ***** | + | ** **** | + | ** *** | + | ** *** | + | ** ** | + | | + | | + | | + +----------+ */ 0x0000, 0x0000, 0x6180, @@ -1751,25 +1751,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character O (0x4f): - ht=16, width=10 - +----------+ - | | - | | - | **** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | **** | - | | - | | - | | - +----------+ */ + ht=16, width=10 + +----------+ + | | + | | + | **** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | **** | + | | + | | + | | + +----------+ */ 0x0000, 0x0000, 0x1e00, @@ -1788,25 +1788,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character P (0x50): - ht=16, width=9 - +---------+ - | | - | | - | ******* | - | ** **| - | ** **| - | ** **| - | ** **| - | ** **| - | ******* | - | ** | - | ** | - | ** | - | ** | - | | - | | - | | - +---------+ */ + ht=16, width=9 + +---------+ + | | + | | + | ******* | + | ** **| + | ** **| + | ** **| + | ** **| + | ** **| + | ******* | + | ** | + | ** | + | ** | + | ** | + | | + | | + | | + +---------+ */ 0x0000, 0x0000, 0x7f00, @@ -1825,25 +1825,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character Q (0x51): - ht=16, width=10 - +----------+ - | | - | | - | **** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | ** * ** | - | ** **** | - | ** ** | - | ****** | - | | - | | - | | - +----------+ */ + ht=16, width=10 + +----------+ + | | + | | + | **** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | ** * ** | + | ** **** | + | ** ** | + | ****** | + | | + | | + | | + +----------+ */ 0x0000, 0x0000, 0x1e00, @@ -1862,25 +1862,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character R (0x52): - ht=16, width=10 - +----------+ - | | - | | - | ******* | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | ******* | - | ** ** | - | ** ** | - | ** ** | - | ** **| - | | - | | - | | - +----------+ */ + ht=16, width=10 + +----------+ + | | + | | + | ******* | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | ******* | + | ** ** | + | ** ** | + | ** ** | + | ** **| + | | + | | + | | + +----------+ */ 0x0000, 0x0000, 0x7f00, @@ -1899,25 +1899,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character S (0x53): - ht=16, width=9 - +---------+ - | | - | | - | ***** | - | ** ** | - | ** ** | - | ** ** | - | *** | - | *** | - | ** | - | ** ** | - | ** ** | - | ** ** | - | ***** | - | | - | | - | | - +---------+ */ + ht=16, width=9 + +---------+ + | | + | | + | ***** | + | ** ** | + | ** ** | + | ** ** | + | *** | + | *** | + | ** | + | ** ** | + | ** ** | + | ** ** | + | ***** | + | | + | | + | | + +---------+ */ 0x0000, 0x0000, 0x3e00, @@ -1936,25 +1936,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character T (0x54): - ht=16, width=8 - +--------+ - | | - | | - |********| - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | | - | | - | | - +--------+ */ + ht=16, width=8 + +--------+ + | | + | | + |********| + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | | + | | + | | + +--------+ */ 0x0000, 0x0000, 0xff00, @@ -1973,25 +1973,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character U (0x55): - ht=16, width=10 - +----------+ - | | - | | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | **** | - | | - | | - | | - +----------+ */ + ht=16, width=10 + +----------+ + | | + | | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | **** | + | | + | | + | | + +----------+ */ 0x0000, 0x0000, 0x6180, @@ -2010,25 +2010,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character V (0x56): - ht=16, width=8 - +--------+ - | | - | | - |** **| - |** **| - |** **| - | ** ** | - | ** ** | - | ** ** | - | * * | - | **** | - | **** | - | ** | - | ** | - | | - | | - | | - +--------+ */ + ht=16, width=8 + +--------+ + | | + | | + |** **| + |** **| + |** **| + | ** ** | + | ** ** | + | ** ** | + | * * | + | **** | + | **** | + | ** | + | ** | + | | + | | + | | + +--------+ */ 0x0000, 0x0000, 0xc300, @@ -2047,25 +2047,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character W (0x57): - ht=16, width=14 - +--------------+ - | | - | | - |** **| - |** ** **| - |** ** **| - |** ** **| - | ** **** ** | - | ** **** ** | - | ** * * ** | - | **** **** | - | ** ** | - | ** ** | - | ** ** | - | | - | | - | | - +--------------+ */ + ht=16, width=14 + +--------------+ + | | + | | + |** **| + |** ** **| + |** ** **| + |** ** **| + | ** **** ** | + | ** **** ** | + | ** * * ** | + | **** **** | + | ** ** | + | ** ** | + | ** ** | + | | + | | + | | + +--------------+ */ 0x0000, 0x0000, 0xc00c, @@ -2084,25 +2084,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character X (0x58): - ht=16, width=9 - +---------+ - | | - | | - |** **| - |** **| - | ** ** | - | ** ** | - | *** | - | *** | - | *** | - | ** ** | - | ** ** | - |** **| - |** **| - | | - | | - | | - +---------+ */ + ht=16, width=9 + +---------+ + | | + | | + |** **| + |** **| + | ** ** | + | ** ** | + | *** | + | *** | + | *** | + | ** ** | + | ** ** | + |** **| + |** **| + | | + | | + | | + +---------+ */ 0x0000, 0x0000, 0xc180, @@ -2121,25 +2121,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character Y (0x59): - ht=16, width=10 - +----------+ - | | - | | - |** **| - |** **| - |** **| - | ** ** | - | ** ** | - | **** | - | ** | - | ** | - | ** | - | ** | - | ** | - | | - | | - | | - +----------+ */ + ht=16, width=10 + +----------+ + | | + | | + |** **| + |** **| + |** **| + | ** ** | + | ** ** | + | **** | + | ** | + | ** | + | ** | + | ** | + | ** | + | | + | | + | | + +----------+ */ 0x0000, 0x0000, 0xc0c0, @@ -2158,25 +2158,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character Z (0x5a): - ht=16, width=9 - +---------+ - | | - | | - |*********| - | **| - | ** | - | ** | - | ** | - | * | - | ** | - | ** | - | ** | - |** | - |*********| - | | - | | - | | - +---------+ */ + ht=16, width=9 + +---------+ + | | + | | + |*********| + | **| + | ** | + | ** | + | ** | + | * | + | ** | + | ** | + | ** | + |** | + |*********| + | | + | | + | | + +---------+ */ 0x0000, 0x0000, 0xff80, @@ -2195,25 +2195,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character [ (0x5b): - ht=16, width=4 - +----+ - | | - | | - | ***| - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ***| - +----+ */ + ht=16, width=4 + +----+ + | | + | | + | ***| + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ***| + +----+ */ 0x0000, 0x0000, 0x7000, @@ -2232,25 +2232,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x7000, /* Character \ (0x5c): - ht=16, width=4 - +----+ - | | - | | - |** | - |** | - |** | - |** | - | ** | - | ** | - | ** | - | ** | - | ** | - | **| - | **| - | **| - | **| - | | - +----+ */ + ht=16, width=4 + +----+ + | | + | | + |** | + |** | + |** | + |** | + | ** | + | ** | + | ** | + | ** | + | ** | + | **| + | **| + | **| + | **| + | | + +----+ */ 0x0000, 0x0000, 0xc000, @@ -2269,25 +2269,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character ] (0x5d): - ht=16, width=4 - +----+ - | | - | | - |*** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - |*** | - +----+ */ + ht=16, width=4 + +----+ + | | + | | + |*** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + |*** | + +----+ */ 0x0000, 0x0000, 0xe000, @@ -2306,25 +2306,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0xe000, /* Character ^ (0x5e): - ht=16, width=5 - +-----+ - | | - | | - | * | - | *** | - |*****| - |** **| - |* *| - | | - | | - | | - | | - | | - | | - | | - | | - | | - +-----+ */ + ht=16, width=5 + +-----+ + | | + | | + | * | + | *** | + |*****| + |** **| + |* *| + | | + | | + | | + | | + | | + | | + | | + | | + | | + +-----+ */ 0x0000, 0x0000, 0x2000, @@ -2343,25 +2343,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character _ (0x5f): - ht=16, width=8 - +--------+ - | | - | | - | | - | | - | | - | | - | | - | | - | | - | | - | | - | | - | | - | | - | | - |********| - +--------+ */ + ht=16, width=8 + +--------+ + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + |********| + +--------+ */ 0x0000, 0x0000, 0x0000, @@ -2380,25 +2380,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0xff00, /* Character ` (0x60): - ht=16, width=5 - +-----+ - | | - | ** | - | *** | - | ** | - | **| - | | - | | - | | - | | - | | - | | - | | - | | - | | - | | - | | - +-----+ */ + ht=16, width=5 + +-----+ + | | + | ** | + | *** | + | ** | + | **| + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + +-----+ */ 0x0000, 0x6000, 0x7000, @@ -2417,25 +2417,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character a (0x61): - ht=16, width=8 - +--------+ - | | - | | - | | - | | - | | - | **** | - | ** ** | - | * ** | - | **** | - | ** ** | - | ** ** | - | ** ** | - | ***** | - | | - | | - | | - +--------+ */ + ht=16, width=8 + +--------+ + | | + | | + | | + | | + | | + | **** | + | ** ** | + | * ** | + | **** | + | ** ** | + | ** ** | + | ** ** | + | ***** | + | | + | | + | | + +--------+ */ 0x0000, 0x0000, 0x0000, @@ -2454,25 +2454,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character b (0x62): - ht=16, width=8 - +--------+ - | | - | | - | ** | - | ** | - | ** | - | ** | - | ***** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | ***** | - | | - | | - | | - +--------+ */ + ht=16, width=8 + +--------+ + | | + | | + | ** | + | ** | + | ** | + | ** | + | ***** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | ***** | + | | + | | + | | + +--------+ */ 0x0000, 0x0000, 0x6000, @@ -2491,25 +2491,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character c (0x63): - ht=16, width=7 - +-------+ - | | - | | - | | - | | - | | - | **** | - | ** **| - | ** | - | ** | - | ** | - | ** | - | ** **| - | **** | - | | - | | - | | - +-------+ */ + ht=16, width=7 + +-------+ + | | + | | + | | + | | + | | + | **** | + | ** **| + | ** | + | ** | + | ** | + | ** | + | ** **| + | **** | + | | + | | + | | + +-------+ */ 0x0000, 0x0000, 0x0000, @@ -2528,25 +2528,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character d (0x64): - ht=16, width=8 - +--------+ - | | - | | - | ** | - | ** | - | ** | - | ** | - | ***** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | ***** | - | | - | | - | | - +--------+ */ + ht=16, width=8 + +--------+ + | | + | | + | ** | + | ** | + | ** | + | ** | + | ***** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | ***** | + | | + | | + | | + +--------+ */ 0x0000, 0x0000, 0x0600, @@ -2565,25 +2565,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character e (0x65): - ht=16, width=8 - +--------+ - | | - | | - | | - | | - | | - | **** | - | ** ** | - | ** ** | - | ****** | - | ** | - | ** | - | ** ** | - | **** | - | | - | | - | | - +--------+ */ + ht=16, width=8 + +--------+ + | | + | | + | | + | | + | | + | **** | + | ** ** | + | ** ** | + | ****** | + | ** | + | ** | + | ** ** | + | **** | + | | + | | + | | + +--------+ */ 0x0000, 0x0000, 0x0000, @@ -2602,25 +2602,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character f (0x66): - ht=16, width=4 - +----+ - | | - | | - | **| - | ** | - | ** | - | ** | - |****| - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | | - | | - | | - +----+ */ + ht=16, width=4 + +----+ + | | + | | + | **| + | ** | + | ** | + | ** | + |****| + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | | + | | + | | + +----+ */ 0x0000, 0x0000, 0x3000, @@ -2639,25 +2639,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character g (0x67): - ht=16, width=8 - +--------+ - | | - | | - | | - | | - | | - | ***** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | ***** | - | ** | - | ** ** | - | **** | - +--------+ */ + ht=16, width=8 + +--------+ + | | + | | + | | + | | + | | + | ***** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | ***** | + | ** | + | ** ** | + | **** | + +--------+ */ 0x0000, 0x0000, 0x0000, @@ -2676,25 +2676,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x3c00, /* Character h (0x68): - ht=16, width=8 - +--------+ - | | - | | - | ** | - | ** | - | ** | - | ** | - | ***** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | | - | | - | | - +--------+ */ + ht=16, width=8 + +--------+ + | | + | | + | ** | + | ** | + | ** | + | ** | + | ***** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | | + | | + | | + +--------+ */ 0x0000, 0x0000, 0x6000, @@ -2713,25 +2713,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character i (0x69): - ht=16, width=4 - +----+ - | | - | | - | ** | - | ** | - | | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | | - | | - | | - +----+ */ + ht=16, width=4 + +----+ + | | + | | + | ** | + | ** | + | | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | | + | | + | | + +----+ */ 0x0000, 0x0000, 0x6000, @@ -2750,25 +2750,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character j (0x6a): - ht=16, width=4 - +----+ - | | - | | - | ** | - | ** | - | | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - |** | - +----+ */ + ht=16, width=4 + +----+ + | | + | | + | ** | + | ** | + | | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + |** | + +----+ */ 0x0000, 0x0000, 0x6000, @@ -2787,25 +2787,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0xc000, /* Character k (0x6b): - ht=16, width=7 - +-------+ - | | - | | - | ** | - | ** | - | ** | - | ** | - | ** **| - | ** ** | - | **** | - | *** | - | **** | - | ** ** | - | ** **| - | | - | | - | | - +-------+ */ + ht=16, width=7 + +-------+ + | | + | | + | ** | + | ** | + | ** | + | ** | + | ** **| + | ** ** | + | **** | + | *** | + | **** | + | ** ** | + | ** **| + | | + | | + | | + +-------+ */ 0x0000, 0x0000, 0x6000, @@ -2824,25 +2824,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character l (0x6c): - ht=16, width=4 - +----+ - | | - | | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | | - | | - | | - +----+ */ + ht=16, width=4 + +----+ + | | + | | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | | + | | + | | + +----+ */ 0x0000, 0x0000, 0x6000, @@ -2861,25 +2861,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character m (0x6d): - ht=16, width=12 - +------------+ - | | - | | - | | - | | - | | - | ********* | - | ** ** ** | - | ** ** ** | - | ** ** ** | - | ** ** ** | - | ** ** ** | - | ** ** ** | - | ** ** ** | - | | - | | - | | - +------------+ */ + ht=16, width=12 + +------------+ + | | + | | + | | + | | + | | + | ********* | + | ** ** ** | + | ** ** ** | + | ** ** ** | + | ** ** ** | + | ** ** ** | + | ** ** ** | + | ** ** ** | + | | + | | + | | + +------------+ */ 0x0000, 0x0000, 0x0000, @@ -2898,25 +2898,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character n (0x6e): - ht=16, width=8 - +--------+ - | | - | | - | | - | | - | | - | ***** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | | - | | - | | - +--------+ */ + ht=16, width=8 + +--------+ + | | + | | + | | + | | + | | + | ***** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | | + | | + | | + +--------+ */ 0x0000, 0x0000, 0x0000, @@ -2935,25 +2935,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character o (0x6f): - ht=16, width=8 - +--------+ - | | - | | - | | - | | - | | - | **** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | **** | - | | - | | - | | - +--------+ */ + ht=16, width=8 + +--------+ + | | + | | + | | + | | + | | + | **** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | **** | + | | + | | + | | + +--------+ */ 0x0000, 0x0000, 0x0000, @@ -2972,25 +2972,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character p (0x70): - ht=16, width=8 - +--------+ - | | - | | - | | - | | - | | - | ***** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | ***** | - | ** | - | ** | - | ** | - +--------+ */ + ht=16, width=8 + +--------+ + | | + | | + | | + | | + | | + | ***** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | ***** | + | ** | + | ** | + | ** | + +--------+ */ 0x0000, 0x0000, 0x0000, @@ -3009,25 +3009,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x6000, /* Character q (0x71): - ht=16, width=8 - +--------+ - | | - | | - | | - | | - | | - | ***** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | ***** | - | ** | - | ** | - | ** | - +--------+ */ + ht=16, width=8 + +--------+ + | | + | | + | | + | | + | | + | ***** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | ***** | + | ** | + | ** | + | ** | + +--------+ */ 0x0000, 0x0000, 0x0000, @@ -3046,25 +3046,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0600, /* Character r (0x72): - ht=16, width=5 - +-----+ - | | - | | - | | - | | - | | - | ****| - | *** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | | - | | - | | - +-----+ */ + ht=16, width=5 + +-----+ + | | + | | + | | + | | + | | + | ****| + | *** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | | + | | + | | + +-----+ */ 0x0000, 0x0000, 0x0000, @@ -3083,25 +3083,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character s (0x73): - ht=16, width=8 - +--------+ - | | - | | - | | - | | - | | - | **** | - | ** ** | - | ** * | - | *** | - | *** | - | * ** | - | ** ** | - | **** | - | | - | | - | | - +--------+ */ + ht=16, width=8 + +--------+ + | | + | | + | | + | | + | | + | **** | + | ** ** | + | ** * | + | *** | + | *** | + | * ** | + | ** ** | + | **** | + | | + | | + | | + +--------+ */ 0x0000, 0x0000, 0x0000, @@ -3120,25 +3120,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character t (0x74): - ht=16, width=4 - +----+ - | | - | | - | | - | ** | - | ** | - |****| - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | **| - | | - | | - | | - +----+ */ + ht=16, width=4 + +----+ + | | + | | + | | + | ** | + | ** | + |****| + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | **| + | | + | | + | | + +----+ */ 0x0000, 0x0000, 0x0000, @@ -3157,25 +3157,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character u (0x75): - ht=16, width=8 - +--------+ - | | - | | - | | - | | - | | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | ***** | - | | - | | - | | - +--------+ */ + ht=16, width=8 + +--------+ + | | + | | + | | + | | + | | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | ***** | + | | + | | + | | + +--------+ */ 0x0000, 0x0000, 0x0000, @@ -3194,25 +3194,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character v (0x76): - ht=16, width=8 - +--------+ - | | - | | - | | - | | - | | - |** **| - |** **| - | ** ** | - | ** ** | - | ** ** | - | **** | - | ** | - | ** | - | | - | | - | | - +--------+ */ + ht=16, width=8 + +--------+ + | | + | | + | | + | | + | | + |** **| + |** **| + | ** ** | + | ** ** | + | ** ** | + | **** | + | ** | + | ** | + | | + | | + | | + +--------+ */ 0x0000, 0x0000, 0x0000, @@ -3231,25 +3231,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character w (0x77): - ht=16, width=10 - +----------+ - | | - | | - | | - | | - | | - |** **| - |** ** **| - |** ** **| - | ** ** ** | - | ** ** ** | - | ******** | - | ** ** | - | ** ** | - | | - | | - | | - +----------+ */ + ht=16, width=10 + +----------+ + | | + | | + | | + | | + | | + |** **| + |** ** **| + |** ** **| + | ** ** ** | + | ** ** ** | + | ******** | + | ** ** | + | ** ** | + | | + | | + | | + +----------+ */ 0x0000, 0x0000, 0x0000, @@ -3268,25 +3268,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character x (0x78): - ht=16, width=8 - +--------+ - | | - | | - | | - | | - | | - |** **| - | ** ** | - | **** | - | ** | - | ** | - | **** | - | ** ** | - |** **| - | | - | | - | | - +--------+ */ + ht=16, width=8 + +--------+ + | | + | | + | | + | | + | | + |** **| + | ** ** | + | **** | + | ** | + | ** | + | **** | + | ** ** | + |** **| + | | + | | + | | + +--------+ */ 0x0000, 0x0000, 0x0000, @@ -3305,25 +3305,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character y (0x79): - ht=16, width=8 - +--------+ - | | - | | - | | - | | - | | - |** **| - |** **| - |** **| - | ** ** | - | ** ** | - | **** | - | **** | - | ** | - | ** | - | ** | - | ** | - +--------+ */ + ht=16, width=8 + +--------+ + | | + | | + | | + | | + | | + |** **| + |** **| + |** **| + | ** ** | + | ** ** | + | **** | + | **** | + | ** | + | ** | + | ** | + | ** | + +--------+ */ 0x0000, 0x0000, 0x0000, @@ -3342,25 +3342,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x6000, /* Character z (0x7a): - ht=16, width=8 - +--------+ - | | - | | - | | - | | - | | - | ****** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ****** | - | | - | | - | | - +--------+ */ + ht=16, width=8 + +--------+ + | | + | | + | | + | | + | | + | ****** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ****** | + | | + | | + | | + +--------+ */ 0x0000, 0x0000, 0x0000, @@ -3379,25 +3379,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character { (0x7b): - ht=16, width=5 - +-----+ - | | - | | - | **| - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | **| - +-----+ */ + ht=16, width=5 + +-----+ + | | + | | + | **| + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | **| + +-----+ */ 0x0000, 0x0000, 0x1800, @@ -3416,25 +3416,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x1800, /* Character | (0x7c): - ht=16, width=4 - +----+ - | | - | | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - +----+ */ + ht=16, width=4 + +----+ + | | + | | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + +----+ */ 0x0000, 0x0000, 0x6000, @@ -3453,25 +3453,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x6000, /* Character } (0x7d): - ht=16, width=5 - +-----+ - | | - | | - |** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - |** | - +-----+ */ + ht=16, width=5 + +-----+ + | | + | | + |** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + |** | + +-----+ */ 0x0000, 0x0000, 0xc000, @@ -3490,25 +3490,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0xc000, /* Character ~ (0x7e): - ht=16, width=5 - +-----+ - | | - | | - |*** *| - |* ***| - | | - | | - | | - | | - | | - | | - | | - | | - | | - | | - | | - | | - +-----+ */ + ht=16, width=5 + +-----+ + | | + | | + |*** *| + |* ***| + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + +-----+ */ 0x0000, 0x0000, 0xe800, @@ -3527,25 +3527,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character (0x7f): - ht=16, width=4 - +----+ - | | - | | - | | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | | - | | - | | - +----+ */ + ht=16, width=4 + +----+ + | | + | | + | | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | | + | | + | | + +----+ */ 0x0000, 0x0000, 0x0000, @@ -3564,25 +3564,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character � (0x80): - ht=16, width=4 - +----+ - | | - | | - | | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | | - | | - | | - +----+ */ + ht=16, width=4 + +----+ + | | + | | + | | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | | + | | + | | + +----+ */ 0x0000, 0x0000, 0x0000, @@ -3601,25 +3601,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character � (0x81): - ht=16, width=4 - +----+ - | | - | | - | | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | | - | | - | | - +----+ */ + ht=16, width=4 + +----+ + | | + | | + | | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | | + | | + | | + +----+ */ 0x0000, 0x0000, 0x0000, @@ -3638,25 +3638,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character � (0x82): - ht=16, width=4 - +----+ - | | - | | - | | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | | - | | - | | - +----+ */ + ht=16, width=4 + +----+ + | | + | | + | | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | | + | | + | | + +----+ */ 0x0000, 0x0000, 0x0000, @@ -3675,25 +3675,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character � (0x83): - ht=16, width=4 - +----+ - | | - | | - | | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | | - | | - | | - +----+ */ + ht=16, width=4 + +----+ + | | + | | + | | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | | + | | + | | + +----+ */ 0x0000, 0x0000, 0x0000, @@ -3712,25 +3712,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character � (0x84): - ht=16, width=4 - +----+ - | | - | | - | | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | | - | | - | | - +----+ */ + ht=16, width=4 + +----+ + | | + | | + | | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | | + | | + | | + +----+ */ 0x0000, 0x0000, 0x0000, @@ -3749,25 +3749,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character � (0x85): - ht=16, width=4 - +----+ - | | - | | - | | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | | - | | - | | - +----+ */ + ht=16, width=4 + +----+ + | | + | | + | | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | | + | | + | | + +----+ */ 0x0000, 0x0000, 0x0000, @@ -3786,25 +3786,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character � (0x86): - ht=16, width=4 - +----+ - | | - | | - | | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | | - | | - | | - +----+ */ + ht=16, width=4 + +----+ + | | + | | + | | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | | + | | + | | + +----+ */ 0x0000, 0x0000, 0x0000, @@ -3823,25 +3823,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character � (0x87): - ht=16, width=4 - +----+ - | | - | | - | | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | | - | | - | | - +----+ */ + ht=16, width=4 + +----+ + | | + | | + | | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | | + | | + | | + +----+ */ 0x0000, 0x0000, 0x0000, @@ -3860,25 +3860,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character � (0x88): - ht=16, width=4 - +----+ - | | - | | - | | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | | - | | - | | - +----+ */ + ht=16, width=4 + +----+ + | | + | | + | | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | | + | | + | | + +----+ */ 0x0000, 0x0000, 0x0000, @@ -3897,25 +3897,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character � (0x89): - ht=16, width=4 - +----+ - | | - | | - | | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | | - | | - | | - +----+ */ + ht=16, width=4 + +----+ + | | + | | + | | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | | + | | + | | + +----+ */ 0x0000, 0x0000, 0x0000, @@ -3934,25 +3934,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character � (0x8a): - ht=16, width=4 - +----+ - | | - | | - | | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | | - | | - | | - +----+ */ + ht=16, width=4 + +----+ + | | + | | + | | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | | + | | + | | + +----+ */ 0x0000, 0x0000, 0x0000, @@ -3971,25 +3971,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character � (0x8b): - ht=16, width=4 - +----+ - | | - | | - | | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | | - | | - | | - +----+ */ + ht=16, width=4 + +----+ + | | + | | + | | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | | + | | + | | + +----+ */ 0x0000, 0x0000, 0x0000, @@ -4008,25 +4008,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character � (0x8c): - ht=16, width=4 - +----+ - | | - | | - | | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | | - | | - | | - +----+ */ + ht=16, width=4 + +----+ + | | + | | + | | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | | + | | + | | + +----+ */ 0x0000, 0x0000, 0x0000, @@ -4045,25 +4045,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character � (0x8d): - ht=16, width=4 - +----+ - | | - | | - | | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | | - | | - | | - +----+ */ + ht=16, width=4 + +----+ + | | + | | + | | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | | + | | + | | + +----+ */ 0x0000, 0x0000, 0x0000, @@ -4082,25 +4082,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character � (0x8e): - ht=16, width=4 - +----+ - | | - | | - | | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | | - | | - | | - +----+ */ + ht=16, width=4 + +----+ + | | + | | + | | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | | + | | + | | + +----+ */ 0x0000, 0x0000, 0x0000, @@ -4119,25 +4119,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character � (0x8f): - ht=16, width=4 - +----+ - | | - | | - | | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | | - | | - | | - +----+ */ + ht=16, width=4 + +----+ + | | + | | + | | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | | + | | + | | + +----+ */ 0x0000, 0x0000, 0x0000, @@ -4156,25 +4156,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character � (0x90): - ht=16, width=4 - +----+ - | | - | | - | | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | | - | | - | | - +----+ */ + ht=16, width=4 + +----+ + | | + | | + | | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | | + | | + | | + +----+ */ 0x0000, 0x0000, 0x0000, @@ -4193,25 +4193,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character � (0x91): - ht=16, width=4 - +----+ - | | - | **| - | **| - | ** | - | | - | | - | | - | | - | | - | | - | | - | | - | | - | | - | | - | | - +----+ */ + ht=16, width=4 + +----+ + | | + | **| + | **| + | ** | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + +----+ */ 0x0000, 0x3000, 0x3000, @@ -4230,25 +4230,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character � (0x92): - ht=16, width=4 - +----+ - | | - | ** | - | ** | - |** | - | | - | | - | | - | | - | | - | | - | | - | | - | | - | | - | | - | | - +----+ */ + ht=16, width=4 + +----+ + | | + | ** | + | ** | + |** | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + +----+ */ 0x0000, 0x6000, 0x6000, @@ -4267,25 +4267,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character � (0x93): - ht=16, width=4 - +----+ - | | - | | - | | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | | - | | - | | - +----+ */ + ht=16, width=4 + +----+ + | | + | | + | | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | | + | | + | | + +----+ */ 0x0000, 0x0000, 0x0000, @@ -4304,25 +4304,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character � (0x94): - ht=16, width=4 - +----+ - | | - | | - | | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | | - | | - | | - +----+ */ + ht=16, width=4 + +----+ + | | + | | + | | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | | + | | + | | + +----+ */ 0x0000, 0x0000, 0x0000, @@ -4341,25 +4341,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character � (0x95): - ht=16, width=4 - +----+ - | | - | | - | | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | | - | | - | | - +----+ */ + ht=16, width=4 + +----+ + | | + | | + | | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | | + | | + | | + +----+ */ 0x0000, 0x0000, 0x0000, @@ -4378,25 +4378,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character � (0x96): - ht=16, width=4 - +----+ - | | - | | - | | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | | - | | - | | - +----+ */ + ht=16, width=4 + +----+ + | | + | | + | | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | | + | | + | | + +----+ */ 0x0000, 0x0000, 0x0000, @@ -4415,25 +4415,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character � (0x97): - ht=16, width=4 - +----+ - | | - | | - | | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | | - | | - | | - +----+ */ + ht=16, width=4 + +----+ + | | + | | + | | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | | + | | + | | + +----+ */ 0x0000, 0x0000, 0x0000, @@ -4452,25 +4452,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character � (0x98): - ht=16, width=4 - +----+ - | | - | | - | | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | | - | | - | | - +----+ */ + ht=16, width=4 + +----+ + | | + | | + | | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | | + | | + | | + +----+ */ 0x0000, 0x0000, 0x0000, @@ -4489,25 +4489,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character � (0x99): - ht=16, width=4 - +----+ - | | - | | - | | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | | - | | - | | - +----+ */ + ht=16, width=4 + +----+ + | | + | | + | | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | | + | | + | | + +----+ */ 0x0000, 0x0000, 0x0000, @@ -4526,25 +4526,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character � (0x9a): - ht=16, width=4 - +----+ - | | - | | - | | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | | - | | - | | - +----+ */ + ht=16, width=4 + +----+ + | | + | | + | | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | | + | | + | | + +----+ */ 0x0000, 0x0000, 0x0000, @@ -4563,25 +4563,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character � (0x9b): - ht=16, width=4 - +----+ - | | - | | - | | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | | - | | - | | - +----+ */ + ht=16, width=4 + +----+ + | | + | | + | | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | | + | | + | | + +----+ */ 0x0000, 0x0000, 0x0000, @@ -4600,25 +4600,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character � (0x9c): - ht=16, width=4 - +----+ - | | - | | - | | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | | - | | - | | - +----+ */ + ht=16, width=4 + +----+ + | | + | | + | | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | | + | | + | | + +----+ */ 0x0000, 0x0000, 0x0000, @@ -4637,25 +4637,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character � (0x9d): - ht=16, width=4 - +----+ - | | - | | - | | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | | - | | - | | - +----+ */ + ht=16, width=4 + +----+ + | | + | | + | | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | | + | | + | | + +----+ */ 0x0000, 0x0000, 0x0000, @@ -4674,25 +4674,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character � (0x9e): - ht=16, width=4 - +----+ - | | - | | - | | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | | - | | - | | - +----+ */ + ht=16, width=4 + +----+ + | | + | | + | | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | | + | | + | | + +----+ */ 0x0000, 0x0000, 0x0000, @@ -4711,25 +4711,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character � (0x9f): - ht=16, width=4 - +----+ - | | - | | - | | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | | - | | - | | - +----+ */ + ht=16, width=4 + +----+ + | | + | | + | | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | | + | | + | | + +----+ */ 0x0000, 0x0000, 0x0000, @@ -4748,25 +4748,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character � (0xa0): - ht=16, width=9 - +---------+ - | | - | | - | | - | | - | | - | | - | | - | | - | | - | | - | | - | | - | | - | | - | | - | | - +---------+ */ + ht=16, width=9 + +---------+ + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + +---------+ */ 0x0000, 0x0000, 0x0000, @@ -4785,25 +4785,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character � (0xa1): - ht=16, width=4 - +----+ - | | - | | - | ** | - | ** | - | | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | | - | | - | | - +----+ */ + ht=16, width=4 + +----+ + | | + | | + | ** | + | ** | + | | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | | + | | + | | + +----+ */ 0x0000, 0x0000, 0x6000, @@ -4822,25 +4822,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character � (0xa2): - ht=16, width=8 - +--------+ - | | - | | - | | - | | - | ** | - | **** | - | ** *** | - | ** * | - | ** * | - | ** * | - | *** | - | *** ** | - | **** | - | ** | - | | - | | - +--------+ */ + ht=16, width=8 + +--------+ + | | + | | + | | + | | + | ** | + | **** | + | ** *** | + | ** * | + | ** * | + | ** * | + | *** | + | *** ** | + | **** | + | ** | + | | + | | + +--------+ */ 0x0000, 0x0000, 0x0000, @@ -4859,25 +4859,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character � (0xa3): - ht=16, width=8 - +--------+ - | | - | | - | *** | - | ** ** | - | ** | - | ** | - | ** | - | ** | - | **** | - | ** | - | ** | - | ** ** | - | ***** | - | | - | | - | | - +--------+ */ + ht=16, width=8 + +--------+ + | | + | | + | *** | + | ** ** | + | ** | + | ** | + | ** | + | ** | + | **** | + | ** | + | ** | + | ** ** | + | ***** | + | | + | | + | | + +--------+ */ 0x0000, 0x0000, 0x3800, @@ -4896,25 +4896,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character � (0xa4): - ht=16, width=8 - +--------+ - | | - | | - | ** ** | - | **** | - | * * | - | * * | - | * * | - | **** | - | ** ** | - | | - | | - | | - | | - | | - | | - | | - +--------+ */ + ht=16, width=8 + +--------+ + | | + | | + | ** ** | + | **** | + | * * | + | * * | + | * * | + | **** | + | ** ** | + | | + | | + | | + | | + | | + | | + | | + +--------+ */ 0x0000, 0x0000, 0x6600, @@ -4933,25 +4933,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character � (0xa5): - ht=16, width=8 - +--------+ - | | - | | - |** **| - |** **| - |** **| - | ** ** | - | ** ** | - |********| - | ** | - |********| - | ** | - | ** | - | ** | - | | - | | - | | - +--------+ */ + ht=16, width=8 + +--------+ + | | + | | + |** **| + |** **| + |** **| + | ** ** | + | ** ** | + |********| + | ** | + |********| + | ** | + | ** | + | ** | + | | + | | + | | + +--------+ */ 0x0000, 0x0000, 0xc300, @@ -4970,25 +4970,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character � (0xa6): - ht=16, width=4 - +----+ - | | - | | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | | - | | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - +----+ */ + ht=16, width=4 + +----+ + | | + | | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | | + | | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + +----+ */ 0x0000, 0x0000, 0x6000, @@ -5007,25 +5007,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x6000, /* Character � (0xa7): - ht=16, width=8 - +--------+ - | | - | | - | **** | - | ** ** | - | * * | - | *** | - | *** | - | ** ** | - | ** ** | - | *** | - | *** | - | * * | - | ** ** | - | **** | - | | - | | - +--------+ */ + ht=16, width=8 + +--------+ + | | + | | + | **** | + | ** ** | + | * * | + | *** | + | *** | + | ** ** | + | ** ** | + | *** | + | *** | + | * * | + | ** ** | + | **** | + | | + | | + +--------+ */ 0x0000, 0x0000, 0x3c00, @@ -5044,25 +5044,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character � (0xa8): - ht=16, width=5 - +-----+ - | | - | | - |** **| - |** **| - |** **| - | | - | | - | | - | | - | | - | | - | | - | | - | | - | | - | | - +-----+ */ + ht=16, width=5 + +-----+ + | | + | | + |** **| + |** **| + |** **| + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + +-----+ */ 0x0000, 0x0000, 0xd800, @@ -5081,25 +5081,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character � (0xa9): - ht=16, width=10 - +----------+ - | | - | | - | ****** | - | ** ** | - |** ** **| - |** * * **| - |** * * **| - |** * **| - |** * * **| - |** * * **| - |** ** **| - | ** ** | - | ****** | - | | - | | - | | - +----------+ */ + ht=16, width=10 + +----------+ + | | + | | + | ****** | + | ** ** | + |** ** **| + |** * * **| + |** * * **| + |** * **| + |** * * **| + |** * * **| + |** ** **| + | ** ** | + | ****** | + | | + | | + | | + +----------+ */ 0x0000, 0x0000, 0x3f00, @@ -5118,25 +5118,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character � (0xaa): - ht=16, width=5 - +-----+ - | | - | | - | | - | * | - | * | - | ** | - | * * | - | ** | - | | - | *** | - | | - | | - | | - | | - | | - | | - +-----+ */ + ht=16, width=5 + +-----+ + | | + | | + | | + | * | + | * | + | ** | + | * * | + | ** | + | | + | *** | + | | + | | + | | + | | + | | + | | + +-----+ */ 0x0000, 0x0000, 0x0000, @@ -5155,25 +5155,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character � (0xab): - ht=16, width=7 - +-------+ - | | - | | - | | - | | - | | - | | - | | - | ** **| - | ** ** | - |** ** | - | ** ** | - | ** **| - | | - | | - | | - | | - +-------+ */ + ht=16, width=7 + +-------+ + | | + | | + | | + | | + | | + | | + | | + | ** **| + | ** ** | + |** ** | + | ** ** | + | ** **| + | | + | | + | | + | | + +-------+ */ 0x0000, 0x0000, 0x0000, @@ -5192,25 +5192,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character � (0xac): - ht=16, width=8 - +--------+ - | | - | | - | | - | | - | | - | | - | | - | ****** | - | ** | - | ** | - | | - | | - | | - | | - | | - | | - +--------+ */ + ht=16, width=8 + +--------+ + | | + | | + | | + | | + | | + | | + | | + | ****** | + | ** | + | ** | + | | + | | + | | + | | + | | + | | + +--------+ */ 0x0000, 0x0000, 0x0000, @@ -5229,25 +5229,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character � (0xad): - ht=16, width=4 - +----+ - | | - | | - | | - | | - | | - | | - | | - | | - |****| - | | - | | - | | - | | - | | - | | - | | - +----+ */ + ht=16, width=4 + +----+ + | | + | | + | | + | | + | | + | | + | | + | | + |****| + | | + | | + | | + | | + | | + | | + | | + +----+ */ 0x0000, 0x0000, 0x0000, @@ -5266,25 +5266,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character � (0xae): - ht=16, width=10 - +----------+ - | | - | | - | ****** | - | ** ** | - |** *** **| - |** * * **| - |** * * **| - |** * * **| - |** *** **| - |** * * **| - |** * * **| - | ** ** | - | ****** | - | | - | | - | | - +----------+ */ + ht=16, width=10 + +----------+ + | | + | | + | ****** | + | ** ** | + |** *** **| + |** * * **| + |** * * **| + |** * * **| + |** *** **| + |** * * **| + |** * * **| + | ** ** | + | ****** | + | | + | | + | | + +----------+ */ 0x0000, 0x0000, 0x3f00, @@ -5303,25 +5303,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character � (0xaf): - ht=16, width=8 - +--------+ - | | - |********| - | | - | | - | | - | | - | | - | | - | | - | | - | | - | | - | | - | | - | | - | | - +--------+ */ + ht=16, width=8 + +--------+ + | | + |********| + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + +--------+ */ 0x0000, 0xff00, 0x0000, @@ -5340,25 +5340,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character � (0xb0): - ht=16, width=5 - +-----+ - | | - | | - | | - | *** | - | * * | - | * * | - | *** | - | | - | | - | | - | | - | | - | | - | | - | | - | | - +-----+ */ + ht=16, width=5 + +-----+ + | | + | | + | | + | *** | + | * * | + | * * | + | *** | + | | + | | + | | + | | + | | + | | + | | + | | + | | + +-----+ */ 0x0000, 0x0000, 0x0000, @@ -5377,25 +5377,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character � (0xb1): - ht=16, width=8 - +--------+ - | | - | | - | | - | | - | | - | | - | ** | - | ** | - | ****** | - | ** | - | ** | - | | - | ****** | - | | - | | - | | - +--------+ */ + ht=16, width=8 + +--------+ + | | + | | + | | + | | + | | + | | + | ** | + | ** | + | ****** | + | ** | + | ** | + | | + | ****** | + | | + | | + | | + +--------+ */ 0x0000, 0x0000, 0x0000, @@ -5414,25 +5414,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character � (0xb2): - ht=16, width=4 - +----+ - | | - | | - | | - | ** | - |* **| - | **| - | ** | - |****| - | | - | | - | | - | | - | | - | | - | | - | | - +----+ */ + ht=16, width=4 + +----+ + | | + | | + | | + | ** | + |* **| + | **| + | ** | + |****| + | | + | | + | | + | | + | | + | | + | | + | | + +----+ */ 0x0000, 0x0000, 0x0000, @@ -5451,25 +5451,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character � (0xb3): - ht=16, width=4 - +----+ - | | - | | - | | - | ** | - |* **| - | ** | - |* **| - | ** | - | | - | | - | | - | | - | | - | | - | | - | | - +----+ */ + ht=16, width=4 + +----+ + | | + | | + | | + | ** | + |* **| + | ** | + |* **| + | ** | + | | + | | + | | + | | + | | + | | + | | + | | + +----+ */ 0x0000, 0x0000, 0x0000, @@ -5488,25 +5488,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character � (0xb4): - ht=16, width=5 - +-----+ - | | - | | - | ***| - | ** | - | ** | - | | - | | - | | - | | - | | - | | - | | - | | - | | - | | - | | - +-----+ */ + ht=16, width=5 + +-----+ + | | + | | + | ***| + | ** | + | ** | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + +-----+ */ 0x0000, 0x0000, 0x3800, @@ -5525,25 +5525,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character � (0xb5): - ht=16, width=8 - +--------+ - | | - | | - | | - | | - | | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | *******| - | ** | - | ** | - | ** | - +--------+ */ + ht=16, width=8 + +--------+ + | | + | | + | | + | | + | | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | *******| + | ** | + | ** | + | ** | + +--------+ */ 0x0000, 0x0000, 0x0000, @@ -5562,25 +5562,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x6000, /* Character � (0xb6): - ht=16, width=7 - +-------+ - | | - | | - | | - | **** | - | ***** | - | ***** | - | ***** | - | ***** | - | **** | - | ** | - | ** | - | ** | - | ** | - | | - | | - | | - +-------+ */ + ht=16, width=7 + +-------+ + | | + | | + | | + | **** | + | ***** | + | ***** | + | ***** | + | ***** | + | **** | + | ** | + | ** | + | ** | + | ** | + | | + | | + | | + +-------+ */ 0x0000, 0x0000, 0x0000, @@ -5599,25 +5599,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character � (0xb7): - ht=16, width=4 - +----+ - | | - | | - | | - | | - | | - | | - | | - | ** | - | ** | - | | - | | - | | - | | - | | - | | - | | - +----+ */ + ht=16, width=4 + +----+ + | | + | | + | | + | | + | | + | | + | | + | ** | + | ** | + | | + | | + | | + | | + | | + | | + | | + +----+ */ 0x0000, 0x0000, 0x0000, @@ -5636,25 +5636,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character � (0xb8): - ht=16, width=5 - +-----+ - | | - | | - | | - | | - | | - | | - | | - | | - | | - | | - | | - | | - | | - | ** | - | **| - | *** | - +-----+ */ + ht=16, width=5 + +-----+ + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | ** | + | **| + | *** | + +-----+ */ 0x0000, 0x0000, 0x0000, @@ -5673,25 +5673,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x7000, /* Character � (0xb9): - ht=16, width=4 - +----+ - | | - | | - | | - | ** | - |*** | - | ** | - | ** | - | ** | - | | - | | - | | - | | - | | - | | - | | - | | - +----+ */ + ht=16, width=4 + +----+ + | | + | | + | | + | ** | + |*** | + | ** | + | ** | + | ** | + | | + | | + | | + | | + | | + | | + | | + | | + +----+ */ 0x0000, 0x0000, 0x0000, @@ -5710,25 +5710,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character � (0xba): - ht=16, width=5 - +-----+ - | | - | | - | | - | *** | - | * * | - | * * | - | * * | - | *** | - | | - | *** | - | | - | | - | | - | | - | | - | | - +-----+ */ + ht=16, width=5 + +-----+ + | | + | | + | | + | *** | + | * * | + | * * | + | * * | + | *** | + | | + | *** | + | | + | | + | | + | | + | | + | | + +-----+ */ 0x0000, 0x0000, 0x0000, @@ -5747,25 +5747,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character � (0xbb): - ht=16, width=7 - +-------+ - | | - | | - | | - | | - | | - | | - | | - |** ** | - | ** ** | - | ** **| - | ** ** | - |** ** | - | | - | | - | | - | | - +-------+ */ + ht=16, width=7 + +-------+ + | | + | | + | | + | | + | | + | | + | | + |** ** | + | ** ** | + | ** **| + | ** ** | + |** ** | + | | + | | + | | + | | + +-------+ */ 0x0000, 0x0000, 0x0000, @@ -5784,25 +5784,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character � (0xbc): - ht=16, width=11 - +-----------+ - | | - | | - | | - | ** **| - | *** ** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | ** *** | - | ** ** * | - | ** **** | - |** ** | - | | - | | - | | - +-----------+ */ + ht=16, width=11 + +-----------+ + | | + | | + | | + | ** **| + | *** ** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | ** *** | + | ** ** * | + | ** **** | + |** ** | + | | + | | + | | + +-----------+ */ 0x0000, 0x0000, 0x0000, @@ -5821,25 +5821,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character � (0xbd): - ht=16, width=11 - +-----------+ - | | - | | - | | - | ** **| - | *** ** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | ** * ** | - | ** ** | - | ** ** | - |** **** | - | | - | | - | | - +-----------+ */ + ht=16, width=11 + +-----------+ + | | + | | + | | + | ** **| + | *** ** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | ** * ** | + | ** ** | + | ** ** | + |** **** | + | | + | | + | | + +-----------+ */ 0x0000, 0x0000, 0x0000, @@ -5858,25 +5858,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character � (0xbe): - ht=16, width=11 - +-----------+ - | | - | | - | | - | ** **| - | * ** ** | - | ** ** | - | * ** ** | - | ** ** | - | ** ** | - | ** *** | - | ** ** * | - | ** **** | - |** ** | - | | - | | - | | - +-----------+ */ + ht=16, width=11 + +-----------+ + | | + | | + | | + | ** **| + | * ** ** | + | ** ** | + | * ** ** | + | ** ** | + | ** ** | + | ** *** | + | ** ** * | + | ** **** | + |** ** | + | | + | | + | | + +-----------+ */ 0x0000, 0x0000, 0x0000, @@ -5895,25 +5895,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character � (0xbf): - ht=16, width=8 - +--------+ - | | - | | - | | - | ** | - | ** | - | | - | ** | - | ** | - | ** | - | ** | - | ** ** | - | ** ** | - | **** | - | | - | | - | | - +--------+ */ + ht=16, width=8 + +--------+ + | | + | | + | | + | ** | + | ** | + | | + | ** | + | ** | + | ** | + | ** | + | ** ** | + | ** ** | + | **** | + | | + | | + | | + +--------+ */ 0x0000, 0x0000, 0x0000, @@ -5932,25 +5932,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character � (0xc0): - ht=16, width=8 - +--------+ - | *** | - | ** | - | ** | - | ** | - | ** | - | **** | - | **** | - | * * | - | ** ** | - | ** ** | - | ****** | - |** **| - |** **| - | | - | | - | | - +--------+ */ + ht=16, width=8 + +--------+ + | *** | + | ** | + | ** | + | ** | + | ** | + | **** | + | **** | + | * * | + | ** ** | + | ** ** | + | ****** | + |** **| + |** **| + | | + | | + | | + +--------+ */ 0x3800, 0x1800, 0x0c00, @@ -5969,25 +5969,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character � (0xc1): - ht=16, width=8 - +--------+ - | *** | - | ** | - | ** | - | ** | - | ** | - | **** | - | **** | - | * * | - | ** ** | - | ** ** | - | ****** | - |** **| - |** **| - | | - | | - | | - +--------+ */ + ht=16, width=8 + +--------+ + | *** | + | ** | + | ** | + | ** | + | ** | + | **** | + | **** | + | * * | + | ** ** | + | ** ** | + | ****** | + |** **| + |** **| + | | + | | + | | + +--------+ */ 0x1c00, 0x1800, 0x3000, @@ -6006,25 +6006,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character � (0xc2): - ht=16, width=8 - +--------+ - | ** | - | **** | - | ** ** | - | ** | - | ** | - | **** | - | **** | - | * * | - | ** ** | - | ** ** | - | ****** | - |** **| - |** **| - | | - | | - | | - +--------+ */ + ht=16, width=8 + +--------+ + | ** | + | **** | + | ** ** | + | ** | + | ** | + | **** | + | **** | + | * * | + | ** ** | + | ** ** | + | ****** | + |** **| + |** **| + | | + | | + | | + +--------+ */ 0x1800, 0x3c00, 0x6600, @@ -6043,25 +6043,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character � (0xc3): - ht=16, width=8 - +--------+ - | **** * | - | * **** | - | | - | ** | - | ** | - | **** | - | **** | - | * * | - | ** ** | - | ** ** | - | ****** | - |** **| - |** **| - | | - | | - | | - +--------+ */ + ht=16, width=8 + +--------+ + | **** * | + | * **** | + | | + | ** | + | ** | + | **** | + | **** | + | * * | + | ** ** | + | ** ** | + | ****** | + |** **| + |** **| + | | + | | + | | + +--------+ */ 0x7a00, 0x5e00, 0x0000, @@ -6080,25 +6080,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character � (0xc4): - ht=16, width=8 - +--------+ - | ** ** | - | ** ** | - | | - | ** | - | ** | - | **** | - | **** | - | * * | - | ** ** | - | ** ** | - | ****** | - |** **| - |** **| - | | - | | - | | - +--------+ */ + ht=16, width=8 + +--------+ + | ** ** | + | ** ** | + | | + | ** | + | ** | + | **** | + | **** | + | * * | + | ** ** | + | ** ** | + | ****** | + |** **| + |** **| + | | + | | + | | + +--------+ */ 0x6600, 0x6600, 0x0000, @@ -6117,25 +6117,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character � (0xc5): - ht=16, width=8 - +--------+ - | ** | - | **** | - | ** | - | | - | ** | - | ** | - | **** | - | * * | - | ** ** | - | ** ** | - | ****** | - |** **| - |** **| - | | - | | - | | - +--------+ */ + ht=16, width=8 + +--------+ + | ** | + | **** | + | ** | + | | + | ** | + | ** | + | **** | + | * * | + | ** ** | + | ** ** | + | ****** | + |** **| + |** **| + | | + | | + | | + +--------+ */ 0x1800, 0x3c00, 0x1800, @@ -6154,25 +6154,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character � (0xc6): - ht=16, width=13 - +-------------+ - | | - | | - | | - | ********* | - | **** | - | ** ** | - | ** ** | - | ** ****** | - | ** ** | - | ** ** | - | ****** | - |** ** | - |** ******* | - | | - | | - | | - +-------------+ */ + ht=16, width=13 + +-------------+ + | | + | | + | | + | ********* | + | **** | + | ** ** | + | ** ** | + | ** ****** | + | ** ** | + | ** ** | + | ****** | + |** ** | + |** ******* | + | | + | | + | | + +-------------+ */ 0x0000, 0x0000, 0x0000, @@ -6191,25 +6191,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character � (0xc7): - ht=16, width=9 - +---------+ - | | - | | - | | - | **** | - | ** ** | - | ** * | - | ** | - | ** | - | ** | - | ** | - | ** * | - | ** ** | - | **** | - | ** | - | ** | - | *** | - +---------+ */ + ht=16, width=9 + +---------+ + | | + | | + | | + | **** | + | ** ** | + | ** * | + | ** | + | ** | + | ** | + | ** | + | ** * | + | ** ** | + | **** | + | ** | + | ** | + | *** | + +---------+ */ 0x0000, 0x0000, 0x0000, @@ -6228,25 +6228,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x1c00, /* Character � (0xc8): - ht=16, width=9 - +---------+ - | *** | - | ** | - | ** | - | ******* | - | ** | - | ** | - | ** | - | ****** | - | ** | - | ** | - | ** | - | ** | - | ******* | - | | - | | - | | - +---------+ */ + ht=16, width=9 + +---------+ + | *** | + | ** | + | ** | + | ******* | + | ** | + | ** | + | ** | + | ****** | + | ** | + | ** | + | ** | + | ** | + | ******* | + | | + | | + | | + +---------+ */ 0x1c00, 0x0c00, 0x0600, @@ -6265,25 +6265,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character � (0xc9): - ht=16, width=9 - +---------+ - | *** | - | ** | - | ** | - | ******* | - | ** | - | ** | - | ** | - | ****** | - | ** | - | ** | - | ** | - | ** | - | ******* | - | | - | | - | | - +---------+ */ + ht=16, width=9 + +---------+ + | *** | + | ** | + | ** | + | ******* | + | ** | + | ** | + | ** | + | ****** | + | ** | + | ** | + | ** | + | ** | + | ******* | + | | + | | + | | + +---------+ */ 0x0e00, 0x0c00, 0x1800, @@ -6302,25 +6302,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character � (0xca): - ht=16, width=9 - +---------+ - | ** | - | **** | - | ** ** | - | ******* | - | ** | - | ** | - | ** | - | ****** | - | ** | - | ** | - | ** | - | ** | - | ******* | - | | - | | - | | - +---------+ */ + ht=16, width=9 + +---------+ + | ** | + | **** | + | ** ** | + | ******* | + | ** | + | ** | + | ** | + | ****** | + | ** | + | ** | + | ** | + | ** | + | ******* | + | | + | | + | | + +---------+ */ 0x0c00, 0x1e00, 0x3300, @@ -6339,25 +6339,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character � (0xcb): - ht=16, width=9 - +---------+ - | ** ** | - | ** ** | - | | - | ******* | - | ** | - | ** | - | ** | - | ****** | - | ** | - | ** | - | ** | - | ** | - | ******* | - | | - | | - | | - +---------+ */ + ht=16, width=9 + +---------+ + | ** ** | + | ** ** | + | | + | ******* | + | ** | + | ** | + | ** | + | ****** | + | ** | + | ** | + | ** | + | ** | + | ******* | + | | + | | + | | + +---------+ */ 0x3300, 0x3300, 0x0000, @@ -6376,25 +6376,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character � (0xcc): - ht=16, width=4 - +----+ - |** | - | ** | - | | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | | - | | - | | - +----+ */ + ht=16, width=4 + +----+ + |** | + | ** | + | | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | | + | | + | | + +----+ */ 0xc000, 0x6000, 0x0000, @@ -6413,25 +6413,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character � (0xcd): - ht=16, width=4 - +----+ - | **| - | ** | - | | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | | - | | - | | - +----+ */ + ht=16, width=4 + +----+ + | **| + | ** | + | | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | | + | | + | | + +----+ */ 0x3000, 0x6000, 0x0000, @@ -6450,25 +6450,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character � (0xce): - ht=16, width=4 - +----+ - | ** | - |* *| - | | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | | - | | - | | - +----+ */ + ht=16, width=4 + +----+ + | ** | + |* *| + | | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | | + | | + | | + +----+ */ 0x6000, 0x9000, 0x0000, @@ -6487,25 +6487,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character � (0xcf): - ht=16, width=4 - +----+ - |* *| - | | - | | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | | - | | - | | - +----+ */ + ht=16, width=4 + +----+ + |* *| + | | + | | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | | + | | + | | + +----+ */ 0x9000, 0x0000, 0x0000, @@ -6524,25 +6524,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character � (0xd0): - ht=16, width=10 - +----------+ - | | - | | - | | - | ****** | - | ** ** | - | ** ** | - | ** ** | - |***** ** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | ****** | - | | - | | - | | - +----------+ */ + ht=16, width=10 + +----------+ + | | + | | + | | + | ****** | + | ** ** | + | ** ** | + | ** ** | + |***** ** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | ****** | + | | + | | + | | + +----------+ */ 0x0000, 0x0000, 0x0000, @@ -6561,25 +6561,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character � (0xd1): - ht=16, width=10 - +----------+ - | **** * | - | * **** | - | | - | ** ** | - | *** ** | - | **** ** | - | **** ** | - | ** ** ** | - | ** ** ** | - | ** **** | - | ** **** | - | ** *** | - | ** ** | - | | - | | - | | - +----------+ */ + ht=16, width=10 + +----------+ + | **** * | + | * **** | + | | + | ** ** | + | *** ** | + | **** ** | + | **** ** | + | ** ** ** | + | ** ** ** | + | ** **** | + | ** **** | + | ** *** | + | ** ** | + | | + | | + | | + +----------+ */ 0x3d00, 0x2f00, 0x0000, @@ -6598,25 +6598,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character � (0xd2): - ht=16, width=10 - +----------+ - | *** | - | ** | - | ** | - | **** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | **** | - | | - | | - | | - +----------+ */ + ht=16, width=10 + +----------+ + | *** | + | ** | + | ** | + | **** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | **** | + | | + | | + | | + +----------+ */ 0x1c00, 0x0c00, 0x0600, @@ -6635,25 +6635,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character � (0xd3): - ht=16, width=10 - +----------+ - | *** | - | ** | - | ** | - | **** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | **** | - | | - | | - | | - +----------+ */ + ht=16, width=10 + +----------+ + | *** | + | ** | + | ** | + | **** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | **** | + | | + | | + | | + +----------+ */ 0x0e00, 0x0c00, 0x1800, @@ -6672,25 +6672,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character � (0xd4): - ht=16, width=10 - +----------+ - | ** | - | **** | - | ** ** | - | **** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | **** | - | | - | | - | | - +----------+ */ + ht=16, width=10 + +----------+ + | ** | + | **** | + | ** ** | + | **** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | **** | + | | + | | + | | + +----------+ */ 0x0c00, 0x1e00, 0x3300, @@ -6709,25 +6709,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character � (0xd5): - ht=16, width=10 - +----------+ - | **** * | - | * **** | - | | - | **** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | **** | - | | - | | - | | - +----------+ */ + ht=16, width=10 + +----------+ + | **** * | + | * **** | + | | + | **** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | **** | + | | + | | + | | + +----------+ */ 0x3d00, 0x2f00, 0x0000, @@ -6746,25 +6746,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character � (0xd6): - ht=16, width=10 - +----------+ - | ** ** | - | ** ** | - | | - | **** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | **** | - | | - | | - | | - +----------+ */ + ht=16, width=10 + +----------+ + | ** ** | + | ** ** | + | | + | **** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | **** | + | | + | | + | | + +----------+ */ 0x3300, 0x3300, 0x0000, @@ -6783,25 +6783,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character � (0xd7): - ht=16, width=8 - +--------+ - | | - | | - | | - | | - | | - | | - | | - | ** ** | - | **** | - | ** | - | **** | - | ** ** | - | | - | | - | | - | | - +--------+ */ + ht=16, width=8 + +--------+ + | | + | | + | | + | | + | | + | | + | | + | ** ** | + | **** | + | ** | + | **** | + | ** ** | + | | + | | + | | + | | + +--------+ */ 0x0000, 0x0000, 0x0000, @@ -6820,25 +6820,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character � (0xd8): - ht=16, width=10 - +----------+ - | | - | | - | | - | ****** | - | ** ** | - | ** *** | - | ** **** | - | ** ** ** | - | ** ** ** | - | **** ** | - | *** ** | - | ** ** | - | ****** | - | | - | | - | | - +----------+ */ + ht=16, width=10 + +----------+ + | | + | | + | | + | ****** | + | ** ** | + | ** *** | + | ** **** | + | ** ** ** | + | ** ** ** | + | **** ** | + | *** ** | + | ** ** | + | ****** | + | | + | | + | | + +----------+ */ 0x0000, 0x0000, 0x0000, @@ -6857,25 +6857,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character � (0xd9): - ht=16, width=10 - +----------+ - | *** | - | ** | - | ** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | **** | - | | - | | - | | - +----------+ */ + ht=16, width=10 + +----------+ + | *** | + | ** | + | ** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | **** | + | | + | | + | | + +----------+ */ 0x1c00, 0x0c00, 0x0600, @@ -6894,25 +6894,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character � (0xda): - ht=16, width=10 - +----------+ - | *** | - | ** | - | ** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | **** | - | | - | | - | | - +----------+ */ + ht=16, width=10 + +----------+ + | *** | + | ** | + | ** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | **** | + | | + | | + | | + +----------+ */ 0x0e00, 0x0c00, 0x1800, @@ -6931,25 +6931,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character � (0xdb): - ht=16, width=10 - +----------+ - | ** | - | **** | - | ** ** | - | | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | **** | - | | - | | - | | - +----------+ */ + ht=16, width=10 + +----------+ + | ** | + | **** | + | ** ** | + | | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | **** | + | | + | | + | | + +----------+ */ 0x0c00, 0x1e00, 0x3300, @@ -6968,25 +6968,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character � (0xdc): - ht=16, width=10 - +----------+ - | ** ** | - | ** ** | - | | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | **** | - | | - | | - | | - +----------+ */ + ht=16, width=10 + +----------+ + | ** ** | + | ** ** | + | | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | **** | + | | + | | + | | + +----------+ */ 0x3300, 0x3300, 0x0000, @@ -7005,25 +7005,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character � (0xdd): - ht=16, width=10 - +----------+ - | *** | - | ** | - | ** | - |** **| - |** **| - | ** ** | - | ** ** | - | **** | - | ** | - | ** | - | ** | - | ** | - | ** | - | | - | | - | | - +----------+ */ + ht=16, width=10 + +----------+ + | *** | + | ** | + | ** | + |** **| + |** **| + | ** ** | + | ** ** | + | **** | + | ** | + | ** | + | ** | + | ** | + | ** | + | | + | | + | | + +----------+ */ 0x0e00, 0x0c00, 0x1800, @@ -7042,25 +7042,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character � (0xde): - ht=16, width=9 - +---------+ - | | - | | - | | - | ** | - | ** | - | ****** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | ****** | - | ** | - | ** | - | | - | | - | | - +---------+ */ + ht=16, width=9 + +---------+ + | | + | | + | | + | ** | + | ** | + | ****** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | ****** | + | ** | + | ** | + | | + | | + | | + +---------+ */ 0x0000, 0x0000, 0x0000, @@ -7079,25 +7079,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character � (0xdf): - ht=16, width=8 - +--------+ - | | - | | - | | - | **** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | | - | | - | | - +--------+ */ + ht=16, width=8 + +--------+ + | | + | | + | | + | **** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | | + | | + | | + +--------+ */ 0x0000, 0x0000, 0x0000, @@ -7116,25 +7116,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character � (0xe0): - ht=16, width=8 - +--------+ - | | - | | - | *** | - | ** | - | ** | - | | - | **** | - | ** ** | - | **** | - | ** ** | - | ** ** | - | ** ** | - | ***** | - | | - | | - | | - +--------+ */ + ht=16, width=8 + +--------+ + | | + | | + | *** | + | ** | + | ** | + | | + | **** | + | ** ** | + | **** | + | ** ** | + | ** ** | + | ** ** | + | ***** | + | | + | | + | | + +--------+ */ 0x0000, 0x0000, 0x3800, @@ -7153,25 +7153,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character � (0xe1): - ht=16, width=8 - +--------+ - | | - | | - | *** | - | ** | - | ** | - | | - | **** | - | ** ** | - | **** | - | ** ** | - | ** ** | - | ** ** | - | ***** | - | | - | | - | | - +--------+ */ + ht=16, width=8 + +--------+ + | | + | | + | *** | + | ** | + | ** | + | | + | **** | + | ** ** | + | **** | + | ** ** | + | ** ** | + | ** ** | + | ***** | + | | + | | + | | + +--------+ */ 0x0000, 0x0000, 0x1c00, @@ -7190,25 +7190,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character � (0xe2): - ht=16, width=8 - +--------+ - | | - | | - | ** | - | **** | - | ** ** | - | | - | **** | - | ** ** | - | **** | - | ** ** | - | ** ** | - | ** ** | - | ***** | - | | - | | - | | - +--------+ */ + ht=16, width=8 + +--------+ + | | + | | + | ** | + | **** | + | ** ** | + | | + | **** | + | ** ** | + | **** | + | ** ** | + | ** ** | + | ** ** | + | ***** | + | | + | | + | | + +--------+ */ 0x0000, 0x0000, 0x1800, @@ -7227,25 +7227,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character � (0xe3): - ht=16, width=8 - +--------+ - | | - | | - | | - | **** * | - | * **** | - | | - | **** | - | ** ** | - | **** | - | ** ** | - | ** ** | - | ** ** | - | ***** | - | | - | | - | | - +--------+ */ + ht=16, width=8 + +--------+ + | | + | | + | | + | **** * | + | * **** | + | | + | **** | + | ** ** | + | **** | + | ** ** | + | ** ** | + | ** ** | + | ***** | + | | + | | + | | + +--------+ */ 0x0000, 0x0000, 0x0000, @@ -7264,25 +7264,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character � (0xe4): - ht=16, width=8 - +--------+ - | | - | | - | | - | ** ** | - | ** ** | - | | - | **** | - | ** ** | - | **** | - | ** ** | - | ** ** | - | ** ** | - | ***** | - | | - | | - | | - +--------+ */ + ht=16, width=8 + +--------+ + | | + | | + | | + | ** ** | + | ** ** | + | | + | **** | + | ** ** | + | **** | + | ** ** | + | ** ** | + | ** ** | + | ***** | + | | + | | + | | + +--------+ */ 0x0000, 0x0000, 0x0000, @@ -7301,25 +7301,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character � (0xe5): - ht=16, width=8 - +--------+ - | | - | | - | ** | - | **** | - | ** | - | | - | **** | - | ** ** | - | **** | - | ** ** | - | ** ** | - | ** ** | - | ***** | - | | - | | - | | - +--------+ */ + ht=16, width=8 + +--------+ + | | + | | + | ** | + | **** | + | ** | + | | + | **** | + | ** ** | + | **** | + | ** ** | + | ** ** | + | ** ** | + | ***** | + | | + | | + | | + +--------+ */ 0x0000, 0x0000, 0x1800, @@ -7338,25 +7338,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character � (0xe6): - ht=16, width=12 - +------------+ - | | - | | - | | - | | - | | - | | - | ******** | - | ** ** ** | - | ******** | - | ** ** | - | ** ** | - | ** ** ** | - | ******** | - | | - | | - | | - +------------+ */ + ht=16, width=12 + +------------+ + | | + | | + | | + | | + | | + | | + | ******** | + | ** ** ** | + | ******** | + | ** ** | + | ** ** | + | ** ** ** | + | ******** | + | | + | | + | | + +------------+ */ 0x0000, 0x0000, 0x0000, @@ -7375,25 +7375,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character � (0xe7): - ht=16, width=7 - +-------+ - | | - | | - | | - | | - | | - | | - | **** | - | ** **| - | ** | - | ** | - | ** | - | ** **| - | **** | - | ** | - | ** | - | *** | - +-------+ */ + ht=16, width=7 + +-------+ + | | + | | + | | + | | + | | + | | + | **** | + | ** **| + | ** | + | ** | + | ** | + | ** **| + | **** | + | ** | + | ** | + | *** | + +-------+ */ 0x0000, 0x0000, 0x0000, @@ -7412,25 +7412,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x3800, /* Character � (0xe8): - ht=16, width=8 - +--------+ - | | - | | - | *** | - | ** | - | ** | - | | - | **** | - | ** ** | - | ****** | - | ** | - | ** | - | ** ** | - | **** | - | | - | | - | | - +--------+ */ + ht=16, width=8 + +--------+ + | | + | | + | *** | + | ** | + | ** | + | | + | **** | + | ** ** | + | ****** | + | ** | + | ** | + | ** ** | + | **** | + | | + | | + | | + +--------+ */ 0x0000, 0x0000, 0x3800, @@ -7449,25 +7449,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character � (0xe9): - ht=16, width=8 - +--------+ - | | - | | - | *** | - | ** | - | ** | - | | - | **** | - | ** ** | - | ****** | - | ** | - | ** | - | ** ** | - | **** | - | | - | | - | | - +--------+ */ + ht=16, width=8 + +--------+ + | | + | | + | *** | + | ** | + | ** | + | | + | **** | + | ** ** | + | ****** | + | ** | + | ** | + | ** ** | + | **** | + | | + | | + | | + +--------+ */ 0x0000, 0x0000, 0x1c00, @@ -7486,25 +7486,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character � (0xea): - ht=16, width=8 - +--------+ - | | - | | - | ** | - | **** | - | ** ** | - | | - | **** | - | ** ** | - | ****** | - | ** | - | ** | - | ** ** | - | **** | - | | - | | - | | - +--------+ */ + ht=16, width=8 + +--------+ + | | + | | + | ** | + | **** | + | ** ** | + | | + | **** | + | ** ** | + | ****** | + | ** | + | ** | + | ** ** | + | **** | + | | + | | + | | + +--------+ */ 0x0000, 0x0000, 0x1800, @@ -7523,25 +7523,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character � (0xeb): - ht=16, width=8 - +--------+ - | | - | | - | | - | ** ** | - | ** ** | - | | - | **** | - | ** ** | - | ****** | - | ** | - | ** | - | ** ** | - | **** | - | | - | | - | | - +--------+ */ + ht=16, width=8 + +--------+ + | | + | | + | | + | ** ** | + | ** ** | + | | + | **** | + | ** ** | + | ****** | + | ** | + | ** | + | ** ** | + | **** | + | | + | | + | | + +--------+ */ 0x0000, 0x0000, 0x0000, @@ -7560,25 +7560,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character � (0xec): - ht=16, width=4 - +----+ - | | - | | - |*** | - | ** | - | **| - | | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | | - | | - | | - +----+ */ + ht=16, width=4 + +----+ + | | + | | + |*** | + | ** | + | **| + | | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | | + | | + | | + +----+ */ 0x0000, 0x0000, 0xe000, @@ -7597,25 +7597,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character � (0xed): - ht=16, width=4 - +----+ - | | - | | - | ***| - | ** | - |** | - | | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | | - | | - | | - +----+ */ + ht=16, width=4 + +----+ + | | + | | + | ***| + | ** | + |** | + | | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | | + | | + | | + +----+ */ 0x0000, 0x0000, 0x7000, @@ -7634,25 +7634,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character � (0xee): - ht=16, width=4 - +----+ - | | - | | - | ** | - |****| - | | - | | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | | - | | - | | - +----+ */ + ht=16, width=4 + +----+ + | | + | | + | ** | + |****| + | | + | | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | | + | | + | | + +----+ */ 0x0000, 0x0000, 0x6000, @@ -7671,25 +7671,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character � (0xef): - ht=16, width=4 - +----+ - | | - | | - | | - |* *| - |* *| - | | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | ** | - | | - | | - | | - +----+ */ + ht=16, width=4 + +----+ + | | + | | + | | + |* *| + |* *| + | | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | ** | + | | + | | + | | + +----+ */ 0x0000, 0x0000, 0x0000, @@ -7708,25 +7708,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character � (0xf0): - ht=16, width=8 - +--------+ - | | - | | - | | - | *** ** | - | ** | - | ** ** | - | ** | - | ***** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | **** | - | | - | | - | | - +--------+ */ + ht=16, width=8 + +--------+ + | | + | | + | | + | *** ** | + | ** | + | ** ** | + | ** | + | ***** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | **** | + | | + | | + | | + +--------+ */ 0x0000, 0x0000, 0x0000, @@ -7745,25 +7745,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character � (0xf1): - ht=16, width=8 - +--------+ - | | - | | - | | - | **** * | - | * **** | - | | - | ***** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | | - | | - | | - +--------+ */ + ht=16, width=8 + +--------+ + | | + | | + | | + | **** * | + | * **** | + | | + | ***** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | | + | | + | | + +--------+ */ 0x0000, 0x0000, 0x0000, @@ -7782,25 +7782,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character � (0xf2): - ht=16, width=8 - +--------+ - | | - | | - | *** | - | ** | - | ** | - | | - | **** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | **** | - | | - | | - | | - +--------+ */ + ht=16, width=8 + +--------+ + | | + | | + | *** | + | ** | + | ** | + | | + | **** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | **** | + | | + | | + | | + +--------+ */ 0x0000, 0x0000, 0x3800, @@ -7819,25 +7819,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character � (0xf3): - ht=16, width=8 - +--------+ - | | - | | - | *** | - | ** | - | ** | - | | - | **** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | **** | - | | - | | - | | - +--------+ */ + ht=16, width=8 + +--------+ + | | + | | + | *** | + | ** | + | ** | + | | + | **** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | **** | + | | + | | + | | + +--------+ */ 0x0000, 0x0000, 0x1c00, @@ -7856,25 +7856,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character � (0xf4): - ht=16, width=8 - +--------+ - | | - | | - | ** | - | **** | - | ** ** | - | | - | **** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | **** | - | | - | | - | | - +--------+ */ + ht=16, width=8 + +--------+ + | | + | | + | ** | + | **** | + | ** ** | + | | + | **** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | **** | + | | + | | + | | + +--------+ */ 0x0000, 0x0000, 0x1800, @@ -7893,25 +7893,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character � (0xf5): - ht=16, width=8 - +--------+ - | | - | | - | | - | **** * | - | * **** | - | | - | **** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | **** | - | | - | | - | | - +--------+ */ + ht=16, width=8 + +--------+ + | | + | | + | | + | **** * | + | * **** | + | | + | **** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | **** | + | | + | | + | | + +--------+ */ 0x0000, 0x0000, 0x0000, @@ -7930,25 +7930,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character � (0xf6): - ht=16, width=8 - +--------+ - | | - | | - | | - | ** ** | - | ** ** | - | | - | **** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | **** | - | | - | | - | | - +--------+ */ + ht=16, width=8 + +--------+ + | | + | | + | | + | ** ** | + | ** ** | + | | + | **** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | **** | + | | + | | + | | + +--------+ */ 0x0000, 0x0000, 0x0000, @@ -7967,25 +7967,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character � (0xf7): - ht=16, width=6 - +------+ - | | - | | - | | - | | - | | - | ** | - | ** | - | | - | **** | - | | - | ** | - | ** | - | | - | | - | | - | | - +------+ */ + ht=16, width=6 + +------+ + | | + | | + | | + | | + | | + | ** | + | ** | + | | + | **** | + | | + | ** | + | ** | + | | + | | + | | + | | + +------+ */ 0x0000, 0x0000, 0x0000, @@ -8004,25 +8004,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character � (0xf8): - ht=16, width=8 - +--------+ - | | - | | - | | - | | - | | - | | - | ***** | - | ** *** | - | ** *** | - | ** ** | - | *** ** | - | *** ** | - | ***** | - | | - | | - | | - +--------+ */ + ht=16, width=8 + +--------+ + | | + | | + | | + | | + | | + | | + | ***** | + | ** *** | + | ** *** | + | ** ** | + | *** ** | + | *** ** | + | ***** | + | | + | | + | | + +--------+ */ 0x0000, 0x0000, 0x0000, @@ -8041,25 +8041,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character � (0xf9): - ht=16, width=8 - +--------+ - | | - | | - | *** | - | ** | - | ** | - | | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | ***** | - | | - | | - | | - +--------+ */ + ht=16, width=8 + +--------+ + | | + | | + | *** | + | ** | + | ** | + | | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | ***** | + | | + | | + | | + +--------+ */ 0x0000, 0x0000, 0x3800, @@ -8078,25 +8078,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character � (0xfa): - ht=16, width=8 - +--------+ - | | - | | - | *** | - | ** | - | ** | - | | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | ***** | - | | - | | - | | - +--------+ */ + ht=16, width=8 + +--------+ + | | + | | + | *** | + | ** | + | ** | + | | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | ***** | + | | + | | + | | + +--------+ */ 0x0000, 0x0000, 0x1c00, @@ -8115,25 +8115,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character � (0xfb): - ht=16, width=8 - +--------+ - | | - | | - | ** | - | **** | - | ** ** | - | | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | ***** | - | | - | | - | | - +--------+ */ + ht=16, width=8 + +--------+ + | | + | | + | ** | + | **** | + | ** ** | + | | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | ***** | + | | + | | + | | + +--------+ */ 0x0000, 0x0000, 0x1800, @@ -8152,25 +8152,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character � (0xfc): - ht=16, width=8 - +--------+ - | | - | | - | | - | ** ** | - | ** ** | - | | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | ***** | - | | - | | - | | - +--------+ */ + ht=16, width=8 + +--------+ + | | + | | + | | + | ** ** | + | ** ** | + | | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | ***** | + | | + | | + | | + +--------+ */ 0x0000, 0x0000, 0x0000, @@ -8189,25 +8189,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x0000, /* Character � (0xfd): - ht=16, width=8 - +--------+ - | | - | | - | *** | - | ** | - | ** | - | | - |** **| - |** **| - | ** ** | - | ** ** | - | **** | - | **** | - | ** | - | ** | - | ** | - | ** | - +--------+ */ + ht=16, width=8 + +--------+ + | | + | | + | *** | + | ** | + | ** | + | | + |** **| + |** **| + | ** ** | + | ** ** | + | **** | + | **** | + | ** | + | ** | + | ** | + | ** | + +--------+ */ 0x0000, 0x0000, 0x1c00, @@ -8226,25 +8226,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x6000, /* Character � (0xfe): - ht=16, width=8 - +--------+ - | | - | | - | | - | ** | - | ** | - | ** | - | ***** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | ** ** | - | ***** | - | ** | - | ** | - | ** | - +--------+ */ + ht=16, width=8 + +--------+ + | | + | | + | | + | ** | + | ** | + | ** | + | ***** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | ** ** | + | ***** | + | ** | + | ** | + | ** | + +--------+ */ 0x0000, 0x0000, 0x0000, @@ -8263,25 +8263,25 @@ static font_bits_t winFreeSystem14x16_bits[] = { 0x6000, /* Character � (0xff): - ht=16, width=8 - +--------+ - | | - | | - | | - | ** ** | - | ** ** | - | | - |** **| - |** **| - | ** ** | - | ** ** | - | **** | - | **** | - | ** | - | ** | - | ** | - | ** | - +--------+ */ + ht=16, width=8 + +--------+ + | | + | | + | | + | ** ** | + | ** ** | + | | + |** **| + |** **| + | ** ** | + | ** ** | + | **** | + | **** | + | ** | + | ** | + | ** | + | ** | + +--------+ */ 0x0000, 0x0000, 0x0000, @@ -8761,13 +8761,13 @@ static unsigned char winFreeSystem14x16_width[] = { /* Exported structure definition. */ font_descriptor_t font_winFreeSystem14x16 = { - "winFreeSystem14x16", - 14, - 16, - 13, - 32, - 224, - winFreeSystem14x16_bits, - 0 /*winFreeSystem14x16_offset*/, - winFreeSystem14x16_width, + "winFreeSystem14x16", + 14, + 16, + 13, + 32, + 224, + winFreeSystem14x16_bits, + 0 /*winFreeSystem14x16_offset*/, + winFreeSystem14x16_width, }; diff --git a/main/knobs.c b/main/knobs.c index a29fd63..4980a6d 100644 --- a/main/knobs.c +++ b/main/knobs.c @@ -12,171 +12,171 @@ #include "obstacle.h" uint32_t knobs(void* spilled_base) { - uint32_t *knobs = (spilled_base + SPILED_REG_KNOBS_8BIT_o); - return *knobs; + uint32_t *knobs = (spilled_base + SPILED_REG_KNOBS_8BIT_o); + return *knobs; } uint32_t buttons(void* spilled_base) { - uint32_t * buttons = (spilled_base + SPILED_REG_KBDRD_KNOBS_DIRECT_o ); - return *buttons; + uint32_t * buttons = (spilled_base + SPILED_REG_KBDRD_KNOBS_DIRECT_o ); + return *buttons; } void handle_knob_movement(uint32_t knob_value, uint32_t prev_knob_value, uint32_t* prev_red, uint32_t* prev_blue, - uint32_t* prev_green, player_t* player, frame_buffer_t* frame_buffer) { + uint32_t* prev_green, player_t* player, frame_buffer_t* frame_buffer) { - uint32_t red_knob = (knob_value >> 16) & 0x1F; - uint32_t green_knob = (knob_value >> 10) & 0x3F; - uint32_t blue_knob = knob_value & 0x1F; + uint32_t red_knob = (knob_value >> 16) & 0x1F; + uint32_t green_knob = (knob_value >> 10) & 0x3F; + uint32_t blue_knob = knob_value & 0x1F; - handle_red_knob_movement(red_knob, *prev_red, player, frame_buffer); - if (red_knob % 4 == 0 && *prev_red % 4 == 0) *prev_red = red_knob; - - handle_green_knob_movement(green_knob, *prev_green, player, frame_buffer); - *prev_green = green_knob; + handle_red_knob_movement(red_knob, *prev_red, player, frame_buffer); + if (red_knob % 4 == 0 && *prev_red % 4 == 0) *prev_red = red_knob; + + handle_green_knob_movement(green_knob, *prev_green, player, frame_buffer); + *prev_green = green_knob; - handle_blue_knob_movement(blue_knob, *prev_blue, player); - if (blue_knob % 4 == 0 && *prev_blue % 4 == 0) *prev_blue = blue_knob; + handle_blue_knob_movement(blue_knob, *prev_blue, player); + if (blue_knob % 4 == 0 && *prev_blue % 4 == 0) *prev_blue = blue_knob; } void handle_red_knob_movement(uint32_t red_knob, uint32_t prev_red, player_t* player, frame_buffer_t* frame_buffer) { - - if (red_knob == prev_red || red_knob % 4 != 0 || prev_red % 4 != 0) { - return; - } - - uint32_t diff = abs((int)red_knob - (int)prev_red); - - if (prev_red == 28 && red_knob == 0) { - player->update_location(player, frame_buffer, player->x, player->y - PLAYER_DISTANCE_INCREMENT); - } else if (prev_red == 0 && red_knob == 28) { - player->update_location(player, frame_buffer, player->x, player->y + PLAYER_DISTANCE_INCREMENT); - } else { - if ((red_knob < prev_red) && diff != 31) { - player->update_location(player, frame_buffer, player->x, player->y + PLAYER_DISTANCE_INCREMENT); + + if (red_knob == prev_red || red_knob % 4 != 0 || prev_red % 4 != 0) { + return; + } + + uint32_t diff = abs((int)red_knob - (int)prev_red); + + if (prev_red == 28 && red_knob == 0) { + player->update_location(player, frame_buffer, player->x, player->y - PLAYER_DISTANCE_INCREMENT); + } else if (prev_red == 0 && red_knob == 28) { + player->update_location(player, frame_buffer, player->x, player->y + PLAYER_DISTANCE_INCREMENT); } else { - player->update_location(player, frame_buffer, player->x, player->y - PLAYER_DISTANCE_INCREMENT); + if ((red_knob < prev_red) && diff != 31) { + player->update_location(player, frame_buffer, player->x, player->y + PLAYER_DISTANCE_INCREMENT); + } else { + player->update_location(player, frame_buffer, player->x, player->y - PLAYER_DISTANCE_INCREMENT); + } } - } } void handle_green_knob_movement(uint32_t green_knob, uint32_t prev_green, player_t* player, frame_buffer_t* frame_buffer) { - - if (green_knob == prev_green) - return; - - uint32_t diff = abs((int)green_knob - (int)prev_green); - - if (green_knob < prev_green && diff != 63) { - player->update_location(player, frame_buffer, player->x - PLAYER_DISTANCE_INCREMENT, player->y); - player->move_dir = LEFT; - } else { - player->update_location(player, frame_buffer, player->x + PLAYER_DISTANCE_INCREMENT, player->y); - player->move_dir = RIGHT; - } + + if (green_knob == prev_green) + return; + + uint32_t diff = abs((int)green_knob - (int)prev_green); + + if (green_knob < prev_green && diff != 63) { + player->update_location(player, frame_buffer, player->x - PLAYER_DISTANCE_INCREMENT, player->y); + player->move_dir = LEFT; + } else { + player->update_location(player, frame_buffer, player->x + PLAYER_DISTANCE_INCREMENT, player->y); + player->move_dir = RIGHT; + } } void handle_blue_knob_movement(uint32_t blue_knob, uint32_t prev_blue, player_t* player) { - - if (blue_knob == prev_blue || blue_knob % 4 != 0 || prev_blue % 4 != 0) - return; - - uint32_t diff = abs((int)blue_knob - (int)prev_blue); - - if (prev_blue == 28 && blue_knob == 0) { - player->projectile_scale_up(player); - } else if (prev_blue == 0 && blue_knob == 28) { - player->projectile_scale_down(player); - } else { - if (blue_knob < prev_blue && diff != 31) { - player->projectile_scale_down(player); + + if (blue_knob == prev_blue || blue_knob % 4 != 0 || prev_blue % 4 != 0) + return; + + uint32_t diff = abs((int)blue_knob - (int)prev_blue); + + if (prev_blue == 28 && blue_knob == 0) { + player->projectile_scale_up(player); + } else if (prev_blue == 0 && blue_knob == 28) { + player->projectile_scale_down(player); } else { - player->projectile_scale_up(player); + if (blue_knob < prev_blue && diff != 31) { + player->projectile_scale_down(player); + } else { + player->projectile_scale_up(player); + } } - } } void handle_knob_buttons(uint32_t knob_state, player_t* player, frame_buffer_t* frame_buffer, projectile_t** projectiles, - int* num_projectiles, int max_projectiles, void* spiled_base) { - - uint32_t knob_states = buttons(spiled_base); - static int button_r_pressed = 0; - static int button_g_pressed = 0; - static int button_b_pressed = 0; - static int can_dash = 1; - static int can_immunity = 1; - static time_t dash_start_time = 0; - static time_t immunity_start_time = 0; + int* num_projectiles, int max_projectiles, void* spiled_base) { + + uint32_t knob_states = buttons(spiled_base); + static int button_r_pressed = 0; + static int button_g_pressed = 0; + static int button_b_pressed = 0; + static int can_dash = 1; + static int can_immunity = 1; + static time_t dash_start_time = 0; + static time_t immunity_start_time = 0; - time_t current_time = time(NULL); - change_led_rgb2_based_on_powerups(spiled_base, current_time, dash_start_time, immunity_start_time, &can_dash, &can_immunity); + time_t current_time = time(NULL); + change_led_rgb2_based_on_powerups(spiled_base, current_time, dash_start_time, immunity_start_time, &can_dash, &can_immunity); - handle_immunity_button(knob_state, &button_r_pressed, player, spiled_base, &immunity_start_time, &can_immunity); + handle_immunity_button(knob_state, &button_r_pressed, player, spiled_base, &immunity_start_time, &can_immunity); - handle_dash_button(knob_state, &button_g_pressed, player, frame_buffer, spiled_base, &dash_start_time, &can_dash); + handle_dash_button(knob_state, &button_g_pressed, player, frame_buffer, spiled_base, &dash_start_time, &can_dash); - handle_shoot_button(knob_states, &button_b_pressed, player, frame_buffer, projectiles, num_projectiles, max_projectiles, spiled_base); + handle_shoot_button(knob_states, &button_b_pressed, player, frame_buffer, projectiles, num_projectiles, max_projectiles, spiled_base); - handle_button_released(knob_states, &button_r_pressed, &button_g_pressed, &button_b_pressed); + handle_button_released(knob_states, &button_r_pressed, &button_g_pressed, &button_b_pressed); } void handle_immunity_button(uint32_t knob_state, int* button_r_pressed, player_t* player, void* spiled_base, - time_t* immunity_start_time, int* can_immunity) { - - if ((knob_state & (1 << 24)) != 0 && !(*button_r_pressed)) { - time_t current_time = time(NULL); - if (*can_immunity) { - player->imunity(player); - *immunity_start_time = current_time; - *can_immunity = 0; - turn_off_immunity_color(spiled_base); + time_t* immunity_start_time, int* can_immunity) { + + if ((knob_state & (1 << 24)) != 0 && !(*button_r_pressed)) { + time_t current_time = time(NULL); + if (*can_immunity) { + player->imunity(player); + *immunity_start_time = current_time; + *can_immunity = 0; + turn_off_immunity_color(spiled_base); + } + + *button_r_pressed = 1; } - - *button_r_pressed = 1; - } } void handle_dash_button(uint32_t knob_state, int* button_g_pressed, player_t* player, frame_buffer_t* frame_buffer, - void* spiled_base, time_t* dash_start_time, int* can_dash) { - - if ((knob_state & (1 << 21)) != 0 && !(*button_g_pressed)) { - if (*can_dash) { - player->dash(player, frame_buffer, player->move_dir); - *dash_start_time = time(NULL); - turn_off_dash_color(spiled_base); - *can_dash = 0; - } - - *button_g_pressed = 1; - } + void* spiled_base, time_t* dash_start_time, int* can_dash) { + + if ((knob_state & (1 << 21)) != 0 && !(*button_g_pressed)) { + if (*can_dash) { + player->dash(player, frame_buffer, player->move_dir); + *dash_start_time = time(NULL); + turn_off_dash_color(spiled_base); + *can_dash = 0; + } + + *button_g_pressed = 1; + } } void handle_shoot_button(uint32_t knob_states, int* button_b_pressed, player_t* player, frame_buffer_t* frame_buffer, - projectile_t** projectiles, int* num_projectiles, int max_projectiles, void* spiled_base) { + projectile_t** projectiles, int* num_projectiles, int max_projectiles, void* spiled_base) { - if ((knob_states & (1 << 18)) != 0 && !(*button_b_pressed) && *num_projectiles + 1 < max_projectiles) { - projectile_t* new_projectile = player->shoot(player, frame_buffer, player->projectile_type); - if (new_projectile != NULL) { - projectiles[*num_projectiles] = new_projectile; - (*num_projectiles)++; + if ((knob_states & (1 << 18)) != 0 && !(*button_b_pressed) && *num_projectiles + 1 < max_projectiles) { + projectile_t* new_projectile = player->shoot(player, frame_buffer, player->projectile_type); + if (new_projectile != NULL) { + projectiles[*num_projectiles] = new_projectile; + (*num_projectiles)++; - float used_ammo = (float)(player->max_ammo - player->ammo) / 100 * 32; + float used_ammo = (float)(player->max_ammo - player->ammo) / 100 * 32; - set_ammo_count(spiled_base, (int)used_ammo); - *button_b_pressed = 1; + set_ammo_count(spiled_base, (int)used_ammo); + *button_b_pressed = 1; + } } - } } void handle_button_released(uint32_t knob_states, int* button_r_pressed, int* button_g_pressed, int* button_b_pressed) { - if ((knob_states & (1 << 24)) == 0) { - *button_r_pressed = 0; - } + if ((knob_states & (1 << 24)) == 0) { + *button_r_pressed = 0; + } - if ((knob_states & (1 << 21)) == 0) { - *button_g_pressed = 0; - } + if ((knob_states & (1 << 21)) == 0) { + *button_g_pressed = 0; + } - if ((knob_states & (1 << 18)) == 0) { - *button_b_pressed = 0; - } + if ((knob_states & (1 << 18)) == 0) { + *button_b_pressed = 0; + } } \ No newline at end of file diff --git a/main/knobs.h b/main/knobs.h index 819443e..ec1737d 100644 --- a/main/knobs.h +++ b/main/knobs.h @@ -1,8 +1,8 @@ /******************************************************************* - Header for knobs.c - Class for accessing perifers knobs and knob buttons - authors: Pelech Ondrej, Pham Thi Thien Trang - date: Mai 2023 + Header for knobs.c + Class for accessing perifers knobs and knob buttons + authors: Pelech Ondrej, Pham Thi Thien Trang + date: Mai 2023 *******************************************************************/ #ifndef __KNOBS_H__ @@ -24,7 +24,7 @@ uint32_t knobs(void* spilled_base); uint32_t buttons(void* spilled_base); void handle_knob_movement(uint32_t knob_value, uint32_t prev_knob_value, uint32_t* prev_red, uint32_t* prev_blue, - uint32_t* prev_green, player_t* player, frame_buffer_t* frame_buffer); + uint32_t* prev_green, player_t* player, frame_buffer_t* frame_buffer); void handle_red_knob_movement(uint32_t red_knob, uint32_t prev_red, player_t* player, frame_buffer_t* frame_buffer); @@ -40,10 +40,10 @@ void handle_immunity_button(uint32_t knob_state, int* button_b_pressed, player_t time_t* immunity_start_time, int* can_immunity); void handle_dash_button(uint32_t knob_state, int* button_g_pressed, player_t* player, frame_buffer_t* frame_buffer, - void* spiled_base, time_t* dash_start_time, int* can_dash); + void* spiled_base, time_t* dash_start_time, int* can_dash); void handle_shoot_button(uint32_t knob_states, int* button_r_pressed, player_t* player, frame_buffer_t* frame_buffer, - projectile_t** projectiles, int* num_projectiles, int max_projectiles, void* spiled_base); + projectile_t** projectiles, int* num_projectiles, int max_projectiles, void* spiled_base); diff --git a/main/led_line.c b/main/led_line.c index 28e40e0..ccf4709 100644 --- a/main/led_line.c +++ b/main/led_line.c @@ -1,7 +1,7 @@ /******************************************************************* - Class for accessing led_line - authors: Pelech Ondrej, Pham Thi Thien Trang - date: Mai 2023 + Class for accessing led_line + authors: Pelech Ondrej, Pham Thi Thien Trang + date: Mai 2023 *******************************************************************/ #include <stdint.h> @@ -10,12 +10,12 @@ // shoes num on led line void set_led1_on(void* spiled_base, uint32_t num) { - uint32_t *line = (uint32_t *)(spiled_base + SPILED_REG_LED_LINE_o); - *line = num; + uint32_t *line = (uint32_t *)(spiled_base + SPILED_REG_LED_LINE_o); + *line = num; } // displies ammo count on led_line void set_ammo_count(void* spiled_base, uint32_t ammo_used) { - uint32_t bits_to_turn_on = 0xFFFFFFFF << ammo_used; - set_led1_on(spiled_base, bits_to_turn_on); + uint32_t bits_to_turn_on = 0xFFFFFFFF << ammo_used; + set_led1_on(spiled_base, bits_to_turn_on); } diff --git a/main/led_line.h b/main/led_line.h index d992032..9c230af 100644 --- a/main/led_line.h +++ b/main/led_line.h @@ -1,8 +1,8 @@ /******************************************************************* - Header for led_line.c - Class for accessing led_line - authors: Pelech Ondrej, Pham Thi Thien Trang - date: Mai 2023 + Header for led_line.c + Class for accessing led_line + authors: Pelech Ondrej, Pham Thi Thien Trang + date: Mai 2023 *******************************************************************/ #ifndef LED_LINE_H #define LED_LINE diff --git a/main/led_rgb.c b/main/led_rgb.c index d7852cd..f0d523f 100644 --- a/main/led_rgb.c +++ b/main/led_rgb.c @@ -1,7 +1,7 @@ /******************************************************************* - Class for accessing lights - authors: Pelech Ondrej, Pham Thi Thien Trang - date: Mai 2023 + Class for accessing lights + authors: Pelech Ondrej, Pham Thi Thien Trang + date: Mai 2023 *******************************************************************/ #include <stdint.h> @@ -12,70 +12,70 @@ // returns rgb as int value uint32_t rgb_to_int(uint8_t r, uint8_t g, uint8_t b) { - return r << 16 | g << 8 | b; + return r << 16 | g << 8 | b; } // sets color on rgb LED 1 void LED_rgb1(void* spiled_base, uint32_t color) { - uint32_t *LED_rgb1 = (spiled_base + SPILED_REG_LED_RGB1_o); - *LED_rgb1 = color; + uint32_t *LED_rgb1 = (spiled_base + SPILED_REG_LED_RGB1_o); + *LED_rgb1 = color; } // sets color on rgb LED 2 void LED_rgb2(void* spiled_base, uint32_t color) { - uint32_t *LED_rgb1 = (spiled_base + SPILED_REG_LED_RGB2_o); - *LED_rgb1 = color; + uint32_t *LED_rgb1 = (spiled_base + SPILED_REG_LED_RGB2_o); + *LED_rgb1 = color; } uint32_t get_led_rgb2_color(void* spiled_base) { - uint32_t *LED_rgb1 = (spiled_base + SPILED_REG_LED_RGB2_o); - return *LED_rgb1; + uint32_t *LED_rgb1 = (spiled_base + SPILED_REG_LED_RGB2_o); + return *LED_rgb1; } // shows health update on rgb LED 1 void update_health_rgb1(void* spiled_base, int max_hp, int hp) { - uint32_t scaled_hp = (hp * 255 / max_hp - 50) < 0 ? 0 : hp * 255 / max_hp - 50; - uint8_t r = 255 - scaled_hp; - uint8_t g = scaled_hp; - uint8_t b = 0; - LED_rgb1(spiled_base, rgb_to_int(r, g, b)); + uint32_t scaled_hp = (hp * 255 / max_hp - 50) < 0 ? 0 : hp * 255 / max_hp - 50; + uint8_t r = 255 - scaled_hp; + uint8_t g = scaled_hp; + uint8_t b = 0; + LED_rgb1(spiled_base, rgb_to_int(r, g, b)); } void change_led_rgb2_based_on_powerups(void* spiled_base, uint32_t current_time, uint32_t dash_start_time, uint32_t immunity_start_time, int* can_dash, int* can_dodge) { - if (current_time - dash_start_time >= DASH_COOLDOWN && !(*can_dash)) { - uint32_t original_color = get_led_rgb2_color(spiled_base); - *can_dash = 1; - uint8_t r = (original_color >> 16); - uint8_t g = (original_color >> 8); - uint8_t b = original_color; - LED_rgb2(spiled_base, rgb_to_int(r, g, 255)); - - } + if (current_time - dash_start_time >= DASH_COOLDOWN && !(*can_dash)) { + uint32_t original_color = get_led_rgb2_color(spiled_base); + *can_dash = 1; + uint8_t r = (original_color >> 16); + uint8_t g = (original_color >> 8); + uint8_t b = original_color; + LED_rgb2(spiled_base, rgb_to_int(r, g, 255)); + + } - if (current_time - immunity_start_time >= DODGE_COOLDOWN && !(*can_dodge)) { - *can_dodge = 1; - uint32_t original_color = get_led_rgb2_color(spiled_base); - uint8_t r = (original_color >> 16); - uint8_t g = (original_color >> 8); - uint8_t b = original_color; - - LED_rgb2(spiled_base, rgb_to_int(255, g, b)); - } + if (current_time - immunity_start_time >= DODGE_COOLDOWN && !(*can_dodge)) { + *can_dodge = 1; + uint32_t original_color = get_led_rgb2_color(spiled_base); + uint8_t r = (original_color >> 16); + uint8_t g = (original_color >> 8); + uint8_t b = original_color; + + LED_rgb2(spiled_base, rgb_to_int(255, g, b)); + } } void turn_off_dash_color(void* spiled_base) { - uint32_t original_color = get_led_rgb2_color(spiled_base); - uint8_t r = (original_color >> 16); - uint8_t g = (original_color >> 8); - uint8_t b = 0; - LED_rgb2(spiled_base, rgb_to_int(r, g, b)); + uint32_t original_color = get_led_rgb2_color(spiled_base); + uint8_t r = (original_color >> 16); + uint8_t g = (original_color >> 8); + uint8_t b = 0; + LED_rgb2(spiled_base, rgb_to_int(r, g, b)); } void turn_off_immunity_color(void* spiled_base) { - uint32_t original_color = get_led_rgb2_color(spiled_base); - uint8_t r = 0; - uint8_t g = (original_color >> 8); - uint8_t b = original_color; - LED_rgb2(spiled_base, rgb_to_int(r, g, b)); + uint32_t original_color = get_led_rgb2_color(spiled_base); + uint8_t r = 0; + uint8_t g = (original_color >> 8); + uint8_t b = original_color; + LED_rgb2(spiled_base, rgb_to_int(r, g, b)); } diff --git a/main/main.c b/main/main.c index 55e869d..ec73e4a 100644 --- a/main/main.c +++ b/main/main.c @@ -1,15 +1,15 @@ /******************************************************************* - Project main function template for MicroZed based MZ_APO board - designed by Petr Porazil at PiKRON + Project main function template for MicroZed based MZ_APO board + designed by Petr Porazil at PiKRON - change_me.c - main file + change_me.c - main file - include your name there and license for distribution. + include your name there and license for distribution. - Remove next text: This line should not appear in submitted - work and project name should be change to match real application. - If this text is there I want 10 points subtracted from final - evaluation. + Remove next text: This line should not appear in submitted + work and project name should be change to match real application. + If this text is there I want 10 points subtracted from final + evaluation. *******************************************************************/ @@ -56,213 +56,213 @@ int main(int argc, char *argv[]) { - /* Serialize execution of applications */ - /* Try to acquire lock the first */ - printf("Hello world\n"); - if (serialize_lock(1) <= 0) { - printf("System is occupied\n"); - if (1) { - printf("Waitting\n"); - /* Wait till application holding lock releases it or exits */ - serialize_lock(0); + /* Serialize execution of applications */ + /* Try to acquire lock the first */ + printf("Hello world\n"); + if (serialize_lock(1) <= 0) { + printf("System is occupied\n"); + if (1) { + printf("Waitting\n"); + /* Wait till application holding lock releases it or exits */ + serialize_lock(0); + } } - } - - frame_buffer_t* frame_buffer = my_malloc(sizeof(frame_buffer_t)); - int16_t ret = frame_buffer_init(frame_buffer, SCREEN_HEIGHT, SCREEN_WIDTH); - if (ret != EXIT_SUCCESS) { - printf("Frame buffer init error\n"); - exit(1); - } - - void* spiled_base = map_phys_address(SPILED_REG_BASE_PHYS, SPILED_REG_SIZE, 0); - - // welcome text draw - text_t* welcome_text = get_text("Welcome !!!"); - text_t* end_game_text; - welcome_text->draw(welcome_text,frame_buffer,100,130); - frame_buffer->draw(frame_buffer); - frame_buffer->null_buffer(frame_buffer); - - sleep(4); - - // INITIALISATION - bool victory = false; - - // ENEMIES - int enemy_row = 3; - int enemy_col = 7; - int count_enemies = enemy_row * enemy_col; - - enemy_t** enemies = my_malloc(count_enemies * sizeof(enemy_t*)); - int num_enemy = 0; - for (int i = 0; i < enemy_row; i++) { - for (int j = 0; j < enemy_col; j ++) { - enemies[num_enemy] = get_enemy(j * ENEMY_DISTANCE, i * DEFAULT_PICTURE_SIZE * 3, 3); // set the enemy distance - num_enemy++; + + frame_buffer_t* frame_buffer = my_malloc(sizeof(frame_buffer_t)); + int16_t ret = frame_buffer_init(frame_buffer, SCREEN_HEIGHT, SCREEN_WIDTH); + if (ret != EXIT_SUCCESS) { + printf("Frame buffer init error\n"); + exit(1); } - } - - // PROJECTILES - int num_projectiles = 0; - int max_projectiles = 50; - projectile_t** projectiles = my_malloc(max_projectiles * sizeof(projectile_t*)); - - // OBSTACLES - int num_obstacles = 0; - int max_obstacles = 3; - obstacle_t** obstacles = my_malloc(max_obstacles * sizeof(obstacle_t*)); - int obstacle_cooldown = rand() % OBSTACLE_COOLDOWN; - - // PLAYER - player_t* player = get_player(SCREEN_WIDTH / 2 - DEFAULT_PICTURE_SIZE*3, SCREEN_HEIGHT - DEFAULT_PICTURE_SIZE*4, 100); - set_ammo_count(spiled_base, 0); - update_health_rgb1(spiled_base, player->max_hp, player->hp); - LED_rgb2(spiled_base, rgb_to_int(255, 0, 255)); - - uint32_t prev_knob_value = knobs(spiled_base); - uint32_t prev_red = (prev_knob_value >> 16) & 0x1F; - uint32_t prev_green = (prev_knob_value >> 10) & 0x3F; - uint32_t prev_blue = prev_knob_value & 0x1F; - - while(1) { - // handle knobs - uint32_t knob_value = knobs(spiled_base); - uint32_t knob_state = buttons(spiled_base); - handle_knob_movement(knob_value, prev_knob_value, &prev_red, &prev_blue, &prev_green, player, frame_buffer); - prev_knob_value = knob_value; - handle_knob_buttons(knob_state, player, frame_buffer, projectiles, &num_projectiles, max_projectiles, spiled_base); - - player->draw(player, frame_buffer); - update_health_rgb1(spiled_base, player->max_hp, player->hp); + void* spiled_base = map_phys_address(SPILED_REG_BASE_PHYS, SPILED_REG_SIZE, 0); - for (int i = 0; i < num_enemy; i++) { - enemy_t* enemy = enemies[i]; - if ( enemy != NULL) { - int ret = enemy->update(enemy, frame_buffer, 1); - if (enemy->update_cooldown(enemy, 1) && num_projectiles + 1 < max_projectiles) { - projectile_t* new_projectile = enemy->shoot(enemy, frame_buffer); - if (new_projectile != NULL) { - projectiles[num_projectiles] = new_projectile; - num_projectiles = num_projectiles + 1; - } - } - if (ret == ENEMY_DEAD) { - enemies[i] = NULL; - count_enemies--; - player->heal(player, 10); - player->add_ammo(player, 40); - float used_ammo = (float)(player->max_ammo - player->ammo)/100 * 32; - set_ammo_count(spiled_base, (int)used_ammo); + // welcome text draw + text_t* welcome_text = get_text("Welcome !!!"); + text_t* end_game_text; + welcome_text->draw(welcome_text,frame_buffer,100,130); + frame_buffer->draw(frame_buffer); + frame_buffer->null_buffer(frame_buffer); + + sleep(4); + + // INITIALISATION + bool victory = false; + + // ENEMIES + int enemy_row = 3; + int enemy_col = 7; + int count_enemies = enemy_row * enemy_col; + + enemy_t** enemies = my_malloc(count_enemies * sizeof(enemy_t*)); + int num_enemy = 0; + for (int i = 0; i < enemy_row; i++) { + for (int j = 0; j < enemy_col; j ++) { + enemies[num_enemy] = get_enemy(j * ENEMY_DISTANCE, i * DEFAULT_PICTURE_SIZE * 3, 3); // set the enemy distance + num_enemy++; } - } } - for (int i = 0; i < num_projectiles; i++) { - projectile_t* projectile = projectiles[i]; - if (projectile != NULL) { - int ret = projectile->update_location(projectile, frame_buffer); - if (ret == SCREEN_END) { - projectiles[i] = NULL; + // PROJECTILES + int num_projectiles = 0; + int max_projectiles = 50; + projectile_t** projectiles = my_malloc(max_projectiles * sizeof(projectile_t*)); + + // OBSTACLES + int num_obstacles = 0; + int max_obstacles = 3; + obstacle_t** obstacles = my_malloc(max_obstacles * sizeof(obstacle_t*)); + int obstacle_cooldown = rand() % OBSTACLE_COOLDOWN; + + // PLAYER + player_t* player = get_player(SCREEN_WIDTH / 2 - DEFAULT_PICTURE_SIZE*3, SCREEN_HEIGHT - DEFAULT_PICTURE_SIZE*4, 100); + set_ammo_count(spiled_base, 0); + update_health_rgb1(spiled_base, player->max_hp, player->hp); + LED_rgb2(spiled_base, rgb_to_int(255, 0, 255)); + + uint32_t prev_knob_value = knobs(spiled_base); + uint32_t prev_red = (prev_knob_value >> 16) & 0x1F; + uint32_t prev_green = (prev_knob_value >> 10) & 0x3F; + uint32_t prev_blue = prev_knob_value & 0x1F; + + while(1) { + + // handle knobs + uint32_t knob_value = knobs(spiled_base); + uint32_t knob_state = buttons(spiled_base); + handle_knob_movement(knob_value, prev_knob_value, &prev_red, &prev_blue, &prev_green, player, frame_buffer); + prev_knob_value = knob_value; + handle_knob_buttons(knob_state, player, frame_buffer, projectiles, &num_projectiles, max_projectiles, spiled_base); + + player->draw(player, frame_buffer); + update_health_rgb1(spiled_base, player->max_hp, player->hp); + + for (int i = 0; i < num_enemy; i++) { + enemy_t* enemy = enemies[i]; + if ( enemy != NULL) { + int ret = enemy->update(enemy, frame_buffer, 1); + if (enemy->update_cooldown(enemy, 1) && num_projectiles + 1 < max_projectiles) { + projectile_t* new_projectile = enemy->shoot(enemy, frame_buffer); + if (new_projectile != NULL) { + projectiles[num_projectiles] = new_projectile; + num_projectiles = num_projectiles + 1; + } + } + if (ret == ENEMY_DEAD) { + enemies[i] = NULL; + count_enemies--; + player->heal(player, 10); + player->add_ammo(player, 40); + float used_ammo = (float)(player->max_ammo - player->ammo)/100 * 32; + set_ammo_count(spiled_base, (int)used_ammo); + } + } } - } - } - num_projectiles = sort_projectiles(projectiles, max_projectiles); - - if (obstacle_set_cooldown(&obstacle_cooldown, 1) && num_obstacles + 1 < max_obstacles) { - int16_t x = SCREEN_WIDTH - DEFAULT_PICTURE_SIZE*3; - int16_t y = DEFAULT_PICTURE_SIZE * 3 * 3 + rand() % 100; - int16_t dir = rand() % 2; - if (dir == RIGHT) { - x = 2; - } - obstacle_t* new_obstacle = get_obstacle(x, y, 10, dir); - if (new_obstacle != NULL) { - obstacles[num_obstacles] = new_obstacle; - num_obstacles = num_obstacles + 1; - } - } + for (int i = 0; i < num_projectiles; i++) { + projectile_t* projectile = projectiles[i]; + if (projectile != NULL) { + int ret = projectile->update_location(projectile, frame_buffer); + if (ret == SCREEN_END) { + projectiles[i] = NULL; + } + } + } + + num_projectiles = sort_projectiles(projectiles, max_projectiles); + + if (obstacle_set_cooldown(&obstacle_cooldown, 1) && num_obstacles + 1 < max_obstacles) { + int16_t x = SCREEN_WIDTH - DEFAULT_PICTURE_SIZE*3; + int16_t y = DEFAULT_PICTURE_SIZE * 3 * 3 + rand() % 100; + int16_t dir = rand() % 2; + if (dir == RIGHT) { + x = 2; + } + obstacle_t* new_obstacle = get_obstacle(x, y, 10, dir); + if (new_obstacle != NULL) { + obstacles[num_obstacles] = new_obstacle; + num_obstacles = num_obstacles + 1; + } + } - for (int i = 0; i < num_obstacles; i++) { - obstacle_t* obstacle = obstacles[i]; - if (obstacle != NULL) { - int ret = obstacle->update(obstacle, frame_buffer); - if (ret == OBSTACLE_DESTROYED) { - obstacles[i] = NULL; + for (int i = 0; i < num_obstacles; i++) { + obstacle_t* obstacle = obstacles[i]; + if (obstacle != NULL) { + int ret = obstacle->update(obstacle, frame_buffer); + if (ret == OBSTACLE_DESTROYED) { + obstacles[i] = NULL; + } + } } - } - } - - num_obstacles = sort_obstacles(obstacles, max_obstacles); + + num_obstacles = sort_obstacles(obstacles, max_obstacles); - // check collision - check_collisions(player, enemies, obstacles, num_obstacles, max_obstacles, projectiles, num_projectiles, max_projectiles, num_enemy); - - - frame_buffer->draw(frame_buffer); - frame_buffer->null_buffer(frame_buffer); + // check collision + check_collisions(player, enemies, obstacles, num_obstacles, max_obstacles, projectiles, num_projectiles, max_projectiles, num_enemy); + + + frame_buffer->draw(frame_buffer); + frame_buffer->null_buffer(frame_buffer); + + if (count_enemies <= 0) { + victory = true; + break; + } + + bool has_player_projectille = false; + for (int i = 0; i < max_projectiles; i++) { + if (projectiles[i] != NULL && projectiles[i]->owner == PLAYER) { + has_player_projectille = true; + } + } + + if (player->hp <= 0 || (player->ammo < PROJECTILE_SMALL_COST && !has_player_projectille)) { + victory = false; + break; + } + } - if (count_enemies <= 0) { - victory = true; - break; + if(victory) { + end_game_text = get_text("YOU WON !!!"); + } else { + end_game_text = get_text("GAME OVER !!!"); } - bool has_player_projectille = false; - for (int i = 0; i < max_projectiles; i++) { - if (projectiles[i] != NULL && projectiles[i]->owner == PLAYER) { - has_player_projectille = true; - } + frame_buffer->null_buffer(frame_buffer); + end_game_text->draw(end_game_text,frame_buffer,80,130); + frame_buffer->draw(frame_buffer); + + // FREE OBJECTS + info("free"); + debug("free projectiles"); + for (int i = 0; i < max_projectiles; i ++) { + if (projectiles[i] != NULL) + projectiles[i]->free(projectiles[i]); } + free(projectiles); + debug("free enemies"); + for (int i = 0; i < num_enemy; i ++) { + printf("%d\n", i); + if (enemies[i] != NULL) + enemies[i]->free(enemies[i]); + } + free(enemies); - if (player->hp <= 0 || (player->ammo < PROJECTILE_SMALL_COST && !has_player_projectille)) { - victory = false; - break; + debug("free obstacles"); + for (int i = 0; i < max_obstacles; i ++) { + if (obstacles[i] != NULL) + obstacles[i]->free(obstacles[i]); } - } - - if(victory) { - end_game_text = get_text("YOU WON !!!"); - } else { - end_game_text = get_text("GAME OVER !!!"); - } - - frame_buffer->null_buffer(frame_buffer); - end_game_text->draw(end_game_text,frame_buffer,80,130); - frame_buffer->draw(frame_buffer); - - // FREE OBJECTS - info("free"); - debug("free projectiles"); - for (int i = 0; i < max_projectiles; i ++) { - if (projectiles[i] != NULL) - projectiles[i]->free(projectiles[i]); - } - free(projectiles); - debug("free enemies"); - for (int i = 0; i < num_enemy; i ++) { - printf("%d\n", i); - if (enemies[i] != NULL) - enemies[i]->free(enemies[i]); - } - free(enemies); - - debug("free obstacles"); - for (int i = 0; i < max_obstacles; i ++) { - if (obstacles[i] != NULL) - obstacles[i]->free(obstacles[i]); - } - free(obstacles); - debug("free player"); - player->free(player); - debug("free buffer"); - frame_buffer->free(frame_buffer); - - printf("Goodbye world\n"); - - serialize_unlock(); - - return 0; + free(obstacles); + debug("free player"); + player->free(player); + debug("free buffer"); + frame_buffer->free(frame_buffer); + + printf("Goodbye world\n"); + + serialize_unlock(); + + return 0; } diff --git a/main/mzapo_parlcd.c b/main/mzapo_parlcd.c index 1a1abef..2a334f6 100644 --- a/main/mzapo_parlcd.c +++ b/main/mzapo_parlcd.c @@ -1,14 +1,14 @@ /******************************************************************* - Simple program to check LCD functionality on MicroZed - based MZ_APO board designed by Petr Porazil at PiKRON + Simple program to check LCD functionality on MicroZed + based MZ_APO board designed by Petr Porazil at PiKRON - mzapo_parlcd.c - parallel connected LCD low level access + mzapo_parlcd.c - parallel connected LCD low level access - (C) Copyright 2017 by Pavel Pisa - e-mail: pisa@cmp.felk.cvut.cz - homepage: http://cmp.felk.cvut.cz/~pisa - company: http://www.pikron.com/ - license: any combination of GPL, LGPL, MPL or BSD licenses + (C) Copyright 2017 by Pavel Pisa + e-mail: pisa@cmp.felk.cvut.cz + homepage: http://cmp.felk.cvut.cz/~pisa + company: http://www.pikron.com/ + license: any combination of GPL, LGPL, MPL or BSD licenses *******************************************************************/ @@ -25,34 +25,34 @@ void parlcd_write_cr(unsigned char *parlcd_mem_base, uint16_t data) { - *(volatile uint16_t*)(parlcd_mem_base + PARLCD_REG_CR_o) = data; + *(volatile uint16_t*)(parlcd_mem_base + PARLCD_REG_CR_o) = data; } void parlcd_write_cmd(unsigned char *parlcd_mem_base, uint16_t cmd) { - *(volatile uint16_t*)(parlcd_mem_base + PARLCD_REG_CMD_o) = cmd; + *(volatile uint16_t*)(parlcd_mem_base + PARLCD_REG_CMD_o) = cmd; } void parlcd_write_data(unsigned char *parlcd_mem_base, uint16_t data) { - *(volatile uint16_t*)(parlcd_mem_base + PARLCD_REG_DATA_o) = data; + *(volatile uint16_t*)(parlcd_mem_base + PARLCD_REG_DATA_o) = data; } void parlcd_write_data2x(unsigned char *parlcd_mem_base, uint32_t data) { - *(volatile uint32_t*)(parlcd_mem_base + PARLCD_REG_DATA_o) = data; + *(volatile uint32_t*)(parlcd_mem_base + PARLCD_REG_DATA_o) = data; } void parlcd_delay(int msec) { - struct timespec wait_delay = {.tv_sec = msec / 1000, - .tv_nsec = (msec % 1000) * 1000 * 1000}; - clock_nanosleep(CLOCK_MONOTONIC, 0, &wait_delay, NULL); + struct timespec wait_delay = {.tv_sec = msec / 1000, + .tv_nsec = (msec % 1000) * 1000 * 1000}; + clock_nanosleep(CLOCK_MONOTONIC, 0, &wait_delay, NULL); } void parlcd_hx8357_init(unsigned char *parlcd_mem_base) { - // toggle RST low to reset + // toggle RST low to reset /* digitalWrite(_rst, HIGH); parlcd_delay(50); @@ -61,8 +61,8 @@ void parlcd_hx8357_init(unsigned char *parlcd_mem_base) digitalWrite(_rst, HIGH); parlcd_delay(10); */ - parlcd_write_cmd(parlcd_mem_base, 0x1); - parlcd_delay(30); + parlcd_write_cmd(parlcd_mem_base, 0x1); + parlcd_delay(30); #if defined(ILI9481) // Configure ILI9481 display diff --git a/main/mzapo_phys.c b/main/mzapo_phys.c index 4553f56..f49f849 100644 --- a/main/mzapo_phys.c +++ b/main/mzapo_phys.c @@ -1,14 +1,14 @@ /******************************************************************* - Simple program to check LCD functionality on MicroZed - based MZ_APO board designed by Petr Porazil at PiKRON + Simple program to check LCD functionality on MicroZed + based MZ_APO board designed by Petr Porazil at PiKRON - mzapo_phys.h - mapping of the physical address to process + mzapo_phys.h - mapping of the physical address to process - (C) Copyright 2017 by Pavel Pisa - e-mail: pisa@cmp.felk.cvut.cz - homepage: http://cmp.felk.cvut.cz/~pisa - company: http://www.pikron.com/ - license: any combination of GPL, LGPL, MPL or BSD licenses + (C) Copyright 2017 by Pavel Pisa + e-mail: pisa@cmp.felk.cvut.cz + homepage: http://cmp.felk.cvut.cz/~pisa + company: http://www.pikron.com/ + license: any combination of GPL, LGPL, MPL or BSD licenses *******************************************************************/ @@ -27,30 +27,30 @@ const char *map_phys_memdev="/dev/mem"; void *map_phys_address(off_t region_base, size_t region_size, int opt_cached) { - unsigned long mem_window_size; - unsigned long pagesize; - unsigned char *mm; - unsigned char *mem; - int fd; + unsigned long mem_window_size; + unsigned long pagesize; + unsigned char *mm; + unsigned char *mem; + int fd; - fd = open(map_phys_memdev, O_RDWR | (!opt_cached? O_SYNC: 0)); - if (fd < 0) { - fprintf(stderr, "cannot open %s\n", map_phys_memdev); - return NULL; - } + fd = open(map_phys_memdev, O_RDWR | (!opt_cached? O_SYNC: 0)); + if (fd < 0) { + fprintf(stderr, "cannot open %s\n", map_phys_memdev); + return NULL; + } - pagesize=sysconf(_SC_PAGESIZE); + pagesize=sysconf(_SC_PAGESIZE); - mem_window_size = ((region_base & (pagesize-1)) + region_size + pagesize-1) & ~(pagesize-1); + mem_window_size = ((region_base & (pagesize-1)) + region_size + pagesize-1) & ~(pagesize-1); - mm = (unsigned char *)mmap(NULL, mem_window_size, PROT_WRITE|PROT_READ, - MAP_SHARED, fd, region_base & ~(pagesize-1)); - mem = mm + (region_base & (pagesize-1)); + mm = (unsigned char *)mmap(NULL, mem_window_size, PROT_WRITE|PROT_READ, + MAP_SHARED, fd, region_base & ~(pagesize-1)); + mem = mm + (region_base & (pagesize-1)); - if (mm == MAP_FAILED) { - fprintf(stderr,"mmap error\n"); - return NULL; - } + if (mm == MAP_FAILED) { + fprintf(stderr,"mmap error\n"); + return NULL; + } - return (void *)mem; + return (void *)mem; } diff --git a/main/mzapo_phys.h b/main/mzapo_phys.h index 95f0920..af33399 100644 --- a/main/mzapo_phys.h +++ b/main/mzapo_phys.h @@ -1,14 +1,14 @@ /******************************************************************* - Simple program to check LCD functionality on MicroZed - based MZ_APO board designed by Petr Porazil at PiKRON + Simple program to check LCD functionality on MicroZed + based MZ_APO board designed by Petr Porazil at PiKRON - mzapo_phys.h - mapping of the physical address to process + mzapo_phys.h - mapping of the physical address to process - (C) Copyright 2017 by Pavel Pisa - e-mail: pisa@cmp.felk.cvut.cz - homepage: http://cmp.felk.cvut.cz/~pisa - company: http://www.pikron.com/ - license: any combination of GPL, LGPL, MPL or BSD licenses + (C) Copyright 2017 by Pavel Pisa + e-mail: pisa@cmp.felk.cvut.cz + homepage: http://cmp.felk.cvut.cz/~pisa + company: http://www.pikron.com/ + license: any combination of GPL, LGPL, MPL or BSD licenses *******************************************************************/ diff --git a/main/mzapo_regs.h b/main/mzapo_regs.h index c569ef9..b117eb8 100644 --- a/main/mzapo_regs.h +++ b/main/mzapo_regs.h @@ -1,14 +1,14 @@ /******************************************************************* - Simple program to check LCD functionality on MicroZed - based MZ_APO board designed by Petr Porazil at PiKRON + Simple program to check LCD functionality on MicroZed + based MZ_APO board designed by Petr Porazil at PiKRON - mzapo_regs.h - definition of the MZ_APO design registers + mzapo_regs.h - definition of the MZ_APO design registers - (C) Copyright 2017 by Pavel Pisa - e-mail: pisa@cmp.felk.cvut.cz - homepage: http://cmp.felk.cvut.cz/~pisa - company: http://www.pikron.com/ - license: any combination of GPL, LGPL, MPL or BSD licenses + (C) Copyright 2017 by Pavel Pisa + e-mail: pisa@cmp.felk.cvut.cz + homepage: http://cmp.felk.cvut.cz/~pisa + company: http://www.pikron.com/ + license: any combination of GPL, LGPL, MPL or BSD licenses *******************************************************************/ @@ -16,14 +16,14 @@ #define MZAPO_REGS_H /* - Complete description of the educational MZ_APO design registers - can be found at + Complete description of the educational MZ_APO design registers + can be found at - https://cw.fel.cvut.cz/wiki/courses/b35apo/documentation/mz_apo/start + https://cw.fel.cvut.cz/wiki/courses/b35apo/documentation/mz_apo/start - The peripherals VHDL sources can be found in the repository + The peripherals VHDL sources can be found. in the repository - http://rtime.felk.cvut.cz/gitweb/fpga/zynq/canbench-sw.git/tree/refs/heads/microzed_apo:/system/ip + http://rtime.felk.cvut.cz/gitweb/fpga/zynq/canbench-sw.git/tree/refs/heads/microzed_apo:/system/ip */ diff --git a/main/obstacle.h b/main/obstacle.h index a8c69a1..0f8a205 100644 --- a/main/obstacle.h +++ b/main/obstacle.h @@ -1,8 +1,8 @@ /******************************************************************* - Header for player.c - File representing obstacle - authors: Pelech Ondrej, Pham Thi Thien Trang - date: May 2023 + Header for player.c + File representing obstacle + authors: Pelech Ondrej, Pham Thi Thien Trang + date: May 2023 *******************************************************************/ #ifndef __OBSTACLE__H__ @@ -23,7 +23,7 @@ #include "collision_rect.h" #include "projectile.h" -#define DISTANCE_INCREMENT 1 +#define DISTANCE_INCREMENT 1. #define OBSTACLE_LEFT 0 #define OBSTACLE_RIGHT 1 diff --git a/main/player.h b/main/player.h index e09c27a..a7f01ad 100644 --- a/main/player.h +++ b/main/player.h @@ -1,8 +1,8 @@ /******************************************************************* - Header for player.c - File representing player plane - authors: Pelech Ondrej, Pham Thi Thien Trang - date: May 2023 + Header for player.c + File representing player plane + authors: Pelech Ondrej, Pham Thi Thien Trang + date: May 2023 *******************************************************************/ #ifndef __PLAYER__H__ diff --git a/main/projectile.h b/main/projectile.h index e655408..245bc9b 100644 --- a/main/projectile.h +++ b/main/projectile.h @@ -1,8 +1,8 @@ /******************************************************************* - Header for projectile.c - File representing projectile - authors: Pelech Ondrej, Pham Thi Thien Trang - date: May 2023 + Header for projectile.c + File representing projectile + authors: Pelech Ondrej, Pham Thi Thien Trang + date: May 2023 *******************************************************************/ #ifndef __PROJECTILE_H__ diff --git a/main/serialize_lock.c b/main/serialize_lock.c index c859047..c05e791 100644 --- a/main/serialize_lock.c +++ b/main/serialize_lock.c @@ -9,45 +9,45 @@ int serialize_lock_fd = -1; int serialize_lock(int no_wait) { - int fd; - - fd = open(serialize_lock_fname, - O_RDWR | /* open the file for both read and write access */ - O_CREAT | /* create file if it does not already exist */ - O_CLOEXEC , /* close on execute */ - S_IRUSR | /* user permission: read */ - S_IWUSR ); /* user permission: write */ - - if (fd == -1) - return -1; - - if (no_wait) { - /* try to lock the "semaphore", if busy report that */ - if (lockf( fd, F_TLOCK, 0 ) == -1) { - close(fd); - return errno == EAGAIN? 0: -1; + int fd; + + fd = open(serialize_lock_fname, + O_RDWR | /* open the file for both read and write access */ + O_CREAT | /* create file if it does not already exist */ + O_CLOEXEC , /* close on execute */ + S_IRUSR | /* user permission: read */ + S_IWUSR ); /* user permission: write */ + + if (fd == -1) + return -1; + + if (no_wait) { + /* try to lock the "semaphore", if busy report that */ + if (lockf( fd, F_TLOCK, 0 ) == -1) { + close(fd); + return errno == EAGAIN? 0: -1; + } + } else { + /* lock the "semaphore", wait until available */ + if (lockf( fd, F_LOCK, 0 ) == -1) + return -1; } - } else { - /* lock the "semaphore", wait until available */ - if (lockf( fd, F_LOCK, 0 ) == -1) - return -1; - } - serialize_lock_fd = fd; + serialize_lock_fd = fd; - return 1; + return 1; } void serialize_unlock(void) { - int fd = serialize_lock_fd; + int fd = serialize_lock_fd; - if (fd == -1) - return; + if (fd == -1) + return; - /* close() automatically releases the file lock */ - /* so technically the call with F_ULOCK is not necessary */ - lockf( fd, F_ULOCK, 0 ); - close( fd ); - serialize_lock_fd = -1; + /* close() automatically releases the file lock */ + /* so technically the call with F_ULOCK is not necessary */ + lockf( fd, F_ULOCK, 0 ); + close( fd ); + serialize_lock_fd = -1; } diff --git a/main/text.h b/main/text.h index 74dfa1f..6ef53b3 100644 --- a/main/text.h +++ b/main/text.h @@ -1,8 +1,8 @@ /******************************************************************* - Header for text.c - File filled with utility methods - authors: Pelech Ondrej, Pham Thi Thien Trang - date: Mai 2023 + Header for text.c + File filled with utility methods + authors: Pelech Ondrej, Pham Thi Thien Trang + date: Mai 2023 *******************************************************************/ #ifndef __TEXT_H__ diff --git a/main/utils.h b/main/utils.h index 4ecdbdf..f792055 100644 --- a/main/utils.h +++ b/main/utils.h @@ -1,8 +1,8 @@ /******************************************************************* - Header for utils.c - File filled with utility methods - authors: Pelech Ondrej, Pham Thi Thien Trang - date: Mai 2023 + Header for utils.c + File filled with utility methods + authors: Pelech Ondrej, Pham Thi Thien Trang + date: Mai 2023 *******************************************************************/ #ifndef __UTILS_H__ -- GitLab