From 2889950615041e506de9d2bcc691a262d514e28d Mon Sep 17 00:00:00 2001 From: unknown <71151164+ZERICO2005@users.noreply.github.com> Date: Tue, 9 Sep 2025 13:29:06 -0600 Subject: [PATCH 1/2] cleaned up code for ineg/inot and added timings --- src/crt/ineg.src | 10 +++------- src/crt/ineg_fast.src | 3 +++ src/crt/inot.src | 10 +++------- src/crt/inot_fast.src | 3 +++ 4 files changed, 12 insertions(+), 14 deletions(-) diff --git a/src/crt/ineg.src b/src/crt/ineg.src index 3e4b4e2b9..227f77985 100644 --- a/src/crt/ineg.src +++ b/src/crt/ineg.src @@ -10,23 +10,19 @@ __ineg := 000160h else __ineg: -if 0 - push de -end if +; UHL = -UHL +; CC: 10*r(PC)+3*r(SPL)+1 +; CC: 9 bytes | 10F + 3R + 1 add hl, de ; uhl=UHL+UDE ex de, hl ; ude=UHL+UDE, uhl=UDE or a, a sbc hl, de ; uhl=UDE-(UHL+UDE) ; =UDE-UHL-UDE ; =-UHL -if 0 - pop de -else ex de, hl ; ude=-UHL, uhl=UHL+UDE add hl, de ; uhl=UHL+UDE+-UHL ; =UDE ex de, hl ; ude=UDE, uhl=-UHL -end if ret end if diff --git a/src/crt/ineg_fast.src b/src/crt/ineg_fast.src index 0527ff957..213c16368 100644 --- a/src/crt/ineg_fast.src +++ b/src/crt/ineg_fast.src @@ -3,6 +3,9 @@ section .text public __ineg_fast __ineg_fast: +; UHL = -UHL +; CC: 7*r(PC)+3*r(SPL)+1 +; CC: 6 bytes | 7F + 3R + 1 add hl, de ; uhl=UHL+UDE ex de, hl ; ude=UHL+UDE, uhl=UDE or a, a diff --git a/src/crt/inot.src b/src/crt/inot.src index 864ce30bc..bba21948d 100644 --- a/src/crt/inot.src +++ b/src/crt/inot.src @@ -10,9 +10,9 @@ __inot := 000164h else __inot: -if 0 - push de -end if +; UHL = ~UHL +; CC: 11*r(PC)+3*r(SPL)+1 +; CC: 10 bytes | 11F + 3R + 1 add hl, de ; uhl=UHL+UDE ex de, hl ; ude=UHL+UDE, uhl=UDE scf @@ -20,9 +20,6 @@ end if ; =UDE-UHL-UDE-1 ; =-UHL-1 ; =~UHL -if 0 - pop de -else ex de, hl ; ude=~UHL, uhl=UHL+UDE add hl, de ; uhl=UHL+UDE+~UHL ; =UHL+UDE+(-UHL-1) @@ -30,7 +27,6 @@ else ; =UDE-1 inc hl ; uhl=UDE ex de, hl ; ude=UDE, uhl=~UHL -end if ret end if diff --git a/src/crt/inot_fast.src b/src/crt/inot_fast.src index 3c32bf605..de2458c33 100644 --- a/src/crt/inot_fast.src +++ b/src/crt/inot_fast.src @@ -3,6 +3,9 @@ section .text public __inot_fast __inot_fast: +; UHL = ~UHL +; CC: 7*r(PC)+3*r(SPL)+1 +; CC: 6 bytes | 7F + 3R + 1 add hl, de ; uhl=UHL+UDE ex de, hl ; ude=UHL+UDE, uhl=UDE scf From 60fe83a2e3fd6eef789aa3351afcab0182b8fb8b Mon Sep 17 00:00:00 2001 From: unknown <71151164+ZERICO2005@users.noreply.github.com> Date: Tue, 9 Sep 2025 10:58:07 -0600 Subject: [PATCH 2/2] moved (l/i48/ll)abs/div to src/libc --- src/{crt => libc}/i48abs.src | 0 src/{crt => libc}/i48div.src | 0 src/{crt => libc}/labs.src | 0 src/{crt => libc}/ldiv.src | 0 src/{crt => libc}/llabs.src | 0 src/{crt => libc}/lldiv.src | 0 6 files changed, 0 insertions(+), 0 deletions(-) rename src/{crt => libc}/i48abs.src (100%) rename src/{crt => libc}/i48div.src (100%) rename src/{crt => libc}/labs.src (100%) rename src/{crt => libc}/ldiv.src (100%) rename src/{crt => libc}/llabs.src (100%) rename src/{crt => libc}/lldiv.src (100%) diff --git a/src/crt/i48abs.src b/src/libc/i48abs.src similarity index 100% rename from src/crt/i48abs.src rename to src/libc/i48abs.src diff --git a/src/crt/i48div.src b/src/libc/i48div.src similarity index 100% rename from src/crt/i48div.src rename to src/libc/i48div.src diff --git a/src/crt/labs.src b/src/libc/labs.src similarity index 100% rename from src/crt/labs.src rename to src/libc/labs.src diff --git a/src/crt/ldiv.src b/src/libc/ldiv.src similarity index 100% rename from src/crt/ldiv.src rename to src/libc/ldiv.src diff --git a/src/crt/llabs.src b/src/libc/llabs.src similarity index 100% rename from src/crt/llabs.src rename to src/libc/llabs.src diff --git a/src/crt/lldiv.src b/src/libc/lldiv.src similarity index 100% rename from src/crt/lldiv.src rename to src/libc/lldiv.src