home *** CD-ROM | disk | FTP | other *** search
/ Carsten's PPE Collection / Carstens_PPE_Collection_2007.zip / U / UNC-TMU2.ZIP / THEMENU.PPE (.txt) < prev    next >
PCBoard Programming Language Executable  |  1995-05-10  |  9KB  |  434 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.     Integer  INTEGER001
  20.     Integer  INTEGER002
  21.     Integer  INTEGER003
  22.     Integer  INTEGER004
  23.     Integer  INTEGER005
  24.     Integer  TINTEGER006(5)
  25.     Integer  INTEGER007
  26.     Integer  INTEGER008
  27.     Integer  INTEGER009
  28.     Integer  INTEGER010
  29.     Integer  TINTEGER011(4)
  30.     Integer  INTEGER012
  31.     Integer  INTEGER013
  32.     Integer  TINTEGER014(2)
  33.     String   STRING001
  34.     String   STRING002
  35.     String   STRING003
  36.     String   STRING004
  37.     String   STRING005
  38.     String   STRING006
  39.     String   STRING007
  40.     String   TSTRING008(4,17)
  41.     String   TSTRING009(4,17)
  42.     String   TSTRING010(4)
  43.     String   STRING011
  44.     String   STRING012
  45.     String   STRING013
  46.     String   TSTRING014(2)
  47.     String   STRING015
  48.     Declare  Procedure PROC001()
  49.     Declare  Procedure PROC002()
  50.     Declare  Procedure PROC003()
  51.  
  52. ;------------------------------------------------------------------------------
  53.  
  54.     :LABEL001
  55.     Goto LABEL002
  56.     INTEGER012 = 0
  57.     INTEGER013 = 0
  58.     :LABEL002
  59.     TSTRING014(1) = "NOONE"
  60.     GetUser
  61.     FOpen 1, PPEPath() + "THEMENU.USR", 2, 0
  62.     FGet 1, STRING015
  63.     While ((TSTRING014(1) <> "") && (INTEGER012 == 0)) Do
  64.         FGet 1, TSTRING014(1)
  65.         FGet 1, TINTEGER014(1)
  66.         If (U_Name() == TSTRING014(1)) INTEGER012 = 1
  67.     EndWhile
  68.     FClose 1
  69.     If (INTEGER012 == 0) Then
  70.         Cls
  71.         INTEGER013 = 1
  72.         PrintLn "@X0CCHOOSE UR DEFAULT MENU!!!"
  73.         AnsiPos 10, 10
  74.         Print "@X4Fuse THE MENU as default@X07"
  75.         AnsiPos 10, 11
  76.         Print "@X0Fuse normal ansi-menu as default@X07"
  77.         While (STRING001 <> Chr(13)) Do
  78.             STRING001 = Inkey()
  79.             If (STRING001 == "UP") Then
  80.                 INTEGER013 = INTEGER013 - 1
  81.                 If (INTEGER013 < 1) INTEGER013 = 2
  82.                 If (INTEGER013 > 2) INTEGER013 = 1
  83.                 If (INTEGER013 == 1) Then
  84.                     AnsiPos 10, 10
  85.                     Print "@X4Fuse THE MENU as default@X07"
  86.                     AnsiPos 10, 11
  87.                     Print "@X0Fuse normal ansi-menu as default@X07"
  88.                 Endif
  89.                 If (INTEGER013 == 2) Then
  90.                     AnsiPos 10, 10
  91.                     Print "@X0Fuse THE MENU as default@X07"
  92.                     AnsiPos 10, 11
  93.                     Print "@X4Fuse normal ansi-menu as default@X07"
  94.                 Endif
  95.             Endif
  96.             If (STRING001 == "DOWN") Then
  97.                 INTEGER013 = INTEGER013 + 1
  98.                 If (INTEGER013 < 1) INTEGER013 = 2
  99.                 If (INTEGER013 > 2) INTEGER013 = 1
  100.                 If (INTEGER013 == 1) Then
  101.                     AnsiPos 10, 10
  102.                     Print "@X4Fuse THE MENU as default@X07"
  103.                     AnsiPos 10, 11
  104.                     Print "@X0Fuse normal ansi-menu as default@X07"
  105.                 Endif
  106.                 If (INTEGER013 == 2) Then
  107.                     AnsiPos 10, 10
  108.                     Print "@X0Fuse THE MENU as default@X07"
  109.                     AnsiPos 10, 11
  110.                     Print "@X4Fuse normal ansi-menu as default@X07"
  111.                 Endif
  112.             Endif
  113.             If (STRING001 == Chr(13)) Then
  114.                 If (INTEGER013 == 1) TINTEGER014(2) = 1
  115.                 If (INTEGER013 == 2) TINTEGER014(2) = 0
  116.             Endif
  117.         EndWhile
  118.         FAppend 1, PPEPath() + "THEMENU.USR", 2, 0
  119.         FPutLn 1, U_Name()
  120.         FPutLn 1, TINTEGER014(2)
  121.         FClose 1
  122.     Endif
  123.     If (INTEGER012 == 1) TINTEGER014(2) = TINTEGER014(1)
  124.     If (TINTEGER014(2) == 1) Goto LABEL003
  125.     If ((TINTEGER014(2) == 0) && (TokenStr() == "Y")) Goto LABEL006
  126.     :LABEL003
  127.     FOpen 1, PPEPath() + "THEMENU.DAT", 2, 0
  128.     FGet 1, STRING002
  129.     FGet 1, STRING003
  130.     FGet 1, STRING004
  131.     FGet 1, STRING005
  132.     FGet 1, STRING006
  133.     FGet 1, TSTRING010(1)
  134.     FGet 1, TSTRING010(2)
  135.     FGet 1, TSTRING010(3)
  136.     FGet 1, TSTRING010(4)
  137.     For INTEGER010 = 1 To 4
  138.         FGet 1, TINTEGER011(INTEGER010)
  139.         If (TINTEGER011(INTEGER010) > 9) TINTEGER011(INTEGER010) = 9
  140.         If (TINTEGER011(INTEGER010) > INTEGER005) INTEGER005 = TINTEGER011(INTEGER010)
  141.         For INTEGER009 = 1 To TINTEGER011(INTEGER010)
  142.             FGet 1, TSTRING008(INTEGER010, INTEGER009)
  143.             FGet 1, TSTRING009(INTEGER010, INTEGER009)
  144.         Next
  145.     Next
  146.     FClose 1
  147.     :LABEL004
  148.     KeyFlush
  149.     STRING001 = ""
  150.     STRING011 = ""
  151.     STRING007 = "@X08···-─ YouR SeLeCTioN  : @X07"
  152.     INTEGER001 = CurConf()
  153.     INTEGER002 = U_TimeOn()
  154.     INTEGER007 = 1
  155.     TINTEGER006(1) = 1
  156.     TINTEGER006(2) = 1
  157.     TINTEGER006(3) = 1
  158.     TINTEGER006(4) = 1
  159.     Cls
  160.     AnsiPos 1, 1
  161.     Print STRING004 + "@X08RV@X0F ▄█▄  ▄@X7F▒@X07▄     @X0F█@X7F▓▓▒@X07 @X0F█@X7F▓▓▒@X0F   ▄@X7F▓▓▒@X0F▐█@X7F▓▓@X07▄@X08░  @X78 ░▒▓█@X07 @X78░▒▓█@X08▓"
  162.     AnsiPos 1, 2
  163.     Print STRING004 + "@X0F  ▐@X7F▓▓▒@X07▌@X0F▐@X7F▒░ @X07▌    @X7F▓▓▒░@X0F       ▐@X7F▓▓▒░@X08░@X7F▓▓▒░@X07▌  @X7F░ @X78░▒▓@X08░@X78 ░▒▓█"
  164.     AnsiPos 1, 3
  165.     Print STRING004 + "@X0F  █@X7F▓▒░@X08▒@X7F▒░ @X78░@X0F     @X7F▓▒░ @X0F       @X7F▓▓▒░ @X08▒@X7F▓▒░ @X78░@X07  @X7F▒░ @X78░▒@X08▒@X7F░ @X78░▒▓"
  166.     AnsiPos 1, 4
  167.     Print STRING004 + "@X0F ▐@X7F▓▒░@X07▌▐@X7F░ @X78░@X07▌▐▌   @X7F▒░ @X78░@X07 @X7F▓▒░ @X07  @X7F▓▒░ @X78░@X07 @X7F▒░ @X78░▒@X07  @X7F▓▒░ @X78░@X07 @X7F▒░ @X78░▒"
  168.     AnsiPos 1, 5
  169.     Print STRING004 + "@X0F @X7F▓▒░ @X08░@X7F░ @X78░▒@X07 @X78 ░@X0F   @X7F░ @X78░▒@X0F       @X7F▒░ @X78░▒@X08▒@X7F░ @X78░▒▓@X07  @X7F▓▓▒░ @X08▒@X7F▓▒░ @X78░"
  170.     AnsiPos 1, 6
  171.     Print STRING004 + "@X0F▐@X7F▒░ @X08▌@X07▐@X77 @X78░▒@X08▌@X07▐@X78░▒@X08▌  @X78 ░▒▓@X0F       @X7F░ @X78░▒▓@X08░@X78 ░▒▓█@X07  @X0F▐@X7F▓▓▒░@X08░@X7F▓▓▒░@X07▌"
  172.     AnsiPos 1, 7
  173.     Print STRING004 + "@X7F▒░ @X78░@X08▒@X78 ░▒▓@X08░@X78░▒▓█@X07  @X78░▒▓█@X07 @X78░▒▓█@X07  @X78 ░▒▓█@X07 @X78░▒▓█@X08▓   @X0F▀@X7F▓▓▒@X0F▐█@X7F▓▓@X07▀@X08░"
  174.     AnsiPos 58, 1
  175.     Print "@X09THE MENU v2 by cL!@X07"
  176.     AnsiPos 55, 2
  177.     Print "@X08[@X07@X08] left   [@X07INS@X08] help"
  178.     AnsiPos 55, 3
  179.     Print "[@X07@X08] right  [@X07Enter @X08] select"
  180.     AnsiPos 55, 4
  181.     Print "[@X07@X08] up     [@X07ESC@X08] quit"
  182.     AnsiPos 55, 5
  183.     Print "[@X07@X08] down   [@X07DEL@X08] SET FLAG"
  184.     AnsiPos 1, 8
  185.     Print STRING004 + "┌────--∙∙· · · · ·∙∙-─────────────────────────────────────--∙∙· · · · ·∙∙-─────┐"
  186.     AnsiPos 1, 9
  187.     Print STRING004 + "|                  :                   |                   :                   |"
  188.     AnsiPos 1, 10
  189.     Print STRING004 + "└────--∙∙· · · · ·∙∙-─────────────────────────────────────--∙∙· · · · ·∙∙-─────┘"
  190.     AnsiPos 1, 11
  191.     Print STRING004
  192.     AnsiPos 55, 6
  193.     Print "@X07@TIMELEFT@"
  194.     Print "@X08 mins left today!"
  195.     AnsiPos 55, 7
  196.     Print "@X08@INCONF@"
  197.     PROC001()
  198.     PROC002()
  199.     PROC003()
  200.     While (STRING001 <> Chr(27)) Do
  201.         STRING001 = Inkey()
  202.         If (STRING001 == "DOWN") Then
  203.             TINTEGER006(INTEGER007) = TINTEGER006(INTEGER007) + 1
  204.             PROC001()
  205.         Endif
  206.         If (STRING001 == "UP") Then
  207.             TINTEGER006(INTEGER007) = TINTEGER006(INTEGER007) - 1
  208.             PROC001()
  209.         Endif
  210.         If (STRING001 == "RIGHT") Then
  211.             INTEGER007 = INTEGER007 + 1
  212.             PROC002()
  213.         Endif
  214.         If (STRING001 == "LEFT") Then
  215.             INTEGER007 = INTEGER007 - 1
  216.             PROC002()
  217.         Endif
  218.         If (((((((((((((STRING001 <> "UP") && (STRING001 <> "DOWN")) && (STRING001 <> Chr(27))) && (STRING001 <> Chr(13))) && (STRING001 <> "LEFT")) && (STRING001 <> "RIGHT")) && (STRING001 <> "INS")) && (STRING001 <> "HOME")) && (STRING001 <> "END")) && (STRING001 <> "DEL")) && (STRING001 <> "PGUP")) && (STRING001 <> "PGDN")) && (STRING001 <> "")) Then
  219.             STRING011 = STRING011 + STRING001
  220.             PROC003()
  221.         Endif
  222.         If (STRING001 == "END") Then
  223.             INTEGER003 = INTEGER003 + 1
  224.             PROC003()
  225.         Endif
  226.         If (STRING001 == "HOME") Then
  227.             STRING011 = ""
  228.             PROC003()
  229.         Endif
  230.         If (STRING001 == "DEL") Then
  231.             STRING013 = ScrText(GetX() + 1, 22, 59, 0)
  232.             INTEGER004 = GetX()
  233.             AnsiPos GetX(), 22
  234.             Print STRING013 + " "
  235.             AnsiPos INTEGER004, 22
  236.         Endif
  237.         If (STRING001 == Chr(13)) Goto LABEL007
  238.         If (STRING001 == "INS") Goto LABEL005
  239.         If (STRING001 == "DEL") Then
  240.             TSTRING014(1) = "NOONE"
  241.             If (TINTEGER014(1) == 0) TINTEGER014(2) = 1
  242.             If (TINTEGER014(1) == 1) TINTEGER014(2) = 0
  243.             FOpen 1, PPEPath() + "THEMENU.USR", 2, 0
  244.             FGet 1, STRING015
  245.             While (TSTRING014(1) <> "") Do
  246.                 FGet 1, TSTRING014(1)
  247.                 If (TSTRING014(1) <> U_Name()) FGet 1, TINTEGER014(1)
  248.                 If (TSTRING014(1) == U_Name()) FPutLn 1, TINTEGER014(2)
  249.             EndWhile
  250.             Print "@X09■ DONE"
  251.             Delay 3
  252.             FClose 1
  253.             Goto LABEL001
  254.         Endif
  255.     EndWhile
  256.     End
  257.  
  258. ;------------------------------------------------------------------------------
  259.  
  260.     Procedure PROC001()
  261.  
  262.     STRING011 = ""
  263.     If (TINTEGER006(INTEGER007) < 1) TINTEGER006(INTEGER007) = TINTEGER011(INTEGER007)
  264.     If (TINTEGER006(INTEGER007) > TINTEGER011(INTEGER007)) TINTEGER006(INTEGER007) = 1
  265.     For INTEGER009 = 1 To TINTEGER011(INTEGER007)
  266.         INTEGER008 = (80 - Len(TSTRING008(INTEGER007, INTEGER009))) / 2
  267.         AnsiPos INTEGER008, INTEGER009 + 11
  268.         If (INTEGER009 <> TINTEGER006(INTEGER007)) Print STRING003 + TSTRING008(INTEGER007, INTEGER009) + "@X07"
  269.         If (INTEGER009 == TINTEGER006(INTEGER007)) Print STRING002 + TSTRING008(INTEGER007, INTEGER009) + "@X07"
  270.     Next
  271.     Print "@X07"
  272.     AnsiPos 1, 22
  273.     ClrEol
  274.     If (INTEGER003 > 1) INTEGER003 = 0
  275.     If (INTEGER003 == 0) Print STRING007 + TSTRING009(INTEGER007, TINTEGER006(INTEGER007)) + " " + STRING011
  276.     If (INTEGER003 == 1) Print "@X08···-─ DiRecT CommAnD  : @X07" + STRING011
  277.  
  278.     EndProc
  279.  
  280.  
  281. ;------------------------------------------------------------------------------
  282.  
  283.     Procedure PROC002()
  284.  
  285.     STRING011 = ""
  286.     Print "@X08"
  287.     For INTEGER009 = 11 To INTEGER005 + 11
  288.         AnsiPos 1, INTEGER009
  289.         ClrEol
  290.     Next
  291.     If (INTEGER007 > 4) INTEGER007 = 1
  292.     If (INTEGER007 < 1) INTEGER007 = 4
  293.     For INTEGER009 = 1 To 4
  294.         If (INTEGER009 == INTEGER007) Then
  295.             AnsiPos (INTEGER009 - 1) * 20 + (20 - Len(TSTRING010(INTEGER009))) / 2, 9
  296.             Print STRING006 + TSTRING010(INTEGER009)
  297.         Endif
  298.         If (INTEGER009 <> INTEGER007) Then
  299.             AnsiPos (INTEGER009 - 1) * 20 + (20 - Len(TSTRING010(INTEGER009))) / 2, 9
  300.             Print STRING005 + TSTRING010(INTEGER009)
  301.         Endif
  302.         Print "@X07"
  303.     Next
  304.     For INTEGER009 = 1 To TINTEGER011(INTEGER007)
  305.         INTEGER008 = (80 - Len(TSTRING008(INTEGER007, INTEGER009))) / 2
  306.         AnsiPos INTEGER008, INTEGER009 + 11
  307.         If (INTEGER009 <> TINTEGER006(INTEGER007)) Print STRING003 + TSTRING008(INTEGER007, INTEGER009) + "@X07"
  308.         If (INTEGER009 == TINTEGER006(INTEGER007)) Print STRING002 + TSTRING008(INTEGER007, INTEGER009) + "@X07"
  309.     Next
  310.     AnsiPos 1, 22
  311.     ClrEol
  312.     If (INTEGER003 > 1) INTEGER003 = 0
  313.     If (INTEGER003 == 0) Print STRING007 + TSTRING009(INTEGER007, TINTEGER006(INTEGER007)) + " " + STRING011
  314.     If (INTEGER003 == 1) Print "@X08···-─ Direct CommAnD  : @X07" + STRING011
  315.  
  316.     EndProc
  317.  
  318.  
  319. ;------------------------------------------------------------------------------
  320.  
  321.     Procedure PROC003()
  322.  
  323.     AnsiPos 1, 22
  324.     ClrEol
  325.     If (INTEGER003 > 1) INTEGER003 = 0
  326.     If (INTEGER003 == 0) Print STRING007 + TSTRING009(INTEGER007, TINTEGER006(INTEGER007)) + " " + STRING011
  327.     If (INTEGER003 == 1) Print "@X08···-─ Direct CommAnD  : @X07" + STRING011
  328.  
  329.     EndProc
  330.  
  331.     :LABEL005
  332.     Cls
  333.     AnsiPos 1, 1
  334.     Print "@X0D·∙─────═══════ @X0FTHE MENU - HELP!@X0D ═══════─────∙·"
  335.     Newline
  336.     Newline
  337.     PrintLn "- @X07Arrow Keys to choose Heads/Commands"
  338.     PrintLn "- @X07RETURN to execute comandline"
  339.     PrintLn "- @X07END to switch between DIRECT COMMAND-MODE and ASSISTED-MODE"
  340.     PrintLn "- @X07HOME to delete ur manual entry"
  341.     PrintLn "- @X07ESC to quit THE MENU"
  342.     PrintLn "- @X07DEL to change default flag 4 menu!"
  343.     PrintLn "- @X07INS to view this"
  344.     Newline
  345.     PrintLn "@X08                                                       THE MENU coded by cL!"
  346.     Newline
  347.     Wait
  348.     Goto LABEL004
  349.     End
  350.     :LABEL006
  351.     DispFile STRING015, 1
  352.     Stop
  353.     :LABEL007
  354.     KeyFlush
  355.     KbdStuff Chr(13)
  356.     KbdStuff Chr(13)
  357.     STRING012 = ScrText(26, 22, 59, 0)
  358.     KbdString STRING012 + Chr(13)
  359.  
  360. ;------------------------------------------------------------------------------
  361. ;
  362. ; Usage report (before postprocessing)
  363. ;
  364. ; ■ Statements used :
  365. ;
  366. ;    2       End
  367. ;    3       Cls
  368. ;    4       ClrEol
  369. ;    1       Wait
  370. ;    46      Goto 
  371. ;    64      Let 
  372. ;    47      Print 
  373. ;    9       PrintLn 
  374. ;    64      If 
  375. ;    1       DispFile 
  376. ;    3       FOpen 
  377. ;    1       FAppend 
  378. ;    4       FClose 
  379. ;    18      FGet 
  380. ;    3       FPutLn 
  381. ;    1       GetUser
  382. ;    1       Delay 
  383. ;    4       Newline
  384. ;    1       Stop
  385. ;    2       KbdStuff 
  386. ;    39      AnsiPos 
  387. ;    1       KbdString 
  388. ;    2       KeyFlush
  389. ;    3       EndProc
  390. ;
  391. ;
  392. ; ■ Functions used :
  393. ;
  394. ;    2       *
  395. ;    4       /
  396. ;    56      +
  397. ;    9       -
  398. ;    38      ==
  399. ;    21      <>
  400. ;    10      <
  401. ;    6       <=
  402. ;    9       >
  403. ;    12      >=
  404. ;    29      !
  405. ;    26      &&
  406. ;    6       ||
  407. ;    4       Len(
  408. ;    9       Chr()
  409. ;    4       U_Name()
  410. ;    1       U_TimeOn()
  411. ;    2       Inkey()
  412. ;    1       CurConf()
  413. ;    4       PPEPath()
  414. ;    1       TokenStr()
  415. ;    3       GetX()
  416. ;    2       ScrText()
  417. ;
  418. ;------------------------------------------------------------------------------
  419. ;
  420. ; Analysis flags : No flag
  421. ;
  422. ;------------------------------------------------------------------------------
  423. ;
  424. ; Postprocessing report
  425. ;
  426. ;    6       For/Next
  427. ;    4       While/EndWhile
  428. ;    19      If/Then or If/Then/Else
  429. ;    0       Select Case
  430. ;
  431. ;------------------------------------------------------------------------------
  432. ;                 AEGiS Corp - Break the routines, code against the machines!
  433. ;------------------------------------------------------------------------------
  434.