2024-04-19 20:32 CEST

View Issue Details Jump to Notes ]
IDProjectCategoryView StatusLast Update
0003254GhostBusters2[All Projects] Generalpublic2015-07-13 22:01
Reporterdisk_mizer 
Assigned ToWeplProject InfoGhost Busters 2 (Activision)
http://www.whdload.de/games/GhostBusters2.html
 
PrioritynormalSeverityminorReproducibilityalways
StatusresolvedResolutionfixed 
Summary0003254: Installer works great until you insert disk 2 and click on start. It abruptly
DescriptionGameVersion: english,ntsc,2 disks
SlaveVersion: version 1.4 (04.10.06)

Installer works great until you insert disk 2 and
click on start. It abruptly aborts the install.
I got this running using version 1.3 (20.01.02)
installer and copying the new slave into the
directory.
Thanks Steve (disk_mizer)EAB
P.S. I also tried installing on a GVP A530 with 1 Meg
chip ram 8 Megs fast ram with the same result.
TagsNo tags attached.
MachineA2000
CPU68030
CPUSpeed25
ChipSetECS
GFXCardNone
ChipMem1 MB
FastMem8 MB
WorkbenchOS 3.9
KickROM40 - Kick 3.1
KickSoftNone
WHDLoad18.1
importedyes
Attached Files
  • ? file icon Install (40,053 bytes) 2015-07-12 16:52 -
    ; $Id: Install 1.26 2014/04/09 01:53:32 wepl Exp wepl $
    
    (set #multiple-versions "")		;set to <> "" if there are multiple versions
    (set #version 2)			;set if no multiple versions 0=RawDIC 1=Patcher 2=DIC 3=Files 4=CD 5=SingleFile 6=Arcadia
    (set #sub-dir "")			;sub directory containing data files
    (set #highs-file "highs")		;name of high scores file
    
    (set #readme-file "ReadMe")		;name of readme file
    (set #readme2-file "ReadMe2")		;name of second readme file
    (set #man-file "Manual")		;name of manual file
    (set #hint-file "Hints")		;name of hint file
    (set #sol-file "Solution")		;name of solution file
    (set #extra-file "Extra")		;name of extra file
    (set #extra2-file "Extra2")		;name of second extra file
    (set #extra3-file "Extra3")		;name of third extra file
    (set #prefix @app-name)			;name of slave, directory
    (set #prefix-slave "")
    
    (set #ico_suffix_00 "inf")		;Icon suffixes (not all of these must exist)
    (set #ico_suffix_01 "magicwb")
    (set #ico_suffix_02 "romicon")
    (set #ico_suffix_03 "romirek")
    (set #ico_suffix_10 "newicon")
    (set #ico_suffix_11 "newicon2")
    (set #ico_suffix_12 "newicon3")
    (set #ico_suffix_13 "newexot")
    (set #ico_suffix_14 "newcfou")
    (set #ico_suffix_15 "newirek")
    (set #ico_suffix_16 "newirek2")
    (set #ico_suffix_20 "colicon")
    (set #ico_suffix_21 "colicon2")
    (set #ico_suffix_22 "colicon3")
    (set #ico_suffix_23 "colexot")
    (set #ico_suffix_24 "colfrank")
    (set #ico_suffix_25 "colchris")
    (set #ico_suffix_26 "colcode")
    (set #ico_suffix_27 "colcfou")
    (set #ico_suffix_28 "colcfou2")
    (set #ico_suffix_29 "colzarkov")
    (set #ico_suffix_30 "colirek")
    (set #ico_suffix_31 "colirek2")
    (set #ico_suffix_32 "colmura")
    (set #ico_suffix_40 "boxicon")
    (set #ico_suffix_41 "boxicon2")
    (set #ico_suffix_42 "boxirek")
    
    ;Icon descriptions (max 21 chars if you have > 9 entries, or 27 chars otherwise.
    ;These are renamed to "gamename.info" so no illegal characters like :/* etc
    ;		  "123456789012345678901234567"
    (set #ico_desc_00 "Normal")
    (set #ico_desc_01 "MagicWB")
    (set #ico_desc_02 "RomIcon")
    (set #ico_desc_03 "RomIcon Irek")
    (set #ico_desc_10 "NewIcon")
    (set #ico_desc_11 "NewIcon 2")
    (set #ico_desc_12 "NewIcon 3")
    (set #ico_desc_13 "NewIcon Exotica")
    (set #ico_desc_14 "NewIcon CFou!")
    (set #ico_desc_15 "NewIcon Irek")
    (set #ico_desc_16 "NewIcon Irek 2")
    (set #ico_desc_20 "OS3.5 Icon")
    (set #ico_desc_21 "OS3.5 Icon 2")
    (set #ico_desc_22 "OS3.5 Icon 3")
    (set #ico_desc_23 "OS3.5 Exotica")
    (set #ico_desc_24 "OS3.5 Frank")
    (set #ico_desc_25 "OS3.5 Chris Vella")
    (set #ico_desc_26 "OS3.5 Codetapper")
    (set #ico_desc_27 "OS3.5 CFou!")
    (set #ico_desc_28 "OS3.5 CFou! 2")
    (set #ico_desc_29 "OS3.5 Dr.Zarkov")
    (set #ico_desc_30 "OS3.5 Irek")
    (set #ico_desc_31 "OS3.5 Irek 2")
    (set #ico_desc_32 "OS3.5 Murakami")
    (set #ico_desc_40 "OS3.5 BoxIcon")
    (set #ico_desc_41 "OS3.5 BoxIcon 2")
    (set #ico_desc_42 "OS3.5 BoxIcon Irek")
    
    ;---------------------------------------------------------------------
    ; Which version does the user want to install? This routine doesn't need
    ; to be changed UNLESS there are multiple versions.
    
    (procedure P_SelectVersion
      (if (= #multiple-versions "")
        ("")
        (
          (set #version
            (askchoice
              (prompt ("Which version of %s would you like to install?" @app-name))
              (default 0)
    	  ;
    	  ; it is recommend to simply set choices which are not required to an
    	  ; empty string ala "", because then other procedures must bot changed
    	  ; because the number of the #version remains unchanged
    	  ;
    	  (choices
    		"Original release (RawDIC)"
    		"Alternate version (Patcher)"
    		"Budget re-release (DIC)"
    		"Hit-Squad version (Files)"
    		"CD/CDTV/CD³² version (Files)"
    		"Defjam compact (Single File)"
    	  )
              (help @askchoice-help)
            )
          )
          ;
          ; Certain versions may use different slaves, islaves, imager and icons.
          ;	This can be set up here if required.
          ; If you set #prefix it will change: install directory, islave, imager
          ; and icon. If you set #prefix-slave it only changes the slave name.
          ; You may also set the #sub-dir here if this is not required with all
          ; versions
          ;                                                                         §
          (select #version
    	; 0 = RawDIC
            ("")
    	; 1 = Patcher
            ("")
    	; 2 = DIC
            ("")
    	; 3 = Files
            ("")
    	;(set #prefix ("%s%s" #prefix "AGA"))
    	; 4 = CD Files
            ("")
    	;(
    	;  (set #prefix-slave (cat #prefix "CDTV"))
    	;  (set #sub-dir "data")
    	;)
    	; 5 = Single File
    	("")
          )
        )
      )
    )
    
    ;---------------------------------------------------------------------
    ; Make the disk images for the install
    
    (procedure P_MakeImages
      (select #version
        (				;----- 0 = RawDIC -----
          (set #last-file "Disk.1")		;last file the imager should create
          (copyfiles
            (help @copyfiles-help)
            (source ("%s.ISlave" #prefix))
            (dest #dest)
          )
          (P_AskSrcDrvRaw)
          (working "calling RawDIC...")
          (run ("CD \"%s\"\nRawDIC SLAVE=%s.islave SOURCE=%s\nDelete %s.ISlave Quiet" #dest #prefix #CI_drive #prefix))
          (if (exists (tackon #dest #last-file))
            ("")
            (abort "Disk imaging was not successful!\nRawDIC was unable to create all needed files!")
          )
        )
    
        (				;----- 1 = Patcher -----
          (set #last-file "Disk.1")		;last file the imager should create
          (copyfiles
            (help @copyfiles-help)
            (source ("%s.imager" #prefix))
            (dest #dest)
          )
          (P_AskSrcDrvRaw)
          (working "calling Patcher...")
          (run ("CD \"%s\"\nPatcher -p%s.imager -s%s\nDelete %s.imager Quiet" #dest @app-name #CI_drive @app-name))
          (if (exists (tackon #dest #last-file))
            ("")
            (abort "Disk imaging was not successful!\nThe Patcher was unable to create all needed files!")
          )
        )
    
        (				;----- 2 = DIC (Disk Images) -----
    
          ;the following lines must be copied and adjusted for multiple disk images
    
          (set #CI_disknum 1)
          (set #CI_diskname ("%s Disk %ld" @app-name #CI_disknum))
          (set #CI_disklen 900608)
          (set #CI_skiptrk 1)
          (P_CreateImage)
    
          (set #CI_disknum 2)
          (set #CI_diskname ("%s Disk %ld" @app-name #CI_disknum))
          (set #CI_disklen 899584)
          (set #CI_skiptrk 1)
          (P_CreateImage)
    
        )
    
        (				;----- 3 = DOS (Files) -----
    
          ;if the disk can be requested by the volume name:
          (set #AD_disk "cf2-1")
          (set #AD_diskname "Disk 1")	;this optional, default is #AD_disk
          (P_AskDisk)
          (copyfiles
            (help @copyfiles-help)
            (source ("%s:" #AD_disk))
            (dest #dest)
    	(pattern "~(disk1|mapm#?|s|cf2.rel|ssboot)")
          )
    
          ;if the disk can be identified by a file on it:
          (set #AD_filereq "disk1")
          (set #AD_diskname "Disk #2")	;required
          (P_AskDisk)
          (copyfiles
            (help @copyfiles-help)
            (source ("%s:" #AD_dev))
            (dest #dest)
    	(pattern "~(disk2)")
          )
    
          ;if there is no way to identify the disk:
          (set #AD_diskname "Disk Nª 3")
          (P_AskDiskDev)
          (copyfiles
            (help @copyfiles-help)
            (source ("%s:" #AD_drive))
            (dest #dest)
    	(pattern "~(disk3|hi#?|ic#?|mapm1.spt|morp#?|ps#?|ra#?)")
          )
    
          ;extract files from an archive using XAD
          (set #archive
          	(askfile
    	  (prompt (cat "Where is the \"" @app-name "\" archive file located ?"))
           	  (help @askfile-help)
    	  (default "NuxP2.lha")
          	)
          )
          (set #files "~(NuxeliaP/readme.txt)")
          (P_XADUnfile)
          ;move/rename some contents
          (rename (tackon #dest "NuxeliaP/BKG") (tackon #dest "BKG"))
          (rename (tackon #dest "NuxeliaP/BOB") (tackon #dest "BOB"))
          (rename (tackon #dest "NuxeliaP/GFX") (tackon #dest "GFX"))
          (rename (tackon #dest "NuxeliaP/LEV") (tackon #dest "LEV"))
          (rename (tackon #dest "NuxeliaP/SFX") (tackon #dest "SFX"))
          (rename (tackon #dest "NuxeliaP/nuxeliap.exe") (tackon #dest "nuxeliap.exe"))
          ;delete obsolete parts, remaining directories
          (run ("Delete \"%s\" All Quiet Force" (tackon #dest "NuxeliaP")))
    
          ;example: decompress a packed file
          (set #file (tackon #dest "Enemy"))
          (P_XFDDecrunch)
    
          ;example: copy a file supplied with the install
          (copyfiles
            (help @copyfiles-help)
    	(source "supplied.file.name")
            (dest #dest)
          )
    
          ;example: create additional save directory
          (makedir
    	(tackon #dest "save")
    	(help @makedir-help)
          )
    
          ;example: set additional tooltype in the icon
          (tooltype
    	(dest (tackon #dest-org #icon_newname))
    	(settooltype "Config" "C1:L:Language:default,deutsch,english,français")
          )
    
        )
    
        (				;----- 4 = CD (Files) -----
          (message ("\nInsert your %s CD in any drive." @app-name))
          (copyfiles
            (help @copyfiles-help)
            (source "HolidayMakerCDTV:")
            (pattern "(fonts|[1-9hnp]#?|de|map|se)")
            (dest #dest)
          )
          (copyfiles
            (help @copyfiles-help)
            (source "HolidayMakerCDTV:libs")
            (pattern "diskfont.library")
            (dest #dest)
          )
        )
    
        (				;----- 5 = DOS (Select a single file on an unknown disk) -----
          (set #SF_prompt "Please select the xxxxxx file (xxxxxx bytes)")
          (set #SF_default_filename "xxxxxx")
          (set #SF_new_filename #SF_default_filename)
          (P_SelectFile)
          (if (= #SF_filename "")
            (abort ("Disk imaging was not successful!\nCould not locate the required file\n%s\n" #SF_default_filename))
          )
          (copyfiles
            (help @copyfiles-help)
            (source #SF_filename)
            (dest #dest)
            (newname #SF_new_filename)
          )
        )
    
        (				;----- 6 = Arcadia
          (if (getenv "WHDLArcadiaCtrl")
    	(set #ArcadiaCtrl (getenv "WHDLArcadiaCtrl"))
    	(set #ArcadiaCtrl "")
          )
          (set #ArcadiaCtrl
            (askdir
    	  (prompt "Please select the directory where the Arcadia control ROMs named 'scpav3_0.1h' and 'scpav3_0.1l' are located.")
              (help @askdir-help)
    	  (default #ArcadiaCtrl)
    	)
          )
          (run ("setenv WHDLArcadiaCtrl \"%s\"\ncopy ENV:WHDLArcadiaCtrl ENVARC:" #ArcadiaCtrl))
          (copyfiles
            (help @copyfiles-help)
    	(source #ArcadiaCtrl)
            (dest #dest)
    	(pattern "scpav3_0.1[hl]")
          )
          (if (getenv "WHDLArcadiaGame")
    	(set #ArcadiaGame (getenv "WHDLArcadiaGame"))
    	(set #ArcadiaGame "")
          )
          (set #ArcadiaGame
            (askdir
    	  (prompt "Please select the directory where the Arcadia game ROMs named 'arcadia2.u#?' or 'lbg240#?' or 'ldrb_#?.bin' are located.")
              (help @askdir-help)
    	  (default #ArcadiaGame)
    	)
          )
          (run ("setenv WHDLArcadiaGame \"%s\"\ncopy ENV:WHDLArcadiaGame ENVARC:" #ArcadiaGame))
          (copyfiles
            (help @copyfiles-help)
    	(source #ArcadiaGame)
            (dest #dest)
    	(pattern "(arcadia2|ldbg240|ldrb_)#?")
          )
    
        )
      )
    )
    
    ;----------------------------
    ; Create all the icons for the install. If the game requires multiple icons
    ; set them up here by calling P_SelectIcon multiple times, one for each
    ; icon/slave that the game needs. For 99% of cases, you do not need to
    ; change this routine.
    ;
    ; If you have not setup the WHDLoad tooltypes in the icons, you should
    ; change the line(s) below to (set #icon_set_slave_preload "true")
    
    (procedure P_MakeIcons
      (set #icon_desc "game")
      (set #icon_prefix #prefix)
      (set #icon_slave #prefix-slave)
      (set #icon_set_slave_preload "")
      (set #icon_set_deftool_stack "true")
      (P_CopySlave)
      (P_SelectIcon)
    
      ; Uncomment the following lines if you have a multiple slave/icon
      ;(set #icon_desc "Extended RAM")
      ;(set #icon_newname ("%s AGA" #prefix))
      ;(set #icon_slave ("%sAGA" #prefix-slave))
      ;(P_CopySlave)
      ;(P_SelectIcon)
    )
    
    
    ; ** ATTENTION! YOU SHOULD NOT HAVE TO CHANGE ANYTHING BEYOND THIS POINT! **
    
    
    ;****************************
    ;----------------------------
    ; checks if given program is installed, if not abort install
    ; #program - to check
    
    (procedure P_ChkRun
      (set #package "WHDLoad (http://www.whdload.de)")
      (P_ChkRun_Package)
    )
    (procedure P_ChkRun_Package
      (if (= 0 (run ("cd SYS:\nWhich %s >NIL:" #program)))
        ("")
        (abort
          (cat
    	"You must install \"" #program "\" first!\n"
    	"It must be accessible via the path.\n"
    	"You can find it in the package " #package "."
          )
        )
      )
    )
    
    ;----------------------------
    ; decrunch one file using XFD package
    ; IN:  #file - file to decrunch (full path)
    ; OUT: -
    
    (procedure P_XFDDecrunch
      (set #program "xfddecrunch")
      (set #package "XFD (aminet:util/pack/xfdmaster.lha)")
      (P_ChkRun_Package)
      (if
        (<> 0 (run ("%s \"%s\" >CON:///1000//CLOSE" #program #file)))
        (abort ("\"%s\" has failed to decompress the file \"%s\"" #program #file))
      )
    )
    
    ;----------------------------
    ; unpack archive using XAD package
    ; IN:  #archive - archive to extract (full path)
    ;      #files   - files to extract, pattern possible
    ; OUT: -
    
    (procedure P_XADUnfile
      (set #program "xadunfile")
      (set #package "XAD (aminet:util/pack/xadmaster.lha)")
      (P_ChkRun_Package)
      (if
        (<> 0 (run ("%s \"%s\" DEST \"%s\" FILE \"%s\" NOABS >CON:///1000//CLOSE" #program #archive #dest #files)))
        (abort ("\"%s\" has failed to decompress the archive \"%s\"" #program #archive))
      )
    )
    
    ;----------------------------
    ; variables to handle disk image files
    
    (set #DI_mode 9)
    (set #DI_image "SYS:")
    (set #DI_imagetmp "T:WHDI.image")
    (set #DI_mount "T:WHDI.mountlist")
    (set #DI_dev "WHDI")
    
    ;----------------------------
    ; functions to handle disk image files
    ; ask the name of the image file
    ; IN:  -
    ; OUT: -
    
    (procedure PDI_AskMode
      (if (> #DI_mode 3)
        (set #DI_mode
          (askchoice
    	(prompt "In which form of media are your disks to install this program?")
    	(default 0)
    	(choices
    	  "real floppy disks"
    	  "standard disk images (adf, 901120 bytes)"
    	  "CAPS/SPS images or warp files (ipf,mfm,wrp,wwp,...)"
    	)
    	(help
    	  "To install from 'real floppy disks' you have to insert your physical disks into"
    	  " any of your floppy drives.\n\n"
    	  "To install from 'disk images' you must have installed one of the DiskImage packages"
    	  " (aminet:disk/misc/diskimage.lha or aminet:disk/misc/diskimage.mk68-aos.tar.bz2)."
    	  " Required is DEVS:diskimage.device and the program DiskImageCtrl/MountDiskImage"
    	  " in the path.\n\n"
    	  "To install from 'warp files' you must additionally have installed"
    	  " the TrackWarp package (http://www.whdload.de/whdload/TrackWarp16.lha). Required"
    	  " is LIBS:trackwarp.library and the program tw2adf in the path. tw2adf must have"
    	  " version 1.1 or better.\n\n"
    	  "To install from 'SPS/CAPS images' you must additionally have installed the"
    	  " capsimage.device in DEVS: (http://www.softpres.org/)\n\n"
    	  @askchoice-help
    	)
          )
        )
      )
    )
    
    ;----------------------------
    ; functions to handle disk image files
    ; ask the name of the image file
    ; IN:  #DI_diskname - name of the disk to insert
    ; OUT: -
    
    (procedure PDI_AskImage
      (if (getenv "WHDLImage")
        (set #DI_image (getenv "WHDLImage"))
      )
      (set #DI_image
        (askfile
          (prompt "Please select disk image which is the disk named \"" #DI_diskname "\".\n"
    		"Beware the Installer has problems with long file names!")
          (default #DI_image)
          (help @askfile-help)
        )
      )
      (run ("setenv WHDLImage \"%s\"\ncopy ENV:WHDLImage ENVARC:" #DI_image))
    )
    
    ;----------------------------
    ; functions to handle disk image files
    ; insert the image file into the virtual drive
    ; IN:  -
    ; OUT: -
    
    (procedure PDI_Insert
      (if
        (<> 0 (run ("%s Drive=%s: %s Insert=\"%s\" >CON:///1000//CLOSE/AUTO" #DI_cmd #DI_dev #DI_ro #DI_image)))
        (abort
    	"Sorry, could not load the Image to the Device.\n"
    	"Make sure you have correctly installed " #DI_package ",\n"
    	"you have selected the right disk image\n"
    	"and there are enough free ressources."
        )
      )
    )
    
    ;----------------------------
    ; functions to handle disk image files
    ; convert alien image to adf
    ; IN:  -
    ; OUT: -
    
    (procedure PDI_Convert
      (set #program "tw2adf")
      (set #package "TrackWarp (http://www.whdload.de/whdload/TrackWarp15.lha)")
      (P_ChkRun_Package)
      (run ("%s Drive=%s: Eject >CON:///1000//CLOSE/AUTO" #DI_cmd #DI_dev))
      (if
        (<> 0 (run ("tw2adf \"%s\" %s Quiet Overwrite >CON:///1000//CLOSE/AUTO" #DI_image #DI_imagetmp)))
        (abort
    	"Sorry, could not convert the specified image file.\n"
    	"Make sure you have correctly installed the package " #package
    	" and there is enough free memory."
        )
      )
      (set #DI_image #DI_imagetmp)
    )
    
    ;----------------------------
    ; functions to handle disk image files
    ; mount the virtual drive
    ; IN:  -
    ; OUT: -
    
    (procedure PDI_Mount
      (if (= 37 (/ (getversion "DEVS:diskimage.device") 65536))
        (
          (set #program "DiskImageCtrl")
          (set #DI_ro "ReadOnly")
          (set #package "DiskImage (aminet:disk/misc/diskimage.lha)")
        )
        (
          (set #program "MountDiskImage")
          (set #DI_ro "WP")
          (set #package "DiskImage (aminet:disk/misc/diskimage.mk68-aos.tar.bz2)")
        )
      )
      (P_ChkRun_Package)
      (set #DI_cmd #program)
      (set #DI_package #package)
      (if (getassign #DI_dev "d")
        ("")
        (
          (textfile
    	(dest #DI_mount)
            (append
    		"/**/\n"
    		#DI_dev ":\n"
    		"\tDevice = diskimage.device\n"
    		"\tUnit = 9\n"
    		"\tFlags = 0\n"
    		"\tSurfaces = 2\n"
    		"\tBlocksPerTrack = 11\n"
    		"\tReserved = 2\n"
    		"\tLowCyl = 0\n"
    		"\tHighCyl = 79\n"
    		"\tStackSize = 4096\n"
    		"\tGlobVec = -1\n"
    		"\tActivate = 1\n"
            )
            (help @textfile-help)
          )
          (if
    	(<> 0 (run ("mount %s: FROM %s >CON:///1000//CLOSE/AUTO" #DI_dev #DI_mount)))
            (abort
    	  "Sorry, could not mount the Device " #DI_dev ":.\n"
    	  "Make sure you have correctly installed the package " #DI_package "\n"
    	  "and there are enough free ressources and Unit #9 is not already used."
            )
          )
        )
      )
    )
    
    ;----------------------------
    ; functions to handle disk image files
    ; eject image from the virtual drive
    ; IN:  -
    ; OUT: -
    
    (procedure PDI_Eject
      (if (or (= #DI_mode 1) (= #DI_mode 2))
        (if
          (<> 0 (run ("%s Drive=%s: Eject >CON:///1000//CLOSE/AUTO" #DI_cmd #DI_dev)))
          (message "Could not eject the Image from the Device.")
          (run ("assign %s: DISMOUNT" #DI_dev))
        )
      )
    )
    
    ;----------------------------
    ; Wait for inserting a named disk or a disk with a named file on it
    ; IN:  #AD_disk OR #AD_filereq must be specified!
    ;      #AD_disk - name of disk
    ;      #AD_filereq - name of a file on the disk which must exist (if all disks have same name,
    ;		or there are multiple versions with different disk names)
    ;      #AD_diskname - optional on #AD_disk: name of disk for the user requester
    ; OUT: - on #AD_disk
    ;      #AD_dev on #AD_filereq
    
    (procedure P_AskDisk
      (set #AD_mode 0)
      (if #AD_disk (set #AD_mode (+ #AD_mode 1)))
      (if #AD_filereq (set #AD_mode (+ #AD_mode 2)))
      (if (= #AD_mode 0) (abort "P_AskDisk: at least one of #AD_disk and #AD_filereq must be specified!"))
      (if (= #AD_mode 3) (abort "P_AskDisk: only one of #AD_disk and #AD_filereq can be specified!"))
      (set #AD_mode (- #AD_mode 1))		;becasue 'select' starts with 0
      (if #AD_diskname
        ("")
        (if #AD_disk (set #AD_diskname #AD_disk) (abort "P_AskDisk: #AD_diskname is required for #AD_filereq"))
      )
      (PDI_AskMode)
      (set #DI_diskname #AD_diskname)
      (select #DI_mode
        ;0 = floppy
        (select #AD_mode
          ;0 = identify by volume name
          (askdisk
            (dest #AD_disk)
            (prompt ("\nInsert Disk \"%s\" in any drive!" #AD_diskname))
            (help @askdisk-help)
          )
          ;0 = identify by a named file on the disk
          (
            (P_AskSrcDrv)
            (set #AD_dev (substr #CI_drive 0 (- (strlen #CI_drive) 1)))	;without colon
    	(until
    	  (exists ("%s:%s" #AD_dev #AD_filereq) (noreq))
              (message
                (cat
    	      "\nInsert \"" #AD_diskname "\" into drive " #AD_dev "!"
    	    )
              )
    	)
          )
        )
        ;1 = adf
        (
          (PDI_Mount)
          (until
    	(select #AD_mode
    	  (getassign #AD_disk "v")
    	  (exists ("%s:%s" #DI_dev #AD_filereq) (noreq))
    	)
    	(PDI_AskImage)
    	(PDI_Insert)
    	(run "wait 1")
          )
          (set #AD_dev #DI_dev)
        )
        ;2 = warp
        (
          (PDI_Mount)
          (until
    	(select #AD_mode
    	  (getassign #AD_disk "v")
    	  (exists ("%s:%s" #DI_dev #AD_filereq) (noreq))
    	)
    	(PDI_AskImage)
    	(PDI_Convert)
    	(PDI_Insert)
    	(run "wait 1")
          )
          (set #AD_dev #DI_dev)
        )
      )
      (set #AD_diskname "")		;reset for next call of this function
      (set #AD_filereq "")		;reset for next call of this function
    )
    
    ;----------------------------
    ; Ask for inserting a disk without the possebility to check for the right disk
    ; e.g. if the volume label not useable for P_AskDisk
    ; IN:  #AD_diskname - name of disk to request
    ; OUT: #AD_drive - device name in which the disk has been inserted
    
    (procedure P_AskDiskDev
      (PDI_AskMode)
      (set #DI_diskname #AD_diskname)
      (select #DI_mode
        ;0 = floppy
        (
          (P_AskSrcDrv)
          (set #AD_drive #CI_drive)
          (message
            (cat
    	  "\nInsert \"" #AD_diskname "\" into drive " #AD_drive "!\n\n"
    	  "(make sure it's the right disk because it will not be checked)"
    	)
          )
        )
        ;1 = adf
        (
          (PDI_Mount)
          (PDI_AskImage)
          (PDI_Insert)
          (run "wait 1")
          (set #AD_drive #DI_dev)
        )
        ;2 = warp
        (
          (PDI_Mount)
          (PDI_AskImage)
          (PDI_Convert)
          (PDI_Insert)
          (run "wait 1")
          (set #AD_drive #DI_dev)
        )
      )
    )
    
    ;----------------------------
    ; ask for source drive (DIC installs)
    
    (procedure P_AskSrcDrv
      (if #CI_drive
        ("")
        (
          (set #dcnt 0)
          (set #CI_cfg (getenv "WHDLSrcDrv"))
          (if (#CI_cfg)
            (if (getassign (substr #CI_cfg 0 (- (strlen #CI_cfg) 1)) "d")
              (set #dcnt (+ 1 #dcnt)) (set #CI_cfg "")
            )
          )
          (set #CI_df0 "")
          (if (<> "DF0:" #CI_cfg)
            (if (getassign "DF0" "d") ((set #dcnt (+ 1 #dcnt)) (set #CI_df0 "DF0:")))
          )
          (set #CI_df1 "")
          (if (<> "DF1:" #CI_cfg)
            (if (getassign "DF1" "d") ((set #dcnt (+ 1 #dcnt)) (set #CI_df1 "DF1:")))
          )
          (set #CI_df2 "")
          (if (<> "DF2:" #CI_cfg)
            (if (getassign "DF2" "d") ((set #dcnt (+ 1 #dcnt)) (set #CI_df2 "DF2:")))
          )
          (set #CI_df3 "")
          (if (<> "DF3:" #CI_cfg)
            (if (getassign "DF3" "d") ((set #dcnt (+ 1 #dcnt)) (set #CI_df3 "DF3:")))
          )
          (set #CI_rad "")
          (if (<> "RAD:" #CI_cfg)
            (if (getassign "RAD" "d") ((set #dcnt (+ 1 #dcnt)) (set #CI_rad "RAD:")))
          )
          (set #CI_ff0 "")
          (if (<> "FF0:" #CI_cfg)
            (if (getassign "FF0" "d") ((set #dcnt (+ 1 #dcnt)) (set #CI_ff0 "FF0:")))
          )
          (if (< #dcnt 1) (set #CI_cfg "DF0:"))
          (set #CI_ask "Enter Device Name")
          (set #CI_drive
            (askchoice
              (prompt "Select source drive for diskimages")
              (choices #CI_cfg #CI_df0 #CI_df1 #CI_df2 #CI_df3 #CI_rad #CI_ff0 #CI_ask)
              (help @askchoice-help)
            )
          )
          (select #CI_drive
            (set #CI_drive #CI_cfg)
            (set #CI_drive #CI_df0)
            (set #CI_drive #CI_df1)
            (set #CI_drive #CI_df2)
            (set #CI_drive #CI_df3)
            (set #CI_drive #CI_rad)
            (set #CI_drive #CI_ff0)
            (set #CI_drive
              (askstring
                (prompt "Select source drive for diskimages")
                (default "DF0:")
                (help @askstring-help)
              )
            )
          )
          (run ("setenv WHDLSrcDrv \"%s\"\ncopy ENV:WHDLSrcDrv ENVARC:" #CI_drive))
        )
      )
    )
    
    ;----------------------------
    ; ask for source drive (RawDIC/Patcher installs)
    
    (procedure P_AskSrcDrvRaw
      (set #dcnt 0)
      (set #CI_cfg (getenv "WHDLSrcDrvRaw"))
      (if (#CI_cfg)
        (if (getassign (substr #CI_cfg 0 (- (strlen #CI_cfg) 1)) "d")
          (set #dcnt (+ 1 #dcnt)) (set #CI_cfg "")
        )
      )
      (set #CI_df0 "")
      (if (<> "DF0:" #CI_cfg)
        (if (getassign "DF0" "d") ((set #dcnt (+ 1 #dcnt)) (set #CI_df0 "DF0:")))
      )
      (set #CI_df1 "")
      (if (<> "DF1:" #CI_cfg)
        (if (getassign "DF1" "d") ((set #dcnt (+ 1 #dcnt)) (set #CI_df1 "DF1:")))
      )
      (set #CI_df2 "")
      (if (<> "DF2:" #CI_cfg)
        (if (getassign "DF2" "d") ((set #dcnt (+ 1 #dcnt)) (set #CI_df2 "DF2:")))
      )
      (set #CI_df3 "")
      (if (<> "DF3:" #CI_cfg)
        (if (getassign "DF3" "d") ((set #dcnt (+ 1 #dcnt)) (set #CI_df3 "DF3:")))
      )
      (if (< #dcnt 1)
        (set #CI_drive "DF0:")
        (if (> #dcnt 1)
          (
    	(set #CI_drive
    	  (askchoice
    	    (prompt "Select source drive for diskimages")
    	    (choices #CI_cfg #CI_df0 #CI_df1 #CI_df2 #CI_df3)
    	    (help @askchoice-help)
    	  )
    	)
    	(select #CI_drive
    	  (set #CI_drive #CI_cfg)
    	  (set #CI_drive #CI_df0)
    	  (set #CI_drive #CI_df1)
    	  (set #CI_drive #CI_df2)
    	  (set #CI_drive #CI_df3)
    	)
          )
          (set #CI_drive (cat #CI_cfg #CI_df0 #CI_df1 #CI_df2 #CI_df3))
        )
      )
      (run ("setenv WHDLSrcDrvRaw \"%s\"\ncopy ENV:WHDLSrcDrvRaw ENVARC:" #CI_drive))
    )
    
    ;----------------------------
    ; Create Image using DIC
    ; #dest        - path to save image in
    ; #CI_disknum  - number of the disk image to create
    ; #CI_diskname - label of the disk
    ; #CI_disklen  - length of disk image to create
    ; #CI_skiptrk  - track to skip, -1 means no skip
    ; #CI_drive    - drive to create image from
    
    (procedure P_CreateImage
      (PDI_AskMode)
      (set #DI_diskname #CI_diskname)
      (select #DI_mode
        ;0 = floppy
        (
          (P_AskSrcDrv)
          (message
            (cat
    	  "\nInsert \"" #CI_diskname "\" into drive " #CI_drive "!\n\n"
    	  "(make sure it's the right disk because it will not be checked)"
    	)
          )
        )
        ;1 = adf
        (
          (set #CI_drive ("%s:" #DI_dev))
          (PDI_Mount)
          (PDI_AskImage)
          (PDI_Insert)
        )
        ;1 = warp
        (
          (set #CI_drive ("%s:" #DI_dev))
          (PDI_Mount)
          (PDI_AskImage)
          (PDI_Convert)
          (PDI_Insert)
        )
      )
      (if (= #CI_skiptrk "")
        (set #option "")
        (set #option (cat " SKIPTRACK=" #CI_skiptrk))
      )
      (if
        (= 0
          (run
            (cat
              "cd \"" #dest "\"\n"
              "DIC " #CI_drive " FD=" #CI_disknum " LD=" #CI_disknum " SIZE="
              #CI_disklen #option " PEDANTIC >CON:///1000//CLOSE"
            )
          )
        )
        (run ("FileNote \"%s.%ld\" \"%s\" Quiet" (tackon #dest "disk") #CI_disknum @app-name))
        (abort "\"DIC\" has failed to create a diskimage")
      )
    )
    
    ;----------------------------
    ; Select a file (when unsure what disk the file exists on)
    ; IN:  #SF_prompt           - message to display when asking for the file
    ;      #SF_default_filename - default filename
    ; OUT: #SF_filename         - output filename or "" if nothing selected
    
    (procedure P_SelectFile
      (set #SF_filename "")
      (set #SF_filename
        (askfile
          (prompt #SF_prompt)
          (help @askfile-help)
          (default #SF_default_filename)
        )
      )
    )
    
    ;----------------------------
    ; copy file/directory including icon if exist
    ; #copy-file - name of file to copy
    
    (procedure P_CopyFile
      (set #CF_type (exists #copy-file))
      (if #CF_type (
        (if (= #CF_type 2)
          ((copyfiles
              (help @copyfiles-help)
              (source #copy-file)
              (dest (tackon #dest #copy-file))
    	  (all)
          ))
          ((copyfiles
              (help @copyfiles-help)
              (source #copy-file)
              (dest #dest)
          ))
        )
        (if (exists ("%s.info" #copy-file)) (
          (copyfiles
            (help @copyfiles-help)
            (source ("%s.info" #copy-file))
            (dest #dest)
          )
          (tooltype
            (dest (tackon #dest #copy-file))
            (noposition)
          )
        ))
      ))
    )
    
    ;----------------------------
    ; copy a WHDLoad slave
    ; #icon_slave - name of the slave to copy (without .Slave extension)
    
    (procedure P_CopySlave
      (copyfiles
        (help @copyfiles-help)
        (source ("%s.Slave" #icon_slave))
        (dest #dest)
      )
    )
    
    ;----------------------------
    
    (procedure P_Icon
      (copyfiles
        (help @copyfiles-help)
        (source ("%s.%s" #icon_prefix #icon-suf))
        (newname ("%s.info" #icon-name))
        (dest #icon-dir)
      )
      (tooltype
        (dest (tackon #icon-dir #icon-name))
        (noposition)
      )
    )
    
    ;----------------------------
    ; Select an icon by presenting the user with a list of all found icons
    ; IN:  #icon_prefix  - filename prefix for this icon (eg. intro, game)
    ;      #icon_newname - destination filename for the icon (optional, default is #icon_prefix)
    ;      #icon_desc    - description of the icon (eg. intro, game)
    ;      #icon_slave   - name of the slave the tooltype Slave= should be set
    ;                      to (without the .slave suffix)
    
    (procedure P_SelectIcon
      (if #icon_newname ("") (set #icon_newname #icon_prefix))
      (set #icnt 0)
      (if (exists ("%s.%s" #icon_prefix #ico_suffix_42)) (set #icon #ico_suffix_42 #icnt (+ 1 #icnt) #icon_42 #ico_desc_42) (set #icon_42 ""))
      (if (exists ("%s.%s" #icon_prefix #ico_suffix_41)) (set #icon #ico_suffix_41 #icnt (+ 1 #icnt) #icon_41 #ico_desc_41) (set #icon_41 ""))
      (if (exists ("%s.%s" #icon_prefix #ico_suffix_40)) (set #icon #ico_suffix_40 #icnt (+ 1 #icnt) #icon_40 #ico_desc_40) (set #icon_40 ""))
      (if (exists ("%s.%s" #icon_prefix #ico_suffix_32)) (set #icon #ico_suffix_32 #icnt (+ 1 #icnt) #icon_32 #ico_desc_32) (set #icon_32 ""))
      (if (exists ("%s.%s" #icon_prefix #ico_suffix_31)) (set #icon #ico_suffix_31 #icnt (+ 1 #icnt) #icon_31 #ico_desc_31) (set #icon_31 ""))
      (if (exists ("%s.%s" #icon_prefix #ico_suffix_30)) (set #icon #ico_suffix_30 #icnt (+ 1 #icnt) #icon_30 #ico_desc_30) (set #icon_30 ""))
      (if (exists ("%s.%s" #icon_prefix #ico_suffix_29)) (set #icon #ico_suffix_29 #icnt (+ 1 #icnt) #icon_29 #ico_desc_29) (set #icon_29 ""))
      (if (exists ("%s.%s" #icon_prefix #ico_suffix_28)) (set #icon #ico_suffix_28 #icnt (+ 1 #icnt) #icon_28 #ico_desc_28) (set #icon_28 ""))
      (if (exists ("%s.%s" #icon_prefix #ico_suffix_27)) (set #icon #ico_suffix_27 #icnt (+ 1 #icnt) #icon_27 #ico_desc_27) (set #icon_27 ""))
      (if (exists ("%s.%s" #icon_prefix #ico_suffix_26)) (set #icon #ico_suffix_26 #icnt (+ 1 #icnt) #icon_26 #ico_desc_26) (set #icon_26 ""))
      (if (exists ("%s.%s" #icon_prefix #ico_suffix_25)) (set #icon #ico_suffix_25 #icnt (+ 1 #icnt) #icon_25 #ico_desc_25) (set #icon_25 ""))
      (if (exists ("%s.%s" #icon_prefix #ico_suffix_24)) (set #icon #ico_suffix_24 #icnt (+ 1 #icnt) #icon_24 #ico_desc_24) (set #icon_24 ""))
      (if (exists ("%s.%s" #icon_prefix #ico_suffix_23)) (set #icon #ico_suffix_23 #icnt (+ 1 #icnt) #icon_23 #ico_desc_23) (set #icon_23 ""))
      (if (exists ("%s.%s" #icon_prefix #ico_suffix_22)) (set #icon #ico_suffix_22 #icnt (+ 1 #icnt) #icon_22 #ico_desc_22) (set #icon_22 ""))
      (if (exists ("%s.%s" #icon_prefix #ico_suffix_21)) (set #icon #ico_suffix_21 #icnt (+ 1 #icnt) #icon_21 #ico_desc_21) (set #icon_21 ""))
      (if (exists ("%s.%s" #icon_prefix #ico_suffix_20)) (set #icon #ico_suffix_20 #icnt (+ 1 #icnt) #icon_20 #ico_desc_20) (set #icon_20 ""))
      (if (exists ("%s.%s" #icon_prefix #ico_suffix_16)) (set #icon #ico_suffix_16 #icnt (+ 1 #icnt) #icon_16 #ico_desc_16) (set #icon_16 ""))
      (if (exists ("%s.%s" #icon_prefix #ico_suffix_15)) (set #icon #ico_suffix_15 #icnt (+ 1 #icnt) #icon_15 #ico_desc_15) (set #icon_15 ""))
      (if (exists ("%s.%s" #icon_prefix #ico_suffix_14)) (set #icon #ico_suffix_14 #icnt (+ 1 #icnt) #icon_14 #ico_desc_14) (set #icon_14 ""))
      (if (exists ("%s.%s" #icon_prefix #ico_suffix_13)) (set #icon #ico_suffix_13 #icnt (+ 1 #icnt) #icon_13 #ico_desc_13) (set #icon_13 ""))
      (if (exists ("%s.%s" #icon_prefix #ico_suffix_12)) (set #icon #ico_suffix_12 #icnt (+ 1 #icnt) #icon_12 #ico_desc_12) (set #icon_12 ""))
      (if (exists ("%s.%s" #icon_prefix #ico_suffix_11)) (set #icon #ico_suffix_11 #icnt (+ 1 #icnt) #icon_11 #ico_desc_11) (set #icon_11 ""))
      (if (exists ("%s.%s" #icon_prefix #ico_suffix_10)) (set #icon #ico_suffix_10 #icnt (+ 1 #icnt) #icon_10 #ico_desc_10) (set #icon_10 ""))
      (if (exists ("%s.%s" #icon_prefix #ico_suffix_03)) (set #icon #ico_suffix_03 #icnt (+ 1 #icnt) #icon_03 #ico_desc_03) (set #icon_03 ""))
      (if (exists ("%s.%s" #icon_prefix #ico_suffix_02)) (set #icon #ico_suffix_02 #icnt (+ 1 #icnt) #icon_02 #ico_desc_02) (set #icon_02 ""))
      (if (exists ("%s.%s" #icon_prefix #ico_suffix_01)) (set #icon #ico_suffix_01 #icnt (+ 1 #icnt) #icon_01 #ico_desc_01) (set #icon_01 ""))
      (if (exists ("%s.%s" #icon_prefix #ico_suffix_00)) (set #icon #ico_suffix_00 #icnt (+ 1 #icnt) #icon_00 #ico_desc_00) (set #icon_00 ""))
      (if (= #icnt 0) (abort "no icon found"))
      (if (> #icnt 1) (
        (if (= #newstuff 1) (
          (set #icon-dir ("T:%s Icons" #icon_prefix))
          (makedir #icon-dir
            (help @makedir-help)
          )
          (if #icon_00 ((set #icon-suf #ico_suffix_00) (set #icon-name #ico_desc_00) (P_Icon)))
          (if #icon_01 ((set #icon-suf #ico_suffix_01) (set #icon-name #ico_desc_01) (P_Icon)))
          (if #icon_02 ((set #icon-suf #ico_suffix_02) (set #icon-name #ico_desc_02) (P_Icon)))
          (if #icon_03 ((set #icon-suf #ico_suffix_03) (set #icon-name #ico_desc_03) (P_Icon)))
          (if #icon_10 ((set #icon-suf #ico_suffix_10) (set #icon-name #ico_desc_10) (P_Icon)))
          (if #icon_11 ((set #icon-suf #ico_suffix_11) (set #icon-name #ico_desc_11) (P_Icon)))
          (if #icon_12 ((set #icon-suf #ico_suffix_12) (set #icon-name #ico_desc_12) (P_Icon)))
          (if #icon_13 ((set #icon-suf #ico_suffix_13) (set #icon-name #ico_desc_13) (P_Icon)))
          (if #icon_14 ((set #icon-suf #ico_suffix_14) (set #icon-name #ico_desc_14) (P_Icon)))
          (if #icon_15 ((set #icon-suf #ico_suffix_15) (set #icon-name #ico_desc_15) (P_Icon)))
          (if #icon_16 ((set #icon-suf #ico_suffix_16) (set #icon-name #ico_desc_16) (P_Icon)))
          (if #icon_20 ((set #icon-suf #ico_suffix_20) (set #icon-name #ico_desc_20) (P_Icon)))
          (if #icon_21 ((set #icon-suf #ico_suffix_21) (set #icon-name #ico_desc_21) (P_Icon)))
          (if #icon_22 ((set #icon-suf #ico_suffix_22) (set #icon-name #ico_desc_22) (P_Icon)))
          (if #icon_23 ((set #icon-suf #ico_suffix_23) (set #icon-name #ico_desc_23) (P_Icon)))
          (if #icon_24 ((set #icon-suf #ico_suffix_24) (set #icon-name #ico_desc_24) (P_Icon)))
          (if #icon_25 ((set #icon-suf #ico_suffix_25) (set #icon-name #ico_desc_25) (P_Icon)))
          (if #icon_26 ((set #icon-suf #ico_suffix_26) (set #icon-name #ico_desc_26) (P_Icon)))
          (if #icon_27 ((set #icon-suf #ico_suffix_27) (set #icon-name #ico_desc_27) (P_Icon)))
          (if #icon_28 ((set #icon-suf #ico_suffix_28) (set #icon-name #ico_desc_28) (P_Icon)))
          (if #icon_29 ((set #icon-suf #ico_suffix_29) (set #icon-name #ico_desc_29) (P_Icon)))
          (if #icon_30 ((set #icon-suf #ico_suffix_30) (set #icon-name #ico_desc_30) (P_Icon)))
          (if #icon_31 ((set #icon-suf #ico_suffix_31) (set #icon-name #ico_desc_31) (P_Icon)))
          (if #icon_32 ((set #icon-suf #ico_suffix_32) (set #icon-name #ico_desc_32) (P_Icon)))
          (if #icon_40 ((set #icon-suf #ico_suffix_40) (set #icon-name #ico_desc_40) (P_Icon)))
          (if #icon_41 ((set #icon-suf #ico_suffix_41) (set #icon-name #ico_desc_41) (P_Icon)))
          (if #icon_42 ((set #icon-suf #ico_suffix_42) (set #icon-name #ico_desc_42) (P_Icon)))
          (openwbobject #icon-dir)
        ))
        ;the following statement should enable proportional font for 'askchoice'
        ;according to the docs, but doesn't seems to change anything
        ;(set #icon_00 ("%c[2p%s" 27 #icon_00))
        (set #icon
          (askchoice
            (prompt ("\nWhich %s icon would you like to install?\n" #icon_desc))
    	(choices #icon_00 #icon_01 #icon_02 #icon_03
    		 #icon_10 #icon_11 #icon_12 #icon_13 #icon_14 #icon_15 #icon_16
    		 #icon_20 #icon_21 #icon_22 #icon_23 #icon_24 #icon_25 #icon_26 #icon_27 #icon_28 #icon_29
    		 #icon_30 #icon_31 #icon_32
    		 #icon_40 #icon_41 #icon_42)
            (default #icon)
            (help @askchoice-help)
          )
        )
        (if (= #newstuff 1) (
          (closewbobject #icon-dir)
          (run ("Delete \"%s\" All Quiet Force" #icon-dir))
        ))
        (select #icon
          (set #icon #ico_suffix_00)
          (set #icon #ico_suffix_01)
          (set #icon #ico_suffix_02)
          (set #icon #ico_suffix_03)
          (set #icon #ico_suffix_10)
          (set #icon #ico_suffix_11)
          (set #icon #ico_suffix_12)
          (set #icon #ico_suffix_13)
          (set #icon #ico_suffix_14)
          (set #icon #ico_suffix_15)
          (set #icon #ico_suffix_16)
          (set #icon #ico_suffix_20)
          (set #icon #ico_suffix_21)
          (set #icon #ico_suffix_22)
          (set #icon #ico_suffix_23)
          (set #icon #ico_suffix_24)
          (set #icon #ico_suffix_25)
          (set #icon #ico_suffix_26)
          (set #icon #ico_suffix_27)
          (set #icon #ico_suffix_28)
          (set #icon #ico_suffix_29)
          (set #icon #ico_suffix_30)
          (set #icon #ico_suffix_31)
          (set #icon #ico_suffix_32)
          (set #icon #ico_suffix_40)
          (set #icon #ico_suffix_41)
          (set #icon #ico_suffix_42)
        )
      ))
      (copyfiles
        (help @copyfiles-help)
        (source ("%s.%s" #icon_prefix #icon))
        (newname ("%s.info" #icon_newname))
        (dest #dest)
      )
      ;installer has problems on deleting tooltypes with newicons
      (if (<> (substr #icon 0 3) "new")
        (tooltype
          (dest (tackon #dest #icon_newname))
          (settooltype "Slave")
          (settooltype "PreLoad")
        )
      )
      (tooltype
        (dest (tackon #dest #icon_newname))
        (settooltype "PreLoad" "")
        (settooltype "Slave" ("%s.Slave" #icon_slave))
      )
      (tooltype
        (dest (tackon #dest #icon_newname))
        (setdefaulttool "WHDLoad")
        (setstack 10240)
        (noposition)
      )
    )
    
    ;****************************
    
    (if (< @installer-version (+ (* 44 65536) 10))
      (
        (message
          (cat
            "Warning: your installer is outdated.\n"
            "Some features of this installation won't be available, "
            "such as icon show and drawer opening. "
            "You have version " (/ @installer-version 65536) "."
            (BITAND @installer-version 65535) ", recommended is version 44.10. "
            "The 'installer' 44.10 comes with OS 3.5 but is also contained in the NDK 3.9. "
            "You may also use InstallerNG by Jens Tröger."
            "\n\n"
            "The installers can be obtained from the net:\n"
    	"http://www.haage-partner.de/download/AmigaOS/NDK3.9.lha\n"
            "aminet:util/sys/InstallerNG.lha"
          )
        )
        (set #newstuff 0)
      )
      (set #newstuff 1)
    )
    
    (if (exists #readme-file)
      (if (= 0 (run ("SYS:Utilities/Multiview %s" #readme-file)))
        ("")
        (run ("SYS:Utilities/More %s" #readme-file))
      )
    )
    (if (exists #readme2-file)
      (if (= 0 (run ("SYS:Utilities/Multiview \"%s\"" #readme2-file)))
        ("")
        (run ("SYS:Utilities/More \"%s\"" #readme2-file))
      )
    )
    
    (set #program "WHDLoad")
    (P_ChkRun)
    
    (set #program "RawDIC")
    (P_ChkRun)
    
    (set #program "Patcher")
    (P_ChkRun)
    
    (set #program "DIC")
    (P_ChkRun)
    
    (if (getenv "WHDLInstPath")
      (set @default-dest (getenv "WHDLInstPath"))
    )
    
    (P_SelectVersion)
    (if (= #prefix-slave "") (set #prefix-slave #prefix))
    
    (set #dest
      (askdir
        (prompt
          (cat
    	"Where should \"" @app-name "\" be installed?\n"
    	"A drawer \"" #prefix "\" will be automatically created."
          )
        )
        (help @askdir-help)
        (default @default-dest)
      )
    )
    (run ("setenv WHDLInstPath \"%s\"\ncopy ENV:WHDLInstPath ENVARC:" #dest))
    (set #dest (tackon #dest #prefix))
    (if (exists #dest) (
      (set #choice
        (askbool
          (prompt
            (cat
              "\nDirectory \"" #dest "\" already exists.\n"
              "Should it be deleted?"
            )
          )
          (default 1)
          (choices "Delete" "Skip")
          (help @askbool-help)
        )
      )
      (if (= #choice 1)
        (run ("Delete \"%s\" \"%s.info\" All Quiet Force" #dest #dest))
      )
    ))
    (makedir #dest
      (help @makedir-help)
      (infos)
    )
    
    ;----------------------------
    
    (P_MakeIcons)
    (set #copy-file #readme-file)
    (P_CopyFile)
    (set #copy-file #readme2-file)
    (P_CopyFile)
    (set #copy-file #man-file)
    (P_CopyFile)
    (set #copy-file #hint-file)
    (P_CopyFile)
    (set #copy-file #sol-file)
    (P_CopyFile)
    (set #copy-file #extra-file)
    (P_CopyFile)
    (set #copy-file #extra2-file)
    (P_CopyFile)
    (set #copy-file #extra3-file)
    (P_CopyFile)
    (set #dest-org #dest)
    (if (= #sub-dir "")
      ("")
      (
        (set #dest (tackon #dest #sub-dir))
        (makedir #dest
          (help @makedir-help)
        )
      )
    )
    (set #copy-file #highs-file)
    (P_CopyFile)
    (P_MakeImages)
    (PDI_Eject)
    (if (= #newstuff 1)
      (openwbobject #dest-org)
    )
    (set @default-dest #dest-org)
    (exit)
    
    ? file icon Install (40,053 bytes) 2015-07-12 16:52 +

-Relationships
+Relationships

-Notes

note ~0004586

Wepl (manager)

Can please check with the attached Install script?

note ~0004589

Wepl (manager)

Tested - Install worked perfectly. Thank you for all the time and effort
you spend making these installs for my favorite computer. Keep up
the great work.

I have attached the game and installer.

Thanks for your quick action.

Steve/disk_mizer

note ~0004591

Wepl (manager)

Updated install package has been released.
+Notes

-Issue History
Date Modified Username Field Change
2015-06-28 23:55 administrator New Issue
2015-06-28 23:55 administrator Status new => assigned
2015-06-28 23:55 administrator Assigned To => Wepl
2015-07-12 16:52 Wepl File Added: Install
2015-07-12 16:53 Wepl Note Added: 0004586
2015-07-13 21:46 Wepl Note Added: 0004589
2015-07-13 22:01 Wepl Note Added: 0004591
2015-07-13 22:01 Wepl Status assigned => resolved
2015-07-13 22:01 Wepl Resolution open => fixed
+Issue History