From 15c993517242a9f6b37a4942991d22ed0942fd23 Mon Sep 17 00:00:00 2001 From: unknown <71151164+ZERICO2005@users.noreply.github.com> Date: Sat, 30 Aug 2025 16:31:18 -0600 Subject: [PATCH 1/2] removed the hardware specific 0xE40000 address from bzero, and disabled linking (v)snprintf and (v)asprintf to boot_(v)snprintf and boot_(v)asprintf --- src/libc/asprintf.src | 4 ++++ src/libc/bzero.src | 31 +++++++++++++++++++++++++++++++ src/libc/snprintf.src | 4 ++++ 3 files changed, 39 insertions(+) diff --git a/src/libc/asprintf.src b/src/libc/asprintf.src index 1e6072127..dc171fea8 100644 --- a/src/libc/asprintf.src +++ b/src/libc/asprintf.src @@ -15,6 +15,8 @@ _vasprintf := __vasprintf_c else +if 0 + _asprintf := _boot_asprintf _vasprintf := _boot_vasprintf @@ -22,3 +24,5 @@ _vasprintf := _boot_vasprintf extern _boot_vasprintf end if + +end if diff --git a/src/libc/bzero.src b/src/libc/bzero.src index ed5acd1c7..6114b7039 100644 --- a/src/libc/bzero.src +++ b/src/libc/bzero.src @@ -4,6 +4,10 @@ public _bzero +if 0 + +; uses the hardware specific $E40000 memory location + ; void bzero(void* buf, size_t n) _bzero: ld hl, 6 @@ -18,3 +22,30 @@ _bzero: ld hl, $E40000 ; large region of all zeros on the Ti84CE ldir ret + +else + +; makes no hardware assumptions + +; void bzero(void* buf, size_t n) +_bzero: + ld hl, 6 + add hl, sp + ld bc, (hl) + dec hl + dec hl + dec hl + ld hl, (hl) + cpi + add hl, bc + ret c + dec hl + ld (hl), 0 + ret po + push hl + pop de + dec de + lddr + ret + +end if diff --git a/src/libc/snprintf.src b/src/libc/snprintf.src index 9a287ade7..1a3ba55f1 100644 --- a/src/libc/snprintf.src +++ b/src/libc/snprintf.src @@ -15,6 +15,8 @@ _vsnprintf := __vsnprintf_c else +if 0 + _snprintf := _boot_snprintf _vsnprintf := _boot_vsnprintf @@ -22,3 +24,5 @@ _vsnprintf := _boot_vsnprintf extern _boot_vsnprintf end if + +end if From 14f577ce263bb00528a51fafb107dd8455e687f3 Mon Sep 17 00:00:00 2001 From: unknown <71151164+ZERICO2005@users.noreply.github.com> Date: Wed, 3 Sep 2025 12:59:51 -0600 Subject: [PATCH 2/2] added the __TICE__ ASM define to enable/disable hardware specific code --- src/libc/asprintf.src | 2 +- src/libc/bzero.src | 2 +- src/libc/snprintf.src | 2 +- src/makefile.mk | 1 + 4 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/libc/asprintf.src b/src/libc/asprintf.src index dc171fea8..1bd8e3b54 100644 --- a/src/libc/asprintf.src +++ b/src/libc/asprintf.src @@ -15,7 +15,7 @@ _vasprintf := __vasprintf_c else -if 0 +if defined __TICE__ _asprintf := _boot_asprintf _vasprintf := _boot_vasprintf diff --git a/src/libc/bzero.src b/src/libc/bzero.src index 6114b7039..e2c5a1ebb 100644 --- a/src/libc/bzero.src +++ b/src/libc/bzero.src @@ -4,7 +4,7 @@ public _bzero -if 0 +if defined __TICE__ ; uses the hardware specific $E40000 memory location diff --git a/src/libc/snprintf.src b/src/libc/snprintf.src index 1a3ba55f1..219768d4b 100644 --- a/src/libc/snprintf.src +++ b/src/libc/snprintf.src @@ -15,7 +15,7 @@ _vsnprintf := __vsnprintf_c else -if 0 +if defined __TICE__ _snprintf := _boot_snprintf _vsnprintf := _boot_vsnprintf diff --git a/src/makefile.mk b/src/makefile.mk index a0fd3c325..9e839f86c 100644 --- a/src/makefile.mk +++ b/src/makefile.mk @@ -267,6 +267,7 @@ FASMGFLAGS = \ -i $(call QUOTE_ARG,PREFER_OS_CRT := $(LDPREFER_OS_CRT)) \ -i $(call QUOTE_ARG,PREFER_OS_LIBC := $(LDPREFER_OS_LIBC)) \ -i $(call QUOTE_ARG,ALLOCATOR_$(ALLOCATOR) := 1) \ + -i $(call QUOTE_ARG,__TICE__ := 1) \ -i $(call QUOTE_ARG,include $(call FASMG_FILES,$(LINKER_SCRIPT))) \ -i $(call QUOTE_ARG,range .bss $$$(BSSHEAP_LOW) : $$$(BSSHEAP_HIGH)) \ -i $(call QUOTE_ARG,provide __stack = $$$(STACK_HIGH)) \