use new charset
This commit is contained in:
parent
ab55a9ff16
commit
42246deb35
295
vm/main.c
295
vm/main.c
@ -183,8 +183,7 @@ void sdldevice_destroy(SdlDevice* device)
|
|||||||
SDL_Quit();
|
SDL_Quit();
|
||||||
}
|
}
|
||||||
|
|
||||||
extern const bool charset[][ch_height][ch_width];
|
extern const uint64_t charset[];
|
||||||
extern const uint64_t charset_2[];
|
|
||||||
|
|
||||||
void sdldevice_set_char(IODevice* io_device, uint16_t offset, uint8_t value)
|
void sdldevice_set_char(IODevice* io_device, uint16_t offset, uint8_t value)
|
||||||
{
|
{
|
||||||
@ -209,7 +208,7 @@ void sdldevice_set_char(IODevice* io_device, uint16_t offset, uint8_t value)
|
|||||||
for (int ch_y = 0; ch_y < ch_height; ++ch_y) {
|
for (int ch_y = 0; ch_y < ch_height; ++ch_y) {
|
||||||
for (int ch_x = 0; ch_x < ch_width; ++ch_x) {
|
for (int ch_x = 0; ch_x < ch_width; ++ch_x) {
|
||||||
bool ch
|
bool ch
|
||||||
= charset_2[value] >> (ch_y * ch_width + (ch_width - ch_x - 1))
|
= charset[value] >> (ch_y * ch_width + (ch_width - ch_x - 1))
|
||||||
& 1;
|
& 1;
|
||||||
|
|
||||||
for (int px_y = 0; px_y < px_height; ++px_y) {
|
for (int px_y = 0; px_y < px_height; ++px_y) {
|
||||||
@ -473,18 +472,6 @@ int main(void)
|
|||||||
|
|
||||||
// dump_program(program);
|
// dump_program(program);
|
||||||
|
|
||||||
for (int i = 'A'; i <= 'Z'; ++i) {
|
|
||||||
uint64_t ch = 0;
|
|
||||||
for (int y = 0; y < ch_height; ++y) {
|
|
||||||
for (int x = 0; x < ch_width; ++x) {
|
|
||||||
if (charset[i][y][x]) {
|
|
||||||
ch |= 1ul << (y * ch_width + (ch_height - x - 1));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
printf("['%c'] = 0x%lX,\n", i, ch);
|
|
||||||
}
|
|
||||||
|
|
||||||
// return 0;
|
// return 0;
|
||||||
|
|
||||||
MemDrive drive;
|
MemDrive drive;
|
||||||
@ -506,7 +493,7 @@ const char* __asan_default_options(void)
|
|||||||
return "detect_leaks=0";
|
return "detect_leaks=0";
|
||||||
}
|
}
|
||||||
|
|
||||||
const uint64_t charset_2[] = {
|
const uint64_t charset[] = {
|
||||||
[' '] = 0x0000000000000000,
|
[' '] = 0x0000000000000000,
|
||||||
['A'] = 0x66667E66667E1800,
|
['A'] = 0x66667E66667E1800,
|
||||||
['B'] = 0x7C7E667C667E7800,
|
['B'] = 0x7C7E667C667E7800,
|
||||||
@ -535,279 +522,3 @@ const uint64_t charset_2[] = {
|
|||||||
['Y'] = 0x181818183C666600,
|
['Y'] = 0x181818183C666600,
|
||||||
['Z'] = 0x7E7E30180C7E7E00,
|
['Z'] = 0x7E7E30180C7E7E00,
|
||||||
};
|
};
|
||||||
|
|
||||||
#define _ false,
|
|
||||||
#define t true,
|
|
||||||
|
|
||||||
const bool charset[][ch_height][ch_width] = {
|
|
||||||
[' '] = {
|
|
||||||
{ _ _ _ _ _ _ _ _ },
|
|
||||||
{ _ _ _ _ _ _ _ _ },
|
|
||||||
{ _ _ _ _ _ _ _ _ },
|
|
||||||
{ _ _ _ _ _ _ _ _ },
|
|
||||||
{ _ _ _ _ _ _ _ _ },
|
|
||||||
{ _ _ _ _ _ _ _ _ },
|
|
||||||
{ _ _ _ _ _ _ _ _ },
|
|
||||||
{ _ _ _ _ _ _ _ _ },
|
|
||||||
},
|
|
||||||
['A'] = {
|
|
||||||
{ _ _ _ _ _ _ _ _ },
|
|
||||||
{ _ _ _ t t _ _ _ },
|
|
||||||
{ _ t t t t t t _ },
|
|
||||||
{ _ t t _ _ t t _ },
|
|
||||||
{ _ t t _ _ t t _ },
|
|
||||||
{ _ t t t t t t _ },
|
|
||||||
{ _ t t _ _ t t _ },
|
|
||||||
{ _ t t _ _ t t _ },
|
|
||||||
},
|
|
||||||
['B'] = {
|
|
||||||
{ _ _ _ _ _ _ _ _ },
|
|
||||||
{ _ t t t t _ _ _ },
|
|
||||||
{ _ t t t t t t _ },
|
|
||||||
{ _ t t _ _ t t _ },
|
|
||||||
{ _ t t t t t _ _ },
|
|
||||||
{ _ t t _ _ t t _ },
|
|
||||||
{ _ t t t t t t _ },
|
|
||||||
{ _ t t t t t _ _ },
|
|
||||||
},
|
|
||||||
['C'] = {
|
|
||||||
{ _ _ _ _ _ _ _ _ },
|
|
||||||
{ _ _ t t t t _ _ },
|
|
||||||
{ _ t t t t t t _ },
|
|
||||||
{ _ t t _ _ _ _ _ },
|
|
||||||
{ _ t t _ _ _ _ _ },
|
|
||||||
{ _ t t _ _ _ _ _ },
|
|
||||||
{ _ t t t t t t _ },
|
|
||||||
{ _ _ t t t t _ _ },
|
|
||||||
},
|
|
||||||
['D'] = {
|
|
||||||
{ _ _ _ _ _ _ _ _ },
|
|
||||||
{ _ t t t t t _ _ },
|
|
||||||
{ _ t t t t t t _ },
|
|
||||||
{ _ t t _ _ t t _ },
|
|
||||||
{ _ t t _ _ t t _ },
|
|
||||||
{ _ t t _ _ t t _ },
|
|
||||||
{ _ t t t t t t _ },
|
|
||||||
{ _ t t t t t _ _ },
|
|
||||||
},
|
|
||||||
['E'] = {
|
|
||||||
{ _ _ _ _ _ _ _ _ },
|
|
||||||
{ _ t t t t t t _ },
|
|
||||||
{ _ t t t t t t _ },
|
|
||||||
{ _ t t _ _ _ _ _ },
|
|
||||||
{ _ t t t t t t _ },
|
|
||||||
{ _ t t _ _ _ _ _ },
|
|
||||||
{ _ t t t t t t _ },
|
|
||||||
{ _ t t t t t t _ },
|
|
||||||
},
|
|
||||||
['F'] = {
|
|
||||||
{ _ _ _ _ _ _ _ _ },
|
|
||||||
{ _ t t t t t t _ },
|
|
||||||
{ _ t t t t t t _ },
|
|
||||||
{ _ t t _ _ _ _ _ },
|
|
||||||
{ _ t t t t _ _ _ },
|
|
||||||
{ _ t t t t _ _ _ },
|
|
||||||
{ _ t t _ _ _ _ _ },
|
|
||||||
{ _ t t _ _ _ _ _ },
|
|
||||||
},
|
|
||||||
['G'] = {
|
|
||||||
{ _ _ _ _ _ _ _ _ },
|
|
||||||
{ _ t t t t t t _ },
|
|
||||||
{ _ t t t t t t _ },
|
|
||||||
{ _ t t _ _ _ _ _ },
|
|
||||||
{ _ t t _ t t t _ },
|
|
||||||
{ _ t t _ _ t t _ },
|
|
||||||
{ _ t t t t t t _ },
|
|
||||||
{ _ t t t t t t _ },
|
|
||||||
},
|
|
||||||
['H'] = {
|
|
||||||
{ _ _ _ _ _ _ _ _ },
|
|
||||||
{ _ t t _ _ t t _ },
|
|
||||||
{ _ t t _ _ t t _ },
|
|
||||||
{ _ t t t t t t _ },
|
|
||||||
{ _ t t t t t t _ },
|
|
||||||
{ _ t t _ _ t t _ },
|
|
||||||
{ _ t t _ _ t t _ },
|
|
||||||
{ _ t t _ _ t t _ },
|
|
||||||
},
|
|
||||||
['I'] = {
|
|
||||||
{ _ _ _ _ _ _ _ _ },
|
|
||||||
{ _ t t t t t t _ },
|
|
||||||
{ _ t t t t t t _ },
|
|
||||||
{ _ _ _ t t _ _ _ },
|
|
||||||
{ _ _ _ t t _ _ _ },
|
|
||||||
{ _ _ _ t t _ _ _ },
|
|
||||||
{ _ t t t t t t _ },
|
|
||||||
{ _ t t t t t t _ },
|
|
||||||
},
|
|
||||||
['J'] = {
|
|
||||||
{ _ _ _ _ _ _ _ _ },
|
|
||||||
{ _ t t t t t t _ },
|
|
||||||
{ _ t t t t t t _ },
|
|
||||||
{ _ _ _ _ _ t t _ },
|
|
||||||
{ _ _ _ _ _ t t _ },
|
|
||||||
{ _ t t _ _ t t _ },
|
|
||||||
{ _ t t t t t t _ },
|
|
||||||
{ _ _ t t t t _ _ },
|
|
||||||
},
|
|
||||||
['K'] = {
|
|
||||||
{ _ _ _ _ _ _ _ _ },
|
|
||||||
{ _ t t _ _ t t _ },
|
|
||||||
{ _ t t _ _ t t _ },
|
|
||||||
{ _ t t _ t t t _ },
|
|
||||||
{ _ t t t t t _ _ },
|
|
||||||
{ _ t t t t t _ _ },
|
|
||||||
{ _ t t _ t t t _ },
|
|
||||||
{ _ t t _ _ t t _ },
|
|
||||||
},
|
|
||||||
['L'] = {
|
|
||||||
{ _ _ _ _ _ _ _ _ },
|
|
||||||
{ _ t t _ _ _ _ _ },
|
|
||||||
{ _ t t _ _ _ _ _ },
|
|
||||||
{ _ t t _ _ _ _ _ },
|
|
||||||
{ _ t t _ _ _ _ _ },
|
|
||||||
{ _ t t _ _ _ _ _ },
|
|
||||||
{ _ t t t t t t _ },
|
|
||||||
{ _ t t t t t t _ },
|
|
||||||
},
|
|
||||||
['M'] = {
|
|
||||||
{ _ _ _ _ _ _ _ _ },
|
|
||||||
{ t t t _ _ t t t },
|
|
||||||
{ t t t t t t t t },
|
|
||||||
{ t t _ t t _ t t },
|
|
||||||
{ t t _ _ _ _ t t },
|
|
||||||
{ t t _ _ _ _ t t },
|
|
||||||
{ t t _ _ _ _ t t },
|
|
||||||
{ t t _ _ _ _ t t },
|
|
||||||
},
|
|
||||||
['N'] = {
|
|
||||||
{ _ _ _ _ _ _ _ _ },
|
|
||||||
{ _ t t _ _ t t _ },
|
|
||||||
{ _ t t t _ t t _ },
|
|
||||||
{ _ t t t t t t _ },
|
|
||||||
{ _ t t _ t t t _ },
|
|
||||||
{ _ t t _ _ t t _ },
|
|
||||||
{ _ t t _ _ t t _ },
|
|
||||||
{ _ t t _ _ t t _ },
|
|
||||||
},
|
|
||||||
['O'] = {
|
|
||||||
{ _ _ _ _ _ _ _ _ },
|
|
||||||
{ _ _ t t t t _ _ },
|
|
||||||
{ _ t t _ _ t t _ },
|
|
||||||
{ _ t t _ _ t t _ },
|
|
||||||
{ _ t t _ _ t t _ },
|
|
||||||
{ _ t t _ _ t t _ },
|
|
||||||
{ _ t t _ _ t t _ },
|
|
||||||
{ _ _ t t t t _ _ },
|
|
||||||
},
|
|
||||||
['P'] = {
|
|
||||||
{ _ _ _ _ _ _ _ _ },
|
|
||||||
{ _ t t t t t _ _ },
|
|
||||||
{ _ t t t t t _ _ },
|
|
||||||
{ _ t t _ _ t t _ },
|
|
||||||
{ _ t t t t t t _ },
|
|
||||||
{ _ t t t t t _ _ },
|
|
||||||
{ _ t t _ _ _ _ _ },
|
|
||||||
{ _ t t _ _ _ _ _ },
|
|
||||||
},
|
|
||||||
['Q'] = {
|
|
||||||
{ _ _ _ _ _ _ _ _ },
|
|
||||||
{ _ _ t t t t _ _ },
|
|
||||||
{ _ t t t t t t _ },
|
|
||||||
{ _ t t _ _ t t _ },
|
|
||||||
{ _ t t _ _ t t _ },
|
|
||||||
{ _ t t _ t t t _ },
|
|
||||||
{ _ t t t t t t _ },
|
|
||||||
{ _ _ t t t t t t },
|
|
||||||
},
|
|
||||||
['R'] = {
|
|
||||||
{ _ _ _ _ _ _ _ _ },
|
|
||||||
{ _ t t t t t _ _ },
|
|
||||||
{ _ t t t t t t _ },
|
|
||||||
{ _ t t _ _ t t _ },
|
|
||||||
{ _ t t t t t t _ },
|
|
||||||
{ _ t t t t t _ _ },
|
|
||||||
{ _ t t _ t t _ _ },
|
|
||||||
{ _ t t _ _ t t _ },
|
|
||||||
},
|
|
||||||
['S'] = {
|
|
||||||
{ _ _ _ _ _ _ _ _ },
|
|
||||||
{ _ _ t t t t _ _ },
|
|
||||||
{ _ t t _ _ t t _ },
|
|
||||||
{ _ t t _ _ _ _ _ },
|
|
||||||
{ _ _ t t t t _ _ },
|
|
||||||
{ _ _ _ _ _ t t _ },
|
|
||||||
{ _ t t _ _ t t _ },
|
|
||||||
{ _ _ t t t t _ _ },
|
|
||||||
},
|
|
||||||
['T'] = {
|
|
||||||
{ _ _ _ _ _ _ _ _ },
|
|
||||||
{ _ t t t t t t _ },
|
|
||||||
{ _ t t t t t t _ },
|
|
||||||
{ _ _ _ t t _ _ _ },
|
|
||||||
{ _ _ _ t t _ _ _ },
|
|
||||||
{ _ _ _ t t _ _ _ },
|
|
||||||
{ _ _ _ t t _ _ _ },
|
|
||||||
{ _ _ _ t t _ _ _ },
|
|
||||||
},
|
|
||||||
['U'] = {
|
|
||||||
{ _ _ _ _ _ _ _ _ },
|
|
||||||
{ _ t t _ _ t t _ },
|
|
||||||
{ _ t t _ _ t t _ },
|
|
||||||
{ _ t t _ _ t t _ },
|
|
||||||
{ _ t t _ _ t t _ },
|
|
||||||
{ _ t t _ _ t t _ },
|
|
||||||
{ _ t t t t t t _ },
|
|
||||||
{ _ _ t t t t _ _ },
|
|
||||||
},
|
|
||||||
['V'] = {
|
|
||||||
{ _ _ _ _ _ _ _ _ },
|
|
||||||
{ _ t t _ _ t t _ },
|
|
||||||
{ _ t t _ _ t t _ },
|
|
||||||
{ _ t t _ _ t t _ },
|
|
||||||
{ _ t t _ _ t t _ },
|
|
||||||
{ _ t t t t t t _ },
|
|
||||||
{ _ _ t t t t _ _ },
|
|
||||||
{ _ _ _ t t _ _ _ },
|
|
||||||
},
|
|
||||||
['W'] = {
|
|
||||||
{ _ _ _ _ _ _ _ _ },
|
|
||||||
{ t t _ _ _ _ t t },
|
|
||||||
{ t t _ _ _ _ t t },
|
|
||||||
{ t t _ _ _ _ t t },
|
|
||||||
{ t t _ t t _ t t },
|
|
||||||
{ t t _ t t _ t t },
|
|
||||||
{ t t t t t t t t },
|
|
||||||
{ t t t _ _ t t t },
|
|
||||||
},
|
|
||||||
['X'] = {
|
|
||||||
{ _ _ _ _ _ _ _ _ },
|
|
||||||
{ _ t t _ _ t t _ },
|
|
||||||
{ _ t t _ _ t t _ },
|
|
||||||
{ _ _ t t t t _ _ },
|
|
||||||
{ _ _ t t t t _ _ },
|
|
||||||
{ _ t t _ _ t t _ },
|
|
||||||
{ _ t t _ _ t t _ },
|
|
||||||
{ _ t t _ _ t t _ },
|
|
||||||
},
|
|
||||||
['Y'] = {
|
|
||||||
{ _ _ _ _ _ _ _ _ },
|
|
||||||
{ _ t t _ _ t t _ },
|
|
||||||
{ _ t t _ _ t t _ },
|
|
||||||
{ _ _ t t t t _ _ },
|
|
||||||
{ _ _ _ t t _ _ _ },
|
|
||||||
{ _ _ _ t t _ _ _ },
|
|
||||||
{ _ _ _ t t _ _ _ },
|
|
||||||
{ _ _ _ t t _ _ _ },
|
|
||||||
},
|
|
||||||
['Z'] = {
|
|
||||||
{ _ _ _ _ _ _ _ _ },
|
|
||||||
{ _ t t t t t t _ },
|
|
||||||
{ _ t t t t t t _ },
|
|
||||||
{ _ _ _ _ t t _ _ },
|
|
||||||
{ _ _ _ t t _ _ _ },
|
|
||||||
{ _ _ t t _ _ _ _ },
|
|
||||||
{ _ t t t t t t _ },
|
|
||||||
{ _ t t t t t t _ },
|
|
||||||
},
|
|
||||||
};
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user