Okay, since the is an Arexx area, I don't know whats required for Dialog, but I have this GREAT Arexx Game for a BBS called Tempest, I would like to have it converted to Dialog if anyone has the knowledge. The Script follows :

/***********************************************************************/
/*                          BBS DOWNS! V2.0                            */
/***********************************************************************/
/*     A horse race pfile written in Arexx for the Amiga Cnet BBS!     */
/*                                                                     */
/*     Brought to you by Lori Bogan and Gene Ponce, sysops of....      */
/*                                                                     */
/*                   Superboard Two (702) 423-7206                     */
/*                                                                     */
/*         Converted for Tempest & Modified by Sean Kelly              */
/*                                                                     */
/*                           Amizon BBS                                */
/*                                                                     */
/*                          312-594-1146                               */
/*                                                                     */
/* This program is based on another program called "Horses" which was  */ 
/* written in C for the Tag BBS.  While this program is not a direct   */
/* porting of the "Horses" program, we would still like to credit the  */
/* author of "Horses", D.Budzitowski, for many of the concepts we have */
/* used in this pfile!                                                 */
/***********************************************************************/
/*                    A FEW NOTES TO OTHER SYSOPS                      */
/***********************************************************************/
/*  1. With this door you should also have an accompanying file called */
/*     Dinstuct which is called when the user asks for instructions.   */
/*     If that file is not present you can make a simple text file to  */
/*     to be used or do nothing since the program will still  run      */
/*     without the Dinstruct file.                                     */
/*  2. You will need to change the variables below (under the comment  */
/*     *BBS variable initialization*) to suit your configuration.      */
/***********************************************************************/
/*                       VARIABLE DECLARATIONS                         */
/***********************************************************************/
/* BBSname   = name of the BBS this pfile is being run on              */
/* Sysopname = name of the sysop offering this pfile                   */
/* Progname  = name of this program                                    */
/* FilePath  = path to subdirectory for support files                  */
/* input     = used in CHECKPANIC procedure to hold input argument     */
/* Uhandle   = Handle of current player                                */
/* Udate     = Current date & time                                     */
/* Uaccess   = User's access number (0,23)                             */
/* CLS       = User's screen clear code                                */
/* AcctBal   = Current player's account balance                        */
/* LowBal    = Flag to signal when player's acct balance is too low    */
/* MaxPlayers= Maximum players allowed                                 */
/* player.i  = 'array' to hold all player handles                      */
/* score.i   = 'array' to hold all player acct balances                */
/* i, j      = simple counters used in various places in program       */
/* temp      = temporary variable used when sorting/swapping           */
/* nplayers  = total number of players in Dplayers files               */
/* Flag      = used to signal different events                         */
/* More      = used to ask if user wants to see more of the score list */
/* Choice    = main menu choice                                        */
/* Another   = does player want to bet on ANOTHER race?                */
/* Hname.i   = horse names                                             */
/* WHorse.i  = horse(s) picked to win, show or place                   */
/* WBet.i    = amount bet to win, show or place                        */
/* WOdds.i   = holds the current "To win" odds on the horses           */
/* POdds.i   = holds the current "To place" odds on the horses         */
/* SOdds.i   = holds the current "To show" odds on the horses          */
/* RNum      = holds random numbers picked for horse race              */
/* Count.i   = holds the cumulative counter for each horse during race */
/* Win       = holds number of WIN horse                               */
/* Place     = holds number of PLACE horse                             */
/* Show      = holds number of Show horse                              */
/***********************************************************************/
/*                       VARIABLE INITIALIZATIONS                      */
/***********************************************************************/

  options results           
  Arg BBS_Node
  Address value 'TempRexx-'BBS_Node



/*Program error handling */
  SIGNAL ON ioerr       /* if an io error occurs goto ioerr:          */
  SIGNAL ON syntax      /* if a syntax error occurs goto syntax:      */

