git.y1.nz

gbdk-2020

GameBoy Development Kit
download: https://git.y1.nz/archives/gbdk.tar.gz
README | Files | Log | Refs | LICENSE

commit c549acdba1797bc3f787af619222065ceb06c347
parent 47f7e526fa66b6ee946d5df82cd3692d046b43a7
Author: toxa <untoxa@mail.ru>
Date:   Sun, 25 Oct 2020 21:37:00 +0300

itoa/ltoa were broken, my bad. definitely, we need this: https://github.com/Zal0/gbdk-2020/issues/66

Diffstat:
Mgbdk-lib/libc/asm/gbz80/itoa.s24+++++++++++++++---------
Mgbdk-lib/libc/asm/gbz80/ltoa.s39+++++++++++++++++++++++++++++----------
2 files changed, 44 insertions(+), 19 deletions(-)

diff --git a/gbdk-lib/libc/asm/gbz80/itoa.s b/gbdk-lib/libc/asm/gbz80/itoa.s @@ -131,45 +131,51 @@ _itoa:: pop BC push BC - ld DE, #((0x0f << 8) | '0') + ld DE, #'0' lda HL, 4(SP) ld A, (HL-) - and D + and #0x0f or A jr Z, 3$ add A, E + ld D, #1 ; make D nonzero ld (BC), A inc BC 3$: ld A, (HL) swap A - and D - or A + and #0x0f + add D jr Z, 4$ + sub D add A, E + ld D, #1 ; make D nonzero ld (BC), A inc BC 4$: ld A, (HL-) - and D - or A + and #0x0f + add D jr Z, 5$ + sub D add A, E + ld D, #1 ; make D nonzero ld (BC), A inc BC 5$: ld A, (HL) swap A - and D - or A + and #0x0f + add D jr Z, 6$ + sub D add A, E ld (BC), A inc BC 6$: ld A, (HL) - and D + and #0x0f add A, E ld (BC), A inc BC diff --git a/gbdk-lib/libc/asm/gbz80/ltoa.s b/gbdk-lib/libc/asm/gbz80/ltoa.s @@ -58,9 +58,9 @@ _ltoa:: lda HL, 4(SP) ld E, L ld D, H ; DE : ulong * - + call .ltoa - + pop BC ret @@ -74,10 +74,11 @@ _ltoa:: sub E ld D, A - ld A, H + ld A, (DE) add A, A pop DE - jr NC, 2$ + jr NC, .ultoa + 1$: push DE ld A, (DE) @@ -108,8 +109,8 @@ _ltoa:: ld A, #'-' ld (BC), A inc BC -2$: - call .ultoa + + call .ultoa dec DE ret @@ -141,7 +142,7 @@ _ltoa:: rra lda HL, 2(SP) rla - + ld A, (HL) adc A daa @@ -167,32 +168,50 @@ _ltoa:: jr NZ, 1$ pop BC - push BC + push BC ld DE, #((5 << 8) | '0') lda HL, 6(SP) + scf + ccf + 3$: + rl D ld A, (HL) swap A and #0x0f + bit 0, D + jr NZ, 6$ or A jr Z, 4$ +6$: add A, E ld (BC), A + set 0, D inc BC 4$: ld A, (HL-) and #0x0f + bit 0, D + jr NZ, 7$ or A jr Z, 5$ +7$: add A, E ld (BC), A - inc BC + set 0, D + inc BC 5$: + rr D dec D jr NZ, 3$ - + jr C, 8$ + + ld A, #'0' ; n == 0 + ld (BC), A + inc BC +8$: xor A ld (BC), A ; write trailing #0

This webpage is intended to be an accessible preview of this repository. To get a fuller picture, clone it and use the git CLI.