Metropoli BBS
VIEWER: chat.ppx MODE: TEXT (CP437)
;------------------------------------------------------------------------------
; PPLX 1.3O                              (C)1995 - Lone Runner / AEGiS CoRP'95 
;------------------------------------------------------------------------------
; PPE 3.1O (crypted) - Analysis OFF
;------------------------------------------------------------------------------

    Declare Procedure PROC001()
    Declare Procedure PROC002()
    Declare Procedure PROC003()
    Declare Procedure PROC004()
    Boolean  BOOLEAN001
    Int      INT001
    Int      INT002
    Int      INT003
    Int      INT004
    Int      INT005
    Int      INT006
    Int      INT007
    Int      INT008
    Int      INT009
    DWord    DWORD001
    String   STRING001
    String   STRING002
    String   TABLESTRING003(2)
    String   TABLESTRING004(11)
    String   TABLESTRING005(2)
    String   TABLESTRING006(4)
    String   STRING007
    String   STRING008
    String   STRING009

;------------------------------------------------------------------------------

    Goto LABEL000
:LABEL000
    INT001 = 1
    INT003 = 1
    INT002 = 1
    INT004 = 13
    INT006 = 1
    INT007 = 1
    INT008 = 1
    INT009 = 13
    STRING008 = ReadLine(PcbDat(), 2)
    STRING009 = ReadLine(PcbDat(), 94)
    TABLESTRING006(1) = ReadLine(PpePath() + "CHAT.CFG", 1)
    TABLESTRING006(2) = ReadLine(PpePath() + "CHAT.CFG", 2)
    TABLESTRING006(3) = ReadLine(PpePath() + "CHAT.CFG", 3)
    TABLESTRING006(4) = ReadLine(PpePath() + "CHAT.CFG", 4)
    DWORD001 = ReadLine(PpePath() + "CHAT.CFG", 5)
    TABLESTRING006(3) = ReplaceStr(TABLESTRING006(3), "%SYSOP%", TABLESTRING006(2))
    TABLESTRING006(3) = ReplaceStr(TABLESTRING006(3), "%BBS%", TABLESTRING006(1))
    TABLESTRING006(3) = ReplaceStr(TABLESTRING006(3), "~", " ")
    STRING007 = "1.00"
    If (!(Crc32(0, TABLESTRING006(1)) / 5 + 33 == DWORD001)) Goto LABEL001
    BOOLEAN001 = 1
    Goto LABEL002
:LABEL001
    BOOLEAN001 = 0
:LABEL002
    If (AnsiOn()) Goto LABEL003
    Print TABLESTRING006(3)
    End
:LABEL003
    SaveScrn
    StartDisp 1
    Cls
    PROC002()
    AnsiPos 1, 1
    Print "@X0A" + TABLESTRING006(3)
    INT001 = GetX()
    INT003 = GetY()
:LABEL005
    If (!(STRING002 <> Chr(27))) Goto LABEL004
    PROC001()
    PROC003()
    Goto LABEL005
:LABEL004
    Cls
    PrintLn "@X0FCHAT.PPE Version ", STRING007, " Copyright (C) 1995 by Mukunda Modell"
    If (!BOOLEAN001) Goto LABEL006
    PrintLn "@X0CREGISTERED to:@X0F ",TABLESTRING006(1)," of ",TABLESTRING006(2) 
    Goto LABEL007
:LABEL006
    Print ""
    INT005 = 1
:LABEL009
    PrintLn "@X0CREGISTERED to:@X0F ",STRING008," of ",STRING009 
    ;If (!(((1 < 0) && (INT005 >= 20)) || ((1 >= 0) && (INT005 <= 20)))) Goto LABEL008
    ;Print "."
    ;Delay 3
    ;INT005 = INT005 + 1
    ;Goto LABEL004
:LABEL008
    Print "@X0F"
:LABEL007
    Wait
    RestScrn
    KbdStuff Chr(27)
    End

Procedure PROC001()

    STRING002 = ""
    STRING001 = ""
:LABEL011
    If (!((STRING002 == "") && (STRING001 == ""))) Goto LABEL010
    STRING002 = KInkey()
    STRING001 = MInkey()
    Goto LABEL011
:LABEL010

EndProc


Procedure PROC002()

    AnsiPos 1, 12
    If (!BOOLEAN001) Goto LABEL012
    PrintLn TABLESTRING006(4)
    Goto LABEL013
:LABEL012
    ;PrintLn "@X09────────═══════════════════════════════════════════════════════════════────────@X0F"
    PrintLn TABLESTRING006(4)
:LABEL013
    AnsiPos 1, 1

EndProc


