; ========================================================================
; CS617 MathROM THIN module r022 -- math_pi.inc
; Public entry: MATH_PI
; Function: pi constant
; Resident PB-2000C entry: &H0A77 (in internal low-ROM map)
;
; USAGE: #INCLUDE (lib/math/math_pi.inc) exactly once in the source
;        CAL MATH_PI
; Input (r021 fixture evidence): no explicit operand evidenced by r021 zero-argument fixture
; Output (r021 fixture evidence): expanded B9 in $10..$18 (provisional)
; Notes: ROM numeric constants/workspace may be required.
;
; Self-contained source module: no other math_*.inc is needed *inside* it.
; Runtime dependencies: PB-2000C native low-ROM map and machine state
; (including UA/banks/workspace). The r021 ROM includes source-attributed
; numeric constants; kernel-by-kernel table dependence remains UNPROVEN.
; This module does not embed original ROM data, initialize operands, or
; establish angle mode. The application must qualify its environment.
; Register/flags clobbers, errors, mode/domain, reentrancy, full ABI: OPEN.
;
; Evidence: r021 23/23 owner-reported *single-fixture* emulator smoke.
;          This newly modular r022 path has NO owner assembly/emulator test yet.
; This is a candidate adapter, not a released mathematical API.
; Namespace: all optional internal labels must begin _MATH_PI_.
;
; Rationale: tail JP retains the caller's CAL return frame and native flags,
; unlike a new CAL/RTN layer. Important for MATH_CMP's C/Z results.
; ========================================================================
MATH_PI:
        JP      &H0A77
