home *** CD-ROM | disk | FTP | other *** search
/ Carsten's PPE Collection / Carstens_PPE_Collection_2007.zip / S / SCROLL09.ZIP / SCROLL.PPE (.txt) < prev   
PCBoard Programming Language Executable  |  1994-06-06  |  4KB  |  235 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  TINTEGER015(4)
  34.     Integer  INTEGER016
  35.     Integer  INTEGER017
  36.     Integer  INTEGER018
  37.     Integer  INTEGER019
  38.     String   STRING001
  39.     String   STRING002
  40.     String   STRING003
  41.     String   STRING004
  42.     String   STRING005
  43.     String   STRING006
  44.     String   STRING007
  45.     String   STRING008
  46.     String   STRING009
  47.     String   STRING010
  48.     String   STRING011
  49.  
  50. ;------------------------------------------------------------------------------
  51.  
  52.     STRING009 = TokenStr()
  53.     Tokenize STRING009
  54.     INTEGER009 = 1
  55.     KbdChkOff
  56.     STRING010 = "@X8F@X0F"
  57.     While (TokCount() > 0) Do
  58.         TINTEGER015(INTEGER009) = GetToken()
  59.         Inc INTEGER009
  60.     EndWhile
  61.     STRING011 = " ■ unregistred version of scroll 0.9 ■ "
  62.     INTEGER001 = TINTEGER015(1)
  63.     INTEGER016 = TINTEGER015(2)
  64.     INTEGER019 = TINTEGER015(3)
  65.     STRING005 = TINTEGER015(4)
  66.     If (STRING005 < 3) STRING005 = 3
  67.     STRING002 = ReadLine(PPEPath() + PPEName() + ".CNF", 1)
  68.     STRING003 = ReadLine(PPEPath() + PPEName() + ".CNF", 2)
  69.     STRING001 = ReadLine(PPEPath() + PPEName() + ".CNF", STRING005)
  70.     If (STRING001 == "") STRING001 = "■ SCROLL.PPE 0.9 ■ (c) by Aussie BBS the music BBS ■"
  71.     STRING008 = "(@X0E@MINLEFT@@X0B) Min. uebrig. Dein Befehl, @FIRST@?"
  72.     STRING001 = STRING001 + STRING011
  73.     INTEGER004 = Len(STRING002)
  74.     INTEGER005 = Len(STRING003)
  75.     If ((INTEGER004 + INTEGER005 < 40) && (INTEGER004 + INTEGER005 > 30)) INTEGER006 = 40
  76.     If ((INTEGER004 + INTEGER005 < 30) && (INTEGER004 + INTEGER005 > 20)) INTEGER006 = 50
  77.     If ((INTEGER004 + INTEGER005 < 20) && (INTEGER004 + INTEGER005 > 0)) INTEGER006 = 60
  78.     If (INTEGER004 + INTEGER005 > 41) Goto LABEL002
  79.     INTEGER014 = Len(STRING001)
  80.     While (INTEGER014 < INTEGER006 + 1) Do
  81.         INTEGER014 = INTEGER014 + " " + INTEGER014
  82.     EndWhile
  83.     INTEGER002 = (80 - INTEGER006 - INTEGER004 + INTEGER005) / 2
  84.     INTEGER007 = INTEGER002 + INTEGER004 + 1
  85.     INTEGER003 = INTEGER007 + INTEGER006
  86.     INTEGER008 = INTEGER003 - 2
  87.     AnsiPos 1, INTEGER016
  88.     DispText INTEGER019, 4
  89.     Print " ? "
  90.     INTEGER017 = GetX()
  91.     INTEGER018 = GetY()
  92.     Print STRING010
  93.     AnsiPos INTEGER002, INTEGER001
  94.     Print "@X0C", STRING002
  95.     AnsiPos INTEGER003, INTEGER001
  96.     Print "@X0C", STRING003
  97.     INTEGER009 = 0
  98.     INTEGER012 = 1
  99.     INTEGER010 = INTEGER008
  100.     While (INTEGER010 >= INTEGER007) Do
  101.         AnsiPos INTEGER010, INTEGER001
  102.         Print "@X0F"
  103.         Print Mid(STRING001, INTEGER009, INTEGER012)
  104.         Inc INTEGER012
  105.         Dec INTEGER010
  106.         Delay 1
  107.         Gosub LABEL001
  108.     EndWhile
  109.     INTEGER009 = 2
  110.     INTEGER010 = INTEGER006
  111.     INTEGER011 = 1
  112.     STRING004 = Inkey()
  113.     While (STRING004 <> Chr(13)) Do
  114.         If (INTEGER009 + INTEGER012 <= INTEGER014 + 1) Then
  115.             INTEGER013 = 1
  116.             INTEGER011 = 1
  117.             AnsiPos INTEGER007, INTEGER001
  118.             Print Mid(STRING001, INTEGER009, INTEGER012)
  119.             Inc INTEGER009
  120.         Else
  121.             AnsiPos INTEGER007, INTEGER001
  122.             Print Mid(STRING001, INTEGER009 + 1, INTEGER012 - INTEGER011)
  123.             Inc INTEGER011
  124.             If (INTEGER009 < INTEGER014) Then
  125.                 Inc INTEGER009
  126.             Else
  127.                 INTEGER009 = 1
  128.             Endif
  129.             Print Mid(STRING001, 0, INTEGER013)
  130.             Inc INTEGER013
  131.         Endif
  132.         Delay 1
  133.         Gosub LABEL001
  134.     EndWhile
  135.     End
  136.     :LABEL001
  137.     Delay 2
  138.     STRING004 = Inkey()
  139.     If (STRING004 == "") Return
  140.     AnsiPos INTEGER017, INTEGER018
  141.     STRING006 = Len(STRING007)
  142.     If (STRING004 == Chr(8)) Then
  143.         ClrEol
  144.         STRING007 = Mid(STRING007, 1, STRING006 - 1)
  145.     Endif
  146.     If (STRING004 <> Chr(8)) Then
  147.         STRING007 = STRING007 + STRING004
  148.     Endif
  149.     If ((STRING007 == "") && (STRING004 == Chr(13))) Return
  150.     Print STRING007 + STRING010
  151.     If (STRING004 == Chr(13)) Then
  152.         KbdStuff STRING007
  153.         End
  154.     Endif
  155.     Return
  156.     :LABEL002
  157.     Cls
  158.     PrintLn "The length of the start and the ending block is bigger"
  159.     PrintLn "than 41. Can't execute PPE !"
  160.     PrintLn "Please read the File SCROLLER.DOC"
  161.     STRING004 = Inkey()
  162.     While (STRING004 <> Chr(13)) Do
  163.     EndWhile
  164.     Cls
  165.     End
  166.  
  167. ;------------------------------------------------------------------------------
  168. ;
  169. ; Usage report (before postprocessing)
  170. ;
  171. ; ■ Statements used :
  172. ;
  173. ;    3       End
  174. ;    2       Cls
  175. ;    1       ClrEol
  176. ;    18      Goto 
  177. ;    44      Let 
  178. ;    10      Print 
  179. ;    3       PrintLn 
  180. ;    18      If 
  181. ;    2       Gosub 
  182. ;    3       Return
  183. ;    3       Delay 
  184. ;    6       Inc 
  185. ;    1       Dec 
  186. ;    1       Tokenize 
  187. ;    1       DispText 
  188. ;    1       KbdStuff 
  189. ;    1       KbdChkOff
  190. ;    7       AnsiPos 
  191. ;
  192. ;
  193. ; ■ Functions used :
  194. ;
  195. ;    1       /
  196. ;    26      +
  197. ;    5       -
  198. ;    6       ==
  199. ;    3       <>
  200. ;    6       <
  201. ;    1       <=
  202. ;    5       >
  203. ;    1       >=
  204. ;    10      !
  205. ;    4       &&
  206. ;    4       Len(
  207. ;    5       Mid()
  208. ;    6       Chr()
  209. ;    3       Inkey()
  210. ;    3       PPEPath()
  211. ;    3       ReadLine()
  212. ;    1       GetToken()
  213. ;    1       TokenStr()
  214. ;    1       GetX()
  215. ;    1       GetY()
  216. ;    3       PPEName()
  217. ;    1       TokCount()
  218. ;
  219. ;------------------------------------------------------------------------------
  220. ;
  221. ; Analysis flags : No flag
  222. ;
  223. ;------------------------------------------------------------------------------
  224. ;
  225. ; Postprocessing report
  226. ;
  227. ;    0       For/Next
  228. ;    5       While/EndWhile
  229. ;    5       If/Then or If/Then/Else
  230. ;    0       Select Case
  231. ;
  232. ;------------------------------------------------------------------------------
  233. ;                 AEGiS Corp - Break the routines, code against the machines!
  234. ;------------------------------------------------------------------------------
  235.