%%HP: T(3)A(D)F(.);
DIR
  MM1.G
GROB 128 11 000C70FFFF1008700CFF70CFFF300F10000C40700C100681020080480120E0E1000A409003100101020080480120D302000A50138010C002020080CFFF380D340009601C601020020CFF7048F12880DB008B401010105812004000489128CB09006D401C6010942200400048F1203CB80C7940138010922200CFF0CFFF3040CBCFA950900310A1220040004801208E14443960700C10C02208FF3048012081E3CFFF70FFFF1000C1080020CFFF308000
  DSZ.MU { { "CFM"
{ } } { "H" { } } {
"W" { } } { "FRIC"
{ } } { "VEL" { } }
{ "EXIT" { DUCT } }
{ "V.P." { } } {
"T" { } } { "" { }
} { "" { } } { "" {
} } { "EXIT" { DUCT
} } }
  FIN
    \<< %ECON TVM
    \>>
  DSP1
    \<< 23 SWAP
TAGSTR CLLCD 1 DISP
    \>>
  STOD
    \<< TUCK STO DSP1
1 FREEZE
    \>>
  TAGSTR
    \<< DUP EVAL SWAP
\->TAG \->STR SWAP 2
SWAP SUB
    \>>
  TVM
    \<< %ECON TVM.MU
SELCT
    \>>
  TVM.MU { { "N" {
    \<< 'N' STOD
    \>>
    \<< 'N' ISV
    \>> N } } { "I%"
{
    \<< 'I%' STOD
    \>>
    \<< 'I%' ISV
    \>> I% } } { "PV"
{
    \<< 'PV' STOD
    \>>
    \<< 'PV' ISV
    \>> PV } } {
"PMT" {
    \<< 'PMT' STOD
    \>>
    \<< 'PMT' ISV
    \>> PMT } } {
"FV" {
    \<< 'FV' STOD
    \>>
    \<< 'FV' ISV
    \>> FV } } {
"EXIT" { MAIN } } {
"N*12" {
    \<< 12 * 'N' STOD
    \>> } } { "I%/12"
{
    \<< 12 / 'I%'
STOD
    \>> } } { "" { }
} { "" { } } {
"B/E" { BEGEND } }
{ "EXIT" { MAIN } }
}
  %DUCT
    DIR
      %SIZE
        DIR
          PRMT ""
          PMT1
" Select sizing method"
          COLE.E '1
/\v/F=1.14+2*LOG(Dh/\Ge
)-2*LOG(1+9.3/Re/(\Ge
/Dh)/\v/F)'
          RE.E 'Dh*
V/720/Vk-Re'
          VEL
1591.54943092
          VEL.E '
CFM*144/\pi/Dh^2-VEL'
          F
5.43465495647E-2
          Re 1500
          CFM 5000
          Dh 12
          \Ge .0003
          Vk
1.6225337487E-4
          COLE 'INV
(\v/F)+2*LOG(12*\Ge/3.7
/Dh+2.51/Re/\v/F)'
          Vo
1.6225337487E-4
        END
      DSIZE
        \<< %SIZE
DSZ.MU SELCT
        \>>
    END
  %ECON
    DIR
      PV 2000
      PMT
-177.697577359
      I% 1
      PRMT
" Input known values,
  solve for unknown"
      BE 0
      BEGEND
        \<<
          IF BE 0
SAME
          THEN
"BEGIN" 1
          ELSE
"END" 0
          END 'BE'
STO CLLCD 1 DISP 1
FREEZE
        \>>
      ISV
        \<< DUP TVM.E
SV DUP EVAL SWAP
\->TAG
        \>>
      FV 0
      N 12
      TVM.E '(PV+
PMT*(1+I%/100*SIGN(
BE))*100/I%)*((1+I%
/100)^N-1)+PV+FV'
    END
  %INTR
    DIR
      A 10
      B 8.5
      C 200
      D 190
      DS1
        \<< DSP1 LCD\->
{ # 1Fh # 10h }
INTG GOR \->LCD 3
FREEZE
        \>>
      GCOL # 3Eh
      GFMT
        \<< 'GROW'
STO 'GCOL' STO
          \<< DUP
            IFERR
RCL
            THEN
DROP ""
            END
": " SWAP + SWAP
N\->S SWAP + 1 MAXC
SUB 1 \->GROB PICT
GCOL GROW 2 \->LIST
ROT GOR 'GROW' 6
STO+ 1
          \>> LISP
DROP
        \>>
      GROW # 1Dh
      INTG
GROB 59 38 000440001108800000082200A0005600000013004000280000082200A000540000044200110882000000070000000E00000000000000000000CFFFFFFFFFFF7000400040004000400040E0400040F0401140114000401140A8401140004011404C40F1400040F040484011400040114048401140004011400C5011400040F040004000400040004000CFFFFFFFFFFF70004000CFFF700040004000C000600040444000CA42600040824000CAA2600040014000CAE2600040014000C4A2600040014000C4AE600040004000C000600040004000CFFF70004000CFFFFFFFFFFF7000400040004000400040E040004070401140114000409040AC401040004011404050104000401140484010400040114044401140004090400C50E04000407040004000400040004000CFFFFFFFFFFF70
      INTP
        \<< # 5Ah
# 31h BLANK { # 1Fh
# Bh } INTG GOR
\->LCD 3 FREEZE
        \>>
      INTR.E '(X-X1
)/(X2-X1)*(B-A)+A+(
(X-X1)/(X2-X1)*(D-C
)+C-((X-X1)/(X2-X1)
*(B-A)+A))*(Y-Y1)/(
Y2-Y1)-VAL'
      ISV
        \<< DUP
