--- lbbs/src/screen.c 2025/05/30 12:51:00 1.82 +++ lbbs/src/screen.c 2025/05/31 01:58:22 1.84 @@ -322,12 +322,20 @@ int display_data(const void *p_data, lon case KEY_TIMEOUT: goto cleanup; case KEY_HOME: + if (line_current - line < 0) // Reach top + { + break; + } line_current = 0; line = begin_line; max_lines = SCREEN_ROWS - 1; clrline(begin_line, SCREEN_ROWS); break; case KEY_END: + if (line_total < SCREEN_ROWS - 2) + { + break; + } line_current = line_total - (SCREEN_ROWS - 2); line = begin_line; max_lines = SCREEN_ROWS - 1;