Metropoli BBS
VIEWER: flight-install MODE: TEXT (LATIN1)
; $VER: FlightInstall 1.2 (13.06.94)
; Script to install XCNT AmigaFlight 1.2 by Andrew Duffy
; Installer is Copyright 1991-1993 Commodore-Amiga, Inc.

;=============================================================================
; Start of script !

(Complete 0)

;=============================================================================
; Work out where we are being installed from

(set @default-src (expandpath "/"))
(set @default-vol (expandpath ":"))
(set @default-vol (substr @default-vol 0 (- (strlen @default-vol) 1)))
(set @default-dest "Work:")

;=============================================================================
; Version numbers

(set kick-ver (/ (getversion) 65536))
(set kick-ver3 39)

(set flight-vernum (getversion (tackon @default-src "AmigaFlight")))
(set flight-ver (/ flight-vernum 65536))
(set flight-rev (- flight-vernum (* flight-ver 65536)))

(set flightlib-vernum (getversion (tackon @default-src "Libs/amigaflight.library")))
(set flightlib-ver (/ flightlib-vernum 65536))
(set flightlib-rev (- flightlib-vernum (* flightlib-ver 65536)))

(set flighthelp-vernum (getversion (tackon @default-src "Help/AmigaFlight.guide")))
(set flighthelp-ver (/ flighthelp-vernum 65536))
(set flighthelp-rev (- flighthelp-vernum (* flighthelp-ver 65536)))

(set xasm-vernum (getversion (tackon @default-src "C/xasm")))
(set xasm-ver (/ xasm-vernum 65536))
(set xasm-rev (- xasm-vernum (* xasm-ver 65536)))

(set install-vernum (getversion (tackon @default-src "Installation/Flight-Install")))
(set install-ver (/ install-vernum 65536))
(set install-rev (- install-vernum (* install-ver 65536)))

;=============================================================================
; English strings (the default)

(set #bad-kick
(cat "You must be using at least Kickstart 2.04 to install XCNT AmigaFlight."))

(set #introduction
(cat ("\n\nThis program lets you install XCNT's AmigaFlight version %ld.%ld " flight-ver flight-rev)
	"onto either a hard disk or a single floppy disk."))

(set #version-help
(cat "Release versions for this distribution set are :\n\n\n"
	("AmigaFlight Executable %ld.%ld\n\n" flight-ver flight-rev)
	("AmigaFlight Library %ld.%ld\n\n" flightlib-ver flightlib-rev)
	("AmigaFlight Help %ld.%ld\n\n" flighthelp-ver flighthelp-rev)
	("XCNT Pre-Processor (xasm) %ld.%ld\n\n" xasm-ver xasm-rev)
	("Installation Script %ld.%ld" install-ver install-rev)))

(set #ask-install-type
(cat "What type of installation do you require?"))
(set #hard-disk
(cat "Hard Disk"))
(set #floppy-disk
(cat "Floppy Disk"))
(set #ask-install-help
(cat "Selecting Hard Disk will install XCNT AmigaFlight on your hard disk.  "
	"You will be asked what directory or partition you would like to "
	"install it on.  The default is Work:.  A directory called 'AmigaFlight' "
	"will be created at your chosen destination. \n\n"
	"Selecting Floppy Disks will install XCNT AmigaFlight on a single "
	"floppy disk.\n"))

(set #ask-disk1
(cat "\n\nPlease insert volume "))
(set #ask-disk2
(cat " in any drive."))

(set #original-disks
(cat "\nTo install XCNT AmigaFlight onto floppy disk you will need your "
	"original Workbench disks (supplied with your computer).  If you do "
	"not have them to hand, now is a good time to go and find them.\n"))

(set #ask-stand-alone
(cat "Do you wish the disk to be created as a bootable, working environment, "
	"stand-alone disk?"))
(set #ask-stand-help
(cat "Selecting Yes will create a complete working environment on the "
	"disk and set it up as bootable.\n\nSelecting No will merely copy the "
	"AmigaFlight package to the disk."))