INTR.E SV DS1
        \>>
      MAXC 24
      PPAR {
(-6.5,-3.1)
(6.5,3.2) X 0 (0,0)
FUNCTION Y }
      SOLVAL
        \<< SVAL
INTR.E 'VAL' + EVAL
EVAL 'VAL' STO
        \>>
      STGD
        \<< TUCK STO
DS1
        \>>
      SVAL
        \<<
          IF X1 X2
SAME
          THEN 0
'X2' STO 0 'B' STO
0 'D' STO
          END
          IF Y1 Y2
SAME
          THEN 0
'Y2' STO 0 'C' STO
0 'D' STO
          END
        \>>
      VAL
121.726666667
      VUALL
        \<< # 99h
# 38h BLANK { # 0h
# 0h } INTG GOR
PICT STO { Y1 Y Y2
} # 0h # 27h 17
'MAXC' STO GFMT {
X1 X X2 } # 42h
# 1h 24 'MAXC' STO
GFMT { A B C D }
# 42h # 21h GFMT
SOLVAL { VAL }
# 3Eh # 17h GFMT
PICT RCL \->LCD 3
FREEZE
        \>>
      X 41
      X1 10
      X2 100
      Y 30
      Y1 0
      Y2 50
    END
  %NOISE
    DIR
      SONSUB
        \<< S2DB
DBSUB \->SONE
        \>>
      SONADD
        \<< S2DB
DBADD \->SONE
        \>>
      S2DB
        \<< 2 \->LIST
          \<< \->DB
          \>> LISP
OBJ\-> DROP
        \>>
      \->DB
        \<< LOG 2 LOG
/ 10 * 40 +
        \>>
      \->SONE
        \<< 40 - 10 /
2 SWAP ^
        \>>
      PRMT
"Input 2 dB/Sone levels
 then DB+/- or SON+/-
  or convert a level"
      DB\->
        \<< 2 \->LIST
          \<< 10 /
ALOG
          \>> LISP
OBJ\-> DROP
        \>>
      DBADD
        \<< DB\-> + LOG
10 *
        \>>
      DBSUB
        \<< DB\-> - DUP
ABS LOG 10 * SWAP
SIGN *
        \>>
    END
  %PIPE
    DIR
      %F.OIL
        DIR
        END
      %STM
        DIR
        END
      %GLY
        DIR
        END
      REFR
        \<< %REFR
R.MU SELCT
        \>>
      %REFR
        DIR
          R12
"R-12 DATA"
          R22
"R-22 DATA"
          R113
"R-113 DATA"
          RPROP
"R-113 DATA"
          RT
            \<< DUP
EVAL 'RPROP' STO
CLLCD 6 DISP 2
FREEZE 1 WAIT REFR
            \>>
        END
      F.OIL
        \<< %F.OIL
FO.MU SELCT
        \>>
      STM
        \<< %STM
STM.MU SELCT
        \>>
      GLY
        \<< %GLY
GLY.MU SELCT
        \>>
      PRMT
"     Select fluid"
    END
  %PSY
    DIR
    END
  %UTIL
    DIR
      EG
        \<< / SQ 1.16
* *
        \>>
      UTILS { DOW$
DOW DS ESC IN INM
LISP MV NIP PLIST
PNORM PWIDE REN REV
SEQ TUCK USAG XQL }
    END
  %XFER
    DIR
    END
  D.MU { { "ESTIM"
{ } } { "SIZE" {
DSIZE } } { "" { }
} { "" { } } { "" {
} } { "EXIT" { MAIN
} } }
  DUCT
    \<< %DUCT D.MU
