home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Carsten's PPE Collection
/
Carstens_PPE_Collection_2007.zip
/
S
/
SACULBY1.ZIP
/
ULBYPRO.PPS
< prev
Wrap
Text File
|
1995-12-03
|
18KB
|
599 lines
;ULBY PRO v1.1 BY FoX OF SAC iN 1995
STRING COLOR(3),DEFCOLOR,LEVEL,ULBYNAME,LETTER,TXTSTR(6),INPUT,NAME,SEARCHSTR(2),CHOICE(3),MAGIC
INTEGER ANSIPOS(3),POSITION,MAXPOS(2),MAXLEN,COUNTER,NEWSTR
:HIDECHECK1
GETUSER
IF (EXIST(PPEPATH()+"ULBYPRO.HID")) THEN FOPEN 1,PPEPATH()+"ULBYPRO.HID",O_RD,S_DN
GOTO HIDECHECK2
ENDIF
GOTO CHECKCFG
:HIDECHECK2
FGET 1,NAME
:HIDECHECK3
NAME=(UPPER(NAME))
NAME=STRIP(NAME,CHR(32))
IF (NAME=U_NAME()) GOTO TROWOUT
IF (NAME="") GOTO CHECKCFG
GOTO HIDECHECK2
:CHECKCFG
FCLOSE 1
IF (!EXIST(PPEPATH()+"ULBYPRO.CFG")) THEN PRINTLN "@X8CCONFiG FiLE NOT FOUND ! CHECK PATH !"
GOTO DONE
ENDIF
:GETCONFIG
FOPEN 1,PPEPATH()+"ULBYPRO.CFG",O_RD,S_DN
FGET 1,DEFCOLOR
FGET 1,LEVEL
FGET 1,ULBYNAME
FGET 1,MAXLEN
FCLOSE 1
:PREPSTR
DEFCOLOR=UPPER(DEFCOLOR):DEFCOLOR=STRIP(DEFCOLOR,CHR(32))
ULBYNAME=UPPER(ULBYNAME):ULBYNAME=STRIP(ULBYNAME,CHR(32))
:SETDEFAULT
ANSIPOS(1)=28
ANSIPOS(2)=6
ANSIPOS(3)=53
POSITION=1
NAME=U_NAME()
CHOICE(1)="@X10"+CHR(219)+"@X0FYES/no"
CHOICE(2)="@X0Fyes/NO@X10"+CHR(219)+"@X0F"
TXTSTR(6)=" @X0FSTRINGS FOUND"
MAGIC="@X10"+CHR(219)
:CHECKDATA
IF (!EXIST(PPEPATH()+ULBYNAME)) THEN PRINTLN "@X8C"+ULBYNAME+" NOT FOUND ! CHECK PATH/NAME !"
GOTO DONE
ENDIF
:DEFINECOLOR
IF (DEFCOLOR="BLUE") THEN COLOR(1)="@X09":COLOR(2)="@X01":COLOR(3)="@X1F"
ELSEIF (DEFCOLOR="GREEN") THEN COLOR(1)="@X0A":COLOR(2)="@X02":COLOR(3)="@X2F"
ELSEIF (DEFCOLOR="RED") THEN COLOR(1)="@X0C":COLOR(2)="@X04":COLOR(3)="@X4F"
ELSEIF (DEFCOLOR="PURPLE") THEN COLOR(1)="@X0D":COLOR(2)="@X05":COLOR(3)="@X5F"
ELSEIF (DEFCOLOR="YELLOW") THEN COLOR(1)="@X0E":COLOR(2)="@X07":COLOR(3)="@XE0"
ELSEIF (DEFCOLOR="CYAN") THEN COLOR(1)="@X0B":COLOR(2)="@X03":COLOR(3)="@X3F"
ELSEIF (DEFCOLOR="GREY") THEN COLOR(1)="@X07":COLOR(2)="@X08":COLOR(3)="@X70"
ELSE PRINTLN "@X8CPLEASE USE ONLY BLUE/GREEN/RED/PURPLE/YELLOW/CYAN OR GREY FOR COLORS !"
GOTO DONE
ENDIF
:CHECKLENGTH
IF (MAXLEN>51) THEN PRINTLN "@X8CPLEASE ALLOW MAXIMUM 51 CHARS FOR INPUT LENGTH !"
GOTO DONE
ENDIF
:GETSTRING1
FOPEN 1,PPEPATH()+ULBYNAME,O_RD,S_DN
:GETSTRING2
FGET 1,TXTSTR(1)
FGET 1,TXTSTR(2)
IF (TXTSTR(1)=NAME) THEN FCLOSE 1:GOTO BUILDSCR1
ELSEIF (TXTSTR(1)="") THEN FCLOSE 1:NEWSTR=1:TXTSTR(2)=NAME:GOTO BUILDSCR1
ENDIF
GOTO GETSTRING2
:BUILDSCR1
TXTSTR(3)=TXTSTR(2)
TXTSTR(3)=STRIPATX(TXTSTR(3))
SEARCHSTR(1)=""
SEARCHSTR(2)=""
DEFCOLOR
CLS
NEWLINES 4
PRINTLN SPACE(25)+COLOR(1)+"■"+COLOR(2)+"───[@X0FULBY PRO BY FoX/SAC"+COLOR(2)+"]───"+COLOR(1)+"■"
PRINTLN SPACE(25)+COLOR(2)+"│ [A] CHANGE ULBY STRING "+COLOR(2)+"│"
:CHECKSEC2
IF (LEVEL>U_SEC) THEN LETTER=CHR(66):MAXPOS(1)=2:MAXPOS(2)=8:GOTO BUILDSCR3
ELSE
LETTER=CHR(71)
MAXPOS(1)=7
MAXPOS(2)=13
ENDIF
:BUILDSCR2
PRINTLN SPACE(25)+COLOR(2)+"│ [B] VIEW ALL STRINGS "+COLOR(2)+"│"
PRINTLN SPACE(25)+COLOR(2)+"│ [C] GET SPECIFIC STRING "+COLOR(2)+"│"
PRINTLN SPACE(25)+COLOR(2)+"│ [D] CLEAN STRING LIST "+COLOR(2)+"│"
PRINTLN SPACE(25)+COLOR(2)+"│ [E] VIEW ULBYPRO.HID "+COLOR(2)+"│"
PRINTLN SPACE(25)+COLOR(2)+"│ [F] HIDE/UNHIDE USER "+COLOR(2)+"│"
:BUILDSCR3
PRINTLN SPACE(25)+COLOR(2)+"│ ["+LETTER+"] QUIT ULBY PRO "+COLOR(2)+"│"
PRINTLN SPACE(25)+COLOR(1)+"■"+COLOR(2)+"──[@X0FA-"+LETTER+"/=SELECTS,H=HELP"+COLOR(2)+"]──"+COLOR(1)+"■"
NEWLINE
PRINTLN SPACE(10)+COLOR(1)+"■"+COLOR(2)+"──────────────────[@X0FCURRENT ULBY STRING"+COLOR(2)+"]──────────────────"+COLOR(1)+"■"
PRINTLN SPACE(10)+COLOR(2)+"│ @X0F"+TXTSTR(2)+SPACE(54-LEN(TXTSTR(3)))+COLOR(2)+"│"
PRINTLN SPACE(10)+COLOR(1)+"■"+COLOR(2)+"─────────────────────────────────────────────────────────"+COLOR(1)+"■"
:DEFINEPOS
TXTSTR(4)=SCRTEXT(ANSIPOS(1),ANSIPOS(2),25,0)
ANSIPOS ANSIPOS(1),ANSIPOS(2)
PRINT COLOR(3)+TXTSTR(4)+MAGIC
ANSIPOS ANSIPOS(3),ANSIPOS(2)
:PROMPT
INPUT=INKEY()
INPUT=UPPER(INPUT)
IF (INPUT="DOWN") THEN POSITION=POSITION+1:GOSUB MOVE1
ELSEIF (INPUT="2") THEN POSITION=POSITION+1:GOSUB MOVE1
ELSEIF (INPUT="UP") THEN POSITION=POSITION-1:GOSUB MOVE2
ELSEIF (INPUT="8") THEN POSITION=POSITION-1:GOSUB MOVE2
ELSEIF (INPUT="A") THEN POSITION=1:GOTO MOVE3
ELSEIF (INPUT="B") THEN POSITION=2:GOTO MOVE3
ELSEIF (LEVEL>U_SEC) GOTO PROMPT2
ELSEIF (INPUT="C") THEN POSITION=3:GOTO MOVE3
ELSEIF (INPUT="D") THEN POSITION=4:GOTO MOVE3
ELSEIF (INPUT="E") THEN POSITION=5:GOTO MOVE3
ELSEIF (INPUT="F") THEN POSITION=6:GOTO MOVE3
ELSEIF (INPUT="G") THEN POSITION=7:GOTO MOVE3
:PROMPT2
ENDIF
IF (INPUT="H") GOTO HELPSCR1
IF (INPUT="Q") GOTO DONE
IF (INPUT=CHR(27)) GOTO DONE
IF (INPUT=CHR(13)) GOTO COMMAND
GOTO PROMPT
:MOVE1
ANSIPOS ANSIPOS(1),ANSIPOS(2)
PRINT COLOR(2)+TXTSTR(4)
IF (POSITION>MAXPOS(1)) THEN ANSIPOS(2)=5:POSITION=1
ENDIF
ANSIPOS(2)=ANSIPOS(2)+1
TXTSTR(4)=SCRTEXT(ANSIPOS(1),ANSIPOS(2),25,0)
ANSIPOS ANSIPOS(1),ANSIPOS(2)
PRINT COLOR(3)+TXTSTR(4)+MAGIC
ANSIPOS 53,ANSIPOS(2)
RETURN
:MOVE2
ANSIPOS ANSIPOS(1),ANSIPOS(2)
PRINT COLOR(2)+TXTSTR(4)
IF (POSITION<1) THEN ANSIPOS(2)=MAXPOS(2):POSITION=MAXPOS(1)
ENDIF
ANSIPOS(2)=ANSIPOS(2)-1
TXTSTR(4)=SCRTEXT(ANSIPOS(1),ANSIPOS(2),25,0)
ANSIPOS ANSIPOS(1),ANSIPOS(2)
PRINT COLOR(3)+TXTSTR(4)+MAGIC
ANSIPOS 53,ANSIPOS(2)
RETURN
:MOVE3
ANSIPOS ANSIPOS(1),ANSIPOS(2)
PRINT COLOR(2)+TXTSTR(4)
IF (POSITION=1) ANSIPOS(2)=6
IF (POSITION=2) ANSIPOS(2)=7
IF (POSITION=3) ANSIPOS(2)=8
IF (POSITION=4) ANSIPOS(2)=9
IF (POSITION=5) ANSIPOS(2)=10
IF (POSITION=6) ANSIPOS(2)=11
IF (POSITION=7) ANSIPOS(2)=12
TXTSTR(4)=SCRTEXT(ANSIPOS(1),ANSIPOS(2),25,0)
ANSIPOS ANSIPOS(1),ANSIPOS(2)
PRINT COLOR(3)+TXTSTR(4)+MAGIC
ANSIPOS 53,ANSIPOS(2)
:COMMAND
IF (POSITION=1) GOTO CHANGESTR
IF (POSITION=2) GOTO VIEWALL1
IF (POSITION=3) GOTO GETSPECSTR1
IF (POSITION=4) GOTO CLNLST1
IF (POSITION=5) GOTO VIEWHIDE1
IF (POSITION=6) GOTO HIDEUSER1
IF (POSITION=7) GOTO DONE
GOTO PROMPT
:HELPSCR1
DEFCOLOR
CLS
NEWLINE
PRINTLN COLOR(1)+"■"+COLOR(2)+"───────────────────────────[@X0FULBYPRO ONLINE HELP"+COLOR(2)+"]─────────────────────────────"+COLOR(1)+"■"
PRINTLN ""+COLOR(2)+"│ ["+COLOR(1)+"A"+COLOR(2)+"] @X0FCHANGE CURRENT ULBY STRING"+SPACE(46)+""+COLOR(2)+"│"
PRINTLN ""+COLOR(2)+"│ "+COLOR(1)+"Change the current ULBY string (for default YOUR string). Its possible "+COLOR(2)+"│"
PRINTLN ""+COLOR(2)+"│ "+COLOR(1)+"to use any PCB color and/or ASCII code."+SPACE(33)+""+COLOR(2)+"│"
IF (LEVEL>U_SEC) GOTO HELPSCR2
PRINTLN ""+COLOR(2)+"│ ["+COLOR(1)+"B"+COLOR(2)+"] @X0FVIEW ALL STRINGS"+SPACE(56)+""+COLOR(2)+"│"
PRINTLN ""+COLOR(2)+"│ "+COLOR(1)+"Shows a complete list of all ULBY strings."+SPACE(30)+""+COLOR(2)+"│"
PRINTLN ""+COLOR(2)+"│ ["+COLOR(1)+"C"+COLOR(2)+"] @X0FGET SPECIFIC STRING"+SPACE(53)+""+COLOR(2)+"│"
PRINTLN ""+COLOR(2)+"│ "+COLOR(1)+"Load a specific ULBY string from ANY user by entering his user name or "+COLOR(2)+"│"
PRINTLN ""+COLOR(2)+"│ "+COLOR(1)+"a SEARCHSTRING to scan for (all possible matches will be shown)."+SPACE(8)+""+COLOR(2)+"│"
PRINTLN ""+COLOR(2)+"│ ["+COLOR(1)+"D"+COLOR(2)+"] @X0FCLEAN STRING LIST"+SPACE(55)+""+COLOR(2)+"│"
PRINTLN ""+COLOR(2)+"│ "+COLOR(1)+"This will clean up the ULBY list from DELETED users."+SPACE(20)+""+COLOR(2)+"│"
PRINTLN ""+COLOR(2)+"│ ["+COLOR(1)+"E"+COLOR(2)+"] @X0FVIEW ULBYPRO.HID"+SPACE(56)+""+COLOR(2)+"│"
PRINTLN ""+COLOR(2)+"│ "+COLOR(1)+"View ULBYPRO.HID file, that contains all handles of users that are not "+COLOR(2)+"│"
PRINTLN ""+COLOR(2)+"│ "+COLOR(1)+"able to access to this ppe."+SPACE(45)+""+COLOR(2)+"│"
PRINTLN ""+COLOR(2)+"│ ["+COLOR(1)+"F"+COLOR(2)+"] @X0FHIDE/UNHIDE USER"+SPACE(56)+""+COLOR(2)+"│"
PRINTLN ""+COLOR(2)+"│ "+COLOR(1)+"Add or remove user from ULBYPRO.HID. Removed users can access again and "+COLOR(2)+"│"
PRINTLN ""+COLOR(2)+"│ "+COLOR(1)+"added users will be denied for this ppe."+SPACE(32)+""+COLOR(2)+"│"
:HELPSCR2
PRINTLN ""+COLOR(2)+"│ ["+COLOR(1)+LETTER+COLOR(2)+"] @X0FQUIT ULBY PRO"+SPACE(59)+""+COLOR(2)+"│"
PRINTLN ""+COLOR(2)+"│ "+COLOR(1)+"Guess what, leaving to PCB."+SPACE(45)+""+COLOR(2)+"│"
PRINTLN COLOR(1)+"■"+COLOR(2)+"─────────────────────────────────────────────────────────────────────────────"+COLOR(1)+"■"
WAIT
GOTO BUILDSCR1
:CHANGESTR
IF (LEVEL>U_SEC) THEN ANSIPOS(1)=13:ANSIPOS(2)=11:ANSIPOS(3)=ANSIPOS(2)+3
ELSE ANSIPOS(1)=13:ANSIPOS(2)=16:ANSIPOS(3)=ANSIPOS(2)+3
ENDIF
ANSIPOS 1,ANSIPOS(3)
PRINTLN COLOR(1)+" ■"+COLOR(2)+"──────────────────────────[@X0FPOSSIBLE COLOR CODES"+COLOR(2)+"]────────────────────────────"+COLOR(1)+"■"
PRINTLN COLOR(2)+" │ @X0F@sX0F @X0E@sX0E @X0D@sX0E @X0C@sX0C @X0B@sX0B @X0A@sX0A @X09@sX09 @X08@sX08 @X07@sX07 @X06@sX06 @X05@sX05 @X04@sX04 @X03@sX03 @X02@sX02 @X01@sX01"+COLOR(2)+" │"
PRINTLN COLOR(2)+" │ @X1F@sX1F@X01 @X1B@sX1B@X01 @X2F@sX2F@X01 @X20@sX20@X01 @X3F@sX3F@X01 @X31@sX31@X01 @X4F@sX4F@X01 @X4A@sX4A@X01 @X5F@sX5F@X01 @X5D@sX5D@X01 @X6F@sX6F@X01 @X6A@sX6A@X01 @X7F@sX7F@X01 @X78@sX78@X01 @X9F@sX9F"+COLOR(2)+" │"
PRINTLN COLOR(1)+" ■"+COLOR(2)+"────────────────────────────────────────────────────────────────────────────"+COLOR(2)+"■"
ANSIPOS ANSIPOS(1)-1,ANSIPOS(2)
TXTSTR(5)=TXTSTR(2)
INPUTTEXT "",TXTSTR(2),0,MAXLEN
:CHECKCHANGES
IF (TXTSTR(2)=TXTSTR(5)) THEN
ANSIPOS ANSIPOS(1)+19,ANSIPOS(2)+1
PRINT COLOR(2)+"[@X0FNOTHING CHANGED"+COLOR(2)+"]"
ANSIPOS ANSIPOS(1)+27,ANSIPOS(2)+1
PRINT MAGIC
ANSIPOS ANSIPOS(1)+27,ANSIPOS(2)+1
DELAY 25
ANSIPOS(1)=28
ANSIPOS(2)=6
ANSIPOS(3)=53
GOTO BUILDSCR1
ENDIF
:CHANGE1
FCREATE 1,PPEPATH()+"ULBYPRO.##1",O_RW,S_DW
FOPEN 2,PPEPATH()+ULBYNAME,O_RD,S_DN
:CHANGE2
FGET 2,TXTSTR(3)
FGET 2,TXTSTR(4)
IF (TXTSTR(3)=NAME) TXTSTR(4)=TXTSTR(2)
IF (TXTSTR(3)="") GOTO CHANGE3
FPUTLN 1,TXTSTR(3)
FPUTLN 1,TXTSTR(4)
GOTO CHANGE2
:CHANGE3
IF (NEWSTR=1) THEN FPUTLN 1,NAME:FPUTLN 1,TXTSTR(2):NEWSTR=0
ENDIF
FCLOSE 1
FCLOSE 2
DELETE PPEPATH()+ULBYNAME
RENAME PPEPATH()+"ULBYPRO.##1",PPEPATH()+ULBYNAME
ANSIPOS(1)=28
ANSIPOS(2)=6
ANSIPOS(3)=53
GOTO BUILDSCR1
:TROWOUT
FCLOSE 1
DEFCOLOR
CLS
NEWLINES 2
PRINTLN SPACE(12)+"@X0C■@X04──────────────────[@X0FULBY PRO BY FoX/SAC@X04]─────────────────@X0C■"
PRINTLN SPACE(12)+"@X04│ @X0FYOU ARE NOT REGISTERD FOR THIS PPE. CONTACT THE SYSOP. @X04│"
PRINTLN SPACE(12)+"@X0C■@X04────────────────────────────────────────────────────────@X0C■"
NEWLINE
WAIT
CLS
END
:VIEWALL1
COUNTER=1
IF (LEVEL>U_SEC) GOTO DONE
FOPEN 1,PPEPATH()+ULBYNAME,O_RD,S_DN
FCREATE 2,PPEPATH()+"ULBYPRO.##2",O_RW,S_DW
FPUTLN 2,COLOR(1)+"■"+COLOR(2)+"────────────────────────[@X0FCOMPLETE ULBY STRING LIST"+COLOR(2)+"]──────────────────────────"+COLOR(1)+"■"
FPUTLN 2,COLOR(2)+"["+COLOR(1)+"No."+COLOR(2)+"]"+SPACE(1)+COLOR(2)+"["+COLOR(1)+"REALNAME"+COLOR(2)+"]"+SPACE(16)+COLOR(2)+"["+COLOR(1)+"ULBY STRING"+COLOR(2)+"]"
:VIEWALL2
FGET 1,TXTSTR(3)
FGET 1,TXTSTR(4)
IF (TXTSTR(3)="") THEN FCLOSE 1:GOTO VIEWALL3
ENDIF
FPUTLN 2,COLOR(2)+"["+COLOR(1),COUNTER,COLOR(2)+"]"+SPACE(4-LEN(COUNTER))+"@X0F"+TXTSTR(3)+COLOR(2)+SPACE(26-LEN(TXTSTR(3)))+TXTSTR(4)
INC COUNTER
GOTO VIEWALL2
:VIEWALL3
FPUTLN 2,COLOR(1)+"■"+COLOR(2)+"───────────────────────────────[@X0FEND OF LISTING"+COLOR(2)+"]──────────────────────────────"+COLOR(1)+"■"
FCLOSE 1
FCLOSE 2
DEFCOLOR
CLS
DISPFILE PPEPATH()+"ULBYPRO.##2",GRAPH
WAIT
DELETE PPEPATH()+"ULBYPRO.##2"
ANSIPOS(1)=28
ANSIPOS(2)=7
ANSIPOS(3)=53
GOTO BUILDSCR1
:GETSPECSTR1
ANSIPOS 26,15
PRINTLN COLOR(2)+"[@X0FENTER NAME/TEXT TO SCAN FOR"+COLOR(2)+"]"
ANSIPOS 15,16
PRINT SPACE(LEN(TXTSTR(3)))
ANSIPOS 15,16
INPUTTEXT "_",SEARCHSTR(1),0,MAXLEN
:GETSPECSTR2
SEARCHSTR(1)=UPPER(SEARCHSTR(1))
IF (SEARCHSTR(1)="") GOTO GETSPECSTR9
FOPEN 1,PPEPATH()+ULBYNAME,O_RD,S_DN
:GETSPECSTR3
FGET 1,TXTSTR(4)
FGET 1,TXTSTR(5)
TXTSTR(3)=MID(TXTSTR(4),1,LEN(SEARCHSTR(1)))
TXTSTR(3)=RTRIM(TXTSTR(3),CHR(32))
IF (TXTSTR(4)="") GOTO GETSPECSTR4
IF (SEARCHSTR(1)=TXTSTR(3)) GOTO GETSPECSTR5
IF (SEARCHSTR(1)<>TXTSTR(3)) GOTO GETSPECSTR3
:GETSPECSTR4
FCLOSE 1
IF (SEARCHSTR(2)=1) THEN
ANSIPOS 29,17
PRINT COLOR(2)+"[@X0FNO MORE MATCHES FOUND"+COLOR(2)+"]"
ANSIPOS 37,17
PRINT MAGIC
ANSIPOS 37,17
ELSE
ANSIPOS 31,17
PRINT COLOR(2)+"[@X0FNO MATCHES FOUND"+COLOR(2)+"]"
ANSIPOS 42,17
PRINT MAGIC
ANSIPOS 42,17
ENDIF
DELAY 25
ANSIPOS(1)=28
ANSIPOS(2)=8
ANSIPOS(3)=53
GOTO BUILDSCR1
:GETSPECSTR5
ANSIPOS 15,16
PRINT COLOR(1)+"FOUND "+COLOR(2)+": @X0F"+TXTSTR(4)+" "+COLOR(1)+"USE?"
ANSIPOS 28+LEN(TXTSTR(4)),16
PRINT CHOICE(1)+SPACE(31-LEN(TXTSTR(4)))
ANSIPOS 28+LEN(TXTSTR(4)),16
CHOICE(3)=CHR(89)
:GETSPECSTR6
INPUT=INKEY()
IF (INPUT="LEFT") GOSUB GETSPECSTR7
IF (INPUT="RIGHT") GOSUB GETSPECSTR7
IF (INPUT=CHR(13)) GOTO GETSPECSTR8
IF (INPUT=CHR(27)) GOTO GETSPECSTR9
GOTO GETSPECSTR6
:GETSPECSTR7
IF (CHOICE(3)=CHR(89)) THEN
ANSIPOS 29+LEN(TXTSTR(4)),16
PRINT CHOICE(2)+SPACE(31-LEN(TXTSTR(4)))
ANSIPOS 35+LEN(TXTSTR(4)),16
CHOICE(3)=CHR(78)
RETURN
ELSEIF (CHOICE(3)=CHR(78)) THEN
ANSIPOS 28+LEN(TXTSTR(4)),16
PRINT CHOICE(1)+SPACE(31-LEN(TXTSTR(4)))
ANSIPOS 28+LEN(TXTSTR(4)),16
CHOICE(3)=CHR(89)
RETURN
ENDIF
:GETSPECSTR8
IF (CHOICE(3)=CHR(78)) THEN
SEARCHSTR(2)=1
GOTO GETSPECSTR3
ENDIF
FCLOSE 1
NAME=TXTSTR(4)
TXTSTR(2)=TXTSTR(5)
ANSIPOS(1)=28
ANSIPOS(2)=8
ANSIPOS(3)=53
GOTO BUILDSCR1
:GETSPECSTR9
FCLOSE 1
ANSIPOS 33,17
PRINT COLOR(2)+"[@X0FSEARCH ABORTED"+COLOR(2)+"]"
ANSIPOS 40,17
PRINT MAGIC
ANSIPOS 40,17
DELAY 25
ANSIPOS(1)=28
ANSIPOS(2)=8
ANSIPOS(3)=53
GOTO BUILDSCR1
:CLNLST1
COUNTER=0
ANSIPOS 33,17
PRINT COLOR(2)+"[@X0FCLEANING LIST"+COLOR(2)+"]"
ANSIPOS 42,17
PRINT MAGIC
ANSIPOS 42,17
FOPEN 1,PPEPATH()+ULBYNAME,O_RD,S_DN
FCREATE 2,PPEPATH()+"ULBYPRO.##3",O_WR,S_DW
:CLNLST2
FGET 1,TXTSTR(4)
FGET 1,TXTSTR(5)
IF (TXTSTR(4)="") GOTO CLNLST3
IF (U_RECNUM(TXTSTR(4))=-1) THEN INC COUNTER:GOTO CLNLST2
ENDIF
FPUTLN 2,TXTSTR(4)
FPUTLN 2,TXTSTR(5)
GOTO CLNLST2
:CLNLST3
FCLOSE 1
FCLOSE 2
IF (COUNTER=0) THEN
ANSIPOS 27,17
PRINT COLOR(2)+"[@X0FNO UNWANTED"+TXTSTR(6)+COLOR(2)+"]"
ANSIPOS 39,17
PRINT MAGIC
ANSIPOS 39,17
GOTO CLNLST4
ELSEIF (COUNTER=1) THEN
ANSIPOS 33,17
PRINT COLOR(2)+"["+COLOR(1),COUNTER,"@X0F STRING FOUND"+COLOR(2)+"]"
ANSIPOS 42,17
PRINT MAGIC
ANSIPOS 42,17
GOTO CLNLST4
ELSEIF (COUNTER<=9) THEN ANSIPOS(1)=32:ANSIPOS(2)=17:ANSIPOS(3)=42
ELSEIF (COUNTER<=99) THEN ANSIPOS(1)=32:ANSIPOS(2)=17:ANSIPOS(3)=43
ELSEIF (COUNTER>99) THEN ANSIPOS(1)=31:ANSIPOS(2)=17:ANSIPOS(3)=43
ENDIF
ANSIPOS ANSIPOS(1),ANSIPOS(2)
PRINT COLOR(2)+"["+COLOR(1),COUNTER,TXTSTR(6)+COLOR(2)+"]"
ANSIPOS ANSIPOS(3),ANSIPOS(2)
PRINT MAGIC
ANSIPOS ANSIPOS(3),ANSIPOS(2)
GOTO CLNLST4
:CLNLST4
DELAY 25
DELETE PPEPATH()+ULBYNAME
RENAME PPEPATH()+"ULBYPRO.##3",PPEPATH()+ULBYNAME
ANSIPOS(1)=28
ANSIPOS(2)=9
ANSIPOS(3)=53
GOTO BUILDSCR1
:VIEWHIDE1
IF (!EXIST(PPEPATH()+"ULBYPRO.HID")) THEN
ANSIPOS 31,17
PRINT COLOR(2)+"[@X0FTHE LIST IS EMPTY"+COLOR(2)+"]"
ANSIPOS 40,17
PRINT MAGIC
ANSIPOS 40,17
DELAY 25
GOTO VIEWHIDE4
ENDIF
COUNTER=1
FOPEN 1,PPEPATH()+"ULBYPRO.HID",O_RD,S_DN
FCREATE 2,PPEPATH()+"ULBYPRO.##4",O_WR,S_DW
FPUTLN 2,COLOR(1)+"■"+COLOR(2)+"────────────────────────────────[@X0FULBYPRO.HID"+COLOR(2)+"]────────────────────────────────"+COLOR(1)+"■"
FPUTLN 2,COLOR(2)+"["+COLOR(1)+"No."+COLOR(2)+"]"+SPACE(1)+COLOR(2)+"["+COLOR(1)+"REALNAME"+COLOR(2)+"]"
:VIEWHIDE2
FGET 1,TXTSTR(3)
IF (TXTSTR(3)="") GOTO VIEWHIDE3
FPUTLN 2,COLOR(2)+"["+COLOR(1),COUNTER,COLOR(2)+"]"+SPACE(4-LEN(COUNTER))+"@X0F"+TXTSTR(3)
INC COUNTER
GOTO VIEWHIDE2
:VIEWHIDE3
FPUTLN 2,COLOR(1)+"■"+COLOR(2)+"───────────────────────────────[@X0FEND OF LISTING"+COLOR(2)+"]──────────────────────────────"+COLOR(1)+"■"
FCLOSE 1
FCLOSE 2
DEFCOLOR
CLS
DISPFILE PPEPATH()+"ULBYPRO.##4",GRAPH
WAIT
DELETE PPEPATH()+"ULBYPRO.##4"
:VIEWHIDE4
ANSIPOS(1)=28
ANSIPOS(2)=10
ANSIPOS(3)=53
GOTO BUILDSCR1
:HIDEUSER1
ANSIPOS 21,15
PRINTLN COLOR(2)+"[@X0FENTER THE NAME YOU WANT TO ADD/REMOVE"+COLOR(2)+"]"
ANSIPOS 15,16
PRINT SPACE(LEN(TXTSTR(3)))
ANSIPOS 15,16
INPUTTEXT "_",SEARCHSTR(1),0,MAXLEN
SEARCHSTR(1)=UPPER(SEARCHSTR(1))
IF (SEARCHSTR(1)="") THEN ANSIPOS(1)=33:ANSIPOS(2)=17:ANSIPOS(3)=40
TXTSTR(5)=COLOR(2)+"[@X0FSEARCH ABORTED"+COLOR(2)+"]"
GOTO HIDEUSER8
ELSEIF (EXIST(PPEPATH()+"ULBYPRO.HID")) THEN FOPEN 1,PPEPATH()+"ULBYPRO.HID",O_RD,S_DN
ELSE
GOTO HIDEUSER3
ENDIF
:HIDEUSER2
FGET 1,TXTSTR(4)
IF (TXTSTR(4)="") GOTO HIDEUSER3
IF (TXTSTR(4)=SEARCHSTR(1)) GOTO HIDEUSER4
GOTO HIDEUSER2
:HIDEUSER3
IF (U_RECNUM(SEARCHSTR(1))=-1) THEN FCLOSE 1:ANSIPOS(1)=33:ANSIPOS(2)=17:ANSIPOS(3)=42
TXTSTR(5)=COLOR(2)+"[@X0FUSER NOT FOUND"+COLOR(2)+"]"
GOTO HIDEUSER8
ELSE
FCLOSE 1
FAPPEND 1,PPEPATH()+"ULBYPRO.HID",O_RW,S_DW
FPUTLN 1,SEARCHSTR(1)
FCLOSE 1
ANSIPOS(1)=31
ANSIPOS(2)=17
ANSIPOS(3)=42
TXTSTR(5)=COLOR(2)+"[@X0FUSER ADDED TO LIST"+COLOR(2)+"]"
ENDIF
GOTO HIDEUSER8
:HIDEUSER4
FCLOSE 1
FOPEN 1,PPEPATH()+"ULBYPRO.HID",O_RD,S_DN
FCREATE 2,PPEPATH()+"ULBYPRO.##5",O_RW,S_DR
:HIDEUSER5
FGET 1,TXTSTR(5)
:HIDEUSER6
IF (TXTSTR(5)="") GOTO HIDEUSER7
IF (TXTSTR(5)=TXTSTR(4)) GOTO HIDEUSER5
FPUTLN 2,TXTSTR(5)
GOTO HIDEUSER5
:HIDEUSER7
FCLOSE 1
FCLOSE 2
DELETE PPEPATH()+"ULBYPRO.HID"
RENAME PPEPATH()+"ULBYPRO.##5",PPEPATH()+"ULBYPRO.HID"
ANSIPOS(1)=34
ANSIPOS(2)=17
ANSIPOS(3)=39
TXTSTR(5)=COLOR(2)+"[@X0FUSER REMOVED"+COLOR(2)+"]"
:HIDEUSER8
ANSIPOS ANSIPOS(1),ANSIPOS(2)
PRINT TXTSTR(5)
ANSIPOS ANSIPOS(3),ANSIPOS(2)
PRINT MAGIC
ANSIPOS ANSIPOS(3),ANSIPOS(2)
DELAY 25
ANSIPOS(1)=28
ANSIPOS(2)=11
ANSIPOS(3)=53
GOTO BUILDSCR1
:DONE
DEFCOLOR
CLS
END
;END