Files
TeslaRel410/BORLAND/BC45/SOURCE/RTL/SOURCE/MATHLIB/SQRTL.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

64 lines
1.7 KiB
Plaintext

/*------------------------------------------------------------------------
* filename - sqrtl.cas
*
* function(s)
* sqrtl - calculates square root of long double
*-----------------------------------------------------------------------*/
/*
* 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 NANSQRTL [5] = {0,0,0,0xC001,0x7FFF};
/*--------------------------------------------------------------------------*
Name sqrtl - calculates square root of long double
Usage long double sqrtl (long double x);
Prototype in math.h
Description sqrtl calculates the square root of input value.
Return value sqrtl returns the square root of input value.
If the input value is less than 0, sqrtl returns 0 and sets
errno to
EDOM Domain error
*---------------------------------------------------------------------------*/
long double _FARFUNC sqrtl (long double x)
{
asm FLD LONGDOUBLE (x)
asm mov ax, x [8]
asm shl ax, 1
asm jz sqrtl_zero
asm jc sqrtl_imaginary
asm FSQRT
sqrtl_zero: /* zero = sqrtl (zero) */
sqrtl_end:
#pragma noretval
return;
sqrtl_imaginary:
asm FSTP st (0) /* pop x from stack */
#pragma warn -ret
return __matherrl (DOMAIN, "sqrtl", &x, NULL, *((long double *) NANSQRTL));
#pragma warn .ret
}