SELCT
    \>>
  FO.MU { { "NO.2"
{ } } { "NO.6" { }
} { "PROP" { } } {
"" { } } { "" { } }
{ "EXIT" { PIPE } }
}
  GLY.MU { {
"E.GLY" { } } {
"P.GLY" { } } { ""
{ } } { "" { } } {
"" { } } { "EXIT" {
PIPE } } }
  INT.MU { { "X1" {
    \<< 'X1' STGD
    \>>
    \<< 'X1' ISV
    \>> X1 } } { "X"
{
    \<< 'X' STGD
    \>>
    \<< 'X' ISV
    \>> X } } { "X2"
{
    \<< 'X2' STGD
    \>>
    \<< 'X2' ISV
    \>> X2 } } {
"VUALL" { VUALL } }
{ "PIC" { INTP } }
{ "EXIT" { MAIN } }
{ "Y1" {
    \<< 'Y1' STGD
    \>>
    \<< 'Y1' ISV
    \>> Y1 } } { "Y"
{
    \<< 'Y' STGD
    \>>
    \<< 'Y' ISV
    \>> Y } } { "Y2"
{
    \<< 'Y2' STGD
    \>>
    \<< 'Y2' ISV
    \>> Y2 } } {
"VUALL" { VUALL } }
{ "PIC" { INTP } }
{ "EXIT" { MAIN } }
{ "A" {
    \<< 'A' STGD
    \>>
    \<< 'A' ISV
    \>> A } } { "B" {
    \<< 'B' STGD
    \>>
    \<< 'B' ISV
    \>> B } } { "C" {
    \<< 'C' STGD
    \>>
    \<< 'C' ISV
    \>> C } } { "D" {
    \<< 'D' STGD
    \>>
    \<< 'D' ISV
    \>> D } } { "PIC"
{ INTP } } { "VAL"
{
    \<< 'VAL' STGD
    \>>
    \<< SOLVAL 'VAL'
DS1
    \>> VAL } } }
  INTRP
    \<< %INTR CLLCD
"Input all but 1 value.

 Press VUALL for VAL,
 or solve for unknown"
3 DISP 2 FREEZE 2
WAIT INTP INT.MU
TMENU
    \>>
  M.MU { { "PSYCH"
{ PSYCH } } {
"DUCT" { DUCT } } {
"PIPE" { PIPE } } {
"EXTK" { } } {
"INTRP" { INTRP } }
{ "OFF" {
    \<< OFF MAIN
    \>> } } { "PLEN"
{ } } { "NOISE" {
NOISE } } { "STBL"
{ } } { "FIN" { FIN
} } { "XFER" { XFER
} } { "OFF" {
    \<< OFF MAIN
    \>> } } }
  MAIN
    \<< %HVAC CLEAR
MM1.G M.MU SELCT
    \>>
  NOI.MU { { "DB+"
{ DBADD } } { "DB-"
{ DBSUB } } { "\->DB"
{ \->DB } } { "\->SON"
{ \->SONE } } { "" {
} } { "EXIT" { MAIN
} } { "SON+" {
SONADD } } { "SON-"
{ SONSUB } } { "" {
} } { "" { } } { ""
{ } } { "EXIT" {
MAIN } } }
  NOISE
    \<< %NOISE NOI.MU
SELCT
    \>>
  N\->S
    \<< \->STR DUP SIZE
1 - 2 SWAP SUB
    \>>
  P.MU { { "WATR" {
} } { "GLY" { GLY
E.GLY P.GLY } } {
"STM" { STM LPS HPS
} } { "COND" { } }
{ "REFR" { REFR } }
{ "EXIT" { MAIN } }
{ "N.GAS" { } } {
"F.OIL" { F.OIL
NO.2 NO.6 } } {
"C.AIR" { } } {
"STRM" { } } {
"USER" { } } {
"EXIT" { MAIN } } }
  PIPE
    \<< %PIPE P.MU
SELCT
    \>>
  PRMT
"   Press a menu key"
  PSY.MU { { "PROP"
{ } } { "SYST" { }
} { "" { } } { "" {
} } { "" { } } {
"EXIT" { MAIN } } }
  PSYCH
    \<< %PSY PSY.MU
SELCT
    \>>
  R.MU { { "SUCT" {
} } { "H.GAS" { } }
{ "LIQ" { } } {
"RTYPE" {
    \<< RT.MU SELCT
    \>> } } { "" { }
} { "EXIT" { PIPE }
} }
  RT.MU { { "R12" {
    \<< 'R12' RT
    \>> } } { "R22" {
    \<< 'R22' RT
    \>> } } { "R113"
{
    \<< 'R113' RT
    \>> } } { "" { }
} { "" { } } {
"EXIT" { REFR } } }
  SELCT
    \<< PRMT CLLCD 5
DISP 2 FREEZE TMENU
      IF DEPTH
      THEN
        IF DUP TYPE
11 ==
        THEN
(-6.5,-1.3) SWAP
LCD\-> ROT ROT GOR
\->LCD
        END
      END
    \>>
  STM.MU { { "LPS"
{ } } { "HPS" { } }
{ "" { } } { "" { }
} { "" { } } {
"EXIT" { PIPE } } }
  SV
    \<< OVER DUP EVAL
      IF DUP TYPE 6
==
      THEN DROP 1
      END ROOT SWAP
STO
    \>>
  X.MU { { "UPLD" {
} } { "DNLD" { } }
{ "" { } } { "" { }
} { "" { } } {
"EXIT" { MAIN } } }
  XFER
    \<< %XFER X.MU
SELCT
    \>>
END
