mdview2: HEX-режим (F4) — дамп оригинального файла; версия v1.0 (b1)
Новый модуль mdview2_hex.c (WITH_HEX в conf): формат ' 0x012340 │ 16×hex │ 16 print', 30 строк, один атрибут. - Дамп всегда ОРИГИНАЛЬНОГО файла (orig_file_phys), не активного буфера; ряд выровнен на 16 → один bank_read на ряд (не пересекает EMM-страницу), fb()/W3 не используются. - Printable по текущей кодировке: CP866 как есть, CP1251/KOI8 через g_remap, UTF-8 — глиф на позиции лид-байта (continuation → '.') через новый utf_cp_glyph(), выделенный из конвертера enc-модуля. - Навигация: ±16 / ±480 / Home / End; одна строка — аппаратный scroll() + подрисовка одного ряда (как MD/RAW); процент в статусе. - F4 — тумблер HEX ↔ прежний вид; F2 из HEX уводит в MD; позиция при всех переходах через view_pos/view_reanchor (map_off orig ↔ active). - F8 в HEX: hex-колонка неизменна, printable перерисовывается в новой кодировке; позиция не двигается. - Help: версия v1.0 (b1), строка F4. exe 25725 → 27893 (+2168). Проверено в MAME. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -145,6 +145,16 @@ void render_raw_status(void)
|
||||
}
|
||||
#endif /* WITH_RAW */
|
||||
|
||||
#if WITH_HEX
|
||||
/* HEX-вариант числовой части бара (peer к render_raw_status). */
|
||||
void render_hex_status(void)
|
||||
{
|
||||
textattr(ATTR_BAR);
|
||||
gotoxy(DIV1_X + 1, 0);
|
||||
bios_writeattr_until(" HEX", DIV2_X - DIV1_X - 1, ATTR_BAR, 0);
|
||||
}
|
||||
#endif /* WITH_HEX */
|
||||
|
||||
/* ---- Нижнее меню (строка 31) -------------------------------------- */
|
||||
|
||||
void render_menu(void)
|
||||
@@ -168,9 +178,13 @@ void render_menu(void)
|
||||
#if WITH_RAW
|
||||
if (g_ready) /* RAW доступен после постройки документа */
|
||||
put_str_attr(1 * 8 + 2, MENU_ROW, (g_view == VIEW_MD) ? "RAW" : "MD", ATTR_MENU_T);
|
||||
if (g_view != VIEW_MD) /* Wrap/Unwrap — только в RAW */
|
||||
if (VIEW_IS_RAW(g_view)) /* Wrap/Unwrap — только в RAW */
|
||||
put_str_attr(2 * 8 + 2, MENU_ROW,
|
||||
(g_view == VIEW_RAW_WRAP) ? "UnWrap" : "Wrap", ATTR_MENU_T);
|
||||
#endif
|
||||
#if WITH_HEX
|
||||
if (g_ready) /* HEX доступен после постройки документа */
|
||||
put_str_attr(3 * 8 + 2, MENU_ROW, (g_view == VIEW_HEX) ? "Back" : "Hex", ATTR_MENU_T);
|
||||
#endif
|
||||
if (g_f8_enabled) /* смена кодировки сейчас возможна */
|
||||
put_str_attr(7 * 8 + 2, MENU_ROW, "CodePg", ATTR_MENU_T);
|
||||
|
||||
Reference in New Issue
Block a user