use new charset

This commit is contained in:
sfja 2025-03-31 15:23:24 +02:00
parent ab55a9ff16
commit 42246deb35

295
vm/main.c
View File

@ -183,8 +183,7 @@ void sdldevice_destroy(SdlDevice* device)
SDL_Quit();
}
extern const bool charset[][ch_height][ch_width];
extern const uint64_t charset_2[];
extern const uint64_t charset[];
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_x = 0; ch_x < ch_width; ++ch_x) {
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;
for (int px_y = 0; px_y < px_height; ++px_y) {
@ -473,18 +472,6 @@ int main(void)
// 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;
MemDrive drive;
@ -506,7 +493,7 @@ const char* __asan_default_options(void)
return "detect_leaks=0";
}
const uint64_t charset_2[] = {
const uint64_t charset[] = {
[' '] = 0x0000000000000000,
['A'] = 0x66667E66667E1800,
['B'] = 0x7C7E667C667E7800,
@ -535,279 +522,3 @@ const uint64_t charset_2[] = {
['Y'] = 0x181818183C666600,
['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 _ },
},
};