home *** CD-ROM | disk | FTP | other *** search
/ Piper's Pit BBS/FTP: ibm 0200 - 0209 / ibm0200-0209 / ibm0200.tar / ibm0200 / GNSCHAT.ZIP / SPLITSCR.PPE (.txt) < prev   
Encoding:
PCBoard Programming Language Executable  |  1994-05-28  |  6.8 KB  |  478 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.     Integer  INTEGER001
  20.     Integer  INTEGER002
  21.     Integer  INTEGER003
  22.     Integer  INTEGER004
  23.     Integer  INTEGER005
  24.     Integer  INTEGER006
  25.     Integer  INTEGER007
  26.     Integer  INTEGER008
  27.     Integer  INTEGER009
  28.     Integer  INTEGER010
  29.     Integer  INTEGER011
  30.     Integer  INTEGER012
  31.     Integer  INTEGER013
  32.     Integer  INTEGER014
  33.     Integer  INTEGER015
  34.     Integer  INTEGER016
  35.     Integer  INTEGER017
  36.     Integer  INTEGER018
  37.     Integer  INTEGER019
  38.     Integer  INTEGER020
  39.     Integer  INTEGER021
  40.     String   STRING001
  41.     String   STRING002
  42.     String   STRING003
  43.     String   STRING004
  44.     String   STRING005
  45.     String   STRING006
  46.     String   STRING007
  47.     String   STRING008
  48.     String   STRING009
  49.     String   STRING010
  50.     String   STRING011
  51.     String   STRING012
  52.     String   STRING013
  53.     String   STRING014
  54.     String   STRING015
  55.     String   STRING016
  56.  
  57. ;------------------------------------------------------------------------------
  58.  
  59.     SaveScrn
  60.     FOpen 1, PPEPath() + "SPLITSCR.CNF", 0, 0
  61.     FGet 1, STRING001
  62.     FGet 1, STRING002
  63.     FGet 1, STRING003
  64.     FGet 1, STRING004
  65.     FGet 1, STRING005
  66.     FGet 1, INTEGER001
  67.     FGet 1, STRING008
  68.     FGet 1, STRING009
  69.     FGet 1, INTEGER002
  70.     FGet 1, INTEGER003
  71.     FClose 1
  72.     If (Exist(PPEPath() + STRING003)) DispFile PPEPath() + STRING003, 1
  73.     Delay INTEGER001
  74.     If (Exist(PPEPath() + STRING004)) DispFile PPEPath() + STRING004, 1
  75.     INTEGER021 = 1
  76.     :LABEL001
  77.     If (Mid(STRING008, INTEGER021, 1) == ";") Goto LABEL002
  78.     STRING010 = STRING010 + Mid(STRING008, INTEGER021, 1)
  79.     Inc INTEGER021
  80.     Goto LABEL001
  81.     :LABEL002
  82.     Inc INTEGER021
  83.     INTEGER009 = STRING010
  84.     STRING010 = ""
  85.     :LABEL003
  86.     If (Mid(STRING008, INTEGER021, 1) == ";") Goto LABEL004
  87.     STRING010 = STRING010 + Mid(STRING008, INTEGER021, 1)
  88.     Inc INTEGER021
  89.     Goto LABEL003
  90.     :LABEL004
  91.     Inc INTEGER021
  92.     INTEGER010 = STRING010
  93.     STRING010 = ""
  94.     :LABEL005
  95.     If (Mid(STRING008, INTEGER021, 1) == ";") Goto LABEL006
  96.     STRING010 = STRING010 + Mid(STRING008, INTEGER021, 1)
  97.     Inc INTEGER021
  98.     Goto LABEL005
  99.     :LABEL006
  100.     Inc INTEGER021
  101.     INTEGER011 = STRING010
  102.     STRING010 = ""
  103.     :LABEL007
  104.     If (INTEGER021 > Len(STRING008)) Goto LABEL008
  105.     STRING010 = STRING010 + Mid(STRING008, INTEGER021, 1)
  106.     Inc INTEGER021
  107.     Goto LABEL007
  108.     :LABEL008
  109.     Inc INTEGER021
  110.     INTEGER012 = STRING010
  111.     STRING010 = ""
  112.     INTEGER021 = 1
  113.     :LABEL009
  114.     If (Mid(STRING009, INTEGER021, 1) == ";") Goto LABEL010
  115.     STRING010 = STRING010 + Mid(STRING009, INTEGER021, 1)
  116.     Inc INTEGER021
  117.     Goto LABEL009
  118.     :LABEL010
  119.     Inc INTEGER021
  120.     INTEGER013 = STRING010
  121.     STRING010 = ""
  122.     :LABEL011
  123.     If (Mid(STRING009, INTEGER021, 1) == ";") Goto LABEL012
  124.     STRING010 = STRING010 + Mid(STRING009, INTEGER021, 1)
  125.     Inc INTEGER021
  126.     Goto LABEL011
  127.     :LABEL012
  128.     Inc INTEGER021
  129.     INTEGER014 = STRING010
  130.     STRING010 = ""
  131.     :LABEL013
  132.     If (Mid(STRING009, INTEGER021, 1) == ";") Goto LABEL014
  133.     STRING010 = STRING010 + Mid(STRING009, INTEGER021, 1)
  134.     Inc INTEGER021
  135.     Goto LABEL013
  136.     :LABEL014
  137.     Inc INTEGER021
  138.     INTEGER015 = STRING010
  139.     STRING010 = ""
  140.     :LABEL015
  141.     If (INTEGER021 > Len(STRING009)) Goto LABEL016
  142.     STRING010 = STRING010 + Mid(STRING009, INTEGER021, 1)
  143.     Inc INTEGER021
  144.     Goto LABEL015
  145.     :LABEL016
  146.     Inc INTEGER021
  147.     INTEGER016 = STRING010
  148.     STRING010 = ""
  149.     INTEGER017 = INTEGER009
  150.     INTEGER018 = INTEGER010
  151.     INTEGER019 = INTEGER013
  152.     INTEGER020 = INTEGER014
  153.     STRING015 = ""
  154.     STRING016 = ""
  155.     For INTEGER008 = 0 To INTEGER015 - INTEGER013
  156.         STRING015 = STRING015 + " "
  157.     Next
  158.     For INTEGER008 = 0 To INTEGER011 - INTEGER009
  159.         STRING016 = STRING016 + " "
  160.     Next
  161.     AnsiPos INTEGER009, INTEGER010
  162.     :LABEL017
  163.     STRING012 = KInkey()
  164.     STRING011 = MInkey()
  165.     If ((STRING012 == "") && (STRING011 == "")) Goto LABEL017
  166.     If ((STRING012 == "ALT P") || (STRING011 == "ALT P")) If (INTEGER003 == 2) Print "@BEEP@"
  167.     If (STRING012 == "") Goto LABEL027
  168.     If ((((Len(STRING012) == 1) || (STRING012 == Chr(7))) || (STRING012 == Chr(13))) || (STRING012 == Chr(27))) Then
  169.         If (STRING012 == Chr(7)) Then
  170.             Print "@BEEP@"
  171.             Goto LABEL027
  172.         Endif
  173.         If (STRING012 == Chr(9)) Goto LABEL027
  174.         If (STRING012 == Chr(27)) Goto LABEL037
  175.         If (STRING012 == Chr(13)) Then
  176.             STRING014 = ScrText(INTEGER009, INTEGER018, INTEGER011 - INTEGER009 + 1, 0)
  177.             If ((Upper(Mid(STRING014, 1, 3)) == "/Q ") && (INTEGER002 == 3)) Goto LABEL037
  178.             If ((Upper(Mid(STRING014, 1, 6)) == "/PAGE ") && (INTEGER003 == 3)) Print "@BEEP@"
  179.             If (Upper(Mid(STRING014, 1, 5)) == "/BYE ") Goto LABEL038
  180.             INTEGER017 = INTEGER009
  181.             Inc INTEGER018
  182.             If (INTEGER018 > INTEGER012) Then
  183.                 STRING013 = ScrText(INTEGER009, INTEGER012, INTEGER011 - INTEGER009 + 1, 0)
  184.                 INTEGER004 = INTEGER009
  185.                 INTEGER005 = INTEGER010
  186.                 AnsiPos INTEGER004, INTEGER005
  187.                 Print STRING001
  188.                 :LABEL018
  189.                 If (INTEGER005 > INTEGER012) Goto LABEL019
  190.                 Print STRING016
  191.                 Inc INTEGER005
  192.                 AnsiPos INTEGER004, INTEGER005
  193.                 Goto LABEL018
  194.                 :LABEL019
  195.                 AnsiPos INTEGER009, INTEGER010
  196.                 Print STRING001 + STRING013
  197.                 INTEGER018 = INTEGER010 + 1
  198.             Endif
  199.             AnsiPos INTEGER017, INTEGER018
  200.             Goto LABEL027
  201.         Endif
  202.         If (STRING012 == Chr(8)) Then
  203.             Dec INTEGER017
  204.             If (INTEGER017 < INTEGER009) INTEGER017 = INTEGER009
  205.             AnsiPos INTEGER017, INTEGER018
  206.             Print STRING001 + " " + Chr(8)
  207.             Goto LABEL027
  208.         Endif
  209.         AnsiPos INTEGER017, INTEGER018
  210.         Print STRING001 + STRING012
  211.         Inc INTEGER017
  212.         If (INTEGER017 > INTEGER011) Then
  213.             STRING006 = ""
  214.             STRING007 = ""
  215.             STRING014 = ScrText(INTEGER009, INTEGER018, INTEGER011 - INTEGER009 + 1, 0)
  216.             If (Mid(STRING014, Len(STRING014), 1) == " ") INTEGER017 = INTEGER009
  217.             If (Mid(STRING014, Len(STRING014), 1) == " ") Goto LABEL024
  218.             INTEGER006 = Len(STRING014)
  219.             INTEGER007 = 1
  220.             :LABEL020
  221.             If (STRING006 == " ") Goto LABEL021
  222.             STRING006 = Mid(STRING014, INTEGER006, 1)
  223.             If (!(STRING006 == " ")) STRING007 = STRING007 + STRING006
  224.             Dec INTEGER006
  225.             Goto LABEL020
  226.             :LABEL021
  227.             INTEGER007 = Len(STRING007)
  228.             If (INTEGER007 == INTEGER011 - INTEGER009 + 1) Then
  229.                 INTEGER017 = INTEGER009
  230.                 Goto LABEL024
  231.             Endif
  232.             AnsiPos INTEGER011 - INTEGER007, INTEGER018
  233.             For INTEGER008 = INTEGER011 - INTEGER007 To INTEGER011
  234.                 Print " "
  235.             Next
  236.             If (INTEGER018 == INTEGER012) Then
  237.                 STRING013 = ScrText(INTEGER009, INTEGER012, INTEGER011 - INTEGER009 + 1, 0)
  238.                 INTEGER004 = INTEGER009
  239.                 INTEGER005 = INTEGER010
  240.                 AnsiPos INTEGER004, INTEGER005
  241.                 Print STRING001
  242.                 :LABEL022
  243.                 If (INTEGER005 > INTEGER012) Goto LABEL023
  244.                 Print STRING016
  245.                 Inc INTEGER005
  246.                 AnsiPos INTEGER004, INTEGER005
  247.                 Goto LABEL022
  248.                 :LABEL023
  249.                 AnsiPos INTEGER009, INTEGER010
  250.                 Print STRING001 + STRING013
  251.                 INTEGER018 = INTEGER010
  252.             Endif
  253.             AnsiPos INTEGER009, INTEGER018 + 1
  254.             INTEGER007 = Len(STRING007)
  255.             While (INTEGER007 > 0) Do
  256.                 Print Mid(STRING007, INTEGER007, 1)
  257.                 Dec INTEGER007
  258.             EndWhile
  259.             INTEGER017 = INTEGER009 + Len(STRING007)
  260.             :LABEL024
  261.             Inc INTEGER018
  262.             If (INTEGER018 > INTEGER012) Then
  263.                 STRING013 = ScrText(INTEGER009, INTEGER012, INTEGER011 - INTEGER009 + 1, 0)
  264.                 INTEGER004 = INTEGER009
  265.                 INTEGER005 = INTEGER010
  266.                 AnsiPos INTEGER004, INTEGER005
  267.                 Print STRING001
  268.                 :LABEL025
  269.                 If (INTEGER005 > INTEGER012) Goto LABEL026
  270.                 Print STRING016
  271.                 Inc INTEGER005
  272.                 AnsiPos INTEGER004, INTEGER005
  273.                 Goto LABEL025
  274.                 :LABEL026
  275.                 AnsiPos INTEGER009, INTEGER010
  276.                 Print STRING001 + STRING013
  277.                 INTEGER018 = INTEGER010 + 1
  278.             Endif
  279.             AnsiPos INTEGER017, INTEGER018
  280.         Endif
  281.     Endif
  282.     :LABEL027
  283.     If (STRING011 == "") Goto LABEL017
  284.     If ((((Len(STRING011) == 1) || (STRING011 == Chr(7))) || (STRING011 == Chr(13))) || (STRING011 == Chr(27))) Then
  285.         If (STRING011 == Chr(7)) Then
  286.             Print "@BEEP@"
  287.             Goto LABEL017
  288.         Endif
  289.         If (STRING011 == Chr(9)) Goto LABEL017
  290.         If (STRING011 == Chr(27)) Goto LABEL037
  291.         If (STRING011 == Chr(13)) Then
  292.             STRING014 = ScrText(INTEGER013, INTEGER020, INTEGER015 - INTEGER013 + 1, 0)
  293.             If ((Upper(Mid(STRING014, 1, 3)) == "/Q ") && (INTEGER002 == 3)) Goto LABEL037
  294.             If ((Upper(Mid(STRING014, 1, 6)) == "/PAGE ") && (INTEGER003 == 3)) Print "@BEEP@"
  295.             If (Upper(Mid(STRING014, 1, 5)) == "/BYE ") Goto LABEL038
  296.             INTEGER019 = INTEGER013
  297.             Inc INTEGER020
  298.             If (INTEGER020 > INTEGER016) Then
  299.                 STRING013 = ScrText(INTEGER013, INTEGER016, INTEGER015 - INTEGER013 + 1, 0)
  300.                 INTEGER004 = INTEGER013
  301.                 INTEGER005 = INTEGER014
  302.                 AnsiPos INTEGER004, INTEGER005
  303.                 Print STRING001
  304.                 :LABEL028
  305.                 If (INTEGER005 > INTEGER016) Goto LABEL029
  306.                 Print STRING015
  307.                 Inc INTEGER005
  308.                 AnsiPos INTEGER004, INTEGER005
  309.                 Goto LABEL028
  310.                 :LABEL029
  311.                 AnsiPos INTEGER013, INTEGER014
  312.                 Print STRING002 + STRING013
  313.                 INTEGER020 = INTEGER014 + 1
  314.             Endif
  315.             AnsiPos INTEGER019, INTEGER020
  316.             Goto LABEL017
  317.         Endif
  318.         If (STRING011 == Chr(8)) Then
  319.             Dec INTEGER019
  320.             If (INTEGER019 < INTEGER013) INTEGER019 = INTEGER013
  321.             AnsiPos INTEGER019, INTEGER020
  322.             Print STRING002 + " " + Chr(8)
  323.             Goto LABEL017
  324.         Endif
  325.         AnsiPos INTEGER019, INTEGER020
  326.         Print STRING002 + STRING011
  327.         Inc INTEGER019
  328.         If (INTEGER019 > INTEGER015) Then
  329.             STRING006 = ""
  330.             STRING007 = ""
  331.             STRING014 = ScrText(INTEGER013, INTEGER020, INTEGER015 - INTEGER013 + 1, 0)
  332.             If (Mid(STRING014, Len(STRING014), 1) == " ") INTEGER019 = INTEGER013
  333.             If (Mid(STRING014, Len(STRING014), 1) == " ") Goto LABEL034
  334.             INTEGER006 = Len(STRING014)
  335.             INTEGER007 = 1
  336.             :LABEL030
  337.             If (STRING006 == " ") Goto LABEL031
  338.             STRING006 = Mid(STRING014, INTEGER006, 1)
  339.             If (!(STRING006 == " ")) STRING007 = STRING007 + STRING006
  340.             Dec INTEGER006
  341.             Goto LABEL030
  342.             :LABEL031
  343.             INTEGER007 = Len(STRING007)
  344.             If (INTEGER007 == INTEGER015 - INTEGER013 + 1) Then
  345.                 INTEGER019 = INTEGER013
  346.                 Goto LABEL034
  347.             Endif
  348.             AnsiPos INTEGER015 - INTEGER007, INTEGER020
  349.             For INTEGER008 = INTEGER015 - INTEGER007 To INTEGER015
  350.                 Print " "
  351.             Next
  352.             If (INTEGER020 == INTEGER016) Then
  353.                 STRING013 = ScrText(INTEGER013, INTEGER016, INTEGER015 - INTEGER013 + 1, 0)
  354.                 INTEGER004 = INTEGER013
  355.                 INTEGER005 = INTEGER014
  356.                 AnsiPos INTEGER004, INTEGER005
  357.                 Print STRING001
  358.                 :LABEL032
  359.                 If (INTEGER005 > INTEGER016) Goto LABEL033
  360.                 Print STRING015
  361.                 Inc INTEGER005
  362.                 AnsiPos INTEGER004, INTEGER005
  363.                 Goto LABEL032
  364.                 :LABEL033
  365.                 AnsiPos INTEGER013, INTEGER014
  366.                 Print STRING002 + STRING013
  367.                 INTEGER020 = INTEGER014
  368.             Endif
  369.             AnsiPos INTEGER013, INTEGER020 + 1
  370.             INTEGER007 = Len(STRING007)
  371.             While (INTEGER007 > 0) Do
  372.                 Print Mid(STRING007, INTEGER007, 1)
  373.                 Dec INTEGER007
  374.             EndWhile
  375.             INTEGER019 = INTEGER013 + Len(STRING007)
  376.             :LABEL034
  377.             Inc INTEGER020
  378.             If (INTEGER020 > INTEGER016) Then
  379.                 STRING013 = ScrText(INTEGER013, INTEGER016, INTEGER015 - INTEGER013 + 1, 0)
  380.                 INTEGER004 = INTEGER013
  381.                 INTEGER005 = INTEGER014
  382.                 AnsiPos INTEGER004, INTEGER005
  383.                 Print STRING002
  384.                 :LABEL035
  385.                 If (INTEGER005 > INTEGER016) Goto LABEL036
  386.                 Print STRING015
  387.                 Inc INTEGER005
  388.                 AnsiPos INTEGER004, INTEGER005
  389.                 Goto LABEL035
  390.                 :LABEL036
  391.                 AnsiPos INTEGER013, INTEGER014
  392.                 Print STRING002 + STRING013
  393.                 INTEGER020 = INTEGER014 + 1
  394.             Endif
  395.             AnsiPos INTEGER019, INTEGER020
  396.         Endif
  397.     Endif
  398.     Goto LABEL017
  399.     :LABEL037
  400.     Print "@X0F"
  401.     If (Exist(PPEPath() + STRING005)) DispFile PPEPath() + STRING005, 1
  402.     Cls
  403.     RestScrn
  404.     End
  405.     :LABEL038
  406.     Print "@X0F"
  407.     Cls
  408.     Hangup
  409.  
  410. ;------------------------------------------------------------------------------
  411. ;
  412. ; Usage report (before postprocessing)
  413. ;
  414. ; ■ Statements used :
  415. ;
  416. ;    1       End
  417. ;    2       Cls
  418. ;    89      Goto 
  419. ;    98      Let 
  420. ;    33      Print 
  421. ;    76      If 
  422. ;    3       DispFile 
  423. ;    1       FOpen 
  424. ;    1       FClose 
  425. ;    10      FGet 
  426. ;    1       Hangup
  427. ;    1       Delay 
  428. ;    28      Inc 
  429. ;    6       Dec 
  430. ;    31      AnsiPos 
  431. ;    1       SaveScrn
  432. ;    1       RestScrn
  433. ;
  434. ;
  435. ; ■ Functions used :
  436. ;
  437. ;    55      +
  438. ;    20      -
  439. ;    64      ==
  440. ;    6       <
  441. ;    4       <=
  442. ;    16      >
  443. ;    8       >=
  444. ;    48      !
  445. ;    13      &&
  446. ;    12      ||
  447. ;    16      Len(
  448. ;    6       Upper()
  449. ;    28      Mid()
  450. ;    22      Chr()
  451. ;    7       PPEPath()
  452. ;    3       Exist()
  453. ;    1       KInkey()
  454. ;    1       MInkey()
  455. ;    10      ScrText()
  456. ;
  457. ;------------------------------------------------------------------------------
  458. ;
  459. ; Analysis flags : B
  460. ;
  461. ; B - Brute hangup ■ 1
  462. ;     Program hangup without notification. This may be a good way to
  463. ;     disconnect a user, but if used randomly, may be very nasty
  464. ;     ■ Search for : HANGUP, DTROFF
  465. ;
  466. ;------------------------------------------------------------------------------
  467. ;
  468. ; Postprocessing report
  469. ;
  470. ;    4       For/Next
  471. ;    2       While/EndWhile
  472. ;    18      If/Then or If/Then/Else
  473. ;    0       Select Case
  474. ;
  475. ;------------------------------------------------------------------------------
  476. ;                 AEGiS Corp - Break the routines, code against the machines!
  477. ;------------------------------------------------------------------------------
  478.