home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Bila Vrana
/
BILA_VRANA.iso
/
019A
/
PCBDEMO.ZIP
/
PCBDISK1.EXE
/
RIP
/
PPE
/
DIRSLCT.PPE
(
.txt
)
< prev
next >
Wrap
PCBoard Programming Language Executable
|
1993-01-01
|
4KB
|
247 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
String STRING001
String STRING002
String STRING003
String STRING004
String STRING005
Word WORD001
Int INT001
Int INT002
Int INT003
Int INT004
Int INT005
Int INT006
BigStr BIGSTR001
BigStr BIGSTR002
BigStr BIGSTR003
;------------------------------------------------------------------------------
INTEGER001 = 96
STRING001 = ReadLine(PCBDat(), 31) + ".@@@"
INTEGER002 = 1
INTEGER003 = 1
INT001 = 20
BIGSTR001 = "00000000000000000000000000000000000000000000000000000000000000"
FOpen 1, STRING001, 0, 0
FRead 1, WORD001, 2
FSeek 1, WORD001 * CurConf(), 1
FSeek 1, 482, 1
FRead 1, STRING002, 33
FClose 1
INTEGER004 = FileInf(STRING002, 4) / 96
FOpen 1, STRING002, 0, 0
DispFile PPEPath() + "DIRSLCT", 4
Gosub LABEL007
If (INTEGER004 < INT001) Then
INTEGER006 = INTEGER004
INTEGER002 = 1
INTEGER003 = INTEGER004
Else
INTEGER006 = INT001
INTEGER002 = 1
INTEGER003 = INT001
Endif
Gosub LABEL006
STRING004 = Upper(Inkey())
While (STRING004 <> "Q") Do
If (STRING004 == "D") Gosub LABEL001
If (STRING004 == "U") Gosub LABEL002
If (STRING004 == "A") Goto LABEL003
If (STRING004 == "N") Goto LABEL004
If (STRING004 == "P") Goto LABEL005
If ((STRING004 >= "!") && (STRING004 <= "4")) Gosub LABEL008
If (((STRING004 == "U") || (STRING004 == "D")) || ((STRING004 >= "!") && (STRING004 <= "4"))) Gosub LABEL006
STRING004 = Upper(Inkey())
EndWhile
For INTEGER005 = 1 To INTEGER004
If (Mid(BIGSTR001, INTEGER005, 1) == "1") KbdString " " + String(INTEGER005)
Next
KbdString Chr(13)
FClose 1
End
:LABEL001
If (INTEGER003 + INT001 < INTEGER004) Then
INTEGER002 = INTEGER003 + 1
INTEGER003 = INTEGER003 + INT001
ElseIf (INTEGER003 <> INTEGER004) Then
INTEGER002 = INTEGER003 + 1
INTEGER003 = INTEGER004
Endif
FSeek 1, (INTEGER002 - 1) * INTEGER001, 0
INTEGER006 = INTEGER003 - INTEGER002 + 1
Return
:LABEL002
If (INTEGER002 == 1) Then
FSeek 1, 0, 0
Return
Endif
If (INTEGER002 - INT001 >= 1) Then
INTEGER003 = INTEGER002 - 1
INTEGER002 = INTEGER002 - INT001
Endif
FSeek 1, (INTEGER002 - 1) * INTEGER001, 0
INTEGER006 = INTEGER003 - INTEGER002 + 1
Return
:LABEL003
KbdString "A" + Chr(13)
End
:LABEL004
KbdString Chr(13) + Chr(13)
End
:LABEL005
KbdString "U" + Chr(13)
End
:LABEL006
PrintLn
Print "@X1F"
Cls
For INTEGER005 = INTEGER002 To INTEGER003
FSeek 1, 60, 1
FRead 1, STRING003, 35
FSeek 1, INTEGER001 - 95, 1
OpText INTEGER005
Print "@X00"
Print "@X1E@OPTEXT:3R@. "
If (Mid(BIGSTR001, INTEGER005, 1) == "1") Then
Print "@X1F"
Else
Print "@X17"
Endif
OpText STRING003
PrintLn "@OPTEXT:35@@XFF"
Next
INT002 = INTEGER003 - INTEGER002 + 1
If (INT002 <> INT001) Then
For INTEGER005 = 1 To INT001 - INT002
OpText ""
PrintLn "@X00@X10@OPTEXT:40@@XFF"
Next
Endif
PrintLn "@X1F@CLREOL@@XFF"
Print "@X1EViewing @X1B", Right(INTEGER002, 3), "@X1E to @X1B", Right(INTEGER003, 3), "@X1E out of @X1B", Right(INTEGER004, 3), "@CLREOL@@XFF"
Return
:LABEL007
For INTEGER005 = 0 To INT001 - 1
INT003 = 39
INT004 = 1 * (INTEGER005 + 7)
INT005 = 79
INT006 = INT004 + 1
MouseReg INTEGER005, INT003, INT004, INT005, INT006, 8, 8, 1, 0, Chr(INTEGER005 + 33)
Next
Return
:LABEL008
INTEGER007 = INTEGER002 + Asc(STRING004) - 33
BIGSTR002 = Left(BIGSTR001, INTEGER007 - 1)
BIGSTR003 = Right(BIGSTR001, Len(BIGSTR001) - INTEGER007)
If (Mid(BIGSTR001, INTEGER007, 1) == "1") Then
STRING005 = "0"
Else
STRING005 = "1"
Endif
BIGSTR001 = BIGSTR002 + STRING005 + BIGSTR003
FSeek 1, (INTEGER002 - 1) * INTEGER001, 0
Return
;------------------------------------------------------------------------------
;
; Usage report (before postprocessing)
;
; ■ Statements used :
;
; 4 End
; 1 Cls
; 25 Goto
; 42 Let
; 6 Print
; 4 PrintLn
; 21 If
; 1 DispFile
; 2 FOpen
; 2 FClose
; 6 Gosub
; 6 Return
; 3 OpText
; 8 FSeek
; 3 FRead
; 5 KbdString
; 1 MouseReg
;
;
; ■ Functions used :
;
; 5 *
; 1 /
; 23 +
; 17 -
; 11 ==
; 3 <>
; 6 <
; 6 <=
; 11 >=
; 13 !
; 10 &&
; 6 ||
; 1 Len(
; 2 Upper()
; 3 Mid()
; 1 Left()
; 4 Right()
; 6 Chr()
; 1 Asc()
; 2 Inkey()
; 1 String()
; 1 CurConf()
; 1 PCBDat()
; 1 PPEPath()
; 1 ReadLine()
; 1 FileInf()
;
;------------------------------------------------------------------------------
;
; 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
; 8 If/Then or If/Then/Else
; 0 Select Case
;
;------------------------------------------------------------------------------
; AEGiS Corp - Break the routines, code against the machines!
;------------------------------------------------------------------------------