home *** CD-ROM | disk | FTP | other *** search
/ DP Tool Club 15 / CD_ASCQ_15_070894.iso / vrac / pw_menu.zip / MENU.PPS < prev    next >
Text File  |  1994-05-17  |  4KB  |  152 lines

  1. STRING NAME(22),PATH(22),DESC(22),DRWY(22),PARAMS(22),DISP(22),CFG,ANSWER,LAST,TEMP,COM
  2. INTEGER IDX,NUM
  3. BOOLEAN RT
  4.  
  5. CFG = PPEPATH()+"\MENU.IDX"
  6. COM = READLINE(PCBDAT(),52)
  7.  
  8. IF (LEFT(COM,3) = "NON") THEN
  9.   COM = "LOCAL"
  10.   GOTO START
  11. ENDIF
  12. IF (LEFT(COM,3) = "COM") THEN
  13.   IF (S2I(RIGHT(COM,1),10) > 2) THEN
  14.     COM = "PORT:"+READLINE(PCBDAT(),159)+","+READLINE(PCBDAT(),158)
  15.   ENDIF
  16. ELSEIF (LEFT(COM,3) = "POR") THEN
  17.   COM = "COM"+MID(COM,5,1)+"F"
  18. ENDIF
  19.  
  20. :START
  21. IF (!EXIST(CFG)) THEN
  22.   NEWLINE
  23.   INPUTSTR "The configuration file does not exist.  Create it (y/n)",ANSWER,0Eh,1,"YN",LFBEFORE + LFAFTER + FIELDLEN + UPCASE + YESNO
  24.   IF (ANSWER = YESCHAR()) THEN
  25.     FCREATE 1,CFG,O_RW,S_DN
  26.     FCLOSE 1
  27.   ENDIF
  28. ENDIF
  29.  
  30. :GET_INFO
  31. FOPEN 1,CFG,O_RW,S_DN
  32. FSEEK 1,157,SEEK_CUR
  33. IDX = 1
  34. FOR IDX = 1 TO 22
  35.   FREAD 1,NAME(IDX),15
  36.   FREAD 1,PATH(IDX),60
  37.   FREAD 1,DESC(IDX),60
  38.   FREAD 1,DRWY(IDX),1
  39.   FREAD 1,PARAMS(IDX),20
  40.   FREAD 1,DISP(IDX),1
  41. NEXT
  42.  
  43. IF (!ANSION()) GOTO NO_ANSI
  44.  
  45. :HAS_ANSI
  46. CLS
  47. IDX = 1
  48. WHILE (!NAME(IDX) = "") DO
  49.   PRINTLN "@X0E",IDX,". - @X0F",RTRIM(NAME(IDX)," ")," @X03",RTRIM(DESC(IDX)," ")
  50.   INC IDX
  51. ENDWHILE
  52. LAST = (GETY()-2)
  53. NEWLINE
  54. PRINTLN "@X0BUse the cursor control keys to select, press `Enter' to run, Q to quit@X07"
  55. ANSIPOS 1,1
  56. PRINT "@X3E",STRING(GETY()),". - @X3F",RTRIM(NAME(GETY())," ")," @X30",RTRIM(DESC(GETY())," "),"@X07"
  57.  
  58. :LOOP
  59. TEMP = ""
  60. WHILE (TEMP = "") DO
  61.   TEMP = INKEY()
  62. ENDWHILE
  63. IF (TEMP = "UP") GOTO UP
  64. IF (TEMP = "DOWN") GOTO DOWN
  65. IF (TEMP = CHR(13)) GOTO RUN
  66. IF (TEMP = "Q") GOTO END
  67. IF (TEMP = "q") GOTO END
  68. GOTO LOOP
  69.  
  70. :UP
  71. IF ((GETY()-1) < 1) THEN
  72.   ANSIPOS 1,GETY()
  73.   PRINT "@X0E",GETY(),". - @X0F",RTRIM(NAME(GETY())," ")," @X03",RTRIM(DESC(GETY())," "),"@X07"
  74.   ANSIPOS 1,(LAST+1)
  75.   PRINT "@X3E",STRING(GETY()),". - @X3F",RTRIM(NAME(GETY())," ")," @X30",RTRIM(DESC(GETY())," "),"@X07"
  76.   GOTO LOOP
  77. ENDIF
  78. ANSIPOS 1,GETY()
  79. PRINT "@X0E",GETY(),". - @X0F",RTRIM(NAME(GETY())," ")," @X03",RTRIM(DESC(GETY())," "),"@X07"
  80. ANSIPOS 1,(GETY()-1)
  81. PRINT "@X3E",STRING(GETY()),". - @X3F",RTRIM(NAME(GETY())," ")," @X30",RTRIM(DESC(GETY())," "),"@X07"
  82. GOTO LOOP
  83.  
  84. :DOWN
  85. IF (GETY() > LAST) THEN
  86.   ANSIPOS 1,GETY()
  87.   PRINT "@X0E",GETY(),". - @X0F",RTRIM(NAME(GETY())," ")," @X03",RTRIM(DESC(GETY())," "),"@X07"
  88.   ANSIPOS 1,1
  89.   PRINT "@X3E",STRING(GETY()),". - @X3F",RTRIM(NAME(GETY())," ")," @X30",RTRIM(DESC(GETY())," "),"@X07"
  90.   GOTO LOOP
  91. ENDIF
  92. ANSIPOS 1,GETY()
  93. PRINT "@X0E",GETY(),". - @X0F",RTRIM(NAME(GETY())," ")," @X03",RTRIM(DESC(GETY())," "),"@X07"
  94. ANSIPOS 1,(GETY()+1)
  95. PRINT "@X3E",STRING(GETY()),". - @X3F",RTRIM(NAME(GETY())," ")," @X30",RTRIM(DESC(GETY())," "),"@X07"
  96. GOTO LOOP
  97.  
  98. :NO_ANSI
  99. CLS
  100. IDX = 1
  101. WHILE (!NAME(IDX) = "") DO
  102.   PRINTLN "@X0E",IDX,". - @X0F",RTRIM(NAME(IDX)," ")," @X03",RTRIM(DESC(IDX)," ")
  103.   INC IDX
  104. ENDWHILE
  105. NEWLINE
  106. ANSWER = ""
  107. INPUTSTR "Enter the number you wish to run (Q = quit)",ANSWER,0Eh,2,"0123456789Q",LFBEFORE + LFAFTER + FIELDLEN + UPCASE
  108. IF (ANSWER = "Q") GOTO END
  109. IF (ANSWER = "") GOTO END
  110. GOTO RUN
  111.  
  112. :RUN
  113. FCLOSE 1
  114. IF (ANSION()) THEN
  115.   NUM = GETY()
  116. ENDIF
  117. CLS
  118. IF (DISP(NUM) = "Y") GOTO DISPLAY
  119. IF (RIGHT(STRIP(PATH(NUM)," "),3) = "") PRINTLN "@X0EPlease notify the Sysop this application is improperly configured@X07"
  120. IF (RIGHT(STRIP(PATH(NUM)," "),3) = "PPE") THEN
  121.   CLS
  122.   CALL PATH(NUM)
  123. ELSEIF (RIGHT(STRIP(PATH(NUM)," "),3) = "EXE") THEN
  124.   IF (DRWY(NUM) = "Y") THEN
  125.     SHELL TRUE,RT,"DOORWAY.EXE "+COM+"  /V:D^O /G:ON /O: /S:"+GETENV("PCBDIR")+" /P:"+RTRIM(PATH(NUM)," ")," "+PARAMS(NUM)
  126.   ELSE
  127.     SHELL TRUE,RT,PATH(NUM),PARAMS(NUM)
  128.   ENDIF
  129. ELSEIF (RIGHT(STRIP(PATH(NUM)," "),3) = "COM") THEN
  130.   IF (DRWY(NUM) = "Y") THEN
  131.     SHELL TRUE,RT,"DOORWAY.EXE "+COM+"  /V:D^O /G:ON /O: /S:"+GETENV("PCBDIR")+" /P:"+PATH(NUM),PARAMS(NUM)
  132.   ELSE
  133.     SHELL TRUE,RT,PATH(NUM),PARAMS(NUM)
  134.   ENDIF
  135. ELSEIF (RIGHT(STRIP(PATH(NUM)," "),3) = "BAT") THEN
  136.   IF (DRWY(NUM) = "Y") THEN
  137.     SHELL TRUE,RT,"DOORWAY.EXE "+COM+"  /V:D^O /G:ON /O: /S:"+GETENV("PCBDIR")+" /C:VIA /P:"+PATH(NUM),PARAMS(NUM)
  138.   ELSE
  139.     SHELL TRUE,RT,PATH(NUM),PARAMS(NUM)
  140.   ENDIF
  141. ENDIF
  142. GOTO GET_INFO
  143.  
  144. :DISPLAY
  145. CLS
  146. DISPFILE PATH(NUM),LANG+SEC+GRAPH
  147. WAIT
  148. GOTO GET_INFO
  149.  
  150. :END
  151. CLS
  152.