From: Lukas Krickl Date: Sat, 23 Aug 2025 05:43:53 +0000 (+0200) Subject: strings: Added decimal printing X-Git-Url: https://git.krickl.dev/?a=commitdiff_plain;h=f5c61bb3b4e179d16af32c6b4c28f18b6e70e099;p=gbrg%2F.git strings: Added decimal printing --- diff --git a/src/strings.s b/src/strings.s index edb2302..d43a961 100644 --- a/src/strings.s +++ b/src/strings.s @@ -81,12 +81,58 @@ puts: jr puts REL @done: ret - + + ; counts how many times + ; a number fits into n + ; inputs: + ; a: a number + ; $1: factor + ; returns: + ; b: count +#macro putn_count +.beginscope + ld b, 0 +@again: + cp a, $1 + jr z, @done REL + jr c, @done REL + sub a, $1 + inc b + jr @again REL +@done: +.endscope +#endmacro + ; prints a number in decimal ; input: ; de: tile location ; a: the value putn: + putn_count 100 + ; print 100s if > 0 + push af + ld a, b + cp a, 0 + jr z, @skip_100s REL + add a, FONT_OFFSET+1 + ld [de], a + inc de +@skip_100s: + pop af + + putn_count 10 + ; print 10s if > 0 + push af + ld a, b + cp a, 0 + jr z, @skip_10s REL + add a, FONT_OFFSET+1 + ld [de], a + inc de +@skip_10s: + pop af + + ; print remainder add a, FONT_OFFSET+1 ld [de], a ret