[Back to STRINGS SWAG index] [Back to Main SWAG index] [Original]

    {*****************************************************************************
     * Function ...... CIF()
     * Purpose ....... To return a character based on a boolean expression
     * Parameters .... Exp        Boolean expression to evaluate
     *                 tVar       Result if <Exp> is TRUE
     *                 fVar       Result if <Exp> is FALSE
     * Returns ....... <tVar> if <Exp> is TRUE, <fVar> if <Exp> is FALSE
     * Notes ......... None
     * Author ........ Martin Richardson
     * Date .......... May 13, 1992
     *****************************************************************************}
    FUNCTION CIF( Exp: BOOLEAN; tVar, fVar: CHAR ): CHAR; ASSEMBLER;
    ASM
         TEST Exp, 1
         JZ   @@1
         MOV  AL, tVar
         JMP  @@2
    @@1: MOV  AL, fVar
    @@2:
    END;

    {*****************************************************************************
     * Function ...... SIF()
     * Purpose ....... To return a string based on a boolean expression
     * Parameters .... Exp        Boolean expression to evaluate
     *                 tVar       Result if <Exp> is TRUE
     *                 fVar       Result if <Exp> is FALSE
     * Returns ....... <tVar> if <Exp> is TRUE, <fVar> if <Exp> is FALSE
     * Notes ......... None
     * Author ........ Martin Richardson
     * Date .......... May 13, 1992
     *****************************************************************************}
    FUNCTION SIF( Exp: BOOLEAN; tVar, fVAR: STRING ): STRING; ASSEMBLER;
    ASM
           PUSH DS
           TEST Exp, 1
           JZ   @@1
           LDS  SI, tVar
           JMP  @@2
    @@1:   LDS  SI, fVar
    @@2:   LES  DI, @Result
           XOR  CH, CH
           MOV  CL, BYTE PTR DS:[SI]
           MOV  BYTE PTR ES:[DI], CL
           INC  DI
           INC  SI
           CLD
           REP  MOVSB
           POP  DS
    END;

    {*****************************************************************************
     * Function ...... IIF()
     * Purpose ....... To return an integer based on a boolean expression
     * Parameters .... Exp        Boolean expression to evaluate
     *                 tVar       Result if <Exp> is TRUE
     *                 fVar       Result if <Exp> is FALSE
     * Returns ....... <tVar> if <Exp> is TRUE, <fVar> if <Exp> is FALSE
     * Notes ......... None
     * Author ........ Martin Richardson
     * Date .......... May 13, 1992
     *****************************************************************************}
    FUNCTION IIF( Exp: BOOLEAN; tVar, fVar: LONGINT ): LONGINT; ASSEMBLER;
    ASM
         TEST Exp, 1
         JZ   @@1
         MOV  AX, WORD PTR tVar[0]
         MOV  DX, WORD PTR tVar[2]
         JMP  @@2
    @@1: MOV  AX, WORD PTR fVar[0]
         MOV  DX, WORD PTR fVar[2]
    @@2:
    END;

    {*****************************************************************************
     * Function ...... RIF()
     * Purpose ....... To return a real based on a boolean expression
     * Parameters .... Exp        Boolean expression to evaluate
     *                 tVar       Result if <Exp> is TRUE
     *                 fVar       Result if <Exp> is FALSE
     * Returns ....... <tVar> if <Exp> is TRUE, <fVar> if <Exp> is FALSE
     * Notes ......... None
     * Author ........ Martin Richardson
     * Date .......... May 13, 1992
     *****************************************************************************}
    FUNCTION RIF( Exp : BOOLEAN; tVar, fVAR : REAL ) : REAL;
    BEGIN
         IF Exp THEN RIF := tVAR ELSE RIF := fVar;
    END;

[Back to STRINGS SWAG index] [Back to Main SWAG index] [Original]