home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Carsten's PPE Collection
/
Carstens_PPE_Collection_2007.zip
/
T
/
TBH-KC.ZIP
/
KEWLCHAT.PPE
(
.txt
)
< prev
next >
Wrap
PCBoard Programming Language Executable
|
1994-05-16
|
4KB
|
282 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
String STRING001
String STRING002
String STRING003
String STRING004
;------------------------------------------------------------------------------
PageOff
DispFile PPEPath() + "KewlChat.PCB", 0
Print "@X0C"
AnsiPos 14, 6
Print "SYSOP"
AnsiPos 53, 16
Print "@USER@"
Print "@X0F"
AnsiPos 59, 21
Print "@BOARDNAME@"
INTEGER001 = 10
INTEGER002 = 7
INTEGER003 = 40
INTEGER004 = 9
While (STRING002 <> Chr(27)) Do
STRING002 = KInkey()
STRING001 = MInkey()
If ((((STRING002 <> "") && (STRING002 <> Chr(13))) && (STRING002 <> Chr(8))) && (STRING002 <> Chr(27))) Then
Gosub LABEL001
Endif
If ((STRING002 <> " ") && (INTEGER001 < 34)) Then
STRING003 = STRING003 + STRING002
Endif
If (STRING002 == " ") Then
STRING003 = ""
Endif
If (INTEGER001 == 34) Then
Gosub LABEL005
Endif
If (STRING002 == Chr(13)) Then
Gosub LABEL002
Endif
If (STRING002 == Chr(8)) Then
Gosub LABEL003
Endif
If ((((STRING001 <> "") && (STRING001 <> Chr(13))) && (STRING001 <> Chr(8))) && (STRING001 <> Chr(27))) Then
Gosub LABEL007
Endif
If ((STRING001 <> " ") && (INTEGER003 < 72)) Then
STRING004 = STRING004 + STRING001
Endif
If (STRING001 == " ") Then
STRING004 = ""
Endif
If (INTEGER003 == 72) Then
Gosub LABEL011
Endif
If (STRING001 == Chr(13)) Then
Gosub LABEL008
Endif
If (STRING001 == Chr(8)) Then
Gosub LABEL009
Endif
EndWhile
End
:LABEL001
AnsiPos INTEGER001, INTEGER002
Print STRING002
INTEGER001 = INTEGER001 + 1
If (INTEGER001 == 34) Then
Gosub LABEL005
Endif
If (INTEGER002 == 18) Then
Gosub LABEL004
Endif
Return
:LABEL002
INTEGER001 = 10
INTEGER002 = INTEGER002 + 1
AnsiPos INTEGER001, INTEGER002
If (INTEGER002 == 18) Then
Gosub LABEL004
Endif
Return
:LABEL003
If (INTEGER001 > 10) Then
INTEGER001 = INTEGER001 - 1
AnsiPos INTEGER001, INTEGER002
Print " "
AnsiPos INTEGER001, INTEGER002
Endif
Return
:LABEL004
AnsiPos 10, 7
Print " "
AnsiPos 10, 8
Print " "
AnsiPos 10, 9
Print " "
AnsiPos 10, 10
Print " "
AnsiPos 10, 11
Print " "
AnsiPos 10, 12
Print " "
AnsiPos 10, 13
Print " "
AnsiPos 10, 14
Print " "
AnsiPos 10, 15
Print " "
AnsiPos 10, 16
Print " "
AnsiPos 10, 17
Print " "
INTEGER001 = 10
INTEGER002 = 7
AnsiPos INTEGER001, INTEGER002
Return
:LABEL005
STRING003 = STRING003 + STRING002
If ((Len(STRING003) < 23) && (INTEGER002 < 17)) Then
AnsiPos 34 - Len(STRING003), INTEGER002
Print "@X80", STRING003
Print "@X0F"
INTEGER001 = 10
INTEGER002 = INTEGER002 + 1
AnsiPos INTEGER001, INTEGER002
Print STRING003
INTEGER001 = INTEGER001 + Len(STRING003)
AnsiPos INTEGER001, INTEGER002
Else
STRING003 = ""
INTEGER001 = 10
INTEGER002 = INTEGER002 + 1
Goto LABEL006
If (INTEGER002 > 17) Then
Gosub LABEL004
Endif
Endif
:LABEL006
Return
:LABEL007
AnsiPos INTEGER003, INTEGER004
Print STRING001
INTEGER003 = INTEGER003 + 1
If (INTEGER003 == 72) Then
Gosub LABEL011
Endif
If (INTEGER004 == 41) Then
Gosub LABEL010
Endif
Return
:LABEL008
INTEGER003 = 40
INTEGER004 = INTEGER004 + 1
AnsiPos INTEGER003, INTEGER004
If (INTEGER004 == 16) Then
Gosub LABEL010
Endif
Return
:LABEL009
If (INTEGER003 > 40) Then
INTEGER003 = INTEGER003 - 1
AnsiPos INTEGER003, INTEGER004
Print " "
AnsiPos INTEGER003, INTEGER004
Endif
Return
:LABEL010
AnsiPos 40, 9
Print " "
AnsiPos 40, 10
Print " "
AnsiPos 40, 11
Print " "
AnsiPos 40, 12
Print " "
AnsiPos 40, 13
Print " "
AnsiPos 40, 14
Print " "
AnsiPos 40, 15
Print " "
AnsiPos 40, 9
INTEGER003 = 40
INTEGER004 = 9
AnsiPos INTEGER003, INTEGER004
Return
:LABEL011
STRING004 = STRING004 + STRING001
If ((Len(STRING004) < 31) && (INTEGER004 < 15)) Then
AnsiPos 72 - Len(STRING004), INTEGER004
Print "@X80", STRING004
Print "@X0F"
INTEGER003 = 40
INTEGER004 = INTEGER004 + 1
AnsiPos INTEGER003, INTEGER004
Print STRING004
INTEGER003 = INTEGER003 + Len(STRING004)
AnsiPos INTEGER003, INTEGER004
Endif
If (Len(STRING004) > 30) Then
STRING004 = ""
INTEGER003 = 40
INTEGER004 = INTEGER004 + 1
Endif
If (INTEGER004 > 15) Then
Gosub LABEL010
Endif
Return
;------------------------------------------------------------------------------
;
; Usage report (before postprocessing)
;
; ■ Statements used :
;
; 1 End
; 29 Goto
; 36 Let
; 33 Print
; 26 If
; 1 DispFile
; 16 Gosub
; 10 Return
; 38 AnsiPos
; 1 PageOff
;
;
; ■ Functions used :
;
; 15 +
; 4 -
; 14 ==
; 11 <>
; 6 <
; 5 >
; 26 !
; 10 &&
; 7 Len(
; 11 Chr()
; 1 PPEPath()
; 1 KInkey()
; 1 MInkey()
;
;------------------------------------------------------------------------------
;
; Analysis flags : No flag
;
;------------------------------------------------------------------------------
;
; Postprocessing report
;
; 0 For/Next
; 1 While/EndWhile
; 25 If/Then or If/Then/Else
; 0 Select Case
;
;------------------------------------------------------------------------------
; AEGiS Corp - Break the routines, code against the machines!
;------------------------------------------------------------------------------