home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.wwiv.com
/
ftp.wwiv.com.zip
/
ftp.wwiv.com
/
pub
/
BBS
/
PWAEMC12.ZIP
/
EMEC.PPE
(
.txt
)
< prev
next >
Wrap
PCBoard Programming Language Executable
|
1995-01-02
|
9KB
|
587 lines
;------------------------------------------------------------------------------
; .ss.
; `²²'
; .,sS$Ss,,s$ .,sS$$$Ss. .,sS$Ss,,s$ .ss. .sSs.
; .d$$²^°²$$$$'.d$P²°^^²$P'.d$$²^°²$$$$'.$$$' .$$$²Sb,.
; $$$' .$$$' $$$²Sçsµ²' .$$$' .$$$'.$$$' .$$$' `$$b.
; $$$b,,d$$$' ,$$$b,....,s$$$$b,,d$$$'.$$$;.,$$$' ;$$$
; `²S$$S²²S$$S²°²S$$$$S²°°²S$$$$$$',$$S²°²S$S'.sS$$$P²'
; .sS²°$$$²²°"' d²°'
; .$$² .$$'
; $$$.,d$$'
; `²S$$S²'
;------------------------------------------------------------------------------
; P.P.L.X. 2.OO (C)1996 - Lone Runner / AEGiS CoRP'96
;------------------------------------------------------------------------------
; PPE 3.O1 (Encryption type I) - Analysis ON - Postprocessing ON
;------------------------------------------------------------------------------
Boolean BOOLEAN001
Boolean BOOLEAN002
Boolean BOOLEAN003
Boolean BOOLEAN004
String TSTRING001(9)
String TSTRING002(9)
String STRING003
String STRING004
String STRING005
String STRING006
String STRING007
String STRING008
String STRING009
String STRING010
String STRING011
String STRING012
String STRING013
String STRING014
String STRING015
String STRING016
String STRING017
String STRING018
String STRING019
String STRING020
String STRING021
Time TIME001
Time TIME002
Int TINT001(9)
Int INT002
Int INT003
Int INT004
Int INT005
Int INT006
Int INT007
Int INT010
Int INT012
Int INT013
Int INT014
Declare Procedure PROC001()
Declare Procedure PROC002()
Declare Procedure PROC003()
Declare Procedure PROC004()
Declare Procedure PROC005()
Declare Procedure PROC006()
Declare Procedure PROC007(Int INT015, Int INT016)
Declare Procedure PROC008(Int INT008, Int INT009)
Declare Procedure PROC009(Int INT011)
;------------------------------------------------------------------------------
PROC001()
PROC002()
PROC004()
End
;------------------------------------------------------------------------------
Procedure PROC003()
Int INT004
Print STRING003
For INT004 = 1 To 8
TINT001(INT004) = GetX()
Print TSTRING001(INT004) + Space(INT002)
Next
EndProc
;------------------------------------------------------------------------------
Procedure PROC004()
Int INT005
Int INT006
Int INT007
Boolean BOOLEAN003
Time TIME001
Time TIME002
INT006 = 1
INT005 = 1
If (INT003) Then
TIME001 = Time()
KbdChkOff
Endif
PROC003()
PROC007(INT005, INT006)
BOOLEAN003 = 0
:LABEL001
If (BOOLEAN003) Goto LABEL002
If (INT003) Then
TIME002 = Time()
If (TIME002 - TIME001 > 60 * INT003) Then
Newline
DispText 55, 32768 + 2048 + 256 + 128
Bye
Endif
Endif
INT007 = Asc(Inkey())
If ((((((INT007 == 82) || (INT007 == 68)) || (INT007 == 54)) || (INT007 == 56)) || (INT007 == 32)) || (INT007 == 62)) Then
INT006 = INT005
Inc INT005
If (INT005 > 8) INT005 = 1
PROC007(INT005, INT006)
ElseIf ((((((INT007 == 76) || (INT007 == 85)) || (INT007 == 52)) || (INT007 == 50)) || (INT007 == 9)) || (INT007 == 60)) Then
INT006 = INT005
Dec INT005
If (INT005 < 1) INT005 = 8
PROC007(INT005, INT006)
Else
Select Case (INT007)
Case 115, 83
INT006 = INT005
INT005 = 1
PROC007(INT005, INT006)
If (BOOLEAN001) BOOLEAN003 = 1
Case 97, 65
INT006 = INT005
INT005 = 2
PROC007(INT005, INT006)
If (BOOLEAN001) BOOLEAN003 = 1
Case 99, 67
INT006 = INT005
INT005 = 3
PROC007(INT005, INT006)
If (BOOLEAN001) BOOLEAN003 = 1
Case 113, 81
INT006 = INT005
INT005 = 4
PROC007(INT005, INT006)
If (BOOLEAN001) BOOLEAN003 = 1
Case 100, 68
INT006 = INT005
INT005 = 5
PROC007(INT005, INT006)
If (BOOLEAN001) BOOLEAN003 = 1
Case 108, 76
INT006 = INT005
INT005 = 6
PROC007(INT005, INT006)
If (BOOLEAN001) BOOLEAN003 = 1
Case 117, 85
INT006 = INT005
INT005 = 7
PROC007(INT005, INT006)
If (BOOLEAN001) BOOLEAN003 = 1
Case 13
BOOLEAN003 = 1
Case 63
PROC005()
PROC003()
PROC007(INT005, INT006)
Case 33
PROC006()
PROC003()
PROC007(INT005, INT006)
Case 0
INT006 = INT005
INT005 = 8
PROC007(INT005, INT006)
If (BOOLEAN001) BOOLEAN003 = 1
Endif
End Select
Goto LABEL001
:LABEL002
PROC008(INT005, INT007)
EndProc
;------------------------------------------------------------------------------
Procedure PROC006()
String STRING019
STRING019 = "@X0FEnhanced Message Edit Commands v1.2 by Drew [PWA]@X07"
Print Chr(13)
ClrEol
Print Chr(13)
Print Space((79 - Len(StripAtx(STRING019))) / 2) + STRING019
Delay 35
Print Chr(13)
ClrEol
Print Chr(13)
EndProc
;------------------------------------------------------------------------------
Procedure PROC008(Int INT008, Int INT009)
Int INT010
Print Chr(13)
ClrEol
INT010 = 3
Select Case (INT008)
Case 0
Print STRING004
KbdStuff Chr(13)
Case 1
Print STRING004
Print STRING006
KbdStuff "S"
Case 2
Print STRING004
Print STRING007
KbdStuff "A"
Case 3
GetUser
Print STRING004
Print STRING008
If (U_FSE == 1) Then
KbdStuff "F"
Else
KbdStuff "C"
Endif
Case 4
Print STRING004
Print STRING009
KbdStuff "Q"
Case 5
Print STRING004
Print STRING010
KbdStuff "D"
Case 6
Print STRING004
Print STRING012
KbdStuff "L"
Case 7
Print STRING004
Print STRING013
KbdStuff "U"
Case 8
PROC009(INT009)
INT010 = 0
End Select
Delay INT010
If (BOOLEAN002) Newline
EndProc
;------------------------------------------------------------------------------
Procedure PROC009(Int INT011)
String STRING020
String STRING021
Boolean BOOLEAN004
Int INT012
Int INT013
Int INT014
Print STRING005
INT013 = GetX() - 1
If (INT011 <> 13) Then
Print Chr(INT011)
STRING020 = Chr(INT011)
Endif
INT012 = 1
BOOLEAN004 = 0
:LABEL003
If (BOOLEAN004) Goto LABEL004
STRING021 = Inkey()
Select Case (Asc(STRING021))
Case 13
If (STRING020 == "") Then
STRING020 = STRING021
Endif
BOOLEAN004 = 1
Case 27, 21
Print Chr(13)
Forward INT013
ClrEol
Print Chr(13)
Forward INT013
INT012 = 0
STRING020 = ""
Case 8
If (INT012 > 0) Then
Print STRING021 + " " + STRING021
Dec INT012
STRING020 = Left(STRING020, Len(STRING020) - 1)
Endif
Case InStr(Mask_AlNum(), Upper(STRING021))
Case 79 - Len(StripAtx(STRING005))
Print STRING021
Inc INT012
STRING020 = STRING020 + STRING021
End Select
Goto LABEL003
:LABEL004
INT014 = 3
STRING020 = Upper(STRING020)
Select Case (STRING020)
Case "H"
Print Chr(8)
Print STRING014
StartDisp 2
DispFile HelpPath() + "HLPE", 1 + 4 + 2
KbdStuff Chr(13)
Delay 3
End
Case "I"
Print Chr(8)
Print STRING015
Case "SA"
Print Chr(8) + Chr(8)
Print STRING016
Case "SC"
Print Chr(8) + Chr(8)
Print STRING017
Case "SN"
Print Chr(8) + Chr(8)
Print STRING018
Case "S"
Print Chr(8)
Print STRING006
Case "A"
Print Chr(8)
Print STRING007
Case "E"
Print Chr(8)
Print STRING011
Case "F"
Print Chr(8)
Print STRING008
Case "C"
Print Chr(8)
Print STRING008
Case "Q"
Print Chr(8)
Print STRING009
Case "D"
Print Chr(8)
Print STRING010
Case "L"
Print Chr(8)
Print STRING012
Case "U"
Print Chr(8)
Print STRING013
End Select
Delay INT014
KbdStuff STRING020
EndProc
;------------------------------------------------------------------------------
Procedure PROC005()
If (Exist(PPEPath() + "EMEC.HLP")) Then
DispFile PPEPath() + "EMEC.HLP", 0
Endif
EndProc
;------------------------------------------------------------------------------
Procedure PROC002()
If (Exist(PPEPath() + "EMEC.PCB")) Then
DispFile PPEPath() + "EMEC.PCB", 0
Endif
EndProc
;------------------------------------------------------------------------------
Procedure PROC007(Int INT015, Int INT016)
Print Chr(13)
Forward TINT001(INT016) - 1
Print TSTRING001(INT016)
Print Chr(13)
Forward TINT001(INT015) - 1
Print TSTRING002(INT015)
EndProc
;------------------------------------------------------------------------------
Procedure PROC001()
String STRING022
String STRING023
String STRING024
Int INT017
STRING022 = PPEPath() + "EMEC.CFG"
STRING023 = PPEPath() + "LB.CFG"
STRING024 = PPEPath() + "STRINGS.CFG"
If (Exist(STRING023)) Then
INT002 = S2I(ReadLine(STRING023, 1), 10)
For INT017 = 1 To 8
TSTRING001(INT017) = ReadLine(STRING023, 1 + INT017 * 2 - 1)
TSTRING002(INT017) = ReadLine(STRING023, 1 + INT017 * 2)
Next
Else
INT002 = 0
TSTRING001(1) = "@X08 Save @X07"
TSTRING002(1) = "@X4F SAVE @X07"
TSTRING001(2) = "@X08 Abort @X07"
TSTRING002(2) = "@X4F ABORT @X07"
TSTRING001(3) = "@X08 Cont @X07"
TSTRING002(3) = "@X4F CONT @X07"
TSTRING001(4) = "@X08 Quote @X07"
TSTRING002(4) = "@X4F QUOTE @X07"
TSTRING001(5) = "@X08 Delete @X07"
TSTRING002(5) = "@X4F DELETE @X07"
TSTRING001(6) = "@X08 List @X07"
TSTRING002(6) = "@X4F LIST @X07"
TSTRING001(7) = "@X08 Upload @X07"
TSTRING002(7) = "@X4F UPLOAD @X07"
TSTRING001(8) = "@X08 *Other @X07"
TSTRING002(8) = "@X4F *OTHER @X07"
Endif
If (Exist(STRING022)) Then
If (Lower(ReadLine(STRING022, 1)) == "yes") Then
BOOLEAN001 = 1
Else
BOOLEAN001 = 0
Endif
If (Lower(ReadLine(STRING022, 2)) == "yes") Then
BOOLEAN002 = 1
Else
BOOLEAN002 = 0
Endif
Else
BOOLEAN001 = 1
BOOLEAN002 = 1
Endif
If (Exist(STRING024)) Then
STRING003 = ReadLine(STRING024, 1)
STRING004 = ReadLine(STRING024, 2)
STRING005 = ReadLine(STRING024, 3)
STRING006 = ReadLine(STRING024, 4)
STRING007 = ReadLine(STRING024, 5)
STRING008 = ReadLine(STRING024, 6)
STRING009 = ReadLine(STRING024, 7)
STRING010 = ReadLine(STRING024, 8)
STRING012 = ReadLine(STRING024, 9)
STRING013 = ReadLine(STRING024, 10)
STRING014 = ReadLine(STRING024, 11)
STRING015 = ReadLine(STRING024, 12)
STRING016 = ReadLine(STRING024, 13)
STRING017 = ReadLine(STRING024, 14)
STRING018 = ReadLine(STRING024, 15)
STRING011 = ReadLine(STRING024, 16)
Else
STRING003 = "@X0FMsg Commands [?=help] @X07"
STRING004 = "@X0FExecuting Msg Cmd: @X07"
STRING005 = "@X0FOther Msg Cmd: @X07"
STRING006 = "@X04Save current message@X07"
STRING007 = "@X04Abort message entry@X07"
STRING008 = "@X04Continue message entry@X07"
STRING009 = "@X04Quote lines@X07"
STRING010 = "@X04Delete lines@X07"
STRING012 = "@X04List message@X07"
STRING013 = "@X04Upload into editor@X07"
STRING014 = "@X04Help! I'm a bozo!!@X07"
STRING015 = "@X04Insert a line@X07"
STRING016 = "@X04Save & attach file@X07"
STRING017 = "@X04Carbon copy message@X07"
STRING018 = "@X04Save & goto next msg@X07"
STRING011 = "@X04Edit a line@X07"
Endif
INT003 = ReadLine(PCBDat(), 89)
EndProc
;------------------------------------------------------------------------------
;
; Usage report (before postprocessing)
;
; ■ Statements used :
;
; 2 End
; 4 ClrEol
; 106 Goto
; 118 Let
; 61 Print
; 70 If
; 3 DispFile
; 1 StartDisp
; 1 GetUser
; 4 Delay
; 2 Inc
; 2 Dec
; 2 Newline
; 1 DispText
; 11 KbdStuff
; 1 Bye
; 1 KbdChkOff
; 4 Forward
; 9 EndProc
;
;
; ■ Functions used :
;
; 3 *
; 1 /
; 26 +
; 8 -
; 60 ==
; 1 <>
; 4 <
; 2 <=
; 4 >
; 4 >=
; 59 !
; 4 &&
; 21 ||
; 3 Len(
; 2 Lower()
; 2 Upper()
; 1 Left()
; 2 Space()
; 30 Chr()
; 5 Asc()
; 2 InStr()
; 2 Time()
; 2 StripAtx()
; 2 Inkey()
; 1 Mask_AlNum()
; 1 Mask_Ascii()
; 1 PCBDat()
; 7 PPEPath()
; 22 ReadLine()
; 5 Exist()
; 1 S2I()
; 2 GetX()
; 1 HelpPath()
;
;------------------------------------------------------------------------------
;
; Analysis flags : d
;
; d - Access PCBOARD.DAT ■ 2
; Program gets the full pathname to PCBOARD.DAT, this may be usefull
; for many PPE so they can find various informations on the system
; (system paths, max number of lines in messages, ...) but it may also
; be a way to gather vital informations.
; ■ Search for : PCBDAT()
;
;------------------------------------------------------------------------------
;
; Postprocessing report
;
; 2 For/Next
; 0 While/EndWhile
; 16 If/Then or If/Then/Else
; 4 Select Case
;
;------------------------------------------------------------------------------
; AEGiS Corp - Break the routines, code against the machines!
;------------------------------------------------------------------------------