TUI Framework

NitroVISION v1.0

A TurboVision-inspired text user interface framework for embedded systems. Build professional console applications with windows, dialogs, menus, and widgets.

VT100
Compatible
16
Widget Types
ANSI
Colors
Nitro Debugger v1.2 - main.c [STM32F407VG]
File Edit View Debug Breakpoints Peripherals Window Help
▶ Run ⏸ Halt ⤵ Step ↘ Into ↗ Out ↻ Reset 168 MHz • SWD 4MHz
[ ] CPU Registers
×
R00x20000100
R10x000012B5
R20x40020C00
R30x00000001
R40x08004000
R50x00000040
SP0x2001FFD0
LR0x08001A4D
PC0x08001B72
xPSR N=0 Z=0 C=1 V=0
[ ] Memory @ 0x20000100
×
0x2000010048 65 6C 6C 6F 20 41 52Hello AR
0x200001084D 00 00 00 00 00 00 00M.......
0x20000110B5 12 00 00 00 0C 02 40µ......@
[ ] Call Stack
×
► main+0x7208001B72
UART_SendBuffer08001A4C
HAL_UART_Transmit08003E20
Reset_Handler080001C0
[ ] Watch
×
counteruint32_t4789
bufferuint8_t*0x20000100
lensize_t64
[■] Disassembly - main()
×
45: counter++;
0x08001B684C0ALDRR4, [PC, #40]
0x08001B6A6820LDRR0, [R4]
0x08001B6C1C40ADDSR0, R0, #1
0x08001B6E6020STRR0, [R4]
46: GPIOD->ODR ^= GPIO_PIN_12;
0x08001B724D08LDRR5, [PC, #32]; GPIOD
0x08001B746969LDRR1, [R5, #0x14]; ODR
0x08001B76F481EOR.WR1, R1, #0x1000
0x08001B7A6169STRR1, [R5, #0x14]
[ ] Breakpoints
×
main.c:46
uart.c:112
stm32f4xx_hal.c
● HALTED Breakpoint hit @ 0x08001B72 Flash: 1MB RAM: 192KB F5=Run F10=Step F11=Into F9=Breakpoint

Build It With NitroVISION

arm_debugger.c
// Nitro Debugger - Built with NitroVISION TUI Framework
NV_Init(UART_VT100, 115200);

// Main debugger window (80x24 terminal)
NV_Window* dbg = NV_CreateWindow("Nitro Debugger v1.2", 0, 0, 80, 24);

// Register panel (left side)
NV_Panel* regs = NV_AddPanel(dbg, "Registers", 0, 2, 28, 14);
NV_AddTable(regs, regTable, 4, 16);  // R0-R15 + PSR

// Disassembly panel (right side)
NV_Panel* disasm = NV_AddPanel(dbg, "Disassembly", 29, 2, 50, 14);
NV_AddListBox(disasm, asmList, 7, onAsmSelect);

// Memory view panel (bottom)
NV_Panel* mem = NV_AddPanel(dbg, "Memory", 0, 17, 80, 4);
NV_AddHexView(mem, 0x20000100, 32);

// Status bar & menu
NV_AddMenu(dbg, debugMenu);  // File, Edit, View, Debug...
NV_AddStatusBar(dbg, "HALTED | Core: Cortex-M4 | F5=Run F10=Step");

// Bind keyboard shortcuts
NV_BindKey(NV_KEY_F5, onRun);
NV_BindKey(NV_KEY_F10, onStepOver);
NV_BindKey(NV_KEY_F11, onStepInto);

NV_Run();  // Start event loop

TUI Framework Features

Windows & Dialogs

Create movable, resizable windows with title bars, close buttons, and shadow effects.

Menus & Toolbars

Pull-down menus, context menus, and customizable toolbars with keyboard shortcuts.

Rich Widget Set

Buttons, labels, inputs, checkboxes, radio buttons, lists, progress bars, and more.

VT100/ANSI Output

Standard escape sequences for maximum terminal compatibility. Works with any serial console.

Keyboard Navigation

Full keyboard support with Tab navigation, hotkeys, and arrow key movement.

Event-Driven

Message-based event system with callbacks for user interactions and system events.

Widget Types

NV_WindowNV_DialogNV_MenuNV_Button NV_LabelNV_InputNV_CheckboxNV_Radio NV_ListBoxNV_ComboBoxNV_ProgressNV_Gauge NV_TableNV_TreeNV_StatusBarNV_ScrollBar

Build professional interfaces with NitroVISION

Create powerful text-based UIs for your embedded applications.

Contact SalesBack to Home