.key NOGUI/S,DEFSCR/S,PUBSCR/S,REQSCR/S,SM/K,DEPTH/K,LORES/S,HIRES/S,NODITHER/S,GRAY/S,FRAMERATE/K,FASTBLIT/S,CHIP/K,SLOWFAST/K,Z2RAM/K,Z3RAM/K,NOSOUND/S,DF0/K,DF1/K,DF2/K,DF3/K,ROMFILE/K,MOUNT/K
.bra {
.ket }

; $VER: UAELauncher 0.1 (01.11.98) for UAE 0.7.0 (c) by Samuel Devulder

FAILAT 20

; ============================================
; Ensure IXEMUL will use the ENV:UAESM we want
; ============================================
Delete >NIL: ENV:UAESM
Avail >NIL: flush

; ==================
; SCREEN TYPE OPTION
; ==================
Set HOPT " -H1"
If {DEFSCR}
   Set HOPT " -H0"
Endif
If {PUBSCR}
   Set HOPT " -H1"
Endif
If {REQSCR}
   Set HOPT " -H2"
Endif
Set tmp1 `eval {DEPTH}+0`
Set tmp2 `eval {SM}+0`
If $tmp1 GT 0
   If $tmp2 GT 0
        SetEnv UAESM $tmp2:$tmp1
        Set HOPT " -H2"
   ELSE
      Echo "Error: Missing SM=<num> argument"
      Quit 10
   Endif
ELSE
  If $tmp2 GT 0
      Echo "Error: Missing DEPTH=<num> argument"
      Quit 10
  Endif
Endif

; ===========
; WINDOW SIZE
; ===========
Set OOPT " -O640:512:XYd"
If {LORES}
   Set OOPT " -O320:256:XYl"
Endif
If {HIRES}
   Set OOPT " -O640:512:XYd"
Endif

; ========
; RAM SIZE
; ========
Set RAMOPT ""
If {CHIP}
   Set tmp1 `eval {CHIP}/256`
   If $tmp1 GT 0
      Set RAMOPT "$RAMOPT -c$tmp1"
   ELSE
      Echo "Error: CHIP=256 or 512 or 1024 or 2048"
      Quit 10
   Endif
Endif
If {Z2RAM}
   Set tmp1 `eval {Z2RAM}/1024`
   If $tmp1 GT 0
      Set RAMOPT "$RAMOPT -F$tmp1"
   ELSE
      Echo "Error: Z2RAM=1024 or 2048 or ... or 8192"
      Quit 10
   Endif
Endif
If {Z3RAM}
   Set tmp1 `eval {Z3RAM}/1024`
   If $tmp1 GT 0
      Set RAMOPT "$RAMOPT -Z$tmp1"
   ELSE
      Echo "Error: Z3RAM=1024 or 2048 or ..."
      Quit 10
   Endif
Endif
If {SLOWFAST}
   Set tmp1 `eval {SLOWFAST}/256`
   If $tmp1 GT 0
      Set RAMOPT "$RAMOPT -s$tmp1"
   ELSE
      Echo "Error: SLOWFAST=512 or 1024"
      Quit 10
   Endif
Endif

; =====
; DISKS
; =====
Set DISKS ""
If {DF0}
  Set DISKS "$DISKS -0{DF0}"
Endif
If {DF1}
  Set DISKS "$DISKS -1{DF1}"
Endif
If {DF2}
  Set DISKS "$DISKS -2{DF2}"
Endif
If {DF3}
  Set DISKS "$DISKS -3{DF3}"
Endif
If {ROMFILE}
  Set RISKS "$DISKS -r{ROMFILE}"
Endif

; =====
; SOUND
; =====
Set SOUND " -S2"
If {NOSOUND}
  Set SOUND " -S0"
Endif

; ====
; MISC
; ====
Set MISC ""
If {NODITHER}
  Set MISC "$MISC -x"
Endif
If {GRAY}
  Set MISC "$MISC -T"
Endif
If {FASTBLIT}
  Set MISC "$MISC -n3i"
Endif
Set tmp1 `eval {FRAMERATE}+0`
If $tmp1 GT 0
  Set MISC "$MISC -f$tmp1"
Endif

; ===============
; VOLUME MOUNTING
; ===============
Set MOUNT ""
If {MOUNT}
  Set MOUNT "-m{MOUNT}"
Endif

; ============
; Launch GUI ?
; ============
If NOT {NOGUI}
   Set tmp1 "UAEGUI.rexx"
   If EXISTS $tmp1
      Run >nil: rx $tmp1
   ELSE
   Set tmp1 "src/UAEGUI.rexx"
   If EXISTS $tmp1
      Run >nil: rx $tmp1
   ELSE
   Set tmp1 "amiga/UAEGUI.rexx"
   If EXISTS $tmp1
      Run >nil: rx $tmp1
   ELSE
      Echo "Warning: Can not find UAEGUI.rexx."
   Endif
   Endif
   Endif
Endif

Stack >NIL: 32000

If EXISTS uae.aos
   UAE.aos $HOPT$OOPT$RAMOPT$SOUND$MISC$DISKS$MOUNT
ELSE
   UAE $HOPT$OOPT$RAMOPT$SOUND$MISC$DISKS$MOUNT
Endif
