mdview2: percent на 16-битной арифметике (убрать __divulong)
calc_md_pct/calc_raw_pct тянули 32-битное деление __divulong (+__muluint2ulong) ради показа процента в статусе. Оба дают операнды ≤16 бит (≤18432 / ≤1024), переполняет только *100. Новый pct16() масштабирует оба вниз и считает долю циклом-вычитанием — 66 Б, НОЛЬ подтянутых арифм-хелперов. Точность ±1% (на границах точно), для индикатора прокрутки незаметно. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -137,6 +137,7 @@ extern uint8_t g_scratch_phys; /* scratch EMM-страница для wi
|
||||
char fb(uint32_t p); /* байт активного буфера (W3-маппинг) */
|
||||
void win_rest(uint8_t row, uint8_t col, uint8_t h, uint8_t w, uint8_t page, uint16_t off);
|
||||
void fill_row(uint8_t y, uint8_t attr);
|
||||
uint8_t pct16(uint16_t num, uint16_t den); /* num*100/den (0..100), 16-бит, без __divulong */
|
||||
uint32_t seg_off(uint16_t idx); /* offset исходника для логической строки idx */
|
||||
|
||||
/* ================================================================== *
|
||||
|
||||
Reference in New Issue
Block a user