Make some drawing functions for drawing lines, and intelligently merge the lines using line merge characters, instead of adding each character manually.
Rework this:
void frame_draw() {
textcolor(WHITE);
bgcolor(BLUE);
clrscr();
unsigned char y = 0;
for (unsigned char x = 0; x < 79; x++) {
cputcxy(x, y, 0x40);
}
cputcxy(0, y, 0x70);
cputcxy(79, y, 0x6E);
y++;
cputcxy(0, y, 0x5d);
cputcxy(79, y, 0x5d);
y++;
for (unsigned char x = 0; x < 79; x++) {
cputcxy(x, y, 0x40);
}
cputcxy(0, y, 0x6B);
cputcxy(79, y, 0x73);
cputcxy(12, y, 0x72);
y++;
for (; y < 37; y++) {
cputcxy(0, y, 0x5D);
cputcxy(12, y, 0x5D);
cputcxy(79, y, 0x5D);
}
for (unsigned char x = 0; x < 79; x++) {
cputcxy(x, y, 0x40);
}
cputcxy(0, y, 0x6B);
cputcxy(79, y, 0x73);
cputcxy(12, y, 0x71);
y++;
for (; y < 41; y++) {
cputcxy(0, y, 0x5D);
cputcxy(79, y, 0x5D);
}
for (unsigned char x = 0; x < 79; x++) {
cputcxy(x, y, 0x40);
}
cputcxy(0, y, 0x6B);
cputcxy(79, y, 0x73);
cputcxy(10, y, 0x72);
cputcxy(20, y, 0x72);
cputcxy(30, y, 0x72);
cputcxy(40, y, 0x72);
cputcxy(50, y, 0x72);
cputcxy(60, y, 0x72);
cputcxy(70, y, 0x72);
cputcxy(79, y, 0x73);
y++;
for (; y < 55; y++) {
cputcxy(0, y, 0x5D);
cputcxy(79, y, 0x5D);
cputcxy(10, y, 0x5D);
cputcxy(20, y, 0x5D);
cputcxy(30, y, 0x5D);
cputcxy(40, y, 0x5D);
cputcxy(50, y, 0x5D);
cputcxy(60, y, 0x5D);
cputcxy(70, y, 0x5D);
}
for (unsigned char x = 0; x < 79; x++) {
cputcxy(x, y, 0x40);
}
cputcxy(0, y, 0x6B);
cputcxy(79, y, 0x73);
cputcxy(10, y, 0x5B);
cputcxy(20, y, 0x5B);
cputcxy(30, y, 0x5B);
cputcxy(40, y, 0x5B);
cputcxy(50, y, 0x5B);
cputcxy(60, y, 0x5B);
cputcxy(70, y, 0x5B);
y++;
for (; y < 59; y++) {
cputcxy(0, y, 0x5D);
cputcxy(79, y, 0x5D);
cputcxy(10, y, 0x5D);
cputcxy(20, y, 0x5D);
cputcxy(30, y, 0x5D);
cputcxy(40, y, 0x5D);
cputcxy(50, y, 0x5D);
cputcxy(60, y, 0x5D);
cputcxy(70, y, 0x5D);
}
for (unsigned char x = 0; x < 79; x++) {
cputcxy(x, y, 0x40);
}
cputcxy(0, y, 0x6D);
cputcxy(79, y, 0x7D);
cputcxy(10, y, 0x71);
cputcxy(20, y, 0x71);
cputcxy(30, y, 0x71);
cputcxy(40, y, 0x71);
cputcxy(50, y, 0x71);
cputcxy(60, y, 0x71);
cputcxy(70, y, 0x71);
cputcxy(79, y, 0x7D);
}
Make some drawing functions for drawing lines, and intelligently merge the lines using line merge characters, instead of adding each character manually.
Rework this: