home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Monster Media 1994 #1
/
monster.zip
/
monster
/
PCBOARD
/
DLPRM100.ZIP
/
DLPROMPT.PPE
(
.txt
)
< prev
next >
Wrap
PCBoard Programming Language Executable
|
1994-03-13
|
5KB
|
320 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
Boolean BOOLEAN002
Boolean TBOOLEAN003(5)
Boolean TBOOLEAN004(5)
Boolean BOOLEAN005
DWord DWORD001
DWord DWORD002
Integer INTEGER001
Integer INTEGER002
Integer INTEGER003
Integer INTEGER004
Integer INTEGER005
Integer TINTEGER006(5)
Integer TINTEGER007(5)
Integer INTEGER008
String STRING001
String STRING002
String STRING003
String TSTRING004(5)
String STRING005
String STRING006
Byte BYTE001
Byte BYTE002
Int INT001
;------------------------------------------------------------------------------
GetUser
BOOLEAN001 = 0
BOOLEAN002 = 0
STRING001 = GetToken()
While (Len(STRING001) <> 0) Do
If ((Mid(STRING001, 2, 2) == "SY") && (CurSec() >= ReadLine(PCBDat(), 8))) BOOLEAN002 = 1
If ((Mid(STRING001, 2, 2) == "EX") && U_Expert) BOOLEAN001 = 1
STRING001 = GetToken()
EndWhile
If ((!AnsiOn() || BOOLEAN001) || BOOLEAN002) Then
DispFile PPEPath() + "DLPROMPT", 4
End
Endif
If (Exist("DL" + String(PcbNode()) + ".$$$")) Then
Delete "DL" + String(PcbNode()) + ".$$$"
If ((GetX() == 1) && (GetY() == 22)) Then
Cls
Else
AnsiPos 1, GetY()
Wait
Cls
Endif
Else
Cls
Endif
STRING006 = Chr(27)
If (ReadLine(PCBDat(), 90) == "-1") Then
STRING002 = "FLIST." + String(PcbNode())
Else
STRING002 = "FLIST."
Endif
INTEGER005 = 129
INTEGER008 = 129 * FlagCnt()
If (Exist(STRING002)) Then
FOpen 1, STRING002, 2, 0
FOpen 2, STRING002, 2, 0
Endif
DispFile PPEPath() + "DLBOX", 1
If (GrafMode() == "R") Then
Gosub LABEL002
Else
Gosub LABEL001
Endif
FClose 1
FClose 2
End
:LABEL001
Print STRING006 + "[37;1;m"
Gosub LABEL006
AnsiPos 1, 12
For INTEGER003 = 1 To 5
Print STRING006 + "[4C"
Push INTEGER003
Gosub LABEL005
Next
Gosub LABEL004
AnsiPos 12, 20
OpText FlagCnt()
Print "@X0F", "@OPTEXT:4R@"
Print STRING006 + "[17C"
OpText DWORD002
Print "@X0F", "@OPTEXT:10@"
Push DWORD001
Gosub LABEL003
Print STRING006 + "[19C"
Print "@X0F", STRING003
AnsiPos 24, 3
InputStr "_", STRING005, 7, 55, Mask_File() + "*?", 8 + 16
AnsiPos 1, 22
KbdStuff STRING005 + Chr(13)
If (Len(LTrim(STRING005, " ")) <> 0) Then
FCreate 3, "DL" + String(PcbNode()) + ".$$$", 1, 3
FClose 3
Endif
Return
:LABEL002
Gosub LABEL006
AnsiPos 1, 15
For INTEGER003 = 1 To 5
Print STRING006 + "[4C"
Push INTEGER003
Gosub LABEL005
Next
Gosub LABEL004
AnsiPos 12, 24
OpText FlagCnt()
Print "@X0F", "@OPTEXT:4R@"
Print STRING006 + "[17C"
OpText DWORD002
Print "@X0F", "@OPTEXT:10@"
Push DWORD001
Gosub LABEL003
Print STRING006 + "[19C"
Print "@X0F", STRING003
AnsiPos 24, 3
InputStr "_", STRING005, 7, 55, Mask_File() + "*?", 8 + 16
KbdStuff STRING005 + Chr(13)
AnsiPos 1, 28
Return
:LABEL003
Pop INTEGER002
If (INTEGER002 >= 3600) Then
BYTE001 = ToInt(INTEGER002 / 3600)
STRING003 = Right(String(BYTE001), 2) + "
hrs
"
BYTE002 = ToInt((INTEGER002 - BYTE001 * 3600) / 60)
STRING003 = STRING003 + String(Right(BYTE002, 2)) + "
min
"
Else
BYTE002 = ToInt(INTEGER002 / 60)
STRING003 = Right(String(BYTE002), 2) + "
min
"
STRING003 = STRING003 + String(Right(INTEGER002 - BYTE002 * 60, 2)) + "
sec
"
Endif
Return
:LABEL004
FSeek 2, 79, 1
For INTEGER003 = 1 To FlagCnt()
FRead 2, INTEGER001, 4
FRead 2, INTEGER002, 4
FSeek 2, INTEGER005 - 8, 1
DWORD001 = DWORD001 + INTEGER002
DWORD002 = DWORD002 + INTEGER001
Next
Return
:LABEL005
Pop INTEGER004
If (BOOLEAN005) Then
OpText FlagCnt() - 5 + INTEGER004
Else
OpText INTEGER004
Endif
Print "@X0B@OPTEXT:4R@"
Forward 3
OpText TSTRING004(INTEGER004)
Print "@X0F@OPTEXT:15@"
OpText TINTEGER006(INTEGER004)
Print "@X0F@OPTEXT:10R@"
Forward 4
Push TINTEGER007(INTEGER004)
Gosub LABEL003
OpText STRING003
Print "@OPTEXT@"
Print "@POS:61@"
If (TBOOLEAN003(INTEGER004)) Then
Print "@X0A■"
Else
Print "@X08·"
Endif
Print "@POS:71@"
If (TBOOLEAN004(INTEGER004)) Then
Print "@X0A■"
Else
Print "@X08·"
Endif
PrintLn
Return
:LABEL006
If (FlagCnt() <= 5) Then
BOOLEAN005 = 0
Gosub LABEL007
Else
FSeek 1, -5 * INTEGER005, 2
BOOLEAN005 = 1
Gosub LABEL007
Endif
Return
:LABEL007
If (BOOLEAN005) Then
INT001 = 5
Else
INT001 = FlagCnt()
Endif
For INTEGER003 = 1 To INT001
FSeek 1, 66, 1
FRead 1, TSTRING004(INTEGER003), 13
FRead 1, TINTEGER006(INTEGER003), 4
FRead 1, TINTEGER007(INTEGER003), 4
FSeek 1, 8, 1
FRead 1, TBOOLEAN003(INTEGER003), 1
FRead 1, TBOOLEAN004(INTEGER003), 1
FSeek 1, INTEGER005 - 97, 1
Next
Return
;------------------------------------------------------------------------------
;
; Usage report (before postprocessing)
;
; ■ Statements used :
;
; 2 End
; 3 Cls
; 1 Wait
; 33 Goto
; 32 Let
; 23 Print
; 1 PrintLn
; 20 If
; 2 DispFile
; 1 FCreate
; 2 FOpen
; 3 FClose
; 1 GetUser
; 1 Delete
; 2 InputStr
; 13 Gosub
; 7 Return
; 5 Push
; 2 Pop
; 2 KbdStuff
; 9 OpText
; 9 AnsiPos
; 2 Forward
; 6 FSeek
; 7 FRead
;
;
; ■ Functions used :
;
; 1 -
; 4 *
; 3 /
; 35 +
; 5 -
; 6 ==
; 2 <>
; 4 <
; 5 <=
; 10 >=
; 19 !
; 11 &&
; 6 ||
; 2 Len(
; 2 Mid()
; 4 Right()
; 3 Chr()
; 1 LTrim()
; 8 String()
; 2 Mask_File()
; 2 PCBDat()
; 2 PPEPath()
; 4 PcbNode()
; 2 ReadLine()
; 1 CurSec()
; 2 GetToken()
; 2 Exist()
; 1 AnsiOn()
; 1 GetX()
; 2 GetY()
; 1 GrafMode()
; 3 ToInt()
; 8 FlagCnt()
;
;------------------------------------------------------------------------------
;
; 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
;
; 4 For/Next
; 1 While/EndWhile
; 13 If/Then or If/Then/Else
; 0 Select Case
;
;------------------------------------------------------------------------------
; AEGiS Corp - Break the routines, code against the machines!
;------------------------------------------------------------------------------