home *** CD-ROM | disk | FTP | other *** search
/ The Pier Shareware 6 / The_Pier_Shareware_Number_6_(The_Pier_Exchange)_(1995).iso / 005 / v_ssc100.zip / INSTALL.PPE (.txt) < prev    next >
PCBoard Programming Language Executable  |  1994-11-08  |  4KB  |  283 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.     Boolean  BOOLEAN001
  20.     Boolean  BOOLEAN002
  21.     Boolean  BOOLEAN003
  22.     Integer  INTEGER001
  23.     Integer  INTEGER002
  24.     Integer  INTEGER003
  25.     String   STRING001
  26.     String   STRING002
  27.     String   STRING003
  28.     String   STRING004
  29.     String   STRING005
  30.     String   STRING006
  31.     String   TSTRING007(999,2)
  32.     String   STRING009
  33.     Declare  Function FUNCTION001() String
  34.     Declare  Procedure PROC001()
  35.     Declare  Procedure PROC002()
  36.     Declare  Procedure PROC003()
  37.     Declare  Procedure PROC004()
  38.     Declare  Procedure PROC005(String STRING008)
  39.  
  40. ;------------------------------------------------------------------------------
  41.  
  42.     StartDisp 1
  43.     Color 7
  44.     Cls
  45.     PrintLn "@X7F█▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀@X78▄@X07"
  46.     PrintLn "@X7F█ @X70Install-PPE v1.00 Coded by Vinyl @X78█@X07"
  47.     PrintLn "@X7F▀@X78▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄█@X07"
  48.     Newline
  49.     Print "@X08■ @X07Creating Backups..."
  50.     STRING004 = ReadLine("INSTALL.000", 1)
  51.     STRING004 = RTrim(STRING004, "\")
  52.     STRING003 = ReadLine("INSTALL.001", 1)
  53.     STRING003 = RTrim(STRING003, "\")
  54.     STRING001 = ReadLine(PCBDat(), 25) + "PCBTEXT."
  55.     STRING002 = ReadLine(PCBDat(), 232)
  56.     FClose -1
  57.     Copy STRING001, STRING001 + "OLD"
  58.     Copy STRING002, Left(STRING002, Len(STRING002) - 3) + "OLD"
  59.     PrintLn 
  60.     FOpen 1, PPEName() + ".INI", 0, 0
  61.     PROC005("COMMAND")
  62.     While (!Ferr(1) && !(Left(STRING005, 1) == "[")) Do
  63.         FGet 1, STRING005
  64.         If (!(Left(STRING005, 1) == ";") && !(STRING005 == "")) PROC003()
  65.     EndWhile
  66.     If (BOOLEAN001) PrintLn 
  67.     PROC005("PROMPT")
  68.     While (!Ferr(1) && !(Left(STRING005, 1) == "[")) Do
  69.         If (!(Left(STRING005, 1) == ";") && !(STRING005 == "")) PROC004()
  70.         FGet 1, STRING005
  71.     EndWhile
  72.     FClose 1
  73.     If (BOOLEAN002) Then
  74.         RestScrn
  75.         PrintLn 
  76.     Endif
  77.     Newline
  78.     If (INTEGER003 == 0) Then
  79.         Print "@X0FPPE Successfully Installed!"
  80.     Else
  81.         Print "@X07(", INTEGER003, ") "
  82.         Print "@X0FPPE Installation Failure, Please contact author!"
  83.     Endif
  84.     Color 7
  85.     End
  86.  
  87. ;------------------------------------------------------------------------------
  88.  
  89.     Procedure PROC004()
  90.  
  91.     If (BOOLEAN002) Goto LABEL001
  92.     Print "@X08■ @X07Updating PCBTEXT..."
  93.     SaveScrn
  94.     BOOLEAN002 = 1
  95.     :LABEL001
  96.     Shell 0, INTEGER003, STRING004 + "\MKPCBTXT.EXE", STRING001 + " /I:" + FUNCTION001() + " """ + Upper(FUNCTION001()) + """"
  97.  
  98.     EndProc
  99.  
  100.  
  101. ;------------------------------------------------------------------------------
  102.  
  103.     Procedure PROC003()
  104.  
  105.     If (BOOLEAN001) Goto LABEL002
  106.     Print "@X08■ @X07Updating CMD.LST..."
  107.     PROC002()
  108.     BOOLEAN001 = 1
  109.     :LABEL002
  110.     BOOLEAN003 = 0
  111.     STRING006 = FUNCTION001()
  112.     For INTEGER001 = 1 To INTEGER002
  113.         If (STRING006 == TSTRING007(INTEGER001, 0)) Then
  114.             PROC001()
  115.             BOOLEAN003 = 1
  116.         Endif
  117.     Next
  118.     If (BOOLEAN003) Goto LABEL003
  119.     Inc INTEGER002
  120.     INTEGER001 = INTEGER002
  121.     PROC001()
  122.     :LABEL003
  123.     FCreate 2, STRING002, 1, 0
  124.     For INTEGER001 = 1 To INTEGER002
  125.         FWrite 2, Left(TSTRING007(INTEGER001, 0) + Replace("                 ", " ", Chr(0)), 15), 15
  126.         FWrite 2, Chr(TSTRING007(INTEGER001, 1)), 1
  127.         FWrite 2, Left(TSTRING007(INTEGER001, 2) + Replace("                                                       ", " ", Chr(0)), 48), 48
  128.     Next
  129.     FClose 2
  130.  
  131.     EndProc
  132.  
  133.  
  134. ;------------------------------------------------------------------------------
  135.  
  136.     Procedure PROC005(String STRING008)
  137.  
  138.     Frewind 1
  139.     STRING008 = "[" + Upper(STRING008) + "]"
  140.     While ((!Ferr(1) && !(Upper(STRING005) == STRING008))) FGet 1, STRING005
  141.     STRING005 = ""
  142.  
  143.     EndProc
  144.  
  145.  
  146. ;------------------------------------------------------------------------------
  147.  
  148.     Function FUNCTION001() String
  149.  
  150.     If (InStr(STRING005, ",") == 0) Then
  151.         FUNCTION001 = STRING005
  152.     Else
  153.         FUNCTION001 = Left(STRING005, InStr(STRING005, ",") - 1)
  154.     Endif
  155.     If (InStr(FUNCTION001, Chr(34)) == 0) Goto LABEL004
  156.     FUNCTION001 = Right(STRING005, Len(STRING005) - InStr(STRING005, Chr(34)))
  157.     FUNCTION001 = Left(FUNCTION001, InStr(FUNCTION001, Chr(34)) - 1)
  158.     :LABEL004
  159.     FUNCTION001 = ReplaceStr(FUNCTION001, "%PATH%", STRING003)
  160.     STRING005 = Right(STRING005, Len(STRING005) - InStr(STRING005, ","))
  161.  
  162.     EndFunc
  163.  
  164.  
  165. ;------------------------------------------------------------------------------
  166.  
  167.     Procedure PROC001()
  168.  
  169.     TSTRING007(INTEGER001, 0) = STRING006
  170.     TSTRING007(INTEGER001, 1) = FUNCTION001()
  171.     TSTRING007(INTEGER001, 2) = FUNCTION001()
  172.  
  173.     EndProc
  174.  
  175.  
  176. ;------------------------------------------------------------------------------
  177.  
  178.     Procedure PROC002()
  179.  
  180.     FOpen 2, STRING002, 0, 0
  181.     :LABEL005
  182.     If (Ferr(2)) Goto LABEL006
  183.     Inc INTEGER002
  184.     FRead 2, TSTRING007(INTEGER002, 0), 15
  185.     FRead 2, TSTRING007(INTEGER002, 1), 1
  186.     FRead 2, TSTRING007(INTEGER002, 2), 48
  187.     Goto LABEL005
  188.     :LABEL006
  189.     Dec INTEGER002
  190.     FClose 2
  191.  
  192.     EndProc
  193.  
  194.  
  195. ;------------------------------------------------------------------------------
  196. ;
  197. ; Usage report (before postprocessing)
  198. ;
  199. ; ■ Statements used :
  200. ;
  201. ;    1       End
  202. ;    1       Cls
  203. ;    2       Color 
  204. ;    22      Goto 
  205. ;    27      Let 
  206. ;    6       Print 
  207. ;    6       PrintLn 
  208. ;    17      If 
  209. ;    1       FCreate 
  210. ;    2       FOpen 
  211. ;    4       FClose 
  212. ;    3       FGet 
  213. ;    1       StartDisp 
  214. ;    2       Inc 
  215. ;    1       Dec 
  216. ;    2       Newline
  217. ;    1       Shell 
  218. ;    1       SaveScrn
  219. ;    1       RestScrn
  220. ;    1       Frewind 
  221. ;    3       FRead 
  222. ;    3       FWrite 
  223. ;    2       Copy 
  224. ;    5       EndProc
  225. ;    1       EndFunc
  226. ;
  227. ;
  228. ; ■ Functions used :
  229. ;
  230. ;    1       -
  231. ;    16      +
  232. ;    5       -
  233. ;    11      ==
  234. ;    2       <
  235. ;    2       <=
  236. ;    4       >=
  237. ;    23      !
  238. ;    9       &&
  239. ;    2       ||
  240. ;    3       Len(
  241. ;    3       Upper()
  242. ;    9       Left()
  243. ;    2       Right()
  244. ;    4       Ferr()
  245. ;    6       Chr()
  246. ;    6       InStr()
  247. ;    2       RTrim()
  248. ;    2       Replace()
  249. ;    2       PCBDat()
  250. ;    4       ReadLine()
  251. ;    1       PPEName()
  252. ;    1       ReplaceStr()
  253. ;
  254. ;------------------------------------------------------------------------------
  255. ;
  256. ; Analysis flags : Sd
  257. ;
  258. ; S - Shell to DOS ■ 5
  259. ;     This may be normal if the PPE need to execute an external command,
  260. ;     but may be actually anything... nasty (formating HD, rebooting,...)
  261. ;     or usefull (sorting, maintenance,...). Check!
  262. ;     ■ Search for : SHELL
  263. ;
  264. ; d - Access PCBOARD.DAT ■ 2
  265. ;     Program gets the full pathname to PCBOARD.DAT, this may be usefull
  266. ;     for many PPE so they can find various informations on the system
  267. ;     (system paths, max number of lines in messages, ...) but it may also
  268. ;     be a way to gather vital informations.
  269. ;     ■ Search for : PCBDAT()
  270. ;
  271. ;------------------------------------------------------------------------------
  272. ;
  273. ; Postprocessing report
  274. ;
  275. ;    2       For/Next
  276. ;    2       While/EndWhile
  277. ;    4       If/Then or If/Then/Else
  278. ;    0       Select Case
  279. ;
  280. ;------------------------------------------------------------------------------
  281. ;                 AEGiS Corp - Break the routines, code against the machines!
  282. ;------------------------------------------------------------------------------
  283.