/*BBS variable initialization */
  BBSname = 'LOGOPOLIS'
  Sysopname = 'SYSOP'
  Progname = 'BBS Downs!'
  MaxPlayers = 50        /* max number of players allowed by sysop */
  FilePath = "Doors:Horses"
  pragma('directory', FilePath)            /* set current dir to FilePath */
  
  bufferflush
  /*  logentry "Played "Progname  */

/*Program variable initialization */

  getvar 43 ; Uhandle = result     /* get the user's handle           */
  Udate = Time(Normal)            /* get current date & time         */
  CLS = ''
  Hname.1 = "Tumble Weed"
  Hname.2 = "Frisky Girl"
  Hname.3 = "Citation"
  Hname.4 = "Thunder"
  Hname.5 = "Whirlaway"
  Hname.6 = "Seabiscuit"
  Hname.7 = "Comet"
  Hname.8 = "Old-Nag"

/************************************************************************/
/*                            MAIN PROGRAM                              */
/************************************************************************/
MAIN:
  CALL PLAYERFILE
  CALL CHECKBALANCE
  Choice = 0
  Do until Choice = 5
     transmit CLS
     transmit "[33m                    ***************************"
     transmit "[32m                       Welcome to BBS Downs!"
     transmit "[33m                    ***************************"
     transmit ""
     transmit "[33m                       1)[32m Read Instructions"
     transmit "[33m                       2)[32m View Scoreboard"
     transmit "[33m                       3)[32m Millionaires Club"
     transmit "[33m                       4)[32m Go to the Track!"
     transmit "[33m                       5)[32m Quit"
     transmit ""
     transmit "[33m                    ***************************"
     transmit ""
     Prompt "                    What would you like to do?  "
     Choice = result
     CALL CHECKPANIC Choice
     If Choice = 1 then CALL INSTRUCT
     else If Choice = 2 then CALL SCOREBOARD
     else If Choice = 3 then CALL MILLIONS
     else If Choice = 4 then CALL THETRACK
  end
  CALL BYE
  BUFFERFLUSH
  'exit'
EXIT

PLAYERFILE:
  Transmit CLS
  Transmit "[33mChecking player file..."
  Transmit ""
  AcctBal = 100
  Flag = 0
  nplayers = 0

  if ~exists('Dplayers') then do     /* Create a Players file if needed*/
    open(file1, 'Dplayers', 'W')
      writeln(file1, 0)              /* There are no players as yet */
    close(file1)
   end

   open(file1, 'Dplayers', 'R')      /* Read in existting player info */
     nplayers = readln(file1)        /* Get current number of players */
     do i = 1 to nplayers
        player.i = readln(file1)     /*Read a player's name*/
        score.i = readln(file1)      /*Read a player's score*/
        if player.i = Uhandle then do  /*find user's acct balance*/
           AcctBal = score.i           /*set user's acct balance*/
           Transmit "[37mI see you have bet here before!"
           Transmit "[37mYour account balance is:  $"AcctBal
           Flag = 1                   /*signal player was found*/
        end
     end
   close(file1)

   if Flag = 0 then do                 /*if player was not found in file*/
       if nplayers < MaxPlayers then do 
         transmit "[37mA new player!!"
         transmit "[37mYou will be given $100 to start you out!"
         nplayers = nplayers + 1
         player.nplayers = UHandle
         score.nplayers = AcctBal
         end
       else if nplayers >= MaxPlayers then do
         Transmit ""
         Transmit "Sorry there is no room for another gambler at the track!"
         Transmit "Talk to "SysopName" maybe he/she can do something about that!"
         CALL BYE
       end
    end
  CALL PAUSE
RETURN

