home *** CD-ROM | disk | FTP | other *** search
/ ftp.wwiv.com / ftp.wwiv.com.zip / ftp.wwiv.com / pub / BBS / J_CONFX.ZIP / J_CONF3.PPE (.txt) < prev    next >
PCBoard Programming Language Executable  |  1995-01-04  |  5KB  |  298 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 3.O1 (Encryption type I) - 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.     String   STRING006
  32.     String   STRING007
  33.     String   STRING008
  34.     String   TSTRING009(3)
  35.  
  36. ;------------------------------------------------------------------------------
  37.  
  38.     TSTRING009(0) = "-"
  39.     TSTRING009(1) = "\"
  40.     TSTRING009(2) = "|"
  41.     TSTRING009(3) = "/"
  42.     If (TokCount() > 0) Then
  43.         STRING004 = ""
  44.         While ((TokCount() > 0)) STRING004 = STRING004 + GetToken() + " "
  45.         Tokenize STRING004
  46.         STRING004 = TokenStr()
  47.         Tokenize STRING004
  48.         If (("BUILD" == Upper(GetToken())) && ("MENU" == Upper(GetToken()))) Then
  49.             Gosub LABEL001
  50.         Else
  51.             STRING004 = "J;" + STRING004
  52.             KbdStuff STRING004
  53.         Endif
  54.     Else
  55.         STRING008 = "J"
  56.         InputStr "List Conferences you can (J)oin or (A)ll", STRING008, 14, 1, "JA", 8 + 64 + 4 + 2
  57.         If (STRING008 == "A") Then
  58.             STRING008 = " "
  59.             Gosub LABEL002
  60.         Else
  61.             STRING008 = " "
  62.             Gosub LABEL003
  63.         Endif
  64.     Endif
  65.     DefColor
  66.     Cls
  67.     End
  68.     :LABEL001
  69.     INTEGER001 = ReadLine(PCBDat(), 108)
  70.     STRING001 = ReadLine(PCBDat(), 31)
  71.     STRING002 = FileInf(STRING001, 6) + ":" + FileInf(STRING001, 7) + "CMNU"
  72.     FCreate 1, STRING002, 2, 0
  73.     For INTEGER004 = 0 To INTEGER001
  74.         STRING004 = ReadLine(STRING001, 33 * INTEGER004 + 1)
  75.         STRING005 = ReadLine(STRING001, 33 * INTEGER004 + 20)
  76.         If (STRING005 == "-1") STRING005 = "Public"
  77.         If (STRING005 == "0") STRING005 = "Private"
  78.         STRING006 = ReadLine(STRING001, 33 * INTEGER004 + 23)
  79.         If (Len(Trim(STRING004, " ")) > 0) Then
  80.             STRING007 = Right("   " + I2S(INTEGER004, 10), 3)
  81.             If (STRING005 == "Private") Then
  82.                 FPutLn 1, " ", STRING007, "  ", Mid(STRING004 + Space(62), 1, 62), STRING005
  83.                 Continue
  84.             Endif
  85.             FPutLn 1, " ", STRING007, "  ", Mid(STRING004 + Space(62), 1, 62), STRING006
  86.         Endif
  87.     Next
  88.     FClose 1
  89.     Return
  90.     :LABEL002
  91.     Gosub LABEL006
  92.     STRING001 = ReadLine(PCBDat(), 31)
  93.     STRING002 = FileInf(STRING001, 6) + ":" + FileInf(STRING001, 7) + "CMNU"
  94.     If (!Exist(STRING002)) Gosub LABEL001
  95.     FOpen 1, STRING002, 0, 0
  96.     FGet 1, STRING004
  97.     While (!Ferr(1) && !Abort()) Do
  98.         Color INTEGER002
  99.         Cls
  100.         PrintLn "  @INCONF@"
  101.         PrintLn " ###  Conference Name/Descripton                                    Access"
  102.         PrintLn " ---  ------------------------------------------------------------  -------"
  103.         For INTEGER004 = 1 To 12
  104.             If (Ferr(1)) Break
  105.             PrintLn STRING004
  106.             If (INTEGER004 == 4) PrintLn 
  107.             If (INTEGER004 == 8) PrintLn 
  108.             If (INTEGER004 < 12) FGet 1, STRING004
  109.         Next
  110.         PrintLn 
  111.         If ((INTEGER004 == 13) && !Ferr(1)) Then
  112.             InputStr "(@TIMELEFT@ min left), Conference (#) to join or Enter for More", STRING008, 14, 5, "1234567890N", 8 + 32
  113.         Else
  114.             InputStr "(@TIMELEFT@ min left), Conference (#) to join or Enter for none", STRING008, 14, 5, "1234567890N", 8 + 32
  115.         Endif
  116.         If (Len(Trim(STRING008, " ")) > 0) Then
  117.             If (STRING008 == "N") Break
  118.             STRING008 = "J;" + STRING008
  119.             KbdStuff STRING008
  120.             Break
  121.         Endif
  122.         FGet 1, STRING004
  123.     EndWhile
  124.     Return
  125.     :LABEL003
  126.     INTEGER001 = ReadLine(PCBDat(), 108)
  127.     STRING001 = ReadLine(PCBDat(), 31)
  128.     Gosub LABEL006
  129.     GetUser
  130.     INTEGER003 = U_RecNum(U_Name())
  131.     INTEGER005 = 1
  132.     For INTEGER004 = 0 To INTEGER001
  133.         If (INTEGER005 == 1) Then
  134.             Color INTEGER002
  135.             Cls
  136.             PrintLn "  @INCONF@"
  137.             PrintLn " ###  Conference Name/Descripton                                    Access"
  138.             PrintLn " ---  ------------------------------------------------------------  -------"
  139.         Endif
  140.         Gosub LABEL007
  141.         STRING004 = ReadLine(STRING001, 33 * INTEGER004 + 1)
  142.         If (Len(Trim(STRING004, " ")) > 0) Then
  143.             STRING005 = ReadLine(STRING001, 33 * INTEGER004 + 20)
  144.             STRING006 = ReadLine(STRING001, 33 * INTEGER004 + 23)
  145.             If (U_InConf(INTEGER003, INTEGER004) || ((U_Sec >= S2I(STRING006, 10)) && (STRING005 == "-1"))) Then
  146.                 INTEGER005 = INTEGER005 + 1
  147.                 If (STRING005 == "-1") STRING005 = "Public"
  148.                 If (STRING005 == "0") STRING005 = "Private"
  149.                 STRING007 = Right("   " + I2S(INTEGER004, 10), 3)
  150.                 Backup 2
  151.                 If (STRING005 == "Private") Then
  152.                     PrintLn " ", STRING007, "  ", Mid(STRING004 + Space(62), 1, 62), STRING005
  153.                     Goto LABEL004
  154.                 Endif
  155.                 PrintLn " ", STRING007, "  ", Mid(STRING004 + Space(62), 1, 62), STRING006
  156.                 :LABEL004
  157.                 If (INTEGER005 == 4) PrintLn 
  158.                 If (INTEGER005 == 8) PrintLn 
  159.             Endif
  160.         Endif
  161.         If ((INTEGER005 == 13) || (INTEGER004 == INTEGER001)) Then
  162.             Backup 2
  163.             If ((INTEGER005 == 13) && (INTEGER004 <> INTEGER001)) Then
  164.                 PrintLn " "
  165.                 InputStr "(@TIMELEFT@ min left), Conference (#) to join or Enter for More", STRING008, 14, 5, "1234567890N", 8 + 32
  166.                 Goto LABEL005
  167.             Endif
  168.             If (INTEGER004 == INTEGER001) Then
  169.                 PrintLn " "
  170.                 InputStr "(@TIMELEFT@ min left), Conference (#) to join or Enter for none", STRING008, 14, 5, "1234567890N", 8 + 32
  171.             Endif
  172.             :LABEL005
  173.             If (Len(Trim(STRING008, " ")) > 0) Then
  174.                 If (STRING008 == "N") Break
  175.                 STRING008 = "J;" + STRING008
  176.                 KbdStuff STRING008
  177.                 Break
  178.             Endif
  179.             INTEGER005 = 1
  180.         Endif
  181.     Next
  182.     Return
  183.     :LABEL006
  184.     If (CurColor() < 10) Then
  185.         STRING003 = "0F"
  186.     Else
  187.         STRING003 = I2S(CurColor(), 16)
  188.         INTEGER004 = S2I(Left(STRING003, 1), 16)
  189.         If (7 < INTEGER004) INTEGER004 = INTEGER004 - 8
  190.         If (INTEGER004 == 1) Then
  191.             STRING003 = I2S(INTEGER004, 16) + "F"
  192.         Else
  193.             STRING003 = I2S(INTEGER004, 16) + "8"
  194.         Endif
  195.     Endif
  196.     INTEGER002 = S2I(STRING003, 16)
  197.     Return
  198.     :LABEL007
  199.     Backup 2
  200.     Color INTEGER002
  201.     Print TSTRING009(INTEGER006 % 4), " "
  202.     Inc INTEGER006
  203.     INTEGER007 = 1
  204.     Inc INTEGER007
  205.     Return
  206.  
  207. ;------------------------------------------------------------------------------
  208. ;
  209. ; Usage report (before postprocessing)
  210. ;
  211. ; ■ Statements used :
  212. ;
  213. ;    1       End
  214. ;    3       Cls
  215. ;    3       Color 
  216. ;    40      Goto 
  217. ;    50      Let 
  218. ;    1       Print 
  219. ;    16      PrintLn 
  220. ;    36      If 
  221. ;    1       FCreate 
  222. ;    1       FOpen 
  223. ;    1       FClose 
  224. ;    3       FGet 
  225. ;    2       FPutLn 
  226. ;    1       GetUser
  227. ;    1       DefColor
  228. ;    5       InputStr 
  229. ;    7       Gosub 
  230. ;    5       Return
  231. ;    2       Inc 
  232. ;    2       Tokenize 
  233. ;    3       KbdStuff 
  234. ;    3       Backup 
  235. ;
  236. ;
  237. ; ■ Functions used :
  238. ;
  239. ;    6       *
  240. ;    1       %
  241. ;    36      +
  242. ;    1       -
  243. ;    23      ==
  244. ;    1       <>
  245. ;    6       <
  246. ;    3       <=
  247. ;    6       >
  248. ;    7       >=
  249. ;    25      !
  250. ;    11      &&
  251. ;    5       ||
  252. ;    4       Len(
  253. ;    2       Upper()
  254. ;    4       Mid()
  255. ;    1       Left()
  256. ;    2       Right()
  257. ;    4       Space()
  258. ;    3       Ferr()
  259. ;    1       Abort()
  260. ;    4       Trim()
  261. ;    1       U_Name()
  262. ;    5       PCBDat()
  263. ;    11      ReadLine()
  264. ;    3       GetToken()
  265. ;    1       Exist()
  266. ;    5       I2S()
  267. ;    3       S2I()
  268. ;    1       TokenStr()
  269. ;    4       FileInf()
  270. ;    2       CurColor()
  271. ;    2       TokCount()
  272. ;    1       U_RecNum()
  273. ;    1       U_InConf()
  274. ;
  275. ;------------------------------------------------------------------------------
  276. ;
  277. ; Analysis flags : d
  278. ;
  279. ; d - Access PCBOARD.DAT ■ 2
  280. ;     Program gets the full pathname to PCBOARD.DAT, this may be usefull
  281. ;     for many PPE so they can find various informations on the system
  282. ;     (system paths, max number of lines in messages, ...) but it may also
  283. ;     be a way to gather vital informations.
  284. ;     ■ Search for : PCBDAT()
  285. ;
  286. ;------------------------------------------------------------------------------
  287. ;
  288. ; Postprocessing report
  289. ;
  290. ;    3       For/Next
  291. ;    1       While/EndWhile
  292. ;    17      If/Then or If/Then/Else
  293. ;    0       Select Case
  294. ;
  295. ;------------------------------------------------------------------------------
  296. ;                 AEGiS Corp - Break the routines, code against the machines!
  297. ;------------------------------------------------------------------------------
  298.