diff --git a/src/crt/crt0.S b/src/crt/crt0.S index 12b4c7ce1..3a7112997 100644 --- a/src/crt/crt0.S +++ b/src/crt/crt0.S @@ -37,6 +37,7 @@ .equ ti.PopRealO1, 0x0205DC .equ ti.MovFrOP1, 0x02032C .equ ti.ClrLCDFull, 0x020808 + .equ ti.boot.memclear, 0x0000B0 .section .header,"ax",@progbits @@ -173,24 +174,15 @@ ___libload_libs_ret: call ti.usb_DisableTimer di -.L.bss_zeroize: - ld hl, ___bss_len - ld bc, 0 - xor a, a - sbc hl, bc - jr z, .L.bss_done - ld de, ___bss_low - push de - ld (de), a - dec hl - sbc hl, bc - pop hl - jr z, .L.bss_done + ; zeroize bss + ld hl, ___bss_low ld bc, ___bss_len - dec bc - inc de - ldir -.L.bss_done: + push bc + push hl + ; void memclear(void *dst, size_t size) + call ti.boot.memclear + pop hl + pop hl res 1, (iy + 0x0D) ; no text buffer res 3, (iy + 0x4A) ; use first shadow buffer