home *** CD-ROM | disk | FTP | other *** search
/ Groovy Bytes: Behind the Moon / groovybytes.iso / GROOVY / PPE / MOZICART / MOZ_EM11.ZIP / M!EMSG.PPE (.txt) < prev    next >
Encoding:
PCBoard Programming Language Executable  |  1995-06-06  |  8.7 KB  |  348 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.     Integer  INTEGER001
  22.     Integer  INTEGER002
  23.     Integer  INTEGER003
  24.     Integer  INTEGER004
  25.     Integer  INTEGER005
  26.     String   STRING001
  27.     String   STRING002
  28.     String   STRING003
  29.     String   STRING004
  30.     String   STRING005
  31.     String   STRING006
  32.     String   STRING007
  33.     String   TSTRING008(15)
  34.     String   TSTRING009(8)
  35.     String   STRING010
  36.     String   STRING011
  37.     String   STRING012
  38.     String   STRING013
  39.     String   STRING014
  40.  
  41. ;------------------------------------------------------------------------------
  42.  
  43.     INTEGER002 = 10
  44.     TSTRING008(1) = "9"
  45.     TSTRING008(2) = "3"
  46.     TSTRING008(3) = "B"
  47.     TSTRING008(4) = "F"
  48.     TSTRING008(5) = "F"
  49.     TSTRING008(6) = "B"
  50.     TSTRING008(7) = "3"
  51.     TSTRING008(8) = "9"
  52.     TSTRING008(9) = "1"
  53.     TSTRING008(10) = "F"
  54.     INTEGER005 = 0
  55.     STRING014 = "@X4F"
  56.     If (Exist(PPEPath() + "M!EMSG.CFG")) Then
  57.         STRING002 = ReadLine(PPEPath() + "M!EMSG.CFG", 1)
  58.         INTEGER005 = S2I(STRING002, 10)
  59.         If (INTEGER005 < 0) INTEGER005 = 0
  60.         If (INTEGER005 > 6) INTEGER005 = 0
  61.     Endif
  62.     TSTRING009(1) = " @X0C▄@X4C▓▒▓@X0C▀▀@X4C▓▓@X0C▀▀@X4C▓@X0C▄   ▄@X4C▓▒▓@X0C▀▀@X4C▓@X0C▄   ▄@X4C▓▒▓@X0C▀▀@X4C▓@X0C▄   ▄@X4C▓▒▓@X0C▀▀@X4C▓@X0C▄   ▄@X4C▓▒▓@X0C▀▀@X4C▓@X0C▄   ▄@X4C▓▒▓@X0C▀▀@X4C▓@X0C▄   ▄@X4C▓▒@X0C▀▀@X4C▓@X0C▄"
  63.     TSTRING009(2) = "▐@X4C▓▒░▒@X0E  @X4C▒▒@X0E  @X4C▒▒@X0C▌ ▐@X4C▓▒░▒@X0E  @X4C▒▓@X0C▌ ▐@X4C▓▒░▒@X0E  @X4C▒▓@X0C▌ ▐@X4C▓▒░▒@X0E  @X4C▒▓@X0C▌ ▐@X4C▓▒░▒@X0E  @X4C▒▓@X0C▌ ▐@X4C▓▒░▒@X0E  @X4C▒▓@X0C▌ ▐@X4C▓▒░@X0E  @X4C▒▓@X0C▌"
  64.     TSTRING009(3) = "@X4C░▒░ ░@X0E  @X4C░▒@X0E  @X4C░░▒@X0E @X4C░▒░ ░@X0E  @X4C░▒░@X0E @X4C░▒░ ░@X0E  @X04▀▀@X0C▀ @X4C░▒░ ░@X0E  @X04▀▀@X0C▀  ▀@X04▀▀▀  @X4C░▒░@X0E @X4C░▒░ ░@X0E  @X04▀▀@X0C▀ @X4C░▒░ @X0E  @X4C░▒░@X0E"
  65.     TSTRING009(4) = "@X04█@X4C░ @X48░ @X0E  @X48 @X4C░@X0E  @X48  @X4C░@X0E @X48 @X4C░ @X48░ @X04▀▀▀▀▀  ▀▀▀▀▀▀@X4C░@X04▄   ▀▀▀▀▀▀@X4C░@X04▄   ▄@X48░ @X4C░@X04▀▀█@X4C░ @X0E @X48 @X4C░ @X48░ @X04▀▀@X4C░ @X0E  @X48 @X4C░ @X48░@X04▀▀▀▀▀"
  66.     TSTRING009(5) = "@X48░ ░▒░@X0E  @X48░ @X0E  @X48░░ @X0E @X48░ ░▒░@X0E      @X48░▒░▒@X08▄  @X48 ░@X08▌ @X48░▒░▒@X08▄  @X48 ░@X08▌ @X04▐@X48░▒░ @X0E  @X48░ ░@X0E @X48░ ░▒░@X0E  @X04█@X48▒@X04▌ @X48░ ░▒@X0E"
  67.     TSTRING009(6) = "@X48▒░▒▓▒@X0E  @X48▒░@X0E  @X48▒▒░@X0E @X48▒░▒▓▒@X0E  @X48▒▓█@X0E @X48▒▓▒▓█@X0E  @X48░▒▓@X0E @X48▒▓▒▓█@X0E  @X48░▒▓@X0E @X48▓▒▓▒░@X0E  @X48▒░▒@X0E @X48▒░▒▓▒@X0E  @X48▒▓▓@X0E @X48▒░▒▓@X0E  @X48▒▓█@X0E"
  68.     TSTRING009(7) = "@X48▓▒▓█▓@X0E  @X48▓▒@X0E  @X48▓▓▒@X0E @X08▐@X48▒▓█▓@X0E  @X48▓█@X08▌ ▐@X48█▓█@X08▓  @X48▒▓@X08▌ ▐@X48█▓█@X08▓  @X48▒▓@X08▌ ▐@X48▓█▓▒@X0E  @X48▓▒▓@X0E @X08▐@X48▒▓█▓@X0E  @X48▓█@X08█ ▐@X48▒▓█@X0E  @X48▓█@X08▌"
  69.     TSTRING009(8) = "@X48█▓█@X08▓@X48█@X0E  @X48█▓@X0E  @X08▓@X48█▓@X0E  @X08▀@X48█@X08▓@X48█@X08▄▄@X48█@X08▀   ▀@X48█@X08▓▓▄▄@X48▓@X08▀   ▀@X48█@X08▓▓▄▄@X48▓@X08▀   ▀▓@X48█▓@X08▄▄@X48█▓█@X0E  @X08▀@X48█@X08▓@X48█@X08▄▄@X48█@X08▀█  ▀@X48█@X08▓▄▄@X48█@X08▀"
  70.     If (INTEGER005 < 1) Goto LABEL001
  71.     For INTEGER001 = 1 To 8
  72.         If (INTEGER005 == 1) STRING010 = "@X19"
  73.         If (INTEGER005 == 2) STRING010 = "@X2A"
  74.         If (INTEGER005 == 3) STRING010 = "@X3B"
  75.         If (INTEGER005 == 4) STRING010 = "@X5D"
  76.         If (INTEGER005 == 5) STRING010 = "@X6E"
  77.         If (INTEGER005 == 1) STRING011 = "@X18"
  78.         If (INTEGER005 == 2) STRING011 = "@X28"
  79.         If (INTEGER005 == 3) STRING011 = "@X38"
  80.         If (INTEGER005 == 4) STRING011 = "@X58"
  81.         If (INTEGER005 == 5) STRING011 = "@X68"
  82.         If (INTEGER005 == 1) STRING012 = "@X01"
  83.         If (INTEGER005 == 2) STRING012 = "@X02"
  84.         If (INTEGER005 == 3) STRING012 = "@X03"
  85.         If (INTEGER005 == 4) STRING012 = "@X05"
  86.         If (INTEGER005 == 5) STRING012 = "@X06"
  87.         If (INTEGER005 == 1) STRING013 = "@X09"
  88.         If (INTEGER005 == 2) STRING013 = "@X0A"
  89.         If (INTEGER005 == 3) STRING013 = "@X0B"
  90.         If (INTEGER005 == 4) STRING013 = "@X0D"
  91.         If (INTEGER005 == 5) STRING013 = "@X0E"
  92.         If (INTEGER005 == 1) STRING014 = "@X1F"
  93.         If (INTEGER005 == 2) STRING014 = "@X2F"
  94.         If (INTEGER005 == 3) STRING014 = "@X3F"
  95.         If (INTEGER005 == 4) STRING014 = "@X5F"
  96.         If (INTEGER005 == 5) STRING014 = "@X6F"
  97.         TSTRING009(INTEGER001) = ReplaceStr(TSTRING009(INTEGER001), "@X4C", STRING010)
  98.         TSTRING009(INTEGER001) = ReplaceStr(TSTRING009(INTEGER001), "@X48", STRING011)
  99.         TSTRING009(INTEGER001) = ReplaceStr(TSTRING009(INTEGER001), "@X04", STRING012)
  100.         TSTRING009(INTEGER001) = ReplaceStr(TSTRING009(INTEGER001), "@X0C", STRING013)
  101.     Next
  102.     :LABEL001
  103.     Cls
  104.     PrintLn 
  105.     PrintLn "@X08▄■▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ·@X07E@X08·@X07N@X08·@X07T@X08·@X07E@X08·@X07R@X08·@X07 @X08·@X07A@X08· ▄▄▄▄▄▄▄▄▄▄▄▄▄■▄▄▄▄■▄▄■■▄■▄■▄▄■▄"
  106.     PrintLn 
  107.     For INTEGER001 = 1 To 8
  108.         PrintLn TSTRING009(INTEGER001)
  109.     Next
  110.     PrintLn 
  111.     PrintLn "              ▒■▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀■▒"
  112.     PrintLn "              ▓  @X07mESSAGE tO@X08:                                     ▓"
  113.     PrintLn "              █ ──────────────────────────────────────────────── █"
  114.     PrintLn "              ▓     @X07sUBJECT@X08:                                     ▓"
  115.     PrintLn "              ▒■▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄■▒"
  116.     PrintLn 
  117.     PrintLn "              @X07sTATUS@X08:"
  118.     PrintLn 
  119.     PrintLn "▀■▀▀■▀■▀■■▀▀■▀▀▀▀■▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀■▀"
  120.     PrintLn "                                       [∙M!EMSG v1.10 by DR.BLACK/MOZ[IC]ART!∙]@X07"
  121.     GetUser
  122.     AnsiPos 23, 19
  123.     ClrEol
  124.     Print "@X07Enter USERNAME or [@X0FENTER@X07] to write a msg to ALL"
  125.     AnsiPos 30, 14
  126.     STRING001 = ""
  127.     InputStr "_", STRING001, 7, 30, Mask_Ascii(), 8
  128.     If (STRING001 == "") Goto LABEL002
  129.     If (STRING001 == "@USER@") Goto LABEL003
  130.     If (U_RecNum(STRING001) < 0) Goto LABEL016
  131.     If (U_InConf(U_RecNum(STRING001), CurConf())) Then
  132.         Goto LABEL003
  133.         :LABEL002
  134.         STRING001 = "ALL"
  135.         :LABEL003
  136.         STRING003 = STRING001
  137.         If (STRING001 == "@USER@") STRING003 = "MESSAGE TO ALL USERS"
  138.         STRING004 = STRING001
  139.         AnsiPos 30, 14
  140.         INTEGER003 = 30
  141.         STRING002 = STRING003
  142.         Gosub LABEL018
  143.         AnsiPos 23, 19
  144.         ClrEol
  145.         Print "@X07SUBJECT of message or [@X0FENTER@X07] to quit"
  146.         AnsiPos 30, 16
  147.         STRING001 = ""
  148.         InputStr "_", STRING001, 7, 34, Mask_Ascii(), 0
  149.         If (STRING001 == "") Goto LABEL017
  150.         STRING005 = STRING001
  151.         AnsiPos 30, 16
  152.         INTEGER003 = 30
  153.         STRING002 = STRING005
  154.         Gosub LABEL018
  155.         If (STRING004 == "ALL") Goto LABEL013
  156.         If (STRING004 == "@USER@") Goto LABEL013
  157.         AnsiPos 1, 19
  158.         ClrEol
  159.         PrintLn "@X07tYPE oF mESSAGE@X08: " + STRING014 + " PUBLiC @X07  Private  "
  160.         INTEGER004 = 0
  161.         Gosub LABEL006
  162.         :LABEL004
  163.         STRING006 = Inkey()
  164.         If (STRING006 == "UP") Gosub LABEL005
  165.         If (STRING006 == "DOWN") Gosub LABEL005
  166.         If (STRING006 == "LEFT") Gosub LABEL005
  167.         If (STRING006 == "RIGHT") Gosub LABEL005
  168.         If (STRING006 == Chr(13)) Goto LABEL008
  169.         If (STRING006 == Chr(27)) Goto LABEL007
  170.         Goto LABEL004
  171.         :LABEL005
  172.         INTEGER001 = INTEGER004
  173.         If (INTEGER001 == 0) INTEGER004 = 1
  174.         If (INTEGER001 == 1) INTEGER004 = 0
  175.         Gosub LABEL006
  176.         Return
  177.         :LABEL006
  178.         AnsiPos 1, 19
  179.         If (INTEGER004 == 0) Print "@X07tYPE oF mESSAGE@X08: " + STRING014 + " PUBLiC @X07  Private  "
  180.         If (INTEGER004 == 1) Print "@X07tYPE oF mESSAGE@X08: @X07 Public  " + STRING014 + " PRiVATE @X07 "
  181.         Return
  182.         :LABEL007
  183.         Goto LABEL017
  184.         :LABEL008
  185.         AnsiPos 1, 19
  186.         ClrEol
  187.         If (INTEGER004 == 0) BOOLEAN001 = 0
  188.         If (INTEGER004 == 1) BOOLEAN001 = 1
  189.         If (BOOLEAN001) Then
  190.             AnsiPos 1, 19
  191.             ClrEol
  192.             PrintLn "@X07rEQUEST rETURN rECEiPT@X08: " + STRING014 + " YES @X07  NO!  "
  193.             INTEGER004 = 0
  194.             Gosub LABEL011
  195.             :LABEL009
  196.             STRING006 = Inkey()
  197.             If (STRING006 == "UP") Gosub LABEL010
  198.             If (STRING006 == "DOWN") Gosub LABEL010
  199.             If (STRING006 == "LEFT") Gosub LABEL010
  200.             If (STRING006 == "RIGHT") Gosub LABEL010
  201.             If (STRING006 == Chr(13)) Goto LABEL012
  202.             If (STRING006 == Chr(27)) Goto LABEL017
  203.             Goto LABEL009
  204.             :LABEL010
  205.             INTEGER001 = INTEGER004
  206.             If (INTEGER001 == 0) INTEGER004 = 1
  207.             If (INTEGER001 == 1) INTEGER004 = 0
  208.             Gosub LABEL011
  209.             Return
  210.             :LABEL011
  211.             AnsiPos 1, 19
  212.             If (INTEGER004 == 0) Print "@X07rEQUEST rETURN rECEiPT@X08: " + STRING014 + " YES @X07  NO!   "
  213.             If (INTEGER004 == 1) Print "@X07rEQUEST rETURN rECEiPT@X08: @X07 YES  " + STRING014 + " NO! @X07  "
  214.             Return
  215.             :LABEL012
  216.             AnsiPos 1, 19
  217.             ClrEol
  218.             If (INTEGER004 == 0) BOOLEAN002 = 1
  219.             If (INTEGER004 == 1) BOOLEAN002 = 0
  220.             Goto LABEL014
  221.             :LABEL013
  222.             STRING007 = ""
  223.             STRING007 = "N" + Chr(13)
  224.             If (U_FSEP == 1) STRING007 = STRING007 + "Y" + Chr(13)
  225.             Goto LABEL015
  226.             :LABEL014
  227.             STRING007 = ""
  228.             If (BOOLEAN001) STRING007 = "R" + Chr(13)
  229.             If (!BOOLEAN001) STRING007 = "N" + Chr(13)
  230.             If (BOOLEAN002) STRING007 = STRING007 + "Y" + Chr(13)
  231.             If (!BOOLEAN002) STRING007 = STRING007 + "N" + Chr(13)
  232.             If (U_FSEP == 1) STRING007 = STRING007 + "Y" + Chr(13)
  233.             Goto LABEL015
  234.         Endif
  235.         STRING007 = "N" + Chr(13)
  236.         If (U_FSEP == 1) STRING007 = STRING007 + "Y" + Chr(13)
  237.         :LABEL015
  238.         TSTRING008(10) = "F"
  239.         AnsiPos 1, 22
  240.         INTEGER003 = 67
  241.         STRING002 = "MOZ[IC]ART!"
  242.         Gosub LABEL018
  243.         Delay 5
  244.         Cls
  245.         KbdStuff "E" + Chr(13) + STRING004 + Chr(13) + STRING005 + Chr(13) + STRING007
  246.         End
  247.         :LABEL016
  248.         TSTRING008(10) = "C"
  249.         AnsiPos 1, 19
  250.         ClrEol
  251.         INTEGER003 = 1
  252.         STRING002 = "USER NOT FOUND IN USER-BASE!"
  253.         Gosub LABEL018
  254.         AnsiPos 1, 22
  255.         End
  256.     Endif
  257.     TSTRING008(10) = "C"
  258.     AnsiPos 1, 19
  259.     ClrEol
  260.     INTEGER003 = 1
  261.     STRING002 = "USER NOT REGISTERED IN THIS CONFERENCE!"
  262.     Gosub LABEL018
  263.     AnsiPos 1, 22
  264.     End
  265.     :LABEL017
  266.     TSTRING008(10) = "C"
  267.     AnsiPos 1, 19
  268.     ClrEol
  269.     INTEGER003 = 1
  270.     STRING002 = "MESSAGE ABORTED!"
  271.     Gosub LABEL018
  272.     AnsiPos 1, 22
  273.     End
  274.     :LABEL018
  275.     For INTEGER001 = 1 To INTEGER002
  276.         AnsiPos INTEGER003, GetY()
  277.         STRING001 = "@X0" + TSTRING008(INTEGER001)
  278.         Print STRING001 + STRING002
  279.         Delay 1
  280.     Next
  281.     Return
  282.     AnsiPos 1, 12
  283.     ClrEol
  284.  
  285. ;------------------------------------------------------------------------------
  286. ;
  287. ; Usage report (before postprocessing)
  288. ;
  289. ; ■ Statements used :
  290. ;
  291. ;    4       End
  292. ;    2       Cls
  293. ;    10      ClrEol
  294. ;    28      Goto 
  295. ;    109     Let 
  296. ;    7       Print 
  297. ;    17      PrintLn 
  298. ;    72      If 
  299. ;    1       GetUser
  300. ;    2       InputStr 
  301. ;    18      Gosub 
  302. ;    5       Return
  303. ;    2       Delay 
  304. ;    1       KbdStuff 
  305. ;    21      AnsiPos 
  306. ;
  307. ;
  308. ; ■ Functions used :
  309. ;
  310. ;    39      +
  311. ;    58      ==
  312. ;    6       <
  313. ;    3       <=
  314. ;    1       >
  315. ;    6       >=
  316. ;    8       !
  317. ;    6       &&
  318. ;    3       ||
  319. ;    16      Chr()
  320. ;    2       Inkey()
  321. ;    2       Mask_Ascii()
  322. ;    1       CurConf()
  323. ;    2       PPEPath()
  324. ;    1       ReadLine()
  325. ;    1       Exist()
  326. ;    1       S2I()
  327. ;    1       GetY()
  328. ;    2       U_RecNum()
  329. ;    1       U_InConf()
  330. ;    4       ReplaceStr()
  331. ;
  332. ;------------------------------------------------------------------------------
  333. ;
  334. ; Analysis flags : No flag
  335. ;
  336. ;------------------------------------------------------------------------------
  337. ;
  338. ; Postprocessing report
  339. ;
  340. ;    3       For/Next
  341. ;    0       While/EndWhile
  342. ;    3       If/Then or If/Then/Else
  343. ;    0       Select Case
  344. ;
  345. ;------------------------------------------------------------------------------
  346. ;                 AEGiS Corp - Break the routines, code against the machines!
  347. ;------------------------------------------------------------------------------
  348.