home *** CD-ROM | disk | FTP | other *** search
/ Carsten's PPE Collection / Carstens_PPE_Collection_2007.zip / T / THTJN13.ZIP / THT-JOIN.PPE (.txt) < prev   
PCBoard Programming Language Executable  |  1994-04-21  |  4KB  |  292 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.     String   TSTRING001(100)
  29.     String   TSTRING002(100)
  30.     String   STRING003
  31.     String   STRING004
  32.     String   STRING005
  33.     String   STRING006
  34.     String   STRING007
  35.     String   STRING008
  36.     String   STRING009
  37.     String   STRING010
  38.     String   STRING011
  39.     String   STRING012
  40.     String   STRING013
  41.     String   STRING014
  42.     String   STRING015
  43.     String   STRING016
  44.     String   STRING017
  45.     String   STRING018
  46.     String   STRING019
  47.     String   STRING020
  48.     String   STRING021
  49.     String   STRING022
  50.     String   STRING023
  51.     String   STRING024
  52.     String   STRING025
  53.     String   STRING026
  54.  
  55. ;------------------------------------------------------------------------------
  56.  
  57.     STRING020 = TokenStr()
  58.     Tokenize STRING020
  59.     If (TokCount() > 0) Then
  60.         KbdStuff "J;" + STRING020
  61.         Stop
  62.     Endif
  63.     FOpen 1, PPEPath() + PPEName() + ".cnf", 0, 0
  64.     FGet 1, INTEGER002
  65.     FGet 1, INTEGER006
  66.     FGet 1, INTEGER007
  67.     FGet 1, STRING021
  68.     FGet 1, STRING022
  69.     FGet 1, STRING013
  70.     FGet 1, STRING014
  71.     FGet 1, STRING015
  72.     FGet 1, STRING016
  73.     FGet 1, STRING017
  74.     FGet 1, INTEGER008
  75.     FGet 1, STRING023
  76.     FGet 1, STRING024
  77.     FGet 1, STRING025
  78.     FGet 1, STRING026
  79.     FClose 1
  80.     STRING019 = ReadLine(PCBDat(), 31) + ".@@@"
  81.     FOpen 1, STRING019, 0, 0
  82.     FSeek 1, 2, 1
  83.     FRead 1, TSTRING001(0), 13
  84.     FSeek 1, 1, 1
  85.     FSeek 1, 7, 1
  86.     INTEGER009 = 1
  87.     STRING009 = 0
  88.     STRING010 = 0
  89.     STRING011 = 0
  90.     FOpen 2, PPEPath() + PPEName() + ".dat", 0, 0
  91.     FGet 2, STRING006
  92.     Tokenize STRING006
  93.     GetToken STRING007
  94.     GetToken STRING008
  95.     GetToken STRING018
  96.     StartDisp 1
  97.     If (Exist(PPEPath() + PPEName() + ".hdr")) DispFile PPEPath() + PPEName() + ".hdr", 0
  98.     If (!Exist(PPEPath() + PPEName() + ".hdr")) Cls
  99.     INTEGER001 = GetY() + 1
  100.     INTEGER004 = INTEGER001
  101.     If (Exist(PPEPath() + PPEName() + ".dsp")) DispFile PPEPath() + PPEName() + ".dsp", 0
  102.     INTEGER003 = GetY()
  103.     If (!Exist(PPEPath() + PPEName() + ".dsp")) INTEGER003 = INTEGER008
  104.     AnsiPos 32, INTEGER003
  105.     Print Chr(64) + Chr(88) + Chr(48) + Chr(49) + " " + I2S(29, 36) + I2S(17, 36) + I2S(29, 36) + "-" + I2S(19, 36) + "oin" + Chr(64) + Chr(88) + Chr(48) + Chr(56) + " v" + Chr(49) + "." + Chr(51) + Chr(48)
  106.     AnsiPos INTEGER002, INTEGER001
  107.     If (STRING009 == STRING007) Then
  108.         TSTRING002(STRING011) = TSTRING001(STRING011)
  109.         TSTRING001(STRING011) = STRING008
  110.         Goto LABEL001
  111.     Endif
  112.     :LABEL001
  113.     Print STRING013 + STRING023 + STRING014 + STRING010 + STRING013 + STRING024 + " " + STRING015 + TSTRING001(STRING011)
  114.     AnsiPos INTEGER002 + 13 + 4, INTEGER001
  115.     Print STRING016 + STRING025 + "   " + STRING016 + STRING026
  116.     If (STRING018 == "F") Then
  117.         AnsiPos INTEGER002 + 13 + 7, INTEGER001
  118.         Print STRING017 + STRING018
  119.     Endif
  120.     STRING011 = 1
  121.     :LABEL002
  122.     If (Ferr(1)) Goto LABEL005
  123.     FSeek 1, 527, 1
  124.     FRead 1, TSTRING001(STRING011), 13
  125.     If (Ferr(1)) Goto LABEL005
  126.     FSeek 1, 1, 1
  127.     FRead 1, STRING004, 1
  128.     If (STRING004 == Chr(1)) ConfFlag INTEGER009, 1 + 4 + 2
  129.     TSTRING002(STRING011) = TSTRING001(STRING011)
  130.     Inc STRING009
  131.     Inc INTEGER001
  132.     Inc STRING010
  133.     Inc INTEGER009
  134.     If (((INTEGER001 >= INTEGER003 - 1) && (INTEGER002 == INTEGER006)) && (STRING022 == YesChar())) Then
  135.         INTEGER002 = INTEGER007
  136.         INTEGER001 = INTEGER004
  137.     Endif
  138.     If ((INTEGER001 >= INTEGER003 - 1) && (STRING021 == YesChar())) Then
  139.         INTEGER002 = INTEGER006
  140.         INTEGER001 = INTEGER004
  141.     Endif
  142.     Frewind 2
  143.     :LABEL003
  144.     If (Ferr(2)) Goto LABEL004
  145.     FGet 2, STRING006
  146.     If (Ferr(2)) Goto LABEL004
  147.     Tokenize STRING006
  148.     GetToken STRING007
  149.     GetToken STRING008
  150.     GetToken STRING018
  151.     If (STRING009 == STRING007) Goto LABEL004
  152.     Goto LABEL003
  153.     :LABEL004
  154.     If ((STRING009 == STRING007) && (ConfReg(STRING009) == 1)) Then
  155.         TSTRING002(STRING011) = TSTRING001(STRING011)
  156.         TSTRING001(STRING011) = STRING008
  157.         AnsiPos INTEGER002, INTEGER001
  158.         Print STRING013 + STRING023 + STRING014 + STRING010 + STRING013 + STRING024 + " " + STRING015 + TSTRING001(STRING011)
  159.     ElseIf (ConfReg(STRING009) == 1) Then
  160.         AnsiPos INTEGER002, INTEGER001
  161.         Print STRING013 + STRING023 + STRING014 + STRING010 + STRING013 + STRING024 + " " + STRING015 + TSTRING001(STRING011)
  162.     Else
  163.         Dec INTEGER001
  164.         Dec STRING010
  165.     Endif
  166.     FSeek 1, -1, 1
  167.     FRead 1, STRING004, 1
  168.     If (ConfReg(STRING009) == 1) Then
  169.         AnsiPos INTEGER002 + 13 + 4, INTEGER001
  170.         Print STRING016 + STRING025 + "   " + STRING016 + STRING026
  171.     Endif
  172.     If ((STRING004 <> Chr(1)) && (ConfReg(STRING009) == 1)) Then
  173.         AnsiPos INTEGER002 + 13 + 5, INTEGER001
  174.         Print STRING017 + "P"
  175.     Endif
  176.     FSeek 1, 4, 1
  177.     FRead 1, STRING005, 1
  178.     If ((STRING005 == Chr(1)) && (ConfReg(STRING009) == 1)) Then
  179.         AnsiPos INTEGER002 + 13 + 6, INTEGER001
  180.         Print STRING017 + "E"
  181.     Endif
  182.     FSeek 1, 0, 1
  183.     FRead 1, STRING003, 1
  184.     If (ConfReg(STRING009) == 1) Inc STRING011
  185.     If ((STRING018 == "F") && (ConfReg(STRING009) == 1)) Then
  186.         AnsiPos INTEGER002 + 13 + 7, INTEGER001
  187.         Print STRING017 + STRING018
  188.     Endif
  189.     Goto LABEL002
  190.     :LABEL005
  191.     FClose 1
  192.     FClose 2
  193.     INTEGER005 = STRING010
  194.     :LABEL006
  195.     AnsiPos 1, INTEGER003 + 1
  196.     STRING012 = ""
  197.     PromptStr 64, STRING012, 2, "0123456789", 0 + 32
  198.     If (STRING012 == "") Then
  199.         Newline
  200.         Stop
  201.     Endif
  202.     If (STRING012 > INTEGER005) Then
  203.         Goto LABEL006
  204.     Endif
  205.     Newline
  206.     KbdStuff "J;" + TSTRING002(STRING012)
  207.  
  208. ;------------------------------------------------------------------------------
  209. ;
  210. ; Usage report (before postprocessing)
  211. ;
  212. ; ■ Statements used :
  213. ;
  214. ;    1       Cls
  215. ;    24      Goto 
  216. ;    22      Let 
  217. ;    10      Print 
  218. ;    24      If 
  219. ;    1       ConfFlag 
  220. ;    2       DispFile 
  221. ;    3       FOpen 
  222. ;    3       FClose 
  223. ;    17      FGet 
  224. ;    1       StartDisp 
  225. ;    1       PromptStr 
  226. ;    5       Inc 
  227. ;    2       Dec 
  228. ;    2       Newline
  229. ;    3       Tokenize 
  230. ;    6       GetToken 
  231. ;    2       Stop
  232. ;    2       KbdStuff 
  233. ;    11      AnsiPos 
  234. ;    1       Frewind 
  235. ;    8       FSeek 
  236. ;    6       FRead 
  237. ;
  238. ;
  239. ; ■ Functions used :
  240. ;
  241. ;    1       -
  242. ;    91      +
  243. ;    2       -
  244. ;    18      ==
  245. ;    1       <>
  246. ;    2       >
  247. ;    2       >=
  248. ;    17      !
  249. ;    7       &&
  250. ;    4       Ferr()
  251. ;    14      Chr()
  252. ;    2       YesChar()
  253. ;    1       PCBDat()
  254. ;    8       PPEPath()
  255. ;    1       ReadLine()
  256. ;    4       Exist()
  257. ;    4       I2S()
  258. ;    1       TokenStr()
  259. ;    2       GetY()
  260. ;    8       PPEName()
  261. ;    1       TokCount()
  262. ;    7       ConfReg()
  263. ;
  264. ;------------------------------------------------------------------------------
  265. ;
  266. ; Analysis flags : Fd
  267. ;
  268. ; F - Change conference flags status ■ 2
  269. ;     This may be normal for a SELECT replacement but it may also be
  270. ;     a way to get access to conferences a user is not allowed to.
  271. ;     ■ Search for : CONFFLAG, CONFUNFLAG
  272. ;
  273. ; d - Access PCBOARD.DAT ■ 2
  274. ;     Program gets the full pathname to PCBOARD.DAT, this may be usefull
  275. ;     for many PPE so they can find various informations on the system
  276. ;     (system paths, max number of lines in messages, ...) but it may also
  277. ;     be a way to gather vital informations.
  278. ;     ■ Search for : PCBDAT()
  279. ;
  280. ;------------------------------------------------------------------------------
  281. ;
  282. ; Postprocessing report
  283. ;
  284. ;    0       For/Next
  285. ;    0       While/EndWhile
  286. ;    13      If/Then or If/Then/Else
  287. ;    0       Select Case
  288. ;
  289. ;------------------------------------------------------------------------------
  290. ;                 AEGiS Corp - Break the routines, code against the machines!
  291. ;------------------------------------------------------------------------------
  292.