CHECKBALANCE:
  LowBal = "FALSE"
  If AcctBal <= 2 then do
    LowBal = "TRUE"
    TRANSMIT ""
    TRANSMIT "[37mIt seems your account balance of $"AcctBal" is too low to place any bets."
    TRANSMIT ""
    Prompt "Would you like to try to win $50 with no strings attached? "
    Flag = UPPER(result)
    CALL CHECKPANIC Flag
    TRANSMIT ""
    If Flag = "Y" then do
      TRANSMIT ""
      Prompt "[35mOkay, Pick a number between 1 and 5:  "
      Guess = result
      CALL CHECKPANIC Guess
      RNum = RANDOM(1,5,TIME('S'))
      if Guess = RNum then do
         TRANSMIT ""
         TRANSMIT "[37mYou guessed it!!! Adding to your Account Balance..."
         TRANSMIT ""
         AcctBal = AcctBal + 50
         LowBal = "FALSE"
         end
      else do
         TRANSMIT ""
         TRANSMIT "[37mSorry the number was "RNum".  Try again sometime!"
         TRANSMIT ""
         end
    end
    else do
      TRANSMIT ""
      SENDSTRING "[35mOkay fine...but you won't be able to place any bets until "
      TRANSMIT "you have more money!!"
      TRANSMIT ""
      end
    CALL PAUSE
  end
RETURN

INSTRUCT:
  Transmit CLS
  if exists('Dinstruct') then do
    open(instruct, 'Dinstruct', 'R')
      do while ~eof(instruct)
        line = readln(instruct)
        transmit "[36m"line
      end
    close(instruct)
  end
  else do
    transmit "[37mInstructions file was not found..."
    transmit "[37mNotify "Sysopname"!"
  end
  Transmit ""
  CALL PAUSE
RETURN

SCOREBOARD:
  TRANSMIT CLS "Sorting Scores............."
  CALL SORTSCORES
  Flag = 1
  i = 1
  j = 1
  More = 'Y'
  Do Forever
     if More ~= 'Y' then break
     Do while Flag = 1
        transmit CLS
        transmit "[33m                    *******************************"
        transmit "[35m                              SCOREBOARD"
        transmit "[33m                    *******************************[35m"
        Flag = 0
     end
     if player.j = UHandle then Score.j = AcctBal
     P = Left(Player.j,20,' ')   /*Pad end of handle with spaces*/
     Transmit "                       "P"  $"Score.j
     i = i + 1
     j = j + 1
     if j > Nplayers then break
     else if j <= Nplayers & i = 11 then do
         Flag = 1
         i = 0          /* Only display 10 names per page */
         transmit "[33m                    *******************************"
         Prompt"[33m                    Do you want to see more(Y/N)? "
         More = UPPER(result)
         CHECKPANIC result
         iterate
       end
     else if j <= Nplayers & i < 11 then iterate
  end
  if More = 'Y' then transmit "[33m                    *******************************"
  CALL PAUSE
RETURN

MILLIONS:
  Transmit CLS
  Transmit ""
  if exists('Dmillions') then do
    open(mill, 'Dmillions', 'R')
        j = 0
        i = 0
        do while ~eof(mill)
        do while j = 0
          transmit CLS
          transmit "[33m             ***********************************************"
          transmit "[35m                            MILLIONAIRES CLUB"
          transmit "[33m             ***********************************************[35m"
          j = 1
        end
          line = readln(mill)
          transmit "             "line
          i = i + 1
          if i = 10 then do
            j = 0
            i = 0
            call PAUSE
          end
        end
    close(mill)
  end
  else do
    transmit "[35mThere are no millionaires yet..."
  end
  Transmit ""
  CALL PAUSE
RETURN

CHECKMILLIONS:
  if acctbal >= 1000000 then do
    transmit "[35m"
    transmit "Congratulations!!!! You have become a Millionaire!!"
    transmit "Adding your name to this elite group of gamblers...."
    transmit ""
    line = left(UHandle,22,' ')||"$"AcctBal||"  "||left(UDate,15)
    if ~exists('Dmillions') then do     /* Create a Dmillions file if needed*/
      open(fileM, 'Dmillions', 'W')
      writeln(fileM, line)  /* Put player in file */
     close(fileM)
    end
    else do
      open(fileM, 'Dmillions', 'A')   
      writeln(fileM, line)   /* Add player to file */
      close(fileM)
    end
    AcctBal = 1000
    transmit "Your new account balance is $1,000.[33m"
    transmit ""
    Prompt"[37mWould you like to see the Millionaires Club list (Y/N)? "
    More = UPPER(result)
    CHECKPANIC result
    If More = "Y" then CALL MILLIONS
  end
