home *** CD-ROM | disk | FTP | other *** search
/ Carsten's PPE Collection / Carstens_PPE_Collection_2007.zip / T / THTCK12B.ZIP / UPCHK.PPE (.txt) < prev    next >
PCBoard Programming Language Executable  |  1994-06-12  |  14KB  |  698 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.     Date     DATE001
  23.     Date     DATE002
  24.     Date     DATE003
  25.     Date     DATE004
  26.     Date     DATE005
  27.     Integer  INTEGER001
  28.     Integer  INTEGER002
  29.     Integer  INTEGER003
  30.     Integer  INTEGER004
  31.     Integer  INTEGER005
  32.     Integer  INTEGER006
  33.     Integer  INTEGER007
  34.     Integer  INTEGER008
  35.     Integer  INTEGER009
  36.     Integer  INTEGER010
  37.     Integer  INTEGER011
  38.     Integer  INTEGER012
  39.     Integer  INTEGER013
  40.     Integer  INTEGER014
  41.     Integer  INTEGER015
  42.     Integer  INTEGER016
  43.     Integer  INTEGER017
  44.     Integer  INTEGER018
  45.     Integer  INTEGER019
  46.     Integer  INTEGER020
  47.     String   STRING001
  48.     String   STRING002
  49.     String   STRING003
  50.     String   STRING004
  51.     String   STRING005
  52.     String   STRING006
  53.     String   STRING007
  54.     String   STRING008
  55.     String   STRING009
  56.     String   STRING010
  57.     String   STRING011
  58.     String   STRING012
  59.     String   STRING013
  60.     String   STRING014
  61.     String   STRING015
  62.     String   STRING016
  63.     String   STRING017
  64.     String   STRING018
  65.     String   STRING019
  66.     String   STRING020
  67.     String   STRING021
  68.     String   STRING022
  69.     String   STRING023
  70.     String   STRING024
  71.     String   STRING025
  72.     String   STRING026
  73.     String   STRING027
  74.     String   STRING028
  75.     String   STRING029
  76.     String   STRING030
  77.     String   STRING031
  78.     String   STRING032
  79.     String   STRING033
  80.     String   STRING034
  81.     String   STRING035
  82.     String   STRING036
  83.     String   STRING037
  84.     String   STRING038
  85.     String   STRING039
  86.     String   STRING040
  87.     String   STRING041
  88.     String   STRING042
  89.     String   STRING043
  90.     String   STRING044
  91.     String   STRING045
  92.     String   STRING046
  93.     String   STRING047
  94.     String   STRING048
  95.     String   STRING049
  96.     String   STRING050
  97.     String   STRING051
  98.     String   STRING052
  99.     String   STRING053
  100.     String   STRING054
  101.     String   STRING055
  102.     String   STRING056
  103.     String   STRING057
  104.     String   STRING058
  105.     String   TSTRING059(65)
  106.     String   TSTRING060(1)
  107.     String   STRING061
  108.     String   STRING062
  109.     String   STRING063
  110.     String   STRING064
  111.     String   STRING065
  112.     String   STRING066
  113.     String   STRING067
  114.     String   STRING068
  115.     String   STRING069
  116.  
  117. ;------------------------------------------------------------------------------
  118.  
  119.     CdChkOff
  120.     INTEGER006 = 999999
  121.     BOOLEAN002 = 0
  122.     FDefIn 1
  123.     FDefOut 3
  124.     If (Exist(GetEnv("PCBDRIVE") + GetEnv("PCBDIR") + "\" + TempPath() + "PCBFAIL.TXT")) Delete GetEnv("PCBDRIVE") + GetEnv("PCBDIR") + "\" + TempPath() + "PCBFAIL.TXT"
  125.     If (Exist(GetEnv("PCBDRIVE") + GetEnv("PCBDIR") + "\" + "PCBPASS.TXT")) Delete GetEnv("PCBDRIVE") + GetEnv("PCBDIR") + "\" + "PCBPASS.TXT"
  126.     If (Exist(GetEnv("PCBDRIVE") + GetEnv("PCBDIR") + "\" + "PCBFAIL.TXT")) Delete GetEnv("PCBDRIVE") + GetEnv("PCBDIR") + "\" + "PCBFAIL.TXT"
  127.     If (Exist(GetEnv("PCBDRIVE") + GetEnv("PCBDIR") + "\DIZ." + String(PcbNode()))) Delete GetEnv("PCBDRIVE") + GetEnv("PCBDIR") + "\DIZ." + String(PcbNode())
  128.     STRING021 = Chr(49) + Chr(46) + Chr(50) + Chr(48) + Chr(225)
  129.     STRING020 = Chr(64) + Chr(88) + Chr(48) + Chr(56) + Chr(84) + Chr(72) + Chr(84) + Chr(45) + Chr(85) + Chr(80) + Chr(45) + Chr(67) + Chr(104) + Chr(101) + Chr(99) + Chr(107) + " " + Chr(64) + Chr(88) + Chr(48) + Chr(57) + Chr(118) + STRING021
  130.     RestScrn
  131.     StartDisp 1
  132.     FOpen 1, PPEPath() + PPEName() + ".cnf", 0, 0
  133.     FDGet STRING038
  134.     FDGet STRING051
  135.     FDGet INTEGER005
  136.     FDGet STRING028
  137.     FDGet STRING029
  138.     FDGet STRING037
  139.     FDGet STRING030
  140.     FDGet STRING031
  141.     FDGet STRING024
  142.     FDGet STRING032
  143.     FDGet STRING019
  144.     FDGet STRING040
  145.     FDGet STRING041
  146.     FDGet STRING042
  147.     FDGet STRING043
  148.     FDGet STRING044
  149.     FDGet STRING045
  150.     FDGet STRING046
  151.     FDGet STRING047
  152.     FDGet STRING048
  153.     FDGet STRING049
  154.     FDGet STRING050
  155.     FDGet STRING039
  156.     FDGet STRING022
  157.     FDGet STRING023
  158.     FDGet STRING013
  159.     FDGet STRING014
  160.     FDGet STRING015
  161.     FDGet STRING016
  162.     FDGet STRING057
  163.     FDGet STRING058
  164.     FDGet STRING026
  165.     FDGet STRING027
  166.     FClose 1
  167.     DispFile PPEPath() + PPEName() + ".dsp", 0
  168.     AnsiPos 31, 1
  169.     Print STRING020
  170.     TSTRING060(0) = Upper(ReadLine(PCBDat(), 2))
  171.     TSTRING060(1) = Upper(ReadLine(PCBDat(), 94))
  172.     INTEGER019 = Len(TSTRING060(0))
  173.     If (INTEGER019 < 2) TSTRING060(0) = Chr(109) + Chr(101)
  174.     INTEGER018 = Len(TSTRING060(1))
  175.     If (INTEGER018 < 2) TSTRING060(1) = Chr(109) + Chr(101)
  176.     For INTEGER020 = 1 To INTEGER019
  177.         TSTRING059(INTEGER020) = Mid(TSTRING060(0), INTEGER020, 1) + I2S(11, 36) + I2S(13, 36) + I2S(15, 36)
  178.         STRING062 = STRING062 + S2I(TSTRING059(INTEGER020), 31) + S2I(TSTRING059(INTEGER020), 34)
  179.         STRING063 = STRING063 + I2S(S2I(TSTRING059(INTEGER020), 31), 28) + I2S(S2I(99, 29), 32)
  180.     Next
  181.     STRING062 = STRING062 + S2I(I2S(14, 36) + I2S(11, 36), 31)
  182.     STRING062 = STRING062 * INTEGER019
  183.     STRING063 = STRING063 + I2S(S2I(56, 31), 35)
  184.     For INTEGER020 = 1 To INTEGER018
  185.         TSTRING059(INTEGER020) = Mid(TSTRING060(1), INTEGER020, 1) + I2S(15, 36) + I2S(11, 36) + I2S(13, 36)
  186.         STRING064 = STRING064 + S2I(TSTRING059(INTEGER020), 35) + S2I(TSTRING059(INTEGER020), 32)
  187.         STRING065 = STRING065 + I2S(S2I(TSTRING059(INTEGER020), 31), 29) + I2S(S2I(79, 29), 36)
  188.     Next
  189.     STRING064 = STRING064 + S2I(I2S(11, 36) + I2S(14, 36), 31)
  190.     STRING064 = STRING064 * INTEGER018
  191.     STRING065 = STRING065 + I2S(S2I(65, 31), 32)
  192.     If (Exist(PPEPath() + PPEName() + ".key")) FOpen 1, PPEPath() + PPEName() + ".key", 0, 0
  193.     FGet 1, STRING066
  194.     FGet 1, STRING067
  195.     FGet 1, STRING068
  196.     FGet 1, STRING069
  197.     FClose 1
  198.     If (Exist(PPEPath() + PPEName() + ".key")) Then
  199.         If (((!(STRING062 == STRING066) || !(STRING063 == STRING067)) || !(STRING064 == STRING068)) || !(STRING065 == STRING069)) Then
  200.             PrintLn "@X8FInvalid @X0C" + PPEName() + "@X0F.KEY File has been found"
  201.             Delete PPEPath() + PPEName() + ".key"
  202.         Endif
  203.     Endif
  204.     STRING061 = Chr(64) + I2S(33, 36) + I2S(0, 36) + I2S(12, 36) + Chr(60) + Chr(60) + Chr(60) + Chr(64) + Chr(88) + I2S(0, 36) + I2S(12, 36) + I2S(30, 36) + I2S(23, 36) + I2S(27, 36) + Chr(101) + Chr(103) + Chr(105) + Chr(115) + Chr(116) + Chr(101) + Chr(114) + Chr(101) + Chr(100) + Chr(64) + Chr(88) + I2S(0, 36) + I2S(12, 36) + Chr(62) + Chr(62) + Chr(62)
  205.     If (((!(STRING062 == STRING066) || !(STRING063 == STRING067)) || !(STRING064 == STRING068)) || !(STRING065 == STRING069)) Then
  206.         Newline
  207.         Print Chr(64) + I2S(25, 36) + I2S(24, 36) + I2S(28, 36) + ":" + Chr(50) + Chr(50) + Chr(64) + STRING061
  208.         Print "  " + Chr(64) + Chr(88) + Chr(48) + I2S(15, 36) + I2S(25, 36) + I2S(21, 26) + I2S(14, 36) + I2S(10, 36) + I2S(28, 36) + I2S(14, 36) + " " + I2S(27, 36) + I2S(14, 36) + I2S(16, 36) + I2S(18, 36) + I2S(28, 36) + I2S(29, 36) + I2S(14, 36) + I2S(27, 36) + " "
  209.     Endif
  210.     AnsiPos STRING019, 5
  211.     Print STRING039 + U_Name()
  212.     AnsiPos STRING019, 8
  213.     Print STRING016 + "@OPTEXT@"
  214.     STRING017 = ScrText(STRING019, 8, 12, 0)
  215.     STRING017 = RTrim(STRING017, " ")
  216.     INTEGER007 = CurConf()
  217.     If (INTEGER007 == 0) Then
  218.         INTEGER008 = 243
  219.     Else
  220.         INTEGER008 = INTEGER007 * 548 + 243
  221.     Endif
  222.     STRING007 = ReadLine(PCBDat(), 31)
  223.     FOpen 1, STRING007 + ".@@@", 0, 0
  224.     FSeek 1, INTEGER008, 0
  225.     FRead 1, STRING018, 25
  226.     FClose 1
  227.     STRING017 = STRING018 + STRING017
  228.     AnsiPos STRING019, 10
  229.     If (Exist(STRING017)) Print STRING016 + FileInf(STRING017, 9)
  230.     AnsiPos STRING019, 11
  231.     Print STRING049
  232.     If (OnLocal()) AnsiPos 78, 21
  233.     If (OnLocal()) SaveScrn
  234.     If (Exist(STRING017)) Shell 1, INTEGER001, STRING028, STRING017
  235.     If (OnLocal()) RestScrn
  236.     If (Exist(STRING017)) Goto LABEL001
  237.     AnsiPos STRING019, 11
  238.     Print STRING046
  239.     Goto LABEL023
  240.     Goto LABEL002
  241.     :LABEL001
  242.     If (OnLocal()) RestScrn
  243.     AnsiPos STRING019, 11
  244.     If (Exist(STRING017)) Print STRING045
  245.     :LABEL002
  246.     AnsiPos STRING019, 12
  247.     Print STRING049
  248.     If (STRING038 <> YesChar()) Goto LABEL012
  249.     If (((FileInf(STRING017, 9) == "ZIP") || (FileInf(STRING017, 9) == "ARJ")) || (FileInf(STRING017, 9) == "LZH")) Then
  250.         FOpen 4, PPEPath() + "exclude", 0, 0
  251.         FOpen 1, "FILELIST.arc", 0, 0
  252.         Goto LABEL003
  253.     Else
  254.         Goto LABEL012
  255.     Endif
  256.     :LABEL003
  257.     If (Ferr(1)) Goto LABEL006
  258.     :LABEL004
  259.     FDGet STRING033
  260.     If ((Mid(STRING033, 1, 6) <> "======") && (BOOLEAN001 == 0)) Goto LABEL004
  261.     If ((Mid(STRING033, 1, 6) == "======") && (BOOLEAN001 == 0)) Then
  262.         BOOLEAN001 = 1
  263.         Goto LABEL004
  264.     Endif
  265.     If ((Mid(STRING033, 2, 6) == "======") && (BOOLEAN001 == 1)) Then
  266.         Goto LABEL006
  267.     Endif
  268.     If (STRING033 == "") Goto LABEL006
  269.     STRING036 = Mid(STRING033, 1, 12)
  270.     STRING036 = RTrim(STRING036, " ")
  271.     Inc STRING008
  272.     If (((STRING015 == YesChar()) && (FileInf(STRING036, 9) == "NFO")) || ((STRING015 == YesChar()) && (FileInf(STRING036, 9) == "DIZ"))) Goto LABEL004
  273.     STRING025 = LTrim(Mid(STRING033, 15, 8), " ")
  274.     If (STRING025 == 0) Goto LABEL004
  275.     Gosub LABEL010
  276.     STRING035 = Mid(STRING033, 51, 9)
  277.     STRING011 = Mid(STRING035, 1, 2)
  278.     STRING009 = Upper(Mid(STRING035, 4, 3))
  279.     Select Case (STRING009)
  280.         Case "JAN"
  281.             STRING009 = "01"
  282.         Case "FEB"
  283.             STRING009 = "02"
  284.         Case "MAR"
  285.             STRING009 = "03"
  286.         Case "APR"
  287.             STRING009 = "04"
  288.         Case "MAY"
  289.             STRING009 = "05"
  290.         Case "JUN"
  291.             STRING009 = "06"
  292.         Case "JUL"
  293.             STRING009 = "07"
  294.         Case "AUG"
  295.             STRING009 = "08"
  296.         Case "SEP"
  297.             STRING009 = "09"
  298.         Case "OCT"
  299.             STRING009 = "10"
  300.         Case "NOV"
  301.             STRING009 = "11"
  302.         Case "DEC"
  303.             STRING009 = "12"
  304.     End Select
  305.     STRING010 = Mid(STRING035, 8, 2)
  306.     DATE003 = STRING009 + "-" + STRING011 + "-" + STRING010
  307.     INTEGER009 = DATE003
  308.     If (((DATE003 > Date()) || (INTEGER009 == "0")) || (INTEGER009 == "29220")) Goto LABEL004
  309.     If (INTEGER009 < INTEGER006) Then
  310.         INTEGER017 = DATE003
  311.         DATE005 = INTEGER017
  312.     Endif
  313.     INTEGER006 = INTEGER009
  314.     If (INTEGER009 > INTEGER016) Then
  315.         INTEGER016 = DATE003
  316.         DATE004 = INTEGER016
  317.     Endif
  318.     If (Upper(STRING051) == "MORE") Then
  319.         If (Date() - INTEGER009 > INTEGER005) Then
  320.             Inc INTEGER014
  321.             Goto LABEL005
  322.         Endif
  323.         Inc INTEGER015
  324.     Endif
  325.     :LABEL005
  326.     If (Upper(STRING051) == "AVG") Then
  327.         INTEGER010 = INTEGER010 + DATE003
  328.         Inc INTEGER011
  329.     Endif
  330.     Goto LABEL003
  331.     :LABEL006
  332.     FClose 1
  333.     FClose 4
  334.     DATE001 = INTEGER016
  335.     DATE002 = INTEGER017
  336.     STRING005 = DATE001
  337.     STRING006 = DATE002
  338.     If (Upper(STRING051) == "AVG") Goto LABEL009
  339.     If (Upper(STRING051) == "MORE") Goto LABEL008
  340.     If (Upper(STRING051) == "NEW") Goto LABEL007
  341.     If (Upper(STRING051) == "OLD") Goto LABEL000
  342.     STRING012 = Date() - INTEGER017
  343.     If (STRING012 > INTEGER005) Then
  344.         AnsiPos STRING019, 12
  345.         Print STRING047
  346.         INTEGER004 = Len(StripAtx(STRING047))
  347.         AnsiPos STRING019 + INTEGER004 + 1, 12
  348.         Print STRING039 + "(" + STRING013 + STRING012 + STRING039 + ")" + STRING014
  349.         Copy STRING017, STRING024 + FileInf(STRING017, 8)
  350.         Delete STRING017
  351.         FCreate 3, GetEnv("PCBDRIVE") + GetEnv("PCBDIR") + "\" + TempPath() + "PCBFAIL.TXT", 1, 0
  352.         FDPutLn STRING047
  353.         FClose 3
  354.         Goto LABEL023
  355.     Else
  356.         AnsiPos STRING019, 12
  357.         Print STRING048
  358.         INTEGER004 = Len(StripAtx(STRING048))
  359.         AnsiPos STRING019 + INTEGER004 + 1, 12
  360.         Print STRING039 + "(" + STRING013 + STRING012 + STRING039 + ")" + STRING014
  361.     Endif
  362.     Goto LABEL012
  363.     :LABEL007
  364.     STRING012 = Date() - INTEGER016
  365.     If (STRING012 > INTEGER005) Then
  366.         AnsiPos STRING019, 12
  367.         Print STRING047
  368.         INTEGER004 = Len(StripAtx(STRING047))
  369.         AnsiPos STRING019 + INTEGER004 + 1, 12
  370.         Print STRING039 + "(" + STRING013 + STRING012 + STRING039 + ")" + STRING014
  371.         Copy STRING017, STRING024 + FileInf(STRING017, 8)
  372.         Delete STRING017
  373.         FCreate 3, GetEnv("PCBDRIVE") + GetEnv("PCBDIR") + "\" + TempPath() + "PCBFAIL.TXT", 1, 0
  374.         FDPutLn STRING047
  375.         FClose 3
  376.         Goto LABEL023
  377.     Else
  378.         AnsiPos STRING019, 12
  379.         Print STRING048
  380.         INTEGER004 = Len(StripAtx(STRING048))
  381.         AnsiPos STRING019 + INTEGER004 + 1, 12
  382.         Print STRING039 + "(" + STRING013 + STRING012 + STRING039 + ")" + STRING014
  383.     Endif
  384.     Goto LABEL012
  385.     :LABEL008
  386.     STRING012 = INTEGER015
  387.     If (INTEGER014 > INTEGER015) Then
  388.         STRING012 = INTEGER014
  389.         AnsiPos STRING019, 12
  390.         Print STRING047
  391.         INTEGER004 = Len(StripAtx(STRING047))
  392.         AnsiPos STRING019 + INTEGER004 + 1, 12
  393.         Print STRING039 + "(" + STRING013 + STRING012 + STRING039 + ")" + STRING058
  394.         Copy STRING017, STRING024 + FileInf(STRING017, 8)
  395.         Delete STRING017
  396.         FCreate 3, GetEnv("PCBDRIVE") + GetEnv("PCBDIR") + "\" + TempPath() + "PCBFAIL.TXT", 1, 0
  397.         FDPutLn STRING047
  398.         FClose 3
  399.         Goto LABEL023
  400.     Else
  401.         AnsiPos STRING019, 12
  402.         Print STRING048
  403.         INTEGER004 = Len(StripAtx(STRING048))
  404.         AnsiPos STRING019 + INTEGER004 + 1, 12
  405.         Print STRING039 + "(" + STRING013 + STRING012 + STRING039 + ")" + STRING057
  406.     Endif
  407.     Goto LABEL012
  408.     :LABEL009
  409.     INTEGER012 = Date()
  410.     INTEGER013 = INTEGER010 / INTEGER011
  411.     STRING012 = INTEGER012 - INTEGER013
  412.     If (INTEGER012 - INTEGER013 > INTEGER005) Then
  413.         AnsiPos STRING019, 12
  414.         Print STRING047
  415.         INTEGER004 = Len(StripAtx(STRING047))
  416.         AnsiPos STRING019 + INTEGER004 + 1, 12
  417.         Print STRING039 + "(" + STRING013 + STRING012 + STRING039 + ")" + STRING014
  418.         Copy STRING017, STRING024 + FileInf(STRING017, 8)
  419.         Delete STRING017
  420.         FCreate 3, GetEnv("PCBDRIVE") + GetEnv("PCBDIR") + "\" + TempPath() + "PCBFAIL.TXT", 1, 0
  421.         FDPutLn STRING047
  422.         FClose 3
  423.         Goto LABEL023
  424.     Else
  425.         AnsiPos STRING019, 12
  426.         Print STRING048
  427.         INTEGER004 = Len(StripAtx(STRING048))
  428.         AnsiPos STRING019 + INTEGER004 + 1, 12
  429.         Print STRING039 + "(" + STRING013 + STRING012 + STRING039 + ")" + STRING014
  430.     Endif
  431.     Goto LABEL012
  432.     :LABEL010
  433.     If (Ferr(4)) Goto LABEL011
  434.     FGet 4, STRING034
  435.     If (STRING034 == "") Goto LABEL011
  436.     If ((STRING034 == STRING036) || (STRING034 == FileInf(STRING036, 9))) Then
  437.         Frewind 4
  438.         Goto LABEL004
  439.     Endif
  440.     Goto LABEL010
  441.     :LABEL011
  442.     Frewind 4
  443.     Return
  444.     :LABEL012
  445.     AnsiPos STRING019, 13
  446.     Print STRING049
  447.     If (OnLocal()) AnsiPos 78, 21
  448.     If (OnLocal()) SaveScrn
  449.     If (Exist(STRING017)) Shell 1, INTEGER001, STRING029, STRING017
  450.     If (OnLocal()) RestScrn
  451.     AnsiPos STRING019, 13
  452.     If (Exist(STRING017)) Print STRING045
  453.     STRING003 = GetEnv("PCBDRIVE") + GetEnv("PCBDIR") + "\FLIST." + String(PcbNode())
  454.     STRING004 = GetEnv("PCBDRIVE") + GetEnv("PCBDIR") + "\FDESC." + String(PcbNode())
  455.     If (Exist(STRING004)) FOpen 6, STRING004, 2, 0
  456.     If (Exist(STRING003)) FOpen 5, STRING003, 0, 0
  457.     FSeek 5, 66, 0
  458.     FRead 5, STRING002, 12
  459.     FSeek 6, 0, 0
  460.     FRead 6, STRING001, 45
  461.     Select Case (STRING002)
  462.         Case FileInf(STRING017, 8)
  463.             FSeek 6, 0, 0
  464.             FWrite 6, " ", 1
  465.             FClose 5
  466.             FClose 6
  467.             :LABEL013
  468.             If (Ferr(5)) Goto LABEL014
  469.             FSeek 5, 117, 1
  470.             FRead 5, STRING002, 12
  471.             If (Ferr(5)) Goto LABEL014
  472.             FSeek 6, 916, 1
  473.             FRead 6, STRING001, 45
  474.             If (Ferr(6)) Goto LABEL014
  475.         Case FileInf(STRING017, 8)
  476.             FSeek 6, -1, 1
  477.             FWrite 6, " ", 1
  478.             FClose 5
  479.             FClose 6
  480.         Case Else
  481.             Goto LABEL013
  482.             :LABEL014
  483.             STRING001 = ""
  484.             FClose 5
  485.             FClose 6
  486.     End Select
  487.     AnsiPos STRING019, 14
  488.     Print STRING042
  489.     FClose 6
  490.     INTEGER002 = Len(String(FileInf(STRING017, 4)))
  491.     STRING054 = 9 - INTEGER002
  492.     INTEGER003 = Len(String(FileInf(STRING017, 8)))
  493.     STRING055 = 12 - INTEGER003
  494.     STRING053 = ReadLine(PCBDat(), 179)
  495.     If (Exist("diz." + String(PcbNode()))) FOpen 1, "diz." + String(PcbNode()) , 0, 0
  496.     FCreate 3, STRING053 + "updesc." + String(PcbNode()), 1, 0
  497.     FDGet STRING052
  498.     If (!Exist("diz." + String(PcbNode()))) STRING052 = STRING032
  499.     If ((Mid(STRING001, 1, 1) == "/") && !Exist("diz." + String(PcbNode()))) Then
  500.         FDPutLn FileInf(STRING017, 8) + Space(STRING055) + Space(STRING054) + String(FileInf(STRING017, 4)) + "  " + String(FileInf(STRING017, 2)) + "  " + STRING001
  501.         FDPutLn Space(31) + "| " + STRING052
  502.     ElseIf (Exist("diz." + String(PcbNode())) && (Mid(STRING001, 1, 1) == "/")) Then
  503.         FDPutLn FileInf(STRING017, 8) + Space(STRING055) + Space(STRING054) + String(FileInf(STRING017, 4)) + "  " + String(FileInf(STRING017, 2)) + "  " + STRING001
  504.         FDPutLn Space(31) + "| " + STRING052
  505.     ElseIf (!Exist("diz." + String(PcbNode())) && (STRING001 == "")) Then
  506.         FDPutLn FileInf(STRING017, 8) + Space(STRING055) + Space(STRING054) + String(FileInf(STRING017, 4)) + "  " + String(FileInf(STRING017, 2)) + "  " + STRING052
  507.     ElseIf (!Exist("diz." + String(PcbNode())) && (STRING001 <> "")) Then
  508.         FDPutLn FileInf(STRING017, 8) + Space(STRING055) + Space(STRING054) + String(FileInf(STRING017, 4)) + "  " + String(FileInf(STRING017, 2)) + "  " + STRING001
  509.         FDPutLn Space(31) + "| " + STRING052
  510.     ElseIf (Exist("diz." + String(PcbNode())) && (Mid(STRING001, 1, 1) <> "/")) Then
  511.         FDPutLn FileInf(STRING017, 8) + Space(STRING055) + Space(STRING054) + String(FileInf(STRING017, 4)) + "  " + String(FileInf(STRING017, 2)) + "  " + STRING052
  512.     Endif
  513.     :LABEL015
  514.     If (Ferr(1)) Goto LABEL017
  515.     :LABEL016
  516.     FDGet STRING052
  517.     BOOLEAN003 = 0
  518.     Gosub LABEL018
  519.     If (STRING052 == "") Then
  520.         Goto LABEL017
  521.     Endif
  522.     FDPutLn Space(31) + "| " + STRING052
  523.     Goto LABEL015
  524.     :LABEL017
  525.     FClose 1
  526.     If (STRING026 == YesChar()) FDPutLn Space(31) + "| Files: (" + STRING008 + ")  Newest: " + STRING005 + " Oldest: " + STRING006
  527.     If (STRING022 == YesChar()) FDPutLn Space(31) + "| " + STRING023 + " " + U_Name()
  528.     FClose 3
  529.     Goto LABEL021
  530.     :LABEL018
  531.     FOpen 5, PPEPath() + PPEName() + ".rmv", 0, 0
  532.     :LABEL019
  533.     If (Ferr(5)) Goto LABEL020
  534.     FGet 5, STRING056
  535.     If (STRING056 == "") Goto LABEL020
  536.     SearchInit STRING056, 0
  537.     SearchFind STRING052, BOOLEAN003
  538.     If (BOOLEAN003 == 1) Then
  539.         If (BOOLEAN002 == 1) Then
  540.             AnsiPos STRING040, 19
  541.             Print STRING041
  542.         Endif
  543.         BOOLEAN002 = 1
  544.         AnsiPos STRING040, 20
  545.         Print Space(15)
  546.         AnsiPos STRING040, 20
  547.         Print STRING039 + STRING052
  548.         FClose 5
  549.         Goto LABEL016
  550.     Endif
  551.     Goto LABEL019
  552.     :LABEL020
  553.     FClose 5
  554.     Return
  555.     :LABEL021
  556.     INTEGER007 = Len(StripAtx(STRING042))
  557.     AnsiPos STRING019, 14
  558.     Print Space(INTEGER007)
  559.     AnsiPos STRING019, 14
  560.     Print STRING043
  561.     AnsiPos STRING019, 15
  562.     If (FileInf(STRING017, 9) <> "ZIP") Goto LABEL022
  563.     Print STRING050 + FileInf(STRING017, 8)
  564.     If (OnLocal()) AnsiPos 78, 21
  565.     If (OnLocal()) SaveScrn
  566.     If (Exist(STRING017)) Shell 1, INTEGER001, STRING031, STRING017
  567.     If (OnLocal()) RestScrn
  568.     :LABEL022
  569.     If (STRING037 <> YesChar()) Goto LABEL023
  570.     AnsiPos STRING019, 16
  571.     Print STRING044
  572.     If (OnLocal()) AnsiPos 1, 22
  573.     If (OnLocal()) SaveScrn
  574.     If (Exist(STRING017)) Shell 1, INTEGER001, STRING030, STRING017
  575.     If (OnLocal()) RestScrn
  576.     INTEGER008 = Len(StripAtx(STRING044))
  577.     AnsiPos STRING019, 16
  578.     Print Space(INTEGER008)
  579.     AnsiPos STRING019, 16
  580.     Print STRING027
  581.     :LABEL023
  582.     AnsiPos 1, 21
  583.     If (OnLocal()) RestScrn
  584.  
  585. ;------------------------------------------------------------------------------
  586. ;
  587. ; Usage report (before postprocessing)
  588. ;
  589. ; ■ Statements used :
  590. ;
  591. ;    112     Goto 
  592. ;    94      Let 
  593. ;    38      Print 
  594. ;    1       PrintLn 
  595. ;    97      If 
  596. ;    1       DispFile 
  597. ;    5       FCreate 
  598. ;    9       FOpen 
  599. ;    20      FClose 
  600. ;    6       FGet 
  601. ;    1       StartDisp 
  602. ;    9       Delete 
  603. ;    2       Gosub 
  604. ;    2       Return
  605. ;    1       CdChkOff
  606. ;    4       Inc 
  607. ;    1       Newline
  608. ;    4       Shell 
  609. ;    41      AnsiPos 
  610. ;    4       SaveScrn
  611. ;    7       RestScrn
  612. ;    2       Frewind 
  613. ;    7       FSeek 
  614. ;    5       FRead 
  615. ;    2       FWrite 
  616. ;    1       FDefIn 
  617. ;    1       FDefOut 
  618. ;    36      FDGet 
  619. ;    15      FDPutLn 
  620. ;    4       Copy 
  621. ;    1       SearchInit 
  622. ;    1       SearchFind 
  623. ;
  624. ;
  625. ; ■ Functions used :
  626. ;
  627. ;    1       -
  628. ;    3       *
  629. ;    1       /
  630. ;    316     +
  631. ;    7       -
  632. ;    57      ==
  633. ;    6       <>
  634. ;    5       <
  635. ;    2       <=
  636. ;    7       >
  637. ;    4       >=
  638. ;    59      !
  639. ;    14      &&
  640. ;    14      ||
  641. ;    14      Len(
  642. ;    9       Upper()
  643. ;    14      Mid()
  644. ;    19      Space()
  645. ;    7       Ferr()
  646. ;    57      Chr()
  647. ;    1       LTrim()
  648. ;    2       RTrim()
  649. ;    5       Date()
  650. ;    2       U_Name()
  651. ;    6       YesChar()
  652. ;    10      StripAtx()
  653. ;    25      String()
  654. ;    1       CurConf()
  655. ;    4       PCBDat()
  656. ;    8       PPEPath()
  657. ;    13      PcbNode()
  658. ;    4       ReadLine()
  659. ;    14      OnLocal()
  660. ;    28      GetEnv()
  661. ;    23      Exist()
  662. ;    44      I2S()
  663. ;    12      S2I()
  664. ;    32      FileInf()
  665. ;    8       PPEName()
  666. ;    6       TempPath()
  667. ;    1       ScrText()
  668. ;
  669. ;------------------------------------------------------------------------------
  670. ;
  671. ; Analysis flags : Sd
  672. ;
  673. ; S - Shell to DOS ■ 5
  674. ;     This may be normal if the PPE need to execute an external command,
  675. ;     but may be actually anything... nasty (formating HD, rebooting,...)
  676. ;     or usefull (sorting, maintenance,...). Check!
  677. ;     ■ Search for : SHELL
  678. ;
  679. ; d - Access PCBOARD.DAT ■ 2
  680. ;     Program gets the full pathname to PCBOARD.DAT, this may be usefull
  681. ;     for many PPE so they can find various informations on the system
  682. ;     (system paths, max number of lines in messages, ...) but it may also
  683. ;     be a way to gather vital informations.
  684. ;     ■ Search for : PCBDAT()
  685. ;
  686. ;------------------------------------------------------------------------------
  687. ;
  688. ; Postprocessing report
  689. ;
  690. ;    2       For/Next
  691. ;    0       While/EndWhile
  692. ;    25      If/Then or If/Then/Else
  693. ;    2       Select Case
  694. ;
  695. ;------------------------------------------------------------------------------
  696. ;                 AEGiS Corp - Break the routines, code against the machines!
  697. ;------------------------------------------------------------------------------
  698.