From 4eac2a105e50ef076b49c933cbfaecb3bfd17860 Mon Sep 17 00:00:00 2001 From: Martin Preuss Date: Sat, 21 Mar 2026 08:29:18 +0100 Subject: [PATCH] gui2: added OBJ_SkipObjects --- avr/modules/lcd2/gui2/base/object.asm | 34 +++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/avr/modules/lcd2/gui2/base/object.asm b/avr/modules/lcd2/gui2/base/object.asm index b1d25b0..069e9cb 100644 --- a/avr/modules/lcd2/gui2/base/object.asm +++ b/avr/modules/lcd2/gui2/base/object.asm @@ -362,6 +362,40 @@ OBJ_GetChildAt_ret: ; @end + +; --------------------------------------------------------------------------- +; @routine OBJ_SkipObjects @global +; +; @param Y address of object +; @param R16 number of objects to skip +; @return CFLAG set, if found, cleared otherwise +; @return r19:r18 resulting object +; @clobbers r16 + +OBJ_SkipObjects: + push yl + push yh + tst r16 ; zero to skip, done + sec + breq OBJ_SkipObjects_ret +OBJ_SkipObjects_loop: + rcall OBJ_GetNext + brcc OBJ_SkipObjects_ret + dec r16 + breq OBJ_SkipObjects_done + mov yl, r18 + mov yh, r19 + rjmp OBJ_SkipObjects_loop +OBJ_SkipObjects_done: + sec +OBJ_SkipObjects_ret: + pop yh + pop yl + ret +; @end + + + ; --------------------------------------------------------------------------- ; @routine OBJ_AddChild @global ;