;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
;: Logoff Matrix v2.o ::
;: By SecT 96 ::
;: Last Update 6.03.96 ::
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
;: Compiler Directives
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
;$USEFUNCS
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
;: Declare Procedures
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
Declare Procedure Dispselect(INTEGER Selnr)
Declare Procedure Disperase(INTEGER Selnr)
Declare Procedure EraseCursor()
Declare Procedure Entermsg()
Declare Procedure SysOpmsg()
Declare Procedure Dispadd(String path)
Declare Procedure DispDBF()
Declare Procedure DISP()
Declare Procedure Check()
Declare Procedure CenterTxt(String text, Byte y)
Declare Procedure Init()
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
;: Declare Global Variables
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
String Backlight
String k
String text(20)
String X(5)
String Y(5)
String Color(7)
String Lenght
String Flagged
String tmp
String Conf
String To
String Path
String str(8)
String D_or_F
String param
Int selnr
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
;: Main Program
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
BEGIN
param = GeTToken()
If (Upper(param) = Upper(Readline(ppepath()+ppename()+".cfg",27))) goto ends
Init()
Let selnr = 1
Startdisp FNS
Check()
:Redisp
Cls
Disp()
Dispselect(Selnr)
While (1) Do
k = inkey()
IF (k <> "") Then
SELECT Case k
Case "DOWN"
DispErase(Selnr)
Selnr = Selnr + 1
If (Selnr = 5) Selnr = 1
DispSelect(Selnr)
Case "UP"
DispErase(Selnr)
Selnr = Selnr - 1
If (Selnr = 0) Selnr = 4
DispSelect(Selnr)
Case Chr(13)
If (Selnr = 1) Then
Entermsg()
Goto Redisp
Else If (selnr = 2) Then
SysOpMSG()
Goto Redisp
Else If (Selnr = 3) Then
If (D_or_F = "2") Then
DispDBF()
Else
DispAdd(path) ' Display A Random ADD
Endif
Goto Ends
Else If (Selnr = 4) Then
Break
Goto Redisp
Endif
Case Chr(27)
Break
End Select
EndIf
EndWhile
Goto Ends1
:Ends
KBdSTUFF chr(13)+"G Y" + Chr(13)
if (exist(ppepath()+"runoff.txt")) dispstr "%"+ ppepath()+"runoff.txt"
:ends1
END
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
Procedure Init()
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
If (!Exist(PPEpath()+PPEname()+".pcb")) Then
Println Color(7)+PPEname()+".pcb Dont exist! Abort@X07"
End
Endif
If (!Exist(PPEpath()+PPEname()+".cfg")) Then
Println Color(7)+PPEname()+".cfg Dont exist! Abort@X07"
End
Endif
Let Tmp = ppepath()+ppename()+".cfg"
Let X(1) = Readline(tmp,1)
Let Y(1) = Readline(tmp,2)
Let lenght = Readline(tmp,3)
Let Color(1) = Readline(tmp,4)
Let X(2) = Readline(tmp,5)
let Y(2) = Readline(tmp,6)
Let Y(3) = Readline(tmp,7)
Let Y(4) = Readline(tmp,8)
Let Conf = Readline(tmp,9)
Let To = Readline(tmp,10)
Let path = Readline(tmp,11)
Let str(1) = Readline(tmp,12)
Let str(2) = Readline(tmp,13)
Let str(3) = Readline(tmp,14)
Let str(4) = Readline(tmp,15)
Let str(5) = Readline(tmp,16)
Let str(6) = Readline(tmp,17)
Let str(7) = Readline(tmp,18)
Let str(8) = Readline(tmp,19)
Let Color(2) = Readline(tmp,20)
Let Color(3) = Readline(tmp,21)
Let Color(4) = Readline(tmp,22)
Let Color(5) = Readline(tmp,23)
Let Color(6) = Readline(tmp,24)
Let Color(7) = Readline(tmp,25)
Let D_or_F = Readline(tmp,26)
Endproc
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
Procedure entermsg()
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
String Tmp
Integer i
Text(1) = ""
TexT(2) = ""
CLS
Println " "+Color(2)+"PR-Logoff Matrix v2.o "+Color(3)+"By SecT / Psychic Release "
Println " "+Color(4)+"[ "+Color(3)+"max 2 lines @X07/ "+Color(3)+"Max 70 char p/l @X07/ "+Color(3)+"Enter To Save "+Color(4)+"]"
PrintLn ""+Color(4)+"··-"+Color(3)+"-─"+Color(2)+"────────"+Color(3)+"──"+Color(2)+"───────"+Color(3)+"──--"+Color(4)+"-·· · ·"+Color(3)+"--"+Color(2)+"-────────"+Color(3)+"─"+Color(4)+"─"+Color(3)+"──"+Color(2)+"────-"+Color(3)+"-"+Color(4)+"· ··-"+Color(3)+"─"+Color(2)+"──────────────"+Color(3)+"─--"+Color(4)+"·@X07"
For i = 1 to 2
Print "@POS:77@"+Color(3)+"]@X07"
BackUp 77
INPUTSTR Color(4)+"<"+Color(2)+string(i)+Color(4)+">"+Color(3)+"@POS:5@[@X07_",TEXT(i),1,70,MASK_ASCII()+"Æ¥Åæ¢å",LFAFTER
Next i
Newlines 2
If ((!text(1) = "") || (!Text(2) = "")) Then
If (!text(1) = "") Then
PrintLn ""+Color(4)+"··-"+Color(3)+"-─"+Color(2)+"────────"+Color(3)+"──"+Color(2)+"───────"+Color(3)+"──--"+Color(4)+"-·· · ·"+Color(3)+"--"+Color(2)+"-────────"+Color(3)+"─"+Color(4)+"─"+Color(3)+"──"+Color(2)+"────-"+Color(3)+"-"+Color(4)+"· ··-"+Color(3)+"─"+Color(2)+"──────────────"+Color(3)+"─--"+Color(4)+"·@X07"
Freshline
Centertxt (Color(4)+"< "+Color(6)+Text(1) + Color(4)+" >@X07",GetY())
Endif
If (!TexT(2) = "") Then
Newlines 1
Centertxt (Color(4)+"< "+Color(6)+Text(2) + Color(4)+" >@X07",GetY())
Endif
Freshline
PrintLn ""+Color(4)+"··-"+Color(3)+"-─"+Color(2)+"────────"+Color(3)+"──"+Color(2)+"───────"+Color(3)+"──--"+Color(4)+"-·· · ·"+Color(3)+"--"+Color(2)+"-────────"+Color(3)+"─"+Color(4)+"─"+Color(3)+"──"+Color(2)+"────-"+Color(3)+"-"+Color(4)+"· ··-"+Color(3)+"─"+Color(2)+"──────────────"+Color(3)+"─--"+Color(4)+"·@X07"
Freshline
Newline
Tmp = ""
INPUTstr Str(1)+"_",TMP,1,1,"YyNn",Defs
IF ((upper(TMP) = "Y") || (Upper(TMP) ="")) Then
If (Upper(TMP) = "") Print Color(2)+"Y@X07"
Freshline
TMP = ""
INPUTstr Str(2)+"@X07_",TMP,1,1,"YyNn",Defs
IF ((upper(TMP) = "Y") || (Upper(TMP) = "")) Then
Tmp = "AnoNymous"
Else
let TMP = U_Name()
Endif
Fcreate 1, PPEpath()+"Last.MSG",2,0
Fputln 1, TMP
Fputln 1, TEXT(1)
Fputln 1, Text(2)
Fclose 1
Else
Println Color(7)+"Onliner Aborted"
Delay 10
Endif
Endif
Endproc
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
Procedure SysOpmsg()
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
Integer i,n
I = 0
CLS
Println " "+Color(2)+"PR-Logoff Matrix v2.o "+Color(3)+"By SecT / Psychic Release "
Println " "+Color(4)+"[ "+Color(3)+"Max 20 lines @X07/ "+Color(3)+"Max 70 char p/l @X07/ "+Color(4)+"("+Color(2)+"/S"+Color(4)+") "+Color(3)+"to save "+Color(4)+"("+Color(2)+"/A"+Color(4)+") "+Color(3)+"to abort "+Color(4)+"]"
PrintLn ""+Color(4)+"··-"+Color(3)+"-─"+Color(2)+"────────"+Color(3)+"──"+Color(2)+"───────"+Color(3)+"──--"+Color(4)+"-·· · ·"+Color(3)+"--"+Color(2)+"-────────"+Color(3)+"─"+Color(4)+"─"+Color(3)+"──"+Color(2)+"────-"+Color(3)+"-"+Color(4)+"· ··-"+Color(3)+"─"+Color(2)+"──────────────"+Color(3)+"─--"+Color(4)+"·@X07"
For i = 1 to 20
Print "@POS:77@"+Color(3)+"]@X07"
BackUp 77
INPUTSTR Color(4)+"<"+Color(2)+string(i)+Color(4)+">"+Color(3)+"@POS:5@[@X07_",TEXT(i),1,70,MASK_ASCII()+"Æ¥Åæ¢å",LFAFTER
IF (upper(TEXT(i)) = "/S") Then
Let Text(i) = ""
Fcreate 1, PPEpath()+"LOMSG.$$$",2,0
For n = 1 to i
Fputln 1, TEXT(n)
Next n
FPutLn 1, "<>^Comment left in Logoff Matrix v2.o / Psychic Release^<>"
Fclose 1
Message Conf,To,U_Name(),"SyS comment","R",0,0,0,PPEpath()+"LOMSG.$$$"
Delete PpePath()+"LOMSG.$$$"
Break
Endif
IF (upper(TEXT(i)) = "/A") THEN
AnsiPos 9,i+4
Print Color(7)+"Comment ABORTED!"
Delay 10
Break
Endif
Next i
If (i = 21) Then
Tmp = ""
INPUTSTR "Save This Msg.:_",TMP,1,70,MASK_ASCII()+"YyNn",LFAFTER
IF (upper(TEXT(i)) = "Y") Then
Let Text(i) = ""
Fcreate 1, PPEpath()+"LOMSG.$$$",2,0
For n = 1 to i
Fputln 1, TEXT(n)
Next n
FPutLn 1, "<>^Comment left in Logoff Matrix v2.o / Psychic Release^<>"
Fclose 1
Message Conf,To,U_Name(),"SyS comment","R",0,0,0,PPEpath()+"LOMSG.$$$"
Delete PpePath()+"LOMSG.$$$"
Else
AnsiPos 9,i+4
Print Color(7)+"Comment Aborted!"
Delay 10
Endif
Endif
EndProc
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
Procedure DispAdd(String path)
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
String Fname(255)
Byte n
Fname(n) = Findfirst(Path+"*.*")
While (Fname(n) != "") Do
Inc n
Fname(n) = Findnext()
Endwhile
n = n-1
Cls
Dispfile Path+Fname(Random(n)),defs
Endproc
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
Procedure DispDbf()
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
String Bname
String Bsys
String Bnum
String Bafil
String Bnup
String Bmisc
String AX(5)
String AY(5)
String DBFpath
String DBFColor(5)
Integer i
If (!Exist(ppepath()+"logdbf20.CFG")) Then
Println Color(7)+"Logdbf20.cfg Don't exist. Tell SysOp!"
Else
Let Tmp = ppepath()+"LogDBF20.cfg"
Let DBFpath = Readline(tmp,1)
If (!Exist(Dbfpath)) Then
Println Color(7)+"DBF file Don't exist. Tell SysOp!"
Else
Tokenize Readline(tmp,2)
Let AX(1) = Gettoken()
Let AY(1) = Gettoken()
Tokenize Readline(tmp,3)
Let AX(2) = Gettoken()
Let AY(2) = Gettoken()
Tokenize Readline(tmp,4)
Let AX(3) = Gettoken()
Let AY(3) = Gettoken()
Tokenize Readline(tmp,5)
Let AX(4) = Gettoken()
Let AY(4) = Gettoken()
Let AY(5) = Readline(tmp,6)
Let DBFcolor(1) = Readline(tmp,7)
Let DBFcolor(2) = Readline(tmp,8)
Let DBFcolor(3) = Readline(tmp,9)
Let DBFcolor(4) = Readline(tmp,10)
Let DBFcolor(5) = Readline(tmp,11)
Dopen 1, DBFpath,1
i = Random(dreccount(1))
If (i = 0) let i = 1
Dgo 1,i
Dget 1,"BBSname",Bname
Dget 1,"BBSsysop", Bsys
Dget 1,"BBSnum", Bnum
Dget 1,"BBSaffil",Bafil
Dget 1,"BBSnup",Bnup
Dget 1,"BBSmisc",Bmisc
Dclose 1
Dispfile Ppepath()+"Logdbf20.pcb",defs
Ansipos AX(1),AY(1)
Print Dbfcolor(1)+Mixed(Bname)
Ansipos AX(2),AY(2)
Print Dbfcolor(2)+Bsys
Ansipos AX(3),AY(3)
Print Dbfcolor(3)+Bnum
Ansipos AX(4),AY(4)
print Dbfcolor(4)+Bnup
Ansipos 1,AY(5)
Centertxt(Dbfcolor(5)+Bmisc,AY(5))
Centertxt(Dbfcolor(5)+Bafil,AY(5)+1)
Newlines 2
Endif
Endif
Endproc
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
Procedure CenterTxt( String text,Byte y)
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
Byte X
String Tmp
Text = Trim(text," ")
Tmp = Text
Tmp = Stripatx(TMP)
X = (80-Len(TMP))/2
Ansipos X,y
Print text
Endproc
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
Procedure disp()
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
String Dtext(3)
DispFile PPEPath()+PPEname()+".PCB", Defs
Fopen 1, PPEpath()+"last.msg",2,0
Fget 1, Dtext(1)
Fget 1, Dtext(2)
Fget 1, Dtext(3)
Fclose 1
Ansipos X(2),Y(2)
Println Color(5)+Dtext(1)
Centertxt(color(6)+dtext(2),Y(3))
If (DTexT(3) != "") Then
Centertxt(color(6)+dtext(3),Y(4))
Endif
endproc
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
Procedure check()
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
String Key
Wrunet PCBnode(),"Q",Un_Name(),Un_City(),"Using: LOGOFF20.PPE"," "
If (PCBnode() = 0) Then
Flagged = Getenv("PCBDRIVE")+Getenv("PCBDIR")+"\FLIST."
Else
Flagged = Getenv("PCBDRIVE")+Getenv("PCBDIR")+"\FLIST."+String(PCBnode())
Endif
Freshline
Print Str(3)
Delay 5
If (!Exist(Flagged)) Then
Print Str(5)
Else
Print Str(6)
Freshline
Print Str(4)
:Loop
Let Key = Upper(InKey())
Select Case Key
Case "L"
Print Str(7)
Delay 3
Goto End
Case "D"
Print Str(8)
Download tmp
Case CHR(13)
Print Str(7)
Delay 3
Goto End
Case else
Goto Loop
end select
Endif
:end
Endproc
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
PROCEDURE DISPSELECT(INTEGER Selnr)
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
Ansipos X(1),Y(1)+selnr-1
BackLight = ScrText(X(1), Y(1) + Selnr-1, lenght, True)
Print cOLOR(1),ScrText(X(1), Y(1) + Selnr-1, lenght, False) ;@X07
EraseCursor()
Endproc
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
Procedure DisPErase(Integer Selnr)
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
AnsiPos X(1),Y(1)+Selnr-1
Print "@X0F",BackLight '@X07
EraseCursor()
Endproc
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
Procedure EraseCursor()
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
AnsiPos 1,22
Color 0
Print " "
Backup 1
EndProc
;::::::::::::::::::::::::::::::::[End Of File]::::::::::::::::::::::::::::::::::