home *** CD-ROM | disk | FTP | other *** search
/ Monster Media 1994 #1 / monster.zip / monster / PCBOARD / EDSBK115.ZIP / PPE.ZIP / EUTMOD8.PPE (.txt) < prev   
PCBoard Programming Language Executable  |  1994-02-09  |  29KB  |  1,524 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.     Integer  INTEGER001
  26.     Integer  INTEGER002
  27.     Integer  INTEGER003
  28.     Integer  INTEGER004
  29.     Integer  INTEGER005
  30.     Integer  INTEGER006
  31.     Real     REAL001
  32.     Real     REAL002
  33.     Real     REAL003
  34.     String   STRING001
  35.     String   STRING002
  36.     String   STRING003
  37.     String   STRING004
  38.     String   STRING005
  39.     String   STRING006
  40.     String   STRING007
  41.     Byte     BYTE001
  42.     Byte     TBYTE002(5)
  43.     Byte     BYTE003
  44.     Byte     BYTE004
  45.     Byte     BYTE005
  46.     Byte     BYTE006
  47.     Byte     BYTE007
  48.     Word     WORD001
  49.  
  50. ;------------------------------------------------------------------------------
  51.  
  52.     If (TokCount() <> 1) Then
  53.         PrintLn 
  54.         PrintLn "@X0CEUTMOD8 FATAL ERROR: INVALID COMMAND SEQUENCE!"
  55.         PrintLn 
  56.         PrintLn "@X0AEUTMOD8 may only be ran from within EDSUtil!"
  57.         PrintLn 
  58.         Goto LABEL034
  59.     Else
  60.         GetToken STRING001
  61.         Select Case (STRING001)
  62.             Case "1"
  63.                 Gosub LABEL028
  64.                 FSeek 2, 359, 0
  65.                 FRead 2, STRING002, 75
  66.                 FClose 2
  67.                 Gosub LABEL007
  68.                 Goto LABEL034
  69.             Case "2"
  70.                 Gosub LABEL028
  71.                 FSeek 2, 359, 0
  72.                 FRead 2, STRING002, 75
  73.                 FClose 2
  74.                 Gosub LABEL011
  75.                 Goto LABEL034
  76.             Case "3"
  77.                 Gosub LABEL028
  78.                 FSeek 2, 359, 0
  79.                 FRead 2, STRING002, 75
  80.                 FClose 2
  81.                 Gosub LABEL003
  82.                 Goto LABEL034
  83.             Case "4"
  84.                 Gosub LABEL028
  85.                 FSeek 2, 359, 0
  86.                 FRead 2, STRING002, 75
  87.                 FClose 2
  88.                 Gosub LABEL001
  89.                 Goto LABEL034
  90.             Case "5"
  91.                 Gosub LABEL025
  92.                 Goto LABEL034
  93.             Case "6"
  94.                 Gosub LABEL017
  95.                 Goto LABEL034
  96.             Case "7"
  97.                 Gosub LABEL021
  98.                 Goto LABEL034
  99.             Case Else
  100.                 PrintLn 
  101.                 PrintLn "@X0CEUTMOD8 FATAL ERROR: INVALID COMMAND SEQUENCE!"
  102.                 PrintLn 
  103.                 PrintLn "@X0AEUTMOD8 may only be ran from within EDSUtil!"
  104.                 PrintLn 
  105.                 Goto LABEL034
  106.             Endif
  107.     End Select
  108.     :LABEL001
  109.     STRING005 = PPEPath() + "EDSALLOW.XPT"
  110.     STRING006 = PPEPath() + "EXPORT.RPT"
  111.     InputStr "Path & Filename to export to", STRING005, 15, 45, Mask_Path() + Mask_File(), 2 + 4 + 256
  112.     STRING005 = Strip(Upper(STRING005), " ")
  113.     If (STRING005 == "") Goto LABEL034
  114.     InputStr "Path & Filename for report file", STRING006, 15, 45, Mask_Path() + Mask_File(), 2 + 4 + 256
  115.     STRING006 = Strip(Upper(STRING006), " ")
  116.     If (STRING006 == "") Goto LABEL034
  117.     STRING002 = Trim(Upper(STRING002), " ")
  118.     If (Exist(STRING002)) Goto LABEL002
  119.     PrintLn 
  120.     PrintLn "@X0C" + STRING002 + " does not exist!"
  121.     PrintLn 
  122.     Delay 4
  123.     Goto LABEL034
  124.     :LABEL002
  125.     INTEGER003 = FileInf(STRING002, 4)
  126.     INTEGER002 = (INTEGER003 - 41) / 29
  127.     If (Exist(STRING005)) Then
  128.         FAppend 1, STRING005, 1, 2
  129.         If (Ferr(1)) Then
  130.             BOOLEAN003 = 1
  131.         Else
  132.             BOOLEAN003 = 0
  133.         Endif
  134.         If (BOOLEAN003) Then
  135.             PrintLn 
  136.             PrintLn "@X0CSorry, the @X0F" + STRING005 + " @X0Cfile is currently inaccessible..."
  137.             FClose 1
  138.             Return
  139.         Endif
  140.     Else
  141.         FCreate 1, STRING005, 1, 2
  142.         If (Ferr(1)) Then
  143.             BOOLEAN003 = 1
  144.         Else
  145.             BOOLEAN003 = 0
  146.         Endif
  147.         If (BOOLEAN003) Then
  148.             PrintLn 
  149.             PrintLn "@X0CSorry, the @X0F" + STRING005 + " @X0Cfile is currently inaccessible..."
  150.             FClose 1
  151.             Return
  152.         Endif
  153.     Endif
  154.     FOpen 2, STRING002, 0, 0
  155.     If (Ferr(2)) Then
  156.         BOOLEAN003 = 1
  157.     Else
  158.         BOOLEAN003 = 0
  159.     Endif
  160.     If (BOOLEAN003) Then
  161.         PrintLn 
  162.         PrintLn "@X0CSorry, the @X0F" + STRING002 + " @X0Cfile is currently inaccessible..."
  163.         FClose 1
  164.         FClose 2
  165.         Return
  166.     Endif
  167.     If (Exist(STRING006)) Then
  168.         FAppend 3, STRING006, 1, 2
  169.         If (Ferr(3)) Then
  170.             BOOLEAN003 = 1
  171.         Else
  172.             BOOLEAN003 = 0
  173.         Endif
  174.         If (BOOLEAN003) Then
  175.             PrintLn 
  176.             PrintLn "@X0CSorry, the @X0F" + STRING006 + " @X0Cfile is currently inaccessible..."
  177.             FClose 1
  178.             FClose 2
  179.             FClose 3
  180.             Return
  181.         Endif
  182.     Else
  183.         FCreate 3, STRING006, 1, 2
  184.         If (Ferr(3)) Then
  185.             BOOLEAN003 = 1
  186.         Else
  187.             BOOLEAN003 = 0
  188.         Endif
  189.         If (BOOLEAN003) Then
  190.             PrintLn 
  191.             PrintLn "@X0CSorry, the @X0F" + STRING006 + " @X0Cfile is currently inaccessible..."
  192.             FClose 1
  193.             FClose 2
  194.             FClose 3
  195.             Return
  196.         Endif
  197.         FPutLn 3, "EDSBack v1.15 Allowed # Calling Exportation Report"
  198.         FPutLn 3, "Report generated at " + String(Time()) + " on " + String(Date())
  199.         FPutLn 3, "----------------------------------------------------------------------"
  200.         FPutLn 3
  201.     Endif
  202.     INTEGER001 = 1
  203.     Cls
  204.     PrintLn 
  205.     PrintLn Space(17) + "@X0A(@X0FAllowed # Calling File Exportation Procedure@X0A)"
  206.     PrintLn 
  207.     PrintLn 
  208.     PrintLn "@X0BFrom   :@X0E " + STRING002
  209.     PrintLn "@X0BTo     :@X0E " + STRING005
  210.     PrintLn "@X0BReport :@X0E " + STRING006
  211.     PrintLn 
  212.     Print "@X0CPlease wait, now exporting...@X0F    "
  213.     FSeek 2, 41, 0
  214.     While (INTEGER001 <= INTEGER002) Do
  215.         FSeek 2, 1, 1
  216.         FRead 2, BOOLEAN005, 1
  217.         FRead 2, STRING003, 3
  218.         STRING003 = Strip(STRING003, " ")
  219.         FRead 2, STRING004, 4
  220.         STRING004 = Strip(STRING004, " ")
  221.         FSeek 2, 20, 1
  222.         If (BOOLEAN005) Then
  223.             FPutLn 3, "--------------------------------------------------------------------------"
  224.             FPutLn 3, "Record #" + String(INTEGER001) + " not exported because it is an international number..."
  225.             FPutLn 3, "CountryCode = " + STRING003
  226.             FPutLn 3, "CityCode    = " + STRING004
  227.         Else
  228.             FPutLn 1, STRING003 + "-" + Left(STRING004 + Space(3), 3)
  229.         Endif
  230.         Gosub LABEL032
  231.         Inc INTEGER001
  232.     EndWhile
  233.     FClose 1
  234.     FClose 2
  235.     FClose 3
  236.     PrintLn 
  237.     PrintLn "@X0BExporting process completed!"
  238.     Log "Allowed # calling file exported...", 0
  239.     Delay 4
  240.     Return
  241.     :LABEL003
  242.     PrintLn 
  243.     STRING005 = ""
  244.     InputStr "Path & Filename to import", STRING005, 15, 50, Mask_Path() + Mask_File(), 2 + 4
  245.     STRING005 = Strip(Upper(STRING005), " ")
  246.     If (STRING005 == "") Goto LABEL034
  247.     Newline
  248.     If (Exist(STRING005)) Goto LABEL004
  249.     PrintLn 
  250.     PrintLn "@X0C" + STRING005 + " does not exist!"
  251.     Delay 9
  252.     Return
  253.     :LABEL004
  254.     InputText "Name of template file to use for all imported numbers", STRING007, 15, 10
  255.     STRING007 = Trim(Upper(STRING007), " ")
  256.     Newline
  257.     FOpen 1, STRING005, 0, 0
  258.     If (Ferr(1)) Then
  259.         BOOLEAN003 = 1
  260.     Else
  261.         BOOLEAN003 = 0
  262.     Endif
  263.     If (BOOLEAN003) Then
  264.         PrintLn 
  265.         PrintLn "@X0CSorry, the @X0F" + STRING005 + " @X0Cfile is currently inaccessible..."
  266.         FClose 1
  267.         Return
  268.     Endif
  269.     If (Exist(STRING002)) Then
  270.         FOpen 2, STRING002, 1, 2
  271.         If (Ferr(2)) Then
  272.             BOOLEAN003 = 1
  273.         Else
  274.             BOOLEAN003 = 0
  275.         Endif
  276.         If (BOOLEAN003) Then
  277.             PrintLn 
  278.             PrintLn "@X0CSorry, the @X0F" + STRING002 + " @X0Cfile is currently inaccessible..."
  279.             FClose 1
  280.             FClose 2
  281.             Return
  282.         Endif
  283.         FSeek 2, 0, 2
  284.     Else
  285.         FCreate 2, STRING002, 1, 2
  286.         If (Ferr(2)) Then
  287.             BOOLEAN003 = 1
  288.         Else
  289.             BOOLEAN003 = 0
  290.         Endif
  291.         If (BOOLEAN003) Then
  292.             PrintLn 
  293.             PrintLn "@X0CSorry, the @X0F" + STRING002 + " @X0Cfile is currently inaccessible..."
  294.             FClose 1
  295.             FClose 2
  296.             Return
  297.         Endif
  298.         FWrite 2, " EDSBack v1.15 Allowed # Calling File" + Chr(13) + Chr(32) + Chr(10) + Chr(26), 41
  299.     Endif
  300.     Cls
  301.     PrintLn 
  302.     PrintLn Space(19) + "@X0A(@X0FAllowed Numbers Calling List Importation@X0A)"
  303.     PrintLn 
  304.     PrintLn "@X0BFrom     :@X0E " + STRING005
  305.     PrintLn "@X0BTo       :@X0E " + STRING002
  306.     PrintLn "@X0BTemplate :@X0E " + STRING007
  307.     PrintLn 
  308.     PrintLn 
  309.     Print "@X0FWriting record #@X0A1"
  310.     INTEGER004 = 1
  311.     INTEGER001 = 1
  312.     :LABEL005
  313.     If (Ferr(1)) Goto LABEL006
  314.     Backup Len(INTEGER001)
  315.     Print String(INTEGER004)
  316.     FGet 1, STRING001
  317.     STRING001 = Strip(Strip(Strip(Strip(Strip(STRING001, " "), ")"), "("), "-"), ".")
  318.     If (STRING001 <> "") Then
  319.         FWrite 2, 0, 1
  320.         FWrite 2, 0, 1
  321.         FWrite 2, Mid(STRING001, 1, 3), 3
  322.         FWrite 2, Mid(STRING001, 4, 3) + Space(1), 4
  323.         FWrite 2, STRING007, 10
  324.         FWrite 2, Space(10), 10
  325.         INTEGER001 = INTEGER004
  326.         Inc INTEGER004
  327.     Endif
  328.     Goto LABEL005
  329.     :LABEL006
  330.     FClose 1
  331.     FClose 2
  332.     PrintLn 
  333.     PrintLn "@X0AFile successfully imported!"
  334.     PrintLn 
  335.     Gosub LABEL025
  336.     Return
  337.     :LABEL007
  338.     If (Exist(STRING002)) Goto LABEL008
  339.     PrintLn 
  340.     PrintLn "@X0C" + STRING002 + " does not exist!"
  341.     Delay 9
  342.     Return
  343.     :LABEL008
  344.     INTEGER003 = FileInf(STRING002, 4)
  345.     INTEGER002 = (INTEGER003 - 41) / 29
  346.     Cls
  347.     PrintLn 
  348.     PrintLn Space(24) + "@X0A(@X0FPacking Allowed # Calling File@X0A)"
  349.     PrintLn 
  350.     PrintLn 
  351.     PrintLn "@X0F   File Size = " + String(INTEGER003) + " bytes   Number of Records = " + String(INTEGER002)
  352.     If (INTEGER002 <= 1) Then
  353.         PrintLn 
  354.         PrintLn "@X0CTHERE MUST BE AT LEAST ONE RECORD PRESENT IN THE VALID CALLING FILE!"
  355.         PrintLn 
  356.         Delay 18
  357.         Return
  358.     Endif
  359.     KbdChkOff
  360.     Rename STRING002, PPEPath() + String(PcbNode()) + "tc.$$$"
  361.     FCreate 1, STRING002, 1, 2
  362.     If (Ferr(1)) Then
  363.         BOOLEAN003 = 1
  364.     Else
  365.         BOOLEAN003 = 0
  366.     Endif
  367.     If (BOOLEAN003) Then
  368.         PrintLn 
  369.         PrintLn "@X0CSorry, the @X0F" + STRING002 + " @X0Cfile is currently inaccessible..."
  370.         FClose 1
  371.         Return
  372.     Endif
  373.     FOpen 2, PPEPath() + String(PcbNode()) + "tc.$$$", 0, 3
  374.     If (Ferr(2)) Then
  375.         BOOLEAN003 = 1
  376.     Else
  377.         BOOLEAN003 = 0
  378.     Endif
  379.     If (BOOLEAN003) Then
  380.         PrintLn 
  381.         PrintLn "@X0CSorry, the @X0F" + String(PcbNode()) + "tc.$$$ @X0Cfile is currently inaccessible..."
  382.         FClose 2
  383.         FClose 1
  384.         PrintLn 
  385.         PrintLn "@X0ADeleting & renaming temporary files..."
  386.         Delete STRING002
  387.         Rename PPEPath() + String(PcbNode()) + "tc.$$$", STRING002
  388.         Return
  389.     Endif
  390.     BOOLEAN002 = 0
  391.     FSeek 1, 0, 0
  392.     FWrite 1, " EDSBack v1.15 Allowed # Calling File" + Chr(13) + Chr(32) + Chr(10) + Chr(26), 41
  393.     PrintLn 
  394.     PrintLn "@X0BPacking Allowed # Calling File..."
  395.     If (GrafMode() <> "N") Then
  396.         PrintLn 
  397.         Print "@X0F0% @X07░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ @X0F100%"
  398.         BYTE001 = GetY()
  399.     Endif
  400.     INTEGER001 = 1
  401.     FSeek 2, 41, 0
  402.     While (INTEGER001 <= INTEGER002) Do
  403.         BOOLEAN002 = 0
  404.         BOOLEAN004 = 0
  405.         BOOLEAN005 = 0
  406.         STRING003 = Space(3)
  407.         STRING004 = Space(4)
  408.         STRING007 = Space(10)
  409.         FRead 2, BOOLEAN004, 1
  410.         If (BOOLEAN004) Then
  411.             BOOLEAN002 = 1
  412.         Else
  413.             BOOLEAN002 = 0
  414.         Endif
  415.         If (BOOLEAN002) Goto LABEL009
  416.         FWrite 1, BOOLEAN004, 1
  417.         FRead 2, BOOLEAN005, 1
  418.         FWrite 1, BOOLEAN005, 1
  419.         FRead 2, STRING003, 3
  420.         FWrite 1, STRING003, 3
  421.         FRead 2, STRING004, 4
  422.         FWrite 1, STRING004, 4
  423.         FRead 2, STRING007, 10
  424.         FWrite 1, STRING007, 10
  425.         FSeek 2, 10, 1
  426.         FWrite 1, Space(10), 10
  427.         Goto LABEL010
  428.         :LABEL009
  429.         FSeek 2, 28, 1
  430.         :LABEL010
  431.         If (GrafMode() <> "N") Gosub LABEL031
  432.         Inc INTEGER001
  433.     EndWhile
  434.     Color 7
  435.     FClose 1
  436.     FClose 2
  437.     PrintLn 
  438.     PrintLn 
  439.     PrintLn "@X0BDeleting temporary files..."
  440.     Delete PPEPath() + String(PcbNode()) + "tc.$$$"
  441.     PrintLn "@X0EChecking files..."
  442.     INTEGER003 = FileInf(STRING002, 4)
  443.     INTEGER002 = (INTEGER003 - 41) / 29
  444.     If (INTEGER002 < 1) Then
  445.         PrintLn 
  446.         PrintLn "@X0C0 byte file!  Recreating with a dummy record..."
  447.         FCreate 1, STRING002, 1, 2
  448.         FWrite 1, " EDSBack v1.15 Allowed # Calling File" + Chr(13) + Chr(32) + Chr(10) + Chr(26), 41
  449.         FWrite 1, 0, 1
  450.         FWrite 1, 0, 1
  451.         FWrite 1, "000", 3
  452.         FWrite 1, "000", 4
  453.         FWrite 1, "SAMPLE", 10
  454.         FWrite 1, Space(10), 10
  455.         FClose 1
  456.         PrintLn "@X0ANew allowed # calling file successfully created..."
  457.     Endif
  458.     PrintLn "@X0FAllowed # calling file successfully packed!"
  459.     Log "Allowed # calling file successfully packed!", 0
  460.     PrintLn 
  461.     Gosub LABEL025
  462.     KbdChkOn
  463.     Return
  464.     :LABEL011
  465.     BOOLEAN002 = 0
  466.     BOOLEAN001 = 1
  467.     INTEGER001 = 1
  468.     INTEGER003 = FileInf(STRING002, 4)
  469.     If (Exist(PPEPath() + "TRASH.IDX")) Goto LABEL012
  470.     Cls
  471.     PrintLn 
  472.     PrintLn Space(29) + "@X0F(@X0ABuilding Index File@X0F)"
  473.     PrintLn 
  474.     Gosub LABEL025
  475.     :LABEL012
  476.     If (Exist(STRING002)) Goto LABEL013
  477.     PrintLn 
  478.     PrintLn "@X0CCreating " + STRING002
  479.     FCreate 1, STRING002, 2, 2
  480.     If (Ferr(1)) Then
  481.         BOOLEAN003 = 1
  482.     Else
  483.         BOOLEAN003 = 0
  484.     Endif
  485.     If (BOOLEAN003) Then
  486.         PrintLn 
  487.         PrintLn "@X0CSorry, the @X0F" + STRING002 + " @X0Cfile is currently inaccessible..."
  488.         FClose 1
  489.         Return
  490.     Endif
  491.     FSeek 1, 0, 0
  492.     FWrite 1, " EDSBack v1.15 Allowed # Calling File" + Chr(13) + Chr(32) + Chr(10) + Chr(26), 41
  493.     FWrite 1, 0, 1
  494.     FWrite 1, 0, 1
  495.     FWrite 1, "000", 3
  496.     FWrite 1, "000", 4
  497.     FWrite 1, "SAMPLE", 10
  498.     FWrite 1, Space(10), 10
  499.     INTEGER003 = 70
  500.     Goto LABEL014
  501.     :LABEL013
  502.     FOpen 1, STRING002, 2, 2
  503.     If (Ferr(1)) Then
  504.         BOOLEAN003 = 1
  505.     Else
  506.         BOOLEAN003 = 0
  507.     Endif
  508.     If (BOOLEAN003) Then
  509.         PrintLn 
  510.         PrintLn "@X0CSorry, the @X0F" + STRING002 + " @X0Cfile is currently inaccessible..."
  511.         FClose 1
  512.         Return
  513.     Endif
  514.     :LABEL014
  515.     FOpen 2, PPEPath() + "EDSALLOW.IDX", 2, 2
  516.     If (Ferr(2)) Then
  517.         BOOLEAN003 = 1
  518.     Else
  519.         BOOLEAN003 = 0
  520.     Endif
  521.     If (BOOLEAN003) Then
  522.         PrintLn 
  523.         PrintLn "@X0CSorry, the @X0FEDSALLOW.IDX @X0Cfile is currently inaccessible..."
  524.         FClose 2
  525.         Return
  526.     Endif
  527.     INTEGER002 = (INTEGER003 - 41) / 29
  528.     :LABEL015
  529.     If (BOOLEAN002) Goto LABEL016
  530.     If (BOOLEAN001) Then
  531.         FSeek 1, 41 + INTEGER001 * 29 - 29, 0
  532.         FRead 1, BOOLEAN004, 1
  533.         FRead 1, BOOLEAN005, 1
  534.         FRead 1, STRING003, 3
  535.         FRead 1, STRING004, 4
  536.         FRead 1, STRING007, 10
  537.         STRING004 = Strip(STRING004, " ")
  538.         STRING003 = Strip(STRING003, " ")
  539.         STRING007 = Trim(STRING007, " ")
  540.         BOOLEAN001 = 0
  541.     Endif
  542.     PrintLn 
  543.     PrintLn Space(23) + "@X0A(@X0FAllowed Calling Numbers Listing@X0A)"
  544.     PrintLn 
  545.     PrintLn "    @X0BRecord #@X0E" + String(INTEGER001) + "@X0B of @X0E" + String(INTEGER002)
  546.     Print "    @X0F(@X09D@X0F)eleted : @X0C"
  547.     If (BOOLEAN004) Then
  548.         PrintLn "Yes"
  549.     Else
  550.         PrintLn "No "
  551.     Endif
  552.     PrintLn 
  553.     Print "    @X0F(@X09I@X0F)nternational                : @X0C"
  554.     If (BOOLEAN005) Then
  555.         PrintLn "Yes"
  556.     Else
  557.         PrintLn "No "
  558.     Endif
  559.     PrintLn "    @X0FArea(@X09C@X0F)ode/CountryCode         : @X0C" + STRING003
  560.     PrintLn "    @X0F(@X09P@X0F)refix/City Code             : @X0C" + STRING004
  561.     PrintLn "    @X0FDialing (@X09T@X0F)emplate name        : @X0C" + STRING007
  562.     PrintLn 
  563.     PrintLn "    @X0F(@X09+@X0F) @X0BAdvance 1 record  @X0F(@X09-@X0F) @X0BRetard 1 record"
  564.     PrintLn "    @X0F(@X09J@X0F)@X0Bump to record      @X0F(@X09A@X0F)@X0Bdd a record"
  565.     PrintLn "    @X0F(@X09Q@X0F)@X0Buit                @X0BEdit Temp@X0F(@X09L@X0F)@X0Bates"
  566.     PrintLn 
  567.     InputStr "(H)elp, Enter command", STRING005, 10, 1, "DdCcPp+-JjAaQqRrIiLlTtHh", 2 + 4
  568.     Newline
  569.     STRING005 = Upper(STRING005)
  570.     Select Case (STRING005)
  571.         Case "Q", "R"
  572.             FClose 1
  573.             FClose 2
  574.             BOOLEAN001 = 0
  575.             BOOLEAN002 = 1
  576.         Case "H"
  577.             Print "@PON@"
  578.             DispFile PPEPath() + "EDSAE", 1 + 4
  579.             Print "@POFF@"
  580.             Cls
  581.             BOOLEAN001 = 0
  582.             BOOLEAN002 = 0
  583.         Case "+"
  584.             If (INTEGER001 >= INTEGER002) Then
  585.                 INTEGER001 = 1
  586.             Else
  587.                 Inc INTEGER001
  588.             Endif
  589.             BOOLEAN002 = 0
  590.             BOOLEAN001 = 1
  591.         Case "-"
  592.             If (INTEGER001 <= 1) Then
  593.                 INTEGER001 = INTEGER002
  594.             Else
  595.                 Dec INTEGER001
  596.             Endif
  597.             BOOLEAN002 = 0
  598.             BOOLEAN001 = 1
  599.         Case "J"
  600.             INTEGER004 = INTEGER002
  601.             InputInt "Enter record # to jump to", INTEGER004, 10
  602.             If (INTEGER004 > INTEGER002) Then
  603.                 INTEGER001 = INTEGER002
  604.             ElseIf (INTEGER004 < 1) Then
  605.                 INTEGER001 = 1
  606.             Else
  607.                 INTEGER001 = INTEGER004
  608.             Endif
  609.             BOOLEAN002 = 0
  610.             BOOLEAN001 = 1
  611.         Case "D"
  612.             FSeek 1, 41 + INTEGER001 * 29 - 29, 0
  613.             If (BOOLEAN004) Then
  614.                 FWrite 1, 0, 1
  615.             Else
  616.                 FWrite 1, 1, 1
  617.             Endif
  618.             BOOLEAN002 = 0
  619.             BOOLEAN001 = 1
  620.         Case "A"
  621.             FSeek 1, 0, 2
  622.             FSeek 2, 0, 2
  623.             If (BOOLEAN005) Then
  624.                 STRING001 = YesChar()
  625.             Else
  626.                 STRING001 = NoChar()
  627.             Endif
  628.             InputYN "International (CountryCode & CityCode)", STRING001, 10
  629.             Newline
  630.             If (Upper(STRING001) == YesChar()) Then
  631.                 BOOLEAN005 = 1
  632.             Else
  633.                 BOOLEAN005 = 0
  634.             Endif
  635.             If (BOOLEAN005) Then
  636.                 PrintLn "@X0C(XXX = Wildcard)"
  637.                 InputStr "Country code", STRING003, 10, 3, Mask_Num() + "xX", 2 + 4
  638.                 Newline
  639.                 PrintLn "@X0C(XXXX = Wildcard)"
  640.                 InputStr "City code", STRING004, 10, 4, Mask_Num() + "xX", 2 + 4
  641.             Else
  642.                 PrintLn "@X0C(XXX = Wildcard)"
  643.                 InputStr "Area code", STRING003, 10, 3, Mask_Num() + "xX", 2 + 4
  644.                 Newline
  645.                 PrintLn "@X0C(XXX = Wildcard)"
  646.                 InputStr "Prefix", STRING004, 10, 3, Mask_Num() + "xX", 2 + 4
  647.             Endif
  648.             STRING003 = Upper(Strip(STRING003, " "))
  649.             STRING004 = Upper(Strip(STRING004, " "))
  650.             If (InStr(STRING003 + STRING004, "X") == 0) Then
  651.                 INTEGER004 = S2I(STRING003, 10) + S2I(STRING004, 10)
  652.             Else
  653.                 INTEGER004 = 0
  654.             Endif
  655.             Newline
  656.             InputText "Name of dialing template to use", STRING007, 10, 10
  657.             Newline
  658.             STRING007 = Trim(Upper(STRING007), " ")
  659.             PrintLn "@X0FCreating record..."
  660.             FWrite 1, 0, 1
  661.             FWrite 1, BOOLEAN005, 1
  662.             FWrite 1, STRING003, 3
  663.             FWrite 1, STRING004, 4
  664.             FWrite 1, STRING007, 10
  665.             FWrite 1, Space(10), 10
  666.             PrintLn "@X0FUpdating index..."
  667.             INTEGER002 = INTEGER002 + 1
  668.             INTEGER001 = INTEGER002
  669.             FWrite 2, INTEGER004, 4
  670.             FWrite 2, INTEGER001, 4
  671.             BOOLEAN001 = 1
  672.             BOOLEAN002 = 0
  673.         Case "C"
  674.             If (BOOLEAN005) Then
  675.                 PrintLn "@X0C(XXX = Wildcard)"
  676.                 InputStr "New country code", STRING003, 12, 3, Mask_Num() + "xX", 2 + 4 + 256
  677.             Else
  678.                 PrintLn "@X0C(XXX = Wildcard)"
  679.                 InputStr "New areacode", STRING003, 12, 3, Mask_Num() + "xX", 2 + 4 + 256
  680.             Endif
  681.             Newline
  682.             STRING003 = Upper(Strip(STRING003, " "))
  683.             If (InStr(STRING003 + STRING004, "X") == 0) Then
  684.                 INTEGER004 = S2I(STRING003, 10) + S2I(STRING004, 10)
  685.             Else
  686.                 INTEGER004 = 0
  687.             Endif
  688.             FSeek 1, 41 + INTEGER001 * 29 - 27, 0
  689.             FWrite 1, STRING003, 3
  690.             PrintLn "@X0FUpdating index..."
  691.             FSeek 2, 41 + INTEGER001 * 8 - 8, 0
  692.             FWrite 2, INTEGER004, 4
  693.             BOOLEAN002 = 0
  694.             BOOLEAN001 = 1
  695.         Case "P"
  696.             If (BOOLEAN005) Then
  697.                 PrintLn "@X0C(XXXX = Wildcard)"
  698.                 InputStr "New city code", STRING004, 12, 4, Mask_Num() + "xX", 2 + 4 + 256
  699.             Else
  700.                 PrintLn "@X0C(XXX = Wildcard)"
  701.                 STRING004 = Mid(STRING004, 1, 3)
  702.                 InputStr "New prefix", STRING004, 12, 3, Mask_Num() + "xX", 2 + 4 + 256
  703.             Endif
  704.             Newline
  705.             STRING004 = Upper(Strip(STRING004, " "))
  706.             If (InStr(STRING003 + STRING004, "X") == 0) Then
  707.                 INTEGER004 = S2I(STRING003, 10) + S2I(STRING004, 10)
  708.             Else
  709.                 INTEGER004 = 0
  710.             Endif
  711.             FSeek 1, 41 + INTEGER001 * 29 - 24, 0
  712.             FWrite 1, STRING004, 4
  713.             PrintLn "@X0FUpdating index..."
  714.             FSeek 2, 41 + INTEGER001 * 8 - 8, 0
  715.             FWrite 2, INTEGER004, 4
  716.             BOOLEAN002 = 0
  717.             BOOLEAN001 = 1
  718.         Case "I"
  719.             If (BOOLEAN005) Then
  720.                 STRING001 = NoChar()
  721.             Else
  722.                 STRING001 = YesChar()
  723.             Endif
  724.             InputYN "International (CountryCode & CityCode)", STRING001, 10
  725.             Newline
  726.             If (Upper(STRING001) == YesChar()) Then
  727.                 BOOLEAN005 = 1
  728.             Else
  729.                 BOOLEAN005 = 0
  730.             Endif
  731.             FSeek 1, 41 + INTEGER001 * 29 - 28, 0
  732.             FWrite 1, BOOLEAN005, 1
  733.             BOOLEAN002 = 0
  734.             BOOLEAN001 = 1
  735.         Case "T"
  736.             InputText "Name of dialing template to use", STRING007, 10, 10
  737.             Newline
  738.             STRING007 = Trim(Upper(STRING007), " ")
  739.             FSeek 1, 41 + INTEGER001 * 29 - 20, 0
  740.             FWrite 1, STRING007, 10
  741.             BOOLEAN002 = 0
  742.             BOOLEAN001 = 1
  743.         Case "L"
  744.             PrintLn 
  745.             INTEGER005 = INTEGER001
  746.             INTEGER006 = INTEGER002
  747.             STRING005 = ""
  748.             Gosub LABEL021
  749.             STRING005 = ""
  750.             INTEGER001 = INTEGER005
  751.             INTEGER002 = INTEGER006
  752.             BOOLEAN002 = 0
  753.             BOOLEAN001 = 1
  754.     End Select
  755.     Goto LABEL015
  756.     :LABEL016
  757.     FClose 1
  758.     FClose 2
  759.     STRING005 = YesChar()
  760.     PrintLn 
  761.     InputYN "Regenerate index file", STRING005, 12
  762.     Newline
  763.     If (Upper(STRING005) == YesChar()) Gosub LABEL025
  764.     Return
  765.     :LABEL017
  766.     STRING002 = PPEPath() + "EDSDIAL.PLT"
  767.     If (Exist(STRING002)) Goto LABEL018
  768.     PrintLn 
  769.     PrintLn "@X0C" + STRING002 + " does not exist!"
  770.     Delay 9
  771.     Return
  772.     :LABEL018
  773.     INTEGER003 = FileInf(STRING002, 4)
  774.     INTEGER002 = (INTEGER003 - 41) / 28
  775.     Cls
  776.     PrintLn 
  777.     PrintLn Space(22) + "@X0A(@X0FDialing Template Packing Procedure@X0A)"
  778.     PrintLn 
  779.     PrintLn 
  780.     PrintLn "@X0F   File Size = " + String(INTEGER003) + " bytes   Number of Records = " + String(INTEGER002)
  781.     If (INTEGER002 <= 1) Then
  782.         PrintLn 
  783.         PrintLn "@X0CTHERE MUST BE AT LEAST ONE RECORD PRESENT IN THE DIALING TEMPLATE FILE!"
  784.         PrintLn 
  785.         Delay 18
  786.         Return
  787.     Endif
  788.     KbdChkOff
  789.     Rename STRING002, PPEPath() + String(PcbNode()) + "tc.$$$"
  790.     FCreate 1, STRING002, 1, 2
  791.     If (Ferr(1)) Then
  792.         BOOLEAN003 = 1
  793.     Else
  794.         BOOLEAN003 = 0
  795.     Endif
  796.     If (BOOLEAN003) Then
  797.         PrintLn 
  798.         PrintLn "@X0CSorry, the @X0F" + STRING002 + " @X0Cfile is currently inaccessible..."
  799.         FClose 1
  800.         Return
  801.     Endif
  802.     FOpen 2, PPEPath() + String(PcbNode()) + "tc.$$$", 0, 3
  803.     If (Ferr(2)) Then
  804.         BOOLEAN003 = 1
  805.     Else
  806.         BOOLEAN003 = 0
  807.     Endif
  808.     If (BOOLEAN003) Then
  809.         PrintLn 
  810.         PrintLn "@X0CSorry, the @X0F" + String(PcbNode()) + "tc.$$$ @X0Cfile is currently inaccessible..."
  811.         FClose 2
  812.         FClose 1
  813.         PrintLn 
  814.         PrintLn "@X0ADeleting & renaming temporary files..."
  815.         Delete STRING002
  816.         Rename PPEPath() + String(PcbNode()) + "tc.$$$", STRING002
  817.         Return
  818.     Endif
  819.     BOOLEAN002 = 0
  820.     FSeek 1, 0, 0
  821.     FWrite 1, " EDSBack v1.15 Dialing Templates    " + Chr(13) + Chr(32) + Chr(10) + Chr(26) + Chr(0), 41
  822.     PrintLn 
  823.     PrintLn "@X0BPacking Dialing Templates..."
  824.     If (GrafMode() <> "N") Then
  825.         PrintLn 
  826.         Print "@X0F0% @X07░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ @X0F100%"
  827.         BYTE001 = GetY()
  828.     Endif
  829.     INTEGER001 = 1
  830.     FSeek 2, 41, 0
  831.     While (INTEGER001 <= INTEGER002) Do
  832.         BOOLEAN002 = 0
  833.         BOOLEAN004 = 0
  834.         BOOLEAN006 = 0
  835.         For INTEGER004 = 0 To 5
  836.             TBYTE002(INTEGER004) = 0
  837.         Next
  838.         STRING007 = Space(10)
  839.         BYTE003 = 0
  840.         BYTE004 = 0
  841.         WORD001 = 0
  842.         FRead 2, BOOLEAN004, 1
  843.         If (BOOLEAN004) Then
  844.             BOOLEAN002 = 1
  845.         Else
  846.             BOOLEAN002 = 0
  847.         Endif
  848.         If (BOOLEAN002) Goto LABEL019
  849.         FWrite 1, BOOLEAN004, 1
  850.         FRead 2, BOOLEAN006, 1
  851.         FWrite 1, BOOLEAN006, 1
  852.         For INTEGER004 = 0 To 5
  853.             FRead 2, TBYTE002(INTEGER004), 1
  854.             FWrite 1, TBYTE002(INTEGER004), 1
  855.         Next
  856.         FRead 2, STRING007, 10
  857.         FWrite 1, STRING007, 10
  858.         FRead 2, BYTE003, 1
  859.         FRead 2, BYTE004, 1
  860.         FRead 2, WORD001, 2
  861.         FWrite 1, BYTE003, 1
  862.         FWrite 1, BYTE004, 1
  863.         FWrite 1, WORD001, 2
  864.         FSeek 2, 6, 1
  865.         FWrite 1, Space(6), 6
  866.         Goto LABEL020
  867.         :LABEL019
  868.         FSeek 2, 27, 1
  869.         :LABEL020
  870.         If (GrafMode() <> "N") Gosub LABEL031
  871.         Inc INTEGER001
  872.     EndWhile
  873.     Color 7
  874.     FClose 1
  875.     FClose 2
  876.     PrintLn 
  877.     PrintLn 
  878.     PrintLn "@X0BDeleting temporary files..."
  879.     Delete PPEPath() + String(PcbNode()) + "tc.$$$"
  880.     PrintLn "@X0EChecking files..."
  881.     INTEGER003 = FileInf(STRING002, 4)
  882.     INTEGER002 = (INTEGER003 - 41) / 28
  883.     If (INTEGER002 < 1) Then
  884.         PrintLn 
  885.         PrintLn "@X0C0 byte file!  Recreating with a dummy record..."
  886.         FCreate 1, STRING002, 1, 2
  887.         FWrite 1, " EDSBack v1.15 Dialing Templates    " + Chr(13) + Chr(32) + Chr(10) + Chr(26) + Chr(0), 41
  888.         FWrite 1, 0, 1
  889.         FWrite 1, 0, 1
  890.         For INTEGER004 = 0 To 5
  891.             FWrite 1, 0, 1
  892.         Next
  893.         FWrite 1, "SAMPLE", 10
  894.         FWrite 1, 0, 1
  895.         FWrite 1, 0, 1
  896.         FWrite 1, 0, 1
  897.         FWrite 1, Space(6), 6
  898.         FClose 1
  899.         PrintLn "@X0ANew dialing templates file successfully created..."
  900.     Endif
  901.     PrintLn "@X0FDialing templates file successfully packed!"
  902.     Log "Dialing templates file successfully packed!", 0
  903.     KbdChkOn
  904.     Return
  905.     :LABEL021
  906.     BOOLEAN002 = 0
  907.     BOOLEAN001 = 1
  908.     INTEGER001 = 1
  909.     STRING002 = PPEPath() + "EDSDIAL.PLT"
  910.     INTEGER003 = FileInf(STRING002, 4)
  911.     If (Exist(STRING002)) Goto LABEL022
  912.     PrintLn 
  913.     PrintLn "@X0CCreating " + STRING002
  914.     FCreate 3, STRING002, 2, 2
  915.     If (Ferr(3)) Then
  916.         BOOLEAN003 = 1
  917.     Else
  918.         BOOLEAN003 = 0
  919.     Endif
  920.     If (BOOLEAN003) Then
  921.         PrintLn 
  922.         PrintLn "@X0CSorry, the @X0F" + STRING002 + " X0Cfile is currently inaccessible..."
  923.         FClose 3
  924.         Return
  925.     Endif
  926.     FSeek 3, 0, 0
  927.     FWrite 3, " EDSBack v1.15 Dialing Templates    " + Chr(13) + Chr(32) + Chr(10) + Chr(26) + Chr(0), 41
  928.     FWrite 3, 0, 1
  929.     FWrite 3, 0, 1
  930.     FWrite 3, 0, 1
  931.     FWrite 3, 0, 1
  932.     FWrite 3, 0, 1
  933.     FWrite 3, 0, 1
  934.     FWrite 3, 0, 1
  935.     FWrite 3, 0, 1
  936.     FWrite 3, "SAMPLE", 10
  937.     FWrite 3, 0, 1
  938.     FWrite 3, 0, 1
  939.     FWrite 3, 0, 2
  940.     FWrite 3, Space(6), 6
  941.     INTEGER003 = 69
  942.     Goto LABEL023
  943.     :LABEL022
  944.     FOpen 3, STRING002, 2, 2
  945.     If (Ferr(3)) Then
  946.         BOOLEAN003 = 1
  947.     Else
  948.         BOOLEAN003 = 0
  949.     Endif
  950.     If (BOOLEAN003) Then
  951.         PrintLn 
  952.         PrintLn "@X0CSorry, the @X0F" + STRING002 + " X0Cfile is currently inaccessible..."
  953.         FClose 3
  954.         Return
  955.     Endif
  956.     :LABEL023
  957.     If (BOOLEAN002) Goto LABEL024
  958.     If (BOOLEAN001) Then
  959.         FSeek 3, 41 + INTEGER001 * 28 - 28, 0
  960.         FRead 3, BOOLEAN004, 1
  961.         FRead 3, BOOLEAN006, 1
  962.         For INTEGER004 = 0 To 5
  963.             FRead 3, TBYTE002(INTEGER004), 1
  964.         Next
  965.         FRead 3, STRING007, 10
  966.         FRead 3, BYTE003, 1
  967.         FRead 3, BYTE004, 1
  968.         FRead 3, WORD001, 2
  969.         BOOLEAN001 = 0
  970.     Endif
  971.     PrintLn 
  972.     INTEGER002 = (INTEGER003 - 41) / 28
  973.     PrintLn Space(26) + "@X0A(@X0FDialing Templates Listing@X0A)"
  974.     PrintLn 
  975.     PrintLn "    @X0BRecord #@X0E" + String(INTEGER001) + "@X0B of @X0E" + String(INTEGER002)
  976.     Print "    @X0F(@X09D@X0F)eleted : @X0C"
  977.     If (BOOLEAN004) Then
  978.         PrintLn "Yes"
  979.     Else
  980.         PrintLn "No "
  981.     Endif
  982.     PrintLn 
  983.     PrintLn "    @X0F(@X09N@X0F)ame of template                : @X0E" + STRING007
  984.     Print "    @X0F(@X09L@X0F)ogoff user after callback      : @X0E"
  985.     If (BOOLEAN006) Then
  986.         PrintLn "Yes"
  987.     Else
  988.         PrintLn "No "
  989.     Endif
  990.     PrintLn "    @X0F(@X09S@X0F)ecurity level to upgrade to    : @X0E" + String(BYTE003)
  991.     PrintLn "    @X0F(@X09E@X0F)xpired Sec. Level to upgrade to: @X0E" + String(BYTE004)
  992.     PrintLn "    @X0F(@X09#@X0F) of days till expiration       : @X0E" + String(WORD001)
  993.     PrintLn "    @X0F(@X09T@X0F)emplate to use when dialing    : @X0E(See Below)"
  994.     STRING001 = ""
  995.     For INTEGER004 = 0 To 5
  996.         If (TBYTE002(INTEGER004) == 1) Then
  997.             STRING001 = STRING001 + "NUMPREFIX + "
  998.             Continue
  999.         Endif
  1000.         If (TBYTE002(INTEGER004) == 2) Then
  1001.             STRING001 = STRING001 + "LDACCESS + "
  1002.             Continue
  1003.         Endif
  1004.         If (TBYTE002(INTEGER004) == 3) Then
  1005.             STRING001 = STRING001 + "AREACODE/COUNTRYCODE + "
  1006.             Continue
  1007.         Endif
  1008.         If (TBYTE002(INTEGER004) == 4) Then
  1009.             STRING001 = STRING001 + "PREFIX/CITYCODE + "
  1010.             Continue
  1011.         Endif
  1012.         If (TBYTE002(INTEGER004) == 5) Then
  1013.             STRING001 = STRING001 + "NUMBER + "
  1014.             Continue
  1015.         Endif
  1016.         If (TBYTE002(INTEGER004) == 6) Then
  1017.             STRING001 = STRING001 + "NUMSUFFIX + "
  1018.         Endif
  1019.     Next
  1020.     If (STRING001 == "") STRING001 = "TEMPLATE HAS NOT BEEN DEFINED"
  1021.     STRING001 = Trim(Trim(STRING001, " "), "+")
  1022.     PrintLn "    " + STRING001
  1023.     PrintLn 
  1024.     PrintLn "    @X0F(@X09+@X0F) @X0BAdvance 1 record  @X0F(@X09-@X0F) @X0BRetard 1 record"
  1025.     PrintLn "    @X0F(@X09J@X0F)@X0Bump to record      @X0F(@X09A@X0F)@X0Bdd a record"
  1026.     PrintLn "    @X0F(@X09Q@X0F)@X0Buit"
  1027.     PrintLn 
  1028.     InputStr "(H)elp, Enter command", STRING005, 10, 1, "Dd+-JjAaQqRrLlTtNn#EeSsHh", 2 + 4
  1029.     Newline
  1030.     STRING005 = Upper(STRING005)
  1031.     Select Case (STRING005)
  1032.         Case "Q", "R"
  1033.             FClose 3
  1034.             BOOLEAN001 = 0
  1035.             BOOLEAN002 = 1
  1036.         Case "H"
  1037.             Print "@PON@"
  1038.             DispFile PPEPath() + "EDSAD", 1 + 4
  1039.             Print "@POFF@"
  1040.             Cls
  1041.             BOOLEAN001 = 0
  1042.             BOOLEAN002 = 0
  1043.         Case "+"
  1044.             If (INTEGER001 >= INTEGER002) Then
  1045.                 INTEGER001 = 1
  1046.             Else
  1047.                 Inc INTEGER001
  1048.             Endif
  1049.             BOOLEAN002 = 0
  1050.             BOOLEAN001 = 1
  1051.         Case "-"
  1052.             If (INTEGER001 <= 1) Then
  1053.                 INTEGER001 = INTEGER002
  1054.             Else
  1055.                 Dec INTEGER001
  1056.             Endif
  1057.             BOOLEAN002 = 0
  1058.             BOOLEAN001 = 1
  1059.         Case "J"
  1060.             INTEGER004 = INTEGER002
  1061.             InputInt "Enter record # to jump to", INTEGER004, 10
  1062.             If (INTEGER004 > INTEGER002) Then
  1063.                 INTEGER001 = INTEGER002
  1064.             ElseIf (INTEGER004 < 1) Then
  1065.                 INTEGER001 = 1
  1066.             Else
  1067.                 INTEGER001 = INTEGER004
  1068.             Endif
  1069.             BOOLEAN002 = 0
  1070.             BOOLEAN001 = 1
  1071.         Case "D"
  1072.             FSeek 3, 41 + INTEGER001 * 28 - 28, 0
  1073.             If (BOOLEAN004) Then
  1074.                 STRING001 = YesChar()
  1075.             Else
  1076.                 STRING001 = NoChar()
  1077.             Endif
  1078.             InputYN "Delete record", STRING001, 10
  1079.             Newline
  1080.             If (Upper(STRING001) == YesChar()) Then
  1081.                 BOOLEAN004 = 1
  1082.             Else
  1083.                 BOOLEAN004 = 0
  1084.             Endif
  1085.             FWrite 3, BOOLEAN004, 1
  1086.             BOOLEAN002 = 0
  1087.             BOOLEAN001 = 1
  1088.         Case "#"
  1089.             InputInt "Number of days from callback till user expires (0=NO EXPIRATION DATE)", WORD001, 10
  1090.             Newline
  1091.             FSeek 3, 41 + INTEGER001 * 28 - 8, 0
  1092.             FWrite 3, WORD001, 2
  1093.             BOOLEAN002 = 0
  1094.             BOOLEAN001 = 1
  1095.         Case "S"
  1096.             InputInt "User's new security level after callback with this template", BYTE003, 10
  1097.             Newline
  1098.             FSeek 3, 41 + INTEGER001 * 28 - 10, 0
  1099.             FWrite 3, BYTE003, 1
  1100.             BOOLEAN002 = 0
  1101.             BOOLEAN001 = 1
  1102.         Case "E"
  1103.             InputInt "User's new expired security level after callback with this template", BYTE004, 10
  1104.             Newline
  1105.             FSeek 3, 41 + INTEGER001 * 28 - 9, 0
  1106.             FWrite 3, BYTE004, 1
  1107.             BOOLEAN002 = 0
  1108.             BOOLEAN001 = 1
  1109.         Case "A"
  1110.             FSeek 3, 0, 2
  1111.             InputText "Template name", STRING007, 15, 10
  1112.             STRING007 = Upper(Trim(STRING007, " "))
  1113.             Newline
  1114.             If (BOOLEAN006) Then
  1115.                 STRING001 = YesChar()
  1116.             Else
  1117.                 STRING001 = NoChar()
  1118.             Endif
  1119.             InputYN "Logoff user after dialing with this template", STRING001, 10
  1120.             Newline
  1121.             If (Upper(STRING001) == YesChar()) Then
  1122.                 BOOLEAN006 = 1
  1123.             Else
  1124.                 BOOLEAN006 = 0
  1125.             Endif
  1126.             InputInt "Number of days from callback till user expires (0=NO EXPIRATION DATE)", WORD001, 10
  1127.             Newline
  1128.             InputInt "User's new security level after callback with this template", BYTE003, 10
  1129.             Newline
  1130.             InputInt "User's new expired security level after callback with this template", BYTE004, 10
  1131.             Newline
  1132.             Gosub LABEL027
  1133.             PrintLn "@X0FCreating record..."
  1134.             FWrite 3, 0, 1
  1135.             FWrite 3, BOOLEAN006, 1
  1136.             For INTEGER004 = 0 To 5
  1137.                 FWrite 3, TBYTE002(INTEGER004), 1
  1138.             Next
  1139.             FWrite 3, STRING007, 10
  1140.             FWrite 3, BYTE003, 1
  1141.             FWrite 3, BYTE004, 1
  1142.             FWrite 3, WORD001, 2
  1143.             FWrite 3, Space(6), 6
  1144.             INTEGER002 = INTEGER002 + 1
  1145.             INTEGER003 = INTEGER003 + 28
  1146.             INTEGER001 = INTEGER002
  1147.             BOOLEAN001 = 1
  1148.             BOOLEAN002 = 0
  1149.         Case "L"
  1150.             If (BOOLEAN006) Then
  1151.                 STRING001 = YesChar()
  1152.             Else
  1153.                 STRING001 = NoChar()
  1154.             Endif
  1155.             InputYN "Logoff user after dialing with this template", STRING001, 10
  1156.             Newline
  1157.             If (Upper(STRING001) == YesChar()) Then
  1158.                 BOOLEAN006 = 1
  1159.             Else
  1160.                 BOOLEAN006 = 0
  1161.             Endif
  1162.             FSeek 3, 41 + INTEGER001 * 28 - 27, 0
  1163.             FWrite 3, BOOLEAN006, 1
  1164.             BOOLEAN002 = 0
  1165.             BOOLEAN001 = 1
  1166.         Case "T"
  1167.             Gosub LABEL027
  1168.             FSeek 3, 41 + INTEGER001 * 28 - 26, 0
  1169.             For INTEGER004 = 0 To 5
  1170.                 FWrite 3, TBYTE002(INTEGER004), 1
  1171.             Next
  1172.         Case "N"
  1173.             InputText "Name of template", STRING007, 10, 10
  1174.             FSeek 3, 41 + INTEGER001 * 28 - 20, 0
  1175.             FWrite 3, STRING007, 10
  1176.     End Select
  1177.     Goto LABEL023
  1178.     :LABEL024
  1179.     FClose 3
  1180.     Return
  1181.     :LABEL025
  1182.     Gosub LABEL028
  1183.     FSeek 2, 359, 0
  1184.     FRead 2, STRING002, 75
  1185.     FClose 2
  1186.     If (Exist(STRING002)) Goto LABEL026
  1187.     PrintLn 
  1188.     PrintLn "@X0C" + STRING002 + " does not exist!"
  1189.     Delay 9
  1190.     Return
  1191.     :LABEL026
  1192.     INTEGER003 = FileInf(STRING002, 4)
  1193.     INTEGER002 = (INTEGER003 - 41) / 29
  1194.     PrintLn 
  1195.     PrintLn "@X0F   File Size = " + String(INTEGER003) + " bytes   Number of Records = " + String(INTEGER002)
  1196.     KbdChkOff
  1197.     FOpen 4, STRING002, 0, 0
  1198.     If (Ferr(4)) Then
  1199.         BOOLEAN003 = 1
  1200.     Else
  1201.         BOOLEAN003 = 0
  1202.     Endif
  1203.     If (BOOLEAN003) Then
  1204.         PrintLn 
  1205.         PrintLn "@X0CSorry, the @X0F" + STRING002 + " @X0Cfile is currently inaccessible..."
  1206.         FClose 4
  1207.         Return
  1208.     Endif
  1209.     FCreate 5, PPEPath() + "EDSALLOW.IDX", 1, 2
  1210.     If (Ferr(5)) Then
  1211.         BOOLEAN003 = 1
  1212.     Else
  1213.         BOOLEAN003 = 0
  1214.     Endif
  1215.     If (BOOLEAN003) Then
  1216.         PrintLn 
  1217.         PrintLn "@X0CSorry, the @X0FEDSALLOW.IDX @X0Cfile is currently inaccessible..."
  1218.         FClose 5
  1219.         FClose 4
  1220.         Return
  1221.     Endif
  1222.     BOOLEAN002 = 0
  1223.     FSeek 4, 41, 0
  1224.     FWrite 5, " EDSBack v1.15 Allowed # Index File " + Chr(13) + Chr(32) + Chr(10) + Chr(26) + Chr(0), 41
  1225.     PrintLn 
  1226.     PrintLn "@X0BGenerating Allowed # Calling Index...    "
  1227.     If (GrafMode() <> "N") Then
  1228.         PrintLn 
  1229.         Print "@X0F0% @X07░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ @X0F100%"
  1230.         BYTE001 = GetY()
  1231.     Endif
  1232.     INTEGER001 = 1
  1233.     While (INTEGER001 <= INTEGER002) Do
  1234.         BOOLEAN002 = 0
  1235.         BOOLEAN004 = 0
  1236.         BOOLEAN005 = 0
  1237.         STRING003 = Space(3)
  1238.         STRING004 = Space(4)
  1239.         STRING007 = Space(10)
  1240.         FRead 4, BOOLEAN004, 1
  1241.         FRead 4, BOOLEAN005, 1
  1242.         FRead 4, STRING003, 3
  1243.         FRead 4, STRING004, 4
  1244.         FSeek 4, 20, 1
  1245.         If (InStr(Upper(STRING003 + STRING004), "X")) Then
  1246.             INTEGER004 = 0
  1247.         Else
  1248.             INTEGER004 = S2I(STRING003, 10) + S2I(STRING004, 10)
  1249.         Endif
  1250.         FWrite 5, INTEGER004, 4
  1251.         FWrite 5, INTEGER001, 4
  1252.         If (GrafMode() <> "N") Gosub LABEL031
  1253.         Inc INTEGER001
  1254.     EndWhile
  1255.     Color 7
  1256.     FClose 4
  1257.     FClose 5
  1258.     PrintLn 
  1259.     PrintLn "@X0FAllowed # Calling Index successfully created!"
  1260.     Log "Allowed # Calling Index created!", 0
  1261.     KbdChkOn
  1262.     Return
  1263.     :LABEL027
  1264.     PrintLn 
  1265.     STRING001 = "R"
  1266.     InputStr "@X0F(@X0ED@X0F)@X0Besign your own template or use a @X0F(@X0ER@X0F)@X0Beady-made", STRING001, 11, 1, "DdRr", 2 + 4 + 256
  1267.     STRING001 = Upper(STRING001)
  1268.     If (STRING001 == "R") Then
  1269.         PrintLn 
  1270.         PrintLn 
  1271.         PrintLn "@X07     These ready-made templates are provided for a Quick-Setup of EDSBack."
  1272.         PrintLn "If you have been using EDSBack for awhile and would like to create new "
  1273.         PrintLn "templates, or simply modify your templates, then please read the EDSBack"
  1274.         PrintLn "documentation that deals with (D)esigning your own templates."
  1275.         PrintLn 
  1276.         PrintLn 
  1277.         PrintLn 
  1278.         PrintLn "@X0FThe following is a list of ready-made templates:"
  1279.         PrintLn 
  1280.         PrintLn "@X0E(@X0AL@X0E)@X0Focal         @X08--@X0C Template for dialing local numbers"
  1281.         PrintLn "@X0FLong @X0E(@X0AD@X0E)@X0Fistance @X08--@X0C Template for dialing long distance numbers"
  1282.         PrintLn "@X0E(@X0AT@X0E)@X0Foll          @X08--@X0C Template for dialing toll numbers"
  1283.         PrintLn 
  1284.         PrintLn 
  1285.         STRING001 = ""
  1286.         InputStr "Template to use", STRING001, 10, 1, "LlDdTt", 2 + 4 + 256
  1287.         STRING001 = Trim(Upper(STRING001), " ")
  1288.         If (STRING001 == "") Return
  1289.         PrintLn 
  1290.         Select Case (STRING001)
  1291.             Case "L"
  1292.                 PrintLn "@X0FTemplate is using LOCAL ready-made parameters..."
  1293.                 TBYTE002(0) = 1
  1294.                 TBYTE002(1) = 4
  1295.                 TBYTE002(2) = 5
  1296.                 TBYTE002(3) = 6
  1297.                 TBYTE002(4) = 0
  1298.                 TBYTE002(5) = 0
  1299.             Case "D"
  1300.                 PrintLn "@X0FTemplate is using LONGDIST ready-made parameters..."
  1301.                 TBYTE002(0) = 1
  1302.                 TBYTE002(1) = 2
  1303.                 TBYTE002(2) = 3
  1304.                 TBYTE002(3) = 4
  1305.                 TBYTE002(4) = 5
  1306.                 TBYTE002(5) = 6
  1307.             Case "T"
  1308.                 PrintLn "@X0FTemplate is using TOLL ready-made parameters..."
  1309.                 TBYTE002(0) = 1
  1310.                 TBYTE002(1) = 2
  1311.                 TBYTE002(2) = 4
  1312.                 TBYTE002(3) = 5
  1313.                 TBYTE002(4) = 6
  1314.                 TBYTE002(5) = 0
  1315.         End Select
  1316.     Else
  1317.         Cls
  1318.         PrintLn 
  1319.         PrintLn "@X07You will now be asked to tell EDSBack how to dial a number when using this"
  1320.         PrintLn "template.  EDSBack will dial up to 6 different fields.  Each field may contain"
  1321.         PrintLn "a number for EDSBack to dial, or a setting of NONE telling EDSBack to dial "
  1322.         PrintLn "to dial nothing for that field.  For example, for a local number, you would "
  1323.         PrintLn "tell EDSBack to dial the PREFIX/CITY CODE for field #1, the NUMBER for field"
  1324.         PrintLn "#2, and NONE for fields 3 - 6."
  1325.         PrintLn 
  1326.         PrintLn 
  1327.         PrintLn "@X0BThe next 6 fields contain the parameters for the dialing template:"
  1328.         PrintLn 
  1329.         For INTEGER004 = 0 To 5
  1330.             PrintLn "@X0FField #" + String(INTEGER004 + 1) + " of 6"
  1331.             PrintLn 
  1332.             PrintLn "@X0A(@X0C0@X0A)@X0B None"
  1333.             PrintLn "@X0A(@X0C1@X0A)@X0B NUMPREFIX (as defined in config settings)"
  1334.             PrintLn "@X0A(@X0C2@X0A)@X0B LONG DISTANCE ACCESS CODE"
  1335.             PrintLn "@X0A(@X0C3@X0A)@X0B AREACODE/COUNTRYCODE"
  1336.             PrintLn "@X0A(@X0C4@X0A)@X0B PREFIX/CITYCODE"
  1337.             PrintLn "@X0A(@X0C5@X0A)@X0B NUMBER"
  1338.             PrintLn "@X0A(@X0C6@X0A)@X0B NUMSUFFIX (as defined in config settings)"
  1339.             PrintLn 
  1340.             STRING001 = I2S(TBYTE002(INTEGER004), 10)
  1341.             InputStr "Number to dial for field #" + String(INTEGER004 + 1), STRING001, 14, 1, "0123456", 2 + 4 + 256
  1342.             TBYTE002(INTEGER004) = S2I(STRING001, 10)
  1343.             PrintLn 
  1344.         Next
  1345.     Endif
  1346.     Return
  1347.     :LABEL028
  1348.     STRING001 = PPEPath() + "EDSBACK.XXX"
  1349.     If (Exist(STRING001)) Then
  1350.         FOpen 2, STRING001, 0, 0
  1351.     Else
  1352.         PrintLn 
  1353.         PrintLn "@X0FPath & filename to EDSBack config file @X0E(Enter Below)"
  1354.         InputStr "", STRING001, 12, 75, Mask_Path() + Mask_File(), 2 + 4
  1355.         If (Exist(STRING001)) Goto LABEL029
  1356.         PrintLn 
  1357.         PrintLn "@X0C" + STRING001 + " DOES NOT EXIST!   @X0AReturning to EDSUtil Main..."
  1358.         Goto LABEL034
  1359.         Goto LABEL030
  1360.         :LABEL029
  1361.         FOpen 2, STRING001, 0, 0
  1362.     Endif
  1363.     :LABEL030
  1364.     If (Ferr(2)) Then
  1365.         BOOLEAN003 = 1
  1366.     Else
  1367.         BOOLEAN003 = 0
  1368.     Endif
  1369.     If (BOOLEAN003) Then
  1370.         PrintLn 
  1371.         PrintLn "@X0CSorry, the " + STRING001 + " @X0Cfile is currently inaccessible..."
  1372.         FClose 2
  1373.         Return
  1374.     Endif
  1375.     Return
  1376.     :LABEL031
  1377.     If (INTEGER001 == 1) BYTE007 = 0
  1378.     If ((INTEGER001 <> 0) && (INTEGER002 <> 0)) Then
  1379.         REAL002 = ToReal(INTEGER001) / ToReal(INTEGER002)
  1380.         REAL003 = FmtReal(ToReal(35) * REAL002, 1, 0)
  1381.         BYTE006 = ToByte(REAL003) - BYTE007
  1382.         If (BYTE006 <> BYTE007) Then
  1383.             Color 73
  1384.             AnsiPos 4 + BYTE007, BYTE001
  1385.             For BYTE007 = 1 To BYTE006
  1386.                 Print "▓"
  1387.             Next
  1388.             BYTE007 = ToByte(REAL003)
  1389.             REAL002 = FmtReal(REAL002 * 100, 1, 0)
  1390.             BYTE006 = (43 - Len(String(REAL002) + "%")) / 2
  1391.             Color 11
  1392.             REAL003 = ToReal(BYTE001) - 1
  1393.             AnsiPos BYTE006, ToByte(REAL003)
  1394.             Print String(REAL002) + "%"
  1395.             AnsiPos 45, BYTE001
  1396.         Endif
  1397.     Endif
  1398.     Return
  1399.     :LABEL032
  1400.     If ((INTEGER001 <> 0) && (INTEGER002 <> 0)) Then
  1401.         If (INTEGER001 == 1) Then
  1402.             BYTE005 = 0
  1403.             Goto LABEL033
  1404.         Endif
  1405.         BYTE005 = REAL001
  1406.         :LABEL033
  1407.         REAL001 = ToReal(INTEGER001) / ToReal(INTEGER002)
  1408.         REAL001 = FmtReal(REAL001 * 100, 1, 0)
  1409.         If (BYTE005 <> REAL001) Then
  1410.             Backup Len(String(BYTE005) + "%")
  1411.             Print String(REAL001) + "%"
  1412.         Endif
  1413.     Endif
  1414.     Return
  1415.     :LABEL034
  1416.     End
  1417.  
  1418. ;------------------------------------------------------------------------------
  1419. ;
  1420. ; Usage report (before postprocessing)
  1421. ;
  1422. ; ■ Statements used :
  1423. ;
  1424. ;    1       End
  1425. ;    8       Cls
  1426. ;    5       Color 
  1427. ;    294     Goto 
  1428. ;    291     Let 
  1429. ;    17      Print 
  1430. ;    239     PrintLn 
  1431. ;    172     If 
  1432. ;    2       DispFile 
  1433. ;    10      FCreate 
  1434. ;    11      FOpen 
  1435. ;    2       FAppend 
  1436. ;    54      FClose 
  1437. ;    1       FGet 
  1438. ;    9       FPutLn 
  1439. ;    4       Delete 
  1440. ;    4       Log 
  1441. ;    17      InputStr 
  1442. ;    6       InputYN 
  1443. ;    8       InputInt 
  1444. ;    23      Gosub 
  1445. ;    38      Return
  1446. ;    8       Delay 
  1447. ;    7       Inc 
  1448. ;    2       Dec 
  1449. ;    24      Newline
  1450. ;    1       GetToken 
  1451. ;    5       InputText 
  1452. ;    3       KbdChkOn
  1453. ;    3       KbdChkOff
  1454. ;    3       AnsiPos 
  1455. ;    2       Backup 
  1456. ;    4       Rename 
  1457. ;    40      FSeek 
  1458. ;    36      FRead 
  1459. ;    94      FWrite 
  1460. ;
  1461. ;
  1462. ; ■ Functions used :
  1463. ;
  1464. ;    19      *
  1465. ;    11      /
  1466. ;    251     +
  1467. ;    27      -
  1468. ;    60      ==
  1469. ;    14      <>
  1470. ;    13      <
  1471. ;    17      <=
  1472. ;    2       >
  1473. ;    20      >=
  1474. ;    162     !
  1475. ;    20      &&
  1476. ;    11      ||
  1477. ;    3       Len(
  1478. ;    23      Upper()
  1479. ;    3       Mid()
  1480. ;    1       Left()
  1481. ;    25      Space()
  1482. ;    21      Ferr()
  1483. ;    36      Chr()
  1484. ;    4       InStr()
  1485. ;    9       Trim()
  1486. ;    1       Date()
  1487. ;    1       Time()
  1488. ;    5       NoChar()
  1489. ;    12      YesChar()
  1490. ;    16      Strip()
  1491. ;    33      String()
  1492. ;    8       Mask_Num()
  1493. ;    4       Mask_File()
  1494. ;    4       Mask_Path()
  1495. ;    18      PPEPath()
  1496. ;    10      PcbNode()
  1497. ;    13      Exist()
  1498. ;    1       I2S()
  1499. ;    9       S2I()
  1500. ;    3       GetY()
  1501. ;    6       GrafMode()
  1502. ;    8       FileInf()
  1503. ;    1       TokCount()
  1504. ;    3       ToByte()
  1505. ;    6       ToReal()
  1506. ;    3       FmtReal()
  1507. ;
  1508. ;------------------------------------------------------------------------------
  1509. ;
  1510. ; Analysis flags : No flag
  1511. ;
  1512. ;------------------------------------------------------------------------------
  1513. ;
  1514. ; Postprocessing report
  1515. ;
  1516. ;    9       For/Next
  1517. ;    4       While/EndWhile
  1518. ;    100     If/Then or If/Then/Else
  1519. ;    4       Select Case
  1520. ;
  1521. ;------------------------------------------------------------------------------
  1522. ;                 AEGiS Corp - Break the routines, code against the machines!
  1523. ;------------------------------------------------------------------------------
  1524.