Procedure PROC003()

    If (!(STRING002 == "")) Goto LABEL014
    Cls
    Print "@X0A" + TABLESTRING006(3)
    End
:LABEL014
    PROC004()
    If (!((TABLESTRING005(1) <> "") || (TABLESTRING005(2) <> ""))) Goto LABEL015
    AnsiPos INT001, INT003
    Print "@X0A" + TABLESTRING005(1)
    INT001 = GetX()
    INT003 = GetY()
    TABLESTRING005(1) = ""
    AnsiPos INT002, INT004
    Print "@X0F" + TABLESTRING005(2)
    INT002 = GetX()
    INT004 = GetY()
    TABLESTRING005(2) = ""
:LABEL015
    If (!(STRING002 <> "")) Goto LABEL016
    AnsiPos INT001, INT003
    If ((CurColor() <> "@X0A")) Print "@X0A"
    If (!((STRING002 == " ") && (GetX() == 1))) Goto LABEL017
    TABLESTRING003(1) = ""
    Goto LABEL018
:LABEL017
    If (!(STRING002 == " ")) Goto LABEL019
    TABLESTRING003(1) = ""
    Goto LABEL018
:LABEL019
    If (!(STRING002 == Chr(13))) Goto LABEL020
    TABLESTRING003(1) = ""
    INT006 = GetX()
    INT007 = GetY()
    If ((GetY() == 11)) INT007 = 10
    Newline
    STRING002 = ""
    INT001 = GetX()
    INT003 = GetY()
    PROC004()
    Goto LABEL018
:LABEL020
    If (!((INT001 == 1) && (STRING002 == Chr(8)))) Goto LABEL021
    AnsiPos INT006, INT007
    INT001 = INT006
    INT003 = INT007
    STRING002 = ""
    Goto LABEL018
:LABEL021
    If (!(STRING002 == Chr(8))) Goto LABEL022
    Backup 1
    Print " "
    Goto LABEL018
:LABEL022
    TABLESTRING003(1) = TABLESTRING003(1) + STRING002
:LABEL018
    If (!(INT001 == 79)) Goto LABEL023
    INT001 = 1
    Inc INT003
    Backup Len(TABLESTRING003(1))
    INT006 = GetX()
    INT007 = GetY()
    PrintLn Space(Len(TABLESTRING003(1)))
    STRING002 = ""
    TABLESTRING005(1) = TABLESTRING003(1)
    INT001 = GetX()
    INT003 = GetY()
:LABEL023
    AnsiPos INT001, INT003
    Print STRING002
    INT001 = GetX()
    INT003 = GetY()
:LABEL016
    If (!(STRING001 <> "")) Goto LABEL024
    AnsiPos INT002, INT004
    If ((CurColor() <> "@X0F")) Print "@X0F"
    If (!((STRING001 == " ") && (INT002 == 1))) Goto LABEL025
    TABLESTRING003(2) = ""
    Goto LABEL026
:LABEL025
    If (!(STRING001 == " ")) Goto LABEL027
    TABLESTRING003(2) = ""
    Goto LABEL026
:LABEL027
    If (!(STRING001 == Chr(13))) Goto LABEL028
    TABLESTRING003(2) = ""
    INT008 = GetX()
    INT009 = GetY()
    If ((GetY() == 22)) INT009 = 21
    Newline
    STRING001 = ""
    INT002 = GetX()
    INT004 = GetY()
    PROC004()
    Goto LABEL026
:LABEL028
    If (!((INT002 == 1) && (STRING001 == Chr(8)))) Goto LABEL029
    AnsiPos INT008, INT009
    INT002 = INT008
    INT004 = INT009
    STRING001 = ""
    Goto LABEL026
:LABEL029
    If (!(STRING001 == Chr(8))) Goto LABEL030
    Backup 1
    Print " "
    Goto LABEL026
:LABEL030
    TABLESTRING003(2) = TABLESTRING003(2) + STRING001
:LABEL026
    If (!(INT002 == 79)) Goto LABEL031
    INT002 = 1
    Inc INT004
    Backup Len(TABLESTRING003(2))
    INT008 = GetX()
    INT009 = GetY()
    PrintLn Space(Len(TABLESTRING003(2)))
    STRING001 = ""
    TABLESTRING005(2) = TABLESTRING003(2)
    INT002 = GetX()
    INT004 = GetY()
:LABEL031
    AnsiPos INT002, INT004
    Print STRING001
    INT002 = GetX()
    INT004 = GetY()
:LABEL024

EndProc


