home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Monster Media 1994 #1
/
monster.zip
/
monster
/
PCBOARD
/
NWSMKR2B.ZIP
/
NEWSMAKR.PPE
(
.txt
)
< prev
next >
Wrap
PCBoard Programming Language Executable
|
1994-02-17
|
9KB
|
562 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
;------------------------------------------------------------------------------
Boolean BOOLEAN001
Date DATE001
Integer INTEGER002
Integer INTEGER003
String STRING001
String STRING002
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
String STRING022
String STRING023
Byte BYTE001
Byte BYTE002
Byte BYTE003
Byte BYTE004
Byte BYTE005
Byte BYTE006
Byte BYTE007
Byte BYTE008
Byte BYTE009
;------------------------------------------------------------------------------
DATE001 = "04-17-94"
If (Date() >= DATE001) Then
PrintLn " @X0FThis PPE has @X0EEXPIRED @X0Fas of @X0C4-17-94@X07"
End
Endif
If (GrafMode() == "A") Then
PrintLn
PrintLn " Any input you make will not utilize colors"
PrintLn
Print " "
Wait
Endif
If (AnsiOn()) Goto LABEL001
DispFile PPEPath() + "newsmakr.asc", 4
End
:LABEL001
If (OnLocal()) Goto LABEL002
Cls
Newlines 2
PrintLn " @X0BNEWSMAKR.PPE@X07"
PrintLn
PrintLn " @X0FPlease make sure that you are in @X0Edoorway mode @X0Ffor @X0Bcorrect @X0Acursor @X0Dmovement@X07"
PrintLn
Print " "
Wait
:LABEL002
STRING008 = Chr(77)
STRING009 = Chr(75)
STRING010 = Chr(72)
STRING011 = Chr(80)
STRING020 = Chr(79)
STRING019 = Chr(71)
STRING018 = Chr(81)
STRING017 = Chr(73)
STRING015 = Chr(8)
STRING016 = Chr(82)
BYTE002 = "0"
STRING004 = Chr(8)
STRING005 = Chr(127)
STRING006 = Chr(13)
STRING007 = Chr(27)
BYTE001 = 0
STRING001 = ""
STRING013 = ReadLine(PCBDat(), 31)
STRING012 = 1
GetUser
STRING021 = ReadLine(STRING013, 13 + 33 * CurConf())
INTEGER002 = U_PageLen
U_PageLen = "0"
PutUser
:LABEL003
If (OnLocal()) Cls
Newlines 2
PrintLn " @X0D Newsmakr.ppe v2.0@X07" + Chr(225)
PrintLn
PrintLn " ░▒▓█ @X0BDMSOFT @X0F█▓▒░@X07"
PrintLn
InputStr " @X0FWould you like to @X0EC@X0Freate, @X0EE@X0Fdit, @X0E@X0EV@X0Fiew, @X0EA@X0Fppend a @X0ANews file @X0F(@X0EQ@X0Fuit)@X07", STRING014, 14, 1, "CcEeAaQqVv", 2 + 8 + 4
PrintLn
Select Case (STRING014)
Case "C"
STRING014 = "N"
STRING022 = "C"
If (Exist(STRING021)) Then
InputStr " @X0BNews @X0Ffile already exists - overwrite it @X0F(@X0EY@X0F/@X0EN@X0F)@X07", STRING014, 14, 1, "YyNn", 2 + 4 + 8 + 256
If (STRING014 == "N") End
Gosub LABEL014
Endif
Case "E"
STRING022 = "E"
Case "A"
PrintLn
PrintLn " @X0FThis function @X0Cnot @X0Foperable yet@X07"
PrintLn
Print " "
Wait
Goto LABEL003
STRING022 = "A"
Case "V"
PrintLn " got to V "
If (Exist(STRING021)) Then
DispFile STRING021, ""
Else
If (Exist(STRING021)) Goto LABEL004
PrintLn
PrintLn " @X0FThe file -@X0C " + STRING021 + "@X0F does not exist on the disk"
PrintLn " Check your path - if thats right then @X0EC@X0Freate a new file.@X07"
Wait
Endif
:LABEL004
Goto LABEL003
Case "Q"
End
Case Else
Goto LABEL003
End Select
Cls
STRING003 = STRING003
STRING003 = Mixed(STRING003)
If (GrafMode() == "G") Then
STRING023 = "Color"
Endif
PrintLn " @X0C-@X0B=@X0A≡@X0ENewsMakr v1.2@X0A≡@X0B=@X0C-@X07 @POS:72@" + STRING023
PrintLn "@X0F╒═════════════════════════════╤═══════════════╤═══════════════╤═════════════╕"
PrintLn "@X0F│ @X0BEnter your @X0Enews file @X0Bbelow @X0F│ @X0F(@X0E@X0F@X0ECTRL S)@X0B Save@X0F │ @X0F(@X0EESC@X0F) @X0Bto EXIT @X0F│ @X0F(@X0EF10@X0F) @X0BHelp @X0F│@X07"
PrintLn "@X0F│@X09─@X0B=@X07≡@X0E Current Conference: @X0F" + String(CurConf()) + "@X07≡@X0B=@X09-@X0F@POS:31@│@X07 file=> " + STRING021 + "@X0F@POS:63@│@POS:77@│@X07"
PrintLn "≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈@X0F"
STRING023 = ""
Gosub LABEL014
Select Case (STRING022)
Case "C"
AnsiPos 1, 6
Case "E"
AnsiPos STRING012 + 1, 10
Case "A"
AnsiPos 1, 1
Print "Edit"
AnsiPos 1, 6
End Select
:LABEL005
If (BOOLEAN001) Goto LABEL013
INTEGER003 = GetY()
STRING002 = Inkey()
If (STRING002 <> "") Then
BYTE008 = GetY()
BYTE009 = GetX()
BYTE005 = GetX()
BYTE003 = GetY()
AnsiPos 18, 1
Print BYTE009, " ", ",", BYTE008, " "
AnsiPos BYTE005, BYTE003
If (STRING002 == STRING007) Then
U_PageLen = INTEGER002
PutUser
Cls
BOOLEAN001 = 1
Goto LABEL011
Endif
If (STRING002 == Chr(19)) Then
Print STRING004 + STRING004 + STRING004 + STRING004
FOpen 1, STRING021, 2, 0
AnsiPos 1, 1
STRING014 = "Y"
InputStr "@X0FSave file (@X0EY/N/Abort) @X07", STRING014, 14, 1, "YyNnAa", 2 + 4 + 8 + 256
If (STRING014 == "N") Then
U_PageLen = INTEGER002
PutUser
Cls
End
Goto LABEL007
Endif
If (STRING014 == "A") Then
STRING014 = "Y"
AnsiPos 1, 1
PrintLn " "
AnsiPos 1, 1
InputStr " @X0BAbort, are you sure@X07 ", STRING014, 14, 1, "YyNn", 2 + 4 + 8 + 256
If (STRING014 == "Y") Then
U_PageLen = INTEGER002
PutUser
Cls
End
Goto LABEL006
Endif
If (STRING014 == "N") Then
U_PageLen = INTEGER002
PutUser
Endif
:LABEL006
Goto LABEL007
Goto LABEL007
Endif
If (STRING022 == "E") Then
Rename STRING021, STRING021 + ".old"
Endif
:LABEL007
STRING012 = 6
For STRING012 = 6 To 21
STRING001 = ScrText(1, STRING012, 70, 1)
AnsiPos 1, STRING012 + 1
If (INTEGER003 == STRING012) Break
FPutLn 1, STRING001
Next
STRING001 = ""
FPutLn 1, STRING006
FClose 1
If (STRING022 == "A") Then
PrintLn STRING021 + ".tmp"
Delete STRING021 + "tmp"
Append STRING021, STRING021 + ".tmp"
End
Delete STRING021 + ".tmp"
Endif
DefColor
Cls
BOOLEAN001 = 1
Goto LABEL011
Endif
If (STRING002 == "F10") Then
BYTE004 = GetY()
BYTE007 = GetX()
AnsiPos 23, 79
SaveScrn
Newline
Cls
If (!OnLocal()) DispFile PPEPath() + "newsmakr.hlp", 1 + 4
If (OnLocal()) DispFile PPEPath() + "newsmkrl.hlp", 1 + 4
Newline
Wait
RestScrn
AnsiPos BYTE007, BYTE004
Goto LABEL012
Goto LABEL011
Endif
If (STRING002 == "PGUP") Then
BYTE005 = GetX()
BYTE003 = GetY()
AnsiPos 1, 6
Goto LABEL011
Endif
If (STRING002 == "PGDN") Then
AnsiPos 1, 23
Goto LABEL011
Endif
If (STRING002 == "CTRL PGUP") Then
BYTE005 = GetX()
BYTE003 = GetY()
BYTE006 = BYTE006 + 1
Color BYTE006
AnsiPos 72, 1
Print "Color"
AnsiPos BYTE005, BYTE003
Goto LABEL011
Endif
If (STRING002 == "CTRL PGDN") Then
BYTE005 = GetX()
BYTE003 = GetY()
BYTE006 = BYTE006 - 1
Color BYTE006
AnsiPos 72, 1
Print "Color"
AnsiPos BYTE005, BYTE003
Goto LABEL011
Endif
If (STRING002 == "END") Then
BYTE005 = GetX()
BYTE003 = GetY()
AnsiPos 65, BYTE003
Goto LABEL011
Endif
If (STRING002 == "HOME") Then
BYTE005 = GetX()
BYTE003 = GetY()
AnsiPos 1, BYTE003
Goto LABEL011
Endif
If (STRING002 == STRING006) Then
PrintLn
ClrEol
Goto LABEL011
Endif
If (STRING002 == "DEL") Then
BYTE007 = GetX()
Print " "
BYTE007 = BYTE007 - 1
BYTE003 = GetY()
AnsiPos BYTE007, BYTE003
BYTE001 = BYTE001 - 1
STRING001 = Left(STRING001, BYTE001)
Goto LABEL011
Endif
If (STRING002 == "BS") Then
If (BYTE001 > 0) Then
Print STRING004 + " "
BYTE007 = GetX()
BYTE007 = BYTE007 - 1
BYTE003 = GetY()
AnsiPos BYTE007, BYTE003
BYTE001 = BYTE001 - 1
STRING001 = Left(STRING001, BYTE001)
Endif
Goto LABEL011
Endif
If ((STRING002 == STRING004) || (STRING002 == STRING005)) Then
If (BYTE001 > 0) Then
Print STRING004 + " "
BYTE007 = GetX()
BYTE007 = BYTE007 - 1
BYTE003 = GetY()
AnsiPos BYTE007, BYTE003
BYTE001 = BYTE001 - 1
STRING001 = Left(STRING001, BYTE001)
Endif
Goto LABEL011
Endif
If (STRING002 == "RIGHT") Then
BYTE003 = GetY()
If (BYTE003 >= 65) Then
BYTE003 = 65
Goto LABEL008
Endif
Forward 1
:LABEL008
Goto LABEL011
Endif
If (STRING002 == "DOWN") Then
BYTE004 = GetY()
BYTE004 = BYTE004 + 1
BYTE005 = GetX()
AnsiPos BYTE005, BYTE004
Goto LABEL011
Endif
If (STRING002 == Chr(56)) Then
BYTE004 = GetY()
BYTE004 = BYTE004 - 1
BYTE005 = GetX()
If (BYTE004 <= 6) BYTE004 = 6
AnsiPos BYTE005, BYTE004
Goto LABEL011
Endif
If (STRING002 == "UP") Then
BYTE004 = GetY()
BYTE004 = BYTE004 - 1
BYTE005 = GetX()
If (BYTE004 <= 6) BYTE004 = 6
AnsiPos BYTE005, BYTE004
Goto LABEL011
Endif
If (STRING002 == "LEFT") Then
BYTE005 = GetX()
Backup 1
Goto LABEL011
Endif
If (BYTE002 == "1") Then
BYTE005 = GetX()
Goto LABEL011
Endif
If (STRING002 == "INS") Then
BYTE005 = GetX()
BYTE003 = GetY()
If (BYTE002 == "0") Then
AnsiPos 1, 1
Print "@X0A Insert on @X07"
AnsiPos BYTE005, BYTE003
STRING002 = STRING002 + " " + STRING001
BYTE002 = "1"
Goto LABEL009
Endif
If (BYTE002 == "1") Then
AnsiPos 1, 1
Print "@X0C Insert off@X07"
AnsiPos BYTE005, BYTE003
STRING002 = STRING002
BYTE002 = "0"
Endif
:LABEL009
Goto LABEL011
Endif
If ((STRING002 == STRING004) || (STRING002 == STRING005)) Then
If (BYTE001 > 0) Then
Print STRING004 + " "
BYTE001 = BYTE001 - 1
STRING001 = Left(STRING001, BYTE001)
Goto LABEL010
Endif
If ((STRING002 >= " ") && (BYTE001 < 65)) Then
STRING001 = STRING001 + STRING002
BYTE001 = BYTE001 + 1
Goto LABEL010
Endif
Goto LABEL012
:LABEL010
Goto LABEL011
Endif
Print STRING002
:LABEL011
Print STRING007 + "[s"
Endif
:LABEL012
Goto LABEL005
:LABEL013
End
:LABEL014
Select Case (STRING022)
Case "C"
FCreate 1, STRING021, 2, 0
Case "E"
FOpen 1, STRING021, 2, 0
STRING012 = 0
:LABEL015
If (Ferr(1)) Goto LABEL016
STRING012 = STRING012 + 1
If (STRING012 == 17) Return
FGet 1, STRING001
PrintLn STRING001
Goto LABEL015
:LABEL016
FClose 1
Case "A"
Rename STRING021, STRING021 + ".TMP"
End Select
Return
;------------------------------------------------------------------------------
;
; Usage report (before postprocessing)
;
; ■ Statements used :
;
; 8 End
; 8 Cls
; 1 ClrEol
; 5 Wait
; 2 Color
; 105 Goto
; 106 Let
; 16 Print
; 29 PrintLn
; 65 If
; 4 DispFile
; 1 FCreate
; 2 FOpen
; 2 FClose
; 1 FGet
; 2 FPutLn
; 1 GetUser
; 5 PutUser
; 1 DefColor
; 2 Delete
; 4 InputStr
; 2 Gosub
; 2 Return
; 2 Newline
; 2 Newlines
; 30 AnsiPos
; 1 Backup
; 1 Forward
; 1 SaveScrn
; 1 RestScrn
; 2 Rename
; 1 Append
;
;
; ■ Functions used :
;
; 1 *
; 48 +
; 10 -
; 47 ==
; 1 <>
; 2 <
; 3 <=
; 3 >
; 5 >=
; 58 !
; 3 &&
; 3 ||
; 4 Left()
; 1 Ferr()
; 17 Chr()
; 1 Date()
; 1 Inkey()
; 1 String()
; 2 CurConf()
; 1 PCBDat()
; 3 PPEPath()
; 2 ReadLine()
; 4 OnLocal()
; 3 Exist()
; 1 AnsiOn()
; 17 GetX()
; 17 GetY()
; 2 GrafMode()
; 1 ScrText()
; 1 Mixed()
;
;------------------------------------------------------------------------------
;
; Analysis flags : Wd
;
; W - Write user ■ 5
; Program writes a user record. Although this may be normal for a
; User Editor, it may also be a way to modify an account level.
; ■ Search for : PUTUSER
;
; 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
;
; 1 For/Next
; 0 While/EndWhile
; 40 If/Then or If/Then/Else
; 3 Select Case
;
;------------------------------------------------------------------------------
; AEGiS Corp - Break the routines, code against the machines!
;------------------------------------------------------------------------------