From a9764168227561b1b75d9ddf4ba443d47c5c92d7 Mon Sep 17 00:00:00 2001 From: saintfrater <13979047+saintfrater@users.noreply.github.com> Date: Wed, 11 Feb 2026 10:37:52 +0100 Subject: [PATCH] debug sliders --- src/boot.asm | 37 +++++++++++++++++++++++++++---------- src/drivers/gfx_cgam.asm | 27 +++++++++++++++------------ 2 files changed, 42 insertions(+), 22 deletions(-) diff --git a/src/boot.asm b/src/boot.asm index eb7c72f..1f84d2d 100644 --- a/src/boot.asm +++ b/src/boot.asm @@ -110,20 +110,37 @@ entrycode: call gui_init_system call build_interface -main_loop: - call gui_process_all - - GUI OBJ_GET_VAL, 5 ; slider - - ;GFX GOTOXY, 5, 20 - ;call print_word_hex - - jmp main_loop + call main_loop ; --- Callbacks (Fonctions appelées par le moteur) --- on_click_quit: hlt jmp on_click_quit + ret + +%define .oldval word [bp-2] +main_loop: + push bp + push bx + mov bp, sp + sub sp, 2 + + mov .oldval, -1 + + .loop: + call gui_process_all + GUI OBJ_GET_VAL, 6 ; slider + + cmp ax,.oldval + je .loop + + mov .oldval, ax + GFX RECTANGLE_FILL,0,148,50,166, PATTERN_WHITE + GFX GOTOXY, 8, 150 + + call print_word_hex + + jmp .loop build_interface: @@ -154,7 +171,7 @@ build_interface: GUI OBJ_CREATE, OBJ_TYPE_SLIDER, 400, 10, 16, 150 GUI OBJ_SET_MODE, ax, SLIDER_VERTICAL - GUI OBJ_SLIDER_SET_ATTR, ax, 10, 140, 140, 20 + GUI OBJ_SLIDER_SET_ATTR, ax, 0, 15, 15, 20 .mem_full: ret diff --git a/src/drivers/gfx_cgam.asm b/src/drivers/gfx_cgam.asm index ae2ea5f..b40ce60 100644 --- a/src/drivers/gfx_cgam.asm +++ b/src/drivers/gfx_cgam.asm @@ -774,7 +774,6 @@ cga_line_horizontal: %define .x2 word [bp+8] %define .y2 word [bp+10] %define .color byte [bp+12] - cga_line: push bp mov bp, sp @@ -815,7 +814,8 @@ cga_line: jge .calc_dx neg ax neg bx ; sx = -1 -.calc_dx: + + .calc_dx: mov .dx, ax ; save dx mov .sx, bx ; save sx @@ -826,7 +826,8 @@ cga_line: jge .calc_dy neg ax neg bx ; sy = -1 -.calc_dy: + + .calc_dy: mov .dy, ax ; save dy mov .sy, bx ; save sy @@ -839,7 +840,7 @@ cga_line: mov cx, .x1 mov dx, .y1 -.loop: + .loop: ; Plot pixel (CX, DX) push cx push dx @@ -850,10 +851,12 @@ cga_line: je .plot_black or byte [es:di], ah jmp .plot_next -.plot_black: + + .plot_black: not ah and byte [es:di], ah -.plot_next: + + .plot_next: pop dx pop cx @@ -863,7 +866,7 @@ cga_line: cmp dx, .y2 je .done -.step: + .step: mov ax, .err ; e2 = err shl ax, 1 ; e2 = 2*err @@ -875,7 +878,7 @@ cga_line: add .err, bx ; err += -dy add cx, .sx ; x += sx -.check_y: + .check_y: mov bx, .dx ; dx cmp ax, bx jge .loop ; if e2 >= dx, skip y step @@ -884,12 +887,12 @@ cga_line: add dx, .sy ; y += sy jmp .loop -.done: + .done: call cga_mouse_show add sp, 10 ; Libération variables locales jmp .exit -.do_horiz: + .do_horiz: push word [bp+12] ; color push word [bp+6] ; y push word [bp+8] ; x2 @@ -898,7 +901,7 @@ cga_line: add sp, 8 jmp .exit -.do_vert: + .do_vert: push word [bp+12] ; color push word [bp+10] ; y2 push word [bp+6] ; y1 @@ -906,7 +909,7 @@ cga_line: call cga_line_vertical add sp, 8 -.exit: + .exit: pop es popa pop bp