(set #ask-wbdisk-help
(cat "An offical Workbench disk is needed to complete this installation.  "
	"It will be used to create a bootable disk for XCNT AmigaFlight."))

(set #ask-storage-help
(cat "The Workbench 3 storage disk is needed to install the DOSDrivers "
	"for reading PC disks, and to install a gb keymap."))

(set #ask-destination
(cat "Please select the directory where you would like to install "
	"XCNT AmigaFlight."))
(set #ask-dest-help
(cat "Choose a destination partition or directory to contain XCNT AmigaFlight.  "
	"The install program will create a directory called 'AmigaFlight' in "
	"your chosen destination and copy AmigaFlight to it."))
(set #installed-mes
(cat "\n\nXCNT AmigaFlight will be installed in\n\n"))

(set #select-drive
(cat "Select a drive that is to be used as the destination."))
(set #select-drive-help
(cat "You need to choose which floppy drive to use for the target disk.  "
	"The disk that you insert will be formatted and all data will be destroyed."))

(set #insert-disk
(cat "Insert a new disk in DRIVE "))
(set #insert-disk-mes1
(cat ", wait for the disk light to go off, then click Proceed.\n\n"
	"For the fewest number of disk swaps, leave the destination disk "
	"in drive "))
(set #insert-disk-mes2
(cat " and use the other drive(s) for the Install disk and Workbench disks."))

(set #format-mes
(cat "Formatting disk in "))

(set #creating-dirs
(cat "Creating system directories on target disk."))

(set #copying-c
(cat "Copying C commands to target disk."))

(set #copying-libs
(cat "Copying libraries to target disk.")) 

(set #copying-handlers
(cat "Copying handlers to target disk."))

(set #copying-devices
(cat "Copying devices to target disk."))

(set #copying-system
(cat "Copying system files to target disk."))

(set #copying-utils
(cat "Copying utilities to target disk."))

(set #ask-parts
(cat "Select the parts of AmigaFlight you would like to install"))
(set #amigaflight
(cat "AmigaFlight Control Program"))
(set #include-assem
(cat "Includes and Assembling Tools"))
(set #help-files
(cat "AmigaGuide® Help Files"))
(set #examples
(cat "Example Files"))
(set #ask-parts-help
(cat "You may choose to install only a part of the AmigaFlight system. "
	"These parts are :\n\n"
	"AmigaFlight Control Program -\nSelecting this item installs the main "
	"part of AmigaFlight and the amigaflight.library.  You should always "
	"select this item the first time you install AmigaFlight.\n\n"
	"Includes and Assembling Tools -\nSelecting this item installs the "
	"include files and tools required to assemble any of your own work.\n\n"
	"AmigaGuide® Help Files -\nSelecting this item installs several "
	"AmigaGuide documents that are used as online help.\n"
	"On Workbench 2 machines, it also installs the Commodore "
	"shared library 'AmigaGuide.library' in your LIBS: drawer, and installs "
	"the 'AmigaGuide®' hypertext browser.\n\n"
	"Example Files -\nSelecting this item installs a few example source "
	"and object files for you to try out.\n"))

(set #dos-error-mes
(cat "Dos Error %ld detected whilst copying %s"))
(set #dos-error-mes2
(cat "Dos Error %ld detected whilst modifying %s"))

(set #working-control
(cat ("Installing AmigaFlight %ld.%ld Program" flight-ver flight-rev)))
(set #working-aflightlib
(cat ("Installing AmigaFlight %ld.%ld Library" flightlib-ver flightlib-rev)))
(set #working-lowlevellib
(cat "Installing LowLevel Library"))

(set #working-includes
(cat "Installing AmigaFlight Includes"))
(set #working-tools
(cat "Installing AmigaFlight Assembling Tools"))

