home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
DP Tool Club 15
/
CD_ASCQ_15_070894.iso
/
vrac
/
pw_menu.zip
/
MENU.PPS
< prev
next >
Wrap
Text File
|
1994-05-17
|
4KB
|
152 lines
STRING NAME(22),PATH(22),DESC(22),DRWY(22),PARAMS(22),DISP(22),CFG,ANSWER,LAST,TEMP,COM
INTEGER IDX,NUM
BOOLEAN RT
CFG = PPEPATH()+"\MENU.IDX"
COM = READLINE(PCBDAT(),52)
IF (LEFT(COM,3) = "NON") THEN
COM = "LOCAL"
GOTO START
ENDIF
IF (LEFT(COM,3) = "COM") THEN
IF (S2I(RIGHT(COM,1),10) > 2) THEN
COM = "PORT:"+READLINE(PCBDAT(),159)+","+READLINE(PCBDAT(),158)
ENDIF
ELSEIF (LEFT(COM,3) = "POR") THEN
COM = "COM"+MID(COM,5,1)+"F"
ENDIF
:START
IF (!EXIST(CFG)) THEN
NEWLINE
INPUTSTR "The configuration file does not exist. Create it (y/n)",ANSWER,0Eh,1,"YN",LFBEFORE + LFAFTER + FIELDLEN + UPCASE + YESNO
IF (ANSWER = YESCHAR()) THEN
FCREATE 1,CFG,O_RW,S_DN
FCLOSE 1
ENDIF
ENDIF
:GET_INFO
FOPEN 1,CFG,O_RW,S_DN
FSEEK 1,157,SEEK_CUR
IDX = 1
FOR IDX = 1 TO 22
FREAD 1,NAME(IDX),15
FREAD 1,PATH(IDX),60
FREAD 1,DESC(IDX),60
FREAD 1,DRWY(IDX),1
FREAD 1,PARAMS(IDX),20
FREAD 1,DISP(IDX),1
NEXT
IF (!ANSION()) GOTO NO_ANSI
:HAS_ANSI
CLS
IDX = 1
WHILE (!NAME(IDX) = "") DO
PRINTLN "@X0E",IDX,". - @X0F",RTRIM(NAME(IDX)," ")," @X03",RTRIM(DESC(IDX)," ")
INC IDX
ENDWHILE
LAST = (GETY()-2)
NEWLINE
PRINTLN "@X0BUse the cursor control keys to select, press `Enter' to run, Q to quit@X07"
ANSIPOS 1,1
PRINT "@X3E",STRING(GETY()),". - @X3F",RTRIM(NAME(GETY())," ")," @X30",RTRIM(DESC(GETY())," "),"@X07"
:LOOP
TEMP = ""
WHILE (TEMP = "") DO
TEMP = INKEY()
ENDWHILE
IF (TEMP = "UP") GOTO UP
IF (TEMP = "DOWN") GOTO DOWN
IF (TEMP = CHR(13)) GOTO RUN
IF (TEMP = "Q") GOTO END
IF (TEMP = "q") GOTO END
GOTO LOOP
:UP
IF ((GETY()-1) < 1) THEN
ANSIPOS 1,GETY()
PRINT "@X0E",GETY(),". - @X0F",RTRIM(NAME(GETY())," ")," @X03",RTRIM(DESC(GETY())," "),"@X07"
ANSIPOS 1,(LAST+1)
PRINT "@X3E",STRING(GETY()),". - @X3F",RTRIM(NAME(GETY())," ")," @X30",RTRIM(DESC(GETY())," "),"@X07"
GOTO LOOP
ENDIF
ANSIPOS 1,GETY()
PRINT "@X0E",GETY(),". - @X0F",RTRIM(NAME(GETY())," ")," @X03",RTRIM(DESC(GETY())," "),"@X07"
ANSIPOS 1,(GETY()-1)
PRINT "@X3E",STRING(GETY()),". - @X3F",RTRIM(NAME(GETY())," ")," @X30",RTRIM(DESC(GETY())," "),"@X07"
GOTO LOOP
:DOWN
IF (GETY() > LAST) THEN
ANSIPOS 1,GETY()
PRINT "@X0E",GETY(),". - @X0F",RTRIM(NAME(GETY())," ")," @X03",RTRIM(DESC(GETY())," "),"@X07"
ANSIPOS 1,1
PRINT "@X3E",STRING(GETY()),". - @X3F",RTRIM(NAME(GETY())," ")," @X30",RTRIM(DESC(GETY())," "),"@X07"
GOTO LOOP
ENDIF
ANSIPOS 1,GETY()
PRINT "@X0E",GETY(),". - @X0F",RTRIM(NAME(GETY())," ")," @X03",RTRIM(DESC(GETY())," "),"@X07"
ANSIPOS 1,(GETY()+1)
PRINT "@X3E",STRING(GETY()),". - @X3F",RTRIM(NAME(GETY())," ")," @X30",RTRIM(DESC(GETY())," "),"@X07"
GOTO LOOP
:NO_ANSI
CLS
IDX = 1
WHILE (!NAME(IDX) = "") DO
PRINTLN "@X0E",IDX,". - @X0F",RTRIM(NAME(IDX)," ")," @X03",RTRIM(DESC(IDX)," ")
INC IDX
ENDWHILE
NEWLINE
ANSWER = ""
INPUTSTR "Enter the number you wish to run (Q = quit)",ANSWER,0Eh,2,"0123456789Q",LFBEFORE + LFAFTER + FIELDLEN + UPCASE
IF (ANSWER = "Q") GOTO END
IF (ANSWER = "") GOTO END
GOTO RUN
:RUN
FCLOSE 1
IF (ANSION()) THEN
NUM = GETY()
ENDIF
CLS
IF (DISP(NUM) = "Y") GOTO DISPLAY
IF (RIGHT(STRIP(PATH(NUM)," "),3) = "") PRINTLN "@X0EPlease notify the Sysop this application is improperly configured@X07"
IF (RIGHT(STRIP(PATH(NUM)," "),3) = "PPE") THEN
CLS
CALL PATH(NUM)
ELSEIF (RIGHT(STRIP(PATH(NUM)," "),3) = "EXE") THEN
IF (DRWY(NUM) = "Y") THEN
SHELL TRUE,RT,"DOORWAY.EXE "+COM+" /V:D^O /G:ON /O: /S:"+GETENV("PCBDIR")+" /P:"+RTRIM(PATH(NUM)," ")," "+PARAMS(NUM)
ELSE
SHELL TRUE,RT,PATH(NUM),PARAMS(NUM)
ENDIF
ELSEIF (RIGHT(STRIP(PATH(NUM)," "),3) = "COM") THEN
IF (DRWY(NUM) = "Y") THEN
SHELL TRUE,RT,"DOORWAY.EXE "+COM+" /V:D^O /G:ON /O: /S:"+GETENV("PCBDIR")+" /P:"+PATH(NUM),PARAMS(NUM)
ELSE
SHELL TRUE,RT,PATH(NUM),PARAMS(NUM)
ENDIF
ELSEIF (RIGHT(STRIP(PATH(NUM)," "),3) = "BAT") THEN
IF (DRWY(NUM) = "Y") THEN
SHELL TRUE,RT,"DOORWAY.EXE "+COM+" /V:D^O /G:ON /O: /S:"+GETENV("PCBDIR")+" /C:VIA /P:"+PATH(NUM),PARAMS(NUM)
ELSE
SHELL TRUE,RT,PATH(NUM),PARAMS(NUM)
ENDIF
ENDIF
GOTO GET_INFO
:DISPLAY
CLS
DISPFILE PATH(NUM),LANG+SEC+GRAPH
WAIT
GOTO GET_INFO
:END
CLS