home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Monster Media 1994 #1
/
monster.zip
/
monster
/
PCBOARD
/
PCBNEW10.ZIP
/
PCBNEWS.PPE
(
.txt
)
< prev
next >
Wrap
PCBoard Programming Language Executable
|
1994-01-30
|
11KB
|
514 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 2.OO (plain) - Analysis ON - Postprocessing ON
;------------------------------------------------------------------------------
Integer INTEGER001
Integer INTEGER002
Integer INTEGER003
Integer INTEGER004
Integer INTEGER005
Integer INTEGER006
Integer INTEGER007
Integer INTEGER008
Integer INTEGER009
Integer INTEGER010
Integer INTEGER011
String STRING001
String STRING002
String TSTRING003(17)
String STRING004
String STRING005
String STRING006
String STRING007
String STRING008
String STRING009
String STRING010
String STRING011
String STRING012
String TSTRING013(22)
String STRING014
String STRING015
String STRING016
String STRING017
String STRING018
String STRING019
String STRING020
String STRING021
String STRING022
String STRING023
String STRING024
String STRING025
String STRING026
String STRING027
String STRING028
;------------------------------------------------------------------------------
STRING028 = "1.0 (January 30, 1994)"
INTEGER007 = 34363
INTEGER008 = 10728
INTEGER009 = INTEGER007 + 120
INTEGER011 = 1
STRING025 = "3"
STRING027 = Chr(85) + Chr(78) + Chr(82) + Chr(69) + Chr(71) + Chr(73) + Chr(83) + Chr(84) + Chr(69) + Chr(82) + Chr(69) + Chr(68)
INTEGER006 = 1
STRING014 = Chr(13)
GetToken STRING015
STRING015 = Trim(Upper(STRING015), Chr(32))
If (INTEGER011 <> 0) Then
INTEGER010 = Date()
If (Len(Trim(STRING027, " ")) <> 12) Goto LABEL013
If (INTEGER010 > INTEGER009) Goto LABEL012
If (INTEGER010 + 3 == INTEGER009) Then
Newline
PrintLn "@X0CThis copy of PCBNEWS expires in @X8C3@X0C days!@X07"
Log "──── This copy of PCBNEWS expires in 3 days", 1
Log "──── Call Whitewater Systems - 312-743-4912 to", 1
Log "──── obtain a newer version", 1
ElseIf (INTEGER010 == INTEGER009) Then
Newline
PrintLn "@X0CThis copy of PCBNEWS expires after today!@X07"
Log "──── This copy of PCBNEWS expires after today!", 1
Log "──── Call Whitewater Systems - 312-743-4912 to", 1
Log "──── obtain a newer version", 1
Endif
If (INTEGER007 <> 0) Then
If (FileInf(PPEPath() + PPEName() + ".PPE", 2) <> INTEGER007) Then
Else
Endif
If (FileInf(PPEPath() + PPEName() + ".PPE", 4) <> INTEGER008) Then
Else
Endif
Gosub LABEL010
Gosub LABEL001
If (INTEGER006 <> 0) Then
Newline
PrintLn "@X07[@X0CThis version of PCBNEWS is " + STRING027 + "@X07]"
PrintLn "@X07[@X0ACall Whitewater Systems to register - 312-743-4912@X07]"
Log "(" + STRING027 + " version of PCBNEWS)", 0
Delay 15 * 18.2
Endif
Gosub LABEL002
Goto LABEL014
:LABEL001
STRING026 = ""
STRING026 = Chr(56) + String(Len(STRING017) - 2)
STRING026 = STRING026 + Chr(52) + String(Len(STRING017) - 3)
STRING026 = STRING026 + Chr(57) + String(Len(STRING017) - 5)
STRING026 = STRING026 + Chr(52) + Chr(49) + String(Len(STRING016) * 2 - 10)
If (Trim(STRING017, " ") <> Trim(Mid(ReadLine(PCBDat(), 94), 1, Len(STRING017)), " ")) Then
INTEGER006 = 1
ElseIf (STRING018 <> STRING026) Then
INTEGER006 = 1
ElseIf (STRING018 == STRING026) Then
INTEGER006 = 0
Endif
Return
:LABEL002
If (CurSec() >= STRING019) Then
Gosub LABEL009
If ((STRING006 == STRING004) && (CurSec() < STRING019)) Then
KbdStuff "NEWS" + STRING014
Goto LABEL014
ElseIf (STRING004 <> "") Then
If (STRING015 == "") Then
Newline
PrintLn "@X0AEntering PCBNEWS - v" + STRING028 + " ..."
Endif
If (STRING015 == "A") Then
STRING002 = "A"
Goto LABEL003
Endif
If (STRING015 == "D") Then
STRING002 = "D"
Goto LABEL003
Endif
STRING002 = ""
:LABEL003
If (STRING002 == "") Then
STRING002 = "D"
STRING001 = "@X0E(@X0F@TIMELEFT@@X0E min left), (A)dd entry, (D)isplay (Enter=D)"
InputStr STRING001, STRING002, 14, 1, "DdAa", 128 + 32 + 2 + 4 + 8
Endif
If ((STRING002 == "D") || (STRING002 == "")) Then
KbdStuff "NEWS" + STRING014
Goto LABEL004
Endif
If (STRING002 == "A") Then
Gosub LABEL005
Endif
Endif
:LABEL004
Else
KbdStuff "NEWS" + STRING014
Endif
End
:LABEL005
Newline
PrintLn "@X0ACreating a @X0FNEW@X0A entry...@X07"
PrintLn "@X0APress @X0CQ@X0A to exit at anytime."
Newline
:LABEL006
STRING008 = String(Date())
STRING010 = YesChar()
STRING011 = NoChar()
STRING009 = STRING010 + STRING011
InputStr "@X0FSubject@X07", STRING020, 7, 72 - STRING025 - 1, Mask_Ascii(), 32 + 2
STRING020 = Trim(STRING020, " ")
If (Upper(STRING020) == "Q") Goto LABEL014
If (Upper(STRING020) == "") Goto LABEL006
InputStr "@X0FDate to display@X07", STRING008, 7, 8, "0123456789-/\.Qq", 32 + 2
STRING008 = Trim(STRING008, " ")
If (STRING008 == "") Goto LABEL005
If (Upper(STRING008) == "Q") Goto LABEL014
If (Len(STRING008) < 8) Then
Newline
PrintLn "@X07The date field @X0Ccannot@X07 be less than @X0C8@X07 characters in length."
PrintLn "@X07Please re-do your entry."
Newline
Goto LABEL006
Endif
Gosub LABEL011
STRING012 = STRING010
InputStr "@X0EIs the above header correct (Y)es, (N)o, (Q)uit", STRING012, 7, 1, STRING009 + "Qq", 32 + 2 + 4 + 8
STRING012 = Trim(STRING012, " ")
Select Case (STRING012)
Case "Q"
Newline
PrintLn "@X0CNEWS file not created. Exiting ...@X07"
Newline
Goto LABEL014
Case STRING011
Goto LABEL005
End Select
INTEGER002 = 0
INTEGER001 = 100
Gosub LABEL008
STRING002 = "L"
STRING012 = ""
While (STRING002 == "L") Do
PrintLn "@X0A(A)bort, (C)ont Line Editor, (D)elete"
PrintLn "@X0A(E)dit, (L)ist Msg, (S)ave, (Enter)=Save"
InputStr "@X0EText Entry Command", STRING002, 7, 1, "AaCcDdEeLlSs", 128 + 64 + 8
STRING002 = Upper(STRING002)
If ((STRING002 == "S") || (STRING002 == "")) Then
If (Exist(STRING004)) Copy STRING004, "NEWS" + String(PcbNode()) + ".$$$"
FCreate 1, STRING004, 1, 3
Cls
Gosub LABEL011
INTEGER004 = 0
INTEGER005 = GetY()
Print "@X0AAdding header files into conference news...@X07"
Backup 80
Print "@CLREOL@"
Backup 80
For INTEGER004 = 1 To INTEGER005 - 1
TSTRING013(INTEGER004) = ScrText(1, INTEGER004, 79, 1)
FPutLn 1, TSTRING013(INTEGER004)
Next
For INTEGER003 = 0 To INTEGER001
PrintLn Space(STRING025 - 1) + TSTRING003(INTEGER003)
FPutLn 1, Space(STRING025 - 1) + TSTRING003(INTEGER003)
Next
If (INTEGER006 <> 0) FPutLn 1, Space(17) + "@X08 - @X07This version of PCBNEWS is @X0C" + STRING027 + "@X08 - @X07"
FClose 1
If (Exist(STRING024)) Then
Append STRING024, STRING004
DispFile STRING024, 1
Endif
If (Exist("NEWS" + String(PcbNode()) + ".$$$")) Append "NEWS" + String(PcbNode()) + ".$$$", STRING004
If (Exist("NEWS" + String(PcbNode()) + ".$$$")) Delete "NEWS" + String(PcbNode()) + ".$$$"
If (Trim(STRING005, " ") == "") STRING005 = "Conference news"
PrintLn "@X0A" + STRING005, "@X07 updated."
Continue
Endif
If (STRING002 == "C") Then
INTEGER002 = INTEGER001
INTEGER001 = 100
Gosub LABEL008
STRING002 = "L"
Continue
Endif
If (STRING002 == "A") Then
STRING012 = NoChar()
PromptStr 403, STRING012, 1, STRING009, 4 + 2 + 8 + 128 + 256
If (STRING012 == STRING010) Goto LABEL014
Newline
STRING002 = "L"
Continue
Endif
If (STRING002 == "D") Then
STRING012 = ""
PromptStr 405, STRING012, 10, Mask_Ascii(), 8 + 128 + 256
If (STRING012 <> "") Then
STRING002 = "N"
PrintLn "@X0A" + String(STRING012) + "@X07: @X07" + TSTRING003(STRING012 - 1)
PromptStr 85, STRING002, 1, STRING009, 4 + 8 + 2
If (STRING002 == "Y") TSTRING003(STRING012 - 1) = ""
Newline
Endif
STRING002 = "L"
Continue
Endif
If (STRING002 == "E") Then
STRING012 = ""
PromptStr 408, STRING012, 10, Mask_Num(), 8 + 128 + 256
If ((STRING012 > INTEGER001) || (Mid(STRING012, 1, 1) == "0")) Then
PrintLn "@X0CThere is no line #@X0F" + STRING012
Newline
Goto LABEL007
Endif
If (STRING012 <> "") Then
PrintLn "@X0AOld Line:"
PrintLn "@X0A" + String(STRING012) + "@X07: " + TSTRING003(STRING012 - 1) + "@CLREOL@"
Newline
PrintLn "@X0AEnter your new line below or press (Enter) to leave it as it was:@X07"
InputStr "@X0A" + String(STRING012) + "@X07: _", TSTRING003(STRING012 - 1), 7, 72 - STRING025 - 1, Mask_Ascii(), 64 + 4
If (TSTRING003(STRING012 - 1) == "/") TSTRING003(STRING012 - 1) = ""
Endif
:LABEL007
Newline
STRING002 = "L"
Continue
Endif
If (STRING002 == "L") Then
INTEGER002 = ""
Gosub LABEL011
For INTEGER003 = 0 To INTEGER001
PrintLn Space(STRING025 - 1) + TSTRING003(INTEGER003)
Next
If (Exist(STRING024)) DispFile STRING023, 1
Newline
Endif
EndWhile
Return
:LABEL008
Newline
DispText 238, 256
PrintLn "@X0AType a '@X0C/@X0A' to blank the current line and continue."
Newline
While (INTEGER002 < 101) Do
InputStr "@X0A" + String(INTEGER002 + 1) + "@X07: @X" + Right("00" + String(DefColor()), 2) + "_", TSTRING003(INTEGER002), 7, 72 - STRING025 - 1, Mask_Ascii(), 512 + 64
If (Upper(TSTRING003(INTEGER002)) == "") Then
TSTRING003(INTEGER002) = ""
INTEGER001 = INTEGER002 - 1
INTEGER002 = 101
ElseIf (Upper(Trim(TSTRING003(INTEGER002), " ")) == "/") Then
TSTRING003(INTEGER002) = ""
Inc INTEGER002
Else
Inc INTEGER002
Endif
If (INTEGER002 == 96) PrintLn "@X0CWARNING: You have 5 lines left!@X07"
EndWhile
Return
:LABEL009
STRING007 = ReadLine(PCBDat(), 31)
STRING006 = ReadLine(STRING007, 13)
INTEGER003 = CurConf()
If (INTEGER003 > 0) Then
STRING004 = ReadLine(STRING007, 13 + INTEGER003 * 33)
Else
STRING004 = STRING006
Endif
Return
:LABEL010
If (Exist(PPEPath() + "PCBNEWS.CFG")) Then
FOpen 1, PPEPath() + "PCBNEWS.CFG", 0, 0
FGet 1, STRING016
FGet 1, STRING017
FGet 1, STRING018
FGet 1, STRING019
FGet 1, STRING020
FGet 1, STRING021
FGet 1, STRING022
FGet 1, STRING023
FGet 1, STRING024
FGet 1, STRING025
FClose 1
STRING016 = Upper(Trim(STRING016, " "))
STRING019 = Upper(Trim(STRING019, " "))
STRING020 = Trim(STRING020, " ")
STRING021 = RTrim(PPEPath(), "\") + "\" + Upper(Trim(STRING021, " "))
STRING022 = RTrim(PPEPath(), "\") + "\" + Upper(Trim(STRING022, " "))
STRING023 = RTrim(PPEPath(), "\") + "\" + Upper(Trim(STRING023, " "))
STRING024 = RTrim(PPEPath(), "\") + "\" + Upper(Trim(STRING024, " "))
Else
Newlines 2
PrintLn "@X0CConfiguration file not found! Please Notify Sysop!"
Newlines 2
Wait
KbdStuff STRING014
Log "Error: *PCBNEWS* PCBNEWS.CFG not found!", 0
Goto LABEL014
Endif
If (INTEGER006 <> 0) Log "*PCBNEWS* Executed at " + Left(Time(), 5) , 0
Return
:LABEL011
Newline
If (Exist(STRING021)) Then
OpText STRING008
DispFile STRING021, 1
Else
Newline
Endif
If (Exist(STRING022)) Then
OpText STRING020
DispFile STRING022, 1
Else
PrintLn "@X07[@X0CNo subject header file exists - Please create one@X07]"
Log "*PCBNEWS* No Subject header file exists!", 0
Log "--------- This file is mandatory!", 0
Newline
Endif
If (Exist(STRING023)) Then
DispFile STRING023, 1
Else
Newline
Endif
Return
:LABEL012
Newline
PrintLn "@X07[@X0CThis version of PCBNEWS has expired@X07]"
PrintLn "@X07[@X07Please tell the Sysop to obtain a newer version@X07]"
Newline
Log "──── This copy of PCBNEWS has EXPIRED!", 1
Log "──── Call Whitewater Systems to obtain a newer version", 1
Goto LABEL014
Endif
Endif
:LABEL013
Cls
Beep
Newlines 2
PrintLn "@X07[@X0CPCBNEWS is (c) Copyrighted Software by Whitewater Technologies, Inc.@X07]"
PrintLn "@X07[@X0FWhitewater Systems - 312-743-4912@X07]"
Newline
PrintLn "@X07[@X0CPCBNEWS - Authentic seal has been altered!@X07]"
PrintLn "@X07[@X07Please call Whitewater Systems and download the newest release@X07]"
Log "*PCBNEWS* Seal has been ALTERED", 0
Newline
:LABEL014
End
;------------------------------------------------------------------------------
;
; Usage report (before postprocessing)
;
; ■ Statements used :
;
; 2 End
; 2 Cls
; 1 Wait
; 89 Goto
; 76 Let
; 2 Print
; 30 PrintLn
; 61 If
; 5 DispFile
; 1 FCreate
; 1 FOpen
; 2 FClose
; 10 FGet
; 3 FPutLn
; 1 Delete
; 14 Log
; 7 InputStr
; 10 Gosub
; 6 Return
; 4 PromptStr
; 1 Delay
; 2 Inc
; 26 Newline
; 3 Newlines
; 1 GetToken
; 1 DispText
; 1 Beep
; 4 KbdStuff
; 2 OpText
; 2 Backup
; 2 Append
; 1 Copy
;
;
; ■ Functions used :
;
; 3 *
; 107 +
; 22 -
; 33 ==
; 13 <>
; 6 <
; 3 <=
; 3 >
; 7 >=
; 44 !
; 7 &&
; 6 ||
; 7 Len(
; 13 Upper()
; 2 Mid()
; 1 Left()
; 1 Right()
; 4 Space()
; 19 Chr()
; 4 RTrim()
; 16 Trim()
; 2 Date()
; 1 Time()
; 2 NoChar()
; 1 YesChar()
; 15 String()
; 1 Mask_Num()
; 4 Mask_Ascii()
; 1 CurConf()
; 2 PCBDat()
; 8 PPEPath()
; 5 PcbNode()
; 4 ReadLine()
; 2 CurSec()
; 9 Exist()
; 1 GetY()
; 1 DefColor()
; 2 FileInf()
; 2 PPEName()
; 1 ScrText()
;
;------------------------------------------------------------------------------
;
; 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
;
; 3 For/Next
; 2 While/EndWhile
; 37 If/Then or If/Then/Else
; 1 Select Case
;
;------------------------------------------------------------------------------
; AEGiS Corp - Break the routines, code against the machines!
;------------------------------------------------------------------------------