home *** CD-ROM | disk | FTP | other *** search
/ Carsten's PPE Collection / Carstens_PPE_Collection_2007.zip / S / SENDM100.ZIP / SENDM.PPE (.txt) < prev    next >
PCBoard Programming Language Executable  |  1994-06-23  |  27KB  |  1,409 lines

  1. ;------------------------------------------------------------------------------
  2. ;                                                   .ss.
  3. ;                                                   `²²'
  4. ;             .,sS$Ss,,s$  .,sS$$$Ss.  .,sS$Ss,,s$ .ss.  .sSs.
  5. ;           .d$$²^°²$$$$'.d$P²°^^²$P'.d$$²^°²$$$$'.$$$' .$$$²Sb,.
  6. ;           $$$'   .$$$' $$$²Sçsµ²' .$$$'   .$$$'.$$$' .$$$'  `$$b.
  7. ;           $$$b,,d$$$' ,$$$b,....,s$$$$b,,d$$$'.$$$;.,$$$'    ;$$$
  8. ;           `²S$$S²²S$$S²°²S$$$$S²°°²S$$$$$$',$$S²°²S$S'.sS$$$P²'
  9. ;                                    .sS²°$$$²²°"'       d²°'
  10. ;                                  .$$²  .$$'
  11. ;                                  $$$.,d$$'
  12. ;                                  `²S$$S²'
  13. ;------------------------------------------------------------------------------
  14. ; P.P.L.X. 2.OO                          (C)1996 - Lone Runner / AEGiS CoRP'96 
  15. ;------------------------------------------------------------------------------
  16. ; PPE 2.OO (plain) - Analysis ON - Postprocessing ON
  17. ;------------------------------------------------------------------------------
  18.  
  19.     Boolean  BOOLEAN001
  20.     Boolean  BOOLEAN002
  21.     Boolean  BOOLEAN003
  22.     Boolean  BOOLEAN004
  23.     Boolean  BOOLEAN005
  24.     Boolean  BOOLEAN006
  25.     Date     DATE001
  26.     Date     DATE002
  27.     Integer  INTEGER001
  28.     Integer  INTEGER002
  29.     Integer  INTEGER003
  30.     Integer  INTEGER004
  31.     Integer  INTEGER005
  32.     Integer  INTEGER006
  33.     Integer  INTEGER007
  34.     Integer  INTEGER008
  35.     Integer  INTEGER009
  36.     Integer  INTEGER010
  37.     Integer  INTEGER011
  38.     Integer  INTEGER012
  39.     Integer  INTEGER013
  40.     Integer  INTEGER014
  41.     Integer  INTEGER015
  42.     Integer  INTEGER016
  43.     Integer  INTEGER017
  44.     Integer  INTEGER018
  45.     Integer  INTEGER019
  46.     Integer  INTEGER020
  47.     Integer  INTEGER021
  48.     Integer  INTEGER022
  49.     Integer  INTEGER023
  50.     Integer  INTEGER024
  51.     Integer  INTEGER025
  52.     Integer  INTEGER026
  53.     Integer  INTEGER027
  54.     Integer  INTEGER028
  55.     String   STRING001
  56.     String   STRING002
  57.     String   STRING003
  58.     String   STRING004
  59.     String   STRING005
  60.     String   STRING006
  61.     String   STRING007
  62.     String   STRING008
  63.     String   STRING009
  64.     String   STRING010
  65.     String   STRING011
  66.     String   STRING012
  67.     String   STRING013
  68.     String   STRING014
  69.     String   STRING015
  70.     String   STRING016
  71.     String   STRING017
  72.     String   STRING018
  73.     String   STRING019
  74.     String   STRING020
  75.     String   STRING021
  76.     String   STRING022
  77.     String   STRING023
  78.     String   STRING024
  79.     String   STRING025
  80.     String   STRING026
  81.     Time     TIME001
  82.     Time     TIME002
  83.  
  84. ;------------------------------------------------------------------------------
  85.  
  86.     STRING001 = ""
  87.     STRING022 = "Y"
  88.     INTEGER025 = 5
  89.     STRING021 = "Y"
  90.     STRING002 = ""
  91.     STRING003 = ""
  92.     INTEGER017 = 0
  93.     STRING004 = ""
  94.     STRING005 = ""
  95.     STRING006 = ""
  96.     STRING007 = ""
  97.     STRING008 = ""
  98.     STRING009 = ""
  99.     STRING010 = ""
  100.     BOOLEAN006 = 0
  101.     STRING011 = ""
  102.     INTEGER001 = 0
  103.     INTEGER002 = 0
  104.     INTEGER003 = 0
  105.     INTEGER004 = 0
  106.     INTEGER005 = 0
  107.     DATE001 = 0
  108.     DATE002 = 0
  109.     TIME001 = 0
  110.     TIME002 = 0
  111.     BOOLEAN002 = 1
  112.     BOOLEAN003 = 0
  113.     BOOLEAN005 = 0
  114.     STRING004 = "@X0CYour entry is contained of text that SysOp does not wish to be displayed."
  115.     STRING005 = "@X0FUser Cancellation received@X03 - @X0FReturning to @X0B@BOARDNAME@@X07"
  116.     GetUser
  117.     Cls
  118.     Newline
  119.     Newline
  120.     Print "@X0AInitializing@X0E"
  121.     For INTEGER018 = 1 To 10
  122.         Print "."
  123.     Next
  124.     Newline
  125.     PrintLn "@X0CSendMes v1.00 - Copyright (c) 1994 Scott M. Klassen."
  126.     Newline
  127.     Print "@X0FReading Registration file@X0E..."
  128.     Newline
  129.     If (Exist(PPEPath() + "REG.KEY")) Then
  130.         FOpen 1, PPEPath() + "REG.KEY", 2, 0
  131.         FGet 1, STRING017
  132.         FGet 1, INTEGER019
  133.         STRING017 = Upper(STRING017)
  134.         For INTEGER020 = 1 To Len(STRING017)
  135.             STRING019 = Right(STRING017, INTEGER020)
  136.             STRING018 = Left(STRING019, 1)
  137.             INTEGER022 = Asc(STRING018)
  138.             INTEGER021 = INTEGER021 + INTEGER022
  139.         Next
  140.         INTEGER021 = INTEGER021 * 1069
  141.         INTEGER021 = INTEGER021 / 1357
  142.         INTEGER021 = INTEGER021 + 9234
  143.         INTEGER021 = INTEGER021 - 5839
  144.         INTEGER021 = INTEGER021 * 1234
  145.         INTEGER021 = INTEGER021 - 90
  146.         If (INTEGER021 == INTEGER019) Then
  147.             BOOLEAN006 = 1
  148.             PrintLn "Registered to@X0F: @X0A[@X0F" + Upper(STRING017) + "@X0A]"
  149.             PrintLn "@X09Serial number@X0F:@X0A [@X0F" + String(INTEGER019) + "@X0A]"
  150.             FClose 1
  151.             Wait
  152.             Goto LABEL001
  153.         Else
  154.             PrintLn "@X0ERegistered to@X0F: @X0A[@X0FUNREGISTERED@X0A]"
  155.             PrintLn "@X09Serial number@X0F:@X0A [@X0FUNREGISTERED@X0A]"
  156.             FClose 1
  157.             PrintLn "@X0CUNREGISTERED @X0FDelay in Effect! Please Wait."
  158.             Delay 180
  159.             Wait
  160.         Else
  161.         Endif
  162.         PrintLn "@X0ERegistered to@X0F: @X0A[@X0FUNREGISTERED@X0A]"
  163.         PrintLn "@X09Serial number@X0F:@X0A [@X0FUNREGISTERED@X0A]"
  164.         PrintLn "@X0CUNREGISTERED @X0FDelay in Effect! Please Wait."
  165.         Delay 180
  166.         Wait
  167.         FClose 1
  168.     Endif
  169.     :LABEL001
  170.     If (Exist(PPEPath() + "CONFIG.SEN")) Then
  171.         FOpen 2, PPEPath() + "CONFIG.SEN", 2, 0
  172.         FSeek 2, 0, 0
  173.         FRead 2, STRING022, 1
  174.         FRead 2, INTEGER025, 4
  175.         FRead 2, STRING021, 1
  176.         FRead 2, INTEGER027, 5
  177.         FClose 2
  178.     Else
  179.         STRING022 = "Y"
  180.         INTEGER025 = 7
  181.         STRING021 = "Y"
  182.         INTEGER027 = 0
  183.     Endif
  184.     If (CurSec() >= SysopSec()) Then
  185.         Newline
  186.         PrintLn "                @X0BSys@X03Op @X0FSecurity recongized@X0E...@X0FGoing to @X0BSys@X03Op @X0FMenu@X0E..."
  187.         Wait
  188.         BOOLEAN005 = 1
  189.     ElseIf (Exist(PPEPath() + "NAMES.SEN")) Then
  190.         FOpen 1, PPEPath() + "NAMES.SEN", 2, 0
  191.         :LABEL002
  192.         If (Ferr(1)) Goto LABEL003
  193.         FGet 1, STRING020
  194.         If (U_Name() == Upper(STRING020)) Then
  195.             Newline
  196.             PrintLn "                @X0BSys@X03Op @X0FSecurity recongized@X0E...@X0FGoing to @X0BSys@X03Op @X0FMenu@X0E..."
  197.             Wait
  198.             BOOLEAN005 = 1
  199.             FClose 1
  200.             Goto LABEL004
  201.         Endif
  202.         Goto LABEL002
  203.         :LABEL003
  204.         FClose 1
  205.     Endif
  206.     :LABEL004
  207.     If (Exist(PPEPath() + "LKNMS.SEN")) Then
  208.         FOpen 1, PPEPath() + "LKNMS.SEN", 2, 0
  209.         :LABEL005
  210.         If (Ferr(1)) Goto LABEL006
  211.         FGet 1, STRING024
  212.         If (Upper(STRING024) == U_Name()) Then
  213.             Newline
  214.             PrintLn "       @X0CAccess Denied - You are currently locked-out of this [PPE]."
  215.             Wait
  216.             End
  217.         Endif
  218.         Goto LABEL005
  219.         :LABEL006
  220.         FClose 1
  221.     Endif
  222.     Log "SendMes v1.0 - [Opened] at " + String(Time()), 0
  223.     If (BOOLEAN005 == 1) Then
  224.         Goto LABEL028
  225.     Endif
  226.     :LABEL007
  227.     STRING010 = "E"
  228.     Cls
  229.     If (Exist(PPEPath() + "UMAIN.SEN")) Then
  230.         DispFile PPEPath() + "UMAIN.SEN", 1 + 4
  231.     Else
  232.         PrintLn "@X07            @X19┌─@X10┐@X19┌─@X10┐@X19┌─@X10┐@X19┌─@X10┐@X19┌─@X10┐@X19┌─@X10┐@X19┌─@X10┐@X19┌─@X10┐@X19┌─@X10┐@X19┌─@X10┐@X19┌─@X10┐@X19┌─@X10┐@X19┌─@X10┐@X19┌─@X10┐@X19┌─@X10┐@X19┌─@X10┐@X19┌─@X10┐@X19┌─@X10┐@X19┌─@X10┐@X07"
  233.         PrintLn "@X0F            @X19└@X10─┘@X19└@X10─┘@X19└@X10─┘@X19└@X10─┘@X19└@X10─┘@X19└@X10─┘@X19└@X10─┘@X19└@X10─┘@X19└@X10─┘@X19└@X10─┘@X19└@X10─┘@X19└@X10─┘@X19└@X10─┘@X19└@X10─┘@X19└@X10─┘@X19└@X10─┘@X19└@X10─┘@X19└@X10─┘@X19└@X10─┘@X07"
  234.         PrintLn "            @X10 @X19┌──────────────────────────────────────────────────────@X10┐@X07"
  235.         PrintLn "            @X10 @X19│  @X10┌────@X19┐              @X1FU@X1Eser @X1FM@X1Eenu               @X10┌────@X19┐  @X10│@X07"
  236.         PrintLn "            @X10 @X19│  @X10│@X18■■■■@X19│       ⌠@X10┌───────────────────@X19┐⌠        @X10│@X18■■■■@X19│  @X10│@X07"
  237.         PrintLn "            @X10 @X19│  @X10└@X19────┘       ⌡@X10│ @X13° @X1ES@X1Fend@X1EM@X1Fes @X1Bv@X1F1@X17.@X1F0 @X13°  @X19│⌡        @X10└@X19────┘  @X10│@X07"
  238.         PrintLn "            @X10 @X19│                @X10└@X19───────────────────┘                 @X10│@X07"
  239.         PrintLn "            @X10 @X19│        @X1BCopyright @X17(@X1Dc@X17) @X1E1993-94 @X1AScott M. Klassen        @X10│@X07"
  240.         PrintLn "            @X10 └──────────────────────────────────────────────────────┘@X07"
  241.         PrintLn "            @X19┌─@X10┐@X19┌─@X10┐@X19┌─@X10┐@X19┌─@X10┐@X19┌─@X10┐@X19┌─@X10┐@X19┌─@X10┐@X19┌─@X10┐@X19┌─@X10┐@X19┌─@X10┐@X19┌─@X10┐@X19┌─@X10┐@X19┌─@X10┐@X19┌─@X10┐@X19┌─@X10┐@X19┌─@X10┐@X19┌─@X10┐@X19┌─@X10┐@X19┌─@X10┐@X07"
  242.         PrintLn "@X0F            @X19└@X10─┘@X19└@X10─┘@X19└@X10─┘@X19└@X10─┘@X19└@X10─┘@X19└@X10─┘@X19└@X10─┘@X19└@X10─┘@X19└@X10─┘@X19└@X10─┘@X19└@X10─┘@X19└@X10─┘@X19└@X10─┘@X19└@X10─┘@X19└@X10─┘@X19└@X10─┘@X19└@X10─┘@X19└@X10─┘@X19└@X10─┘@X07"
  243.         PrintLn "@X0F            @X17┌───────────────────────────────────────────────────────@X10┐@X07"
  244.         PrintLn "@X0F            @X17│           @X1B(@X1AE@X1B)@X1Fnter text to send to next user.          @X10│@X07"
  245.         PrintLn "@X0F            @X17│           @X1B(@X1AV@X1B)@X1Fiew the database of messages.            @X10│@X07"
  246.         PrintLn "@X0F            @X17│ @X1B          (@X1AF@X1B)@X1Flag database text file for download.     @X10│@X07"
  247.         PrintLn "@X0F            @X17│ @X1B          (@X1AG@X1B)@X1Foodbye, leave BBS.                       @X10│@X07"
  248.         PrintLn "@X0F            @X17│ @X1B          (@X1AQ@X1B)@X1Fuit to BBS.                              @X10│@X07"
  249.         PrintLn "@X0F            @X17└@X10───────────────────────────────────────────────────────┘@X07"
  250.     Endif
  251.     Newline
  252.     InputStr "                       @X0B(@X0AH@X0B)@X0Felp, Enter your selection@X0B ", STRING010, 15, 1, "EeQqVvGgFfHh", 2 + 4
  253.     STRING010 = Upper(STRING010)
  254.     If (STRING010 == "") Then
  255.         Cls
  256.         Goto LABEL007
  257.     Endif
  258.     If (STRING010 == "H") Then
  259.         If (Exist(PPEPath() + "HELP.SEN")) Then
  260.             Cls
  261.             DispFile PPEPath() + "HELP.SEN", 1 + 4
  262.             Wait
  263.             Goto LABEL008
  264.         Endif
  265.         Newline
  266.         Newline
  267.         PrintLn "                @X0CHelp file was not found! Reporting to SysOp..."
  268.         Log "SendMes v1.0 - HELP.SEN was not found!", 0
  269.         Wait
  270.         :LABEL008
  271.         Goto LABEL007
  272.     Endif
  273.     If (STRING010 == "F") Then
  274.         Newline
  275.         Newline
  276.         INTEGER002 = FileInf(PPEPath() + "SENDMESS.COD", 4)
  277.         If (Exist(PPEPath() + "SENDMESS.COD")) Goto LABEL009
  278.         PrintLn "      @X0CThere are no present records to flag in the database for download."
  279.         Wait
  280.         Goto LABEL007
  281.         :LABEL009
  282.         If (INTEGER002 == 0) Then
  283.             PrintLn "      @X0CThere are no present records to flag in the database for download."
  284.             Wait
  285.             Goto LABEL007
  286.         Endif
  287.         PrintLn "                   @X0CPlease wait@X0E...@X0CPreparing file for download@X0E..."
  288.         FOpen 6, PPEPath() + "SENDMESS.COD", 2, 0
  289.         FCreate 7, PPEPath() + "SENDMESS.TXT", 2, 0
  290.         FPutLn 7, "SendMes v1.00 - SENDMESS.TXT."
  291.         FPutLn 7, ""
  292.         INTEGER024 = 0
  293.         :LABEL010
  294.         If (Ferr(6)) Goto LABEL012
  295.         FSeek 6, INTEGER024, 0
  296.         INTEGER024 = INTEGER024 + 115
  297.         INTEGER002 = FileInf(PPEPath() + "SENDMESS.COD", 4)
  298.         If (INTEGER024 == INTEGER002 + 115) Then
  299.             Goto LABEL012
  300.         Endif
  301.         INTEGER026 = INTEGER026 + 1
  302.         FRead 6, STRING009, 25
  303.         FRead 6, STRING001, 50
  304.         FRead 6, STRING007, 1
  305.         FRead 6, DATE001, 2
  306.         FRead 6, TIME001, 4
  307.         FRead 6, STRING008, 25
  308.         FRead 6, DATE002, 2
  309.         FRead 6, TIME002, 4
  310.         FRead 6, STRING013, 1
  311.         FRead 6, STRING015, 1
  312.         If (STRING008 == "") Then
  313.             STRING008 = "NOT RECEIVED"
  314.         Endif
  315.         If (STRING007 == "Y") Then
  316.             STRING007 = "No"
  317.             Goto LABEL011
  318.         Endif
  319.         If (STRING007 == "N") Then
  320.             STRING007 = "Yes"
  321.             STRING009 = "<NOT -DISCLOSED>"
  322.         Endif
  323.         :LABEL011
  324.         FPutLn 7, "Record #: " + String(INTEGER026)
  325.         FPutLn 7, "Name of Sender         : " + STRING009
  326.         FPutLn 7, "Text the sender entered: " + STRING001
  327.         FPutLn 7, "Anonymous              : " + STRING007
  328.         FPutLn 7, "Day entered            : " + String(DATE001)
  329.         FPutLn 7, "Time entered           : " + String(TIME001)
  330.         FPutLn 7, "Receiver of text       : " + STRING008
  331.         FPutLn 7, "Day received           : " + String(DATE002)
  332.         FPutLn 7, "Time received          : " + String(TIME002)
  333.         FPutLn 7, ""
  334.         FPutLn 7, ""
  335.         Goto LABEL010
  336.         :LABEL012
  337.         FClose 6
  338.         FPutLn 7, "End Of File"
  339.         FClose 7
  340.         PrintLn "                    SENDMESS@X0F.@X0ETXT @X0Fis now flagged for download@X09!"
  341.         Flag PPEPath() + "SENDMESS.TXT"
  342.         Log "SendMes v1.0 - SENDMESS.TXT flagged for download.", 0
  343.         Wait
  344.         Goto LABEL007
  345.     Endif
  346.     If (STRING010 == "G") Then
  347.         Newline
  348.         Newline
  349.         STRING016 = YesChar()
  350.         InputYN "@X0F                           Are you sure ", STRING016, 11
  351.         STRING016 = Upper(STRING016)
  352.         If (STRING016 == "N") Then
  353.             Goto LABEL007
  354.         Endif
  355.         If (STRING016 == "Y") Then
  356.             Log "SendMes v1.0 - [Closed] at " + String(Time()), 0
  357.             Bye
  358.         Endif
  359.     Endif
  360.     If (STRING010 == "E") Then
  361.         :LABEL013
  362.         INTEGER010 = 0
  363.         Cls
  364.         PrintLn "@X3C┌────────────────────────────────────────────────────────────────────────────┐@X07"
  365.         PrintLn "@X3C│  @X3ESend@X3FMes @X3Cv@X391@X3F.@X3900 @X3F- @X3EText Entry Facility   @X39Copyright @X3F1994 @X3A(@X3Fc@X3A) @X38Scott M. Klassen │@X07"
  366.         PrintLn "@X38└────────────────────────────────────────────────────────────────────────────┘@X07"
  367.         Newline
  368.         Newline
  369.         PrintLn "@X0E                 Enter the text to send to the next caller@X0C..."
  370.         InputStr "          @X0A", STRING002, 11, 50, Mask_Ascii(), 2 + 4
  371.         STRING002 = Trim(STRING002, " ")
  372.         If (STRING002 == "") Then
  373.             Goto LABEL007
  374.         Endif
  375.         STRING002 = StripAtx(STRING002)
  376.         INTEGER001 = Len(STRING002)
  377.         If (INTEGER001 < 10) Then
  378.             Newline
  379.             Newline
  380.             PrintLn "                   @X0EYour text entry is to short, please try again."
  381.             Wait
  382.             STRING002 = ""
  383.             Goto LABEL007
  384.         Endif
  385.         STRING003 = Upper(STRING002)
  386.         If (Exist(PPEPath() + "TRASH.CAN")) Goto LABEL014
  387.         Log "SendMes v1.0 - TRASH.CAN file is missing!", 0
  388.         Goto LABEL017
  389.         Goto LABEL016
  390.         :LABEL014
  391.         FOpen 4, PPEPath() + "TRASH.CAN", 0, 0
  392.         :LABEL015
  393.         If (Ferr(4)) Goto LABEL016
  394.         FGet 4, STRING006
  395.         STRING006 = Upper(STRING006)
  396.         If (InStr(STRING003, STRING006) <> 0) Then
  397.             Newline
  398.             Newline
  399.             PrintLn STRING004
  400.             STRING002 = ""
  401.             BOOLEAN001 = 1
  402.             FClose 4
  403.             Log "SendMes v1.0 - [Closed] at " + String(Time()), 0
  404.             End
  405.         Endif
  406.         Goto LABEL015
  407.         :LABEL016
  408.         If (BOOLEAN001 == 0) Then
  409.             FClose 4
  410.         Endif
  411.         :LABEL017
  412.         STRING025 = "S"
  413.         Newline
  414.         Newline
  415.         InputStr "@X08                  (@X0FS@X08)@X0Fave @X08(@X0FA@X08)@X0Fbort @X08(@X0FE@X08)@X0Fdit message@X08:@X0F ", STRING025, 15, 1, "SsAaEe", 2 + 4
  416.         STRING025 = Upper(STRING025)
  417.         If (STRING025 == "A") Then
  418.             STRING026 = NoChar()
  419.             Newline
  420.             InputYN "                 @X0BAbort @X08(@X0Ey@X08/@X0EN@X08)@X0F: ", STRING026, 15
  421.             STRING026 = Upper(STRING026)
  422.             If (STRING026 == "Y") Then
  423.                 STRING002 = ""
  424.                 Goto LABEL007
  425.                 Goto LABEL018
  426.             Endif
  427.             Goto LABEL017
  428.         Endif
  429.         :LABEL018
  430.         If (STRING025 == "E") Then
  431.             Goto LABEL013
  432.         Endif
  433.         If (STRING021 == "Y") Then
  434.             Newline
  435.             Newline
  436.             STRING007 = YesChar()
  437.             InputYN "       @X0AWould you like your name to follow your message ", STRING007, 10
  438.             STRING007 = Upper(STRING007)
  439.             STRING015 = NoChar()
  440.             Goto LABEL019
  441.         Endif
  442.         STRING007 = "Y"
  443.         :LABEL019
  444.         If (STRING022 == "Y") Then
  445.             Newline
  446.             Newline
  447.             STRING015 = YesChar()
  448.             InputYN "@X0E     Would you like a return receipt generated after it's received ", STRING015, 10
  449.             Goto LABEL020
  450.         Endif
  451.         STRING015 = NoChar()
  452.         :LABEL020
  453.         If (Exist(PPEPath() + "SENDMESS.COD")) Goto LABEL021
  454.         FCreate 1, PPEPath() + "SENDMESS.COD", 2, 0
  455.         BOOLEAN003 = 1
  456.         Goto LABEL022
  457.         :LABEL021
  458.         FOpen 1, PPEPath() + "SENDMESS.COD", 2, 0
  459.         :LABEL022
  460.         INTEGER002 = FileInf(PPEPath() + "SENDMESS.COD", 4)
  461.         FSeek 1, 0, 2
  462.         FWrite 1, U_Name(), 25
  463.         FWrite 1, STRING002, 50
  464.         FWrite 1, STRING007, 1
  465.         FWrite 1, Date(), 2
  466.         FWrite 1, Time(), 4
  467.         FWrite 1, "", 25
  468.         FWrite 1, 0, 2
  469.         FWrite 1, 0, 4
  470.         FWrite 1, "N", 1
  471.         FWrite 1, STRING015, 1
  472.         FClose 1
  473.         INTEGER002 = FileInf(PPEPath() + "SENDMESS.COD", 4)
  474.         INTEGER023 = INTEGER002 / 115
  475.         STRING002 = ""
  476.         Log "SendMes v1.0 - Message sent to next caller. Rec #" + String(INTEGER023), 0
  477.         Newline
  478.         PrintLn "       @X0CYour message has been saved and is now ready for the next caller!"
  479.         Wait
  480.         Goto LABEL007
  481.     Endif
  482.     If (STRING010 == "Q") Then
  483.         Log "SendMes v1.0 - [Closed] at " + String(Time()), 0
  484.         If (BOOLEAN006 == 0) Then
  485.             Cls
  486.             PrintLn "@X0F[@X0CUNREGISTERED EVALUATION COPY !!!@X0F] @X0CPlease tell your SysOp to Register."
  487.             PrintLn "@X0FCall EDS Development @X0C@ @X08(@X0B812@X08) @X0B423@X08-@X0B3394 @X0Ffor support."
  488.             End
  489.             Goto LABEL023
  490.         Endif
  491.         Cls
  492.         End
  493.     Endif
  494.     :LABEL023
  495.     If (STRING010 == "V") Then
  496.         If (Exist(PPEPath() + "SENDMESS.COD")) Goto LABEL024
  497.         Newline
  498.         PrintLn "      @X0EPlease enter a message, there are no records at the present time."
  499.         Wait
  500.         Goto LABEL007
  501.         :LABEL024
  502.         INTEGER002 = FileInf(PPEPath() + "SENDMESS.COD", 4)
  503.         If (INTEGER002 == 0) Then
  504.             Newline
  505.             PrintLn "      Please enter a message, there are no records at the present time."
  506.             Wait
  507.             Goto LABEL007
  508.         Endif
  509.         INTEGER007 = 1
  510.         STRING012 = ""
  511.         Log "SendMes v1.0 - User viewed DataBase.", 0
  512.         INTEGER002 = FileInf(PPEPath() + "SENDMESS.COD", 4)
  513.         FOpen 5, PPEPath() + "SENDMESS.COD", 2, 0
  514.         FSeek 5, INTEGER002 - 115, 0
  515.         FRead 5, STRING009, 25
  516.         FRead 5, STRING001, 50
  517.         FRead 5, STRING007, 1
  518.         FRead 5, DATE001, 2
  519.         FRead 5, TIME001, 4
  520.         FRead 5, STRING008, 25
  521.         FRead 5, DATE002, 2
  522.         FRead 5, TIME002, 4
  523.         FRead 5, STRING013, 1
  524.         FRead 5, STRING015, 1
  525.         INTEGER006 = INTEGER002
  526.         INTEGER008 = INTEGER002 / 115
  527.         INTEGER009 = INTEGER008
  528.         If (STRING008 == "") Then
  529.             STRING008 = "NOT RECEIVED@X07"
  530.             DATE002 = I2S(DATE002, 10)
  531.             TIME002 = I2S(TIME002, 10)
  532.             DATE002 = "@X06N@X04/@X06A@X07"
  533.             TIME002 = "@X06N@X04/@X06A@X07"
  534.         Endif
  535.         If (STRING007 == "Y") Then
  536.             STRING007 = "No"
  537.             Goto LABEL025
  538.         Endif
  539.         If (STRING007 == "N") Then
  540.             STRING007 = "Yes"
  541.             STRING009 = "@X03<@X0FNOT @X04- @X0FDISCLOSED@X03>@X07"
  542.         Endif
  543.         :LABEL025
  544.         While (BOOLEAN002 == 1) Do
  545.             :LABEL026
  546.             Cls
  547.             PrintLn "@X1F┌────────────────────────────────────────────────────────────────────────────┐@X07"
  548.             PrintLn "@X1F│  @X1ESend@X1AMes @X1Bv@X1E1.00 - @X1FDataBase Facility  @X1ACopyright @X1C(@X1Ec@X1C) @X1D1994 @X1FScott M. Klassen    @X18│@X07"
  549.             PrintLn "@X18└────────────────────────────────────────────────────────────────────────────┘@X07"
  550.             Newline
  551.             PrintLn "@X0CRECORD @X0A#@X0E" + String(INTEGER009) + " @X0Fof @X0E" + String(INTEGER008)
  552.             PrintLn "@X0FName of sender@X0E         :  @X09" + STRING009
  553.             PrintLn "@X0FText the sender entered@X0E:  @X0F" + Chr(34) + "@X0E" + STRING001 + "@X0F" + Chr(34)
  554.             PrintLn "Anonymous@X0E              :  @X0A" + STRING007
  555.             PrintLn "@X0FDay entered@X0E            :  @X0B" + String(DATE001)
  556.             PrintLn "@X0FTime entered@X0E           :  @X0B" + String(TIME001)
  557.             PrintLn "@X0FReceiver of text@X0E       :  @X09" + STRING008
  558.             PrintLn "@X0FDay received@X0E           :  @X0B" + String(DATE002)
  559.             PrintLn "@X0FTime received@X0E          :  @X0B" + String(TIME002)
  560.             Newline
  561.             InputStr "@X0E(@X0B+@X0E)@X0CAdvance 1 record @X0E(@X0B-@X0E)@X0CRetard 1 record @X0E(@X0BJ@X0E)@X0Cump to record @X0E(@X0BQ@X0E)@X0Cuit", STRING012, 11, 1, "Qq+-Jj", 2 + 4
  562.             If (Upper(STRING012) == "J") Then
  563.                 INTEGER011 = 1
  564.                 PrintLn 
  565.                 PrintLn "Jump to which record..."
  566.                 InputStr "Enter a number ", INTEGER011, 3, 5, "1234567890", 2 + 4
  567.                 If (INTEGER011 > INTEGER008) Then
  568.                     Newline
  569.                     PrintLn "@X0FRecord @X0C" + String(INTEGER011) + " @X0Fwas not found."
  570.                     Wait
  571.                     Goto LABEL026
  572.                 Endif
  573.                 If (INTEGER011 <= 0) Then
  574.                     Newline
  575.                     PrintLn "@X0FRecord @X0C" + String(INTEGER011) + " @X0Fwas not found."
  576.                     Wait
  577.                     Goto LABEL026
  578.                 Endif
  579.                 INTEGER010 = INTEGER011 * 115 - 115
  580.                 FSeek 5, INTEGER010, 0
  581.                 FRead 5, STRING009, 25
  582.                 FRead 5, STRING001, 50
  583.                 FRead 5, STRING007, 1
  584.                 FRead 5, DATE001, 2
  585.                 FRead 5, TIME001, 4
  586.                 FRead 5, STRING008, 25
  587.                 FRead 5, DATE002, 2
  588.                 FRead 5, TIME002, 4
  589.                 FRead 5, STRING013, 1
  590.                 FRead 5, STRING015, 1
  591.                 INTEGER006 = INTEGER010
  592.                 INTEGER009 = INTEGER011
  593.                 If (STRING008 == "") Then
  594.                     STRING008 = "NOT RECEIVED@X07"
  595.                     DATE002 = I2S(DATE002, 10)
  596.                     TIME002 = I2S(TIME002, 10)
  597.                     DATE002 = "@X06N@X04/@X06A@X07"
  598.                     TIME002 = "@X06N@X04/@X06A@X07"
  599.                 Endif
  600.                 If (STRING007 == "Y") Then
  601.                     STRING007 = "No"
  602.                     Continue
  603.                 Endif
  604.                 If (STRING007 == "N") Then
  605.                     STRING007 = "Yes"
  606.                     STRING009 = "@X03<@X0FNOT @X04- @X0FDISCLOSED@X03>@X07"
  607.                 Endif
  608.                 Goto LABEL026
  609.             Endif
  610.             If (Upper(STRING012) == "Q") Then
  611.                 INTEGER006 = 0
  612.                 BOOLEAN002 = 1
  613.                 FClose 5
  614.                 If (STRING008 == "NOT RECEIVED@X07") Then
  615.                     STRING008 = ""
  616.                 Endif
  617.                 Goto LABEL007
  618.             Endif
  619.             If (STRING012 == "+") Then
  620.                 If (INTEGER002 == 115) Then
  621.                     Continue
  622.                 Endif
  623.                 INTEGER006 = INTEGER006 + 115
  624.                 INTEGER009 = INTEGER009 + 1
  625.                 If (INTEGER006 >= INTEGER002) Then
  626.                     INTEGER006 = 0
  627.                     INTEGER009 = 1
  628.                 Endif
  629.                 FSeek 5, INTEGER006, 0
  630.                 FRead 5, STRING009, 25
  631.                 FRead 5, STRING001, 50
  632.                 FRead 5, STRING007, 1
  633.                 FRead 5, DATE001, 2
  634.                 FRead 5, TIME001, 4
  635.                 FRead 5, STRING008, 25
  636.                 FRead 5, DATE002, 2
  637.                 FRead 5, TIME002, 4
  638.                 FRead 5, STRING013, 1
  639.                 FRead 5, STRING015, 1
  640.             Endif
  641.             If (STRING012 == "-") Then
  642.                 INTEGER009 = INTEGER009 - 1
  643.                 If (INTEGER009 <= 0) Then
  644.                     INTEGER009 = INTEGER002 / 115
  645.                 Endif
  646.                 If (INTEGER002 == 115) Then
  647.                     Continue
  648.                 Endif
  649.                 If (INTEGER006 == 115) Then
  650.                     INTEGER006 = 0
  651.                     INTEGER009 = 1
  652.                     Goto LABEL027
  653.                 Endif
  654.                 INTEGER006 = INTEGER006 - 115
  655.                 If (INTEGER006 == INTEGER002 - 115) Then
  656.                     INTEGER006 = INTEGER006 - 115
  657.                 Endif
  658.                 If (INTEGER002 / 115 == 2) Then
  659.                     If (INTEGER007 == 1) Then
  660.                         INTEGER007 = 0
  661.                         Goto LABEL027
  662.                     Endif
  663.                 Endif
  664.                 If (INTEGER006 <= 0) Then
  665.                     INTEGER006 = INTEGER002 - 115
  666.                 Endif
  667.                 :LABEL027
  668.                 FSeek 5, INTEGER006, 0
  669.                 FRead 5, STRING009, 25
  670.                 FRead 5, STRING001, 50
  671.                 FRead 5, STRING007, 1
  672.                 FRead 5, DATE001, 2
  673.                 FRead 5, TIME001, 4
  674.                 FRead 5, STRING008, 25
  675.                 FRead 5, DATE002, 2
  676.                 FRead 5, TIME002, 4
  677.                 FRead 5, STRING013, 1
  678.                 FRead 5, STRING015, 1
  679.             Endif
  680.             If (STRING012 == "") Then
  681.                 Continue
  682.             Endif
  683.             If (STRING008 == "") Then
  684.                 STRING008 = "NOT RECEIVED@X07"
  685.                 DATE002 = I2S(DATE002, 10)
  686.                 TIME002 = I2S(TIME002, 10)
  687.                 DATE002 = "@X06N@X04/@X06A@X07"
  688.                 TIME002 = "@X06N@X04/@X06A@X07"
  689.             Endif
  690.             If (STRING007 == "Y") Then
  691.                 STRING007 = "No"
  692.                 Continue
  693.             Endif
  694.             If (STRING007 == "N") Then
  695.                 STRING007 = "Yes"
  696.                 STRING009 = "@X03<@X0FNOT @X04- @X0FDISCLOSED@X03>@X07"
  697.             Endif
  698.         EndWhile
  699.     Endif
  700.     INTEGER006 = 0
  701.     BOOLEAN002 = 1
  702.     FClose 5
  703.     Goto LABEL007
  704.     :LABEL028
  705.     STRING010 = ""
  706.     Cls
  707.     If (Exist(PPEPath() + "SMAIN.SEN")) Then
  708.         DispFile PPEPath() + "SMAIN.SEN", 1 + 4
  709.     Else
  710.         PrintLn "            @X19┌─@X10┐@X19┌─@X10┐@X19┌─@X10┐@X19┌─@X10┐@X19┌─@X10┐@X19┌─@X10┐@X19┌─@X10┐@X19┌─@X10┐@X19┌─@X10┐@X19┌─@X10┐@X19┌─@X10┐@X19┌─@X10┐@X19┌─@X10┐@X19┌─@X10┐@X19┌─@X10┐@X19┌─@X10┐@X19┌─@X10┐@X19┌─@X10┐@X19┌─@X10┐@X07"
  711.         PrintLn "@X0F            @X19└@X10─┘@X19└@X10─┘@X19└@X10─┘@X19└@X10─┘@X19└@X10─┘@X19└@X10─┘@X19└@X10─┘@X19└@X10─┘@X19└@X10─┘@X19└@X10─┘@X19└@X10─┘@X19└@X10─┘@X19└@X10─┘@X19└@X10─┘@X19└@X10─┘@X19└@X10─┘@X19└@X10─┘@X19└@X10─┘@X19└@X10─┘@X07"
  712.         PrintLn "            @X10 @X19┌──────────────────────────────────────────────────────@X10┐@X07"
  713.         PrintLn "            @X10 @X19│  @X10┌────@X19┐             @X1FS@X1Eysop @X1FM@X1Eenu               @X10┌────@X19┐  @X10│@X07"
  714.         PrintLn "            @X10 @X19│  @X10│@X18■■■■@X19│       ⌠@X10┌───────────────────@X19┐⌠        @X10│@X18■■■■@X19│  @X10│@X07"
  715.         PrintLn "            @X10 @X19│  @X10└@X19────┘       ⌡@X10│ @X13° @X1ES@X1Fend@X1EM@X1Fes @X1Bv@X1F1@X17.@X1F0 @X13°  @X19│⌡        @X10└@X19────┘  @X10│@X07"
  716.         PrintLn "            @X10 @X19│                @X10└@X19───────────────────┘                 @X10│@X07"
  717.         PrintLn "            @X10 @X19│        @X1BCopyright @X17(@X1Dc@X17) @X1E1993-94 @X1AScott M. Klassen        @X10│@X07"
  718.         PrintLn "            @X10 └──────────────────────────────────────────────────────┘@X07"
  719.         PrintLn "            @X19┌─@X10┐@X19┌─@X10┐@X19┌─@X10┐@X19┌─@X10┐@X19┌─@X10┐@X19┌─@X10┐@X19┌─@X10┐@X19┌─@X10┐@X19┌─@X10┐@X19┌─@X10┐@X19┌─@X10┐@X19┌─@X10┐@X19┌─@X10┐@X19┌─@X10┐@X19┌─@X10┐@X19┌─@X10┐@X19┌─@X10┐@X19┌─@X10┐@X19┌─@X10┐@X07"
  720.         PrintLn "@X0F            @X19└@X10─┘@X19└@X10─┘@X19└@X10─┘@X19└@X10─┘@X19└@X10─┘@X19└@X10─┘@X19└@X10─┘@X19└@X10─┘@X19└@X10─┘@X19└@X10─┘@X19└@X10─┘@X19└@X10─┘@X19└@X10─┘@X19└@X10─┘@X19└@X10─┘@X19└@X10─┘@X19└@X10─┘@X19└@X10─┘@X19└@X10─┘@X07"
  721.         PrintLn "@X0F            @X17┌───────────────────────────────────────────────────────@X10┐@X07"
  722.         PrintLn "@X0F            @X17│           @X1B(@X1AE@X1B)@X1Fnter text to send to next user.          @X10│@X07"
  723.         PrintLn "@X0F            @X17│           @X1B(@X1AV@X1B)@X1Fiew the database of messages.            @X10│@X07"
  724.         PrintLn "@X0F            @X17│ @X1B          (@X1AP@X1B)@X1Fack the SENDMESS.COD file.               @X10│@X07"
  725.         PrintLn "@X0F            @X17│ @X1B          (@X1AC@X1B)@X1Fonfiguration toggles.                    @X10│@X07"
  726.         PrintLn "@X0F            @X17│ @X1B          (@X1AF@X1B)@X1Fall back to the User Menu.               @X10│@X07"
  727.         PrintLn "@X0F            @X17│ @X1B          (@X1AG@X1B)@X1Foodbye, leave BBS.                       @X10│@X07"
  728.         PrintLn "@X0F            @X17│ @X1B          (@X1AQ@X1B)@X1Fuit to BBS.                              @X10│@X07"
  729.         PrintLn "@X0F            @X17└@X10───────────────────────────────────────────────────────┘@X07"
  730.     Endif
  731.     Newline
  732.     InputStr "                       @X0B(@X0AH@X0B)@X0Felp, Enter your selection@X0B ", STRING010, 15, 1, "EeQqVvPpFfGgCcHh", 2 + 4
  733.     STRING010 = Upper(STRING010)
  734.     If (STRING010 == "") Then
  735.         Cls
  736.         Goto LABEL028
  737.     Endif
  738.     If (STRING010 == "H") Then
  739.         If (Exist(PPEPath() + "SHELP.SEN")) Then
  740.             Cls
  741.             DispFile PPEPath() + "SHELP.SEN", 1 + 4
  742.             Wait
  743.             Goto LABEL029
  744.         Endif
  745.         Newline
  746.         Newline
  747.         PrintLn "                @X0CHelp file was not found! Reporting to SysOp..."
  748.         Log "SendMes v1.0 - SHELP.SEN was not found!", 0
  749.         Wait
  750.         :LABEL029
  751.         Goto LABEL028
  752.     Endif
  753.     If (STRING010 == "C") Then
  754.         If (Exist(PPEPath() + "CONFIG.SEN")) Goto LABEL030
  755.         FCreate 2, PPEPath() + "CONFIG.SEN", 2, 0
  756.         FSeek 2, 0, 0
  757.         FWrite 2, "Y", 1
  758.         FWrite 2, 7, 4
  759.         FWrite 2, "Y", 1
  760.         FWrite 2, 0, 5
  761.         FClose 2
  762.         Newline
  763.         PrintLn "          @X0CConfiguration file was not found, reseting to defaults.@X07"
  764.         Wait
  765.         :LABEL030
  766.         FOpen 2, PPEPath() + "CONFIG.SEN", 2, 0
  767.         :LABEL031
  768.         FSeek 2, 0, 0
  769.         FRead 2, STRING022, 1
  770.         FRead 2, INTEGER025, 4
  771.         FRead 2, STRING021, 1
  772.         FRead 2, INTEGER027, 5
  773.         Cls
  774.         PrintLn "@X0F   @X19┌─────────────────────────────────┐@X07"
  775.         PrintLn "@X0F   @X19│ @X1ES@X1Fend@X1EM@X1Fes @X1C- @X1BConfiguration Toggles @X10│@X07"
  776.         PrintLn "@X0F   @X10└─────────────────────────────────┘@X07"
  777.         Newline
  778.         PrintLn "@X0B(@X0EA@X0B)@X0Fllow return receipts@X0C                :@X0A " + STRING022
  779.         PrintLn "@X0B(@X0EP@X0B)@X0Fack out date for receipts (days)    @X0C:@X0A " + String(INTEGER025)
  780.         PrintLn "@X0FAllow anonymous @X0B(@X0EM@X0B)@X0Fessages@X0C             :@X0A " + STRING021
  781.         PrintLn "@X0B(@X0EC@X0B)@X0Fonfrence number for return receipts @X0C:@X0A " + String(INTEGER027)
  782.         PrintLn "@X0B(@X0EQ@X0B)@X0Fuit to Sysop Menu."
  783.         InputStr "@X0F @X0CEnter your toggle@X0B ", STRING023, 15, 1, "CcAaPpMmQq", 2 + 4
  784.         STRING023 = Upper(STRING023)
  785.         If (STRING023 == "Q") Then
  786.             FClose 2
  787.             Goto LABEL028
  788.         Endif
  789.         If (STRING023 == "") Then
  790.             Goto LABEL031
  791.         Endif
  792.         If (STRING023 == "C") Then
  793.             FSeek 2, 6, 0
  794.             Newline
  795.             Newline
  796.             InputStr "Enter the confrence number where return receipts are placed: ", INTEGER027, 15, 5, "0123456789", 2 + 4
  797.             FWrite 2, INTEGER027, 5
  798.             Goto LABEL031
  799.         Endif
  800.         If (STRING023 == "A") Then
  801.             FSeek 2, 0, 0
  802.             If (STRING022 == "N") Then
  803.                 FWrite 2, "Y", 1
  804.                 Goto LABEL032
  805.             Endif
  806.             If (STRING022 == "Y") Then
  807.                 FWrite 2, "N", 1
  808.             Endif
  809.             :LABEL032
  810.             Goto LABEL031
  811.         Endif
  812.         If (STRING023 == "P") Then
  813.             INTEGER002 = FileInf(PPEPath() + "SENDMESS.COD", 4)
  814.             FSeek 2, 1, 0
  815.             Newline
  816.             Newline
  817.             InputStr "Enter a number of days until the receipts pack out: ", INTEGER025, 15, 4, "0123456789", 2 + 4
  818.             FWrite 2, INTEGER025, 4
  819.             Goto LABEL031
  820.         Endif
  821.         If (STRING023 == "M") Then
  822.             INTEGER002 = FileInf(PPEPath() + "SENDMESS.COD", 4)
  823.             FSeek 2, 5, 0
  824.             If (STRING021 == "N") Then
  825.                 FWrite 2, "Y", 1
  826.                 Goto LABEL033
  827.             Endif
  828.             If (STRING021 == "Y") Then
  829.                 FWrite 2, "N", 1
  830.             Endif
  831.             :LABEL033
  832.             Goto LABEL031
  833.         Endif
  834.     Endif
  835.     If (STRING010 == "G") Then
  836.         Newline
  837.         Newline
  838.         STRING016 = YesChar()
  839.         InputYN "@X0F                          Are you sure ", STRING016, 11
  840.         STRING016 = Upper(STRING016)
  841.         If (STRING016 == "N") Then
  842.             Goto LABEL028
  843.         Endif
  844.         If (STRING016 == "Y") Then
  845.             Log "SendMes v1.0 - [Closed] at " + String(Time()), 0
  846.             Bye
  847.         Endif
  848.     Endif
  849.     If (STRING010 == "F") Then
  850.         Goto LABEL007
  851.     Endif
  852.     If (STRING010 == "E") Then
  853.         :LABEL034
  854.         INTEGER010 = 0
  855.         Cls
  856.         PrintLn "@X3C┌────────────────────────────────────────────────────────────────────────────┐@X07"
  857.         PrintLn "@X3C│  @X3ESend@X3FMes @X3Cv@X391@X3F.@X3900 @X3F- @X3EText Entry Facility   @X39Copyright @X3F1994 @X3A(@X3Fc@X3A) @X38Scott M. Klassen │@X07"
  858.         PrintLn "@X38└────────────────────────────────────────────────────────────────────────────┘@X07"
  859.         Newline
  860.         Newline
  861.         PrintLn "@X0E                 Enter the text to send to the next caller@X0C..."
  862.         InputStr "          @X0A", STRING002, 11, 50, Mask_Ascii(), 2 + 4
  863.         STRING002 = Trim(STRING002, " ")
  864.         If (STRING002 == "") Then
  865.             Goto LABEL028
  866.         Endif
  867.         STRING002 = StripAtx(STRING002)
  868.         INTEGER001 = Len(STRING002)
  869.         If (INTEGER001 < 10) Then
  870.             Newline
  871.             Newline
  872.             PrintLn "                   @X0EYour text entry is to short, please try again."
  873.             Wait
  874.             STRING002 = ""
  875.             Goto LABEL028
  876.         Endif
  877.         STRING003 = Upper(STRING002)
  878.         If (Exist(PPEPath() + "TRASH.CAN")) Goto LABEL035
  879.         Log "SendMes v1.0 - TRASH.CAN file is missing!", 0
  880.         Goto LABEL038
  881.         Goto LABEL037
  882.         :LABEL035
  883.         FOpen 4, PPEPath() + "TRASH.CAN", 0, 0
  884.         :LABEL036
  885.         If (Ferr(4)) Goto LABEL037
  886.         FGet 4, STRING006
  887.         STRING006 = Upper(STRING006)
  888.         If (InStr(STRING003, STRING006) <> 0) Then
  889.             Newline
  890.             Newline
  891.             PrintLn STRING004
  892.             STRING002 = ""
  893.             BOOLEAN001 = 1
  894.             FClose 4
  895.             Log "SendMes v1.0 - [Closed] at " + String(Time()), 0
  896.             End
  897.         Endif
  898.         Goto LABEL036
  899.         :LABEL037
  900.         If (BOOLEAN001 == 0) Then
  901.             FClose 4
  902.         Endif
  903.         :LABEL038
  904.         STRING025 = "S"
  905.         Newline
  906.         Newline
  907.         InputStr "                  @X08(@X0FS@X08)@X0Fave @X08(@X0FA@X08)@X0Fbort @X08(@X0FE@X08)@X0Fdit message@X08:@X0F ", STRING025, 15, 1, "SsAaEe", 2 + 4
  908.         STRING025 = Upper(STRING025)
  909.         If (STRING025 == "A") Then
  910.             STRING026 = NoChar()
  911.             Newline
  912.             InputYN "                 @X0BAbort @X08(@X0Ey@X08/@X0EN@X08)@X0F: ", STRING026, 15
  913.             STRING026 = Upper(STRING026)
  914.             If (STRING026 == "Y") Then
  915.                 STRING002 = ""
  916.                 Goto LABEL028
  917.                 Goto LABEL039
  918.             Endif
  919.             Goto LABEL038
  920.         Endif
  921.         :LABEL039
  922.         If (STRING025 == "E") Then
  923.             Goto LABEL034
  924.         Endif
  925.         If (STRING021 == "Y") Then
  926.             Newline
  927.             Newline
  928.             STRING007 = YesChar()
  929.             InputYN "          @X0BWould you like your name to follow your message ", STRING007, 10
  930.             STRING007 = Upper(STRING007)
  931.             Goto LABEL040
  932.         Endif
  933.         STRING007 = "Y"
  934.         :LABEL040
  935.         If (STRING022 == "Y") Then
  936.             STRING015 = YesChar()
  937.             Newline
  938.             Newline
  939.             InputYN "         @X0EWould you like a return receipt generated after it's received ", STRING015, 10
  940.             Goto LABEL041
  941.         Endif
  942.         STRING015 = NoChar()
  943.         :LABEL041
  944.         If (Exist(PPEPath() + "SENDMESS.COD")) Goto LABEL042
  945.         FCreate 1, PPEPath() + "SENDMESS.COD", 2, 0
  946.         BOOLEAN003 = 1
  947.         Goto LABEL043
  948.         :LABEL042
  949.         FOpen 1, PPEPath() + "SENDMESS.COD", 2, 0
  950.         :LABEL043
  951.         INTEGER002 = FileInf(PPEPath() + "SENDMESS.COD", 4)
  952.         FSeek 1, 0, 2
  953.         FWrite 1, U_Name(), 25
  954.         FWrite 1, STRING002, 50
  955.         FWrite 1, STRING007, 1
  956.         FWrite 1, Date(), 2
  957.         FWrite 1, Time(), 4
  958.         FWrite 1, "", 25
  959.         FWrite 1, 0, 2
  960.         FWrite 1, 0, 4
  961.         FWrite 1, "N", 1
  962.         FWrite 1, STRING015, 1
  963.         FClose 1
  964.         INTEGER002 = FileInf(PPEPath() + "SENDMESS.COD", 4)
  965.         INTEGER023 = INTEGER002 / 115
  966.         STRING002 = ""
  967.         Log "SendMes v1.0 - Message sent to next caller. Rec #" + String(INTEGER023), 0
  968.         Newline
  969.         PrintLn "        @X0CYour message has been saved and is now ready for the next caller!"
  970.         Wait
  971.         Goto LABEL028
  972.     Endif
  973.     If (STRING010 == "P") Then
  974.         Newline
  975.         INTEGER002 = FileInf(PPEPath() + "SENDMESS.COD", 4)
  976.         INTEGER015 = INTEGER002 / 115
  977.         If (INTEGER002 == 0) Then
  978.             PrintLn "                    @X0CThere are no current messages to pack."
  979.             Wait
  980.             Goto LABEL028
  981.         Endif
  982.         If (Exist(PPEPath() + "SENDMESS.COD")) Goto LABEL044
  983.         PrintLn "                    @X0CThere are no current messages to pack."
  984.         Wait
  985.         Goto LABEL028
  986.         :LABEL044
  987.         Newline
  988.         PrintLn "@X0F               Current File Size@X0A: @X0B" + String(INTEGER002) + " @X0FCurrent Number of Records@X0A: @X0B" + String(INTEGER015)
  989.         Newline
  990.         Print "@X0C                         Packing DataBase file@X04... "
  991.         Newline
  992.         FOpen 6, PPEPath() + "SENDMESS.COD", 2, 0
  993.         FCreate 7, PPEPath() + "TEMP.$$$", 2, 0
  994.         INTEGER013 = 0
  995.         INTEGER016 = 0
  996.         For INTEGER014 = 1 To INTEGER015
  997.             FSeek 6, INTEGER013, 0
  998.             FSeek 7, INTEGER016, 0
  999.             INTEGER013 = INTEGER013 + 115
  1000.             FRead 6, STRING009, 25
  1001.             FRead 6, STRING001, 50
  1002.             FRead 6, STRING007, 1
  1003.             FRead 6, DATE001, 2
  1004.             FRead 6, TIME001, 4
  1005.             FRead 6, STRING008, 25
  1006.             FRead 6, DATE002, 2
  1007.             FRead 6, TIME002, 4
  1008.             FRead 6, STRING013, 1
  1009.             FRead 6, STRING015, 1
  1010.             If (STRING013 <> "Y") Then
  1011.                 INTEGER016 = INTEGER016 + 115
  1012.                 FWrite 7, STRING009, 25
  1013.                 FWrite 7, STRING001, 50
  1014.                 FWrite 7, STRING007, 1
  1015.                 FWrite 7, DATE001, 2
  1016.                 FWrite 7, TIME001, 4
  1017.                 FWrite 7, STRING008, 25
  1018.                 FWrite 7, DATE002, 2
  1019.                 FWrite 7, TIME002, 4
  1020.                 FWrite 7, STRING013, 1
  1021.                 FWrite 7, STRING015, 1
  1022.             Endif
  1023.         Next
  1024.         FClose 6
  1025.         FClose 7
  1026.         Delete PPEPath() + "SENDMESS.COD"
  1027.         Rename PPEPath() + "TEMP.$$$", PPEPath() + "SENDMESS.COD"
  1028.         INTEGER028 = INTEGER015 - INTEGER016 / 115
  1029.         PrintLn "@X0F                       @X0BNumber of records deleted@X08:@X0C " + String(INTEGER028)
  1030.         PrintLn "@X0F                     DataBase Packed Successfully!"
  1031.         Log "SendMes v1.0 - DataBase Packed Successfully!", 0
  1032.         Wait
  1033.         Goto LABEL028
  1034.     Endif
  1035.     If (STRING010 == "Q") Then
  1036.         Log "SendMes v1.0 - [Closed] at " + String(Time()), 0
  1037.         If (BOOLEAN006 == 0) Then
  1038.             Cls
  1039.             PrintLn "@X0F[@X0CUNREGISTERED EVALUATION COPY !!!@X0F] @X0CPlease tell your SysOp to Register."
  1040.             PrintLn "@X0FCall EDS Development @X0C@ @X08(@X0B812@X08) @X0B423@X08-@X0B3394 @X0Ffor support."
  1041.             End
  1042.             Goto LABEL045
  1043.         Endif
  1044.         Cls
  1045.         End
  1046.     Endif
  1047.     :LABEL045
  1048.     If (STRING010 == "V") Then
  1049.         If (Exist(PPEPath() + "SENDMESS.COD")) Goto LABEL046
  1050.         Newline
  1051.         PrintLn "      @X0EPlease enter a message, there are no records at the present time."
  1052.         Wait
  1053.         Goto LABEL028
  1054.         :LABEL046
  1055.         INTEGER002 = FileInf(PPEPath() + "SENDMESS.COD", 4)
  1056.         If (INTEGER002 == 0) Then
  1057.             Newline
  1058.             PrintLn "      Please enter a message, there are no records at the present time."
  1059.             Wait
  1060.             Goto LABEL028
  1061.         Endif
  1062.         Log "SendMes v1.0 - User viewed DataBase.", 0
  1063.         INTEGER007 = 1
  1064.         STRING012 = ""
  1065.         INTEGER002 = FileInf(PPEPath() + "SENDMESS.COD", 4)
  1066.         FOpen 5, PPEPath() + "SENDMESS.COD", 2, 0
  1067.         FSeek 5, INTEGER002 - 115, 0
  1068.         FRead 5, STRING009, 25
  1069.         FRead 5, STRING001, 50
  1070.         FRead 5, STRING007, 1
  1071.         FRead 5, DATE001, 2
  1072.         FRead 5, TIME001, 4
  1073.         FRead 5, STRING008, 25
  1074.         FRead 5, DATE002, 2
  1075.         FRead 5, TIME002, 4
  1076.         FRead 5, STRING013, 1
  1077.         FRead 5, STRING015, 1
  1078.         INTEGER006 = INTEGER002
  1079.         INTEGER008 = INTEGER002 / 115
  1080.         INTEGER009 = INTEGER008
  1081.         If (STRING008 == "") Then
  1082.             STRING008 = "NOT RECEIVED@X07"
  1083.             DATE002 = I2S(DATE002, 10)
  1084.             TIME002 = I2S(TIME002, 10)
  1085.             DATE002 = "@X06N@X04/@X06A@X07"
  1086.             TIME002 = "@X06N@X04/@X06A@X07"
  1087.         Endif
  1088.         If (STRING013 == "Y") Then
  1089.             STRING013 = "Yes"
  1090.             Goto LABEL047
  1091.         Endif
  1092.         STRING013 = "No"
  1093.         :LABEL047
  1094.         If (STRING015 == "Y") Then
  1095.             STRING015 = "Yes"
  1096.             Goto LABEL048
  1097.         Endif
  1098.         STRING015 = "No"
  1099.         :LABEL048
  1100.         If (STRING007 == "Y") Then
  1101.             STRING007 = "No"
  1102.             Goto LABEL049
  1103.         Endif
  1104.         If (STRING007 == "N") Then
  1105.             STRING007 = "Yes"
  1106.         Endif
  1107.         :LABEL049
  1108.         While (BOOLEAN002 == 1) Do
  1109.             :LABEL050
  1110.             Cls
  1111.             PrintLn "@X1F┌────────────────────────────────────────────────────────────────────────────┐@X07"
  1112.             PrintLn "@X1F│  @X1ESend@X1AMes @X1Bv@X1E1.00 - @X1FDataBase Facility  @X1ACopyright @X1C(@X1Ec@X1C) @X1D1994 @X1FScott M. Klassen    @X18│@X07"
  1113.             PrintLn "@X18└────────────────────────────────────────────────────────────────────────────┘@X07"
  1114.             Newline
  1115.             PrintLn "@X0CRECORD @X0A#@X0E" + String(INTEGER009) + " @X0Fof @X0E" + String(INTEGER008)
  1116.             PrintLn "@X0FName of sender@X0E         :  @X09" + STRING009
  1117.             PrintLn "@X0FText the sender entered@X0E:  @X0F" + Chr(34) + "@X0E" + STRING001 + "@X0F" + Chr(34)
  1118.             PrintLn "Anonymous@X0E              :  @X0A" + STRING007
  1119.             PrintLn "@X0FDay entered@X0E            :  @X0B" + String(DATE001)
  1120.             PrintLn "@X0FTime entered@X0E           :  @X0B" + String(TIME001)
  1121.             PrintLn "@X0FReceiver of text@X0E       :  @X09" + STRING008
  1122.             PrintLn "@X0FDay received@X0E           :  @X0B" + String(DATE002)
  1123.             PrintLn "@X0FTime received@X0E          :  @X0B" + String(TIME002)
  1124.             PrintLn "@X0E(@X0BD@X0E)@X0Felete@X0E               :  @X0C" + STRING013
  1125.             PrintLn "@X0FRequest Return Receipt@X0E :  @X0C" + STRING015
  1126.             Newline
  1127.             InputStr "@X0E(@X0B+@X0E)@X0CAdvance 1 record @X0E(@X0B-@X0E)@X0CRetard 1 record @X0E(@X0BJ@X0E)@X0Cump to record @X0E(@X0BQ@X0E)@X0Cuit", STRING012, 11, 1, "Qq+-JjDd", 2 + 4
  1128.             If (Upper(STRING012) == "D") Then
  1129.                 INTEGER010 = INTEGER009 * 115 - 115
  1130.                 FSeek 5, INTEGER010 + 113, 0
  1131.                 FRead 5, STRING014, 1
  1132.                 If (STRING014 == "N") Then
  1133.                     FSeek 5, INTEGER010 + 113, 0
  1134.                     FWrite 5, "Y", 1
  1135.                     INTEGER006 = INTEGER010
  1136.                     INTEGER012 = 1
  1137.                     Goto LABEL053
  1138.                 Endif
  1139.                 If (STRING014 == "Y") Then
  1140.                     FSeek 5, INTEGER010 + 113, 0
  1141.                     FWrite 5, "N", 1
  1142.                     INTEGER006 = INTEGER010
  1143.                     INTEGER012 = 1
  1144.                     BOOLEAN004 = 1
  1145.                     Goto LABEL053
  1146.                 Endif
  1147.                 PrintLn STRING014
  1148.                 Wait
  1149.             Endif
  1150.             If (Upper(STRING012) == "J") Then
  1151.                 INTEGER010 = 0
  1152.                 INTEGER011 = 1
  1153.                 PrintLn 
  1154.                 PrintLn "Jump to which record..."
  1155.                 InputStr "Enter a number ", INTEGER011, 11, 5, "1234567890", 2 + 4
  1156.                 If (INTEGER011 > INTEGER008) Then
  1157.                     Newline
  1158.                     PrintLn "@X0FRecord @X0C" + String(INTEGER011) + " @X0Fwas not found."
  1159.                     Wait
  1160.                     Goto LABEL050
  1161.                 Endif
  1162.                 If (INTEGER011 <= 0) Then
  1163.                     Newline
  1164.                     PrintLn "@X0FRecord @X0C" + String(INTEGER011) + " @X0Fwas not found."
  1165.                     Wait
  1166.                     Goto LABEL050
  1167.                 Endif
  1168.                 INTEGER010 = INTEGER011 * 115 - 115
  1169.                 FSeek 5, INTEGER010, 0
  1170.                 FRead 5, STRING009, 25
  1171.                 FRead 5, STRING001, 50
  1172.                 FRead 5, STRING007, 1
  1173.                 FRead 5, DATE001, 2
  1174.                 FRead 5, TIME001, 4
  1175.                 FRead 5, STRING008, 25
  1176.                 FRead 5, DATE002, 2
  1177.                 FRead 5, TIME002, 4
  1178.                 FRead 5, STRING013, 1
  1179.                 FRead 5, STRING015, 1
  1180.                 INTEGER006 = INTEGER010
  1181.                 INTEGER009 = INTEGER011
  1182.                 If (STRING008 == "") Then
  1183.                     STRING008 = "NOT RECEIVED@X07"
  1184.                     DATE002 = I2S(DATE002, 10)
  1185.                     TIME002 = I2S(TIME002, 10)
  1186.                     DATE002 = "@X0EN@X04/@X0EA@X07"
  1187.                     TIME002 = "@X0EN@X04/@X0EA@X07"
  1188.                 Endif
  1189.                 If (STRING013 == "Y") Then
  1190.                     STRING013 = "Yes"
  1191.                     Goto LABEL051
  1192.                 Endif
  1193.                 STRING013 = "No"
  1194.                 :LABEL051
  1195.                 If (STRING015 == "Y") Then
  1196.                     STRING015 = "Yes"
  1197.                     Goto LABEL052
  1198.                 Endif
  1199.                 STRING015 = "No"
  1200.                 :LABEL052
  1201.                 If (STRING007 == "Y") Then
  1202.                     STRING007 = "No"
  1203.                 Endif
  1204.                 If (STRING007 == "N") Then
  1205.                     STRING007 = "Yes"
  1206.                 Endif
  1207.                 Goto LABEL050
  1208.             Endif
  1209.             If (Upper(STRING012) == "Q") Then
  1210.                 INTEGER006 = 0
  1211.                 BOOLEAN002 = 1
  1212.                 FClose 5
  1213.                 If (STRING008 == "NOT RECEIVED@X07") Then
  1214.                     STRING008 = ""
  1215.                 Endif
  1216.                 Goto LABEL028
  1217.             Endif
  1218.             If (STRING012 == "+") Then
  1219.                 If (INTEGER002 == 115) Then
  1220.                     Continue
  1221.                 Endif
  1222.                 INTEGER006 = INTEGER006 + 115
  1223.                 INTEGER009 = INTEGER009 + 1
  1224.                 If (INTEGER006 >= INTEGER002) Then
  1225.                     INTEGER006 = 0
  1226.                     INTEGER009 = 1
  1227.                 Endif
  1228.                 FSeek 5, INTEGER006, 0
  1229.                 FRead 5, STRING009, 25
  1230.                 FRead 5, STRING001, 50
  1231.                 FRead 5, STRING007, 1
  1232.                 FRead 5, DATE001, 2
  1233.                 FRead 5, TIME001, 4
  1234.                 FRead 5, STRING008, 25
  1235.                 FRead 5, DATE002, 2
  1236.                 FRead 5, TIME002, 4
  1237.                 FRead 5, STRING013, 1
  1238.                 FRead 5, STRING015, 1
  1239.             Endif
  1240.             If (STRING012 == "-") Then
  1241.                 If (INTEGER002 == 115) Then
  1242.                     Continue
  1243.                 Endif
  1244.                 INTEGER009 = INTEGER009 - 1
  1245.                 INTEGER006 = INTEGER009 * 115 - 115
  1246.                 If (INTEGER009 < 1) Then
  1247.                     INTEGER009 = INTEGER002 / 115
  1248.                 Endif
  1249.                 If (INTEGER002 / 115 == 2) Then
  1250.                     If (INTEGER006 == -115) Then
  1251.                         INTEGER006 = INTEGER002 - 115
  1252.                     Endif
  1253.                 Endif
  1254.                 If (INTEGER002 / 115 <> 2) Then
  1255.                     If (INTEGER006 < 0) Then
  1256.                         INTEGER006 = INTEGER002 - 115
  1257.                     Endif
  1258.                 Endif
  1259.                 :LABEL053
  1260.                 FSeek 5, INTEGER006, 0
  1261.                 FRead 5, STRING009, 25
  1262.                 FRead 5, STRING001, 50
  1263.                 FRead 5, STRING007, 1
  1264.                 FRead 5, DATE001, 2
  1265.                 FRead 5, TIME001, 4
  1266.                 FRead 5, STRING008, 25
  1267.                 FRead 5, DATE002, 2
  1268.                 FRead 5, TIME002, 4
  1269.                 FRead 5, STRING013, 1
  1270.                 FRead 5, STRING015, 1
  1271.             Endif
  1272.             If (STRING012 == "") Then
  1273.                 Continue
  1274.             Endif
  1275.             If (STRING008 == "") Then
  1276.                 STRING008 = "NOT RECEIVED@X07"
  1277.                 DATE002 = I2S(DATE002, 10)
  1278.                 TIME002 = I2S(TIME002, 10)
  1279.                 DATE002 = "@X06N@X04/@X06A@X07"
  1280.                 TIME002 = "@X06N@X04/@X06A@X07"
  1281.             Endif
  1282.             If (STRING013 == "Y") Then
  1283.                 STRING013 = "Yes"
  1284.                 Goto LABEL054
  1285.             Endif
  1286.             STRING013 = "No"
  1287.             :LABEL054
  1288.             If (STRING007 == "Y") Then
  1289.                 STRING007 = "No"
  1290.             Endif
  1291.             If (STRING007 == "N") Then
  1292.                 STRING007 = "Yes"
  1293.             Endif
  1294.             If (STRING015 == "Y") Then
  1295.                 STRING015 = "Yes"
  1296.                 Continue
  1297.             Endif
  1298.             STRING015 = "No"
  1299.         EndWhile
  1300.     Endif
  1301.     INTEGER006 = 0
  1302.     BOOLEAN002 = 1
  1303.     FClose 5
  1304.     Goto LABEL028
  1305.  
  1306. ;------------------------------------------------------------------------------
  1307. ;
  1308. ; Usage report (before postprocessing)
  1309. ;
  1310. ; ■ Statements used :
  1311. ;
  1312. ;    7       End
  1313. ;    16      Cls
  1314. ;    30      Wait
  1315. ;    255     Goto 
  1316. ;    247     Let 
  1317. ;    4       Print 
  1318. ;    127     PrintLn 
  1319. ;    151     If 
  1320. ;    4       DispFile 
  1321. ;    5       FCreate 
  1322. ;    13      FOpen 
  1323. ;    23      FClose 
  1324. ;    6       FGet 
  1325. ;    14      FPutLn 
  1326. ;    1       GetUser
  1327. ;    1       Delete 
  1328. ;    17      Log 
  1329. ;    13      InputStr 
  1330. ;    8       InputYN 
  1331. ;    2       Delay 
  1332. ;    70      Newline
  1333. ;    2       Bye
  1334. ;    1       Rename 
  1335. ;    23      FSeek 
  1336. ;    109     FRead 
  1337. ;    42      FWrite 
  1338. ;    1       Flag 
  1339. ;
  1340. ;
  1341. ; ■ Functions used :
  1342. ;
  1343. ;    1       -
  1344. ;    6       *
  1345. ;    12      /
  1346. ;    160     +
  1347. ;    17      -
  1348. ;    109     ==
  1349. ;    4       <>
  1350. ;    7       <
  1351. ;    7       <=
  1352. ;    2       >
  1353. ;    9       >=
  1354. ;    151     !
  1355. ;    6       &&
  1356. ;    3       ||
  1357. ;    4       Len(
  1358. ;    24      Upper()
  1359. ;    1       Left()
  1360. ;    1       Right()
  1361. ;    5       Ferr()
  1362. ;    4       Chr()
  1363. ;    1       Asc()
  1364. ;    2       InStr()
  1365. ;    2       Trim()
  1366. ;    2       Date()
  1367. ;    9       Time()
  1368. ;    4       U_Name()
  1369. ;    5       NoChar()
  1370. ;    6       YesChar()
  1371. ;    2       StripAtx()
  1372. ;    36      String()
  1373. ;    2       Mask_Ascii()
  1374. ;    56      PPEPath()
  1375. ;    1       SysopSec()
  1376. ;    1       CurSec()
  1377. ;    17      Exist()
  1378. ;    12      I2S()
  1379. ;    13      FileInf()
  1380. ;
  1381. ;------------------------------------------------------------------------------
  1382. ;
  1383. ; Analysis flags : fs
  1384. ;
  1385. ; f - Flag files for download ■ 3
  1386. ;     This may be normal if a PPE needs to send some files, but since
  1387. ;     this statement allows flagging of any file on the hard disk, you
  1388. ;     have to be carefull. Check!
  1389. ;     ■ Search for : FLAG
  1390. ;
  1391. ; s - Sysop level access ■ 5
  1392. ;     Program is reading the sysop access level, this may be normal
  1393. ;     but still it is very suspect. It is the best way to give a user
  1394. ;     all priviledges. Check!
  1395. ;     ■ Search for : SYSOPSEC()
  1396. ;
  1397. ;------------------------------------------------------------------------------
  1398. ;
  1399. ; Postprocessing report
  1400. ;
  1401. ;    3       For/Next
  1402. ;    2       While/EndWhile
  1403. ;    132     If/Then or If/Then/Else
  1404. ;    0       Select Case
  1405. ;
  1406. ;------------------------------------------------------------------------------
  1407. ;                 AEGiS Corp - Break the routines, code against the machines!
  1408. ;------------------------------------------------------------------------------
  1409.