1
0
mirror of https://github.com/sehugg/8bitworkshop.git synced 2024-12-11 02:49:22 +00:00
8bitworkshop/presets/coleco/text.c

43 lines
1.0 KiB
C
Raw Normal View History

2019-12-03 04:16:11 +00:00
/*
This is a demonstration of the TMS9928A's
40 x 24 monochrome text mode.
*/
#include <cv.h>
#include <cvu.h>
2017-05-02 13:09:53 +00:00
2019-08-19 14:24:22 +00:00
#include "common.h"
//#link "common.c"
2020-07-01 02:14:33 +00:00
//#link "fonts.s"
2017-05-02 13:09:53 +00:00
void setup_text_mode() {
2019-12-03 04:16:11 +00:00
// set screen mode to text
2017-05-02 13:09:53 +00:00
cv_set_screen_mode(CV_SCREENMODE_TEXT);
2019-12-03 04:16:11 +00:00
// set image table address, which defines grid of characters
cv_set_image_table(IMAGE);
2019-12-03 04:16:11 +00:00
// set pattern table address, which defines character graphics
cv_set_character_pattern_t(PATTERN);
2019-12-03 04:16:11 +00:00
// clear VRAM to all zeroes
cvu_vmemset(0, 0, 0x4000);
2019-12-03 04:16:11 +00:00
// copy default character set from ROM to VRAM
2019-08-19 14:24:22 +00:00
copy_default_character_set();
2017-05-02 13:09:53 +00:00
}
void show_text() {
2019-12-03 04:16:11 +00:00
// set background and foreground colors
2017-05-02 13:09:53 +00:00
cv_set_colors(CV_COLOR_LIGHT_GREEN, CV_COLOR_BLACK);
2019-12-03 04:16:11 +00:00
// fill image table with '.' characters
cvu_vmemset(IMAGE, '.', 40*24);
2019-12-03 04:16:11 +00:00
// draw message at row 0, column 1
cvu_memtovmemcpy(IMAGE + 1, "Greetings Professor Falken", 26);
// turn on display
2017-05-02 13:09:53 +00:00
cv_set_screen_active(true);
}
void main() {
setup_text_mode();
show_text();
2019-12-03 04:16:11 +00:00
while (1); // infinite loop
2017-05-02 13:09:53 +00:00
}