Procedure PROC004()

    If (!(INT003 == 12)) Goto LABEL032
    AnsiPos 1, 1
    If ((CurColor() <> "@X0A")) Print "@X0A"
    TABLESTRING004(1) = ScrText(1, 1, 79, 0)
    TABLESTRING004(2) = ScrText(1, 2, 79, 0)
    TABLESTRING004(3) = ScrText(1, 3, 79, 0)
    TABLESTRING004(4) = ScrText(1, 4, 79, 0)
    TABLESTRING004(5) = ScrText(1, 5, 79, 0)
    TABLESTRING004(6) = ScrText(1, 6, 79, 0)
    TABLESTRING004(7) = ScrText(1, 7, 79, 0)
    TABLESTRING004(8) = ScrText(1, 8, 79, 0)
    TABLESTRING004(9) = ScrText(1, 9, 79, 0)
    TABLESTRING004(10) = ScrText(1, 10, 79, 0)
    TABLESTRING004(11) = ScrText(1, 11, 79, 0)
    INT005 = 1
:LABEL034
    If (!(((1 < 0) && (INT005 >= 11)) || ((1 >= 0) && (INT005 <= 11)))) Goto LABEL033
    Print TABLESTRING004(INT005 + 1)
    ClrEol
    Newline
    INT005 = INT005 + 1
    Goto LABEL034
:LABEL033
    INT001 = 1
    INT003 = 11
    AnsiPos INT001, INT003
:LABEL032
    If (!(INT004 == 23)) Goto LABEL035
    AnsiPos 1, 13
    If ((CurColor() <> "@X0F")) Print "@X0F"
    TABLESTRING004(1) = ScrText(1, 13, 79, 0)
    TABLESTRING004(2) = ScrText(1, 14, 79, 0)
    TABLESTRING004(3) = ScrText(1, 15, 79, 0)
    TABLESTRING004(4) = ScrText(1, 16, 79, 0)
    TABLESTRING004(5) = ScrText(1, 17, 79, 0)
    TABLESTRING004(6) = ScrText(1, 18, 79, 0)
    TABLESTRING004(7) = ScrText(1, 19, 79, 0)
    TABLESTRING004(8) = ScrText(1, 20, 79, 0)
    TABLESTRING004(9) = ScrText(1, 21, 79, 0)
    TABLESTRING004(10) = ScrText(1, 22, 79, 0)
    TABLESTRING004(11) = ScrText(1, 23, 79, 0)
    INT005 = 1
:LABEL037
    If (!(((1 < 0) && (INT005 >= 10)) || ((1 >= 0) && (INT005 <= 10)))) Goto LABEL036
    Print TABLESTRING004(INT005 + 1)
    ClrEol
    Newline
    INT005 = INT005 + 1
    Goto LABEL037
:LABEL036
    INT002 = 1
    INT004 = 22
    AnsiPos INT002, INT004
    INT009 = 21
:LABEL035

EndProc


;------------------------------------------------------------------------------
;
; Statements used :
;
;    3       End
;    3       Cls
;    2       ClrEol
;    1       Wait
;    46      Goto 
;    108     Let 
;    18      Print 
;    6       PrintLn 
;    33      If 
;    1       StartDisp 
;    1       Delay 
;    2       Inc 
;    4       Newline
;    1       KbdStuff 
;    15      AnsiPos 
;    4       Backup 
;    1       SaveScrn
;    1       RestScrn
;    4       EndProc
;
;
; Functions used :
;
;    1       /
;    17      +
;    24      ==
;    9       <>
;    3       <
;    3       <=
;    6       >=
;    27      !
;    11      &&
;    4       ||
;    4       Len(
;    2       Space()
;    8       Chr()
;    5       PpePath()
;    5       ReadLine()
;    1       AnsiOn()
;    14      GetX()
;    15      GetY()
;    4       CurColor()
;    1       KInkey()
;    1       MInkey()
;    22      ScrText()
;    3       ReplaceStr()
;    1       Crc32()
;
;-----------------------------------------------------------------------------;
; (C)1995 AEGiS CoRP       - Main Code by Lone Runner -      Parts by The doC ;
;-----------------------------------------------------------------------------;
;        ___________      _______________________        _____________        ;
;[=======\          \====/          /           /_____  /            /=======];
; ::::::::\  ______  \::/  \_____  /  _______  /______)/  \_______  /:::::::: ;
; ::kL!:::_\/    _/   \/   ___)__\/   \      \/        \_________ \/::::::::: ;
; ::::::::\     __     \_  \      \_   \_     \_        \_      /  \_:::::::: ;
;[=========\_____/______/__________/___________/_________/__________/========];
;                                                                             ;
;                      C          O          R          P                     ;
;-----------------------------------------------------------------------------;
;                        Dedicated to pure anarchists all around the world... ;
;-----------------------------------------------------------------------------;
[ RETURN TO DIRECTORY ]