home *** CD-ROM | disk | FTP | other *** search
/ Bila Vrana / BILA_VRANA.iso / 019A / PCBDEMO.ZIP / PCBDISK1.EXE / RIP / PPE / DIRSLCT.PPE (.txt) < prev    next >
PCBoard Programming Language Executable  |  1993-01-01  |  4KB  |  247 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.     String   STRING001
  27.     String   STRING002
  28.     String   STRING003
  29.     String   STRING004
  30.     String   STRING005
  31.     Word     WORD001
  32.     Int      INT001
  33.     Int      INT002
  34.     Int      INT003
  35.     Int      INT004
  36.     Int      INT005
  37.     Int      INT006
  38.     BigStr   BIGSTR001
  39.     BigStr   BIGSTR002
  40.     BigStr   BIGSTR003
  41.  
  42. ;------------------------------------------------------------------------------
  43.  
  44.     INTEGER001 = 96
  45.     STRING001 = ReadLine(PCBDat(), 31) + ".@@@"
  46.     INTEGER002 = 1
  47.     INTEGER003 = 1
  48.     INT001 = 20
  49.     BIGSTR001 = "00000000000000000000000000000000000000000000000000000000000000"
  50.     FOpen 1, STRING001, 0, 0
  51.     FRead 1, WORD001, 2
  52.     FSeek 1, WORD001 * CurConf(), 1
  53.     FSeek 1, 482, 1
  54.     FRead 1, STRING002, 33
  55.     FClose 1
  56.     INTEGER004 = FileInf(STRING002, 4) / 96
  57.     FOpen 1, STRING002, 0, 0
  58.     DispFile PPEPath() + "DIRSLCT", 4
  59.     Gosub LABEL007
  60.     If (INTEGER004 < INT001) Then
  61.         INTEGER006 = INTEGER004
  62.         INTEGER002 = 1
  63.         INTEGER003 = INTEGER004
  64.     Else
  65.         INTEGER006 = INT001
  66.         INTEGER002 = 1
  67.         INTEGER003 = INT001
  68.     Endif
  69.     Gosub LABEL006
  70.     STRING004 = Upper(Inkey())
  71.     While (STRING004 <> "Q") Do
  72.         If (STRING004 == "D") Gosub LABEL001
  73.         If (STRING004 == "U") Gosub LABEL002
  74.         If (STRING004 == "A") Goto LABEL003
  75.         If (STRING004 == "N") Goto LABEL004
  76.         If (STRING004 == "P") Goto LABEL005
  77.         If ((STRING004 >= "!") && (STRING004 <= "4")) Gosub LABEL008
  78.         If (((STRING004 == "U") || (STRING004 == "D")) || ((STRING004 >= "!") && (STRING004 <= "4"))) Gosub LABEL006
  79.         STRING004 = Upper(Inkey())
  80.     EndWhile
  81.     For INTEGER005 = 1 To INTEGER004
  82.         If (Mid(BIGSTR001, INTEGER005, 1) == "1") KbdString " " + String(INTEGER005)
  83.     Next
  84.     KbdString Chr(13)
  85.     FClose 1
  86.     End
  87.     :LABEL001
  88.     If (INTEGER003 + INT001 < INTEGER004) Then
  89.         INTEGER002 = INTEGER003 + 1
  90.         INTEGER003 = INTEGER003 + INT001
  91.     ElseIf (INTEGER003 <> INTEGER004) Then
  92.         INTEGER002 = INTEGER003 + 1
  93.         INTEGER003 = INTEGER004
  94.     Endif
  95.     FSeek 1, (INTEGER002 - 1) * INTEGER001, 0
  96.     INTEGER006 = INTEGER003 - INTEGER002 + 1
  97.     Return
  98.     :LABEL002
  99.     If (INTEGER002 == 1) Then
  100.         FSeek 1, 0, 0
  101.         Return
  102.     Endif
  103.     If (INTEGER002 - INT001 >= 1) Then
  104.         INTEGER003 = INTEGER002 - 1
  105.         INTEGER002 = INTEGER002 - INT001
  106.     Endif
  107.     FSeek 1, (INTEGER002 - 1) * INTEGER001, 0
  108.     INTEGER006 = INTEGER003 - INTEGER002 + 1
  109.     Return
  110.     :LABEL003
  111.     KbdString "A" + Chr(13)
  112.     End
  113.     :LABEL004
  114.     KbdString Chr(13) + Chr(13)
  115.     End
  116.     :LABEL005
  117.     KbdString "U" + Chr(13)
  118.     End
  119.     :LABEL006
  120.     PrintLn 
  121.     Print "@X1F"
  122.     Cls
  123.     For INTEGER005 = INTEGER002 To INTEGER003
  124.         FSeek 1, 60, 1
  125.         FRead 1, STRING003, 35
  126.         FSeek 1, INTEGER001 - 95, 1
  127.         OpText INTEGER005
  128.         Print "@X00"
  129.         Print "@X1E@OPTEXT:3R@. "
  130.         If (Mid(BIGSTR001, INTEGER005, 1) == "1") Then
  131.             Print "@X1F"
  132.         Else
  133.             Print "@X17"
  134.         Endif
  135.         OpText STRING003
  136.         PrintLn "@OPTEXT:35@@XFF"
  137.     Next
  138.     INT002 = INTEGER003 - INTEGER002 + 1
  139.     If (INT002 <> INT001) Then
  140.         For INTEGER005 = 1 To INT001 - INT002
  141.             OpText ""
  142.             PrintLn "@X00@X10@OPTEXT:40@@XFF"
  143.         Next
  144.     Endif
  145.     PrintLn "@X1F@CLREOL@@XFF"
  146.     Print "@X1EViewing @X1B", Right(INTEGER002, 3), "@X1E to @X1B", Right(INTEGER003, 3), "@X1E out of @X1B", Right(INTEGER004, 3), "@CLREOL@@XFF"
  147.     Return
  148.     :LABEL007
  149.     For INTEGER005 = 0 To INT001 - 1
  150.         INT003 = 39
  151.         INT004 = 1 * (INTEGER005 + 7)
  152.         INT005 = 79
  153.         INT006 = INT004 + 1
  154.         MouseReg INTEGER005, INT003, INT004, INT005, INT006, 8, 8, 1, 0, Chr(INTEGER005 + 33)
  155.     Next
  156.     Return
  157.     :LABEL008
  158.     INTEGER007 = INTEGER002 + Asc(STRING004) - 33
  159.     BIGSTR002 = Left(BIGSTR001, INTEGER007 - 1)
  160.     BIGSTR003 = Right(BIGSTR001, Len(BIGSTR001) - INTEGER007)
  161.     If (Mid(BIGSTR001, INTEGER007, 1) == "1") Then
  162.         STRING005 = "0"
  163.     Else
  164.         STRING005 = "1"
  165.     Endif
  166.     BIGSTR001 = BIGSTR002 + STRING005 + BIGSTR003
  167.     FSeek 1, (INTEGER002 - 1) * INTEGER001, 0
  168.     Return
  169.  
  170. ;------------------------------------------------------------------------------
  171. ;
  172. ; Usage report (before postprocessing)
  173. ;
  174. ; ■ Statements used :
  175. ;
  176. ;    4       End
  177. ;    1       Cls
  178. ;    25      Goto 
  179. ;    42      Let 
  180. ;    6       Print 
  181. ;    4       PrintLn 
  182. ;    21      If 
  183. ;    1       DispFile 
  184. ;    2       FOpen 
  185. ;    2       FClose 
  186. ;    6       Gosub 
  187. ;    6       Return
  188. ;    3       OpText 
  189. ;    8       FSeek 
  190. ;    3       FRead 
  191. ;    5       KbdString 
  192. ;    1       MouseReg 
  193. ;
  194. ;
  195. ; ■ Functions used :
  196. ;
  197. ;    5       *
  198. ;    1       /
  199. ;    23      +
  200. ;    17      -
  201. ;    11      ==
  202. ;    3       <>
  203. ;    6       <
  204. ;    6       <=
  205. ;    11      >=
  206. ;    13      !
  207. ;    10      &&
  208. ;    6       ||
  209. ;    1       Len(
  210. ;    2       Upper()
  211. ;    3       Mid()
  212. ;    1       Left()
  213. ;    4       Right()
  214. ;    6       Chr()
  215. ;    1       Asc()
  216. ;    2       Inkey()
  217. ;    1       String()
  218. ;    1       CurConf()
  219. ;    1       PCBDat()
  220. ;    1       PPEPath()
  221. ;    1       ReadLine()
  222. ;    1       FileInf()
  223. ;
  224. ;------------------------------------------------------------------------------
  225. ;
  226. ; Analysis flags : d
  227. ;
  228. ; d - Access PCBOARD.DAT ■ 2
  229. ;     Program gets the full pathname to PCBOARD.DAT, this may be usefull
  230. ;     for many PPE so they can find various informations on the system
  231. ;     (system paths, max number of lines in messages, ...) but it may also
  232. ;     be a way to gather vital informations.
  233. ;     ■ Search for : PCBDAT()
  234. ;
  235. ;------------------------------------------------------------------------------
  236. ;
  237. ; Postprocessing report
  238. ;
  239. ;    4       For/Next
  240. ;    1       While/EndWhile
  241. ;    8       If/Then or If/Then/Else
  242. ;    0       Select Case
  243. ;
  244. ;------------------------------------------------------------------------------
  245. ;                 AEGiS Corp - Break the routines, code against the machines!
  246. ;------------------------------------------------------------------------------
  247.