home *** CD-ROM | disk | FTP | other *** search
/ Carsten's PPE Collection / Carstens_PPE_Collection_2007.zip / S / SCAN_300.ZIP / SELECT.PPE (.txt) < prev    next >
PCBoard Programming Language Executable  |  1994-07-18  |  9KB  |  421 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  TBOOLEAN001(1000)
  20.     Integer  INTEGER001
  21.     Integer  INTEGER002
  22.     Integer  INTEGER003
  23.     Integer  INTEGER004
  24.     Integer  INTEGER005
  25.     Integer  INTEGER006
  26.     Integer  INTEGER007
  27.     Integer  INTEGER008
  28.     Integer  INTEGER009
  29.     Integer  INTEGER010
  30.     Integer  INTEGER011
  31.     Integer  INTEGER012
  32.     Integer  TINTEGER013(1000)
  33.     String   STRING001
  34.     String   STRING002
  35.     String   STRING003
  36.     String   STRING004
  37.     String   STRING005
  38.     String   STRING006
  39.     String   STRING007
  40.     String   STRING008
  41.     String   STRING009
  42.     String   STRING010
  43.     String   STRING011
  44.     String   STRING012
  45.     String   STRING013
  46.     String   STRING014
  47.     String   TSTRING015(1000)
  48.     BigStr   BIGSTR001
  49.     BigStr   BIGSTR002
  50.  
  51. ;------------------------------------------------------------------------------
  52.  
  53.     STRING014 = "@X08[SELECT 1.2 @X07(@X08r@X07)@X08]"
  54.     BIGSTR001 = "                                                                                "
  55.     BIGSTR001 = BIGSTR001 + "WELL WELL - WHAT SHALL i SAY ? - THiS iS HANDMADE SOFTWARE WHiCH i (BlUE M) CODED FOR"
  56.     BIGSTR001 = BIGSTR001 + " YOU TO MAKE YOU ENJOY THiS BOARD ! NOT MUCH TO EXPLAiN iN THE (A)BOUT TEXT ? HUUH ? - WELL iF YOU THiNK THiS SOFTWARE iS USEFULL - YOU MAY USE IT !! - IF NOT - WELL , ER YEAH HEHE - O.K. MAYBE WE'LL MEET iN ANY "
  57.     BIGSTR001 = BIGSTR001 + "OTHER OF MY PRODUCTS ! (BY THE WAY - HAVE YOU EVER SEEN A 'ANSi-SCROLLiNG' ? NO ? WELL HEHE I WAS THE MAN WHO INVENTED iT EHHE - ANYTHiNG ELSE WOULD BE A FAKE SCROLLY :-) [L8R ..."
  58.     BIGSTR001 = BIGSTR001 + " THiS TiME REALLY)] -         ... TEXT RESTARTS ...            ... ANY KEY ! ..."
  59.     BIGSTR002 = "                                                                                "
  60.     BIGSTR002 = BIGSTR002 + "OK - YOU ASKED FOR ASSiSTANCE - HERE WE GO ... FiRST OF ALL - THE SCAN COMMAND WAS CODED TO GiVE YOU AN EASiER USE OF THE POWER A BOARD HAS WiTH A LOT OF CONFERENCES"
  61.     BIGSTR002 = BIGSTR002 + " - NOW YOU'RE ABLE TO LOOK FOR NEW FiLES iN ALL CONFERENCES - SiMPLE EH ? WELL THiS 'SELECT 1.2' CAN BE CONTROLLED BY THE CURSOR KEYS (iF YOU TRiED USiNG THE CURSOR KEYS"
  62.     BIGSTR002 = BIGSTR002 + " AND iT DiDN'T WORK THAN USE '8' FOR UP AND '2' FOR DOWN) - ViA 'SPACE' YOU CAN SELECT A CONFERENCE TO BE SCANNED (THiS CONFERENCE WiLL BE SEARCHED FOR NEW FiLES) iF YOU"
  63.     BIGSTR002 = BIGSTR002 + " PRESS 'ENTER' YOU'LL SELECT THE CONFERENCE WHiCH iS LiGHTED AND SCROLL DOWN ONE LiNE - EASY iSN'T iT ??? - THAT'S ALL FOLKS -          ... TEXT RESTARTS ...      ... ANY KEY ...        "
  64.     If (Exist(PPEPath() + "SLCTDAT")) STRING001 = PPEPath() + "SLCTDAT"
  65.     If (Exist(PPEPath() + "SLCTDAT" + LangExt())) STRING001 = PPEPath() + "SLCTDAT" + LangExt()
  66.     SaveScrn
  67.     Print ReadLine(STRING001, 3)
  68.     FClose -1
  69.     STRING005 = PPEPath() + "\USERDATA\"
  70.     STRING008 = ReadLine(PCBDat(), 31) + ".@@@"
  71.     INTEGER001 = ReadLine(PCBDat(), 108)
  72.     STRING009 = ReadLine(STRING001, 4)
  73.     STRING010 = ReadLine(STRING001, 5)
  74.     STRING011 = ReadLine(STRING001, 6)
  75.     STRING012 = ReadLine(STRING001, 7)
  76.     STRING013 = ReadLine(STRING001, 8)
  77.     FClose -1
  78.     For INTEGER002 = 1 To Len(U_Name())
  79.         STRING002 = STRING002 + Asc(Mid(Mixed(U_Name()), INTEGER002, 1)) / 4
  80.     Next
  81.     STRING007 = Strip(U_Name(), " ")
  82.     STRING007 = Strip(STRING007, ".")
  83.     If (Len(U_Name()) < 14) STRING006 = STRING007 + "." + STRING002
  84.     If (STRING006 <> "") Goto LABEL001
  85.     STRING006 = Mid(STRING007, 1, 1)
  86.     STRING006 = STRING006 + Mid(STRING007, 3, 1)
  87.     STRING006 = STRING006 + Mid(STRING007, 5, 1)
  88.     STRING006 = STRING006 + Mid(STRING007, 7, 1)
  89.     STRING006 = STRING006 + Mid(STRING007, 9, 1)
  90.     STRING006 = STRING006 + Mid(STRING007, 11, 1)
  91.     STRING006 = STRING006 + Mid(STRING007, 13, 1)
  92.     STRING006 = STRING006 + Mid(STRING007, 15, 1)
  93.     STRING006 = STRING006 + "." + STRING002
  94.     :LABEL001
  95.     If (Exist(STRING005 + STRING006)) Then
  96.         FOpen 2, STRING005 + STRING006, 0, 0
  97.         For INTEGER002 = 0 To INTEGER001
  98.             FGet 2, TINTEGER013(INTEGER002)
  99.             FGet 2, TBOOLEAN001(TINTEGER013(INTEGER002))
  100.         Next
  101.         FClose 2
  102.     Endif
  103.     INTEGER003 = 0
  104.     For INTEGER002 = 0 To INTEGER001
  105.         If (U_InConf(U_RecNum(U_Name()), INTEGER002) == 1) Then
  106.             FOpen 1, STRING008, 0, 0
  107.             FSeek 1, INTEGER002 * 548 + 2, 1
  108.             FGet 1, TSTRING015(INTEGER012)
  109.             FClose 1
  110.             TINTEGER013(INTEGER012) = INTEGER002
  111.             Inc INTEGER012
  112.         Endif
  113.         If (INTEGER004 == 0) Then
  114.             If (INTEGER003 <= 10) Then
  115.                 Print "."
  116.                 Inc INTEGER003
  117.             Endif
  118.             If (INTEGER003 == 10) INTEGER004 = 1
  119.         Endif
  120.         If (INTEGER004 == 1) Then
  121.             Backup 1
  122.             Print " "
  123.             Backup 1
  124.             Dec INTEGER003
  125.             If (INTEGER003 == 0) INTEGER004 = 0
  126.         Endif
  127.     Next
  128.     INTEGER005 = INTEGER012 - 1
  129.     INTEGER003 = 0
  130.     Cls
  131.     Print "@POFF@"
  132.     Newline
  133.     PrintLn ReadLine(STRING001, 1)
  134.     Print ReadLine(STRING001, 2)
  135.     AnsiPos 1, 21
  136.     Print ReadLine(STRING001, 2)
  137.     FClose -1
  138.     AnsiPos 63, 21
  139.     Print STRING014
  140.     :LABEL002
  141.     Print "@X07"
  142.     INTEGER006 = STRING004
  143.     For INTEGER002 = INTEGER007 To INTEGER007 + 16
  144.         AnsiPos 1, 4 + INTEGER002 - INTEGER007
  145.         ClrEol
  146.         If (INTEGER002 <= INTEGER005) Then
  147.             STRING004 = INTEGER002
  148.             Gosub LABEL012
  149.         Endif
  150.     Next
  151.     STRING004 = INTEGER006
  152.     AnsiPos 1, STRING004 - INTEGER007 + 4
  153.     Gosub LABEL011
  154.     :LABEL003
  155.     STRING003 = Inkey()
  156.     If (STRING003 <> "") Goto LABEL004
  157.     Goto LABEL003
  158.     :LABEL004
  159.     If (Upper(STRING003) == "A") Goto LABEL014
  160.     If (Upper(STRING003) == "H") Goto LABEL017
  161.     If (Upper(STRING003) == "Q") Goto LABEL019
  162.     If (STRING003 == "HOME") Goto LABEL005
  163.     If (STRING003 == "PGUP") Goto LABEL006
  164.     If (STRING003 == "UP") Goto LABEL007
  165.     If (STRING003 == "DOWN") Goto LABEL008
  166.     If (STRING003 == "PGDN") Goto LABEL009
  167.     If (STRING003 == "END") Goto LABEL010
  168.     If (STRING003 == "LEFT") Goto LABEL007
  169.     If (STRING003 == "RIGHT") Goto LABEL008
  170.     If (STRING003 == "7") Goto LABEL005
  171.     If (STRING003 == "9") Goto LABEL006
  172.     If (STRING003 == "8") Goto LABEL007
  173.     If (STRING003 == "2") Goto LABEL008
  174.     If (STRING003 == "3") Goto LABEL009
  175.     If (STRING003 == "1") Goto LABEL010
  176.     If (STRING003 == "4") Goto LABEL007
  177.     If (STRING003 == "6") Goto LABEL008
  178.     If (STRING003 == Chr(13)) Goto LABEL013
  179.     If (STRING003 == Chr(10)) Goto LABEL013
  180.     If (STRING003 == Chr(32)) Goto LABEL013
  181.     If (STRING003 == Chr(27)) Goto LABEL019
  182.     Goto LABEL003
  183.     :LABEL005
  184.     If (STRING004 == 0) Goto LABEL003
  185.     INTEGER007 = 0
  186.     STRING004 = 0
  187.     Goto LABEL002
  188.     :LABEL006
  189.     If (STRING004 == 0) Goto LABEL003
  190.     If (STRING004 < 17) Goto LABEL005
  191.     INTEGER007 = STRING004 - 17
  192.     STRING004 = STRING004 - 17
  193.     Goto LABEL002
  194.     :LABEL007
  195.     If (STRING004 == 0) Goto LABEL003
  196.     If (GetY() == 4) Then
  197.         If (STRING004 < 17) Goto LABEL005
  198.         INTEGER007 = STRING004 - 17
  199.         Dec STRING004
  200.         Goto LABEL002
  201.     Endif
  202.     Print "@X07"
  203.     AnsiPos 1, GetY()
  204.     ClrEol
  205.     Gosub LABEL012
  206.     Dec STRING004
  207.     AnsiPos 1, GetY() - 1
  208.     Print "@X7F"
  209.     ClrEol
  210.     Gosub LABEL011
  211.     Goto LABEL003
  212.     :LABEL008
  213.     If (STRING004 == INTEGER005) Goto LABEL003
  214.     If (GetY() == 20) Then
  215.         INTEGER007 = STRING004 + 1
  216.         Inc STRING004
  217.         Goto LABEL002
  218.     Endif
  219.     Print "@X07"
  220.     AnsiPos 1, GetY()
  221.     ClrEol
  222.     Gosub LABEL012
  223.     Inc STRING004
  224.     AnsiPos 1, GetY() + 1
  225.     Print "@X7F"
  226.     ClrEol
  227.     Gosub LABEL011
  228.     Goto LABEL003
  229.     :LABEL009
  230.     If (STRING004 == INTEGER005) Goto LABEL003
  231.     If (STRING004 >= INTEGER005 - 17) Goto LABEL010
  232.     INTEGER007 = STRING004 + 17
  233.     STRING004 = STRING004 + 17
  234.     Goto LABEL002
  235.     :LABEL010
  236.     If (STRING004 == INTEGER005) Goto LABEL003
  237.     INTEGER007 = INTEGER005
  238.     STRING004 = INTEGER005
  239.     Goto LABEL002
  240.     :LABEL011
  241.     Print "@X7F"
  242.     AnsiPos 1, GetY()
  243.     ClrEol
  244.     Print "@X08░▒▓█@X78▓▒░ @X7FCONFERENCE "
  245.     INTEGER003 = Len(TINTEGER013(STRING004))
  246.     While (((1 < 0) && (INTEGER003 >= Len(INTEGER005) - 1)) || ((1 >= 0) && (INTEGER003 <= Len(INTEGER005) - 1))) Do
  247.         Print "0"
  248.         INTEGER003 = INTEGER003 + 1
  249.     EndWhile
  250.     Print TINTEGER013(STRING004), " : ", TSTRING015(STRING004)
  251.     If (TBOOLEAN001(TINTEGER013(STRING004)) == 0) Print "@POS:65@SCAN [ ]"
  252.     If (TBOOLEAN001(TINTEGER013(STRING004)) == 1) Print "@POS:65@SCAN [X]"
  253.     Return
  254.     :LABEL012
  255.     Print "@X07        CONFERENCE "
  256.     INTEGER003 = Len(TINTEGER013(STRING004))
  257.     While (((1 < 0) && (INTEGER003 >= Len(INTEGER005) - 1)) || ((1 >= 0) && (INTEGER003 <= Len(INTEGER005) - 1))) Do
  258.         Print "0"
  259.         INTEGER003 = INTEGER003 + 1
  260.     EndWhile
  261.     Print TINTEGER013(STRING004), " : ", TSTRING015(STRING004)
  262.     If (TBOOLEAN001(TINTEGER013(STRING004)) == 0) Print "@POS:65@SCAN [ ]"
  263.     If (TBOOLEAN001(TINTEGER013(STRING004)) == 1) Print "@POS:65@SCAN [X]"
  264.     Return
  265.     :LABEL013
  266.     If (TBOOLEAN001(TINTEGER013(STRING004)) == 1) Then
  267.         TBOOLEAN001(TINTEGER013(STRING004)) = 0
  268.         Gosub LABEL011
  269.         If (STRING003 == Chr(13)) Goto LABEL008
  270.         If (STRING003 == Chr(10)) Goto LABEL008
  271.         Goto LABEL003
  272.     Endif
  273.     If (TBOOLEAN001(TINTEGER013(STRING004)) == 0) Then
  274.         TBOOLEAN001(TINTEGER013(STRING004)) = 1
  275.         Gosub LABEL011
  276.         If (STRING003 == Chr(13)) Goto LABEL008
  277.         If (STRING003 == Chr(10)) Goto LABEL008
  278.         Goto LABEL003
  279.     Endif
  280.     :LABEL014
  281.     INTEGER011 = GetY()
  282.     INTEGER010 = GetX()
  283.     FClose -1
  284.     AnsiPos 2, 22
  285.     INTEGER009 = Len(BIGSTR001)
  286.     :LABEL015
  287.     For INTEGER008 = 1 To INTEGER009
  288.         If (Inkey() <> "") Goto LABEL016
  289.         Delay 3
  290.         Print STRING009, Mid(BIGSTR001, INTEGER008, 4)
  291.         Print STRING010, Mid(BIGSTR001, INTEGER008 + 4, 5)
  292.         Print STRING011, Mid(BIGSTR001, INTEGER008 + 9, 60)
  293.         Print STRING012, Mid(BIGSTR001, INTEGER008 + 69, 5)
  294.         Print STRING013, Mid(BIGSTR001, INTEGER008 + 74, 4)
  295.         AnsiPos 2, 22
  296.     Next
  297.     Goto LABEL015
  298.     :LABEL016
  299.     AnsiPos 1, 22
  300.     ClrEol
  301.     AnsiPos INTEGER010, INTEGER011
  302.     Goto LABEL003
  303.     :LABEL017
  304.     INTEGER011 = GetY()
  305.     INTEGER010 = GetX()
  306.     AnsiPos 2, 22
  307.     INTEGER009 = Len(BIGSTR002)
  308.     :LABEL018
  309.     For INTEGER008 = 1 To INTEGER009
  310.         If (Inkey() <> "") Goto LABEL016
  311.         Delay 3
  312.         Print STRING009, Mid(BIGSTR002, INTEGER008, 4)
  313.         Print STRING010, Mid(BIGSTR002, INTEGER008 + 4, 5)
  314.         Print STRING011, Mid(BIGSTR002, INTEGER008 + 9, 60)
  315.         Print STRING012, Mid(BIGSTR002, INTEGER008 + 69, 5)
  316.         Print STRING013, Mid(BIGSTR002, INTEGER008 + 74, 4)
  317.         AnsiPos 2, 22
  318.     Next
  319.     Goto LABEL018
  320.     :LABEL019
  321.     Print "@X07"
  322.     Cls
  323.     If (Exist(STRING005 + STRING006)) Delete STRING005 + STRING006
  324.     FCreate 1, STRING005 + STRING006, 2, 0
  325.     For INTEGER002 = 0 To INTEGER005
  326.         FPut 1, TINTEGER013(INTEGER002), Chr(13)
  327.         FPut 1, TBOOLEAN001(INTEGER002), Chr(13)
  328.     Next
  329.     FClose 1
  330.     RestScrn
  331.  
  332. ;------------------------------------------------------------------------------
  333. ;
  334. ; Usage report (before postprocessing)
  335. ;
  336. ; ■ Statements used :
  337. ;
  338. ;    2       Cls
  339. ;    7       ClrEol
  340. ;    84      Goto 
  341. ;    80      Let 
  342. ;    34      Print 
  343. ;    1       PrintLn 
  344. ;    69      If 
  345. ;    1       FCreate 
  346. ;    2       FOpen 
  347. ;    7       FClose 
  348. ;    3       FGet 
  349. ;    2       FPut 
  350. ;    1       Delete 
  351. ;    8       Gosub 
  352. ;    2       Return
  353. ;    2       Delay 
  354. ;    4       Inc 
  355. ;    3       Dec 
  356. ;    1       Newline
  357. ;    15      AnsiPos 
  358. ;    2       Backup 
  359. ;    1       SaveScrn
  360. ;    1       RestScrn
  361. ;    1       FSeek 
  362. ;
  363. ;
  364. ; ■ Functions used :
  365. ;
  366. ;    4       -
  367. ;    1       *
  368. ;    1       /
  369. ;    59      +
  370. ;    12      -
  371. ;    46      ==
  372. ;    4       <>
  373. ;    12      <
  374. ;    11      <=
  375. ;    19      >=
  376. ;    19      !
  377. ;    18      &&
  378. ;    9       ||
  379. ;    11      Len(
  380. ;    3       Upper()
  381. ;    19      Mid()
  382. ;    10      Chr()
  383. ;    1       Asc()
  384. ;    6       U_Name()
  385. ;    2       Strip()
  386. ;    3       Inkey()
  387. ;    2       PCBDat()
  388. ;    5       PPEPath()
  389. ;    11      ReadLine()
  390. ;    4       Exist()
  391. ;    2       LangExt()
  392. ;    2       GetX()
  393. ;    9       GetY()
  394. ;    1       U_RecNum()
  395. ;    1       U_InConf()
  396. ;    1       Mixed()
  397. ;
  398. ;------------------------------------------------------------------------------
  399. ;
  400. ; Analysis flags : d
  401. ;
  402. ; d - Access PCBOARD.DAT ■ 2
  403. ;     Program gets the full pathname to PCBOARD.DAT, this may be usefull
  404. ;     for many PPE so they can find various informations on the system
  405. ;     (system paths, max number of lines in messages, ...) but it may also
  406. ;     be a way to gather vital informations.
  407. ;     ■ Search for : PCBDAT()
  408. ;
  409. ;------------------------------------------------------------------------------
  410. ;
  411. ; Postprocessing report
  412. ;
  413. ;    7       For/Next
  414. ;    2       While/EndWhile
  415. ;    10      If/Then or If/Then/Else
  416. ;    0       Select Case
  417. ;
  418. ;------------------------------------------------------------------------------
  419. ;                 AEGiS Corp - Break the routines, code against the machines!
  420. ;------------------------------------------------------------------------------
  421.