/*
                    New User Validate v1.0 By Bruce Lee

                      Call Now For Da Best /X Tools...

                          Num: +351-38-ASKELITE
*/

Parse Arg Node
Options Results
Address Value 'AERexxControl'Node
signal on syntax

/*================= VARIABLES ==============================================*/
Tr=Transmit; Gc=GetChar; Pu=PutUser; Pu 501; Cr=d2c(13); Sm=SendMessage
Ss=SendString; Back="08"x; Sh=ShowFile; Pt=PutUstr; Gu=GetUser; Qu=Query
Gc=getchar; Gu=getuser; Qu=query; Sm=sendmessage; cls  = d2c('12')
/*==========================================================================*/
if ~show('L','rexxsupport.library') then do
  if addlib('rexxsupport.library',0,-30,0) then nop
  else exit 10
  end

  Gu 104; Slot=Result
  Gu 105; Axns=Result
  Gu 100; Name=Result
  Gu 144; Date=Result
  Gu 102; Loc=Result
  Gu 103; Phone=Result
  Gu 108; Machine=Result

 If ~Exists("Doors:NuVal/NuVal.Cfg") Then Do
  Call IOErr
 End
Else Do
  Open(CON,"Doors:NuVal/NuVal.Cfg","R")
  Conf=ReadLn(CON)
  Axs=ReadLn(CON)
  Area=ReadLn(CON)
  Close(CON)
End

  If ~Exists("Doors:NuVal/Users.DAT") Then
  Open(DAT,"Doors:NuVal/Users.DAT","W")
  Close(DAT)

  If ~Exists("Doors:NuVal/Users.NUM") Then
  Open(NUM,"Doors:NuVal/Users.NUM","W")
  Close(NUM)

  Open(CFG,"Doors:NuVal/Rules/Rules.CFG","R")
  NrTopics=ReadLn(CFG)
  Do l=1 to NrTopics
  Lang.l=ReadLn(CFG)
  End
  Close(CFG)

