;-----------------------------------------------------------------------------
; Script to install Picasso96 
;
; $VER: InstallPicasso96 1.0 (15.12.96)
;
;-----------------------------------------------------------------------------

;=============================================================================
; Configuration defaults
;=============================================================================

(set #Name						"Picasso96")
(set #MinSysVersion			40)
(set #LibsDefaultPath		"SYS:Libs")
(set #MonitorsDefaultPath	"SYS:Devs/Monitors")
(set #SettingsDefaultName	"SYS:Devs/Picasso96Settings")
(set #PrefsDefaultPath		"SYS:Prefs")
(set #MainPath					"Picasso96")
(set #MainDefaultPath		"Work:")

;=============================================================================
; English strings
;=============================================================================

(if
	(= @language "english")
	(
	; startup message
		(set #StartupMsg1
			(cat
				"Picasso96 is a complex piece of software and requires some experience to install and configure. "
				"If you are a beginner with the Amiga and already have a working environment for your graphics board, "
				"you might think twice before installing Picasso96! "
				"This version of Picasso96 is a snapshot of the development and works on most systems. However, your "
				"system may differ in some aspects and this version of Picasso96 might fail to work on your Amiga. "
				"So, please, backup your current system configuration before installing Picasso96! "
			)
		)
		(set #StartupMsg2
			(cat
				"Before you go on, please disable your current graphics board drivers and reboot, if there is any. "
				"Otherwise your system will probably refuse to work correctly afterwards. "
				"Because of the complexity of the different systems available, we can not perform this action "
				"automatically and chose to ask you to do this. Please refer to the manuals of your current "
				"driver software or read the appropriate section of the Picasso96 manual. "
			)
		)
		(set #StartupMsg3
			(cat
				"Please read the documentation before installing Picasso96. Setup and configuration of graphics drivers "
				"is not trivial and should be done with certain things kept in mind. Do you want to read the manual now? "
			)
		)
		(set #StartupHelp3
			(cat
				"Please read the documentation! This might help you to avoid some trouble!"
			)
		)
		
	; Errors
		(set #Err-Bad-Kick "You need at least KickStart 3.1 to run Picasso96!")
		(set #Err-Bad-CPU "You need at least a Motorola M68020 CPU to run Picasso96!")
		(set #Err-No-Boards "You really should have selected at least one board type!")
		(set #Err-No-UpdateScript "Could not find update script from previous installation, please back up configuration files and reinstall!")
		(set #Err-No-DeleteScript "Could not find update script from previous installation, please remove manually.")

	; Warnings
		(set #Warning-NoBoards "It seems that your Amiga has no compatible Amiga graphics board installed!")

	; Message
		(set #Message
			(cat
				"Thank you very much for choosing \nPicasso96\n as your graphics system.\n\n"
				"Picasso96 is the new system friendly environment for many different Amiga graphics boards."
			)
		)

	; Install/Update
		(set #InstallMode "Do you want to install, update or uninstall Picasso96?")
		(set #InstallModeHelp
			(cat
				"Choosing Install will install Picasso96 with all configuration files,"
				"if you click update, your existing configuration files will not be touched."
			)
		)
		(set #Install "Install")
		(set #Update "Update")
		(set #Uninstall "Uninstall")

	; Boards
		(set #AskBoards "What kind of graphics board(s) do you want to use with Picasso96?")
		(set #AskBoardsHelp
			(cat
				"Select those cards that you own, if you do not own any of them, "
				"you can not use Picasso96 yet. Ask the development team or the maker of your "
				"card(s) to build a suitable driver."
			)
		)

	; Monitor
		(set #15kHzMonitor "15 kHz")
		(set #31kHzMonitor "31 kHz")
		(set #35kHzMonitor "35 kHz")
		(set #38kHzMonitor "38 kHz")
		(set #48kHzMonitor "48 kHz")
		(set #57kHzMonitor "57 kHz")
		(set #64kHzMonitor "64 kHz")
		(set #AskMonitor "What horizontal scan rates can your monitor handle?")
		(set #AskMonitorHelp
			(cat
				"Look in the manuals of your monitors and look for the horizontal "
				"scan rates it can handle. They are specified like 30-38 kHz. "
				"Select the best matching choice."
			)
		)

	; Libs
		(set #AskLibPath "Where do you want to have the Picasso96 library files installed?")
		(set #AskLibPathHelp
			(cat
				"If you are not absolutely sure what to choose, choose \""
				#LibsDefaultPath "\"!"
			)
		)
		(set #AskLibPathLibs #LibsDefaultPath)
		(set #AskLibPathUser "Select another location")

		(set #SelectLibDir "Choose a directory for the Picasso96 library files.")
		(set #SelectLibDirHelp
			(cat
				"This directory MUST be a part of your LIBS: assign!"
				"It has to be part of libs: before the monitors are launched."
				"Therefore, it is usually best to install them in SYS:libs."
			)
		)

	; Monitor
		(set #AskMonitorPath "Where do you want to have the monitor files of Picasso96 installed?")
		(set #AskMonitorPathHelp
			(cat
				"If you are not absolutely sure what to choose, choose \""
				#MonitorsDefaultPath "\"!"
			)
		)
		(set #AskMonitorPathMonitors #MonitorsDefaultPath)
		(set #AskMonitorPathUser "Select another location")

		(set #SelectMonitorDir "Choose a directory for Picasso96's monitor files.")
		(set #SelectMonitorDirHelp
			(cat
				"If you want to have Picasso96 started automatically during the"
				"system boot phase, it would be the best idea to put the monitor"
				"in \"" #MonitorsDefaultPath "\"."
			)
		)

	; Prefs
		(set #AskPrefsPath "Where do you want to have the Picasso96 preferences program \"Picasso96Mode\" installed?")
		(set #AskPrefsPathHelp
			(cat
				"If you are not absolutely sure what to choose, choose \""
				#PrefsDefaultPath "\"!"
			)
		)
		(set #AskPrefsPathPrefs #PrefsDefaultPath)
		(set #AskPrefsPathUser "Select another location")

		(set #SelectPrefsDir "Choose a directory for Picasso96Mode.")
		(set #SelectPrefsDirHelp
			(cat
				"It is usually a good idea to put Picasso96Mode in \"" #PrefsDefaultPath "\"."
			)
		)

	; Settings
		(set #AskSettingsPath "Where do you want to have the Picasso96 settings file installed?")
		(set #AskSettingsPathHelp
			(cat
				"If you are not absolutely sure what to choose, choose \""
				#SettingsDefaultName "\"!"
			)
		)
		(set #AskSettingsPathDevs #SettingsDefaultName)
		(set #AskSettingsPathUser "Select another location")

		(set #SelectSettingsDir "Choose a directory for the Picasso96 settings file.")
		(set #SelectSettingsDirHelp
			(cat
				"It is usually a good idea to store the settings as \"" #SettingsDefaultName "\"."
			)
		)
		(set #AskSettingsCopy "There is already a settings file!\nDo you want to keep the old one?")
		(set #AskSettingsCopyHelp
			(cat
				"Warning! If you select overwrite all current settings will be replaced with the default "
				"settings. Your old file will be moved to " #_settingsname ".bak"
			)
		)
		(set #Keep "Keep old")
		(set #Overwrite "Install new")

	; Main
		(set #SelectMainDir "Where do you want to have the support files installed?\nA drawer named Picasso96 will be created there.")
		(set #SelectMainDirHelp
			(cat
				"A new drawer named Picasso96 will be created to hold the files."
				"An appropriate assign will be added to your user-startup file later."
			)
		)

	; Copy
		(set #Picasso96HomeDir "Creating drawer for applications and scripts.")
		(set #Picasso96HomeDirHelp "The drawer created now holds the applications and the update and uninstall scripts.")
		(set #Picasso96Dir "Creating drawer for cards and chips.")
		(set #Picasso96DirHelp "The drawer created now holds the chip and card drivers and the main rtg.library.")
		(set #CopyPicasso96 "Installing Picasso96API.library.")
		(set #CopyPicasso96Help "This library is needed for Picasso96 applications.")
		(set #CopyRtg "Installing RTG system library.")
		(set #CopyRtgHelp "This library provides the graphics system functions.")
		(set #CopyFL "Installing fast layers library.")
		(set #CopyFLHelp "This library improves window movement performance.")
		(set #CopyPDT
            (cat "Installing a new picture.datatype to SYS:Classes/Datatypes. "
                 "Your old one will be saved as SYS:Classes/Datatypes/picture.datatype.old "
                 "The new picture.datatype is absolutely required."
            )
        )
		(set #CopyPDTHelp
            (cat "The original AmigaOS V40 picture.datatype doesn't "
                 "work with graphics boards. This will install a new one "
                 "which has all the funtionality of the old one, but also can "
                 "handle graphics boards. Your old picture.datatype will be saved "
                 "as SYS:Classes/Datatypes/picture.datatype.old. "
            )
        )
		(set #CopyCard "Installing board driver for %s.")
		(set #CopyCardHelp "This driver is needed for at least one of your boards.")
		(set #CopyMonitor "Installing monitor driver for %s.")
		(set #CopyMonitorHelp "This driver is needed for at least one of your boards.")
		(set #MonitorToolType "Adjusting tooltypes for %s's monitor driver.")
		(set #MonitorToolTypeHelp "This step configures the monitor driver.")
		(set #CopyChip "Installing chipset driver for %s.")
		(set #CopyChipHelp "This driver is needed for at least one of your boards.")

		(set #CopyPicasso96Mode "Installing Picasso96Mode.")
		(set #CopyPicasso96ModeHelp "You will need Picasso96Mode to adjust your display settings.")
		(set #Picasso96ModeIconType "Adjusting the tooltypes of Picasso96Mode and its icon position.")
		(set #Picasso96ModeIconTypeHelp "The tooltypes of Picasso96Mode will reflect your choice about the location of the settings file.")
	
		(set #CopyEmuLib "Installing cross platform emulation library.")
		(set #CopyEmuLibHelp
			(cat
				"You will need this library to run programs "
				"written for other graphics board systems."
			)
		)
		
		(set #CopyPicasso96API "Installing Picasso96API.library")
		(set #CopyPicasso96APIHelp "The Picasso96API.library is needed for applications with direct Picasso96 support.")
	
		(set #CopyApps "Installing additional programs.")
		(set #CopyAppsHelp "During this step some utilities will be installed.")

	; User-Startup
		(set #AddUserStartup "Performing changes to User-Startup.")
		(set #AddUserStartupHelp
			(cat
				"An assignment \""
				#MainPath
				":\" will be added to your SYS:s/User-Startup file. "
				"This is primarily needed when updating Picasso96."
			)
		)
	
	; Install
		(set #Msg-Installing "Installing Picasso96 files!")

	; Update
		(set #Msg-Updating "Updating existing installation!")

	; Delete
		(set #Msg-Deleting "Deleting existing installation!")
	
	; Install Drivers
		(set #CopyDrivers "\nDo you want to have the application drivers copied to your harddisk?")
		(set #CopyDriversHelp "The drivers will be installed to the Picasso96 directory on your harddisk to allow easy on-demand installation.")
		(set #MsgInstallFromHD "\nPlease install the application drivers from the Picasso96 home dirctory or from the driver disk.")
	)
)

;=============================================================================
; German strings
;=============================================================================

(if
	(= @language "deutsch")
	(
	; startup message
		(set #StartupMsg1
			(cat
				"Aufgrund des Umfanges und der Komplexitt der Software erfordert Picasso96 einen erfahrenen "
				"Amiga Benutzer fr die Installation und Konfiguration. Falls Sie sich mit dem Amiga noch "
				"nicht so gut auskennen und bereits eine zu Ihrer Zufriedenheit funktionierende Arbeitsumgebung "
				"besitzen, sollten Sie sich die Installation von Picasso96 noch einmal berlegen. "
				"Diese Version von Picasso96 stellt den augenblicklichen Stand der Entwicklung der Software dar "
				"und funktioniert auf den meisten Konfigurationen. Trotzdem kann es sein, da es gerade auf "
				"Ihrem System nicht funktioniert. Deswegen sollten Sie auf jeden Fall vor der Installation eine "
				"Sicherung Ihres Systems durchfhren! "
			)
		)
		(set #StartupMsg2
			(cat
				"Vor der weiteren Installation mchten wir Sie bitten, andere eventuell installierte "
				"Grafikkartentreiber zu deaktivieren und einen Warmstart durchzufhren, da Picasso96 "
				"sonst nicht zuverlssig arbeiten kann. "
				"Aufgrund der hohen Komplexitt und Vielfalt unterschiedlicher Installationsformen "
				"knnen wir diesen Schritt leider nicht vollautomatisch durchfhren und bitten "
				"deshalb Sie, dies manuell durchzufhren. Hinweise, wie das zu bewerkstelligen "
				"ist, entnehmen Sie bitte der Dokumentation ihres Systems oder auch dem entsprechenden "
				"Abschnitt in der Picasso96 Anleitung. "
			)
		)
		(set #StartupMsg3
			(cat
				"Bitte lesen Sie die Dokumentation bevor Sie Picasso96 installieren. Das Einrichten und die "
				"Konfiguration von Grafikkartentreibern ist leider nicht trivial und sollte erst durchgefhrt "
				"werden, wenn man sich ein paar Gedanken gemacht hat. Mchten Sie die Dokumentation jetzt lesen? "
			)
		)
		(set #StartupHelp3
			(cat
				"Bitte lesen Sie die Dokumentation! Das kann Ihnen einigen rger ersparen!"
			)
		)
		
	; Errors
		(set #Err-Bad-Kick "Sie bentigen mindestens KickStart 3.1 fr Picasso96!")
		(set #Err-Bad-CPU "Sie bentigen mindestens eine Motorola M68020 CPU fr Picasso96!")
		(set #Err-No-Boards "Sie htten wirklich mindestens eine Grafikkarte auswhlen sollen!")
		(set #Err-No-UpdateScript "Leider konnte kein Skript zum Aktualisieren von einer frheren Installation gefunden werden, bitte frisch installieren!")
		(set #Err-No-DeleteScript "Leider konnte kein Skript zum Entfernen von einer frheren Installation gefunden werden, bitte manuell entfernen!")

	; Warnings
		(set #Warning-NoBoards "Ihr Rechner scheint keine kompatible Grafikkarte installiert zu haben!")

	; Message
		(set #Message
			(cat
				"Vielen Dank, da Sie \nPicasso96\n installieren wollen.\n\n"
				"Picasso96 ist die neue systemfreundliche Software fr fast alle Amiga-Grafikkarten."
			)
		)

	; Install/Update
		(set #InstallMode "Wollen Sie Picasso96 installieren, aktualisieren oder entfernen?")
		(set #InstallModeHelp
			(cat
				"Wenn Sie Installieren whlen, wird Picasso96 mit allen Konfigurationsdateien installiert,"
				"wenn Sie Aktualisieren whlen, werden Ihre Konfigurationsdateien nicht verndert."
			)
		)
		(set #Install "Installieren")
		(set #Update "Aktualisieren")
		(set #Uninstall "Entfernen")

	; Boards
		(set #AskBoards "Welche Grafikkarten wollen Sie mit Picasso96 verwenden?")
		(set #AskBoardsHelp
			(cat
				"Whlen Sie die Karten, die Sie besitzen. Wenn Sie keine der angegebenen "
				"besitzen, knnen Sie Picasso96 leider noch nicht benutzen. Fragen Sie das "
				"Entwicklerteam oder den Hersteller Ihrer Grafikkarte nach einem passenden Treiber."
			)
		)

	; Monitor
		(set #15kHzMonitor "15 kHz")
		(set #31kHzMonitor "31 kHz")
		(set #35kHzMonitor "35 kHz")
		(set #38kHzMonitor "38 kHz")
		(set #48kHzMonitor "48 kHz")
		(set #57kHzMonitor "57 kHz")
		(set #64kHzMonitor "64 kHz")
		(set #AskMonitor "Welche Horizontalfrequenz kann Ihr Monitor handhaben?")
		(set #AskMonitorHelp
			(cat
				"Sehen Sie im Handbuch Ihres Monitors nach, welche Horizontalfrequenzen "
				"er verkraften. Dort finden Sie zum Beispiel eine Angabe wie 30-38 kHz. "
				"Whlen Sie die Mglichkeit aus, die am besten zu Ihren Monitor pat."
			)
		)

	; Libs
		(set #AskLibPath "Wo sollen die Funktionsbibliotheken fr Picasso96 installiert werden?")
		(set #AskLibPathHelp
			(cat
				"Die Funktionsbibliotheken mssen in das Verzeichnis kopiert werden, auf welches "
				"der Assign Libs: whrend des Startvorgangs (vor User-Startup!) zeigt. "
                "Im Zweifelsfall nehmen Sie einfach " #LibsDefaultPath "!"
			)
		)
		(set #AskLibPathLibs #LibsDefaultPath)
		(set #AskLibPathUser "Einen anderen Ort whlen")

		(set #SelectLibDir "Whlen Sie ein Verzeichnis fr die Funktionsbibliotheken von Picasso96.")
		(set #SelectLibDirHelp
			(cat
				"Dieses Verzeichnis MUSS ein Teil Ihrer LIBS: Zuweisung sein!"
				"Es mu zu dem Zeitpunkt verfgbar sein, zu dem die Monitordateien gestartet werden."
				"Deshalb ist es meistens am besten, die Dateien in SYS:Libs zu installieren."
			)
		)

	; Monitor
		(set #AskMonitorPath "Wo sollen die Monitor Dateien fr Picasso96 installiert werden?")
		(set #AskMonitorPathHelp
			(cat
				"Wenn Sie nicht wirklich ganz genau wissen, wie Sie sich entscheiden sollen, whlen Sie \""
				#MonitorsDefaultPath "\"!"
			)
		)
		(set #AskMonitorPathMonitors #MonitorsDefaultPath)
		(set #AskMonitorPathUser "Einen anderen Ort whlen")

		(set #SelectMonitorDir "Whlen Sie ein Verzeichnis die Monitor-Dateien von Picasso96.")
		(set #SelectMonitorDirHelp
			(cat
				"Wenn Picasso96 whrend der Systeminitialisierung gestartet werden soll, ist"
				"es am besten, die Monitor Dateien nach \"" #MonitorsDefaultPath "\"zu kopieren."
			)
		)

	; Prefs
		(set #AskPrefsPath "Wo soll \"Picasso96Mode\", das Programm zur Einstellung der Auflsungen, installiert werden?")
		(set #AskPrefsPathHelp
			(cat
				"Wenn Sie nicht genau wissen, was Sie wollen, nehmen Sie \""
				#PrefsDefaultPath "\"!"
			)
		)
		(set #AskPrefsPathPrefs #PrefsDefaultPath)
		(set #AskPrefsPathUser "Einen anderen Ort whlen")

		(set #SelectPrefsDir "Whlen Sie ein Verzeichnis fr Picasso96Mode.")
		(set #SelectPrefsDirHelp
			(cat
				"Es ist normalerweise nicht schlecht, Picasso96Mode nach \"" #PrefsDefaultPath "\"zu kopieren."
			)
		)

	; Settings
		(set #AskSettingsPath "Wo soll die Datei fr die Bildschirmauflsungen gespeichert werden?")
		(set #AskSettingsPathHelp
			(cat
				"Wir empfehlen \""
				#SettingsDefaultName "\"."
			)
		)
		(set #AskSettingsPathDevs #SettingsDefaultName)
		(set #AskSettingsPathUser "Einen anderen Ort whlen")

		(set #SelectSettingsDir "Whlen Sie ein Verzeichnis fr die Datei der Bildschirmauflsungen.")
		(set #SelectSettingsDirHelp
			(cat
				"Unser Vorschlag ist \"" #SettingsDefaultName "\"."
			)
		)
		(set #AskSettingsCopy "Es gibt schon so eine alte Datei mit Bildschirmauflsungen!\nWollen Sie die alte behalten?")
		(set #AskSettingsCopyHelp
			(cat
				"Achtung! Wenn Sie berschreiben whlen, dann werden die jetzigen Einstellungen "
				"mit den ausgelieferten berschrieben! Ihre alte Datei wird in " #_settingsname ".bak umbenannt."
			)
		)
		(set #Keep "Alte behalten")
		(set #Overwrite "Neue installieren")

	; Main
		(set #SelectMainDir "Wo sollen die anderen Dateien installiert werden?\nEin neues Verzeichnis mit Namen Picasso96 wird dort installiert.")
		(set #SelectMainDirHelp
			(cat
				"Dort werden ein paar Zubehrdateien installiert, die fr den alltglichen Betrieb nicht gebraucht werden."
				"Eine dazugehrende Zuweisung wird spter auch Ihrer User-Startup Datei hinzugefgt."
			)
		)

	; Copy
		(set #Picasso96HomeDir "Picasso96 Stammverzeichnis wird angelegt.")
		(set #Picasso96HomeDirHelp "Das angelegte Verzeichnis beherbergt das Zubehr.")
		(set #Picasso96Dir "Das Verzeichnis fr die Kartentreiber wird angelegt.")
		(set #Picasso96DirHelp "Dieses Verzeichnis wird die hardwarenahen Treiber sowie die rtg.library aufnehmen.")
		(set #CopyPicasso96 "Installation der Picasso96API.library Funktionsbibliothek.")
		(set #CopyPicasso96Help "Diese Bibliothek wird fr Picasso96-Anwendungen bentigt.")
		(set #CopyRtg "Installation des RTG Systems.")
		(set #CopyRtgHelp "Diese Funktionsbibliothek enthlt die Grafikfunktionserweiterungen.")
		(set #CopyFL "Installation der FastLayers Bibliothek.")
		(set #CopyFLHelp "Diese Funktionsbibliothek erhht die Geschwindigkeit der Bewegung von Fenstern.")
		(set #CopyPDT
			(cat "Es wird ein neuer picture.datatype nach SYS:Classes/Datatypes installiert. "
					"Ihr alter picture.dataype wird als SYS:Classes/Datatypes/picture.datatype.old "
					"gesichert. Der neue picture.datatype wird unbedingt bentigt. "
			)
		)
		(set #CopyPDTHelp
			(cat "Der Original-AmigaOS-V40-picture.datatype funktioniert nicht mit "
					"Grafikkarten. Hier wird ein neuer picture.datatype installiert, "
					"der zum alten voll kompatibel ist aber zustzlich mit "
					"Grafikkarten zusammenarbeitet. "
					"Ihr alter picture.dataype wird als SYS:Classes/Datatypes/picture.datatype.old "
					"gesichert. "
			)
		)
		(set #CopyCard "Installation des Hardwaretreibers fr %s.")
		(set #CopyCardHelp "Dieser Treiber wird fr mindestens eine der Karten dieses Typs bentigt.")
		(set #CopyMonitor "Installation der Monitordatei fr %s.")
		(set #CopyMonitorHelp "Dieser Treiber wird fr mindestens eine der Karten dieses Typs bentigt.")
		(set #MonitorToolType "Passe ToolTypes fr %s an.")
		(set #MonitorToolTypeHelp "Dieser Schritt konfiguriert den Monitortreiber.")
		(set #CopyChip "Installation des Chipsatztreibers fr %s.")
		(set #CopyChipHelp "Dieser Treiber wird fr mindestens eine Ihrer Grafikkarten bentigt.")

		(set #CopyPicasso96Mode "Installiere Picasso96Mode.")
		(set #CopyPicasso96ModeHelp "Picasso96Mode wird zum Anpassen der Auflsungen an Ihr System bentigt.")
		(set #Picasso96ModeIconType "Anpassung der ToolTypes und Iconposition von Picasso96Mode.")
		(set #Picasso96ModeIconTypeHelp "Die ToolTypes von Picasso96Mode werden entsprechend Ihrer Wahl des Dateinamens der Datei mit den Auflsungen gesetzt.")
	
		(set #CopyEmuLib "Installation der Emulationsbibliothek.")
		(set #CopyEmuLibHelp
			(cat
				"Diese Bibliothek wird bentigt, um Programme zu untersttzen, "
				"die fr andere Grafikkartensysteme geschrieben wurden."
			)
		)
	
		(set #CopyPicasso96API "Installiere Picasso96API.library")
		(set #CopyPicasso96APIHelp "Die Picasso96API.library wird fr Programme mit direkter Picasso96 Untersttzung bentigt.")
	
		(set #CopyApps "Installation des Zubehrs.")
		(set #CopyAppsHelp "In diesem Schritt werden Zubehrprogramme installiert.")

	; User-Startup
		(set #AddUserStartup "nderungen an User-Startup durchfhren.")
		(set #AddUserStartupHelp
			(cat
				"Eine Zuweisung \""
				#MainPath
				":\" wir Ihrer SYS:s/User-Startup Datei hinzugefgt. "
				"Diese wird hauptschlich zum Aktualisieren bentigt."
			)
		)
	
	; Install
		(set #Msg-Installing "Installiere Picasso96 System!")

	; Update
		(set #Msg-Updating "Aktualisierung Ihres Picasso96 Systems!")

	; Delete
		(set #Msg-Deleting "Entferne Ihre Picasso96 Installation!")
	
	; Install Drivers
		(set #CopyDrivers "\nMchten Sie die Applikationstreiber auf die Festplatte kopieren, um sie bei Bedarf von dort installieren zu knnen?")
		(set #CopyDriversHelp "Die Treiber werden in das Picasso96 Verzeichnis auf Ihrer Festplatte kopiert. Von dort knnen Sie diese Treiber dann individuell nach Bedarf installieren.")
		(set #MsgInstallFromHD "\nBitte installieren sie die Treiber fr die Anwendungen aus dem Picasso96 Verzeichnis oder von der Diskette.")
	)
)

;=============================================================================
; Procedures
;=============================================================================
(procedure P_InstallCard
	(
		(copylib
			(prompt (#CopyCard #_boardname))
			(help #CopyCardHelp)
			(source (tackon "libs/Picasso96/" (cat #_boardname ".card")))
			(dest #_libsPicasso96path)
			(confirm)
		)
		(set #_iconpath (tackon #_monitorpath #_boardname))
		(if
			(= 1 (exists #_iconpath))
			(
				; kind of update, keep icon
				(copylib
					(prompt (#CopyMonitor #_boardname))
					(help #CopyMonitorHelp)
					(source "devs/monitors/Picasso96")
					(dest #_monitorpath)
					(newname #_boardname)
					(confirm)
				)
				(tooltype
					(prompt (#MonitorToolType #_boardname))
					(help #MonitorToolTypeHelp)
					(dest #_iconpath)
					(settooltype "BoardType" #_boardname)
					(settooltype "SettingsFile" #_settingsname)
					(confirm)
				)
			)
			(
				; install new, copy with icon
				(copylib
					(prompt (#CopyMonitor #_boardname))
					(help #CopyMonitorHelp)
					(source "devs/monitors/Picasso96")
					(dest #_monitorpath)
					(newname #_boardname)
					(confirm)
					(infos)
				)
				(tooltype
					(prompt (#MonitorToolType #_boardname))
					(help #MonitorToolTypeHelp)
					(dest #_iconpath)
					(settooltype "(DisplayChain" "Yes)")
					(settooltype "IgnoreMask" "Yes")
					(settooltype "(SoftSprite" "Yes)")
					(settooltype "(BigSprite" "Yes)")
					(settooltype "(BorderBlank" "Yes)")
					(settooltype "SettingsFile" #_settingsname)
					(settooltype "BoardType" #_boardname)
					(noposition)
					(confirm)
				)
			)
		)
	)
)

(procedure P_InstallChip
	(copylib
		(prompt (#CopyChip #_chipname))
		(help #CopyChipHelp)
		(source (tackon "libs/Picasso96/" (cat #_chipname ".chip")))
		(dest #_libsPicasso96path)
		(confirm)
	)
)

;=============================================================================
; Install ...
;=============================================================================

(welcome #Message)

(message #StartupMsg1 (all))

(message #StartupMsg2 (all))

(set #_olduserlevel @user-level)
(user 1)
(if
	(askbool
		(prompt	#StartupMsg3)
		(help		#StartupHelp3)
	)
	(if
		(= @language "english")
		(
			(run "Copy Picasso96/Picasso96_english.guide RAM:" (safe))
			(run "SYS:Utilities/MultiView RAM:Picasso96_english.guide" (safe))
		)
		(
			(run "Copy Picasso96/Picasso96_deutsch.guide RAM:" (safe))
			(run "SYS:Utilities/MultiView RAM:Picasso96_deutsch.guide" (safe))
		)
	)
)
(user #_olduserlevel)

(if
	(< (getversion) (* #MinSysVersion 65536))
	(abort #Err-Bad-Kick)
)

(if
	(patmatch "68000|68010" (database "cpu"))
	(abort #Err-Bad-Cpu)
)

;*********************

(set #_installmode 0)

(if
	(= #_installmode 0)
	(
		;*********************
		; install
	
		;*********************
		; check boards
		
		(set #_boards 0)

		;*********************
		; CyberVision: mem:34/regs:35
		(set #_CyberVisionCnt (run "FindBoard 8512 34" (safe)))
		(if
			(> #_CyberVisionCnt 0)
			(set #_boards (BITOR #_boards 1))
		)

		;*********************
		; Domino: mem:1/regs:2
		(set #_DominoCnt (run "FindBoard 2167 1" (safe)))
		(if
			(> #_DominoCnt 0)
			(set #_boards (BITOR #_boards 2))
		)

		;*********************
		; Graffity: mem:33/regs:34
		(set #_GraffityCnt (run "FindBoard 2092 33" (safe)))
		(if
			(> #_GraffityCnt 0)
			(set #_boards (BITOR #_boards 4))
		)

		;*********************
		; Merlin: mem:3/regs:4
		(set #_MerlinCnt (run "FindBoard 2117 3" (safe)))
		(if
			(> #_MerlinCnt 0)
			(set #_boards (BITOR #_boards 8))
		)

		;*********************
		; oMniBus: there can only be one!
		(if
			(run "FindBoard 2181 0" (safe))
			(
				(set #_oMniBusCnt 1)
				(set #_boards (BITOR #_boards 16))
			)
		)

		;*********************
		; PicassoII: mem:11/regs:12
		(set #_PicassoIICnt (run "FindBoard 2167 11" (safe)))
		(if
			(> #_PicassoIICnt 0)
			(set #_boards (BITOR #_boards 32))
		)

		;*********************
		; PicassoIV: 21/22/23/24
		(set #_PicassoIVCnt (+ (run "FindBoard 2167 21" (safe)) (run "FindBoard 2167 24" (safe))))
		(if
			(> #_PicassoIVCnt 0)
			(set #_boards (BITOR #_boards 64))
		)

		;*********************
		; Piccolo: mem:5/regs:6
		(set #_PiccoloCnt (run "FindBoard 2195 5" (safe)))
		(if
			(> #_PiccoloCnt 0)
			(set #_boards (BITOR #_boards 128))
		)

		;*********************
		; PiccoloSD64: mem:10/regs:11
		(set #_PiccoloSD64Cnt (run "FindBoard 2195 10" (safe)))
		(if
			(> #_PiccoloSD64Cnt 0)
			(set #_boards (BITOR #_boards 128))
		)

		;*********************
		; Spectrum: mem:1/regs:2
		(set #_SpectrumCnt (run "FindBoard 2193 1" (safe)))
		(if
			(> #_SpectrumCnt 0)
			(set #_boards (BITOR #_boards 512))
		)

		;*********************
		; user selects boards

		(if
			(= 0 #_boards)
			(message #Warning-NoBoards)
		)

		(set #_boards
			(askoptions
				(prompt #AskBoards)
				(help #AskBoardsHelp)
				(choices
					"CyberVision 64"
					"Domino"
					"Graffity"
					"Merlin"
					"oMniBus"
					"Picasso II/II+"
					"Picasso IV"
					"Piccolo"
					"Piccolo SD64"
					"Spectrum"
				)
				(default #_boards)
			)
		)

		(set #_olduserlevel @user-level)
		(user 1)

		(set #_monitor
			(askchoice
				(prompt #AskMonitor)
				(help #AskMonitorHelp)
				(choices	#15kHzMonitor #31kHzMonitor #35kHzMonitor #38kHzMonitor
							#48kHzMonitor #57kHzMonitor #64kHzMonitor)
				(default 1)
			)
		)

        (user #_olduserlevel)

		(if
			(= #_boards 0)
			(abort #Err-No-Boards)
		)

		;*********************
		; get paths

		(if
			(askbool
				(prompt #AskLibPath)
				(help #AskLibPathHelp)
				(choices #AskLibPathLibs #AskLibPathUser)
			)
			(set #_libpath #LibsDefaultPath)
			(set #_libpath
				(askdir
					(prompt #SelectLibDir)
					(help #SelectLibDirHelp)
					(default #LibsDefaultPath)
				)
			)
		)

		(if
			(askbool
				(prompt #AskMonitorPath)
				(help #AskMonitorPathHelp)
				(choices #AskMonitorPathMonitors #AskMonitorPathUser)
			)
			(set #_monitorpath #MonitorsDefaultPath)
			(set #_monitorpath
				(askdir
					(prompt #SelectMonitorDir)
					(help #SelectMonitorDirHelp)
					(default #MonitorsDefaultPath)
				)
			)
		)

		(if
			(askbool
				(prompt #AskPrefsPath)
				(help #AskPrefsPathHelp)
				(choices #AskPrefsPathPrefs #AskPrefsPathUser)
			)
			(set #_prefspath #PrefsDefaultPath)
			(set #_prefspath
				(askdir
					(prompt #SelectPrefsDir)
					(help #SelectPrefsDirHelp)
					(default #PrefsDefaultPath)
				)
			)
		)

		(if
			(askbool
				(prompt #AskSettingsPath)
				(help #AskSettingsPathHelp)
				(choices #AskSettingsPathDevs #AskSettingsPathUser)
			)
			(set #_settingsname #SettingsDefaultName)
			(set #_settingsname
				(askdir
					(prompt #SelectSettingsDir)
					(help #SelectSettingsDirHelp)
					(default #SettingsDefaultName)
				)
			)
		)

		(set #_copysettings 1)
		(if
			(exists #_settingsname (noreq))
			(if
				(askbool
					(prompt #AskSettingsCopy)
					(help #AskSettingsCopyHelp)
					(choices #Keep #Overwrite)
				)
				(set #_copysettings 0)
				(set #_copysettings 2)
			)
		)

		(set #_mainpathroot
			(askdir
				(prompt #SelectMainDir)
				(help #SelectMainDirHelp)
				(default #MainDefaultPath)
				(newpath)
				(disk)
			)
		)
		(set #_mainpath (tackon #_mainpathroot #MainPath))
		
		(set #_copydrivers
			(askbool
				(prompt #CopyDrivers)
				(help #CopyDriversHelp)
			)
		)

		(set #_libsPicasso96path (tackon #_libpath "Picasso96"))

		;*********************
		; finally install...

		(working #Msg-Installing)

		; set application path to get install_log_file there
		(set @default-dest #_mainpath)

		; make applications directory (holds update/uninstall scripts, too)
		(if
			(= 0 (exists #_mainpath))
			(makedir #_mainpath
				(prompt #Picasso96HomeDir)
				(help #Picasso96HomeDirHelp)
				(confirm)
			)
		)

		; copy applications

		(copyfiles
			(prompt #CopyApps)
			(help #CopyAppsHelp)
			(source "Picasso96")
			(dest #_mainpath)
			(infos)
			(all)
		)


		; makedir libs/Picasso96
		(if
			(= 0 (exists #_libsPicasso96path))
			(makedir #_libsPicasso96path
				(prompt #Picasso96Dir)
				(help #Picasso96DirHelp)
				(confirm)
			)
		)

		; copy Picasso96API.library
		(copylib
			(prompt #CopyPicasso96API)
			(help #CopyPicasso96APIHelp)
			(source "libs/Picasso96API.library")
			(dest #_libpath)
			(confirm)
		)

		; copy rtg.library
		(copylib
			(prompt #CopyRtg)
			(help #CopyRtgHelp)
			(source "libs/Picasso96/rtg.library")
			(dest #_libsPicasso96path)
			(confirm)
		)

		; copy fastlayers.library
		(copylib
			(prompt #CopyFL)
			(help #CopyFLHelp)
			(source "libs/Picasso96/fastlayers.library")
			(dest #_libsPicasso96path)
			(confirm)
		)

		; copy picture.datatype
		(if
			(NOT(exists "SYS:Classes/Datatypes/picture.datatype.old"))
			(copyfiles
				(source "SYS:Classes/Datatypes/picture.datatype")
				(dest "SYS:Classes/Datatypes")
				(newname "picture.datatype.old")
			)
		)
		(copylib
			(prompt #CopyPDT)
			(help #CopyPDTHelp)
			(source "Classes/Datatypes/picture.datatype")
			(dest "SYS:Classes/Datatypes")
			(confirm)
		)

		; install chips

		(if
			(BITAND #_boards 1)
			(
				(set #_chipname "S3Trio64")
				(P_InstallChip)
			)
		)

		(if
			(BITAND #_boards (+ 2 16))
			(
				(set #_chipname "TsengET4000")
				(P_InstallChip)
			)
		)

		(if
			(BITAND #_boards (+ 8 16))
			(
				(set #_chipname "TsengET4000W32")
				(P_InstallChip)
			)
		)

		(if
			(BITAND #_boards (+ 4 32 128 512))
			(
				(set #_chipname "CirrusGD542X")
				(P_InstallChip)
			)
		)

		(if
			(BITAND #_boards 64)
			(
				(set #_chipname "CirrusGD5446")
				(P_InstallChip)
			)
		)

		(if
			(BITAND #_boards 256)
			(
				(set #_chipname "CirrusGD5434")
				(P_InstallChip)
			)
		)

		(if
			(BITAND #_boards 1)
			(
				(set #_boardname "CyberVision")
				(P_InstallCard)
			)
		)

		(if
			(BITAND #_boards 2)
			(
				(set #_boardname "Domino")
				(P_InstallCard)
			)
		)

		(if
			(BITAND #_boards 4)
			(
				(set #_boardname "Graffity")
				(P_InstallCard)
			)
		)

		(if
			(BITAND #_boards 8)
			(
				(set #_boardname "Merlin")
				(P_InstallCard)
			)
		)

		(if
			(BITAND #_boards 16)
			(
				(set #_boardname "oMniBus")
				(P_InstallCard)
			)
		)

		(if
			(BITAND #_boards 32)
			(
				(set #_boardname "PicassoII")
				(P_InstallCard)
			)
		)

		(if
			(BITAND #_boards 64)
			(
				(set #_boardname "PicassoIV")
				(P_InstallCard)
			)
		)

		(if
			(BITAND #_boards 128)
			(
				(set #_boardname "Piccolo")
				(P_InstallCard)
			)
		)

		(if
			(BITAND #_boards 256)
			(
				(set #_boardname "PiccoloSD64")
				(P_InstallCard)
			)
		)

		(if
			(BITAND #_boards 512)
			(
				(set #_boardname "Spectrum")
				(P_InstallCard)
			)
		)

		; copy Picasso96Mode
		(copylib
			(prompt #CopyPicasso96Mode)
			(help #CopyPicasso96ModeHelp)
			(source "Prefs/Picasso96Mode")
			(dest #_prefspath)
			(confirm)
			(infos)
		)
		(tooltype
			(prompt #Picasso96ModeIconType)
			(help #Picasso96ModeIconTypeHelp)
			(dest (tackon #_prefspath "Picasso96Mode"))
			(settooltype "SettingsFile" #_settingsname)
			(noposition)
			(confirm)
		)

		; backup old settings file
		(if
			(= #_copysettings 2)
			(copyfiles
				(prompt #CopySettings)
				(help #CopySettingsHelp)
				(source #_settingsname)
				(dest (pathonly #_settingsname))
				(confirm)
				(newname (cat (fileonly #_settingsname) ".bak"))
			)
		)
		; copy settings file
		(set #_settingssource
			(select #_monitor
				"devs/Picasso96Settings.15"
				"devs/Picasso96Settings.31"
				"devs/Picasso96Settings.35.5"
				"devs/Picasso96Settings.38"
				"devs/Picasso96Settings.48"
				"devs/Picasso96Settings.57"
				"devs/Picasso96Settings.64"
			)
		)
		(if
			(NOT (= #_copysettings 0))
			(copyfiles
				(prompt #CopySettings)
				(help #CopySettingsHelp)
				(source #_settingssource)
				(dest (pathonly #_settingsname))
				(confirm)
				(newname (fileonly #_settingsname))
			)
		)

		; copy emulation library
		(copylib
			(prompt #CopyEmuLib)
			(help #CopyEmuLibHelp)
			(source "libs/Picasso96/emulation.library")
			(dest #_libsPicasso96path)
			(confirm)
		)
		
		; modify user-startup
		(startup @app-name
			(prompt #AddUserStartup)
			(help #AddUserStartupHelp)
			(command (cat "Assign " #MainPath ": \"" #_mainpath "\""))
		)

		; copy drivers to harddisk
		(if
			(= #_copydrivers 1)
			(
				(copyfiles
					(source "drivers")
					(dest #_mainpath)
					(all)
				)
				(if
					(= 1 (exists (tackon #_mainpath "ShapeShifter")))
					(tooltype
						(prompt #DriversToolType)
						(help #DriversToolTypeHelp)
						(dest (tackon #_mainpath "ShapeShifter"))
						(noposition)
						(confirm)
					)
				)
				(if
					(= 1 (exists (tackon #_mainpath "ADPro")))
					(tooltype
						(prompt #DriversToolType)
						(help #DriversToolTypeHelp)
						(dest (tackon #_mainpath "ADPro"))
						(noposition)
						(confirm)
					)
				)
				(if
					(= 1 (exists (tackon #_mainpath "Photogenics")))
					(tooltype
						(prompt #DriversToolType)
						(help #DriversToolTypeHelp)
						(dest (tackon #_mainpath "Photogenics"))
						(noposition)
						(confirm)
					)
				)
				(if
					(= 1 (exists (tackon #_mainpath "XiPaint")))
					(tooltype
						(prompt #DriversToolType)
						(help #DriversToolTypeHelp)
						(dest (tackon #_mainpath "XiPaint"))
						(noposition)
						(confirm)
					)
				)
				(message
					#MsgInstallFromHD
					(all)
				)
			)
		)
	)
)
