home *** CD-ROM | disk | FTP | other *** search
/ ftp.wwiv.com / ftp.wwiv.com.zip / ftp.wwiv.com / pub / BBS / AGSJN10.ZIP / AGSJOIN.PPE (.txt) < prev    next >
PCBoard Programming Language Executable  |  1994-12-28  |  4KB  |  307 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.     Integer  INTEGER001
  21.     Integer  INTEGER002
  22.     Integer  INTEGER003
  23.     Integer  INTEGER004
  24.     Integer  TINTEGER005(18)
  25.     Integer  INTEGER006
  26.     Integer  INTEGER007
  27.     String   STRING001
  28.     String   STRING002
  29.     String   STRING003
  30.     String   STRING004
  31.     String   STRING005
  32.     String   STRING006
  33.     String   STRING007
  34.     String   STRING008
  35.     String   STRING009
  36.     String   STRING010
  37.     String   STRING011
  38.     String   STRING012
  39.     String   STRING013
  40.     String   STRING014
  41.     String   STRING015
  42.     String   STRING016
  43.     String   STRING017
  44.     String   STRING018
  45.     String   STRING019
  46.     String   STRING020
  47.     Byte     BYTE001
  48.     Byte     BYTE002
  49.  
  50. ;------------------------------------------------------------------------------
  51.  
  52.     GetUser
  53.     STRING019 = GetToken()
  54.     If (STRING019 == "") Goto LABEL001
  55.     KbdStuff STRING019 + Chr(13)
  56.     End
  57.     :LABEL001
  58.     STRING007 = PPEPath() + "AGSJOIN.CFG"
  59.     STRING006 = ReadLine(STRING007, 1)
  60.     STRING008 = ReadLine(STRING007, 2)
  61.     STRING010 = ReadLine(STRING007, 3)
  62.     STRING009 = ReadLine(STRING007, 4)
  63.     STRING011 = ReadLine(STRING007, 5)
  64.     STRING012 = ReadLine(STRING007, 6)
  65.     STRING013 = ReadLine(STRING007, 7)
  66.     STRING014 = ReadLine(STRING007, 8)
  67.     STRING015 = ReadLine(STRING007, 9)
  68.     STRING016 = ReadLine(STRING007, 10)
  69.     STRING017 = ReadLine(STRING007, 11)
  70.     STRING018 = ReadLine(STRING007, 12)
  71.     StartDisp 1
  72.     Cls
  73.     DispFile PPEPath() + "AGSJOIN", 1 + 4 + 2
  74.     STRING001 = ReadLine(PCBDat(), 31)
  75.     INTEGER001 = S2I(ReadLine(PCBDat(), 108), 10)
  76.     STRING002 = STRING001 + ".@@@"
  77.     FOpen 5, STRING002, 0, 0
  78.     INTEGER003 = 0
  79.     INTEGER006 = 1
  80.     :LABEL002
  81.     Gosub LABEL007
  82.     If (INTEGER004 < 18) Then
  83.         While (INTEGER004 < 18) Do
  84.             Inc INTEGER004
  85.             TINTEGER005(INTEGER004) = -1
  86.             If (INTEGER006 == 1) Then
  87.                 AnsiPos 5, INTEGER004 + 2
  88.                 Goto LABEL003
  89.             Endif
  90.             AnsiPos 5, 20 - INTEGER004
  91.             :LABEL003
  92.             Print "@X0F", Space(73)
  93.         EndWhile
  94.     Endif
  95.     AnsiPos 6, 1
  96.     Print STRING005
  97.     If (INTEGER006 == 1) Then
  98.         INTEGER007 = 1
  99.     Else
  100.         INTEGER007 = 18
  101.     Endif
  102.     If (INTEGER002 > INTEGER001) BOOLEAN001 = 1
  103.     Gosub LABEL011
  104.     :LABEL004
  105.     STRING004 = Inkey()
  106.     If (STRING004 == "") Goto LABEL004
  107.     If (STRING004 == Chr(27)) Goto LABEL013
  108.     If (STRING004 == Chr(13)) Goto LABEL006
  109.     If ((STRING004 == "PGDN") || (STRING004 == "3")) Then
  110.         If (BOOLEAN001) Goto LABEL005
  111.         INTEGER003 = TINTEGER005(18)
  112.         INTEGER006 = 1
  113.         Gosub LABEL012
  114.         Goto LABEL002
  115.     Endif
  116.     :LABEL005
  117.     If ((STRING004 == "PGUP") || (STRING004 == "9")) Then
  118.         If (TINTEGER005(1) <> 0) Then
  119.             INTEGER003 = TINTEGER005(1)
  120.             If (INTEGER003 < 0) INTEGER003 = 0
  121.             BOOLEAN001 = 0
  122.             INTEGER006 = -1
  123.             Gosub LABEL012
  124.             Goto LABEL002
  125.         Endif
  126.     Endif
  127.     If ((STRING004 == "DOWN") || (STRING004 == "2")) Then
  128.         If ((INTEGER007 == 18) && !BOOLEAN001) Then
  129.             INTEGER003 = TINTEGER005(18)
  130.             INTEGER006 = 1
  131.             Gosub LABEL012
  132.             Goto LABEL002
  133.         Endif
  134.         If (INTEGER007 == 18) Goto LABEL004
  135.         If (TINTEGER005(INTEGER007 + 1) == -1) Goto LABEL004
  136.         Gosub LABEL012
  137.         Inc INTEGER007
  138.         Gosub LABEL011
  139.         Goto LABEL004
  140.     Endif
  141.     If ((STRING004 == "UP") || (STRING004 == "8")) Then
  142.         If ((INTEGER007 == 1) && (TINTEGER005(1) <> 0)) Then
  143.             INTEGER003 = TINTEGER005(1)
  144.             If (INTEGER003 < 0) INTEGER003 = 0
  145.             BOOLEAN001 = 0
  146.             INTEGER006 = -1
  147.             Gosub LABEL012
  148.             Goto LABEL002
  149.         Endif
  150.         If (INTEGER007 == 1) Goto LABEL004
  151.         Gosub LABEL012
  152.         Dec INTEGER007
  153.         Gosub LABEL011
  154.         Goto LABEL004
  155.     Endif
  156.     Goto LABEL004
  157.     :LABEL006
  158.     KbdStuff String(TINTEGER005(INTEGER007)) + Chr(13)
  159.     End
  160.     :LABEL007
  161.     STRING005 = ScrText(4, 1, Len(StripAtx(STRING018)), 1)
  162.     AnsiPos 6, 1
  163.     Print STRING008, STRING018
  164.     INTEGER002 = INTEGER003
  165.     INTEGER004 = 0
  166.     While ((INTEGER002 <= INTEGER001) && (INTEGER004 < 18)) Do
  167.         FSeek 5, INTEGER002 * 548 + 2, 0
  168.         FRead 5, STRING003, 13
  169.         FSeek 5, 1, 1
  170.         FRead 5, BYTE001, 1
  171.         FSeek 5, 5, 1
  172.         FRead 5, BYTE002, 1
  173.         If (STRING003 <> "") Then
  174.             If ((!BYTE001 && ConfReg(INTEGER002)) || (BYTE001 && (BYTE002 <= U_Sec))) Then
  175.                 STRING020 = ReadLine(PPEPath() + "DESCRIPT.CNF", INTEGER002 + 1)
  176.                 Inc INTEGER004
  177.                 If (INTEGER006 == 1) Then
  178.                     TINTEGER005(INTEGER004) = INTEGER002
  179.                     Goto LABEL008
  180.                 Endif
  181.                 TINTEGER005(19 - INTEGER004) = INTEGER002
  182.                 :LABEL008
  183.                 If (INTEGER006 == 1) Then
  184.                     AnsiPos 5, INTEGER004 + 2
  185.                     Goto LABEL009
  186.                 Endif
  187.                 AnsiPos 5, 21 - INTEGER004
  188.                 :LABEL009
  189.                 If (ConfSel(INTEGER002)) Then
  190.                     Print STRING010
  191.                     Goto LABEL010
  192.                 Endif
  193.                 Print STRING009
  194.                 :LABEL010
  195.                 If (CurConf() == INTEGER002) Print STRING011
  196.                 Print STRING003 + Space(17 - Len(STRING003)) + STRING020 + Space(56 - Len(StripAtx(STRING020)))
  197.                 If (ConfSel(INTEGER002) && !(CurConf() == INTEGER002)) Then
  198.                     Backup 9
  199.                     Print STRING012
  200.                 Endif
  201.                 If (CurConf() == INTEGER002) Then
  202.                     Backup 9
  203.                     Print STRING013
  204.                 Endif
  205.             Endif
  206.         Endif
  207.         INTEGER002 = INTEGER002 + INTEGER006
  208.     EndWhile
  209.     Return
  210.     :LABEL011
  211.     AnsiPos 4, INTEGER007 + 2
  212.     Print STRING006, STRING015
  213.     AnsiPos 65, 1
  214.     Print STRING014 + " ", TINTEGER005(INTEGER007), " " + STRING016 + STRING017
  215.     AnsiPos 1, 23
  216.     Return
  217.     :LABEL012
  218.     AnsiPos 4, INTEGER007 + 2
  219.     Print " "
  220.     AnsiPos 65, 1
  221.     Print STRING014 + " ", TINTEGER005(INTEGER007), " " + STRING016 + STRING017
  222.     Return
  223.     :LABEL013
  224.     KbdStuff Chr(13)
  225.     End
  226.  
  227. ;------------------------------------------------------------------------------
  228. ;
  229. ; Usage report (before postprocessing)
  230. ;
  231. ; ■ Statements used :
  232. ;
  233. ;    3       End
  234. ;    1       Cls
  235. ;    41      Goto 
  236. ;    43      Let 
  237. ;    13      Print 
  238. ;    31      If 
  239. ;    1       DispFile 
  240. ;    1       FOpen 
  241. ;    1       StartDisp 
  242. ;    1       GetUser
  243. ;    10      Gosub 
  244. ;    3       Return
  245. ;    3       Inc 
  246. ;    1       Dec 
  247. ;    3       KbdStuff 
  248. ;    11      AnsiPos 
  249. ;    2       Backup 
  250. ;    3       FSeek 
  251. ;    3       FRead 
  252. ;
  253. ;
  254. ; ■ Functions used :
  255. ;
  256. ;    4       -
  257. ;    1       *
  258. ;    25      +
  259. ;    5       -
  260. ;    24      ==
  261. ;    3       <>
  262. ;    5       <
  263. ;    2       <=
  264. ;    1       >
  265. ;    23      !
  266. ;    6       &&
  267. ;    5       ||
  268. ;    3       Len(
  269. ;    3       Space()
  270. ;    5       Chr()
  271. ;    2       StripAtx()
  272. ;    1       Inkey()
  273. ;    1       String()
  274. ;    3       CurConf()
  275. ;    2       PCBDat()
  276. ;    3       PPEPath()
  277. ;    15      ReadLine()
  278. ;    1       GetToken()
  279. ;    1       S2I()
  280. ;    1       ScrText()
  281. ;    1       ConfReg()
  282. ;    2       ConfSel()
  283. ;
  284. ;------------------------------------------------------------------------------
  285. ;
  286. ; Analysis flags : d
  287. ;
  288. ; d - Access PCBOARD.DAT ■ 2
  289. ;     Program gets the full pathname to PCBOARD.DAT, this may be usefull
  290. ;     for many PPE so they can find various informations on the system
  291. ;     (system paths, max number of lines in messages, ...) but it may also
  292. ;     be a way to gather vital informations.
  293. ;     ■ Search for : PCBDAT()
  294. ;
  295. ;------------------------------------------------------------------------------
  296. ;
  297. ; Postprocessing report
  298. ;
  299. ;    0       For/Next
  300. ;    2       While/EndWhile
  301. ;    17      If/Then or If/Then/Else
  302. ;    0       Select Case
  303. ;
  304. ;------------------------------------------------------------------------------
  305. ;                 AEGiS Corp - Break the routines, code against the machines!
  306. ;------------------------------------------------------------------------------
  307.