6 #include "hwregs.h" /* XXX */
11 void draw_tile(int tid, int x, int y, int light);
12 void convert_tile_data(unsigned char *dest, const char *src);
14 static unsigned char test_tiles[2][TILE_W * TILE_H / 8 * NBPL];
15 static unsigned char tile_mask[TILE_W * TILE_H / 8 * NBPL];
22 convert_tile_data(test_tiles[i], test_tiles_cpix[i][0]);
24 convert_tile_data(tile_mask, tile_mask_cpix[0]);
30 draw_tile(0, 32, 16, 0);
34 void draw_tile(int tid, int x, int y, int light)
36 unsigned char *dest = bplptr[0] + (y * SCANSZ * NBPL) + x / 8;
37 unsigned char *src = test_tiles[tid];
41 REG32_BLTCON = BLTCON_USEA | BLTCON_USEB | BLTCON_USEC | BLTCON_USED |
43 REG32_BLTAFLWM = 0xffffffff;
46 REG_BLTCMOD = SCANSZ - TILE_W / 8;
47 REG_BLTDMOD = SCANSZ - TILE_W / 8;
48 REG32_BLTAPT = (intptr_t)tile_mask;
49 REG32_BLTBPT = (intptr_t)src;
50 REG32_BLTCPT = (intptr_t)dest;
51 REG32_BLTDPT = (intptr_t)dest;
52 REG_BLTSIZE = BLTSIZE(TILE_W, TILE_H * NBPL);
55 static inline int charpix_color(char c)
76 #define TILE_SCANSZ (TILE_W / 8)
77 void convert_tile_data(unsigned char *dest, const char *src)
80 unsigned char *bptr[NBPL];
82 for(i=0; i<NBPL; i++) {
83 bptr[i] = dest + TILE_SCANSZ * i;
86 for(i=0; i<TILE_H; i++) {
87 for(j=0; j<TILE_W; j++) {
88 int col = charpix_color(*src++);
90 for(k=0; k<NBPL; k++) {
91 *bptr[k] = (*bptr[k] << 1) | (col & 1);
100 for(j=0; j<NBPL; j++) {
101 bptr[j] += TILE_SCANSZ * (NBPL - 1);