RETURN

SORTSCORES:
  /* Straight Selection Sort */
  do i = 1 to (Nplayers - 1)
     do j = (i+1) to Nplayers
        if Score.i < Score.j then do
          Temp = Score.i
          Score.i = Score.j
          Score.j = Temp
          Temp = Player.i
          Player.i = Player.j
          Player.j = Temp
        end
     end
  end
RETURN

THETRACK:
  Another = "Y"
  Do While Another = "Y"
       CALL CHECKBALANCE
    If LowBal = "FALSE" then do
       CALL BOOKIE
       CALL GETBETS
       CALL RACE
       CALL WINNERS
       TRANSMIT ""
       Prompt"[35mDo you want to play another race?  "
       Another = UPPER(result)
       CALL CHECKPANIC Another
     end
     else Another = "N"
  end

RETURN

BOOKIE:
  /* Choose the odds on the horses */
  do i = 1 to 8
    WOdds.i = random(1,15,TIME('S'))    /* Pick a random number*/
    POdds.i = Left(WOdds.i *.75,pos('.', WOdds.i*.75) -1)
    SOdds.i = Left(WOdds.i *.5,pos('.', WOdds.i*.5) -1)
  end

  /* Set all bets to zero */
  do i = 1 to 3
    WHorse.i = 0
    WBet.i = 0
  end

  TRANSMIT CLS
  TRANSMIT "[33m*********************************************************************"
  TRANSMIT "[35m                         PLACE YOUR BETS!!"
  TRANSMIT "[33m*********************************************************************"
  TRANSMIT "[35m  No.         Horse           Win Odds     Place Odds     Show Odds"
  TRANSMIT "[35m  ---    ---------------      --------     ----------     ---------"
  Sendstring "[36m"
  do i = 1 to 8
    tes1 = right(Hname.i,16,' ')
    tes2 = right(WOdds.i,14,' ') 
    tes3 = right(POdds.i,12,' ')
    
    SENDSTRING right(i,4,' ')                   /* Horse No.    */
    SENDSTRING tes1                             /* Horse's name */
    SENDSTRING tes2":1"                         /* Win Odds     */
    SENDSTRING tes3":1"                         /* Place Odds   */
    TRANSMIT   right(SOdds.i,12,' ')":1"         /* Show Odds    */
  end
  TRANSMIT "[33m*********************************************************************"
  TRANSMIT ""
RETURN

GETBETS:
  str.1 = "WIN:  "
  str.2 = "PLACE:  "
  str.3 = "  SHOW:  "
  i = 1
  do forever
    /* Position cursor for each bet */
    TRANSMIT "[H[9B[6B      "
    ab = Left(AcctBal,10,'.')
    TRANSMIT "[37mYour account balance is:  $"AB
    TRANSMIT "        "
    do j = 1 to 4
      TRANSMIT "                                                                      "
    end
    Sendstring "[3A"

    if i > 3 then break       /* Check for all bets in*/

    if AcctBal < 2 then break  /* Not enough money to bet anymore */

    /* Get the horse number to bet on for each: win, place, show */
    Prompt "[33mEnter the horse number to " str.i
    WHorse.i = result
    TRANSMIT ""
    CALL CHECKPANIC WHorse.i
    if WHorse.i = '' then do
       /* Check if user pressed return, if so there is no bet on this round */
       WBet.i = 0
       i = i + 1
       iterate
    end
    else if WHorse.i < 1 | WHorse.i > 8 then do
       /* Make sure horse number bet on is within range */
       SENDSTRING "[1B"
       SENDSTRING "[35mInvalid Horse number.  Try again![33m"
       iterate
    end
    if Whorse.i ~= ''then do
       /* If a horse is being bet on then get the amount of the bet */
       Prompt "How much do you want to bet:  "
       WBet.i = result
       CALL CHECKPANIC WBet.i
       if WBet.i >= 2 & WBet.i <= AcctBal & WBet.i <= 2000 then do
         /* make sure the amount of the bet is within range */
         AcctBal = AcctBal - WBet.i
         i = i + 1
         iterate
       end
       else if WBet.i < 2 then do
         /* if bet is too low then redo */
         SENDSTRING "[1B"
         SENDSTRING "[35mSorry you must bet at least $2.  Try again![33m"
         iterate
       end
       else if WBet.i > AcctBal then do
         /* if bet is too high then redo */
         SENDSTRING "[1B"
         TRANSMIT "You can not bet more than your account balance of:  $"AcctBal". Try Again!"
         iterate
       end /* else */
       else if WBet.i > 2000 then do
         /* if bet is too high then redo */
         TRANSMIT "You can not bet more $2,000. Try Again!"
         iterate
       end /* else */
     end /* else do */
  TRANSMIT ""
  end /* do forever */
 
  if AcctBal < 2 then TRANSMIT "[BYou have bet as much as you can.  The window is now closed!!"
  SENDSTRING "[5B"
  CALL PAUSE
