home *** CD-ROM | disk | FTP | other *** search
/ Monster Media 1994 #1 / monster.zip / monster / PCBOARD / PEPSTER.ZIP / LISTER.PPE (.txt) < prev    next >
PCBoard Programming Language Executable  |  1994-04-01  |  8KB  |  390 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.     Integer  INTEGER001
  25.     Integer  INTEGER002
  26.     Integer  INTEGER003
  27.     Integer  INTEGER004
  28.     String   STRING001
  29.     String   STRING002
  30.     String   STRING003
  31.     String   STRING004
  32.     String   STRING005
  33.     String   STRING006
  34.     String   TSTRING007(250)
  35.     String   TSTRING008(250)
  36.     String   TSTRING009(250)
  37.     String   TSTRING010(250)
  38.     String   TSTRING011(250)
  39.     String   STRING012
  40.     String   STRING013
  41.     String   STRING014
  42.     String   STRING015
  43.     String   TSTRING016(250)
  44.     String   STRING017
  45.     String   STRING018
  46.     String   STRING019
  47.     String   STRING020
  48.  
  49. ;------------------------------------------------------------------------------
  50.  
  51.     BOOLEAN001 = 0
  52.     BOOLEAN002 = 0
  53.     BOOLEAN003 = 0
  54.     BOOLEAN005 = 0
  55.     BOOLEAN004 = 0
  56.     INTEGER003 = 0
  57.     INTEGER004 = 6
  58.     STRING015 = " "
  59.     :LABEL001
  60.     If (BOOLEAN004) Goto LABEL002
  61.     Gosub LABEL003
  62.     Goto LABEL001
  63.     :LABEL002
  64.     End
  65.     :LABEL003
  66.     Cls
  67.     STRING015 = " "
  68.     DispFile PPEPath() + "MENU2G", 2 + 1 + 4
  69.     InputStr "Enter A, V, Q, or L ", STRING015, 11, 1, "AVQL", 8 + 4 + 2 + 64
  70.     Select Case (STRING015)
  71.         Case "A"
  72.             Gosub LABEL014
  73.             If (CurSec() >= SysopSec()) Then
  74.                 Gosub LABEL009
  75.                 BOOLEAN001 = 1
  76.             Else
  77.                 If (BOOLEAN001) Goto LABEL004
  78.                 Gosub LABEL009
  79.                 Goto LABEL005
  80.                 :LABEL004
  81.                 If (BOOLEAN001) Then
  82.                     Gosub LABEL019
  83.                 Endif
  84.             Endif
  85.             :LABEL005
  86.         Case "V"
  87.             Gosub LABEL006
  88.         Case "Q"
  89.             BOOLEAN004 = 1
  90.         Case "L"
  91.             DispFile PPEPath() + "GOODBYEG", 2 + 1 + 4
  92.             Bye
  93.     End Select
  94.     Return
  95.     :LABEL006
  96.     Cls
  97.     InputStr "Enter Area Code to search ", STRING018, 11, 3, "1234567890", 2 + 4 + 64
  98.     FOpen 1, PPEPath() + "BBS", 0, 2
  99.     Frewind 1
  100.     Cls
  101.     PrintLn "@X0AHere are the BBSes in the ", "@X0B" + STRING018, "@X0A area code.@X07"
  102.     Newline
  103.     :LABEL007
  104.     If (Ferr(1)) Goto LABEL008
  105.     FGet 1, STRING001
  106.     FGet 1, STRING002
  107.     FGet 1, STRING003
  108.     FGet 1, STRING005
  109.     FGet 1, STRING004
  110.     FGet 1, STRING006
  111.     STRING019 = Left(STRING002, 4)
  112.     STRING019 = LTrim(STRING019, "(")
  113.     If (STRING018 == STRING019) Then
  114.         Print "@X0F" + STRING001
  115.         Print "  "
  116.         Print "@X0B" + STRING002
  117.         Print "  "
  118.         PrintLn "@X0A" + STRING003
  119.     Endif
  120.     Goto LABEL007
  121.     :LABEL008
  122.     FClose 1
  123.     Newline
  124.     PrintLn "Press @X0BSPACE @X0Ato return to @X8CMAIN MENU@X07 "
  125.     While (STRING020 <> Chr(32)) Do
  126.         STRING020 = Inkey()
  127.     EndWhile
  128.     STRING020 = Chr(13)
  129.     Return
  130.     :LABEL009
  131.     Cls
  132.     INTEGER003 = 0
  133.     INTEGER001 = 0
  134.     STRING015 = ""
  135.     Gosub LABEL014
  136.     INTEGER003 = INTEGER003 + 1
  137.     INTEGER002 = INTEGER003
  138.     Gosub LABEL016
  139.     Gosub LABEL017
  140.     Gosub LABEL018
  141.     Gosub LABEL021
  142.     Gosub LABEL019
  143.     If (STRING015 == "A") Then
  144.         INTEGER003 = INTEGER003 - 1
  145.         INTEGER002 = 0
  146.     Endif
  147.     Return
  148.     :LABEL010
  149.     FCreate 4, PPEPath() + "GOODBYEG", 1, 0
  150.     FPutLn 4, "@CLS@@X70╒@X7F════════════════════════════════════════════════════════════════════════════╗@X07"
  151.     FPutLn 4, "@X70│                             @X74BBS LISTER 1.00                                @X7F║@X07"
  152.     FPutLn 4, "@X70│                                                                            @X7F║@X07"
  153.     FPutLn 4, "@X70│ @X71Bulletin Board      @X7FTelephone        @X74Sysop's                @X70Date           @X7F║@X07"
  154.     FPutLn 4, "@X70│ @X71Name              @X7F  Number           @X74Name                   @X70Posted         @X7F║@X07"
  155.     FPutLn 4, "@X70│                                                                            @X7F║@X07"
  156.     FCreate 6, PPEPath() + "SYSOPG", 1, 0
  157.     For INTEGER001 = 1 To INTEGER003
  158.         If (TSTRING008(INTEGER001) == "Y") Then
  159.             FPut 6, "@X70│@X71 "
  160.             FPutPad 6, TSTRING009(INTEGER001), -20
  161.             FPutPad 6, TSTRING010(INTEGER001), -17
  162.             FPutPad 6, TSTRING011(INTEGER001), -23
  163.             FPutPad 6, TSTRING016(INTEGER001), -15
  164.             FPutLn 6, "@X7F║@X07"
  165.         Endif
  166.     Next
  167.     FClose 6
  168.     FOpen 2, PPEPath() + "SYSOPG", 0, 2
  169.     Frewind 2
  170.     FGet 2, STRING017
  171.     :LABEL011
  172.     If (Ferr(2)) Goto LABEL012
  173.     FPutLn 4, STRING017
  174.     FGet 2, STRING017
  175.     Goto LABEL011
  176.     :LABEL012
  177.     FClose 2
  178.     FPutLn 4, "@X70│                                                                            @X7F║@X07"
  179.     FPutLn 4, "@X70│ @X71PEPSTER'S PLACE  (313) 421-9145  SYSOP : JOHN PEPP (AUTHOR OF BBS LISTER)  @X7F║@X07"
  180.     FPutLn 4, "@X70└────────────────────────────────────────────────────────────────────────────╜@X07"
  181.     FClose 4
  182.     Return
  183.     :LABEL013
  184.     FCreate 1, PPEPath() + "BBS", 1, 0
  185.     For INTEGER001 = 1 To INTEGER003
  186.         FPutLn 1, TSTRING009(INTEGER001)
  187.         FPutLn 1, TSTRING010(INTEGER001)
  188.         FPutLn 1, TSTRING011(INTEGER001)
  189.         FPutLn 1, TSTRING016(INTEGER001)
  190.         FPutLn 1, TSTRING007(INTEGER001)
  191.         FPutLn 1, TSTRING008(INTEGER001)
  192.     Next
  193.     FClose 1
  194.     FCreate 2, PPEPath() + "TOTAL", 1, 0
  195.     FPutLn 2, INTEGER003
  196.     FClose 2
  197.     Return
  198.     :LABEL014
  199.     FOpen 3, PPEPath() + "TOTAL", 0, 2
  200.     Frewind 3
  201.     If (Ferr(3)) Then
  202.         SPrintLn "Error, File Doesn't Exist"
  203.         INTEGER003 = 0
  204.     Else
  205.         If (Ferr(3)) Goto LABEL015
  206.         FGet 3, INTEGER003
  207.         :LABEL015
  208.         If (INTEGER003 >= INTEGER004) Then
  209.             BOOLEAN003 = 1
  210.         Endif
  211.         FOpen 1, PPEPath() + "BBS", 0, 2
  212.         Frewind 1
  213.         For INTEGER001 = 1 To INTEGER003
  214.             FGet 1, TSTRING009(INTEGER001)
  215.             FGet 1, TSTRING010(INTEGER001)
  216.             FGet 1, TSTRING011(INTEGER001)
  217.             FGet 1, TSTRING016(INTEGER001)
  218.             FGet 1, TSTRING007(INTEGER001)
  219.             FGet 1, TSTRING008(INTEGER001)
  220.             If (U_Name() == TSTRING007(INTEGER001)) Then
  221.                 BOOLEAN001 = 1
  222.                 INTEGER002 = INTEGER001
  223.             Endif
  224.         Next
  225.         FClose 1
  226.     Endif
  227.     FClose 3
  228.     Return
  229.     :LABEL016
  230.     InputStr "Enter BBS Name : ", STRING001, 11, 20, Mask_Ascii(), 2 + 4 + 64
  231.     TSTRING009(INTEGER002) = STRING001
  232.     Return
  233.     :LABEL017
  234.     InputStr "Enter BBS Sysop's Name : ", STRING003, 11, 20, Mask_Ascii(), 2 + 4 + 64
  235.     TSTRING011(INTEGER002) = STRING003
  236.     TSTRING007(INTEGER002) = U_Name()
  237.     Return
  238.     :LABEL018
  239.     Cls
  240.     PrintLn "@X0FPlease Enter BBS Telephone Number."
  241.     Newlines 5
  242.     InputStr "Area Code", STRING012, 11, 3, "1234567890", 2 + 4 + 64
  243.     InputStr "Prefix", STRING013, 11, 3, "1234567890", 2 + 4 + 64
  244.     InputStr "Suffix", STRING014, 11, 4, "1234567890", 2 + 4 + 64
  245.     TSTRING010(INTEGER002) = "(" + STRING012 + ") " + STRING013 + "-" + STRING014
  246.     TSTRING016(INTEGER002) = Date()
  247.     Return
  248.     :LABEL019
  249.     If (BOOLEAN005) Goto LABEL020
  250.     Cls
  251.     PrintLn "@X0AThe Edit Menu "
  252.     Newlines 2
  253.     PrintLn "@X0BBBS (@X0DN@X0B)ame                          @X0F|  @X07", "@X0A" + TSTRING009(INTEGER002)
  254.     PrintLn "@X0BBBS (@X0DT@X0B)elephone Number of BBS       @X0F|  @X07", "@X0A" + TSTRING010(INTEGER002)
  255.     PrintLn "@X0BBBS S(@X0DY@X0B)sop                         @X0F|  @X07", "@X0A" + TSTRING011(INTEGER002)
  256.     PrintLn "@X0BLog(@X0DO@X0B)ff Screen (Y/N)               @X0F|  @X07", "@X0A" + TSTRING008(INTEGER002)
  257.     PrintLn 
  258.     PrintLn "@X0A(@X0CS@X0A)ave Changes@X07"
  259.     PrintLn "@X0A(@X0CA@X0A)bort Changes@X07 "
  260.     Newline
  261.     STRING015 = " "
  262.     InputStr "Enter N, T, Y, O, S, or A ", STRING015, 11, 1, "NTYOSA", 8 + 2 + 4 + 64
  263.     Select Case (STRING015)
  264.         Case "A"
  265.             Cls
  266.             PrintLn "@X8CAborting and Returning to Menu@X07"
  267.             STRING001 = ""
  268.             STRING003 = ""
  269.             STRING012 = ""
  270.             STRING013 = ""
  271.             STRING014 = ""
  272.             Return
  273.         Case "N"
  274.             Gosub LABEL016
  275.         Case "T"
  276.             Gosub LABEL018
  277.         Case "Y"
  278.             Gosub LABEL017
  279.         Case "O"
  280.             Gosub LABEL021
  281.         Case "S"
  282.             Cls
  283.             Gosub LABEL013
  284.             Gosub LABEL010
  285.             BOOLEAN005 = 1
  286.     End Select
  287.     Goto LABEL019
  288.     :LABEL020
  289.     BOOLEAN005 = 0
  290.     Return
  291.     :LABEL021
  292.     Cls
  293.     If (CurSec() > 20) Then
  294.         InputStr "Do you want you bbs to show up on Goodbye Screen (Y/N)", TSTRING008(INTEGER002), 14, 1, "", 8192 + 16384
  295.     Else
  296.         PrintLn "@X0CIf you wish to have a Logoff Listing on @BOARDNAME@@X07"
  297.         PrintLn "@X0CPlease Leave a Private Message to the Sysop "
  298.         PrintLn "@X0A-OR-@X07"
  299.         PrintLn "@X0FRent A Line for $5.00@X07"
  300.         PrintLn "@X0BMake check/money order (Do Not Send Cash!) to : "
  301.         PrintLn "John Pepp                                       "
  302.         PrintLn "P.O. Box 51171 "
  303.         PrintLn "Livonia, Mi 48151@X07"
  304.         Delay 18 * 7
  305.         TSTRING008(INTEGER002) = "N"
  306.     Endif
  307.     Return
  308.  
  309. ;------------------------------------------------------------------------------
  310. ;
  311. ; Usage report (before postprocessing)
  312. ;
  313. ; ■ Statements used :
  314. ;
  315. ;    1       End
  316. ;    9       Cls
  317. ;    49      Goto 
  318. ;    46      Let 
  319. ;    4       Print 
  320. ;    21      PrintLn 
  321. ;    29      If 
  322. ;    2       DispFile 
  323. ;    4       FCreate 
  324. ;    4       FOpen 
  325. ;    8       FClose 
  326. ;    15      FGet 
  327. ;    1       FPut 
  328. ;    18      FPutLn 
  329. ;    4       FPutPad 
  330. ;    9       InputStr 
  331. ;    18      Gosub 
  332. ;    12      Return
  333. ;    1       Delay 
  334. ;    3       Newline
  335. ;    2       Newlines 
  336. ;    1       Bye
  337. ;    1       SPrintLn 
  338. ;    4       Frewind 
  339. ;
  340. ;
  341. ; ■ Functions used :
  342. ;
  343. ;    4       -
  344. ;    1       *
  345. ;    50      +
  346. ;    1       -
  347. ;    14      ==
  348. ;    1       <>
  349. ;    3       <
  350. ;    3       <=
  351. ;    1       >
  352. ;    8       >=
  353. ;    29      !
  354. ;    6       &&
  355. ;    3       ||
  356. ;    1       Left()
  357. ;    4       Ferr()
  358. ;    2       Chr()
  359. ;    1       LTrim()
  360. ;    1       Date()
  361. ;    2       U_Name()
  362. ;    1       Inkey()
  363. ;    2       Mask_Ascii()
  364. ;    10      PPEPath()
  365. ;    1       SysopSec()
  366. ;    2       CurSec()
  367. ;
  368. ;------------------------------------------------------------------------------
  369. ;
  370. ; Analysis flags : s
  371. ;
  372. ; s - Sysop level access ■ 5
  373. ;     Program is reading the sysop access level, this may be normal
  374. ;     but still it is very suspect. It is the best way to give a user
  375. ;     all priviledges. Check!
  376. ;     ■ Search for : SYSOPSEC()
  377. ;
  378. ;------------------------------------------------------------------------------
  379. ;
  380. ; Postprocessing report
  381. ;
  382. ;    3       For/Next
  383. ;    1       While/EndWhile
  384. ;    9       If/Then or If/Then/Else
  385. ;    2       Select Case
  386. ;
  387. ;------------------------------------------------------------------------------
  388. ;                 AEGiS Corp - Break the routines, code against the machines!
  389. ;------------------------------------------------------------------------------
  390.