        startup($0,$1,$2,$3,$4,$5,$6,$7,$8,$9)

	$dir="\HEALTH"
	$size=8500      ; SimHealth + installation needs

	check_video(VGA)
	check_RAM(540)

	strcmp ($loadpath,C)
	if $>0 {goto fromharddisk}

fromfloppydisk:

	continue("Welcome to SimHealth")

	choose_destination()
	; register_user()
	; remind_registration()
	
	set(y,50)
	copy ("$loadpath\INSTALL.exe","INSTALL.exe")
	copy ("$loadpath\INSTALL.txt","INSTALL.txt")
	copy ("$loadpath\MAXIS.CIM","MAXIS.CIM")
	copy ("$loadpath\INFO.EXE","INFO.EXE")
	copy ("$loadpath\README.TXT","README.TXT")

	extract ("$loadpath\INSTALL._")
	extract ("$loadpath\SHEALTH._")
	extract ("$loadpath\GRAPHICS._")
	extract ("$loadpath\SOUND._")
	extract ("$loadpath\HELP._")

        insert_disk(2,"DATA._")
	extract ("$loadpath\DATA._")
	extract ("$loadpath\SCENREC._")

        setup_video()
        setup_mouse()
        setup_music()
;        setup_sound()
	write_config_file()
	click_OK(
"Installation Completed.
    Enjoy SimHealth!")

	exit("")


fromharddisk:
	continue("SimHealth Settings Utility")
        $=find("sim.cfg")
        if $="" {goto config_seq}
        $default_cfg = readtext("sim.cfg")
        $default_cfg = translate($default_cfg,"^0D", "")
        $default_cfg = translate($default_cfg,"^0A", "")
        $svga = $default_cfg
        $default_cfg = shift($default_cfg)
        $mouse = $default_cfg
        $default_cfg = shift($default_cfg)
        $ms_driver = $default_cfg
        $default_cfg = shift($default_cfg)
        $ms_IO = $default_cfg
        $default_cfg = shift($default_cfg)
        $ms_IRQ = $default_cfg
        $default_cfg = shift($default_cfg)
        $ms_DMA = $default_cfg
        $default_cfg = shift($default_cfg)
        $ms_DRQ = $default_cfg
        $default_cfg = shift($default_cfg)
        $ds_driver = $default_cfg
        $default_cfg = shift($default_cfg)
        $ds_IO = $default_cfg
        $default_cfg = shift($default_cfg)
        $ds_IRQ = $default_cfg
        $default_cfg = shift($default_cfg)
        $ds_DMA = $default_cfg
        $default_cfg = shift($default_cfg)
        $ds_DRQ = $default_cfg
        config_sys()
        goto config_complete;
config_seq:
        setup_video()
        setup_mouse()
        setup_music()
;        setup_sound()
config_complete:
	write_config_file()
	click_OK(
"Settings Complete.
  Enjoy SimHealth!")

	exit("")

; END OF MAIN CODE

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;                                                                        ;;
;;  ALL THE CODE BELOW IS SET OF ROUTINES OR KIND OF STANDARD GIP LIBRARY ;;
;;                                                                        ;;
;;            BETTER TOUCH IF LOOKING FOR TROUBLE                         ;;
;;                                                                        ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
maxis_installer:

	$maxis="* Maxis Presents - SimHealth Installer (Script v1.0) *"
	set(y,5) 
	set(background,LIGHTGRAY) 
	set(color,BLUE) 
	if $video=HERCMONO {set(color,BLACK)}
	if $video=MCGA {set(color,BLACK)}
	set(open,yes) 
	set(save,no)
	say ($maxis)
	return ()

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
click_OK:
	set(background,WHITE)
	set(color,BLACK)
	set(save,yes)
	set(open,yes)
	set(font,normal)
	set(x,50)
	set(y,50)
	set(window,$screen)

	$0="$0

"
	say ($0)

	set(y,80) set(open,no) set(save,no)
	say ("%%%",OK)
	wclose()
	return()
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
red_continue:
	set(background,LIGHTRED)
	goto continue_merge

continue: ; message
	set(background,WHITE)
continue_merge:
	set(color,BLACK)
	set(save,yes)
	set(open,yes)
	set(font,normal)
	set(x,50)
	set(y,50)
	set(window,$screen)

	$0="$0

"

	say ($0)  

	set(y,80) set(open,no) set(save,no)
	say ("%%%%%%%%%   %%%%%%%%",CONTINUE,Cancel)
	if $=Cancel {exit("Installation Canceled")}
	wclose()  ;closes 1st window because it's last saved
	return()
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
yes_or_no:
	set(background,LIGHTRED)
	set(color,BLACK)
	set(save,yes)
	set(open,yes)
	set(font,normal)
	set(x,50)
	set(y,50)
	set(window,$screen)

	$0="$0

"

	say ($0)

	set(y,80) set(open,no) set(save,no)
	$0=say ("%%%%   %%%",YES,NO)
	wclose()
	return($0)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
abort_box:
	set(background,LIGHTRED)
	$0="$0


"
	set(open,yes) set(save,yes)
	say ($0)
	$w=window()
	set(window,$w)
	set(x,45) set(y,82)
	set(open,no) set(save,no)
	say ("%%%%%%%",ABORT)
	wclose($w)
	return()
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
register_user:
;       set(open,yes) set(save,yes)
	$name="SimMayor"
ru_loop:
	say (
" Please enter your name
 @@@@@@@@@@@@@@@@@@@@@

    %%%    %%%%%%%%%",name,OK,Cancel)
	if $=Cancel {
	    cancel()
	    set(open,no) set(save,no)
	    goto ru_loop
	}

	wclose()
	set(window,$screen) 
	set(y,23) set(background,LIGHTGRAY) 
	set(color,BLUE) set(save,no) set(open,yes)
	if $video=HERCMONO {set(color,BLACK)}
	if $video=MCGA {set(color,BLACK)}
	say ("Licensed to $name")
	return()

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
choose_destination:

	set(x,50)
	set(y,50)
	set(save,yes)
	set(open,yes)
	$w=""
destination_loop:
$0=say(
"    Enter the Drive & Directory

Drive:       @@
Directory:   @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

	     %%%     %%%%%%%%",
drive, dir, OK, Cancel)

	if $w="" {
	    $w=window()
	    set(save,no) set(open,no)
	}

	if $0=Cancel { cancel() goto destination_loop}

	set(error,NO)
	setdrive($drive)
	if ERROR {
	    set(ERROR,YES) ; restore error alert
	    continue_or_exit ("DRIVE $drive DOESN'T EXIST.")
	    goto destination_loop
	}
	set(ERROR,YES) ; restore error alert

	$space=getspace($drive)
	if $space<$size {
continue_or_exit (
"FREE SPACE ON DRIVE $DRIVE IS $space K.
   You must have $size K free to
    complete this installation.")
	    ;wclear($w)
	    ;set(save,no) set(open,no)
	    goto destination_loop
	}

	;; Don't allow illegal paths such as "D:\somedir"
	$=strstr($dir,":") ; result of strstr >= 0 means substring was found
	if $>"-1" {
	    continue_or_exit("':' is not allowed in directory name");
	    goto destination_loop
	}

	; Look for '\' occurence in $dir
	$=strstr($dir,"\")
	if $ # 0 { ; '\' is NOT found in $dir as very 1st char (at offset 0)
	    ; Perform appropriate actions here
	    ; example:
	    $=yes_or_no("Install to \$dir?");     
	    if $=NO {goto destination_loop}
	    $dir="\$dir"
	}


	set(error,NO)
	md($dir)  ; ignore system error when creating already existing dir
	if ERROR {
	    cd ($dir)
	    if NOERROR {
		set(error,YES)
		$=yes_or_no(
"Directory $dir already exists.
Do you want to install over old files?")
		if $=NO {goto destination_loop}
	    }
	}
	cd($dir)
	if ERROR {
	    set(error,YES)
	    continue_or_exit("Can't make $dir");
	    goto destination_loop
	}
	set(ERROR,YES)

	wclose($w)
	set(window,$screen)
	set(y,14) 
	set(background,LIGHTGRAY) set(color,BLUE)
	if $video=HERCMONO {set(color,BLACK)}
	if $video=MCGA {set(color,BLACK)}
	set(open,yes) set(save,no)
	say("Installing SimHealth to $drive $dir")
	return()
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
continue_or_exit: ; (message)

$0=
"$0

"
set(open,YES) 
set(save,YES) 
set(BACKGROUND,LIGHTRED) 
set(COLOR,BLACK) 
set(x,50) 
set(y,50)
say ($0) $9=window()

set(open,NO) set(save,NO) set(y,80) set(window,$9)

say ("%%%%%%%%%   %%%%%",
     Continue,    Exit)
if $=Exit {exit ("")}
wclose($9)
return()

check_video: ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

if $video=$0 {return()}

continue_or_exit(
"    Your computer's video card is $video.
SimHealth currently only supports Super-VGA.
       You still can install SimHealth,
  BUT YOU WILL NOT BE ABLE TO PLAY THE GAME
    without Super-VGA."
)

	return()

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
check_RAM:

if $RAM<$0 {continue_or_exit(
"  Your computer has $RAM K of memory.
    SimHealth requires at least $0 K.
     You still can install SimHealth,
BUT YOU WILL NOT BE ABLE TO PLAY THE GAME
  until you have $0 K memory installed." )
}
return()

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
extract_files: ; (template)
	$0="$loadpath\$0"
	$filelist=find($0) 
ef_loop:
	if $filelist # "" {
	    extract("$loadpath\$filelist") 
	    $9=strlen($filelist) 
	    $filelist=rotate($filelist,$9)
	    $filelist=rotate($filelist,1)    ; end null
	    goto ef_loop
	}
	return()
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
insert_disk: ; (LABEL,FILENAME to verify)
	$1="$loadpath\$1"
	$=strlen($0)

	;; Extra space for narrow message
	$9=""
	if $<10 { $9="       "}


	$9="$9 Insert Disk $0 $9

"
	set(background,WHITE)
	set(color,BLACK)
	set(save,yes)
	set(open,yes)
	set(font,normal)
	set(x,50)
	set(y,50)
	set(window,$screen)

	say ($9)

	set(y,80) set(open,no) set(save,no)

	say ("%%%%%%%%%   %%%%%%%%",CONTINUE,Cancel)
	if $=Cancel {exit("Installation Canceled")}
reinsert:
	$=find($1)
	if $="" {
	    red_continue(" WRONG  DISK  INSERTED ! ")
	    goto reinsert;
	}
	wclose()  ;closes 1st window because it's last saved

	return()
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
write_config_file:

	$1="$ms_driver^0D^0A$ms_IO^0D^0A$ms_IRQ^0D^0A$ms_DMA^0D^0A$ms_DRQ"
	$2="$ds_driver^0D^0A$ds_IO^0D^0A$ds_IRQ^0D^0A$ds_DMA^0D^0A$ds_DRQ"
	writetext("SIM.CFG","$svga^0D^0A$mouse^0D^0A$1^0D^0A$2^0D^0A")

	return()
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
nowsay:
	$=say($0,$1,$2,$3,$4,$5,$6,$7,$8,$9)
	return ($)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
nowimage:
	image($0)
	return()
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
shift: ; $0 - value
	    $9=strlen($0)
	    $0=rotate($0,$9)
	    $0=rotate($0,1)    ; end null

	return ($0)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
cancel:
	continue_or_exit("Do you want to exit now?")
	return ()
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
;                       NEW SOUND STUFF
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
get_blaster_set:
       set(error,NO)
       $blaster=getenv("BLASTER")
       if ERROR {goto gbs_end}
       $blaster=translate($blaster," ","")
       $ds_io=$blaster
       $ds_io=translate($ds_io,"A","")
       $ds_io=shift($ds_io)
       $blaster=shift($blaster)
       $ds_IRQ=$blaster
       $ds_IRQ=translate($ds_IRQ,"I","")
       $ds_IRQ=shift($ds_IRQ)
       $blaster=shift($blaster)
       $ds_DMA=$blaster
       $ds_DMA=translate($ds_DMA,"D","")
       $ds_DMA=shift($ds_DMA)
       $ms_io=$ds_io
       $ms_IRQ=$ds_IRQ
       $ms_DMA=$ds_DMA
gbs_end:
return()
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

choose_music_carda:

	set(font,small)

	$1=          "NO MUSIC"                      
	$2=          "PC Speaker" 
        $3=          "Tandy 3-voice speaker"                   
	$4=          "Ad Lib"                        
	$5=          "Ad Lib Gold"                 
	$6=          "Roland MT-32"
        $7=          "Pro Audio Spectrum"
        $8=          "Pro Audio Spectrum Plus/16"                   


	$0=say (
"   Choose Music Sound Card:   

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

 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",

	$1,$2,$3,$4,$5,$6,$7,$8,$more)


	if $0=$1     {   $sc_name=$1      $sc_dll="NOMUSIC"    }
	if $0=$2     {   $sc_name=$2      $sc_dll="a16spkr"  }
	if $0=$3     {   $sc_name=$3      $sc_dll="a16tandy"   }
	if $0=$4     {   $sc_name=$4      $sc_dll="a16adlib"    }
	if $0=$5     {   $sc_name=$5      $sc_dll="a16algfm"  }
	if $0=$6     {   $sc_name=$6      $sc_dll="a16mt32" }
	if $0=$7     {   $sc_name=$6      $sc_dll="a16pasfm" }
	if $0=$8     {   $sc_name=$6      $sc_dll="a16pasop" }
	if $0=$more     {   $sc_name=$more      $sc_dll=$more}

wclose()
return()

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
choose_music_cardb:

	set(font,small)

        $1=          "Sound Blaster"
	$2=          "Sound Blaster Pro 1"       
	$3=          "Sound Blaster Pro 2"       
	$4=          "Sound Blaster/16"               

	$0=say (
"   Choose Music Sound Card:   

 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
                               
          end of list          
                                
                                

 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
	$1,$2,$3,$4,$more)


	if $0=$1     {   $sc_name=$1      $sc_dll="a16sbfm" }
	if $0=$2     {   $sc_name=$2      $sc_dll="a16sp1fm"}
	if $0=$3     {   $sc_name=$3      $sc_dll="a16sp2fm"}
	if $0=$4     {   $sc_name=$4      $sc_dll="a16sp2fm"}
	if $0=$more     {   $sc_name=$more      $sc_dll=$more}
	
wclose()
return()

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

choose_sfx_card:

	set(font,small)

	$1=          "NO SOUND"                 
	$2=          "Sound Blaster" 
        $3=          "Sound Blaster Pro"      
	$4=          "Pro Audio Spectrum"       
	$5=          "Ad Lib Gold"            
	
	$0=say (
"  Choose Sound Effects Card:   

 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",

	$1,$2,$3,$4,$5)

	if $0=$1     {   $sc_name=$1      $sc_dll="NOSOUND"   }
	if $0=$2     {   $sc_name=$2      $sc_dll="a16sbdg" }
	if $0=$3     {   $sc_name=$3      $sc_dll="a16sbpdg" }
	if $0=$4     {   $sc_name=$4      $sc_dll="a16pasdg"}
	if $0=$5     {   $sc_name=$5      $sc_dll="a16algdg" }

wclose()
return()
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
verify_dll:
	if $sc_dll="NOSOUND"   {return()}
	if $sc_dll="NOMUSIC"   {return()}
	if $sc_dll="PCSPKR.ADV" {return()}

vd_cont:
	say("
	     Verifying hardware presence...                   ")
	set(open,no) set(save,no) set(x,50) set(y,10) 
	nowsay ($sc_name)
        copy2("$sc_dll.dll","$dest_dll")         
	exec("sdetect.EXE $music_sound $s_IO $s_IRQ $s_DMA $s_DRQ")
	$ver="FAILED !"
	if $=0 {$ver="OK."}
	if ERROR { $ver="Can't verify" }
	wclear()

	set(y,50)
	$setting="CHANGE SETTINGS"
	set(y,10)
	nowsay("$sc_name VERIFICATION: $ver")
	set(y,90)
	$stat=nowsay("%%%%%%%%%%    %%%%%%%%%%%%%    %%%%%%%%%%%%%%%%%",
		   $continue,    "CHANGE CARD",       $setting)

	if $stat=$setting {
	    edit_IO_settings()
	    wclear()
	    goto vd_cont;
	}
	wclose()
	return()

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
edit_IO_settings: 

	$defpar="*"
	set(x,50) set(y,100) 
	set(font,small) 
	set(open,yes) set(save,yes)

	$8=window()
	$9=""

settings_loop:
	set(window,$8);

$7=say(
"$sc_name
* - factory default
    IO : @@@ Hex
    IRQ: @@
    DMA: @@

   %%%%%%%%%

   %%%%%%%%%", 
s_io,s_IRQ,s_DMA,
DEFAULTS, CONTINUE)
if $9="" {$9=window()}
	if $7=DEFAULTS {
	    $s_IO=$defpar 
	    $s_IRQ=$defpar 
	    $s_DMA=$defpar 
	    $s_DRQ=$defpar
	    wclear()
	    set(open,no) set(save,no)
	    goto settings_loop;
	}

wclose($9)
return()

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
setup_music:

	;Music Sound Cards

sm_more:
	$defpar="*"
	$s_io=$ms_io $s_IRQ=$ms_IRQ $s_DMA=$ms_DMA $s_DRQ=$ms_DRQ

	$sc_dll=$more
	if $sc_dll=$more {choose_music_carda()}
	if $sc_dll=$more {choose_music_cardb()}
	if $sc_dll=$more {goto sm_more}

	$stat=$continue
        $music_sound = "0"
        $dest_dll = "ailxmi.dll"
	verify_dll()
	if $stat#$continue {goto sm_more}

        $ms_card=$sc_name
	$ms_driver=$sc_dll
	$ms_IO=$s_IO
	$ms_IRQ=$s_IRQ
	$ms_DMA=$s_DMA
	$ms_DRQ=$s_DRQ

	set(font,normal)
	return()

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

setup_sound:

	;Sound Effects Sound Cards
	
ss_more:       
	$defpar="*"
	$s_io=$ds_io $s_IRQ=$ds_IRQ $s_DMA=$ds_DMA $s_DRQ=$ds_DRQ

	choose_sfx_card()

	$stat=$continue
        $music_sound = "1"
        $dest_dll = "ailpcm.dll"
	verify_dll()
	if $stat#$continue {goto ss_more}

        $ds_card=$sc_name
	$ds_driver=$sc_dll
	$ds_IO=$s_IO
	$ds_IRQ=$s_IRQ
	$ds_DMA=$s_DMA
	$ds_DRQ=$s_DRQ

	set(font,normal)
	return()

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
setup_mouse:
   set(font,small)
   set(save,yes) set(open,yes)
   $1 = "no mouse" 
   $2 = "Mouse driver"
   $3 = "Microsoft mouse, COM1"
   $4 = "Microsoft mouse, COM2"
   $5 = "Logitech/Mouse Systems mouse, COM1"
   $6 = "Logitech/Mouse Systems mouse, COM2"
   
   $mouse="none"
   $0=say (
"   Choose Mouse:   
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
    $1,$2,$3,$4,$5,$6)

    wclose()
    if $0=$1 { continue
("SimHealth currently requires a mouse,
You may continue installation but will
be unable to run SimHealth") goto sm_done }
    if $0=$2 { $mouse="MsDriver" $9=0 }
    if $0=$3 { $mouse="MsCOM1"   $9=1 }
    if $0=$4 { $mouse="MsCOM2"   $9=2 }
    if $0=$5 { $mouse="MoCOM1"   $9=3 }
    if $0=$6 { $mouse="MoCOM2"   $9=4 }
    goto sm_done                          ; detection not working
    exec("idetect $9")
    if $=0 { goto sm_done }
    click_ok("Hardware not detected")
    goto setup_mouse  
sm_done:
    $detectm = $0
    return()

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
set_defaults:
   $detectv=""
   $ms_card=""
   $ds_card=""
   if $svga="ai:30,1" { $detectv = "ATI, VGA Wonder" }
   if $svga="ai:50,2" { $detectv = "ATI, Graphics Ultra Pro" }
   if $svga="ch:23,3" { $detectv = "CHIPS 82C45x" }
   if $svga="cp:11,4" { $detectv = "Compaq Advanced VGA" }
   if $svga="t3:31,5" { $detectv = "Diamond Speedstar" }
   if $svga="s3:10,6" { $detectv = "Diamond Stealth (S3)" }
   if $svga="g:6,7"   { $detectv = "Genoa, SuperVGA 5000" }
   if $svga="g:8,8"   { $detectv = "Genoa, SuperVGA 6000" }
   if $svga="s3:10,9" { $detectv = "HP Ultra VGA" }
   if $svga="ok:3,10"  { $detectv = "OAK VGA" }
   if $svga="st:31,11" { $detectv = "Orchid, Designer VGA" }
   if $svga="ts:31,12" { $detectv = "Orchid, ProDesigner II" }
   if $svga="s3:10,13" { $detectv = "Orchid Fahrenheit 1280" }
   if $svga="p:4,14"   { $detectv = "Paradise, VGA 1024" }
   if $svga="q:3,15"   { $detectv = "Quadram, VGA Spectra" }
   if $svga="v7:10,16" { $detectv = "Radius Multiview" }
   if $svga="s3:10,17" { $detectv = "S3 Incorporated" }
   if $svga="st:31,18" { $detectv = "STB, VGA Extra/EM" }
   if $svga="ts:31,19" { $detectv = "STB VGA EM-16 Plus" }
   if $svga="tc:4,20"  { $detectv = "Tecmar, VGA/AD" }
   if $svga="tr:3,21"  { $detectv = "Trident Impact" }
   if $svga="ts:31,22" { $detectv = "Tseng 4000" }
   if $svga="ve:31,23" { $detectv = "VESA Super VGA" }
   if $svga="v7:7,24"  { $detectv = "V7, FastWrite VGA" }
   if $svga="v7:7,25"  { $detectv = "V7, VRAM VGA" }                
   if $svga="v7:7,26"  { $detectv = "V7, VGA 1024i" }
   if $svga="v7:10,27" { $detectv = "V7, VRAM II" }
   if $mouse="none"    { $detectm = "no mouse"  }
   if $mouse="MsDriver"{ $detectm = "Mouse driver" }
   if $mouse="MsCOM1"  { $detectm = "Microsoft mouse, COM1" }
   if $mouse="MsCOM2"  { $detectm = "Microsoft mouse, COM2" }
   if $mouse="MoCOM1"  { $detectm = "Logitech/Mouse Systems mouse, COM1" }
   if $mouse="MoCOM2"  { $detectm = "Logitech/Mouse Systems mouse, COM2" }
   if $ms_driver="NOMUSIC"   { $ms_card = "NO MUSIC" }                  
   if $ms_driver="a16spkr"   { $ms_card = "PC Speaker" }
   if $ms_driver="a16tandy"  { $ms_card = "Tandy 3-voice speaker" }     
   if $ms_driver="a16adlib"  { $ms_card = "Ad Lib" }                   
   if $ms_driver="a16algfm"  { $ms_card = "Ad Lib Gold" }               
   if $ms_driver="a16mt32"   { $ms_card = "Roland MT-32" }
   if $ms_driver="a16pasfm"  { $ms_card = "Pro Audio Spectrum" }
   if $ms_driver="a16pasop"  { $ms_card = "Pro Audio Spectrum Plus/16" }
   if $ms_driver="a16sbfm"   { $ms_card = "Sound Blaster" }
   if $ms_driver="a16sp1fm"  { $ms_card = "Sound Blaster Pro 1" }
   if $ms_driver="a16sp2fm"  { $ms_card = "Sound Blaster Pro 2" }
   if $ms_driver="a16sp2fm"  { $ms_card = "Sound Blaster/16" }   
   if $ds_driver="NOSOUND"   { $ds_card = "NO SOUND" }          
   if $ds_driver="a16sbdg"   { $ds_card = "Sound Blaster" } 
   if $ds_driver="a16sbpdg"  { $ds_card = "Sound Blaster Pro" }
   if $ds_driver="a16pasdg"  { $ds_card = "Pro Audio Spectrum" }
   if $ds_driver="a16algdg"  { $ds_card = "Ad Lib Gold" }       
   return()
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
config_sys:
   set(font,large)
   set_defaults()
   $quit = "done"
cs_begin:   
   set(y,25)
        $0=say2 (
" System Configuration                           %%%%%%

 Video:         %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 Mouse:         %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 MIDI Sound:    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%",
                
        $quit, $detectv, $detectm, $ms_card)
	$1=window()
        set(y,60)
	set(window,$screen)
        set(save,yes) set(open,yes)
        if $0=1 { setup_video() goto cs_100 }
        if $0=2 { setup_mouse() goto cs_100 }
	if $0=3 { setup_music() goto cs_100 }
;	if $0=3 { setup_sound() goto cs_100 }
        if $0=0 { goto cs_end }
cs_100:
        set(window,$1)
        set(save,no) set(open,no)
        goto cs_begin
cs_end: 
        set(window,$1)
        wclose()
        return()
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
setup_video:
	set(font,small)
        set(save,yes) set(open,yes)
        $first="true"
begin_sv:
        $lp = ">" $rp = "<"
        exec("vdetect.exe 0")
        if $=0 { $lp = " " $rp = " " }
        $1="$lp ATI, VGA Wonder $rp"
        $lp = ">" $rp = "<"
        exec("vdetect.exe 1")
        if $=0 { $lp = " " $rp = " " }
        $2="$lp ATI, Graphics Ultra Pro $rp"
        $lp = ">" $rp = "<"
        exec("vdetect.exe 2")
        if $=0 { $lp = " " $rp = " " }
        $3="$lp CHIPS 82C45x $rp"
        $lp = ">" $rp = "<"
        exec("vdetect.exe 3")
        if $=0 { $lp = " " $rp = " " }
        $4="$lp Compaq Advanced VGA $rp"
        $lp = ">" $rp = "<"
        exec("vdetect.exe 4")
        if $=0 { $lp = " " $rp = " " }
        $5="$lp Diamond Speedstar $rp"
        $lp = ">" $rp = "<"
        exec("vdetect.exe 5")
        if $=0 { $lp = " " $rp = " " }
        $6="$lp Diamond Stealth (S3) $rp"
        $lp = ">" $rp = "<"
        exec("vdetect.exe 6")
        if $=0 { $lp = " " $rp = " " }
        $7="$lp Genoa, SuperVGA 5000 $rp"
        $lp = ">" $rp = "<"
        exec("vdetect.exe 7")
        if $=0 { $lp = " " $rp = " " }
        $8="$lp Genoa, SuperVGA 6000 $rp"
        $9="more"
cont1_sv:
 	$temp=say (
"   Choose Super VGA model:   

 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
                               
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",

	$1,$2,$3,$4,$5,$6,$7,$8,$9)

        if $temp=$1 {$svga="ai:30,1"}
        if $temp=$2 {$svga="ai:50,2"}
        if $temp=$3 {$svga="ch:23,3"}
        if $temp=$4 {$svga="cp:11,4"}
        if $temp=$5 {$svga="t3:31,5"}
        if $temp=$6 {$svga="s3:10,6"}
        if $temp=$7 {$svga="g:6,7"}
        if $temp=$8 {$svga="g:8,8"}
        $=strstr($temp, ">") 
        set(save,no) set(open,no)
        if $="0" { $temp=replace($temp,">","")  
                   $temp=replace($temp,"<","") 
                   goto cont2_sv}
        if $temp#"more" {click_OK("Invalid Selection") 
        goto cont1_sv }

cont2_sv:

        if $temp # "more" {
           goto end_sv }
        $temp = sv2()
        if $temp # "more" {
           goto end_sv }
        $temp = sv3()
        if $temp # "more" {
           goto end_sv }
        $temp = sv4()
        if $temp # "more" {
           goto end_sv }
        goto begin_sv
end_sv:
        $detectv = $temp
        wclose()
        return()
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
sv2:
        $lp = ">" $rp = "<"
        exec("vdetect.exe 9")
        if $=0 { $lp = " " $rp = " " }
        $1="$lp HP Ultra VGA $rp"
        $lp = ">" $rp = "<"
        exec("vdetect.exe 9")
        if $=0 { $lp = " " $rp = " " }
        $2="$lp OAK VGA $rp"
        $lp = ">" $rp = "<"
        exec("vdetect.exe 10")
        if $=0 { $lp = " " $rp = " " }
        $3="$lp Orchid, Designer VGA $rp"
        $lp = ">" $rp = "<"
        exec("vdetect.exe 11")
        if $=0 { $lp = " " $rp = " " }
        $4="$lp Orchid, ProDesigner II $rp"
        $lp = ">" $rp = "<"
        exec("vdetect.exe 12")
        if $=0 { $lp = " " $rp = " " }
        $5="$lp Orchid Fahrenheit 1280 $rp"
        $lp = ">" $rp = "<"
        exec("vdetect.exe 13")
        if $=0 { $lp = " " $rp = " " }
        $6="$lp Paradise, VGA 1024 $rp"
        $lp = ">" $rp = "<"
        exec("vdetect.exe 14")
        if $=0 { $lp = " " $rp = " " }
        $7="$lp Quadram, VGA Spectra $rp"
        $lp = ">" $rp = "<"
        exec("vdetect.exe 15")
        if $=0 { $lp = " " $rp = " " }
        $8="$lp Radius Multiview $rp"
        $9="more"
        set(save,no) set(open,no)

cont3_sv:

	$0=say (
"   Choose Super VGA model:   

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

 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",

	$1,$2,$3,$4,$5,$6,$7,$8,$9)

        if $0=$1 {$svga="s3:10,9"}
        if $0=$2 {$svga="ok:3,10"}
        if $0=$3 {$svga="st:31,11"}
        if $0=$4 {$svga="ts:31,12"}
        if $0=$5 {$svga="s3:10,13"}
        if $0=$6 {$svga="p:4,14"}
        if $0=$7 {$svga="q:3,15"}
        if $0=$8 {$svga="v7:10,16"}
        $temp2 = $0
        $=strstr($temp2, ">") 
        if $="0" { $temp2=replace($temp2,">","")  
                   $temp2=replace($temp2,"<","") 
                   goto cont4_sv }
        if $temp2 # "more" {click_OK("Invalid Selection") 
                            goto cont3_sv }

cont4_sv:
        return($temp2) 
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
sv3:

        $lp = ">" $rp = "<"
        exec("vdetect.exe 16")
        if $=0 { $lp = " " $rp = " " }
        $1="$lp S3 Incorporated $rp"
        $lp = ">" $rp = "<"
        exec("vdetect.exe 17")
        if $=0 { $lp = " " $rp = " " }
        $2="$lp STB, VGA Extra/EM $rp"
        $lp = ">" $rp = "<"
        exec("vdetect.exe 18")
        if $=0 { $lp = " " $rp = " " }
        $3="$lp STB VGA EM-16 Plus $rp"
        $lp = ">" $rp = "<"
        exec("vdetect.exe 19")
        if $=0 { $lp = " " $rp = " " }
        $4="$lp Tecmar, VGA/AD $rp"
        $lp = ">" $rp = "<"
        exec("vdetect.exe 20")
        if $=0 { $lp = " " $rp = " " }
        $5="$lp Trident Impact $rp"
        $lp = ">" $rp = "<"
        exec("vdetect.exe 21")
        if $=0 { $lp = " " $rp = " " }
        $6="$lp Tseng 4000 $rp"
        $lp = ">" $rp = "<"
        exec("vdetect.exe 22")
        if $=0 { $lp = " " $rp = " " }
        $7="$lp VESA Super VGA $rp"
        $lp = ">" $rp = "<"
        exec("vdetect.exe 23")
        if $=0 { $lp = " " $rp = " " }
        $8="$lp V7, FastWrite VGA $rp"
        $9="more"

        set(save,no) set(open,no)
cont5_sv:

	$0=say (
"   Choose Super VGA model:   

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

 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",

	$1,$2,$3,$4,$5,$6,$7,$8,$9)

        if $0=$1 {$svga="s3:10,17"}
        if $0=$2 {$svga="st:31,18"}
        if $0=$3 {$svga="ts:31,19"}
        if $0=$4 {$svga="tc:4,20" }
        if $0=$5 {$svga="tr:3,21" }
        if $0=$6 {$svga="ts:31,22"}
        if $0=$7 {$svga="ve:31,23"}
        if $0=$8 {$svga="v7:7,24"  }
        $temp2 = $0
        $=strstr($temp2, ">") 
        if $="0" { $temp2=replace($temp2,">","")  
                   $temp2=replace($temp2,"<","") 
                   goto cont6_sv }
        if $temp2 # "more" {click_OK("Invalid Selection") 
                            goto cont5_sv }

cont6_sv:

        return($temp2) 
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
sv4:

        $lp = ">" $rp = "<"
        exec("vdetect.exe 24")
        if $=0 { $lp = " " $rp = " " }
        $1="V7, VRAM VGA"
        $lp = ">" $rp = "<"
        exec("vdetect.exe 25")
        if $=0 { $lp = " " $rp = " " }
        $2="V7, VGA 1024i"
        $lp = ">" $rp = "<"
        exec("vdetect.exe 26")
        if $=0 { $lp = " " $rp = " " }
        $3="V7, VRAM II"
        $4="more"
        set(save,no) set(open,no)
        wclear()
cont7_sv:

	$0=say (
"   Choose Super VGA model:   

 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
                               
          end of list          
                               

                               
                               
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",

	$1,$2,$3,$4)

        if $0=$1 {$svga="v7:7,25"}
        if $0=$2 {$svga="v7:7,26"}
        if $0=$3 {$svga="v7:10,27"}
        $temp2 = $0
        $=strstr($temp2, ">") 
        if $="0" { $temp2=replace($temp2,">","")  
                   $temp2=replace($temp2,"<","") 
                   goto cont8_sv }
        if $temp2 # "more" {click_OK("Invalid Selection") 
                            goto cont7_sv }