RETURN

RACE:
  SENDSTRING CLS"[H"  /* clear screen and go to home position */
  TRANSMIT ""
  TRANSMIT "[37mTHEY'RE OFF!!!"
  TRANSMIT ""
  /* The race itself is 55 spaces long */
  TRANSMIT "[35m++++++++++++|Start------------------------------------------Finish|"
  do i = 1 to 8
    TRANSMIT RIGHT(Hname.i, 12,' ')"|"
    Count.i = 1    /* reset all horse counters */
  end
  TRANSMIT "[35m++++++++++++|-----------------------------------------------------|"
  SendString "[37m"
  win = 0    /* no winning horse yet */
  place = 0  /* no place horse yet */
  show = 0   /* no show horse yet */

  j = random(1,8,Time('S'))  /* pick random horse to start out of gate */
  Flag = "Go"

  Do while Flag = "Go"
    i = j
    j = 1  /* always start at 1 after 1st time through loop */
    do while i <= 8     /* cycle through each horse and add up their 'scores' */
      RNum = random(1,5,TIME('S'))    /* Pick a random number*/
      Count.i = Count.i + RNum        /* Add the number to the current horse's count */

      /* Draw the horse's new position if he has not already crossed finish line*/
      If (i ~= Win) & (i ~= Place) & (i ~= Show) then do
        Sendstring "[H[9C[4C[3B" /* Position cursor at top of Race Track */
        Sendstring "["i"B"        /* move down to the current horse's vertical positon */
        /*Draw current horse's horizontal position */
        Sendstring Copies(' ', (Count.i) - 2) i
      end

      /* Check for win, place, and show horse */
      If Count.i >= 55 then do
         If Win = 0 then do         
            Win = i  /* remember winning horse's number */
            Sendstring "[H[9C[4C[3B"
            Sendstring "["i"B"
            Sendstring Copies(' ', (Count.i) - 2) "[36mW[37m"
         end
         else if (Place = 0) & (i ~= Win) then do
            Place = i  /* remember place horse's number */
            Sendstring "[H[9C[4C[3B"
            Sendstring "["i"B"
            Sendstring Copies(' ', (Count.i) - 2) "[36mP[37m"
         end
         else if (Show = 0) & (i ~= Win) & (i ~= Place) then do
            Show = i   /* remember show horse's number */
            Sendstring "[H[9C[4C[3B"
            Sendstring "["i"B"
            Sendstring Copies(' ', (Count.i) - 2) "[36mS[37m"
            i = 8  /* race is over */
            Flag = "Stop"  /* signal end of race */
         end
       end /* If Count.i >= 55 then do */

       i = i + 1
    end  /* Do while i <= 8 */
  end /* Do while Flag = "Go" */
  Sendstring "[H[4B[9B"
  CALL PAUSE
RETURN

