Files
TeslaRel410/BORLAND/BC45/SOURCE/RTL/SOURCE/MATHLIB/LOG10.CAS
T
CydandClaude Fable 5 63312e07f9 source410: literal 4.10 source reconstruction + BC++ 4.52 fleet toolchain archived
- BORLAND/: Borland C++ 4.52 (chosen over 4.5 by byte-match: CODE/RP/CW32.LIB
  is identical to 4.52's install lib). BCC32/TLINK32/TLIB/MAKE run natively on
  Win11; CODE/BT/OPT.MAK is the shipped BTL4OPT.EXE's exact flag recipe
  (extender = Borland PowerPack DPMI32, not Phar Lap TNT).
- restoration/source410/: the literal 1995-form reconstruction of the missing
  BT game source (never mixed into CODE/). Round 1-3 state:
  * 6 of 10 surviving original TUs COMPILE CLEAN under the period toolchain
    (BTMSSN, BTCNSL, BTSCNRL, BTTEAM, BTL4MODE, BTL4ARND) - first builds
    since 1996.
  * BT_L4/BTL4APP.CPP pilot reconstruction: 12/12 functions, Fail() lands on
    its binary-recorded line 400 exactly.
  * BT/BTCNSL.HPP: console wire IDs recovered from the binary's ctors
    (Killed=9, Damaged=10, ScoreUpdate=13, DeathWithoutHonor=15 [T1];
    TeamScore=12 flagged [T4]).
  * MUNGA/: 8 engine-header backfills back-dated from the BT412 WinTesla tree
    (VDATA numbering decomp-verified; AUDREND's OpenAL-era virtual removed -
    the period compiler is the drift detector).
  * Tooling: backdate.py (WinTesla->1995 header transform), compile410.sh
    (per-TU verification sweep under authentic OPT.MAK flags).
  * README: corrected roadmap - MECH.HPP is the capstone grown with the mech
    TU reconstructions; BTREG.CPP green = the header-family milestone.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-19 07:33:26 -05:00

88 lines
2.0 KiB
Plaintext

/*------------------------------------------------------------------------
* filename - log10.cas
*
* function(s)
* log10 - base 10 logarithm function
*-----------------------------------------------------------------------*/
/*
* C/C++ Run Time Library - Version 6.5
*
* Copyright (c) 1987, 1994 by Borland International
* All Rights Reserved.
*
*/
#pragma inline
#include <asmrules.h>
#include <_math.h>
#include <math.h>
#include <errno.h>
#include <stddef.h>
static unsigned short NANLOG [4] = {0,0,0x0480, 0xFFF8};
/*--------------------------------------------------------------------------*
Name log10 - base 10 logarithm function
Usage double log10(double x);
Prototype in math.h
Description log10 calculates the base 10 logarithm of x, which must be
greater than zero.
Return value log10 returns the base 10 logarithm of x, which must be
greater than zero.
*---------------------------------------------------------------------------*/
#pragma warn -use
double _FARFUNC log10( double x )
{
double temp;
asm FLD DOUBLE (x)
asm mov ax, W0 (x [6]) /* get the exponent field */
asm shl ax, 1
asm jz l10_zero
asm jc l10_imaginary
asm cmp ax, 0FFE0h
asm je l10_infinite
#ifdef _Windows
_f87_Log10();
#else
asm _FAST_ (_FLOG10_)
#endif
l10_end:
#pragma noretval
return;
l10_zero:
asm mov si, SING
temp = -HUGE_VAL;
asm jmp short l10_complain
l10_infinite:
asm mov si, OVERFLOW
temp = HUGE_VAL;
asm jmp short l10_complain
l10_imaginary:
asm mov si, DOMAIN
temp = *((double *) NANLOG);
l10_complain:
asm FSTP ST(0) /* pop x from stack */
#pragma warn -ret
return __matherr (_SI, "log10", &x, NULL, temp);
#pragma warn .ret
}
#pragma warn .use