Main:
Pos=0
Sm "[0 p"CR"[B"
Sm "[0;40m[2J[H"CR"[B"
Sm "               [35m___    ___    _ _    ___    ___    ___    ___"CR"[B"
Sm "              /o  \  /o__)  /oY \  /o| \  /o__)  /o__)  /o  \"CR"[B"
Sm "             /  :  \/  ___)/  |  \/  |  \(___  \/  ___)/  + /_"CR"[B"
Sm "            /   |   \   |. \ / \  \  |   \. l   \   |. \      \"CR"[B"
Sm "            \___|___/______/______/______/______/______/__|___/Trb"CR"[B"
Sm ""CR"[B"
Sm "                                 [33mVALIDATE v1.0"CR"[B"
Sm "          [32m________________________________________________________"CR"[B"
Sm "          |                                                      |"CR"[B"
Sm "          |     [44m[1;31m    >      (R)uLeZ Of ThIz SyStEm      <    [0m     [32m|"CR"[B"
Sm "          |     [31m    >    (L)eAvE An E-MaIl To SySoP    <         [32m|"CR"[B"
Sm "          |     [31m    >   (F)iLL ThE ReGiStRaTiOn FoRm   <         [32m|"CR"[B"
Sm "          |     [31m    >      (G)aMbLe FoR QuIcK AxS      <         [32m|"CR"[B"
Sm "          |     [31m    >        FoRmAt (H)aRd DiSk        <         [32m|"CR"[B"
Sm "          |     [31m    >         (C)aLL ThE SySoP         <         [32m|"CR"[B"
Sm "          |     [31m    >            GooD (B)yE            <         [32m|"CR"[B"
Sm "          |______________________________________________________|"CR"[B"
Sm "            [34mCuRsOr KeYs To SeLeCt"CR"[B"
Sm "                                                    [1;33mBy: Bruce Lee[0m"CR"[B"
Sm ""CR"[B"

Character:
    Gc; Curs=Result
    If Curs=d2c(4) Then do; Pos=Pos-1; Call prt; End
    If Curs=d2c(5) Then do; Pos=Pos+1; Call prt; End
    If UPPER(Curs)="R" Then do; Call Rules; End
    If UPPER(Curs)="L" Then do; Call Leave; End
    If UPPER(Curs)="F" Then do; Call Fill; End
    If UPPER(Curs)="G" Then do; Call Gamble; End
    If UPPER(Curs)="H" Then do; Call Format; End
    If UPPER(Curs)="C" Then do; Call Call; End
    If UPPER(Curs)="B" Then do; Call Goodbye; End
    If Curs=d2c(13) Then Call Sentence
    Else Call Character

Prt:
   If Pos >= 6 Then Do; Pos=6; End
   If Pos <= 0 Then Do; Pos=0; End
 If Pos=0 Then do
  Tr "[11;17H[44m[1;31m    >      (R)uLeZ Of ThIz SyStEm      <    [0m "CR"[B"
  Tr "[12;17H[31m    >    (L)eAvE An E-MaIl To SySoP    <    [0 "CR"[B"
  Tr "[13;17H[31m    >   (F)iLL ThE ReGiStRaTiOn FoRm   <    [0m "CR"[B"
  Tr "[14;17H[31m    >      (G)aMbLe FoR QuIcK AxS      <    [0m "CR"[B"
  Tr "[15;17H[31m    >        FoRmAt (H)aRd DiSk        <    [0m "CR"[B"
  Tr "[16;17H[31m    >         (C)aLL ThE SySoP         <    [0m "CR"[B"
  Tr "[17;17H[31m    >            GooD (B)yE            <    [0m "CR"[B"
 End
 If Pos=1 Then do
  Sm "[11;17H[31m    >      (R)uLeZ Of ThIz SyStEm      <    [0m "CR"[B"
  Sm "[12;17H[44m[1;31m    >    (L)eAvE An E-MaIl To SySoP    <    [0m "CR"[B"
  Sm "[13;17H[31m    >   (F)iLL ThE ReGiStRaTiOn FoRm   <    [0m "CR"[B"
  Sm "[14;17H[31m    >      (G)aMbLe FoR QuIcK AxS      <    [0m "CR"[B"
  Sm "[15;17H[31m    >        FoRmAt (H)aRd DiSk        <    [0m "CR"[B"
  Sm "[16;17H[31m    >         (C)aLL ThE SySoP         <    [0m "CR"[B"
  Sm "[17;17H[31m    >            GooD (B)yE            <    [0m "CR"[B"
 End
 If Pos=2 Then do
  Sm "[11;17H[31m    >      (R)uLeZ Of ThIz SyStEm      <    [0m "CR"[B"
  Sm "[12;17H[31m    >    (L)eAvE An E-MaIl To SySoP    <    [0m "CR"[B"
  Sm "[13;17H[44m[1;31m    >   (F)iLL ThE ReGiStRaTiOn FoRm   <    [0m "CR"[B"
  Sm "[14;17H[31m    >      (G)aMbLe FoR QuIcK AxS      <    [0m "CR"[B"
  Sm "[15;17H[31m    >        FoRmAt (H)aRd DiSk        <    [0m "CR"[B"
  Sm "[16;17H[31m    >         (C)aLL ThE SySoP         <    [0m "CR"[B"
  Sm "[17;17H[31m    >            GooD (B)yE            <    [0m "CR"[B"
 End
 If Pos=3 Then do
  Sm "[11;17H[31m    >      (R)uLeZ Of ThIz SyStEm      <    [0m "CR"[B"
  Sm "[12;17H[31m    >    (L)eAvE An E-MaIl To SySoP    <    [0m "CR"[B"
  Sm "[13;17H[31m    >   (F)iLL ThE ReGiStRaTiOn FoRm   <    [0m "CR"[B"
  Sm "[14;17H[44m[1;31m    >      (G)aMbLe FoR QuIcK AxS      <    [0m "CR"[B"
  Sm "[15;17H[31m    >        FoRmAt (H)aRd DiSk        <    [0m "CR"[B"
  Sm "[16;17H[31m    >         (C)aLL ThE SySoP         <    [0m "CR"[B"
  Sm "[17;17H[31m    >            GooD (B)yE            <    [0m "CR"[B"
 End
 If Pos=4 Then do
  Sm "[11;17H[31m    >      (R)uLeZ Of ThIz SyStEm      <    [0m "CR"[B"
  Sm "[12;17H[31m    >    (L)eAvE An E-MaIl To SySoP    <    [0m "CR"[B"
  Sm "[13;17H[31m    >   (F)iLL ThE ReGiStRaTiOn FoRm   <    [0m "CR"[B"
  Sm "[14;17H[31m    >      (G)aMbLe FoR QuIcK AxS      <    [0m "CR"[B"
  Sm "[15;17H[44m[1;31m    >        FoRmAt (H)aRd DiSk        <    [0m "CR"[B"
  Sm "[16;17H[31m    >         (C)aLL ThE SySoP         <    [0m "CR"[B"
  Sm "[17;17H[31m    >            GooD (B)yE            <    [0m "CR"[B"
 End
 If Pos=5 Then do
  Sm "[11;17H[31m    >      (R)uLeZ Of ThIz SyStEm      <    [0m "CR"[B"
  Sm "[12;17H[31m    >    (L)eAvE An E-MaIl To SySoP    <    [0m "CR"[B"
  Sm "[13;17H[31m    >   (F)iLL ThE ReGiStRaTiOn FoRm   <    [0m "CR"[B"
  Sm "[14;17H[31m    >      (G)aMbLe FoR QuIcK AxS      <    [0m "CR"[B"
  Sm "[15;17H[31m    >        FoRmAt (H)aRd DiSk        <    [0m "CR"[B"
  Sm "[16;17H[44m[1;31m    >         (C)aLL ThE SySoP         <    [0m "CR"[B"
  Sm "[17;17H[31m    >            GooD (B)yE            <    [0m "CR"[B"
 End
 If Pos=6 Then do
  Sm "[11;17H[31m    >      (R)uLeZ Of ThIz SyStEm      <    [0m "CR"[B"
  Sm "[12;17H[31m    >    (L)eAvE An E-MaIl To SySoP    <    [0m "CR"[B"
  Sm "[13;17H[31m    >   (F)iLL ThE ReGiStRaTiOn FoRm   <    [0m "CR"[B"
  Sm "[14;17H[31m    >      (G)aMbLe FoR QuIcK AxS      <    [0m "CR"[B"
  Sm "[15;17H[31m    >        FoRmAt (H)aRd DiSk        <    [0m "CR"[B"
  Sm "[16;17H[31m    >         (C)aLL ThE SySoP         <    [0m "CR"[B"
  Sm "[17;17H[44m[1;31m    >            GooD (B)yE            <    [0m "CR"[B"
 End
 Call Character

Sentence:
 If Pos=0 Then Call Rules
 If Pos=1 Then Call Leave
 If Pos=2 Then Call Fill
 If Pos=3 Then Call Gamble
 If Pos=4 Then Call Format
 If Pos=5 Then Call Call
 If Pos=6 Then Call GoodBye

Rules:
  Sm "[0;40m[2J[H"CR"[B"
  Sm "[35m                     ·"CR"[B"
  Sm "                 _ __:__ _  _"CR"[B"
  Sm "                     :"CR"[B"
  Sm "                     ¦[0m"CR"[B"
  Do l=1 to NrTopics
  Tr CENTER(l"."Lang.l,78)
  End
  Sm "[35m                                                     .  ¦"CR"[B"
  Sm "                                                 _  _ __:__ _"CR"[B"
  Sm "                                                        :"CR"[B"
  Sm "                                                        ·[0m"CR"[B"
    Posi=0
    Rule=""
    Ss ""
    Ss "                              Language Type: "
    Do Until Shit='0d'x; Gc; Shit=Result
    If Shit=back&posi~=0 then Do; Ss Back" "Back; Posi=Posi-1
    If Length(Rule)>0 then Rule=left(Rule,length(Rule)-1); End
    If Posi=0&Shit="0d"x Then Do; Call Main; End
    If Posi~=1&shit~=back&Shit~="0d"x then do
    Rule=Insert(Rule,Shit); Ss ''Shit''; Posi=Posi+1; End
    End
  If Exists("Doors:NuVal/Rules/Rules."Rule) Then Do
   Tr "[0;40m[2J[H"
   Sh "Doors:NuVal/Rules/Rules."Rule
   Call Pause
   Call Main
  End
  Else Do
   Tr ""
   Tr ""
   Tr "[20;24H !!! Language Not Available !!! "
   Do PAUSE=1 to 2000; Iterate PAUSE; End
   Tr "[20;24H                                "; Call Rules
  End

Leave:
  Open(File,"T:MSG","W")
   WriteLn(File,"[32m    _  _____")
   WriteLn(File," ( (_((_____) /\   .____________ __ _")
   WriteLn(File,"      /    ¬\/ _\__l__ ____/_  ¬\\///")
   WriteLn(File,"     /       \  \\   /___)  T    \[33m_______________________________________ __ _[32m")
   WriteLn(File,"     \_     _/   \\ / T__________/")
   WriteLn(File,"      `-----'¯¯¯¯¯\/__![0m")
   WriteLn(File,"")
   WriteLn(File,"          [35mn A M e :  [34m..................... [32m"Name)
   WriteLn(File,"          [35md a T e :  [34m..................... [32m"Date)
   WriteLn(File,"          [35mp h O n e :  [34m................... [32m"Phone)
   WriteLn(File,"          [35ml O C A T I O N : [34m.............. [32m"Loc)
   WriteLn(File,"          [35mm A C H I N e : [34m................ [32m"Machine)
   WriteLn(File,"")
   WriteLn(File,"[33m ------------( [35mc O M M E N t [33m)------------------------------------------------[0m")
   WriteLn(File,"")
  Close(File)
    Tr ""; Tr ""; Tr ""
    Tr "[1 p"
    Pt "T:Comment"; Pu 9
    Tr "[0 p"
   If Exists("T:Comment") Then Do
    Address Command "Type T:Comment >>T:MSG"
    Address Command "Messy >NIL: "Conf" T:MSG NewUser !!!NewUser!!! EALL"
    Address Command "Delete >NIL: T:MSG"
    Address Command "Delete >NIL: T:Comment"
    Call Main
   End
   Else Call Main

Fill:
 Pt "Questions"; Pu 508;
 Pu 501
  Open(DAT,"Doors:NuVal/Users.DAT","A")
  WriteLn(DAT,Name)
  Close(DAT)
 Call Pause
 Call Main

Gamble:
  Open(DAT,"Doors:NuVal/Users.DAT","R")
  Do; nlines = 0
  Do Until EOF(DAT)
  nlines = nlines + 1
  nline.nlines = ReadLn(DAT)
  End
  Close(DAT)
  Do; nlinh = 0
  Do Until nlinh = nlines
  nlinh = nlinh + 1
  If nline.nlinh = Name Then Do
  Call GambleOrNot
  End; End
  Sm "[11;17H                                             "CR"[B"
  Sm "[12;17H                 !!! sORRy !!!               "CR"[B"
  Sm "[13;17H                                             "CR"[B"
  Sm "[14;17HYoU HaVeN't FiLLeD ThE ReGiStRaTiOn FoRm YeT "CR"[B"
  Sm "[15;17H                                             "CR"[B"
  Sm "[16;17H                 !!! sORRy !!!               "CR"[B"
  Sm "[17;17H                                             "CR"[B"
  Do Paus=1 to 6000; iterate paus; end
  Call Main

GambleOrNot:
      Open(NUM,"Doors:NuVal/Users.NUM","R")
     Do; nlinesi = 0
     DO Until EOF(NUM)
      nlinesi = nlinesi + 1
      nlinei.nlinesi = ReadLn(NUM)
     End
     Close(NUM)
     Do; nlinhi = 0
      Do Until nlinhi = nlinesi
      nlinhi = nlinhi + 1
     If nlinei.nlinhi = Slot Then Do
     Sm "[11;17H                                             "CR"[B"
     Sm "[12;17H                 !!! sORRy !!!               "CR"[B"
     Sm "[13;17H                                             "CR"[B"
     Sm "[14;17H  YoU HaVe AlReAdY PlAyEd ThIs GaMe BeFoRe!  "CR"[B"
     Sm "[15;17H                                             "CR"[B"
     Sm "[16;17H                 !!! sORRy !!!               "CR"[B"
     Sm "[17;17H                                             "CR"[B"
     Do Paus=1 to 6000; iterate paus; end
     Call Main
     End; End
      Call Gambler
      Call Dexit

Gambler:
     Sm ''cls''CR"[B"
     Sm '[33m                      WeLcOmE tO'CR"[B"
     Sm ''CR"[B"
     Sm '[34m          /\________/\________/\________/\______           [35ma gAmE bY:[34m'CR"[B"
     Sm '         /    /    /  \_     /  \_     /  \_    \     [35mRaTTLeSnAkE/HsGmT,1994[34m'CR"[B"
     Sm '        /    /    /    /    /    /   _/    /    /'CR"[B"
     Sm '       /         /         /         /    /    /'CR"[B"
     Sm '      /__  /____/____/____/____/__  /_________/      [35mBugs Fixed By: Bruce Lee[34m'CR"[B"
     Sm '         \/                       \/'CR"[B"
     Sm '    /\________/\________/\________/\________/\________'CR"[B"
     Sm '   /  \______/    /    /  \______/  \______/  \______/'CR"[B"
     Sm '  /   /__   /    /    /   ____/_/\___     /\___     /'CR"[B"
     Sm ' /         /    /    /         /         /         /'CR"[B"
     Sm '/_______  /_________/_______  /_________/_______  /'CR"[B"
     Sm '        \/                  \/                  \/¡RS!'CR"[B"
     Sm ''CR"[B"
     Sm '[32m |×x×|×x×|×x×|×x×|×x×|×x×|×x×|×x×|×x×|×x×|×x×|×x×|×x×|×x×|×x×|×x×|×x×|×x×|×x×|'CR"[B"
     Sm ' |                                                                           |'CR"[B"
     Sm ' |                                                                           |'CR"[B"
     Sm ' |                                                                           |'CR"[B"
     Sm ' |                                                                           |'CR"[B"
     Sm ' |                                                                           |'CR"[B"
     Sm ' |×x×|×x×|×x×|×x×|×x×|×x×|×x×|×x×|×x×|×x×|×x×|×x×|×x×|×x×|×x×|×x×|×x×|×x×|×x×|[0m'CR"[B"

     Sm '[33m[19;4HDo Ya NeeD SoMe InFo AbOuT ThIz GaMe, [36m'Name'[33m ? [0m';
     Gc; resposta=upper(result);
     If resposta = 'Y' then do;tr 'YeS,PleAsE!'; Delay(25); call INFO;end
     If resposta = 'N' then do;tr 'No wAY sHitHeAd!'; Delay(25); call GAME;end;
     Else call Gambler

/* -------------------------- Game Routine ---------------------- */

GAME:
     Turn=10
     answer = random(1,1000,time('s'))
     tr '[18;3H                                                                           '
     tr '[19;3H                                                                           '
     tr '[20;3H                                                                           '
     tr '[21;3H                                                                           '
     tr '[22;3H                                                                           '

QUESTION:
     tr '[22;60H[34mYoU HaVe [31m'Turn'[34m Turns [0m'
     Sm '[19;42H    '
     Qu '[19;4H[31m[=] HaRd gUeSS [=] GiVe A NuMbA DuDe: [0m'; Guess=result
     if guess <1 then call LOWHIGH
     if guess >1000 then call LOWHIGH
     if answer > guess then tr '[22;4H[36m'Guess', iS tOO LoW,SuCkEr!          [0m';
     if answer < guess then tr '[22;4H[36m'Guess', iS tOO HiGh,sTuPiD!         [0m';
     if answer = guess Then Call DECISAO
     turn=turn - 1
     if turn = 0 then call DECISAO
     call QUESTION

DECISAO:
     if guess ~= answer then call FALHOU
     else Call ACERTOU
     call Acesso

/* --------------------------- Information ----------------------- */

INFO:
     tr '[18;3H                                                                           '
     tr '[19;3H                                                                           '
     tr '[20;3H                                                                           '
     tr '[21;3H                                                                           '
     tr '[22;3H                                                                           '
   tr '[18;4H          WeLL,ThErE Is NoT MuCH To TeLL AbOuT ThIz sHiTTy GaMe!    '
   tr '[19;4H     yOu WiLL HaVe To GuEss A NuMbEr BeTwEEn 1 AnD 1000 In 10 trIeS!';
   tr '[20;4H             SaTiSfIeD? If NoT ..... F U C K  Y O U ..... cYa!';
   tr '[21;4H'
   sm '[22;4H              [=] pReSS aNy kEy tO pLaY tHe fUcKiNg gAmE! [=]'; Gc
   Call GAME

/* ----------------------------- Access ------------------------ */

ACESSO:
     tr '[18;3H                                                                           '
     tr '[19;3H           YoU WiLL NoW hAvE AccEss, Please, HaNgUp & DiAl AgAiN           '
     tr '[20;3H                                                                           '
     tr '[21;3H                     HoPe YoU EnJoY ThIs AmAzInG BoArD!!!                  '
     tr '[22;3H                                                                           '
     Delay(300)
     Call Exit

NACESSO:
     tr '[18;3H                                                                           '
     tr '[19;3H                   SoRRy, YoU WiLL HaVe To WaIt TiLL SySoP                 '
     tr '[20;3H                                                                           '
     tr '[21;3H                     ArrIvE, ThEn MaYbE YoU HaVe aCCeSS!!                  '
     tr '[22;3H                                                                           '
     Open(NUM,"Doors:NuVal/Users.NUM","A")
     WriteLn(NUM,Slot)
     Close(NUM)
     Delay(300)
     Call Exit

/* ------------------------- Right Number ---------------------- */

FALHOU:
     tr '[18;3H                                                                           '
     tr '[19;3H                                                                           '
     tr '[20;3H                                                                           '
     tr '[21;3H                                                                           '
     tr '[22;3H                                                                           '
     tr '[20;3H[35m                  YoUr StUpId BaStArD! ThE NuMbA WaS' answer'[0m'
     Delay(300)
     call NACESSO

/* ------------------------- Wrong Number ----------------------- */

ACERTOU:
     tr '[18;3H                                                                           '
     tr '[19;3H                                                                           '
     tr '[20;3H                                                                           '
     tr '[21;3H                                                                           '
     tr '[22;3H                                                                           '
     tr '[20;3H[34m                     BiG dEaL...Ya GoT It In' 10-turn 'ShOtS![0m'
     Pt Axs; Pu 105; Pt Area; Pu 146
     Delay(300)
     call ACESSO

/* ------------------------- Numbers <1 & >1000 ------------------ */

LOWHIGH:
     tr '[22;4H[36mtrY A VaLiD NuMbEr LaDy!          [0m';
     Call QUESTION

/* ------------------------ Exit Routine ------------------------- */

EXIT:
     tr '[18;3H                                                                           '
     tr '[19;3H                 hArD gUeSS! CoDeD bY RaTTLeSnAkE/HsGmT 1994               '
     tr '[20;3H                                                                           '
     tr '[21;3H                     Bugs Fixed By Bruce Lee/CtyFa/NNB95                   '
     tr '[22;3H                                                                           '
     Delay(200); Call Main

Format:
    Sm "[1 p"CR"[B"
    Tr ""
    Sm ""CR"[B"
    Sm "1. WORK:AMIEX > "; Do Paus=1 to 2000; iterate paus; end
    Sm "F"; Do Paus=1 to 450; iterate paus; end
    Sm "o"; Do Paus=1 to 500; iterate paus; end
    Sm "r"; Do Paus=1 to 250; iterate paus; end
    Sm "m"; Do Paus=1 to 350; iterate paus; end
    Sm "a"; Do Paus=1 to 500; iterate paus; end
    Sm "t"; Do Paus=1 to 200; iterate paus; end
    Sm " "; Do Paus=1 to 450; iterate paus; end
    Sm "d"; Do Paus=1 to 50;  iterate paus; end
    Sm "r"; Do Paus=1 to 150; iterate paus; end
    Sm "i"; Do Paus=1 to 300; iterate paus; end
    Sm "v"; Do Paus=1 to 500; iterate paus; end
    Sm "e"; Do Paus=1 to 400; iterate paus; end
    Sm " "; Do Paus=1 to 1100;iterate paus; end
    Sm "b"; Do Paus=1 to 300; iterate paus; end
    Sm "b"; Do Paus=1 to 450; iterate paus; end
    Sm "s"; Do Paus=1 to 250; iterate paus; end
    Sm ":"; Do Paus=1 to 450; iterate paus; end
    Sm " "; Do Paus=1 to 100; iterate paus; end
    Sm "N"; Do Paus=1 to 550;iterate paus; end
    Sm "a"; Do Paus=1 to 450; iterate paus; end
    Sm "m"; Do Paus=1 to 350; iterate paus; end
    Sm "e"; Do Paus=1 to 400; iterate paus; end
    Sm " "; Do Paus=1 to 2000;iterate paus; end
    Sm "F"; Do Paus=1 to 350; iterate paus; end
    Sm "U"; Do Paus=1 to 200; iterate paus; end
    Sm "C"; Do Paus=1 to 300; iterate paus; end
    Sm "K"; Do Paus=1 to 250; iterate paus; end
    Sm "E"; Do Paus=1 to 400; iterate paus; end
    Sm "D"; Do Paus=1 to 1000; iterate paus; end
    Sm ""CR"[B"; Do Paus=1 to 1000;  iterate paus; end
    Sm "[0 p"CR"[B"

   Sm ""CR"[B"
   Ss "Enter Password for FORMAT (1/3) :"
    Pas=0
     Do Until Rep="0d"x; Gc; Rep=Result;
      If Rep=back&pas~=0 then Do; Ss Back" "Back; Pas=Pas-1; End
      If Rep~=back&Rep~="0d"x then do; Sm "."; Pas=Pas+1; End
     End
   Sm ""CR"[B"
   Ss "Enter Password for FORMAT (2/3) :"
    Pas=0
     Do Until Rep="0d"x; Gc; Rep=Result
      If Rep=back&pas~=0 then Do; Ss Back" "Back; Pas=Pas-1; End
      If Rep~=back&Rep~="0d"x then do; Sm "."; Pas=Pas+1; End
     End
   Sm ""CR"[B"
   Ss "Enter Password for FORMAT (3/3) :"
    Pas=0
     Do Until Rep="0d"x; Gc; Rep=Result
      If Rep=back&pas~=0 then Do; Ss Back" "Back; Pas=Pas-1; End
      If Rep~=back&Rep~="0d"x then do; Sm "."; Pas=Pas+1; End
     End
    Sm "Correct"CR"[B"; Do Paus=1 to 3000;  iterate paus; end
    Sm ""CR"[B"
    Sm ""CR"[B"
    Sm " MFormat v1.6 - © 1994-95 by Eric Sauvageau (Merlin)."CR"[B"
    Sm ""CR"[B"

Formater:
  Sm "[13;2HPress RETURN to Format Disk in Drive BBS:, or ESC to Abort:"
  Gc; Forma=Result
 If Forma="0d"x Then Do
  Pt "        NUVAL v1.0: Ehehehehehe!! This one tried to format the HD!!!!"
  Pu 150
  Sm ""CR"[B"
  Do form=1 to 150
  Do Paus=1 to 10
  Sm "[14;2HFormatting Cylinder "Form" of 1270 "CR"[B"
  iterate paus; End; End
  Sm "[16;27HOOOOOOOPPPSSS.... Sorry!!!"; Do Paus=1 to 2000; iterate paus; End
  Sm "[16;27H                          "
  Do formi=150 to 0 by -1
  Do Paus=1 to 10
  Sm "[14;2HFormatting Cylinder "Formi" of 1270 "CR"[B"
  iterate paus; End; End
  Sm "[16;27HAAAHHHHH... That's Better!"CR"[B"; Do Paus=1 to 1000; iterate paus; End
  Sm "[18;24HThe SysOp Will Know Thiz... Thx..."CR"[B"
  Do Paus=1 to 5000; iterate paus; End
  Call Main
 End
 If Forma="1b"x Then Call Main
 Else Call Formater

Call:
  Tr ""; Tr ""; Tr ""
  Pt "O"; Pu 508
  Pu 501
  Call Main
  
GoodBye:
  If Axns <= 10 Then Do; Pt "G"; Pu 508; Pu 511; Call DExit; End
  Else Call DExit

Pause:
   Tr ""
   Tr "[33m -   -   - -  ---- ---- - --- ( Press Any Key ) -- -- -- - -- --- -   -   - - [0m"; Gc
   Return

IOERR:
  Tr "Error: Can't Locate File "; Address Command "Wait 1"

ERROR:
SYNTAX: Tr "Error in Line.. #"sigl" Exiting.." ; tr errortext(sigl)
/*==========================================================================*/
DExit: Tr "[20;0H"; Tr "[1 p"; bufferflush ; ShutDown ; Exit
