home *** CD-ROM | disk | FTP | other *** search
/ ftp.wwiv.com / ftp.wwiv.com.zip / ftp.wwiv.com / pub / BBS / DMSPPE1B.ZIP / MORE.PPE (.txt) < prev    next >
PCBoard Programming Language Executable  |  1995-01-11  |  5KB  |  331 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.     String   STRING001
  22.     String   STRING002
  23.     String   TSTRING003(4)
  24.     String   TSTRING004(4)
  25.     String   TSTRING005(4)
  26.     String   STRING006
  27.     String   STRING007
  28.     Int      INT001
  29.     Int      INT002
  30.     Int      TINT003(4)
  31.     Int      TINT004(4)
  32.     Int      INT005
  33.     Int      INT006
  34.     Int      INT007
  35.     Int      INT008
  36.     Int      INT009
  37.     Int      INT010
  38.  
  39. ;------------------------------------------------------------------------------
  40.  
  41.     BOOLEAN001 = AnsiOn()
  42.     If (BOOLEAN001) Then
  43.         Gosub LABEL001
  44.     Else
  45.         Gosub LABEL004
  46.     Endif
  47.     Backup GetX() - 1
  48.     ClrEol
  49.     KbdStuff STRING001
  50.     End
  51.     :LABEL001
  52.     INT002 = CurColor()
  53.     INT007 = 4
  54.     TSTRING005(1) = "Y"
  55.     TSTRING005(2) = "N"
  56.     TSTRING005(3) = "NS"
  57.     TSTRING005(4) = "H"
  58.     TINT004(1) = 1
  59.     TINT004(2) = 1
  60.     TINT004(3) = 4
  61.     TINT004(4) = 1
  62.     STRING006 = "@X0AMore -> "
  63.     TSTRING003(1) = "@X0B @X0EY@X0Bes "
  64.     TSTRING003(2) = "@X0B @X0EN@X0Bo "
  65.     TSTRING003(3) = "@X0B non@X0ES@X0Btop "
  66.     TSTRING003(4) = "@X0B @X0EH@X0Belp "
  67.     TSTRING004(1) = "@X3F @X3EY@X3Fes "
  68.     TSTRING004(2) = "@X3F @X3EN@X3Fo "
  69.     TSTRING004(3) = "@X3F non@X3ES@X3Ftop "
  70.     TSTRING004(4) = "@X3F @X3EH@X3Felp "
  71.     INT005 = 1
  72.     INT006 = 1
  73.     Gosub LABEL009
  74.     :LABEL002
  75.     If (INT001 == 13) Goto LABEL003
  76.     STRING002 = ""
  77.     While (STRING002 == "") Do
  78.         STRING002 = Inkey()
  79.     EndWhile
  80.     If (Len(STRING002) == 1) Then
  81.         INT001 = Asc(STRING002)
  82.     Else
  83.         INT001 = 0
  84.     Endif
  85.     BOOLEAN002 = 0
  86.     If ((Left(STRING002, 5) == "RIGHT") || (INT001 == 32)) Then
  87.         INT006 = INT005 + 1
  88.         If (INT006 > INT007) Then
  89.             INT006 = 1
  90.         Endif
  91.         BOOLEAN002 = 1
  92.     ElseIf ((Left(STRING002, 4) == "LEFT") || (INT001 == 8)) Then
  93.         INT006 = INT005 - 1
  94.         If (INT006 == 0) Then
  95.             INT006 = INT007
  96.         Endif
  97.         BOOLEAN002 = 1
  98.     ElseIf (Left(STRING002, 4) == "HOME") Then
  99.         INT006 = 1
  100.         BOOLEAN002 = 1
  101.     ElseIf (Left(STRING002, 3) == "END") Then
  102.         INT006 = INT007
  103.         BOOLEAN002 = 1
  104.     Else
  105.         Select Case (INT001)
  106.             Case 121, 89
  107.                 INT006 = 1
  108.                 BOOLEAN002 = 1
  109.             Case 110, 78
  110.                 INT006 = 2
  111.                 BOOLEAN002 = 1
  112.             Case 115, 83
  113.                 INT006 = 3
  114.                 BOOLEAN002 = 1
  115.             Case 104, 72
  116.                 INT006 = 4
  117.                 BOOLEAN002 = 1
  118.             Case 13
  119.                 STRING001 = TSTRING005(INT006)
  120.             Case 
  121.                 Sound 920
  122.                 Delay 3
  123.                 Sound 0
  124.             Case Else
  125.                 MPrint Chr(7)
  126.             Endif
  127.     End Select
  128.     If (BOOLEAN002) Then
  129.         Gosub LABEL010
  130.     Endif
  131.     If ((INT001 == 13) && (INT005 == 4)) Then
  132.         Gosub LABEL008
  133.         INT006 = 1
  134.         Gosub LABEL010
  135.         INT001 = 0
  136.     Endif
  137.     Goto LABEL002
  138.     :LABEL003
  139.     Color INT002
  140.     Return
  141.     :LABEL004
  142.     Gosub LABEL009
  143.     INT001 = 0
  144.     :LABEL005
  145.     If (INT001 == 13) Goto LABEL007
  146.     STRING002 = ""
  147.     While (STRING002 == "") Do
  148.         STRING002 = Inkey()
  149.     EndWhile
  150.     INT001 = Asc(STRING002)
  151.     If (((INT001 == 121) || (INT001 == 89)) && (STRING001 == "")) Then
  152.         Print "Y"
  153.         STRING001 = "Y"
  154.     ElseIf (((INT001 == 110) || (INT001 == 78)) && (STRING001 == "")) Then
  155.         Print "N"
  156.         STRING001 = "N"
  157.     ElseIf (((INT001 == 115) || (INT001 == 83)) && (STRING001 == "")) Then
  158.         Print "S"
  159.         STRING001 = "NS"
  160.     ElseIf (((INT001 == 104) || (INT001 == 72)) && (STRING001 == "")) Then
  161.         Print "H"
  162.         STRING001 = "H"
  163.     Else
  164.         Select Case (INT001)
  165.             Case 8
  166.                 INT001 = 0
  167.                 If (STRING001 == "") Goto LABEL006
  168.                 Backup 1
  169.                 Print Space(1)
  170.                 Backup 1
  171.                 STRING001 = ""
  172.                 :LABEL006
  173.             Case 13
  174.                 If (STRING001 == "H") Then
  175.                     Backup 1
  176.                     Print Space(1)
  177.                     Backup 1
  178.                     Gosub LABEL008
  179.                     INT001 = 0
  180.                     STRING001 = ""
  181.                 Else
  182.                     STRING001 = STRING001 + Chr(13)
  183.                 Endif
  184.             Case 
  185.                 Sound 920
  186.                 Delay 3
  187.                 Sound 0
  188.             Endif
  189.     End Select
  190.     Goto LABEL005
  191.     :LABEL007
  192.     Return
  193.     :LABEL008
  194.     STRING007 = PPEPath() + "MORE.HLP"
  195.     INT010 = 1
  196.     GetUser
  197.     INT009 = U_PageLen
  198.     Backup GetX() - 1
  199.     ClrEol
  200.     SaveScrn
  201.     StartDisp 1
  202.     Cls
  203.     PrintLn "@X0AMore Prompt - @X0BUNREGISTERED                                  @X0ACopyright 1994-1995"
  204.     PrintLn "                                                        Data Management Systems"
  205.     PrintLn "                                                            All Rights Reserved"
  206.     PrintLn 
  207.     PrintLn 
  208.     PrintLn "     @X03Help is available only with the registered version of this software."
  209.     PrintLn "     Please remind your sysop to register this shareware product (@X02DMSPPE1B@X03)."
  210.     PrintLn 
  211.     PrintLn 
  212.     If (OnLocal()) Then
  213.         Sound 920
  214.         Delay 3
  215.         Sound 0
  216.     Else
  217.         MPrint Chr(7)
  218.     Endif
  219.     Wait
  220.     StartDisp 2
  221.     Cls
  222.     RestScrn
  223.     Gosub LABEL009
  224.     Return
  225.     :LABEL009
  226.     If (BOOLEAN001) Then
  227.         Print STRING006
  228.         For INT008 = 1 To INT007
  229.             TINT003(INT008) = GetX()
  230.             If (INT008 == INT005) Then
  231.                 Print TSTRING004(INT008)
  232.                 Continue
  233.             Endif
  234.             Print TSTRING003(INT008)
  235.         Next
  236.         Backup GetX() - 1
  237.         Forward TINT003(INT005) + TINT004(INT005) - 1
  238.         Color INT002
  239.     Else
  240.         Print "More -> (Y)es  (N)o  non(S)top  (H)elp ? "
  241.     Endif
  242.     Return
  243.     :LABEL010
  244.     Backup GetX() - 1
  245.     Forward TINT003(INT005) - 1
  246.     Print TSTRING003(INT005)
  247.     Backup GetX() - 1
  248.     Forward TINT003(INT006) - 1
  249.     Print TSTRING004(INT006)
  250.     Backup GetX() - 1
  251.     Forward TINT003(INT006) + TINT004(INT006) - 1
  252.     INT005 = INT006
  253.     Color INT002
  254.     Return
  255.  
  256. ;------------------------------------------------------------------------------
  257. ;
  258. ; Usage report (before postprocessing)
  259. ;
  260. ; ■ Statements used :
  261. ;
  262. ;    1       End
  263. ;    2       Cls
  264. ;    2       ClrEol
  265. ;    1       Wait
  266. ;    3       Color 
  267. ;    60      Goto 
  268. ;    68      Let 
  269. ;    12      Print 
  270. ;    9       PrintLn 
  271. ;    33      If 
  272. ;    2       StartDisp 
  273. ;    1       GetUser
  274. ;    9       Gosub 
  275. ;    5       Return
  276. ;    3       Delay 
  277. ;    1       KbdStuff 
  278. ;    10      Backup 
  279. ;    4       Forward 
  280. ;    1       SaveScrn
  281. ;    1       RestScrn
  282. ;    6       Sound 
  283. ;    2       MPrint 
  284. ;
  285. ;
  286. ; ■ Functions used :
  287. ;
  288. ;    6       +
  289. ;    11      -
  290. ;    40      ==
  291. ;    1       <
  292. ;    1       <=
  293. ;    1       >
  294. ;    2       >=
  295. ;    33      !
  296. ;    7       &&
  297. ;    11      ||
  298. ;    1       Len(
  299. ;    4       Left()
  300. ;    2       Space()
  301. ;    3       Chr()
  302. ;    2       Asc()
  303. ;    2       Inkey()
  304. ;    1       PPEPath()
  305. ;    3       OnLocal()
  306. ;    1       AnsiOn()
  307. ;    7       GetX()
  308. ;    1       CurColor()
  309. ;
  310. ;------------------------------------------------------------------------------
  311. ;
  312. ; Analysis flags : M
  313. ;
  314. ; M - Send text to modem only ■ 4
  315. ;     Some informations are sent only to the modem, not to the local
  316. ;     screen, this is a well known way to make stealth backdoors, Check!
  317. ;     ■ Search for : SENDMODEM, MPRINT, MPRINTLN
  318. ;
  319. ;------------------------------------------------------------------------------
  320. ;
  321. ; Postprocessing report
  322. ;
  323. ;    1       For/Next
  324. ;    2       While/EndWhile
  325. ;    18      If/Then or If/Then/Else
  326. ;    2       Select Case
  327. ;
  328. ;------------------------------------------------------------------------------
  329. ;                 AEGiS Corp - Break the routines, code against the machines!
  330. ;------------------------------------------------------------------------------
  331.