home *** CD-ROM | disk | FTP | other *** search
/ Programmer 7500 / MAX_PROGRAMMERS.iso / CLIPPER / MISC / JBCALC10.ZIP / JBCALC10.PRG < prev    next >
Encoding:
Text File  |  1988-01-17  |  3.9 KB  |  90 lines

  1. * JBCALC
  2. PARAMETERS JABTOP,JABLEFT,JABSIZE,JABRESULT
  3. PUBLIC JB,JB1,JB2,JB3,JBCOUNT,JBLAST,JABOTT,JABRIGHT,JBLH,JBLONG,JBL,JBFLAGER,JBROW,JBCOL,JBLROW,JBLCOL,JBOLD,JBTOP,JBOTT,JBANGLE,JBCURR,JBCURRA,JBOPER,JBMEM1,JBRESULT
  4. STORE 0 TO JB1,JB2,JB3                   && Initialize flags
  5. STORE "DEG" TO JBANGLE
  6. STORE "0" TO JBCURR,JBCURRA
  7. STORE 0.0 TO JABRESULT
  8. STORE " " TO JBOPER,JBMEM1
  9. STORE .T. TO JBFLAGGER
  10. IF TYPE("JABTOP") <> "N"                 && If the value in 'JABTOP' is not
  11.      STORE VAL(JABTOP) TO JABTOP         && numeric, then find the value.
  12.      STORE 99 TO JB1                     && Set JB1 flag, JB1 flags if the
  13. ENDIF                                    && second parameter is numeric or not.
  14. IF TYPE("JABLEFT") <> "N"
  15.      STORE VAL(JABLEFT) TO JABLEFT       && Same as above but for third
  16.      STORE 99 TO JB2                     && parameter.
  17. ENDIF
  18. IF TYPE("JABSIZE") <> "N"
  19.      STORE VAL(JABSIZE) TO JABSIZE       && Same as above but for third
  20.      STORE 99 TO JB3                     && parameter.
  21. ENDIF
  22. DECLARE JBCALC[JABSIZE]                  && Declare Stack Size
  23. CALL _SETCTYP WITH WORD(0)               && Turn Cursor off.
  24. FOR JBCNT = 1 TO JABSIZE
  25.      STORE " " TO JBCALC[JBCNT]          && Initialize Stack
  26. NEXT JBCNT
  27. STORE "EOS" TO JBCALC[1]                 && Placing End of Stack Marker
  28. STORE "╔═╗║╝═╚║" TO JBBOX                && Characters for Calculator
  29. STORE JABTOP + 18 TO JABOTT              && Initialize Bottom Row of Calendar.
  30. STORE JABLEFT + 28 TO JABRIGHT           && Initialize Right Column
  31. SET COLOR TO N/W
  32. @ JABTOP,JABLEFT CLEAR TO JABOTT,JABRIGHT
  33. @ JABTOP,JABLEFT    SAY "╔═══════════════════════════╗"
  34. @ JABTOP+1,JABLEFT  SAY "║ DEG/Rad         Help - F1 ║"
  35. @ JABTOP+2,JABLEFT  SAY "╟───────────────────────────╢"
  36. @ JABTOP+3,JABLEFT  SAY "║                           ║"
  37. @ JABTOP+4,JABLEFT  SAY "╟───────────────────────────╢"
  38. @ JABTOP+5,JABLEFT  SAY "║ Func. Keys   F2 - Clr.Mem ║"
  39. @ JABTOP+6,JABLEFT  SAY "║ ┌─3─╖┌─4─╖┌─╖┌─╖┌─╖┌─╖┌─╖ ║"
  40. @ JABTOP+7,JABLEFT  SAY "║ │Arc║│Log║│║│7║│8║│9║│/║ ║"
  41. @ JABTOP+8,JABLEFT  SAY "║ ╘═══╝╘═══╝╘═╝╘═╝╘═╝╘═╝╘═╝ ║"
  42. @ JABTOP+9,JABLEFT  SAY "║ ┌─5─╖┌─6─╖┌─╖┌─╖┌─╖┌─╖┌─╖ ║"
  43. @ JABTOP+10,JABLEFT SAY "║ │Sin║│Exp║│%║│4║│5║│6║│*║ ║"
  44. @ JABTOP+11,JABLEFT SAY "║ ╘═══╝╘═══╝╘═╝╘═╝╘═╝╘═╝╘═╝ ║"
  45. @ JABTOP+12,JABLEFT SAY "║ ┌─7─╖┌─8─╖┌─╖┌─╖┌─╖┌─╖┌─╖ ║"
  46. @ JABTOP+13,JABLEFT SAY "║ │Cos║│ π ║│M║│1║│2║│3║│-║ ║"
  47. @ JABTOP+14,JABLEFT SAY "║ ╘═══╝╘═══╝╘═╝╘═╝╘═╝╘═╝╘═╝ ║"
  48. @ JABTOP+15,JABLEFT SAY "║ ┌─9─╖┌─0─╖┌─╖┌─╖┌─╖┌─╖┌─╖ ║"
  49. @ JABTOP+16,JABLEFT SAY "║ │Tan║│ √x║│R║│0║│.║│=║│+║ ║"
  50. @ JABTOP+17,JABLEFT SAY "║ ╘═══╝╘═══╝╘═╝╘═╝╘═╝╘═╝╘═╝ ║"
  51. @ JABTOP+18,JABLEFT SAY "╚═══════════════════════════╝"
  52. ********************
  53. SET COLOR TO W/N
  54. @ JABTOP+1,JABLEFT+25 SAY "F1"
  55. SET COLOR TO N/W
  56. @ JABTOP+2,JABLEFT+12 SAY " DEC "
  57. SET COLOR TO W/N
  58. @ JABTOP+1,JABLEFT+2 SAY JBANGLE
  59. @ JABTOP+3,JABLEFT+1 SAY SPACE(27)
  60. STORE "Y" TO JABWAIT
  61. STORE "Greetings from..." TO JABANNER
  62. STORE  5 TO JABTIMER
  63. STORE "R" TO JABDIRECT
  64. STORE LASTKEY() TO JABLAST
  65. DO JBPRESS WITH JABANNER,JABWAIT,JABTIMER,JABTOP+3,JABLEFT+1,JABLEFT+27,JABLAST,JABDIRECT
  66. STORE " " TO JABWAIT
  67. STORE 0 TO JABLAST
  68. SET COLOR TO W*/N
  69. @ JABTOP+3,JABLEFT+1 SAY "  JBCALC"
  70. SET COLOR TO W/N
  71. @ JABTOP+3,JABLEFT+9 SAY " - Scientific V1.0 "
  72. DO JBDELAY WITH 2500
  73. ********************
  74. SET COLOR TO W/N
  75. @ JABTOP+3,JABLEFT+1 SAY SPACE(27)
  76. @ JABTOP+3,JABLEFT+24 SAY JBCURR+" "
  77. DO JBKEY                                 && Mainline program - waiting for key
  78. CALL _SETCTYP WITH WORD(1)               && Set Cursor back on
  79. IF JB1 = 99                              && Ditto.
  80.      STORE STR(JABTOP,2) TO JABTOT
  81. ENDIF
  82. IF JB2 = 99                              && Double Ditto
  83.      STORE STR(JABLEFT,2) TO JABLEFT
  84. ENDIF
  85. IF JB3 = 99                              && Double Ditto
  86.      STORE STR(JABSIZE,3) TO JABLEFT
  87. ENDIF
  88. RELEASE ALL LIKE JB*                     && Release those stupid JB variables
  89. RETURN
  90.