(set #working-aguidehelp
(cat ("Installing AmigaFlight %ld.%ld Help" flighthelp-ver flighthelp-rev)))
(set #working-aguidelib
(cat "Installing AmigaGuide® Library"))
(set #working-aguideview
(cat "Installing AmigaGuide® Viewer"))

(set #working-examples
(cat ("Installing AmigaFlight %ld.%ld Examples" flight-ver flight-rev)))

(set #working-startup
(cat ("Adding AmigaFlight %ld.%ld assignment to User-Startup" flight-ver flight-rev)))
(set #assign-mes1
(cat "The following assignment has been created :\n\n"))
(set #assign-mes2
(cat "\n\nDo you want this to be added to your user-startup?"))

(set #exit-mes
(cat "XCNT wish you hours of fun with AmigaFlight, and remember, if you "
	"get stuck, read the help!"))

;=============================================================================
; Other languages



;=============================================================================
;=============================================================================
;=============================================================================
; make sure we are running under at least V37

(if (< kick-ver 37)
(
	(abort #bad-kick)
))
	
;=============================================================================
; introduce ourselves

(message #introduction
	(help #version-help)
)

;=============================================================================
; welcome message and installation mode requester

(welcome)

;=============================================================================
; what type of installation is required?

(set install-type
	(askchoice
		(prompt #ask-install-type)
		(choices #hard-disk #floppy-disk)
		(help #ask-install-help)
		(default 0)
	)
)



;=============================================================================
;=============================================================================
;=============================================================================
; Hard Disk Installation.

(if (= install-type 0)
(
	(set main-dest (askdir
		(prompt #ask-destination)
		(default @default-dest)
		(help #ask-dest-help)
	))
	(set flight-dest (tackon main-dest "AmigaFlight"))
	(set @default-dest flight-dest)
	(message  #installed-mes flight-dest)

;=============================================================================
; create the destination directory

	(makedir(@default-dest)
			(infos)
			(safe)
	)
	(Complete 5)

;=============================================================================
; find out which parts to install

	(set parts (askoptions
		(prompt #ask-parts)
		(choices #amigaflight #include-assem #help-files #examples)
		(help #ask-parts-help)
	))
	(Complete 10)

;=============================================================================
; copy main control program, amigaflight.library, and lowlevel.library

	(if (IN parts 0)
	(
		(set error (trap 4
			(working #working-control)
			(copyfiles
				(source (tackon @default-src "AmigaFlight"))
				(dest @default-dest)
				(infos)
			)
		))
		(if (> error 0) (message (#dos-error-mes @ioerr "AmigaFlight")))
		(Complete 15)

		(set error (trap 4
			(copyfiles
				(source (tackon @default-src "FlightPrefs"))
				(dest @default-dest)
				(infos)
			)
		))
		(if (> error 0) (message (#dos-error-mes @ioerr "FlightPrefs")))
		(Complete 20)

		(set error (trap 4
			(working #working-aflightlib)
			(copylib
				(source (tackon @default-src "Libs/amigaflight.library"))
				(dest "Libs:")
			)
		))
		(if (> error 0) (message (#dos-error-mes @ioerr "amigaflight.library")))

		(set error (trap 4
			(working #working-lowlevellib)
			(copylib
				(source (tackon @default-src "Libs/lowlevel.library"))
				(dest "Libs:")
			)
		))
		(if (> error 0) (message (#dos-error-mes @ioerr "lowlevel.library")))
		(Complete 25)
	))

;=============================================================================
; copy includes and assembling tools

	(if (IN parts 1)
	(
		(set error (trap 4
			(working #working-includes)
			(copyfiles
				(source (tackon @default-src "Includes"))
				(dest (tackon @default-dest "Includes"))
				(all)
			)
		))
		(if (> error 0) (message (#dos-error-mes @ioerr "Includes")))
		(Complete 30)

		(set error (trap 4
			(working #working-tools)
			(copyfiles
				(source (tackon @default-src "C/A68k"))
				(dest "C:")
			)
		))
		(if (> error 0) (message (#dos-error-mes @ioerr "A68k")))
		(Complete 35)

		(set error (trap 4
			(copyfiles
				(source (tackon @default-src "C/xasm"))
				(dest "C:")
			)
		))
		(if (> error 0) (message (#dos-error-mes @ioerr "xasm")))
		(Complete 40)
	))

;=============================================================================
; copy amigaguide help files and amigaguide.library

	(if (IN parts 2)
	(
		(set error (trap 4
			(working #aguide-help)
			(copyfiles
				(source (tackon @default-src "Help"))
				(dest (tackon @default-dest "Help"))
				(all)
				(infos)
			)
		))
		(if (> error 0) (message (#dos-error-mes @ioerr "Help Files")))

		(set error (trap 4
			(copyfiles
				(source (tackon @default-src "Help.info"))
				(dest @default-dest)
			)
		))
		(if (> error 0) (message (#dos-error-mes @ioerr "Help.info")))
		(Complete 70)

		(if (< kick-ver kick-ver3)
		(
			(set error (trap 4
				(working #working-aguidelib)
				(copylib
					(source (tackon @default-src "Libs/amigaguide.library"))
					(dest "Libs:")
				)
			))
			(if (> error 0) (message (#dos-error-mes @ioerr "amigaguide.library")))
			(Complete 80)

			(set error (trap 4
				(working #working-aguideview)
				(copyfiles
					(source (tackon @default-src "Utilities/AmigaGuide"))
					(dest "Sys:Utilities")
					(infos)
				)
			))
			(if (> error 0) (message (#dos-error-mes @ioerr "AmigaGuide")))
			(Complete 85)
		))
	))

;=============================================================================
; copy example program files

	(if (IN parts 3)
	(
		(set error (trap 4
			(working #working-examples)
			(copyfiles
				(source (tackon @default-src "Programs"))
				(dest (tackon @default-dest "Programs"))
				(all)
				(infos)
			)
		))
		(if (> error 0) (message (#dos-error-mes @ioerr "Example Programs")))

		(set error (trap 4
			(copyfiles
				(source (tackon @default-src "Programs.info"))
				(dest @default-dest)
			)
		))
		(if (> error 0) (message (#dos-error-mes @ioerr "Programs.info")))
		(Complete 95)
	))

;=============================================================================
; modify user-startup

	(working #working-startup)
	(set assign-path ("Assign AmigaFlight: %s" @default-dest))
	(makeassign "AmigaFlight" @default-dest)

	(set error (trap 4
		(startup @app-name
			(prompt ("%s%s%s"
				 #assign-mes1
				 assign-path
				 #assign-mes2)
			)
			(command ("Assign AmigaFlight: \"%s\"\n" @default-dest))
			(help @startup-help)
		)
	))
	(if (> error 0) (message (#dos-error-mes2 @ioerr "User-Startup")))
	(Complete 100)

;=============================================================================
; exit with a final message

	(exit (#exit-mes))

))



;=============================================================================
;=============================================================================
;=============================================================================
; Floppy Disk Installation.

(if (= install-type 1)
(
	(set wbdisk "Workbench3.0")
	(if (< kick-ver kick-ver3) (set wbdisk "Workbench2.0"))

;=============================================================================
; make sure user knows they need original workbench disks

	(message #original-disks)

;=============================================================================
; copy some workbench programs to ram
	
	(askdisk
		(dest wbdisk)
		(prompt #ask-disk1 wbdisk #ask-disk2)
		(help #ask-wbdisk-help @askdisk-help)
	)

	(copyfiles
		(source ("%s:%s" wbdisk "system/format"))
		(dest "ram:")
		(nogauge)
	)

	(copyfiles
		(source ("%s:%s" wbdisk "c/install"))
		(dest "ram:")
		(nogauge)
	)
	
;=============================================================================
; select destination drive

	(set dest-drive-num (askchoice
		(prompt #select-drive)
		(choices "df0:" "df1:" "df2:" "df3:")
		(default 0)
		(help #select-drive-help)
	))
	(if (= dest-drive-num 0) (set dest-drive "df0:"))
	(if (= dest-drive-num 1) (set dest-drive "df1:"))
	(if (= dest-drive-num 2) (set dest-drive "df2:"))
	(if (= dest-drive-num 3) (set dest-drive "df3:"))

;=============================================================================
; format and install destination drive

	(message ("%s%s%s%s%s" #insert-disk dest-drive #insert-disk-mes1 dest-drive #insert-disk-mes2))
	(working #format-mes dest-drive)
	(run ("ram:format drive %s name AmigaFlight noicons FFS" dest-drive))
	(run ("ram:install %s" dest-drive))
	(set @default-dest "AmigaFlight:")

;=============================================================================
; should the disk be a bootable standalone or just AmigaFlight?

	(set stand-alone
		(askbool
			(prompt #ask-stand-alone)
			(help #ask-stand-help)
			(default 1)
		)
	)

;=============================================================================
; create complete disk?

	(if (= stand-alone 1)
	(

;=============================================================================
; create directories on destination drive

		(working #creating-dirs)

		(set n 0)
		(while (set dir-name (select n "S" "C" "L" "Libs" "Devs" "Devs/Printers" "Devs/Keymaps" "Utilities" "System" "Prefs" "Prefs/Presets" "Prefs/Env-Archive" "Prefs/Env-Archive/sys" ""))
		(
			(set n (+ n 1))
			(makedir (tackon "AmigaFlight:" dir-name))
		))

		(if (>= kick-ver kick-ver3)
		(
			(set n 0)
			(while (set dir-name (select n "Devs/DataTypes" "Devs/DOSDrivers" "Devs/Monitors" "Classes" "Classes/DataTypes" ""))
			(
				(set n (+ n 1))
				(makedir (tackon "AmigaFlight:" dir-name))
			))
		)
		(
			(makedir "AmigaFlight:Monitors")
		))

;=============================================================================
; make sure workbench disk is still available

		(askdisk
			(dest wbdisk)
			(prompt #ask-disk1 wbdisk #ask-disk2)
			(help #ask-wbdisk-help)
		)

;=============================================================================
; copy miscellaneous icons to AmigaFlight disk

		(if (< kick-ver kick-ver3)
		(
			(set n 0)
			(while (set file-name (select n "Monitors.info" "Shell.info" ""))
			(
				(set n (+ n 1))
				(copyfiles
					(source ("%s:%s" wbdisk file-name))
					(dest "AmigaFlight:")
				)
			))
		))

		(copyfiles
			(source ("%s:%s" wbdisk "Prefs.info"))
			(dest "AmigaFlight:")
		)

;=============================================================================
; copy workbench startup-sequence to AmigaFlight disk

		(set error (trap 4
			(copyfiles
				(source ("%s:%s" wbdisk "S/Startup-Sequence"))
				(dest "AmigaFlight:S")
			)
		))
		(if (> error 0) (message (#dos-error-mes @ioerr "Startup-Sequence")))
	

;=============================================================================
; copy workbench c directory to AmigaFlight disk

		(working #copying-c)

		(set n 0)
		(while (set file-name (select n "AddBuffers" "Assign" "BindDrivers" "ConClip" "Copy" "Delete" "Dir" "Ed" "Execute" "IPrefs" "List" "LoadWB" "MakeDir" "Mount" "Rename" "SetClock" "SetPatch" "Status" "Type" "Version" ""))
		(
			(set n (+ n 1))
			(set error (trap 4
				(copyfiles
					(source ("%s:%s%s" wbdisk "C/" file-name))
					(dest "AmigaFlight:C")
				)
			))
			(if (> error 0) (message (#dos-error-mes @ioerr file-name)))
		))

		(if (>= kick-ver kick-ver3)
		(
			(set error (trap 4
				(copyfiles
					(source ("%s:%s" wbdisk "C/AddDataTypes"))
					(dest "AmigaFlight:C")
				)
			))
			(if (> error 0) (message (#dos-error-mes @ioerr "AddDataTypes")))
		))

;=============================================================================
; copy workbench libraries to AmigaFlight disk

		(working #copying-libs)

		(set n 0)
		(while (set lib-name (select n "asl" "iffparse" "version" ""))
		(
			(set n (+ n 1))
			(set error (trap 4
				(copylib
					(source ("%s:%s%s%s" wbdisk "Libs/" lib-name ".library"))
					(dest "AmigaFlight:Libs")
				)
			))
			(if (> error 0) (message (#dos-error-mes @ioerr lib-name)))
		))

		(if (>= kick-ver kick-ver3)
		(
			(set n 0)
			(while (set lib-name (select n "amigaguide" "datatypes" ""))
			(
				(set n (+ n 1))
				(set error (trap 4
					(copylib
						(source ("%s:%s%s%s" wbdisk "Libs/" lib-name ".library"))
						(dest "AmigaFlight:Libs")
					)
				))
				(if (> error 0) (message (#dos-error-mes @ioerr lib-name)))
			))
		))

;=============================================================================
; copy workbench handlers to AmigaFlight disk

		(working #copying-handlers)

		(set n 0)
		(while (set handler-name (select n "aux" "port" "queue" ""))
		(
			(set n (+ n 1))
			(set error (trap 4
				(copyfiles
					(source ("%s:%s%s%s" wbdisk "L/" handler-name "-handler"))
					(dest "AmigaFlight:L")
				)
			))
			(if (> error 0) (message (#dos-error-mes @ioerr handler-name)))
		))

		(if (>= kick-ver kick-ver3)
		(
			(set error (trap 4
				(copyfiles
					(source ("%s:%s" wbdisk "L/CrossDOSFileSystem"))
					(dest "AmigaFlight:L")
				)
			))
			(if (> error 0) (message (#dos-error-mes @ioerr "CrossDOSFileSystem")))
		))

;=============================================================================
; copy some of workbench devs directory to AmigaFlight disk

		(working #copying-devices)

		(if (>= kick-ver kick-ver3)
		(
			(set error (trap 4
				(copyfiles
					(source ("%s:%s" wbdisk "Devs.info"))
					(dest "AmigaFlight:")
				)
			))
			(if (> error 0) (message (#dos-error-mes @ioerr "Devs.info")))

			(set error (trap 4
				(copyfiles
					(source ("%s:%s" wbdisk "Devs"))
					(dest "AmigaFlight:Devs")
					(pattern "#?.info")
				)
			))
			(if (> error 0) (message (#dos-error-mes @ioerr "Devs/#?.info")))

			(set error (trap 4
				(copyfiles
					(source ("%s:%s" wbdisk "Devs/DataTypes/AmigaGuide"))
					(dest "AmigaFlight:Devs/DataTypes")
					(infos)
				)
			))
			(if (> error 0) (message (#dos-error-mes @ioerr "AmigaGuide")))

			(set error (trap 4
				(copyfiles
					(source ("%s:%s" wbdisk "Devs/DOSDrivers/PIPE"))
					(dest "AmigaFlight:Devs/DOSDrivers")
					(infos)
				)
			))
			(if (> error 0) (message (#dos-error-mes @ioerr "PIPE")))
		))

		(set n 0)
		(while (set dev-name (select n "clipboard" "parallel" "printer" "serial" ""))
		(
			(set n (+ n 1))
			(set error (trap 4
				(copyfiles
					(source ("%s:%s%s%s" wbdisk "Devs/" dev-name ".device"))
					(dest "AmigaFlight:Devs")
				)
			))
			(if (> error 0) (message (#dos-error-mes @ioerr dev-name)))
		))

		(set error (trap 4
			(copyfiles
				(source ("%s:%s" wbdisk "Devs/System-Configuration"))
				(dest "AmigaFlight:Devs")
			)
		))
		(if (> error 0) (message (#dos-error-mes @ioerr "System-Configuration")))

		(set error (trap 4
			(copyfiles
				(source ("%s:%s" wbdisk "Devs/Printers/Generic"))
				(dest "AmigaFlight:Devs/Printers")
				(infos)
			)
		))
		(if (> error 0) (message (#dos-error-mes @ioerr "System-Configuration")))

;=============================================================================
; copy some of workbench classes directory to AmigaFlight disk

		(if (>= kick-ver kick-ver3)
		(
			(set error (trap 4
				(copyfiles
					(source ("%s:%s" wbdisk "Classes/DataTypes/amigaguide.datatype"))
					(dest "AmigaFlight:Classes/DataTypes")
				)
			))
			(if (> error 0) (message (#dos-error-mes @ioerr "amigaguide.datatype")))
		))

;=============================================================================
; copy some of workbench system directory to AmigaFlight disk

		(working #copying-system)

		(set error (trap 4
			(copyfiles
				(source ("%s:%s" wbdisk "System.info"))
				(dest "AmigaFlight:")
			)
		))
		(if (> error 0) (message (#dos-error-mes @ioerr "System.info")))

		(set error (trap 4
			(copyfiles
				(source ("%s:%s" wbdisk "System/CLI"))
				(dest "AmigaFlight:System")
				(infos)
			)
		))
		(if (> error 0) (message (#dos-error-mes @ioerr "CLI")))

		(set error (trap 4
			(copyfiles
				(source ("%s:%s" wbdisk "System/DiskCopy"))
				(dest "AmigaFlight:System")
				(infos)
			)
		))
		(if (> error 0) (message (#dos-error-mes @ioerr "DiskCopy")))

		(if (>= kick-ver kick-ver3)
		(
			(set error (trap 4
				(copyfiles
					(source ("%s:%s" wbdisk "System/Shell.info"))
					(dest "AmigaFlight:System")
				)
			))
			(if (> error 0) (message (#dos-error-mes @ioerr "Shell.info")))
		))

;=============================================================================
; copy some of workbench utilities directory to AmigaFlight disk

		(working #copying-utils)

		(set error (trap 4
			(copyfiles
				(source ("%s:%s" wbdisk "Utilities.info"))
				(dest "AmigaFlight:")
			)
		))
		(if (> error 0) (message (#dos-error-mes @ioerr "Utilities.info")))

		(if (>= kick-ver kick-ver3)
		(
			(set error (trap 4
				(copyfiles
					(source ("%s:%s" wbdisk "Utilities/MultiView"))
					(dest "AmigaFlight:Utilities")
					(infos)
				)
			))
			(if (> error 0) (message (#dos-error-mes @ioerr "MultiView")))
		))

;=============================================================================
; copy some DOSDrivers and and a keymap from storage disk to AmigaFlight disk

		(if (>= kick-ver kick-ver3)
		(
			(askdisk
				(prompt #ask-disk1 "Storage3.0" #ask-disk2)
				(dest "Storage3.0")
				(help #ask-storage-help @askdisk-help)
			)

			(set error (trap 4
				(copyfiles
					(source ("Storage3.0:DOSDrivers"))
					(dest "AmigaFlight:Devs/DOSDrivers")
					(pattern "PC#?")
					(infos)
				)
			))
			(if (> error 0) (message (#dos-error-mes @ioerr "DOSDrivers")))

			(set error (trap 4
				(copyfiles
					(source ("Storage3.0:Keymaps/gb"))
					(dest "AmigaFlight:Devs/Keymaps")
					(infos)
				)
			))
			(if (> error 0) (message (#dos-error-mes @ioerr "gb keymap")))
		))
	))

;=============================================================================
; find out which parts to install

	(set parts (askoptions
		(prompt #ask-parts)
		(choices #amigaflight #include-assem #help-files #examples)
		(help #ask-parts-help)
	))

	(askdisk
		(dest @default-vol)
		(prompt #ask-disk1 @default-vol ":" #ask-disk2)
		(help @askdisk-help)
	)

;=============================================================================
; copy main control program, amigaflight.library, and lowlevel.library

	(if (IN parts 0)
	(
		(set error (trap 4
			(working #working-control)
			(copyfiles
				(source (tackon @default-src "AmigaFlight"))
				(dest "AmigaFlight:")
				(infos)
			)
		))
		(if (> error 0) (message (#dos-error-mes @ioerr "AmigaFlight")))

		(set error (trap 4
			(copyfiles
				(source (tackon @default-src "FlightPrefs"))
				(dest "AmigaFlight:")
				(infos)
			)
		))
		(if (> error 0) (message (#dos-error-mes @ioerr "FlightPrefs")))

		(set error (trap 4
			(working #working-aflightlib)
			(copylib
				(source (tackon @default-src "Libs/amigaflight.library"))
				(dest "AmigaFlight:Libs")
			)
		))
		(if (> error 0) (message (#dos-error-mes @ioerr "amigaflight.library")))

		(set error (trap 4
			(working #working-lowlevellib)
			(copylib
				(source (tackon @default-src "Libs/lowlevel.library"))
				(dest "AmigaFlight:Libs")
			)
		))
		(if (> error 0) (message (#dos-error-mes @ioerr "lowlevel.library")))
	))

;=============================================================================
; copy includes and assembling tools

	(if (IN parts 1)
	(
		(set error (trap 4
			(working #working-includes)
			(copyfiles
				(source (tackon @default-src "Includes"))
				(dest "AmigaFlight:Includes")
				(all)
			)
		))
		(if (> error 0) (message (#dos-error-mes @ioerr "Includes")))

		(set error (trap 4
			(working #working-tools)
			(copyfiles
				(source (tackon @default-src "C/A68k"))
				(dest "AmigaFlight:C")
			)
		))
		(if (> error 0) (message (#dos-error-mes @ioerr "A68k")))

		(set error (trap 4
			(copyfiles
				(source (tackon @default-src "C/xasm"))
				(dest "AmigaFlight:C")
			)
		))
		(if (> error 0) (message (#dos-error-mes @ioerr "xasm")))
	))

;=============================================================================
; copy amigaguide help files and amigaguide.library

	(if (IN parts 2)
	(
		(set error (trap 4
			(working #aguide-help)
			(copyfiles
				(source (tackon @default-src "Help"))
				(dest ("AmigaFlight:Help"))
				(all)
				(infos)
			)
		))
		(if (> error 0) (message (#dos-error-mes @ioerr "Help Files")))

		(if (< kick-ver kick-ver3)
		(
			(set error (trap 4
				(working #working-aguidelib)
				(copylib
					(source (tackon @default-src "Libs/amigaguide.library"))
					(dest "AmigaFlight:Libs")
				)
			))
			(if (> error 0) (message (#dos-error-mes @ioerr "amigaguide.library")))

			(set error (trap 4
				(working #working-aguideview)
				(copylib
					(source (tackon @default-src "Utilities/AmigaGuide"))
					(dest "AmigaFlight:Utilities")
					(infos)
				)
			))
			(if (> error 0) (message (#dos-error-mes @ioerr "AmigaGuide")))
		))
	))

;=============================================================================
; copy example program files

	(if (IN parts 3)
	(
		(set error (trap 4
			(working #working-examples)
			(copyfiles
				(source (tackon @default-src "Programs"))
				(dest ("AmigaFlight:Programs"))
				(all)
				(infos)
			)
		))
		(if (> error 0) (message (#dos-error-mes @ioerr "Example Programs")))
	))
	(Complete 100)

;=============================================================================
; exit with a final message

	(exit (#exit-mes))

))
[ RETURN TO DIRECTORY ]