WINNERS:
  TRANSMIT ""
  TRANSMIT "Horse #"Win" is the winner!!"
  If WHorse.1 = '' then  TRANSMIT "You did not bet on a horse to win!"
  else do
    TRANSMIT "You bet $"WBet.1" on Horse #"WHorse.1" to win."
    If WHorse.1 = Win then do
       Won = WBet.1 * WOdds.Win
       AcctBal = AcctBal + Won  + WBet.1
       TRANSMIT "Congratulations! You [32mWIN[33m $"Won" on your win bet!"
    end
    else TRANSMIT "Sorry you [35mLOST[33m on your win bet."
  end
  TRANSMIT ""

  TRANSMIT "Horse #"Place" placed!"
  If WHorse.2 = '' then TRANSMIT "You did not bet on a horse to place!"
  else do
    TRANSMIT "You bet $"WBet.2" on Horse #"WHorse.2" to place."
    If (WHorse.2 = Place) | (WHorse.2 = Win) then do
       Won = WBet.2 * WOdds.Place
       AcctBal = AcctBal + Won + WBet.2
       TRANSMIT "Congratulations! You [32mWIN[33m $"Won" on your place bet!"
    end
    else TRANSMIT "Sorry you [35mLOST[33m on your place bet."
  end
  TRANSMIT ""

  TRANSMIT "Horse #"Show" showed."
  If WHorse.3 = '' then TRANSMIT "You did not bet on a horse to show!"
  else do
    TRANSMIT "You bet $"WBet.3" on Horse #"WHorse.3" to show."
    If (WHorse.3 = Show) | (WHorse.3 = Place) | (WHorse.3 = Win) then do
       Won = WBet.3 * WOdds.Show
       AcctBal = AcctBal + Won + WBet.3
       TRANSMIT "Congratulations! You [32mWIN[33m $"Won" on your show bet!"
    end
    else TRANSMIT "Sorry you [35mLOST[33m on your show bet."
  end
  TRANSMIT ""
  TRANSMIT "[37mPress Any Key to Continue[33m"
  getchar
RETURN

PAUSE:
  transmit ""
  sendstring "[33mPress any key to continue..."
  getchar
  CALL CHECKPANIC result
  transmit ""
RETURN

CHECKPANIC: procedure
  input = arg(1)
  if input = "###PANIC" then do
    BUFFERFLUSH
    'exit'
    EXIT
  end
RETURN

BYE:
    CALL CHECKMILLIONS
    TRANSMIT ""
    TRANSMIT "                     Brought to you by Sean Kelly "
    TRANSMIT ""
    TRANSMIT "                       [34mAmizon BBS  [37m312-775-9138"
    TRANSMIT "                        [0mReturning to "BBSname"..."
    CALL SORTSCORES
    /* Rewrite PlayersFile */
    open(file1, 'Dplayers', 'W')
      writeln(file1, NPlayers)
      do i = 1 to NPlayers
        if player.i = UHandle then Score.i = AcctBal
        writeln(file1, player.i)
        writeln(file1, score.i)
      end
    close(file1)
    BUFFERFLUSH
    'exit'
EXIT

/************************************************************************/
/* Error Handling Routines                                              */
/************************************************************************/
ioerr:
    TRANSMIT 'Inout/Output Error in 'progname'.  Line:  'SIGL
    TRANSMIT 'Error:  'RC errortext(RC)
    TRANSMIT 'Please notify 'sysopname'!'
    TRANSMIT 'Returning to 'BBSname'...'
    LOGENTRY 'Input/Output Error in 'progname'.  Line:  'SIGL
    LOGENTRY 'Error:  'RC errortext(RC)
    BUFFERFLUSH
'exit'
EXIT

syntax:
    TRANSMIT 'Syntax Error in 'progname'.  Line:  'SIGL
    TRANSMIT 'Error:  'RC errortext(RC)
    TRANSMIT 'Please notify 'sysopname'!'
    TRANSMIT 'Returning to 'BBSname'...'
    LOGENTRY 'Syntax Error in 'progname'.  Line:  'SIGL
    LOGENTRY 'Error:  'RC errortext(RC)
    BUFFERFLUSH
'exit'
EXIT