cont8_sv:

        return($temp2) 
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
extract_to_subdir: ;;; (subdir_name,archive_name)

	; Prevent system error when creating already existing dir
	set(error,no) md ($0) set(error,yes)
	cd ($0)
	extract ("$loadpath\$1")
	cd("..")
	return()
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
patch_name:
	exec("patch.exe $0")
	delete("PATCH.EXE")
	return()
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
remind_registration:
	set(y,51)
	image("$loadpath\postcard.cim")
	set(y,45) set(font,large) set (open,no) set(save,no)
	set(color,BLACK)
	nowsay(
" All we've got to offer is:
   FREE software,
   FREE subscriptions, and
   someone nice to talk to 
   when you're in trouble.")
	set(open,yes)
	set(font,large)
	set(y,78) set(background,YELLOW) set(color,BLACK)
	say("DON'T FORGET TO REGISTER TODAY !");

	return()
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
draw_desktop:
;       set(background,BLUE)
;       wclear($screen)
	
	set(open,no) set(save,no)
	set(color,YELLOW) set(font,large) nowsay("LOADING...")
	image("$loadpath\MAXIS.CIM")
	return()
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
startup:
	$loadpath=$
	$CPU=$0
	$NDP=$1
	$RAM=$2
	$XRAM=$3
	;
	$video=$5
	$ncolor=$6
	$DOS=$8
	$screen=$9
	;
	$drive="C:"
	$newline="^0D^0A"
	$null="^00"
	$continue=CONTINUE      

	draw_desktop()
	delay(1)

	maxis_installer()

	$no_sound=      "NO SOUND"
	$adlib=         "Ad Lib ¯"
	$sb=            "Sound Blaster ¯"
	$pas=           "Pro Audio Spectrum ¯" 
	$roland=        "Roland Sound Canvas"
	$sierra=        "ARIA Sound Synth"  
	$mt32=          "Roland MT-32/LAPC-1"
	$genmid=        "MPU-401 General MIDI"

	$vmode1=4        
	$vmode2=E
	$gset="CEGADAT"

	$s_card=$no_sound
	$ms_IO="*" $ms_IRQ="*" $ms_DMA="*" $ms_DRQ="*"
	$ds_IO="*" $ds_IRQ="*" $ds_DMA="*" $ds_DRQ="*"
        get_blaster_set()
	$speaker="PC Speaker"
        $svga="none"
        $mouse="none"
        $ms_driver="NOMUSIC"
        $ds_driver="NOSOUND"
	$defpar="*"
	$s_io=$defpar $s_IRQ=$defpar $s_DMA=$defpar $s_DRQ=$defpar
	$more="MORE..."
	return()
