; ========================================================================
; CS617 MathROM THIN module r022 -- math_cmp.inc
; Public entry: MATH_CMP
; Function: expanded B9 comparison
; Resident PB-2000C entry: &H0B13 (in internal low-ROM map)
;
; USAGE: #INCLUDE (lib/math/math_cmp.inc) exactly once in the source
;        CAL MATH_CMP
; Input (r021 fixture evidence): expanded B9 left $10..$18 and right $0..$8
; Output (r021 fixture evidence): CPU FLAGS (C/Z); NOT expanded B9
; Notes: Inspect carry/zero immediately. r021 test used a flag-to-B9 adapter outside this include.
;
; 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_CMP_.
;
; 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_CMP:
        JP      &H0B13
