\      ͻ
\       Lesson 5 Part 130  F-PC 3.5 Tutorial by Jack Brown 
\      ͼ

\ Part four of CHKBOOK.SEQ
/* ************************************************************ */
/*                                                              */
/* Function:    MAKE_A_DEPOSIT - calculates new balance after   */
/*                               a deposit is made.             */
/*                                                              */
/* Date: July 25, 1988                                          */
/*                                                              */
/* Interface:   MAKE_A_DEPOSIT ( --)                            */
/*                                                              */
/* Notes: Calls add_to_bal to perform fixed point calculations. */
/*                                                              */
/* ************************************************************ */

: MAKE_A_DEPOSIT ( -- )
        40 CLR_HBAR
        ." Enter the amount of the deposit: " CR
        40 HBAR
        GET_DOLLARS  TR_DOLLARS !
        GET_CENTS    TR_CENTS !
        1 DEP_COUNT +!
        TR_DOLLARS @ DEP_DOLLARS @ + 
        TR_CENTS   @ DEP_CENTS   @ +
        ROUND  DEP_CENTS ! DEP_DOLLARS !
        40 HBAR
        TR_DOLLARS @ TR_CENTS @ ADD_TO_BAL
       ." After a deposit of "
       TR_DOLLARS  @ TR_CENTS  @ $XX.XX CR
       ." your new balance comes to: "
       BAL_DOLLARS @ BAL_CENTS @ $XX.XX CR
       40 HBAR ;

/* ************************************************************ */
/*                                                              */
/* Function: NET_CHANGE       Displays net change from session  */
/*                            start.                            */
/*                                                              */
/* Date: July 25, 1988                                          */
/*                                                              */
/* Interface:   NET_CHANGE ( -- )                               */
/*                                                              */
/* ************************************************************ */

VARIABLE DIF_DOLLARS
VARIABLE DIF_CENTS

: NET_CHANGE ( -- )
        BAL_DOLLARS @ DIF_DOLLARS !
        BAL_CENTS   @ DIF_CENTS   !
        OLD_CENTS @ BAL_CENTS @ >
        IF  -1 DIF_DOLLARS +!
            100 DIF_CENTS +!
        THEN
        OLD_DOLLARS @ NEGATE DIF_DOLLARS +!
        OLD_CENTS   @ NEGATE DIF_CENTS   +!
        40 CLR_HBAR
        ." Net change this session: "
        DIF_DOLLARS @ 0 <
        IF   100 DIF_CENTS @ - DIF_CENTS !
             1 DIF_DOLLARS @ + NEGATE DIF_DOLLARS !
             ASCII - EMIT 
        THEN
        DIF_DOLLARS @ DIF_CENTS @ $XX.XX CR
        40 HBAR ;

/* ************************************************************ */
/*                                                              */
/* Function:    TOT_CHECKS     Displays total checks written    */
/*                             this session.                    */
/*                                                              */
/* Date: July 25, 1988                                          */
/*                                                              */
/* Interface:   TOT_CHECKS ( --  )                              */
/*                                                              */
/* ************************************************************ */

: TOT_CHECKS ( -- )
        70 CLR_HBAR
        CHK_COUNT @ 0=
        IF
        ." There have been no checks written so far this session "
        ." so the total is: "
        ELSE CHK_COUNT @ 1 =
             IF
             ." Only one check has been written so far this session "
             ." for a total of: "
             ELSE
            ." There were " CHK_COUNT @ .
            ." checks written so far this session "
            ." that total: "
            THEN
       THEN
       CHK_DOLLARS @ CHK_CENTS @ $XX.XX CR
       70 HBAR ;
