home *** CD-ROM | disk | FTP | other *** search
/ Carsten's PPE Collection / Carstens_PPE_Collection_2007.zip / T / THTP141.ZIP / PROTOCOL.PPE (.txt) < prev    next >
PCBoard Programming Language Executable  |  1994-05-23  |  4KB  |  253 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.     String   TSTRING002(50,7)
  25.     String   TSTRING003(50)
  26.     String   TSTRING004(50)
  27.     String   TSTRING005(50)
  28.     String   TSTRING006(50)
  29.     String   STRING007
  30.     String   STRING008
  31.     String   STRING009
  32.     String   STRING010
  33.     String   STRING011
  34.     String   STRING012
  35.     String   STRING013
  36.     String   STRING014
  37.     String   STRING015
  38.     String   STRING016
  39.     String   STRING017
  40.     String   STRING018
  41.     String   STRING019
  42.     String   STRING020
  43.     String   STRING021
  44.     String   STRING022
  45.     String   STRING023
  46.  
  47. ;------------------------------------------------------------------------------
  48.  
  49.     FOpen 1, PPEPath() + "prot.cnf", 0, 0
  50.     FGet 1, STRING014
  51.     FGet 1, STRING015
  52.     FGet 1, STRING016
  53.     FGet 1, STRING017
  54.     FGet 1, STRING018
  55.     FGet 1, STRING019
  56.     FGet 1, STRING020
  57.     FGet 1, STRING021
  58.     FGet 1, STRING022
  59.     FGet 1, STRING023
  60.     FClose 1
  61.     GetToken STRING012
  62.     If (Exist(ReadLine(PCBDat(), 45))) Goto LABEL001
  63.     Newline
  64.     Print "@X0CError reading PCBPROT.DAT!  Aborting ... @X07"
  65.     Delay 50
  66.     Log "Error reading PCBPROT.DAT!", 0
  67.     FreshLine
  68.     End
  69.     Goto LABEL004
  70.     :LABEL001
  71.     GetUser
  72.     STRING013 = U_Trans
  73.     FOpen 1, ReadLine(PCBDat(), 45), 0, 0
  74.     FDefIn 1
  75.     :LABEL002
  76.     If (Ferr(1)) Goto LABEL003
  77.     FDGet STRING007
  78.     If (Len(STRING007)) Then
  79.         STRING007 = Replace(STRING007, Chr(32), Chr(255))
  80.         Inc INTEGER002
  81.         STRING007 = Replace(STRING007, ",", ";")
  82.         Tokenize STRING007
  83.         While (TokCount() > 0) Do
  84.             Inc INTEGER001
  85.             GetToken TSTRING002(INTEGER002, INTEGER001)
  86.         EndWhile
  87.         TSTRING003(INTEGER002) = TSTRING002(INTEGER002, 1)
  88.         TSTRING005(INTEGER002) = TSTRING002(INTEGER002, 2)
  89.         TSTRING006(INTEGER002) = Replace(TSTRING002(INTEGER002, 4), Chr(255), Chr(32))
  90.         TSTRING004(INTEGER002) = TSTRING002(INTEGER002, 5)
  91.     Endif
  92.     INTEGER001 = 0
  93.     Goto LABEL002
  94.     :LABEL003
  95.     FClose 1
  96.     FOpen 1, PPEPath() + "PROTOCOL.CNF", 0, 0
  97.     FGet 1, STRING009
  98.     If (Right(STRING009, (1 <> "\"))) STRING009 = STRING009 + "\"
  99.     STRING010 = STRING009 + "PCBS"
  100.     STRING011 = STRING009 + "PCBR"
  101.     FClose 1
  102.     If (Strip(STRING012, Chr(32)) <> "") Then
  103.         STRING012 = Strip(STRING012, Chr(32))
  104.         For INTEGER003 = 1 To INTEGER002
  105.             STRING008 = STRING008 + TSTRING003(INTEGER003)
  106.         Next
  107.         INTEGER004 = InStr(STRING008, STRING012)
  108.         If (STRING012 == "N") Goto LABEL009
  109.         Gosub LABEL007
  110.     Endif
  111.     Gosub LABEL005
  112.     :LABEL004
  113.     End
  114.     :LABEL005
  115.     Newline
  116.     DispFile PPEPath() + "Prot.hdr", 0
  117.     For INTEGER003 = 1 To INTEGER002
  118.         If (((TSTRING005(INTEGER003) <> "I") && !Exist(STRING010 + TSTRING003(INTEGER003) + ".BAT")) && !Exist(STRING011 + TSTRING003(INTEGER003) + ".BAT")) BOOLEAN001 = 1
  119.         If (!BOOLEAN001 || (TSTRING003(INTEGER003) == "N")) Then
  120.             STRING008 = STRING008 + TSTRING003(INTEGER003)
  121.             If (TSTRING003(INTEGER003) == U_Trans) Then
  122.                 PrintLn STRING014 + STRING016 + STRING023 + " " + STRING018 + "=> " + STRING019 + "(" + STRING020 + TSTRING003(INTEGER003) + STRING019 + ") " + STRING021 + TSTRING006(INTEGER003) + STRING015 + STRING017 + STRING023 + "@X07"
  123.                 Goto LABEL006
  124.             Endif
  125.             PrintLn STRING014 + STRING016 + STRING023 + "    " + STRING019 + "(" + STRING020 + TSTRING003(INTEGER003) + STRING019 + ") " + STRING021 + TSTRING006(INTEGER003) + STRING015 + STRING017 + STRING023 + "@X07"
  126.         Endif
  127.         :LABEL006
  128.         BOOLEAN001 = 0
  129.     Next
  130.     DispFile PPEPath() + "prot.ftr", 0
  131.     PromptStr 198, STRING013, 1, STRING008, 2 + 4 + 8 + 128 + 256 + 8192
  132.     If (Len(STRING013) && (STRING013 <> U_Trans)) Then
  133.         STRING012 = Left(STRING013, 1)
  134.         If (STRING012 == "N") Goto LABEL009
  135.         INTEGER004 = InStr(STRING008, STRING012)
  136.         Goto LABEL007
  137.     Else
  138.         Newline
  139.     Endif
  140.     Return
  141.     :LABEL007
  142.     If (((TSTRING005(INTEGER004) <> "I") && !Exist(STRING010 + TSTRING003(INTEGER004) + ".BAT")) && !Exist(STRING011 + TSTRING003(INTEGER004) + ".BAT")) BOOLEAN001 = 1
  143.     If ((STRING012 == TSTRING003(INTEGER004)) && !BOOLEAN001) Then
  144.         If (TSTRING004(INTEGER004) == YesChar()) Then
  145.             If (ErrCorrect()) Goto LABEL008
  146.             Newlines 2
  147.             PrintLn "@X0CProtocol Unavailable - Modem Type Wrong!"
  148.             End
  149.         Endif
  150.         :LABEL008
  151.     Else
  152.         Return
  153.     Endif
  154.     :LABEL009
  155.     If (Strip(STRING012, Chr(32)) <> "") Then
  156.         U_Trans = STRING012
  157.         PutUser
  158.         Log "Default Protocol set to [" + STRING012 + "]", 0
  159.     Endif
  160.     Newline
  161.     PrintLn "@X0ADefault Protocol set to @PRODESC@"
  162.     End
  163.  
  164. ;------------------------------------------------------------------------------
  165. ;
  166. ; Usage report (before postprocessing)
  167. ;
  168. ; ■ Statements used :
  169. ;
  170. ;    4       End
  171. ;    25      Goto 
  172. ;    25      Let 
  173. ;    1       Print 
  174. ;    4       PrintLn 
  175. ;    19      If 
  176. ;    2       DispFile 
  177. ;    3       FOpen 
  178. ;    3       FClose 
  179. ;    11      FGet 
  180. ;    1       GetUser
  181. ;    1       PutUser
  182. ;    2       Log 
  183. ;    2       Gosub 
  184. ;    2       Return
  185. ;    1       PromptStr 
  186. ;    1       Delay 
  187. ;    2       Inc 
  188. ;    4       Newline
  189. ;    1       Newlines 
  190. ;    1       Tokenize 
  191. ;    2       GetToken 
  192. ;    1       FreshLine
  193. ;    1       FDefIn 
  194. ;    1       FDGet 
  195. ;
  196. ;
  197. ; ■ Functions used :
  198. ;
  199. ;    58      +
  200. ;    6       ==
  201. ;    6       <>
  202. ;    2       <
  203. ;    2       <=
  204. ;    1       >
  205. ;    4       >=
  206. ;    20      !
  207. ;    10      &&
  208. ;    3       ||
  209. ;    2       Len(
  210. ;    1       Left()
  211. ;    1       Right()
  212. ;    1       Ferr()
  213. ;    7       Chr()
  214. ;    2       InStr()
  215. ;    1       YesChar()
  216. ;    3       Replace()
  217. ;    3       Strip()
  218. ;    2       PCBDat()
  219. ;    4       PPEPath()
  220. ;    2       ReadLine()
  221. ;    5       Exist()
  222. ;    1       TokCount()
  223. ;    1       ErrCorrect()
  224. ;
  225. ;------------------------------------------------------------------------------
  226. ;
  227. ; Analysis flags : Wd
  228. ;
  229. ; W - Write user ■ 5
  230. ;     Program writes a user record. Although this may be normal for a
  231. ;     User Editor, it may also be a way to modify an account level.
  232. ;     ■ Search for : PUTUSER
  233. ;
  234. ; d - Access PCBOARD.DAT ■ 2
  235. ;     Program gets the full pathname to PCBOARD.DAT, this may be usefull
  236. ;     for many PPE so they can find various informations on the system
  237. ;     (system paths, max number of lines in messages, ...) but it may also
  238. ;     be a way to gather vital informations.
  239. ;     ■ Search for : PCBDAT()
  240. ;
  241. ;------------------------------------------------------------------------------
  242. ;
  243. ; Postprocessing report
  244. ;
  245. ;    2       For/Next
  246. ;    1       While/EndWhile
  247. ;    8       If/Then or If/Then/Else
  248. ;    0       Select Case
  249. ;
  250. ;------------------------------------------------------------------------------
  251. ;                 AEGiS Corp - Break the routines, code against the machines!
  252. ;------------------------------------------------------------------------------
  253.