HPlogo Command Interpreter Access and Variables Programmer's Guide: Series HP 3000 Computer Systems > Chapter 7 Sample Command Files

To Create a Calculator

» 

Technical documentation

Complete book in PDF
» Feedback

 » Table of Contents

 » Index

The CALCIT command file provides the user with an interactive calculator. The user is prompted for an equation to be solved or an MPE/iX command to execute. To exit CALCIT, the user enters a carriage return.

Note that the CENTER command file is called to center the display headings on the user's terminal. After an equation is solved, the result is displayed on the terminal using escape sequences to append the result to the original input line and to underline it. The predefined variable HPMSGFENCE is used to suppress error messages.

The CALCIT prompt is based on the command file name. By dereferencing the latest command entered in the history stack (!-1), the name that called this command file becomes a part of the prompt. If the command file name is changed to COMPUTE, for example, the prompt automatically becomes COMPUTE ==>.

Figure 7-9 Calculator Command File

PARM ENH_CH=D

COMMENT Interactive calculator using calc and input

ECHO ![CHR(27) + "h" + CHR(27) + "J"]

CENTER "MPE/iX INTERACTIVE CALCULATOR"

CENTER ": executes any MPE/iX command!"

CENTER "Type [RETURN] to exit"

ECHO

SETVAR CALCIT_ESC CHR(27) + "A" + RPT(CHR(27) + "C", 64)

SETVAR CALCIT_PROMPT LFT(UPS("!-1"), POS(' ',"!-1" + ' ')-1) + ' ==> '

WHILE SETVAR (CALCIT_EXPR, RTRIM(INPUT(CALCIT_PROMPT))) <> '' DO

  COMMENT Save length before trimming leading blanks

  SETVAR CALCIT_LEN LEN(CALCIT_EXPR)

  SETVAR CALCIT_EXPR LTRIM(CALCIT_EXPR)

  IF LFT(CALCIT_EXPR,1) = ":" THEN

    CONTINUE

    ![RHT(CALCIT_EXPR,LEN)CALCIT_EXPR)-1)]

  ELSE

    SETVAR HPMSGFENCE 2

    SETVAR CIERROR 0

    CONTINUE

    SETVAR HPRESULT !CALCIT_EXPR

    SETVAR HPMSGFENCE 0

    IF CIERROR <> 0 THEN

      COMMENT User entered an invalid expression.

      COMMENT Display error.

      ECHO ![RPT(' ' ,LEN(CALCIT_PROMPT) + HPCIERRCOL-17)]^

      ECHO !HPCIERRMSG

    ELSE

      ECHO ![LFT(CALCIT_ESC, 2 + (LEN(CALCIT_PROMPT) + CALCIT_LEN) *2) +&

           ' = ' + CHR(27) + '&d!ENH_CH']!HPRESULT

    ENDIF

  ENDIF

ENDWHILE

DELETEVAR CALCIT_@

The following example shows the terminal display to calculate the equation 5 + 7.

:CALCIT

                        MPE/iX INTERACTIVE CALCULATOR

                         : executes any MPE/iX command

                            Type [RETURN] to exit



CALCIT ==> 5+7 = 12

CALCIT ==>

:
Feedback to webmaster