home *** CD-ROM | disk | FTP | other *** search
/ Carsten's PPE Collection / Carstens_PPE_Collection_2007.zip / S / SDE-BB12.ZIP / SDE-BBSL.PPE (.txt) < prev    next >
PCBoard Programming Language Executable  |  1995-07-11  |  12KB  |  815 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 3.O1 (Encryption type I) - 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.     Boolean  BOOLEAN008
  27.     Boolean  BOOLEAN009
  28.     Integer  INTEGER001
  29.     Integer  INTEGER002
  30.     Integer  INTEGER003
  31.     Integer  INTEGER004
  32.     Integer  INTEGER005
  33.     Integer  INTEGER009
  34.     Integer  INTEGER011
  35.     Integer  INTEGER012
  36.     Integer  INTEGER019
  37.     Integer  INTEGER020
  38.     String   TSTRING001(10)
  39.     String   TSTRING002(10)
  40.     String   STRING003
  41.     String   STRING004
  42.     String   STRING005
  43.     String   STRING006
  44.     String   STRING007
  45.     String   STRING008
  46.     String   STRING009
  47.     String   STRING014
  48.     String   STRING015
  49.     String   STRING016
  50.     String   STRING018
  51.     String   STRING019
  52.     String   STRING020
  53.     String   STRING021
  54.     String   STRING022
  55.     String   STRING023
  56.     String   STRING024
  57.     String   STRING025
  58.     String   STRING026
  59.     String   STRING027
  60.     String   STRING028
  61.     String   STRING029
  62.     Byte     BYTE001
  63.     Int      INT001
  64.     Int      INT002
  65.     Int      INT003
  66.     Int      INT004
  67.     Int      INT005
  68.     Int      INT006
  69.     Int      INT007
  70.     Declare  Function FUNCTION001() Integer
  71.     Declare  Function FUNCTION002(String STRING010, String STRING011, String STRING012, String STRING013) String
  72.     Declare  Function FUNCTION003(String STRING017) Boolean
  73.     Declare  Function FUNCTION004(Integer INTEGER006, Integer INTEGER007, Integer INTEGER008) String
  74.     Declare  Function FUNCTION005(Integer INTEGER010) Integer
  75.     Declare  Procedure PROC001(Integer INTEGER013)
  76.     Declare  Procedure PROC002(Integer INTEGER014)
  77.     Declare  Procedure PROC003(Integer INTEGER015, Integer INTEGER016, Integer INTEGER017, Integer INTEGER018)
  78.     Declare  Procedure PROC004()
  79.     Declare  Procedure PROC005()
  80.     Declare  Procedure PROC006()
  81.     Declare  Procedure PROC007()
  82.     Declare  Procedure PROC008()
  83.     Declare  Procedure PROC009()
  84.     Declare  Procedure PROC010()
  85.     Declare  Procedure PROC011()
  86.     Declare  Procedure PROC012()
  87.     Declare  Procedure PROC013()
  88.     Declare  Procedure PROC014()
  89.     Declare  Procedure PROC015()
  90.  
  91. ;------------------------------------------------------------------------------
  92.  
  93.     GetUser
  94.     PROC015()
  95.     PROC014()
  96.     BOOLEAN002 = 0
  97.     PROC013()
  98.     While (BOOLEAN002 == 0) Do
  99.         INT001 = FUNCTION001()
  100.         If (INT001 == 0) Then
  101.             PROC006()
  102.             Continue
  103.         Endif
  104.         If (INT001 == 1) Then
  105.             PROC008()
  106.             Continue
  107.         Endif
  108.         If (INT001 == 2) Then
  109.             PROC011()
  110.             Continue
  111.         Endif
  112.         If (INT001 == 3) Then
  113.             PROC007()
  114.             Continue
  115.         Endif
  116.         If (INT001 == 5) Then
  117.             BOOLEAN002 = 1
  118.             Continue
  119.         Endif
  120.         If (INT001 == 4) Then
  121.             If (U_Sec >= INT002) Then
  122.                 PROC012()
  123.             Endif
  124.         Endif
  125.     EndWhile
  126.     Cls
  127.     PrintLn FUNCTION002("BBSLISTER DONE BY STEAM/SYNDROME. ANSIS BY SPAWN/SYNDROME.", "@X05", "@X0D", "@X0F")
  128.     PrintLn FUNCTION002("RETURNING TO PCB.", "@X08", "@X07", "@X0F")
  129.     Newline
  130.     End
  131.  
  132. ;------------------------------------------------------------------------------
  133.  
  134.     Procedure PROC015()
  135.  
  136.     Newline
  137.     PrintLn FUNCTION002("■ READiNG USER iNFORMATiON", "@X0F", "@X07", "@X08")
  138.     PrintLn FUNCTION002("■ READiNG CONFiGURATiON", "@X0F", "@X07", "@X08")
  139.     If (Exist(PPEPath() + "bbs.cfg")) Then
  140.         FOpen 1, PPEPath() + "bbs.cfg", 0, 2
  141.         FGet 1, INT002
  142.         FClose 1
  143.     Else
  144.         INT002 = 110
  145.     Endif
  146.  
  147.     EndProc
  148.  
  149.  
  150. ;------------------------------------------------------------------------------
  151.  
  152.     Function FUNCTION002(String STRING010, String STRING011, String STRING012, String STRING013) String
  153.  
  154.     String   STRING015
  155.     String   STRING016
  156.     Int      INT003
  157.     Int      INT004
  158.     String   STRING017
  159.  
  160.     INT004 = 0
  161.     STRING015 = ""
  162.     For INT003 = 1 To Len(STRING010)
  163.         STRING016 = Mid(STRING010, INT003, 1)
  164.         If (STRING016 <> " ") Then
  165.             If (INT004 == 0) Then
  166.                 STRING015 = STRING015 + STRING011
  167.                 Goto LABEL001
  168.             Endif
  169.             If (INT004 == 1) Then
  170.                 STRING015 = STRING015 + STRING012
  171.                 Goto LABEL001
  172.             Endif
  173.             If (INT004 == 2) Then
  174.                 STRING015 = STRING015 + STRING013
  175.             Endif
  176.             :LABEL001
  177.             Inc INT004
  178.             STRING015 = STRING015 + STRING016
  179.             Continue
  180.         Endif
  181.         STRING015 = STRING015 + STRING016
  182.         INT004 = 0
  183.     Next
  184.     FUNCTION002 = STRING015
  185.  
  186.     EndFunc
  187.  
  188.  
  189. ;------------------------------------------------------------------------------
  190.  
  191.     Function FUNCTION003(String STRING017) Boolean
  192.  
  193.     Boolean  BOOLEAN004
  194.     Boolean  BOOLEAN005
  195.     String   STRING018
  196.     Integer  INTEGER006
  197.  
  198.     BOOLEAN004 = 0
  199.     Print STRING017
  200.     While (BOOLEAN004 == 0) Do
  201.         STRING018 = Upper(Inkey())
  202.         If (STRING018 == "Y") Then
  203.             Print "Y"
  204.             BOOLEAN005 = 1
  205.             BOOLEAN004 = 1
  206.         Endif
  207.         If (STRING018 == "N") Then
  208.             Print "N"
  209.             BOOLEAN005 = 0
  210.             BOOLEAN004 = 1
  211.         Endif
  212.     EndWhile
  213.     FUNCTION003 = BOOLEAN005
  214.  
  215.     EndFunc
  216.  
  217.  
  218. ;------------------------------------------------------------------------------
  219.  
  220.     Function FUNCTION004(Integer INTEGER006, Integer INTEGER007, Integer INTEGER008) String
  221.  
  222.     String   STRING020
  223.     String   STRING021
  224.     Integer  INTEGER009
  225.     Boolean  BOOLEAN006
  226.     Integer  INTEGER010
  227.  
  228.     AnsiPos INTEGER006, INTEGER007
  229.     STRING020 = ""
  230.     BOOLEAN006 = 0
  231.     While (BOOLEAN006 == 0) Do
  232.         STRING021 = Inkey()
  233.         INTEGER009 = Asc(STRING021)
  234.         If (INTEGER009 == 13) Then
  235.             BOOLEAN006 = 1
  236.             Continue
  237.         Endif
  238.         If (INTEGER009 == 8) Then
  239.             If (Len(STRING020) > 0) Then
  240.                 STRING020 = Mid(STRING020, 1, Len(STRING020) - 1)
  241.                 Print STRING021 + " " + STRING021
  242.             Endif
  243.             Continue
  244.         Endif
  245.         If (Len(STRING020) < INTEGER008) Then
  246.             STRING020 = STRING020 + STRING021
  247.             Print STRING021
  248.         Endif
  249.     EndWhile
  250.     FUNCTION004 = STRING020
  251.  
  252.     EndFunc
  253.  
  254.  
  255. ;------------------------------------------------------------------------------
  256.  
  257.     Function FUNCTION005(Integer INTEGER010) Integer
  258.  
  259.     String   STRING022
  260.     String   STRING023
  261.     String   STRING024
  262.     Integer  INTEGER012
  263.     Boolean  BOOLEAN007
  264.     String   STRING025
  265.  
  266.     STRING022 = ""
  267.     BOOLEAN007 = 0
  268.     While (BOOLEAN007 == 0) Do
  269.         STRING023 = Inkey()
  270.         INTEGER012 = Asc(STRING023)
  271.         If (INTEGER012 == 13) Then
  272.             BOOLEAN007 = 1
  273.             Continue
  274.         Endif
  275.         If (INTEGER012 == 8) Then
  276.             If (Len(STRING022) > 0) Then
  277.                 STRING022 = Mid(STRING022, 1, Len(STRING022) - 1)
  278.                 Print STRING023 + " " + STRING023
  279.             Endif
  280.             Continue
  281.         Endif
  282.         If (Len(STRING022) < INTEGER010) Then
  283.             If ((((((((((STRING023 == "1") || (STRING023 == "2")) || (STRING023 == "3")) || (STRING023 == "4")) || (STRING023 == "5")) || (STRING023 == "6")) || (STRING023 == "7")) || (STRING023 == "8")) || (STRING023 == "9")) || (STRING023 == "0")) Then
  284.                 STRING022 = STRING022 + STRING023
  285.                 Print STRING023
  286.             Endif
  287.         Endif
  288.     EndWhile
  289.     STRING024 = S2I(STRING022, 10)
  290.     FUNCTION005 = STRING024
  291.  
  292.     EndFunc
  293.  
  294.  
  295. ;------------------------------------------------------------------------------
  296.  
  297.     Procedure PROC012()
  298.  
  299.     String   STRING025
  300.     String   STRING026
  301.     Int      INT005
  302.     Int      INT006
  303.     Int      INT007
  304.  
  305.     Cls
  306.     If (Exist(PPEPath() + "bbs.dat")) Then
  307.         FOpen 1, PPEPath() + "bbs.dat", 0, 2
  308.         FGet 1, STRING025
  309.         PrintLn "     @X03b@X0BB@X0FsnAmE                 @X03n@X0BU@X0FmbA            @X03n@X0BU@X0Fp            @X03o@X0Bp@X0FERaTor"
  310.         PrintLn "@X0F┌@X0B─@X03─@X01───────────────────────────────@X01─@X03─@X0B─@X0F────@X0F─@X0B─@X03─@X01───────────────────────────────@X01─@X03─@X0B─@X0F┐"
  311.         INT005 = 0
  312.         While (Ferr(1) == 0) Do
  313.             Inc INT005
  314.             FGet 1, STRING003
  315.             FGet 1, STRING004
  316.             FGet 1, STRING007
  317.             FGet 1, STRING005
  318.             FGet 1, STRING008
  319.             FGet 1, STRING006
  320.             FGet 1, STRING009
  321.             FGet 1, STRING025
  322.             If (INT005 < 10) Then
  323.                 STRING026 = "o"
  324.                 Goto LABEL002
  325.             Endif
  326.             STRING026 = " "
  327.             :LABEL002
  328.             PrintLn "@X0B│@X0F " + STRING026, INT005, " " + STRING003 + Space(24 - Len(STRING003)) + STRING004 + Space(17 - Len(STRING004)) + STRING005 + Space(15 - Len(STRING005)) + STRING007 + Space(17 - Len(STRING007)) + "@X0B│"
  329.         EndWhile
  330.         PrintLn "@X0F└@X0B─@X03─@X01───────────────────────────────@X01─@X03─@X0B─@X0F────@X0F─@X0B─@X03─@X01───────────────────────────────@X01─@X03─@X0B─@X0F┘"
  331.         FClose 1
  332.         Print FUNCTION002(" WHiCH NUMBER DO YOU WANT TO DELETE [1-" + I2S(INT005, 10) + "]: ", "@X03", "@X0B", "@X0F")
  333.         Print "@X0B"
  334.         INT006 = FUNCTION005(3)
  335.         Newline
  336.         If ((INT006 == 0) || (INT006 > INT005)) Then
  337.             Newline
  338.             PrintLn FUNCTION002(" iNVALiD ENTRY !", "@X05", "@X0D", "@X0F")
  339.             Goto LABEL003
  340.         Endif
  341.         If (FUNCTION003(FUNCTION002(" ARE YOU SURE YOU WANT TO DELETE NO. " + I2S(INT006, 10) + " [Y/N]: ", "@X03", "@X0B", "@X0F")) == 1) Then
  342.             Newline
  343.             FOpen 1, PPEPath() + "bbs.dat", 0, 2
  344.             FCreate 2, PPEPath() + "bbs.$$$", 1, 3
  345.             For INT007 = 1 To INT006 - 1
  346.                 FGet 1, STRING025
  347.                 FGet 1, STRING003
  348.                 FGet 1, STRING004
  349.                 FGet 1, STRING007
  350.                 FGet 1, STRING005
  351.                 FGet 1, STRING008
  352.                 FGet 1, STRING006
  353.                 FGet 1, STRING009
  354.                 FPutLn 2, "─────────────────────── NEXT RECORD ──────────────────────"
  355.                 FPutLn 2, STRING003
  356.                 FPutLn 2, STRING004
  357.                 FPutLn 2, STRING007
  358.                 FPutLn 2, STRING005
  359.                 FPutLn 2, STRING008
  360.                 FPutLn 2, STRING006
  361.                 FPutLn 2, STRING009
  362.             Next
  363.             FGet 1, STRING025
  364.             FGet 1, STRING003
  365.             FGet 1, STRING004
  366.             FGet 1, STRING007
  367.             FGet 1, STRING005
  368.             FGet 1, STRING008
  369.             FGet 1, STRING006
  370.             FGet 1, STRING009
  371.             For INT007 = INT006 + 1 To INT005
  372.                 FGet 1, STRING025
  373.                 FGet 1, STRING003
  374.                 FGet 1, STRING004
  375.                 FGet 1, STRING007
  376.                 FGet 1, STRING005
  377.                 FGet 1, STRING008
  378.                 FGet 1, STRING006
  379.                 FGet 1, STRING009
  380.                 FPutLn 2, "─────────────────────── NEXT RECORD ──────────────────────"
  381.                 FPutLn 2, STRING003
  382.                 FPutLn 2, STRING004
  383.                 FPutLn 2, STRING007
  384.                 FPutLn 2, STRING005
  385.                 FPutLn 2, STRING008
  386.                 FPutLn 2, STRING006
  387.                 FPutLn 2, STRING009
  388.             Next
  389.             FClose 1
  390.             FClose 2
  391.             Delete PPEPath() + "bbs.dat"
  392.             Rename PPEPath() + "bbs.$$$", PPEPath() + "bbs.dat"
  393.             PrintLn FUNCTION002(" NO. " + I2S(INT006, 10) + " SUCCESSFULLY DELETED !", "@X05", "@X0D", "@X0F")
  394.             Goto LABEL003
  395.         Endif
  396.         Newline
  397.         Newline
  398.         PrintLn FUNCTION002(" DELETiON OF NO. " + I2S(INT006, 10) + " CANCELED !", "@X05", "@X0D", "@X0F")
  399.         :LABEL003
  400.         Newline
  401.         Wait
  402.     Endif
  403.     PROC013()
  404.  
  405.     EndProc
  406.  
  407.  
  408. ;------------------------------------------------------------------------------
  409.  
  410.     Procedure PROC009()
  411.  
  412.     If (Exist(PPEPath() + "bbs.dat")) Then
  413.         FAppend 1, PPEPath() + "bbs.dat", 1, 3
  414.     Else
  415.         FCreate 1, PPEPath() + "bbs.dat", 1, 3
  416.     Endif
  417.     FPutLn 1, "─────────────────────── NEXT RECORD ──────────────────────"
  418.     FPutLn 1, STRING003
  419.     FPutLn 1, STRING004
  420.     FPutLn 1, STRING007
  421.     FPutLn 1, STRING005
  422.     FPutLn 1, STRING008
  423.     FPutLn 1, STRING006
  424.     FPutLn 1, STRING009
  425.     FClose 1
  426.  
  427.     EndProc
  428.  
  429.  
  430. ;------------------------------------------------------------------------------
  431.  
  432.     Procedure PROC007()
  433.  
  434.     Cls
  435.     DispFile PPEPath() + "syndrome.ans", 1
  436.     Newline
  437.     PrintLn FUNCTION002("SYDROME BBS LiSTER CODED BY STEAM/SDE ALL ANSI ARTWORK BY SPAWN/SDE", "@X0A", "@X02", "@X08")
  438.     PrintLn FUNCTION002("CALL SDE WHQ TEMPORAL SOCIETY^BBS +(49)-2PHUCC U!", "@X0A", "@X02", "@X08")
  439.     Newline
  440.     Wait
  441.     PROC013()
  442.  
  443.     EndProc
  444.  
  445.  
  446. ;------------------------------------------------------------------------------
  447.  
  448.     Procedure PROC006()
  449.  
  450.     String   STRING027
  451.     Boolean  BOOLEAN008
  452.  
  453.     Cls
  454.     If (Exist(PPEPath() + "bbs.dat")) Then
  455.         FOpen 1, PPEPath() + "bbs.dat", 0, 2
  456.         FGet 1, STRING027
  457.         DispFile PPEPath() + "bbsshort.ans", 1
  458.         Newline
  459.         PrintLn "  @X03b@X0BB@X0FsnAmE                 @X03n@X0BU@X0FmbA            @X03n@X0BU@X0Fp               @X03o@X0Bp@X0FERaTor"
  460.         PrintLn "@X0F┌@X0B─@X03─@X01───────────────────────────────@X01─@X03─@X0B─@X0F────@X0F─@X0B─@X03─@X01───────────────────────────────@X01─@X03─@X0B─@X0F┐"
  461.         While (Ferr(1) == 0) Do
  462.             FGet 1, STRING003
  463.             FGet 1, STRING004
  464.             FGet 1, STRING007
  465.             FGet 1, STRING005
  466.             FGet 1, STRING008
  467.             FGet 1, STRING006
  468.             FGet 1, STRING009
  469.             FGet 1, STRING027
  470.             PrintLn "@X0B│@X0F " + STRING003 + Space(24 - Len(STRING003)) + STRING004 + Space(17 - Len(STRING004)) + STRING005 + Space(18 - Len(STRING005)) + STRING007 + Space(17 - Len(STRING007)) + "@X0B│"
  471.             BOOLEAN008 = Ferr(1)
  472.             If (BOOLEAN008 == 0) Then
  473.                 PrintLn "@X0B├@X0B─@X03─@X01───────────────────────────────@X01─@X03─@X0B─@X0F────@X0F─@X0B─@X03─@X01───────────────────────────────@X01─@X03─@X0B─@X0B┤"
  474.                 Continue
  475.             Endif
  476.             FGet 1, STRING027
  477.         EndWhile
  478.         PrintLn "@X0F└@X0B─@X03─@X01───────────────────────────────@X01─@X03─@X0B─@X0F────@X0F─@X0B─@X03─@X01───────────────────────────────@X01─@X03─@X0B─@X0F┘"
  479.         Wait
  480.         FClose 1
  481.     Endif
  482.     PROC013()
  483.  
  484.     EndProc
  485.  
  486.  
  487. ;------------------------------------------------------------------------------
  488.  
  489.     Procedure PROC008()
  490.  
  491.     String   STRING028
  492.  
  493.     Cls
  494.     If (Exist(PPEPath() + "bbs.dat")) Then
  495.         FOpen 1, PPEPath() + "bbs.dat", 0, 2
  496.         FGet 1, STRING028
  497.         StartDisp 1
  498.         While (Ferr(1) == 0) Do
  499.             FGet 1, STRING003
  500.             FGet 1, STRING004
  501.             FGet 1, STRING007
  502.             FGet 1, STRING005
  503.             FGet 1, STRING008
  504.             FGet 1, STRING006
  505.             FGet 1, STRING009
  506.             FGet 1, STRING028
  507.             Cls
  508.             DispFile PPEPath() + "viewbbs.ans", 1
  509.             AnsiPos 12, 3
  510.             Print STRING003
  511.             AnsiPos 12, 4
  512.             Print STRING004
  513.             AnsiPos 12, 5
  514.             Print STRING007
  515.             AnsiPos 12, 6
  516.             Print STRING005
  517.             AnsiPos 12, 7
  518.             Print STRING008
  519.             AnsiPos 12, 8
  520.             Print STRING006
  521.             AnsiPos 12, 9
  522.             Print STRING009
  523.             If (Ferr(1) == 0) Then
  524.                 AnsiPos 1, 11
  525.                 FGet 1, STRING003
  526.                 FGet 1, STRING004
  527.                 FGet 1, STRING007
  528.                 FGet 1, STRING005
  529.                 FGet 1, STRING008
  530.                 FGet 1, STRING006
  531.                 FGet 1, STRING009
  532.                 FGet 1, STRING028
  533.                 DispFile PPEPath() + "viewbbs.ans", 1
  534.                 AnsiPos 12, 13
  535.                 Print STRING003
  536.                 AnsiPos 12, 14
  537.                 Print STRING004
  538.                 AnsiPos 12, 15
  539.                 Print STRING007
  540.                 AnsiPos 12, 16
  541.                 Print STRING005
  542.                 AnsiPos 12, 17
  543.                 Print STRING008
  544.                 AnsiPos 12, 18
  545.                 Print STRING006
  546.                 AnsiPos 12, 19
  547.                 Print STRING009
  548.                 Goto LABEL004
  549.             Endif
  550.             FGet 1, STRING028
  551.             :LABEL004
  552.             AnsiPos 1, 22
  553.             Wait
  554.         EndWhile
  555.         FClose 1
  556.         StartDisp 2
  557.     Endif
  558.     PROC013()
  559.  
  560.     EndProc
  561.  
  562.  
  563. ;------------------------------------------------------------------------------
  564.  
  565.     Procedure PROC011()
  566.  
  567.     Cls
  568.     DispFile PPEPath() + "addbbs.ans", 1
  569.     STRING003 = FUNCTION004(12, 3, 23)
  570.     If (STRING003 <> "") Then
  571.         STRING007 = FUNCTION004(12, 4, 17)
  572.         STRING004 = FUNCTION004(12, 5, 17)
  573.         STRING005 = FUNCTION004(12, 6, 17)
  574.         STRING008 = FUNCTION004(12, 7, 26)
  575.         STRING006 = FUNCTION004(12, 8, 26)
  576.         STRING009 = FUNCTION004(12, 9, 26)
  577.         AnsiPos 1, 11
  578.         If (FUNCTION003("             @X0BSAVE THIS@X03 ENTRY @X0F[@X0BY@X0F/@X03N@X0F]@X07:") == 1) Then
  579.             PROC009()
  580.             AnsiPos 1, 15
  581.             PrintLn "@X0B[@X03YOUR BBS RECORD @X0BWAS SAVED@X07 !@X03]"
  582.             Wait
  583.         Endif
  584.     Else
  585.         AnsiPos 1, 15
  586.         PrintLn "@X0B[@X03BBS ADDING @X0BABORTED@X07 !@X03]"
  587.         Newline
  588.         Wait
  589.     Endif
  590.     PROC013()
  591.  
  592.     EndProc
  593.  
  594.  
  595. ;------------------------------------------------------------------------------
  596.  
  597.     Procedure PROC013()
  598.  
  599.     Cls
  600.     PROC010()
  601.     AnsiPos 65, 1
  602.     Print "@X01[@X03CODED BY @X0BSTEAM@X01]"
  603.     AnsiPos 1, 22
  604.     PrintLn "┤C├┐"
  605.     Print "└─────────────────────────────────────────────────────────────────────────────┘"
  606.  
  607.     EndProc
  608.  
  609.  
  610. ;------------------------------------------------------------------------------
  611.  
  612.     Procedure PROC014()
  613.  
  614.     PrintLn FUNCTION002("■ iNiTiALiZiNG LiGHTBARS", "@X0F", "@X07", "@X08")
  615.     TSTRING001(0) = " iNDEX BBS LiST"
  616.     TSTRING001(1) = " FULL BBS LiST"
  617.     TSTRING001(2) = " ADD A BBS TO DA LiST"
  618.     TSTRING001(3) = " ABOUT TOOL"
  619.     TSTRING001(4) = " DELETE BBS"
  620.     TSTRING001(5) = " QUiT"
  621.     TSTRING002(0) = FUNCTION002("          SHOW SHORT BBSLIST (BBSNAME, NUMBA, NUP, OPERATOR)             ", "@X03", "@X0B", "@X0F")
  622.     TSTRING002(1) = FUNCTION002("SHOW LONG BBSLIST (BBSNAME, NUMBA, NUP, SPEED, SOFTWARE, STUFF, OPERATOR)", "@X03", "@X0B", "@X0F")
  623.     TSTRING002(2) = FUNCTION002("                      ADD A FAZD BBS TO DA LIST                          ", "@X03", "@X0B", "@X0F")
  624.     TSTRING002(3) = FUNCTION002("                iNFOZ ABOUT DiZ MUTHAPHUCCiN KEWL TOOL                   ", "@X03", "@X0B", "@X0F")
  625.     TSTRING002(4) = FUNCTION002("          DELETE A BBS FROM THE LiST (OPERATOR/COOPERATOR ONLY)          ", "@X03", "@X0B", "@X0F")
  626.     TSTRING002(5) = FUNCTION002("                            RETURN TO PCB                                ", "@X03", "@X0B", "@X0F")
  627.  
  628.     EndProc
  629.  
  630.  
  631. ;------------------------------------------------------------------------------
  632.  
  633.     Procedure PROC010()
  634.  
  635.     Cls
  636.     DispFile PPEPath() + "bbsmain.ans", 1
  637.     PROC003(30, 15, 23, 5)
  638.  
  639.     EndProc
  640.  
  641.  
  642. ;------------------------------------------------------------------------------
  643.  
  644.     Procedure PROC001(Integer INTEGER013)
  645.  
  646.     AnsiPos INTEGER002, INTEGER003 + INTEGER013
  647.     Print "@X08 " + TSTRING001(INTEGER013) + Space(INTEGER004 - Len(TSTRING001(INTEGER013)))
  648.  
  649.     EndProc
  650.  
  651.  
  652. ;------------------------------------------------------------------------------
  653.  
  654.     Procedure PROC002(Integer INTEGER014)
  655.  
  656.     AnsiPos INTEGER002, INTEGER003 + INTEGER014
  657.     Print "@X1F " + Upper(TSTRING001(INTEGER014)) + Space(INTEGER004 - Len(TSTRING001(INTEGER014)))
  658.     AnsiPos 4, 22
  659.     Print "@X0F" + TSTRING002(INTEGER014)
  660.  
  661.     EndProc
  662.  
  663.  
  664. ;------------------------------------------------------------------------------
  665.  
  666.     Procedure PROC003(Integer INTEGER015, Integer INTEGER016, Integer INTEGER017, Integer INTEGER018)
  667.  
  668.     Integer  INTEGER019
  669.  
  670.     INTEGER002 = INTEGER015
  671.     INTEGER003 = INTEGER016
  672.     INTEGER004 = INTEGER017
  673.     INTEGER005 = INTEGER018 + 1
  674.     For INTEGER019 = 0 To INTEGER018
  675.         AnsiPos INTEGER015, INTEGER016 + INTEGER019
  676.         Print " @X08" + TSTRING001(INTEGER019)
  677.     Next
  678.     INTEGER001 = 0
  679.  
  680.     EndProc
  681.  
  682.  
  683. ;------------------------------------------------------------------------------
  684.  
  685.     Procedure PROC004()
  686.  
  687.     PROC001(INTEGER001)
  688.     INTEGER001 = (INTEGER001 + 1) % INTEGER005
  689.     PROC002(INTEGER001)
  690.  
  691.     EndProc
  692.  
  693.  
  694. ;------------------------------------------------------------------------------
  695.  
  696.     Procedure PROC005()
  697.  
  698.     PROC001(INTEGER001)
  699.     INTEGER001 = (INTEGER001 - 1 + INTEGER005) % INTEGER005
  700.     PROC002(INTEGER001)
  701.  
  702.     EndProc
  703.  
  704.  
  705. ;------------------------------------------------------------------------------
  706.  
  707.     Function FUNCTION001() Integer
  708.  
  709.     String   STRING029
  710.     Byte     BYTE001
  711.     Boolean  BOOLEAN009
  712.  
  713.     PROC002(INTEGER001)
  714.     BOOLEAN001 = 1
  715.     BOOLEAN009 = 0
  716.     While (BOOLEAN009 == 0) Do
  717.         STRING029 = Inkey()
  718.         BYTE001 = Asc(STRING029)
  719.         If (BYTE001 == 13) Then
  720.             BOOLEAN009 = 1
  721.             Continue
  722.         Endif
  723.         If (BYTE001 == 27) Then
  724.             BOOLEAN009 = 1
  725.             INTEGER001 = 4
  726.             Continue
  727.         Endif
  728.         If ((BYTE001 == 68) || (BYTE001 == 122)) Then
  729.             PROC004()
  730.             Continue
  731.         Endif
  732.         If ((BYTE001 == 85) || (BYTE001 == 97)) Then
  733.             PROC005()
  734.         Endif
  735.     EndWhile
  736.     FUNCTION001 = INTEGER001
  737.  
  738.     EndFunc
  739.  
  740.  
  741. ;------------------------------------------------------------------------------
  742. ;
  743. ; Usage report (before postprocessing)
  744. ;
  745. ; ■ Statements used :
  746. ;
  747. ;    1       End
  748. ;    9       Cls
  749. ;    6       Wait
  750. ;    86      Goto 
  751. ;    85      Let 
  752. ;    29      Print 
  753. ;    22      PrintLn 
  754. ;    50      If 
  755. ;    6       DispFile 
  756. ;    2       FCreate 
  757. ;    5       FOpen 
  758. ;    1       FAppend 
  759. ;    7       FClose 
  760. ;    62      FGet 
  761. ;    24      FPutLn 
  762. ;    2       StartDisp 
  763. ;    1       GetUser
  764. ;    1       Delete 
  765. ;    2       Inc 
  766. ;    12      Newline
  767. ;    26      AnsiPos 
  768. ;    1       Rename 
  769. ;    15      EndProc
  770. ;    5       EndFunc
  771. ;
  772. ;
  773. ; ■ Functions used :
  774. ;
  775. ;    2       %
  776. ;    77      +
  777. ;    15      -
  778. ;    44      ==
  779. ;    2       <>
  780. ;    7       <
  781. ;    4       <=
  782. ;    3       >
  783. ;    9       >=
  784. ;    50      !
  785. ;    8       &&
  786. ;    16      ||
  787. ;    18      Len(
  788. ;    2       Upper()
  789. ;    3       Mid()
  790. ;    10      Space()
  791. ;    5       Ferr()
  792. ;    3       Asc()
  793. ;    4       Inkey()
  794. ;    22      PPEPath()
  795. ;    5       Exist()
  796. ;    4       I2S()
  797. ;    1       S2I()
  798. ;
  799. ;------------------------------------------------------------------------------
  800. ;
  801. ; Analysis flags : No flag
  802. ;
  803. ;------------------------------------------------------------------------------
  804. ;
  805. ; Postprocessing report
  806. ;
  807. ;    4       For/Next
  808. ;    8       While/EndWhile
  809. ;    38      If/Then or If/Then/Else
  810. ;    0       Select Case
  811. ;
  812. ;------------------------------------------------------------------------------
  813. ;                 AEGiS Corp - Break the routines, code against the machines!
  814. ;------------------------------------------------------------------------------
  815.