home *** CD-ROM | disk | FTP | other *** search
/ ftp.wwiv.com / ftp.wwiv.com.zip / ftp.wwiv.com / pub / INTERNET / IAB101.ZIP / IAB.PPE (.txt) < prev    next >
PCBoard Programming Language Executable  |  1993-11-14  |  21KB  |  1,077 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 1.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.     Boolean  BOOLEAN007
  26.     Integer  INTEGER001
  27.     Integer  INTEGER002
  28.     Integer  INTEGER003
  29.     Integer  INTEGER004
  30.     Integer  INTEGER005
  31.     Integer  INTEGER006
  32.     Integer  INTEGER007
  33.     Integer  INTEGER008
  34.     Integer  INTEGER009
  35.     Integer  INTEGER010
  36.     Integer  INTEGER011
  37.     Integer  INTEGER012
  38.     Integer  INTEGER013
  39.     Integer  INTEGER014
  40.     Integer  INTEGER015
  41.     Integer  INTEGER016
  42.     Integer  INTEGER017
  43.     Integer  INTEGER018
  44.     Integer  INTEGER019
  45.     Integer  INTEGER020
  46.     Integer  INTEGER021
  47.     Integer  INTEGER022
  48.     Integer  INTEGER023
  49.     Integer  INTEGER024
  50.     Integer  INTEGER025
  51.     Integer  INTEGER026
  52.     Integer  INTEGER027
  53.     Integer  INTEGER028
  54.     Integer  INTEGER029
  55.     Integer  INTEGER030
  56.     Integer  INTEGER031
  57.     Integer  INTEGER032
  58.     Integer  INTEGER033
  59.     Integer  INTEGER034
  60.     String   STRING001
  61.     String   STRING002
  62.     String   STRING003
  63.     String   STRING004
  64.     String   STRING005
  65.     String   STRING006
  66.     String   STRING007
  67.     String   STRING008
  68.     String   TSTRING009(5)
  69.     String   TSTRING010(101)
  70.     String   TSTRING011(101)
  71.     String   STRING012
  72.     String   STRING013
  73.     String   STRING014
  74.     String   STRING015
  75.     String   STRING016
  76.     String   STRING017
  77.     String   STRING018
  78.     String   STRING019
  79.     String   STRING020
  80.     String   STRING021
  81.     String   STRING022
  82.     String   STRING023
  83.     String   STRING024
  84.     String   STRING025
  85.     String   STRING026
  86.     String   TSTRING027(6)
  87.     String   STRING028
  88.     String   TSTRING029(9)
  89.     String   TSTRING030(6)
  90.     String   TSTRING031(8)
  91.     String   STRING032
  92.     String   STRING033
  93.     String   TSTRING034(3)
  94.     String   STRING035
  95.     String   STRING036
  96.     String   STRING037
  97.     String   STRING038
  98.     String   STRING039
  99.     String   STRING040
  100.     String   STRING041
  101.     String   STRING042
  102.     String   STRING043
  103.     String   STRING044
  104.     String   STRING045
  105.     String   STRING046
  106.     String   TSTRING047(6)
  107.     String   TSTRING048(4,6)
  108.  
  109. ;------------------------------------------------------------------------------
  110.  
  111.     STRING043 = Chr(13)
  112.     BOOLEAN007 = 0
  113.     BOOLEAN006 = 0
  114.     BOOLEAN004 = 0
  115.     BOOLEAN001 = 1
  116.     BOOLEAN005 = 0
  117.     BOOLEAN003 = 1
  118.     BOOLEAN002 = 1
  119.     INTEGER025 = 100
  120.     For INTEGER018 = 1 To 4
  121.         TSTRING009(INTEGER018) = "0"
  122.     Next
  123.     STRING037 = "@X0C"
  124.     STRING038 = "@X0E"
  125.     STRING039 = "@X0F"
  126.     STRING040 = "@X07"
  127.     STRING041 = "@X0A"
  128.     STRING042 = "@X09"
  129.     STRING045 = PPEPath() + "$$TEMP.TXT"
  130.     STRING036 = ""
  131.     TSTRING034(1) = "Address then Description"
  132.     TSTRING034(0) = "Description then Address"
  133.     STRING026 = "IAB v1.01"
  134.     STRING032 = "ON"
  135.     STRING033 = "OFF"
  136.     INTEGER008 = 0
  137.     INTEGER013 = 0
  138.     INTEGER014 = 0
  139.     INTEGER007 = 8
  140.     STRING025 = PPEPath() + "IAB.CNF"
  141.     INTEGER017 = 3
  142.     STRING017 = "To (Enter) = 'ALL'"
  143.     STRING018 = "To: (" + STRING041 + "<" + STRING039 + "Enter" + STRING041 + ">" + STRING038 + "=" + STRING039 + "list" + STRING038 + ") "
  144.     STRING019 = "To: (Enter)=abort "
  145.     STRING020 = "Subject (Enter)=abort "
  146.     STRING022 = NoChar()
  147.     TSTRING047(1) = "Error 1: File Not Found"
  148.     TSTRING047(2) = "Error 2: Insufficient Security to open an Address Book"
  149.     TSTRING047(3) = "Error 3: User Datafile Pointer Error - NOTIFY SYSOP"
  150.     TSTRING047(4) = "Error 4: Could not create file"
  151.     TSTRING047(5) = "Error 5: "
  152.     TSTRING031(1) = STRING041 + "MODIFY MENU: "
  153.     TSTRING031(2) = STRING041 + "[" + STRING039 + "A" + STRING041 + "]dd, "
  154.     TSTRING031(3) = STRING041 + "[" + STRING039 + "E" + STRING041 + "]dit, "
  155.     TSTRING031(4) = STRING041 + "[" + STRING039 + "D" + STRING041 + "]elete, "
  156.     TSTRING031(5) = STRING041 + "[" + STRING039 + "S" + STRING041 + "]ort, "
  157.     TSTRING031(6) = STRING041 + "[" + STRING039 + "H" + STRING041 + "]elp, "
  158.     TSTRING031(7) = STRING041 + "[" + STRING039 + "Q" + STRING041 + "]uit "
  159.     TSTRING030(1) = STRING041 + "SETUP MENU: "
  160.     TSTRING030(2) = STRING041 + "[" + STRING039 + "V" + STRING041 + "]iew Mode, "
  161.     TSTRING030(3) = STRING041 + "Turn [" + STRING039 + "A" + STRING041 + "]uto Record "
  162.     TSTRING030(4) = STRING041 + "[" + STRING039 + "H" + STRING041 + "]elp, "
  163.     TSTRING030(5) = STRING041 + "[" + STRING039 + "Q" + STRING041 + "]uit "
  164.     TSTRING029(1) = STRING038 + "MAIN MENU: "
  165.     TSTRING029(2) = STRING038 + "Choose [" + STRING039 + "#" + STRING038 + "], "
  166.     TSTRING029(3) = STRING038 + "[" + STRING039 + "M" + STRING038 + "]odify, "
  167.     TSTRING029(4) = STRING038 + "[" + STRING039 + "S" + STRING038 + "]etup, "
  168.     TSTRING029(5) = STRING038 + "[" + STRING039 + "N" + STRING038 + "]ext Page, "
  169.     TSTRING029(6) = STRING038 + "[" + STRING039 + "P" + STRING038 + "]rev Page, "
  170.     TSTRING029(7) = STRING038 + "[" + STRING039 + "H" + STRING038 + "]elp, "
  171.     TSTRING029(8) = STRING038 + "[" + STRING039 + "Q" + STRING038 + "]uit "
  172.     STRING044 = ";"
  173.     INTEGER022 = 45
  174.     INTEGER023 = 25
  175.     INTEGER024 = 22
  176.     INTEGER027 = 0
  177.     INTEGER029 = 1
  178.     INTEGER028 = 2
  179.     INTEGER030 = 3
  180.     INTEGER031 = 4
  181.     Gosub LABEL031
  182.     STRING014 = TokenStr()
  183.     Tokenize STRING014
  184.     If (TokCount() > 0) Then
  185.         STRING035 = GetToken()
  186.         If ((STRING035 == "MAINT") || (STRING035 == "M")) Goto LABEL046
  187.         If ((STRING035 == "STATUS") || (STRING035 == "S")) Goto LABEL048
  188.     Endif
  189.     If (TokCount() == 0) Goto LABEL001
  190.     End
  191.     :LABEL001
  192.     If ((CurConf() == INTEGER005) && (CurSec() >= INTEGER004)) Goto LABEL002
  193.     Input STRING017, STRING023
  194.     If (STRING023 == "") Then
  195.         STRING036 = "ALL" + STRING043
  196.     Else
  197.         STRING036 = STRING023 + STRING043
  198.     Endif
  199.     Goto LABEL052
  200.     End
  201.     :LABEL002
  202.     Gosub LABEL027
  203.     Gosub LABEL035
  204.     Gosub LABEL039
  205.     Gosub LABEL045
  206.     If (INTEGER008 == 0) Then
  207.         Input STRING019, STRING023
  208.     Else
  209.         Input STRING018, STRING023
  210.     Endif
  211.     If (STRING023 == "") Then
  212.         If (INTEGER008 > 0) Then
  213.             INTEGER032 = GetX()
  214.             INTEGER033 = GetY()
  215.             SaveScrn
  216.             Gosub LABEL050
  217.             Goto LABEL003
  218.         Endif
  219.     Else
  220.         If (BOOLEAN002) Then
  221.             Gosub LABEL022
  222.             If (BOOLEAN005 == 0) Then
  223.                 Gosub LABEL019
  224.                 If (BOOLEAN001) Then
  225.                     Log STRING026 + " Auto Recorded Entry at " + TimeAp(Time()), 0
  226.                 Endif
  227.             Endif
  228.         Endif
  229.         STRING036 = STRING023 + STRING043
  230.         Goto LABEL049
  231.     Endif
  232.     End
  233.     :LABEL003
  234.     Cls
  235.     DispFile STRING006, 2 + 1 + 4
  236.     Newline
  237.     INTEGER033 = GetY()
  238.     Gosub LABEL008
  239.     Gosub LABEL012
  240.     PrintLn 
  241.     Gosub LABEL013
  242.     InputStr "@CLREOL@" + STRING021, STRING028, 14, 2, Mask_Ascii(), 8
  243.     INTEGER020 = S2I(STRING028, 10)
  244.     STRING028 = Upper(STRING028)
  245.     If ((INTEGER020 > 0) && (INTEGER020 <= INTEGER008)) Then
  246.         If ((INTEGER026 == INTEGER027) && !BOOLEAN006) Then
  247.             Goto LABEL053
  248.         Else
  249.             Select Case (INTEGER026)
  250.                 Case INTEGER030
  251.                     Gosub LABEL016
  252.                 Case INTEGER031
  253.                     Gosub LABEL017
  254.                 Endif
  255.         End Select
  256.     Else
  257.         If ((INTEGER026 == INTEGER027) && (STRING028 == "M")) Then
  258.             INTEGER026 = INTEGER029
  259.             Gosub LABEL013
  260.         ElseIf ((INTEGER026 == INTEGER029) && (STRING028 == "A")) Then
  261.             Gosub LABEL015
  262.         ElseIf ((INTEGER026 == INTEGER029) && (STRING028 == "E")) Then
  263.             INTEGER026 = INTEGER030
  264.             Gosub LABEL013
  265.         ElseIf ((INTEGER026 == INTEGER029) && (STRING028 == "D")) Then
  266.             INTEGER026 = INTEGER031
  267.             Gosub LABEL013
  268.         ElseIf ((INTEGER026 == INTEGER029) && (STRING028 == "S")) Then
  269.             Gosub LABEL018
  270.         ElseIf ((INTEGER026 == INTEGER027) && (STRING028 == "S")) Then
  271.             INTEGER026 = INTEGER028
  272.             Gosub LABEL013
  273.         ElseIf ((INTEGER026 == INTEGER028) && (STRING028 == "A")) Then
  274.             Gosub LABEL030
  275.         ElseIf ((INTEGER026 == INTEGER028) && (STRING028 == "V")) Then
  276.             Gosub LABEL029
  277.         Else
  278.             Select Case (STRING028)
  279.                 Case "N"
  280.                     Gosub LABEL009
  281.                 Case "P"
  282.                     Gosub LABEL011
  283.                 Case "H"
  284.                     Gosub LABEL042
  285.                 Case "Q"
  286.                     If (INTEGER026 == INTEGER027) Then
  287.                         STRING023 = ""
  288.                         If (BOOLEAN006) Goto LABEL004
  289.                         KbdStuff STRING043 + STRING043
  290.                         RestScrn
  291.                         KbdStuff STRING043
  292.                         Goto LABEL005
  293.                         :LABEL004
  294.                         RestScrn
  295.                         :LABEL005
  296.                         Gosub LABEL051
  297.                         If (U_Expert == 0) KbdStuff "MENU"
  298.                         End
  299.                         Goto LABEL006
  300.                     Endif
  301.                     Gosub LABEL007
  302.                 Endif
  303.             Endif
  304.     End Select
  305.     :LABEL006
  306.     STRING028 = ""
  307.     Goto LABEL003
  308.     :LABEL007
  309.     INTEGER026 = INTEGER027
  310.     Gosub LABEL013
  311.     Return
  312.     :LABEL008
  313.     Gosub LABEL028
  314.     If (INTEGER014 < 2) Then
  315.         INTEGER014 = 1
  316.         INTEGER011 = 1
  317.         If (INTEGER008 < INTEGER010) Then
  318.             INTEGER012 = INTEGER008
  319.         Else
  320.             INTEGER012 = INTEGER010
  321.         Endif
  322.     ElseIf ((INTEGER012 - INTEGER011 + 1 < INTEGER010) && (INTEGER008 == INTEGER012 + 1)) Then
  323.         Inc INTEGER012
  324.     Endif
  325.     Return
  326.     :LABEL009
  327.     If (INTEGER014 < INTEGER013) Then
  328.         INTEGER011 = INTEGER012 + 1
  329.         If (INTEGER012 + INTEGER010 > INTEGER008) Then
  330.             INTEGER012 = INTEGER008
  331.             Goto LABEL010
  332.         Endif
  333.         INTEGER012 = INTEGER012 + INTEGER010
  334.         :LABEL010
  335.         Inc INTEGER014
  336.     Endif
  337.     Return
  338.     :LABEL011
  339.     If (INTEGER014 > 1) Then
  340.         INTEGER011 = INTEGER011 - INTEGER010
  341.         INTEGER012 = INTEGER011 + INTEGER010 - 1
  342.         Dec INTEGER014
  343.     Endif
  344.     Return
  345.     :LABEL012
  346.     If (INTEGER008 == 0) Then
  347.         PrintLn 
  348.         PrintLn "                 Your Internet Address Book is empty"
  349.         PrintLn 
  350.     Else
  351.         INTEGER018 = INTEGER011
  352.         While (INTEGER018 <= INTEGER012) Do
  353.             If (BOOLEAN003) Then
  354.                 PrintLn Space(4 - Len(I2S(INTEGER018, 10))) + STRING037 + I2S(INTEGER018, 10) + STRING039 + "] " + STRING038 + Left(TSTRING010(INTEGER018), INTEGER022) + STRING041 + Left(TSTRING011(INTEGER018), INTEGER023)
  355.             Else
  356.                 PrintLn Space(4 - Len(I2S(INTEGER018, 10))) + STRING037 + I2S(INTEGER018, 10) + STRING039 + "] " + STRING041 + Left(TSTRING011(INTEGER018), INTEGER022) + STRING038 + Left(TSTRING010(INTEGER018), INTEGER023)
  357.             Endif
  358.             Inc INTEGER018
  359.         EndWhile
  360.     Endif
  361.     Return
  362.     :LABEL013
  363.     STRING021 = ""
  364.     Select Case (INTEGER026)
  365.         Case INTEGER027
  366.             For INTEGER018 = 1 To 4
  367.                 If (INTEGER018 == 2) Then
  368.                     If (BOOLEAN006) Goto LABEL014
  369.                     STRING021 = STRING021 + TSTRING029(INTEGER018)
  370.                     :LABEL014
  371.                     Continue
  372.                 Endif
  373.                 STRING021 = STRING021 + TSTRING029(INTEGER018)
  374.             Next
  375.             If (INTEGER014 < INTEGER013) Then
  376.                 STRING021 = STRING021 + TSTRING029(5)
  377.             Endif
  378.             If (INTEGER014 > 1) Then
  379.                 STRING021 = STRING021 + TSTRING029(6)
  380.             Endif
  381.             STRING021 = STRING021 + TSTRING029(7)
  382.             STRING021 = STRING021 + TSTRING029(8)
  383.         Case INTEGER028
  384.             For INTEGER018 = 1 To 5
  385.                 If (INTEGER018 == 3) Then
  386.                     STRING021 = STRING021 + TSTRING030(INTEGER018) + STRING033 + ", "
  387.                     Continue
  388.                 Endif
  389.                 STRING021 = STRING021 + TSTRING030(INTEGER018)
  390.             Next
  391.         Case INTEGER029
  392.             For INTEGER018 = 1 To 7
  393.                 If ((INTEGER018 > 2) && (INTEGER018 < 6)) Then
  394.                     If (INTEGER008 > 0) Then
  395.                         STRING021 = STRING021 + TSTRING031(INTEGER018)
  396.                     Endif
  397.                     Continue
  398.                 Endif
  399.                 STRING021 = STRING021 + TSTRING031(INTEGER018)
  400.             Next
  401.         Case INTEGER030
  402.             STRING021 = STRING037 + "Which Entry " + STRING039 + "#" + STRING037 + " would you like to edit, [" + STRING039 + "Q" + STRING037 + "]uit "
  403.         Case INTEGER031
  404.             STRING021 = STRING037 + "Which Entry " + STRING039 + "#" + STRING037 + " would you like to delete, [" + STRING039 + "Q" + STRING037 + "]uit "
  405.     End Select
  406.     Return
  407.     :LABEL015
  408.     If (INTEGER008 < INTEGER025) Then
  409.         Inc INTEGER008
  410.         TSTRING010(INTEGER008) = ""
  411.         TSTRING011(INTEGER008) = ""
  412.         InputStr "Email Address: ", TSTRING010(INTEGER008), 14, 60, Mask_Ascii(), 2 + 4 + 128
  413.         InputStr "  Description: ", TSTRING011(INTEGER008), 14, 60, Mask_Ascii(), 2 + 4 + 128
  414.         Gosub LABEL021
  415.         If ((!BOOLEAN004 && (INTEGER008 == 20)) && (INTEGER003 <> 1)) Gosub LABEL054
  416.         Gosub LABEL008
  417.     Else
  418.         PrintLn 
  419.         PrintLn "Your Address Book is Full!  Please Delete an Entry First"
  420.         PrintLn 
  421.         Wait
  422.     Endif
  423.     STRING028 = ""
  424.     INTEGER026 = INTEGER029
  425.     Gosub LABEL013
  426.     Return
  427.     :LABEL016
  428.     InputStr "Email Address: ", TSTRING010(INTEGER020), 14, 60, Mask_Ascii(), 2 + 4 + 128
  429.     InputStr "  Description: ", TSTRING011(INTEGER020), 14, 60, Mask_Ascii(), 2 + 4 + 128
  430.     Gosub LABEL021
  431.     STRING028 = ""
  432.     INTEGER026 = INTEGER029
  433.     Gosub LABEL013
  434.     Return
  435.     :LABEL017
  436.     InputStr "Delete #" + STRING028 + "...Are you sure", STRING022, 14, 1, "YyNn", 8 + 128
  437.     If (STRING022 == "Y") Then
  438.         If (INTEGER020 == INTEGER008) Then
  439.             Dec INTEGER008
  440.         Endif
  441.         TSTRING010(INTEGER020) = ""
  442.         TSTRING011(INTEGER020) = ""
  443.         Gosub LABEL021
  444.         Gosub LABEL008
  445.     Endif
  446.     STRING028 = ""
  447.     STRING022 = NoChar()
  448.     INTEGER026 = INTEGER029
  449.     Gosub LABEL013
  450.     Return
  451.     :LABEL018
  452.     STRING022 = ""
  453.     While (InStr("AaDdQq", Upper(STRING022)) == 0) Do
  454.         InputStr STRING038 + "Sort By [" + STRING039 + "A" + STRING038 + "]ddress or [" + STRING039 + "D" + STRING038 + "]escription, [" + STRING039 + "Q" + STRING038 + "]uit ", STRING022, 14, 1, "AaDdQq", 8 + 128
  455.         If (STRING022 == "A") Then
  456.             PrintLn 
  457.             Print "Sorting."
  458.             For INTEGER018 = 1 To INTEGER008 - 1
  459.                 For INTEGER019 = INTEGER018 + 1 To INTEGER008
  460.                     If (TSTRING010(INTEGER018) > TSTRING010(INTEGER019)) Then
  461.                         Print "."
  462.                         TSTRING027(1) = TSTRING010(INTEGER018)
  463.                         TSTRING027(2) = TSTRING011(INTEGER018)
  464.                         TSTRING010(INTEGER018) = TSTRING010(INTEGER019)
  465.                         TSTRING011(INTEGER018) = TSTRING011(INTEGER019)
  466.                         TSTRING010(INTEGER019) = TSTRING027(1)
  467.                         TSTRING011(INTEGER019) = TSTRING027(2)
  468.                     Endif
  469.                 Next
  470.             Next
  471.             Continue
  472.         Endif
  473.         If (STRING022 == "D") Then
  474.             PrintLn 
  475.             Print "Sorting."
  476.             For INTEGER018 = 1 To INTEGER008 - 1
  477.                 For INTEGER019 = INTEGER018 + 1 To INTEGER008
  478.                     If (TSTRING011(INTEGER018) > TSTRING011(INTEGER019)) Then
  479.                         Print "."
  480.                         TSTRING027(1) = TSTRING010(INTEGER018)
  481.                         TSTRING027(2) = TSTRING011(INTEGER018)
  482.                         TSTRING010(INTEGER018) = TSTRING010(INTEGER019)
  483.                         TSTRING011(INTEGER018) = TSTRING011(INTEGER019)
  484.                         TSTRING010(INTEGER019) = TSTRING027(1)
  485.                         TSTRING011(INTEGER019) = TSTRING027(2)
  486.                     Endif
  487.                 Next
  488.             Next
  489.         Endif
  490.     EndWhile
  491.     If (Upper(STRING022) <> "Q") Gosub LABEL021
  492.     INTEGER026 = INTEGER029
  493.     STRING028 = ""
  494.     STRING022 = ""
  495.     Return
  496.     :LABEL019
  497.     If (Exist(STRING012)) Then
  498.         FAppend 1, STRING012, 2, 3
  499.         FPutLn 1, Replace(STRING023, STRING044, ".") + STRING044 + Replace("", STRING044, " ")
  500.         FClose 1
  501.     Else
  502.         FCreate 1, STRING012, 2, 3
  503.         FPutLn 1, STRING001
  504.         FPutLn 1, INTEGER003
  505.         FPutLn 1, BOOLEAN002
  506.         FPutLn 1, BOOLEAN003
  507.         For INTEGER018 = 1 To 4
  508.             FPutLn 1, TSTRING009(INTEGER018)
  509.         Next
  510.         FPutLn 1, Replace(STRING023, STRING044, ".") + STRING044 + Replace("", STRING044, " ")
  511.         FClose 1
  512.     Endif
  513.     Return
  514.     :LABEL020
  515.     FCreate 1, STRING012, 2, 3
  516.     FPutLn 1, STRING001
  517.     FPutLn 1, INTEGER003
  518.     FPutLn 1, BOOLEAN002
  519.     FPutLn 1, BOOLEAN003
  520.     For INTEGER018 = 1 To 4
  521.         FPutLn 1, TSTRING009(INTEGER018)
  522.     Next
  523.     FClose 1
  524.     Return
  525.     :LABEL021
  526.     If (Exist(STRING013)) Then
  527.         Delete STRING013
  528.     Endif
  529.     Rename STRING012, STRING013
  530.     FCreate 1, STRING012, 2, 3
  531.     FPutLn 1, STRING001
  532.     FPutLn 1, INTEGER003
  533.     FPutLn 1, BOOLEAN002
  534.     FPutLn 1, BOOLEAN003
  535.     For INTEGER018 = 1 To 4
  536.         FPutLn 1, TSTRING009(INTEGER018)
  537.     Next
  538.     For INTEGER018 = 1 To INTEGER008
  539.         If ((TSTRING010(INTEGER018) <> "") || (TSTRING011(INTEGER018) <> "")) Then
  540.             FPutLn 1, Replace(TSTRING010(INTEGER018), STRING044, ".") + STRING044 + Replace(TSTRING011(INTEGER018), STRING044, " ")
  541.         Endif
  542.     Next
  543.     FClose 1
  544.     Gosub LABEL039
  545.     INTEGER014 = 0
  546.     Return
  547.     :LABEL022
  548.     BOOLEAN005 = 0
  549.     If (INTEGER008 > 0) Then
  550.         FOpen 1, STRING012, 0, 2
  551.         For INTEGER018 = 1 To INTEGER007
  552.             FGet 1, STRING024
  553.         Next
  554.         :LABEL023
  555.         If (Ferr(1)) Goto LABEL024
  556.         FGet 1, STRING024
  557.         INTEGER021 = InStr(STRING024, STRING044)
  558.         If (INTEGER021 > 0) Then
  559.             STRING024 = Trim(Left(STRING024, INTEGER021 - 1), " ")
  560.         Endif
  561.         If (Upper(STRING024) == Upper(STRING023)) Then
  562.             BOOLEAN005 = 1
  563.             FClose 1
  564.             Return
  565.         Endif
  566.         Goto LABEL023
  567.     Endif
  568.     :LABEL024
  569.     FClose 1
  570.     Return
  571.     INTEGER008 = 0
  572.     FOpen 1, STRING012, 0, 2
  573.     :LABEL025
  574.     If (Ferr(1)) Goto LABEL026
  575.     FGet 1, STRING024
  576.     INTEGER008 = INTEGER008 + 1
  577.     Goto LABEL025
  578.     :LABEL026
  579.     INTEGER008 = INTEGER008 - 1
  580.     INTEGER008 = INTEGER008 - INTEGER007
  581.     FClose 1
  582.     Return
  583.     :LABEL027
  584.     GetUser
  585.     STRING001 = U_Name()
  586.     INTEGER001 = U_PageLen
  587.     INTEGER002 = U_Sec
  588.     INTEGER003 = U_RecNum(STRING001)
  589.     Return
  590.     :LABEL028
  591.     INTEGER010 = 0
  592.     INTEGER010 = INTEGER024 - INTEGER009 - INTEGER017
  593.     If (INTEGER008 <= INTEGER010) Then
  594.         INTEGER013 = 1
  595.     ElseIf (INTEGER008 % INTEGER010 == 0) Then
  596.         INTEGER013 = INTEGER008 / INTEGER010
  597.     Else
  598.         INTEGER013 = INTEGER008 / INTEGER010 + 1
  599.     Endif
  600.     Return
  601.     :LABEL029
  602.     If (BOOLEAN003) Then
  603.         BOOLEAN003 = 0
  604.     Else
  605.         BOOLEAN003 = 1
  606.     Endif
  607.     Gosub LABEL021
  608.     Return
  609.     :LABEL030
  610.     If (BOOLEAN002) Then
  611.         BOOLEAN002 = 0
  612.         STRING032 = "OFF"
  613.         STRING033 = "ON"
  614.     Else
  615.         BOOLEAN002 = 1
  616.         STRING032 = "ON"
  617.         STRING033 = "OFF"
  618.     Endif
  619.     Gosub LABEL021
  620.     PrintLn 
  621.     PrintLn "Auto Record is now " + STRING032
  622.     Wait
  623.     Return
  624.     :LABEL031
  625.     If (Exist(STRING025)) Then
  626.         FOpen 1, STRING025, 0, 2
  627.         FGet 1, STRING002
  628.         FGet 1, STRING003
  629.         FGet 1, STRING004
  630.         FGet 1, STRING005
  631.         FGet 1, STRING006
  632.         FGet 1, STRING007
  633.         FGet 1, INTEGER004
  634.         FGet 1, INTEGER005
  635.         FGet 1, BOOLEAN001
  636.         FClose 1
  637.     Else
  638.         INTEGER034 = 1
  639.         STRING046 = STRING025
  640.         Goto LABEL044
  641.     Endif
  642.     If (Exist(STRING005)) Goto LABEL032
  643.     INTEGER034 = 1
  644.     STRING046 = STRING005
  645.     Goto LABEL044
  646.     :LABEL032
  647.     If (Exist(STRING006)) Then
  648.         INTEGER009 = 0
  649.         FOpen 1, STRING006, 0, 2
  650.         :LABEL033
  651.         If (Ferr(1)) Goto LABEL034
  652.         FGet 1, STRING024
  653.         INTEGER009 = INTEGER009 + 1
  654.         Goto LABEL033
  655.         :LABEL034
  656.         FClose 1
  657.     Else
  658.         INTEGER034 = 1
  659.         STRING046 = STRING006
  660.         Goto LABEL044
  661.     Endif
  662.     Gosub LABEL028
  663.     Return
  664.     :LABEL035
  665.     Gosub LABEL036
  666.     While (Len(STRING016) < 6) Do
  667.         STRING016 = "0" + STRING016
  668.     EndWhile
  669.     If (Len(STRING007) == 0) Then
  670.         STRING007 = PPEPath()
  671.     ElseIf (Right(STRING007, 1) <> "\") Then
  672.         STRING007 = STRING007 + "\"
  673.     Endif
  674.     STRING012 = STRING007 + "$U" + STRING016 + ".DAT"
  675.     STRING013 = STRING007 + "$U" + STRING016 + ".BAK"
  676.     Return
  677.     :LABEL036
  678.     INTEGER016 = 0
  679.     STRING016 = ""
  680.     STRING015 = ""
  681.     If (Exist(PPEPath() + "MASTER.IAB")) Then
  682.         FOpen 1, PPEPath() + "MASTER.IAB", 0, 2
  683.         :LABEL037
  684.         If (Ferr(1)) Goto LABEL038
  685.         FGet 1, STRING024
  686.         INTEGER021 = InStr(STRING024, STRING044)
  687.         STRING016 = Trim(Left(STRING024, INTEGER021 - 1), " ")
  688.         STRING015 = Trim(Mid(STRING024, INTEGER021 + 1, Len(STRING024) - INTEGER021), " ")
  689.         If (S2I(STRING016, 10) > INTEGER016) Then
  690.             INTEGER016 = S2I(STRING016, 10)
  691.         Endif
  692.         If (STRING001 == STRING015) Then
  693.             FClose 1
  694.             Return
  695.         Endif
  696.         Goto LABEL037
  697.         :LABEL038
  698.         FClose 1
  699.         Inc INTEGER016
  700.         STRING016 = I2S(INTEGER016, 10)
  701.         If (Exist(PPEPath() + "MASTER.BAK")) Then
  702.             Delete PPEPath() + "MASTER.BAK"
  703.         Endif
  704.         TSTRING027(5) = PPEPath() + "MASTER.IAB " + PPEPath() + "MASTER.BAK"
  705.         Shell 1, INTEGER015, "COPY", TSTRING027(5)
  706.         FAppend 1, PPEPath() + "MASTER.IAB", 2, 3
  707.         FPutLn 1, STRING016 + STRING044 + STRING001
  708.         FClose 1
  709.     Else
  710.         STRING016 = "1"
  711.         INTEGER016 = 1
  712.         FCreate 1, PPEPath() + "MASTER.IAB", 2, 3
  713.         FPutLn 1, STRING016 + STRING044 + STRING001
  714.         FClose 1
  715.     Endif
  716.     Return
  717.     :LABEL039
  718.     If (!Exist(STRING012)) Gosub LABEL020
  719.     If (Exist(STRING012)) Then
  720.         FOpen 1, STRING012, 0, 2
  721.         FGet 1, STRING008
  722.         FGet 1, INTEGER006
  723.         FGet 1, BOOLEAN002
  724.         FGet 1, BOOLEAN003
  725.         For INTEGER018 = 1 To 4
  726.             FGet 1, TSTRING009(INTEGER018)
  727.         Next
  728.         INTEGER008 = 0
  729.         :LABEL040
  730.         If (Ferr(1)) Goto LABEL041
  731.         FGet 1, STRING024
  732.         INTEGER008 = INTEGER008 + 1
  733.         INTEGER021 = InStr(STRING024, STRING044)
  734.         If (INTEGER021 > 0) Then
  735.             TSTRING010(INTEGER008) = Trim(Left(STRING024, INTEGER021 - 1), " ")
  736.             TSTRING011(INTEGER008) = Trim(Mid(STRING024, INTEGER021 + 1, Len(STRING024) - INTEGER021), " ")
  737.         Else
  738.             TSTRING010(INTEGER008) = Trim(STRING024, " ")
  739.         Endif
  740.         Goto LABEL040
  741.         :LABEL041
  742.         INTEGER008 = INTEGER008 - 1
  743.         FClose 1
  744.         If (BOOLEAN002) Then
  745.             STRING032 = "ON"
  746.             STRING033 = "OFF"
  747.         Else
  748.             STRING032 = "OFF"
  749.             STRING033 = "ON"
  750.         Endif
  751.     Else
  752.         INTEGER034 = 4
  753.         STRING046 = STRING012
  754.         Goto LABEL044
  755.     Endif
  756.     If (STRING008 <> STRING001) Then
  757.         INTEGER034 = 3
  758.     Else
  759.         Return
  760.         :LABEL042
  761.         TSTRING048(1, 1) = STRING039 + "Choose " + STRING038 + "[" + STRING039 + "#" + STRING038 + "] Enter the Address entry number to use for this message"
  762.         TSTRING048(1, 2) = STRING038 + "[" + STRING039 + "M" + STRING038 + "]" + STRING039 + "odify" + STRING038 + " = Display a menu with Edit, Add, Delete, and Sort Options"
  763.         TSTRING048(1, 3) = STRING038 + "[" + STRING039 + "S" + STRING038 + "]" + STRING039 + "etup" + STRING038 + "  = Display a menu with View Mode and Auto Record Toggle Options"
  764.         TSTRING048(1, 4) = STRING038 + "[" + STRING039 + "Q" + STRING038 + "]" + STRING039 + "uit" + STRING038 + "   = Close your Address Book and return to the main board"
  765.         TSTRING048(2, 1) = STRING038 + "[" + STRING039 + "A" + STRING038 + "]" + STRING039 + "dd" + STRING038 + " a new entry to your Address Book"
  766.         TSTRING048(2, 2) = STRING038 + "[" + STRING039 + "E" + STRING038 + "]" + STRING039 + "dit" + STRING038 + " an existing Address Book entry"
  767.         TSTRING048(2, 3) = STRING038 + "[" + STRING039 + "D" + STRING038 + "]" + STRING039 + "elete" + STRING038 + " an existing Address Book entry"
  768.         TSTRING048(2, 4) = STRING038 + "[" + STRING039 + "S" + STRING038 + "]" + STRING039 + "ort" + STRING038 + " your entries by Address or Description"
  769.         TSTRING048(2, 5) = STRING038 + "[" + STRING039 + "Q" + STRING038 + "]" + STRING039 + "uit" + STRING038 + " to the Address Book main menu "
  770.         TSTRING048(3, 1) = STRING038 + "[" + STRING039 + "V" + STRING038 + "]" + STRING039 + "iew Mode" + STRING038 + " = Reverse the order of the columns in the list"
  771.         TSTRING048(3, 2) = STRING038 + "[" + STRING039 + "A" + STRING038 + "]" + STRING039 + "uto Record ON/OFF" + STRING038 + " = Toggle automatic entry of addresses"
  772.         TSTRING048(3, 3) = STRING038 + "[" + STRING039 + "Q" + STRING038 + "]" + STRING039 + "uit" + STRING038 + " to the Address Book main menu "
  773.         PrintLn 
  774.         PrintLn 
  775.         Select Case (INTEGER026)
  776.             Case INTEGER027
  777.                 PrintLn STRING037 + "[" + STRING039 + "MAIN MENU HELP" + STRING037 + "]"
  778.                 PrintLn 
  779.                 For INTEGER018 = 1 To 4
  780.                     If (INTEGER018 == 1) Then
  781.                         If (BOOLEAN006) Goto LABEL043
  782.                         PrintLn TSTRING048(1, INTEGER018)
  783.                         :LABEL043
  784.                         Continue
  785.                     Endif
  786.                     PrintLn TSTRING048(1, INTEGER018)
  787.                 Next
  788.             Case INTEGER029
  789.                 PrintLn STRING037 + "[" + STRING039 + "MODIFY MENU HELP" + STRING037 + "]"
  790.                 PrintLn 
  791.                 For INTEGER018 = 1 To 5
  792.                     PrintLn TSTRING048(2, INTEGER018)
  793.                 Next
  794.             Case INTEGER028
  795.                 PrintLn STRING037 + "[" + STRING039 + "SETUP MENU HELP" + STRING037 + "]"
  796.                 PrintLn 
  797.                 For INTEGER018 = 1 To 3
  798.                     PrintLn TSTRING048(3, INTEGER018)
  799.                 Next
  800.         End Select
  801.         Wait
  802.         Return
  803.     Endif
  804.     :LABEL044
  805.     PrintLn 
  806.     Select Case (INTEGER034)
  807.         Case 1
  808.             PrintLn TSTRING047(1) + " ( " + STRING046 + " ) "
  809.         Case 4
  810.             PrintLn TSTRING047(1) + " ( " + STRING046 + " ) "
  811.         Case Else
  812.             PrintLn TSTRING047(INTEGER034)
  813.     End Select
  814.     PrintLn 
  815.     Wait
  816.     End
  817.     :LABEL045
  818.     If (STRING004 <> I2S(Len(STRING003) + 3, 10) + I2S(Asc(STRING003) + 3, 10)) Then
  819.         STRING003 = "UNREGISTERED"
  820.         BOOLEAN001 = 1
  821.     Else
  822.         BOOLEAN004 = 1
  823.     Endif
  824.     Return
  825.     :LABEL046
  826.     BOOLEAN006 = 1
  827.     If (CurSec() >= INTEGER004) Then
  828.         Gosub LABEL027
  829.         Gosub LABEL035
  830.         Gosub LABEL039
  831.         Gosub LABEL045
  832.         Gosub LABEL050
  833.         STRING035 = ""
  834.         If (TokCount() == 1) Then
  835.             STRING035 = GetToken()
  836.         Endif
  837.         If (BOOLEAN004 && ((STRING035 == "QUIET") || (STRING035 == "Q"))) Goto LABEL047
  838.         SaveScrn
  839.         Cls
  840.         DispFile STRING005, 2 + 1 + 4
  841.         PrintLn 
  842.         PrintLn Space(21) + STRING039 + "Registered to [" + STRING037 + STRING003 + STRING039 + "]"
  843.         PrintLn 
  844.         PrintLn 
  845.         Wait
  846.         :LABEL047
  847.         Goto LABEL003
  848.     Else
  849.         PrintLn 
  850.         PrintLn 
  851.         PrintLn STRING037 + "Insufficent security to open Address Book."
  852.         PrintLn 
  853.         Wait
  854.     Endif
  855.     End
  856.     :LABEL048
  857.     If (CurSec() >= INTEGER004) Then
  858.         Gosub LABEL027
  859.         Gosub LABEL035
  860.         Gosub LABEL039
  861.         Gosub LABEL045
  862.         PrintLn 
  863.         PrintLn "@X3B┌────────────────────────────────────────@X30┐@X07"
  864.         PrintLn "@X3B│ @X3E INTERNET ADDRESS BOOK: Status Report  @X30│@X07"
  865.         PrintLn "@X3B└@X30────────────────────────────────────────┘@X07"
  866.         PrintLn 
  867.         PrintLn STRING038 + "Entries.......: " + STRING039 + "There are " + I2S(INTEGER008, 10) + " entries in your address book"
  868.         PrintLn STRING038 + "Auto Record...: " + STRING039 + "Auto Record is " + STRING032
  869.         PrintLn STRING038 + "View Mode.....: " + STRING039 + "Display is set to " + TSTRING034(BOOLEAN003)
  870.         PrintLn STRING038 + "Version.......: " + STRING039 + STRING026
  871.         PrintLn STRING038 + "Registration..: " + STRING039 + "IAB is Registered to [" + STRING037 + STRING003 + STRING039 + "]"
  872.         PrintLn 
  873.     Else
  874.         PrintLn 
  875.         PrintLn 
  876.         PrintLn STRING037 + "Insufficent security to get Address Book status."
  877.         PrintLn 
  878.     Endif
  879.     Wait
  880.     End
  881.     :LABEL049
  882.     STRING028 = ""
  883.     PrintLn 
  884.     Input STRING020, STRING028
  885.     INTEGER032 = GetX()
  886.     INTEGER033 = GetY()
  887.     Backup INTEGER032 - 1
  888.     ClrEol
  889.     AnsiPos 1, INTEGER033 - 1
  890.     If (STRING028 == "") Then
  891.         STRING036 = STRING043 + STRING043
  892.     Else
  893.         STRING036 = STRING036 + STRING028 + STRING043
  894.     Endif
  895.     Goto LABEL052
  896.     End
  897.     :LABEL050
  898.     If (BOOLEAN001) Log "Opened " + STRING026 + " at " + TimeAp(Time()) , 0
  899.     Return
  900.     :LABEL051
  901.     If (BOOLEAN001) Log "Closed " + STRING026 + " at " + TimeAp(Time()) , 0
  902.     Return
  903.     :LABEL052
  904.     KbdStuff STRING036
  905.     End
  906.     :LABEL053
  907.     STRING023 = TSTRING010(INTEGER020)
  908.     STRING036 = STRING023 + STRING043
  909.     RestScrn
  910.     Print STRING023
  911.     Gosub LABEL051
  912.     If (!BOOLEAN006) Goto LABEL049
  913.     End
  914.     :LABEL054
  915.     If (Exist(STRING045)) Then
  916.         Delete STRING045
  917.     Endif
  918.     If ((STRING002 <> "") && (Upper(STRING002) <> "MICHAEL WALTER")) Then
  919.         TSTRING027(1) = STRING002
  920.         Tokenize TSTRING027(1)
  921.         If (TokCount() == 2) Then
  922.             TSTRING027(2) = GetToken()
  923.             TSTRING027(3) = GetToken()
  924.         Endif
  925.     Else
  926.         TSTRING027(1) = "SYSOP"
  927.     Endif
  928.     FOpen 1, STRING045, 1, 3
  929.     FPutLn 1, "<Message auto-generated by IAB:Internet Address Book>"
  930.     FPutLn 1, " "
  931.     If (TSTRING027(1) <> "SYSOP") Then
  932.         FPutLn 1, "Dear " + TSTRING027(2) + ","
  933.         FPutLn 1, " "
  934.     Endif
  935.     FPutLn 1, "Congratulations!  It looks like you've discovered yet another"
  936.     FPutLn 1, "useful add-on feature for your users...IAB!"
  937.     FPutLn 1, " "
  938.     FPutLn 1, "I have written to you because " + STRING001
  939.     FPutLn 1, "has just saved entry #20 into Internet Address Book!"
  940.     FPutLn 1, " "
  941.     FPutLn 1, " "
  942.     FPutLn 1, "Here comes the Registration Pitch..."
  943.     FPutLn 1, "------------------------------------"
  944.     FPutLn 1, "If you continue to use IAB on your board, please register it."
  945.     FPutLn 1, "An IAB license to cover all of your BBS nodes is only $15."
  946.     FPutLn 1, " "
  947.     FPutLn 1, "Registration details can be found in the REGISTER.FRM file"
  948.     FPutLn 1, "that came with your original IAB zip file.  You can register"
  949.     FPutLn 1, "on-line via credit card and instantly receive your registration"
  950.     FPutLn 1, "number... "
  951.     FPutLn 1, "            CALL:  Data-Base BBS on 908-735-2180"
  952.     FPutLn 1, " "
  953.     FPutLn 1, "     then..., from the main menu prompt, type: IABREG "
  954.     FPutLn 1, " "
  955.     FPutLn 1, "Alternatively, you can mail, fax, or e-mail your completed "
  956.     FPutLn 1, "IAB Registration Form to us (see REGISTER.FRM for details)."
  957.     FPutLn 1, " "
  958.     FPutLn 1, "Thank you,"
  959.     FPutLn 1, " "
  960.     FPutLn 1, "Michael Walter                       SQLCraft Software"
  961.     FPutLn 1, "Author - IAB:Internet Address Book   sqlcraft@data-base.com"
  962.     FPutLn 1, " "
  963.     FClose 1
  964.     Message 0, TSTRING027(1), "Michael Walter", "IAB is a hit!", "R", 0, 0, 0, STRING045
  965.     Return
  966.  
  967. ;------------------------------------------------------------------------------
  968. ;
  969. ; Usage report (before postprocessing)
  970. ;
  971. ; ■ Statements used :
  972. ;
  973. ;    10      End
  974. ;    2       Cls
  975. ;    1       ClrEol
  976. ;    7       Wait
  977. ;    215     Goto 
  978. ;    262     Let 
  979. ;    5       Print 
  980. ;    54      PrintLn 
  981. ;    129     If 
  982. ;    2       DispFile 
  983. ;    4       Input 
  984. ;    4       FCreate 
  985. ;    7       FOpen 
  986. ;    2       FAppend 
  987. ;    15      FClose 
  988. ;    20      FGet 
  989. ;    52      FPutLn 
  990. ;    1       GetUser
  991. ;    3       Delete 
  992. ;    3       Log 
  993. ;    7       InputStr 
  994. ;    54      Gosub 
  995. ;    30      Return
  996. ;    5       Inc 
  997. ;    2       Dec 
  998. ;    1       Newline
  999. ;    2       Tokenize 
  1000. ;    1       Shell 
  1001. ;    4       KbdStuff 
  1002. ;    1       AnsiPos 
  1003. ;    1       Backup 
  1004. ;    1       Message 
  1005. ;    2       SaveScrn
  1006. ;    3       RestScrn
  1007. ;    1       Rename 
  1008. ;
  1009. ;
  1010. ; ■ Functions used :
  1011. ;
  1012. ;    2       /
  1013. ;    1       %
  1014. ;    417     +
  1015. ;    21      -
  1016. ;    65      ==
  1017. ;    10      <>
  1018. ;    25      <
  1019. ;    20      <=
  1020. ;    14      >
  1021. ;    37      >=
  1022. ;    122     !
  1023. ;    51      &&
  1024. ;    21      ||
  1025. ;    7       Len(
  1026. ;    6       Upper()
  1027. ;    2       Mid()
  1028. ;    7       Left()
  1029. ;    1       Right()
  1030. ;    3       Space()
  1031. ;    5       Ferr()
  1032. ;    1       Chr()
  1033. ;    1       Asc()
  1034. ;    4       InStr()
  1035. ;    6       Trim()
  1036. ;    3       Time()
  1037. ;    1       U_Name()
  1038. ;    3       TimeAp()
  1039. ;    2       NoChar()
  1040. ;    6       Replace()
  1041. ;    5       Mask_Ascii()
  1042. ;    1       CurConf()
  1043. ;    11      PPEPath()
  1044. ;    3       CurSec()
  1045. ;    4       GetToken()
  1046. ;    10      Exist()
  1047. ;    8       I2S()
  1048. ;    3       S2I()
  1049. ;    1       TokenStr()
  1050. ;    2       GetX()
  1051. ;    3       GetY()
  1052. ;    4       TokCount()
  1053. ;    1       U_RecNum()
  1054. ;
  1055. ;------------------------------------------------------------------------------
  1056. ;
  1057. ; Analysis flags : S
  1058. ;
  1059. ; S - Shell to DOS ■ 5
  1060. ;     This may be normal if the PPE need to execute an external command,
  1061. ;     but may be actually anything... nasty (formating HD, rebooting,...)
  1062. ;     or usefull (sorting, maintenance,...). Check!
  1063. ;     ■ Search for : SHELL
  1064. ;
  1065. ;------------------------------------------------------------------------------
  1066. ;
  1067. ; Postprocessing report
  1068. ;
  1069. ;    17      For/Next
  1070. ;    3       While/EndWhile
  1071. ;    72      If/Then or If/Then/Else
  1072. ;    5       Select Case
  1073. ;
  1074. ;------------------------------------------------------------------------------
  1075. ;                 AEGiS Corp - Break the routines, code against the machines!
  1076. ;------------------------------------------------------------------------------
  1077.