Fixed left-side vram overflow with text, made install automatically along fxSDK.

This commit is contained in:
lephe 2016-12-22 23:08:44 +01:00
parent 2564096a13
commit 9a3433c52a
7 changed files with 22 additions and 20 deletions

View File

@ -50,8 +50,11 @@ obj-std-spec =
# Configuration files
config = gcc.cfg
# Target folder
folder := $(shell fxsdk --folder)
ifndef folder
folder = /usr/share/fxsdk
$(error "Could not get the fxSDK storage folder. Did you install fxSDK \
properly?")
endif

6
TODO
View File

@ -1,7 +1,6 @@
Bugs to fix:
- Left-vram overflow when rendering text
- A few key hits ignored after leaving the application (could not reproduce)
- Lost keyboard control at startup (could not reproduce)
- A few key hits ignored after leaving the application (could not reproduce)
- Lost keyboard control at startup (could not reproduce)
Simple improvements:
- bopti: Monochrome bitmaps blending modes
@ -12,7 +11,6 @@ Simple improvements:
- time: Compute CLOCKS_PER_SEC
- core: Add VBR handlers debugging information (if possible)
- core: Implement all callbacks and a complete user API
- project: Enhance Makefile install_lib rules
Modules to implement:
- Serial communication

View File

@ -403,20 +403,24 @@ void main_menu(int *category, int *app)
switch(getkey())
{
case KEY_F1:
if(!tab) break;
tab = 0;
index = 0;
break;
case KEY_F2:
if(tab == 1) break;
tab = 1;
index = 0;
scroll = 0;
break;
case KEY_F3:
if(tab == 2) break;
tab = 2;
index = 0;
scroll = 0;
break;
case KEY_F4:
if(tab == 3) break;
tab = 3;
index = 0;
scroll = 0;

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 12 KiB

View File

@ -113,7 +113,7 @@ void test_tales(void)
for(int j = 0; j < 16; j++) str[j] = 32 + (i << 4) + j;
str[16] = 0;
gtext(2, 2 + i * height, str);
gtext(-10, 2 + i * height, str);
}
gimage(0, 56, &res_opt_tales);

View File

@ -35,8 +35,8 @@ static void timing_timer(void)
static void timing_start(void)
{
timer_start(TIMER_USER, 16, Clock_Hz, timing_timer, 0);
rtc_cb_edit(cb_id, RTCFreq_16Hz, timing_rtc);
timer_start(TIMER_USER, 64, Clock_Hz, timing_timer, 0);
rtc_cb_edit(cb_id, RTCFreq_64Hz, timing_rtc);
elapsed_timer = 0;
elapsed_rtc = 0;
@ -177,20 +177,20 @@ static void draw(int tab)
dimage(64, 0, &res_clock_7305);
getFreq(buffer, conf.RTCCLK_f);
small_text(84, 14, buffer, 1);
small_text(82, 13, buffer, 1);
sprintf(buffer, "*%d", conf.FLL);
small_text(84, 25, buffer, 1);
small_text(82, 23, buffer, 1);
sprintf(buffer, "*%d", conf.PLL);
small_text(84, 36, buffer, 1);
small_text(82, 33, buffer, 1);
sprintf(buffer, "/%d", conf.Bphi_div1);
small_text(89, 43, buffer, 0);
small_text(87, 40, buffer, 0);
sprintf(buffer, "/%d", conf.Iphi_div1);
small_text(89, 50, buffer, 0);
small_text(87, 47, buffer, 0);
sprintf(buffer, "/%d", conf.Pphi_div1);
small_text(89, 57, buffer, 0);
small_text(87, 54, buffer, 0);
}
}
else
@ -216,7 +216,7 @@ static void draw(int tab)
if(timer <= rtc) ratio = (10000 * timer) / rtc;
else ratio = (10000 * rtc) / timer;
print(12, 5, "%d.%02d %%", ratio / 100, ratio % 100);
print(12, 5, "%d.%02d%%", ratio / 100, ratio % 100);
}
else locate(12, 5, "...");
}
@ -238,14 +238,11 @@ void test_timer(void)
{
int tab = 0;
clock_measure();
clock_measure_end();
conf = clock_config();
elapsed_timer = -1;
elapsed_rtc = -1;
cb_id = rtc_cb_add(RTCFreq_16Hz, timing_start, 0);
cb_id = rtc_cb_add(RTCFreq_64Hz, timing_start, 0);
text_configure(NULL, Color_Black);

View File

@ -253,7 +253,7 @@ void render(int x, int y, const char *str, void (*op)(OPERATE_ARGS))
// When operators are full, updating the video ram and
// preparing the operators for another row.
(*op)(operators, height, x, y);
if(x >= 0) (*op)(operators, height, x, y);
x += 32;
if(x > 96) break;