<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://library.morph.zone/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=JPV</id>
		<title>MorphOS Library - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="https://library.morph.zone/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=JPV"/>
		<link rel="alternate" type="text/html" href="https://library.morph.zone/Special:Contributions/JPV"/>
		<updated>2026-04-22T18:11:26Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>https://library.morph.zone/index.php?title=Shell_Commands/Copy&amp;diff=4392</id>
		<title>Shell Commands/Copy</title>
		<link rel="alternate" type="text/html" href="https://library.morph.zone/index.php?title=Shell_Commands/Copy&amp;diff=4392"/>
				<updated>2026-04-20T10:51:58Z</updated>
		
		<summary type="html">&lt;p&gt;JPV: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Copy''' - Copies a source file or directory to another directory&lt;br /&gt;
&lt;br /&gt;
FROM/M, TO, PAT=PATTERN/K, BUF=BUFFER/K/N, ALL/S, DIRECT/S, &lt;br /&gt;
CLONE/S, DATES/S, NOPRO/S, PROX/S, COM=COMMENT/S, QUIET/S, NOREQ/S,                          &lt;br /&gt;
ERRWARN/S, MAKEDIR/S, MOVE/S, DELETE/S, HARD=HARDLINK/S,                             &lt;br /&gt;
SOFT=SOFTLINK/S, FOLNK=FORCELINK/S, FODEL=FORCEDELETE/S,                             &lt;br /&gt;
FOOVR=FORCEOVERWRITE/S,DONTOVR=DONTOVERWRITE/S,FORCE/S                               &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
FROM    - files or directory to copy.                                                &lt;br /&gt;
TO      - destination path-name or file&lt;br /&gt;
PATTERN - when FROM is a directory, only files matching this pattern&lt;br /&gt;
          will be copied.&lt;br /&gt;
BUFFER  - size of the buffer (multiple of 512 bytes)to use during the copy&lt;br /&gt;
ALL     - includes sub-directories if FROM is a directory&lt;br /&gt;
DIRECT  - copy file without any tests or options&lt;br /&gt;
CLONE   - keeps timestamp, comments, and protec. bits of the FROM file.&lt;br /&gt;
DATES   - the timestamp of the FROM file is copied to the TO file.&lt;br /&gt;
NOPRO   - The protection bits of the FROM file are not copied&lt;br /&gt;
          to the TO file. The TO file is given standard protection bits&lt;br /&gt;
          or r, w, e, and d.&lt;br /&gt;
PROX    - only copy X,S,P protection bits&lt;br /&gt;
COMMENT - the comments of the FROM file are copied to the TO file.&lt;br /&gt;
QUIET   - suppresses output messages/errors and requesters.&lt;br /&gt;
NOREQ   - errors such as disk full, or assign not existing will cause&lt;br /&gt;
          the display of a requester. Using this switch will remove them.&lt;br /&gt;
ERRWARN - do not proceed when one file failed.&lt;br /&gt;
MAKEDIR - produce directories.&lt;br /&gt;
MOVE    - delete source files after the copying successful.&lt;br /&gt;
DELETE  - do not copy but delete the source files.&lt;br /&gt;
HARD    - make a hardlink to source instead of copying.&lt;br /&gt;
SOFT    - make a sourcelink to source instead of copying.&lt;br /&gt;
FOLNK   - also makes links to directories.&lt;br /&gt;
FODEL   - delete protected files as well.&lt;br /&gt;
FOOVR   - also overwrites protected files.&lt;br /&gt;
DONTOVR - do not overwrite files if they already exist&lt;br /&gt;
FORCE   - DEPRECIATED: if files already exist and are write-protected,&lt;br /&gt;
          this option will force them to be overwritten&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Copy copies the file or directory specified with the FROM argument&lt;br /&gt;
to the file or directory specified by the TO argument.&lt;br /&gt;
You can copy several items at once by giving more than one name/pattern&lt;br /&gt;
in the FROM argument; they should be separated by spaces.&lt;br /&gt;
If the FROM argument is a pattern or consists of multiple names,&lt;br /&gt;
the TO argument must be a directory.&lt;br /&gt;
If a TO file name already exists, Copy overwrites the TO file with&lt;br /&gt;
the FROM file. You can use a pair of double quotation marks (&amp;quot;&amp;quot;)&lt;br /&gt;
to refer to the current directory. When used as the FROM argument,&lt;br /&gt;
&amp;quot;&amp;quot; copies all the files in the current directory.&lt;br /&gt;
Do not put any spaces between the double quotation marks.&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;Ram Disk:&amp;gt; Copy System: Work:System/ ALL CLONE QUIET&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Creates a backup of the whole System partition. The CLONE option preserves original file attributes and dates.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;Ram Disk:&amp;gt; Copy file.txt &amp;quot;file (copy).txt&amp;quot; DIRECT&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Creates a destination file using unrecommended characters, like wildcard characters, in the file name.&lt;/div&gt;</summary>
		<author><name>JPV</name></author>	</entry>

	<entry>
		<id>https://library.morph.zone/index.php?title=Shell_Commands/Copy&amp;diff=4391</id>
		<title>Shell Commands/Copy</title>
		<link rel="alternate" type="text/html" href="https://library.morph.zone/index.php?title=Shell_Commands/Copy&amp;diff=4391"/>
				<updated>2026-04-20T10:50:24Z</updated>
		
		<summary type="html">&lt;p&gt;JPV: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Copy''' - Copies a source file or directory to another directory&lt;br /&gt;
&lt;br /&gt;
FROM/M, TO, PAT=PATTERN/K, BUF=BUFFER/K/N, ALL/S, DIRECT/S, &lt;br /&gt;
CLONE/S, DATES/S, NOPRO/S, PROX/S, COM=COMMENT/S, QUIET/S, NOREQ/S,                          &lt;br /&gt;
ERRWARN/S, MAKEDIR/S, MOVE/S, DELETE/S, HARD=HARDLINK/S,                             &lt;br /&gt;
SOFT=SOFTLINK/S, FOLNK=FORCELINK/S, FODEL=FORCEDELETE/S,                             &lt;br /&gt;
FOOVR=FORCEOVERWRITE/S,DONTOVR=DONTOVERWRITE/S,FORCE/S                               &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
FROM    - files or directory to copy.                                                &lt;br /&gt;
TO      - destination path-name or file&lt;br /&gt;
PATTERN - when FROM is a directory, only files matching this pattern&lt;br /&gt;
          will be copied.&lt;br /&gt;
BUFFER  - size of the buffer (multiple of 512 bytes)to use during the copy&lt;br /&gt;
ALL     - includes sub-directories if FROM is a directory&lt;br /&gt;
DIRECT  - copy file without any tests or options&lt;br /&gt;
CLONE   - keeps timestamp, comments, and protec. bits of the FROM file.&lt;br /&gt;
DATES   - the timestamp of the FROM file is copied to the TO file.&lt;br /&gt;
NOPRO   - The protection bits of the FROM file are not copied&lt;br /&gt;
          to the TO file. The TO file is given standard protection bits&lt;br /&gt;
          or r, w, e, and d.&lt;br /&gt;
PROX    - only copy X,S,P protection bits&lt;br /&gt;
COMMENT - the comments of the FROM file are copied to the TO file.&lt;br /&gt;
QUIET   - suppresses output messages/errors and requesters.&lt;br /&gt;
NOREQ   - errors such as disk full, or assign not existing will cause&lt;br /&gt;
          the display of a requester. Using this switch will remove them.&lt;br /&gt;
ERRWARN - do not proceed when one file failed.&lt;br /&gt;
MAKEDIR - produce directories.&lt;br /&gt;
MOVE    - delete source files after the copying successful.&lt;br /&gt;
DELETE  - do not copy but delete the source files.&lt;br /&gt;
HARD    - make a hardlink to source instead of copying.&lt;br /&gt;
SOFT    - make a sourcelink to source instead of copying.&lt;br /&gt;
FOLNK   - also makes links to directories.&lt;br /&gt;
FODEL   - delete protected files as well.&lt;br /&gt;
FOOVR   - also overwrites protected files.&lt;br /&gt;
DONTOVR - do not overwrite files if they already exist&lt;br /&gt;
FORCE   - DEPRECIATED: if files already exist and are write-protected,&lt;br /&gt;
          this option will force them to be overwritten&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Copy copies the file or directory specified with the FROM argument&lt;br /&gt;
to the file or directory specified by the TO argument.&lt;br /&gt;
You can copy several items at once by giving more than one name/pattern&lt;br /&gt;
in the FROM argument; they should be separated by spaces.&lt;br /&gt;
If the FROM argument is a pattern or consists of multiple names,&lt;br /&gt;
the TO argument must be a directory.&lt;br /&gt;
If a TO file name already exists, Copy overwrites the TO file with&lt;br /&gt;
the FROM file. You can use a pair of double quotation marks (&amp;quot;&amp;quot;)&lt;br /&gt;
to refer to the current directory. When used as the FROM argument,&lt;br /&gt;
&amp;quot;&amp;quot; copies all the files in the current directory.&lt;br /&gt;
Do not put any spaces between the double quotation marks.&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;Ram Disk:&amp;gt; Copy System: Work:System/ ALL CLONE QUIET&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Creates a backup of the whole System partition. The CLONE option preserves original file attributes and dates.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;Ram Disk:&amp;gt; Copy file.txt &amp;quot;file (copy).txt&amp;quot; DIRECT&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Creates a destination file using non-recommended characters, like wildcard characters, in the file name.&lt;/div&gt;</summary>
		<author><name>JPV</name></author>	</entry>

	<entry>
		<id>https://library.morph.zone/index.php?title=Screenbar_Modules&amp;diff=4390</id>
		<title>Screenbar Modules</title>
		<link rel="alternate" type="text/html" href="https://library.morph.zone/index.php?title=Screenbar_Modules&amp;diff=4390"/>
				<updated>2026-04-10T10:50:43Z</updated>
		
		<summary type="html">&lt;p&gt;JPV: Updated the MorphOS Storage link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Screenbar modules are plugins which can populate the empty area on the screen title bar with some useful information and functionality. The modules are visible on every (MUI) [[Fundamentals_of_MorphOS#Screens | screen]], which makes them more useful than, for example, Panel Objects which are only seen on the Ambient screen and can be left under some other windows.&lt;br /&gt;
&lt;br /&gt;
Screenbar modules can be enabled and disabled from the screen depth gadget menu. The menu also contains options to arrange the order of the modules and to change their settings. The menu can be accessed by right clicking, or with a long left press, over the [[Fundamentals_of_MorphOS#Screen_Depth_Gadget | screen depth gadget]].&lt;br /&gt;
&lt;br /&gt;
Here is a list of the built-in modules and their characteristics.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Standard Modules ==&lt;br /&gt;
{|&lt;br /&gt;
|[[File:Sbar_Clock.png]]&amp;lt;br/&amp;gt;'''Clock'''&lt;br /&gt;
* A customizable string to show date-related values in every possible way.&lt;br /&gt;
* A left click opens a calendar window.&lt;br /&gt;
|style=&amp;quot;text-align:right;width:96px&amp;quot;|[[File:Sbar_Clock_calendar.png|96px]]&lt;br /&gt;
|style=&amp;quot;width:130px&amp;quot;|[[File:Sbar_Clock_settings.png|128px]]&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Sbar_CPU_Monitor.png]]&amp;lt;br/&amp;gt;'''CPU Monitor'''&lt;br /&gt;
* A CPU load graph with task filtering options.&lt;br /&gt;
* Double click opens the [[Utilities/TaskManager | Task Manager]] utility.&lt;br /&gt;
||&lt;br /&gt;
||[[File:Sbar_CPU_Monitor_settings.png|128px]]&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Sbar_Debug.png]]&amp;lt;br/&amp;gt;'''Debug'''&lt;br /&gt;
* Opens a debug menu with the left mouse click.&lt;br /&gt;
* &amp;quot;Show Log...&amp;quot; is a useful option to check if everything has behaved OK in your system.&lt;br /&gt;
|style=&amp;quot;text-align:right;&amp;quot;|[[File:Sbar_Debug_menu.png|96px]]&lt;br /&gt;
||[[File:Sbar_Debug_settings.png|128px]]&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Sbar_Drivelamps.png]]&amp;lt;br/&amp;gt;'''Drivelamps'''&lt;br /&gt;
* Shows activity lamps for any mass storage devices connected via IDE, SATA, USB, or SCSI.&lt;br /&gt;
* Separates reads and writes by different colors.&lt;br /&gt;
||&lt;br /&gt;
||[[File:Sbar_Drivelamps_settings.png|128px]]&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Sbar_Eject.png]]&amp;lt;br/&amp;gt;'''Eject'''&lt;br /&gt;
* Ejects and/or unmounts devices when clicked with the left mouse button.&lt;br /&gt;
* Ejects the CD drive if there isn't anything else to unmount, but otherwise gives an eject menu.&lt;br /&gt;
* Can unmount mounted ISO images, SMBFS mounts, Kryptos and other fileimages, USB drives, etc.&lt;br /&gt;
|style=&amp;quot;text-align:right;&amp;quot;|[[File:Sbar_Eject_menu.png|96px]]&lt;br /&gt;
||[[File:Sbar_Eject_settings.png|128px]]&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Sbar_Energy.png]]&amp;lt;br/&amp;gt;'''Energy'''&lt;br /&gt;
* Shows the battery charge on laptops.&lt;br /&gt;
* Double click opens an Energy Information window with detailed information about the battery and the current drain.&lt;br /&gt;
|style=&amp;quot;text-align:right;&amp;quot;|[[File:Sbar_Energy_window.png|96px]]&lt;br /&gt;
||[[File:Sbar_Energy_settings.png|128px]]&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Sbar_Grabber.png]]&amp;lt;br/&amp;gt;'''Grabber'''&lt;br /&gt;
* Grabs screenshots of screens, windows, or user defined areas of the screen.&lt;br /&gt;
* Opens a popup menu with the left mouse click.&lt;br /&gt;
* User defineable keyboard shortcuts for grabbing.&lt;br /&gt;
* Automatic naming of files.&lt;br /&gt;
|style=&amp;quot;text-align:right;&amp;quot;|[[File:Sbar_Grabber_menu.png|68px]]&lt;br /&gt;
||[[File:Sbar_Grabber_settings.png|128px]]&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Sbar_Graphicsmemory.png]]&amp;lt;br/&amp;gt;'''Graphicsmemory'''&lt;br /&gt;
* Shows the graphics memory usage.&lt;br /&gt;
* Can show the information as percentage or megabytes, and/or as a graphical gauge bar.&lt;br /&gt;
* Double click opens the [[Utilities/GraphicBoards | GraphicBoards]] utility.&lt;br /&gt;
||&lt;br /&gt;
||[[File:Sbar_Graphicsmemory_settings.png|128px]]&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Sbar_KeyInput.png]]&amp;lt;br/&amp;gt;'''Key input'''&lt;br /&gt;
* Can be used to select a keymap, open a [https://library.morph.zone/File:MorphOS_3.10_Screenbar_Keyinput.png virtual keyboard], or launch the [[Utilities/KeyExplorer | Key Explorer]] utility.&lt;br /&gt;
|style=&amp;quot;text-align:right;&amp;quot;|[[File:Sbar_KeyInput_menu.png|84px]]&lt;br /&gt;
||[[File:Sbar_KeyInput_settings.png|128px]]&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Sbar_Memory.png]]&amp;lt;br/&amp;gt;'''Memory'''&lt;br /&gt;
* Shows the usage of system RAM and/or graphics memory.&lt;br /&gt;
* Can show the information as percentages or megabytes, and/or as graphical gauge bars.&lt;br /&gt;
||&lt;br /&gt;
||[[File:Sbar_Memory_settings.png|128px]]&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Sbar_Network.png]]&amp;lt;br/&amp;gt;'''Netlamps'''&lt;br /&gt;
* Shows activity lamps for a network device.&lt;br /&gt;
* Double click opens the Network Statistics window with comprehensive information and graphs about the network traffic.&lt;br /&gt;
|style=&amp;quot;text-align:right;&amp;quot;|[[File:Sbar_Network_window.png|96px]]&lt;br /&gt;
||[[File:Sbar_Network_settings.png|128px]]&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Sbar_Preferences.png]]&amp;lt;br/&amp;gt;'''Preferences'''&lt;br /&gt;
* Contains shortcuts to all Ambient, System, and MUI settings.&lt;br /&gt;
* User selectable favourites.&lt;br /&gt;
|style=&amp;quot;text-align:right;&amp;quot;|[[File:Sbar_Preferences_menu.png|76px]]&lt;br /&gt;
||[[File:Sbar_Preferences_settings.png|128px]]&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Sbar_Thermal.png]]&amp;lt;br/&amp;gt;'''Thermal'''&lt;br /&gt;
* Monitors the temperature sensors.&lt;br /&gt;
* Can show or cycle between CPU, NorthBridge, GPU, and Trackpad sensors.&lt;br /&gt;
||&lt;br /&gt;
||[[File:Sbar_Thermal_settings.png|128px]]&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Sbar_Titlebar.png]]&amp;lt;br/&amp;gt;'''Titlebar'''&lt;br /&gt;
* The screen title works as a screenbar module too, although it's always enabled.&lt;br /&gt;
* Can be configured to show much more than just the original information. For example memory and battery information, contents of ENV variables, etc.&lt;br /&gt;
||&lt;br /&gt;
||[[File:Sbar_Titlebar_settings.png|128px]]&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Sbar_Volume.png]]&amp;lt;br/&amp;gt;'''Volume'''&lt;br /&gt;
* Controls the audio output volume.&lt;br /&gt;
* Using the mouse wheel over the module adjusts the volume and a left mouse click opens the volume slider.&lt;br /&gt;
* Pressing the alt key while clicking on the module will launch the Mixer program.&lt;br /&gt;
* The &amp;quot;Save mixer settings&amp;quot; setting defines if the volume level is saved permanently every time you change it.&lt;br /&gt;
|style=&amp;quot;text-align:right;&amp;quot;|[[File:Sbar_Volume_menu.png|37px]]&lt;br /&gt;
||[[File:Sbar_Volume_settings.png|128px]]&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Sbar_Wireless.png]]&amp;lt;br/&amp;gt;'''Wireless'''&lt;br /&gt;
* Shows the wireless network status.&lt;br /&gt;
* A left mouse click scans for nearby WLANs and shows the results in a popup menu when the scanning is complete.&lt;br /&gt;
||&lt;br /&gt;
|style=&amp;quot;text-align:right;&amp;quot;|[[File:Sbar_Wireless_menu.png|108px]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Run Time Modules ==&lt;br /&gt;
These screenbar modules are only shown in runtime with certain programs.&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
|[[File:Sbar_Ambient_SoundPlayer.png]]&amp;lt;br/&amp;gt;'''Ambient SoundPlayer'''&lt;br /&gt;
* Shown if an audio file is played with the Ambient's internal sound player.&lt;br /&gt;
* Can be used to pause or stop (quit) the playback.&lt;br /&gt;
* Shows the filename in a text scroller.&lt;br /&gt;
|style=&amp;quot;height:128px;&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Sbar_Jukebox_small.png]] [[File:Sbar_Jukebox_wide.png]]&amp;lt;br/&amp;gt;'''Jukebox'''&lt;br /&gt;
* The [[Utilities/Jukebox | Jukebox]] music player has two options for a screenbar module: small and wide.&lt;br /&gt;
* Both modules give a control menu when clicked with the left mouse button.&lt;br /&gt;
* Jukebox's volume setting can be adjusted with the mouse wheel over the module.&lt;br /&gt;
* The wide module has control buttons and a fully configurable text scroller.&lt;br /&gt;
|style=&amp;quot;text-align:right;&amp;quot;|[[File:Sbar_Jukebox_small_menu.png|70px]]&lt;br /&gt;
||[[File:Sbar_Jukebox_settings.png|128px]]&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Sbar_ZVNC.png]]&amp;lt;br/&amp;gt;'''ZVNC'''&lt;br /&gt;
* The [[Applications/ZVNC | ZVNC]] application creates a screenbar module with a popup menu for controlling it.&lt;br /&gt;
|style=&amp;quot;height:111px;&amp;quot;|&lt;br /&gt;
|style=&amp;quot;text-align:right;&amp;quot;|[[File:Sbar_ZVNC_menu.png|70px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 3rd Party Modules ==&lt;br /&gt;
&lt;br /&gt;
3rd party modules should always be installed in the SYS:Classes/Screenbar directory. The Modules-&amp;gt;Rescan option from the screen depth menu activates the newly installed modules without a reboot.&lt;br /&gt;
&lt;br /&gt;
There's a good amount of 3rd party modules ranging from small funny gadgets to more serious and informative ones, and they can be found for example [https://www.morphos-storage.net/?page=Ambient/Screenbar here].&lt;/div&gt;</summary>
		<author><name>JPV</name></author>	</entry>

	<entry>
		<id>https://library.morph.zone/index.php?title=Advanced_Topics&amp;diff=4389</id>
		<title>Advanced Topics</title>
		<link rel="alternate" type="text/html" href="https://library.morph.zone/index.php?title=Advanced_Topics&amp;diff=4389"/>
				<updated>2026-02-04T10:22:46Z</updated>
		
		<summary type="html">&lt;p&gt;JPV: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;*[[Writing Custom Startup Code]]&lt;br /&gt;
*[[Vfork_and_fork_with_ixemul | vfork and fork with ixemul]]&lt;/div&gt;</summary>
		<author><name>JPV</name></author>	</entry>

	<entry>
		<id>https://library.morph.zone/index.php?title=Vfork_and_fork_with_ixemul&amp;diff=4388</id>
		<title>Vfork and fork with ixemul</title>
		<link rel="alternate" type="text/html" href="https://library.morph.zone/index.php?title=Vfork_and_fork_with_ixemul&amp;diff=4388"/>
				<updated>2026-02-04T10:19:38Z</updated>
		
		<summary type="html">&lt;p&gt;JPV: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''Originally published at: https://morph.zone/modules/newbb_plus/viewtopic.php?topic_id=14169&amp;amp;forum=12''&lt;br /&gt;
&lt;br /&gt;
''Author: Harry Sintonen''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Contrary to some misconceptions '''ixemul.library''' does have a working ''vfork()'', and assisted ''fork()''.&lt;br /&gt;
&lt;br /&gt;
==vfork==&lt;br /&gt;
Generally ''vfork()'' should be directly usable in situations where ''fork()'' + ''exec*()'' is used. In this case ''vfork()'' can used instead. Any potential ''exit()'' calls in the child code path should be replaced with ''_exit()''.&lt;br /&gt;
&lt;br /&gt;
==fork==&lt;br /&gt;
Replacing ''fork()'' is doable, but might require significant work. First, the application and all its dependencies should be built with '''-mresident32''' flag. The application must manually duplicate the context at the time of the ''fork()'' call by doing the following:&lt;br /&gt;
#Perform the first part of the fork by calling ''ix_vfork()''. A new child is spawned and the parent's execution is paused. pid == 0 indicates child codepath, the parent will get returned the pid of the child.&lt;br /&gt;
#In child: Duplicate static data segment and initialize the child memory allocator and other internal structures: ''ix_vfork_setup_child();''&lt;br /&gt;
#In child: copy the parent's state to the child. Generally this requires use of static variables to relay values over to the child. Any ''malloc()'' memory and local variables and structures that are used by the child must be cloned before the parent is let to continue. This always requires manual work to construct the necessary code to perform the state cloning, as each use of ''fork()'' is unique in regards of what state is present and how the child will be using it after the call.&lt;br /&gt;
#In child: Indicate that parent can continue with ''ix_vfork_resume();''&lt;br /&gt;
&lt;br /&gt;
At this stage both parent and child are executing the same code segment, concurrently. Both have their own copies of static variables and can use them freely.&lt;br /&gt;
&lt;br /&gt;
If everything is done correctly this works fine. It is successfully used by for example the ixemul shell (pdksh).&lt;/div&gt;</summary>
		<author><name>JPV</name></author>	</entry>

	<entry>
		<id>https://library.morph.zone/index.php?title=Vfork_and_fork_with_ixemul&amp;diff=4387</id>
		<title>Vfork and fork with ixemul</title>
		<link rel="alternate" type="text/html" href="https://library.morph.zone/index.php?title=Vfork_and_fork_with_ixemul&amp;diff=4387"/>
				<updated>2026-02-04T10:18:51Z</updated>
		
		<summary type="html">&lt;p&gt;JPV: Created page with &amp;quot;''Originally published at: https://morph.zone/modules/newbb_plus/viewtopic.php?topic_id=14169&amp;amp;forum=12''  ''Author: Harry Sintonen''   Contrary to some misconceptions '''ixemu...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''Originally published at: https://morph.zone/modules/newbb_plus/viewtopic.php?topic_id=14169&amp;amp;forum=12''&lt;br /&gt;
&lt;br /&gt;
''Author: Harry Sintonen''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Contrary to some misconceptions '''ixemul.library''' does have a working vfork(), and assisted fork().&lt;br /&gt;
&lt;br /&gt;
==vfork==&lt;br /&gt;
Generally ''vfork()'' should be directly usable in situations where ''fork()'' + ''exec*()'' is used. In this case ''vfork()'' can used instead. Any potential ''exit()'' calls in the child code path should be replaced with ''_exit()''.&lt;br /&gt;
&lt;br /&gt;
==fork==&lt;br /&gt;
Replacing ''fork()'' is doable, but might require significant work. First, the application and all its dependencies should be built with '''-mresident32''' flag. The application must manually duplicate the context at the time of the ''fork()'' call by doing the following:&lt;br /&gt;
#Perform the first part of the fork by calling ''ix_vfork()''. A new child is spawned and the parent's execution is paused. pid == 0 indicates child codepath, the parent will get returned the pid of the child.&lt;br /&gt;
#In child: Duplicate static data segment and initialize the child memory allocator and other internal structures: ''ix_vfork_setup_child();''&lt;br /&gt;
#In child: copy the parent's state to the child. Generally this requires use of static variables to relay values over to the child. Any ''malloc()'' memory and local variables and structures that are used by the child must be cloned before the parent is let to continue. This always requires manual work to construct the necessary code to perform the state cloning, as each use of ''fork()'' is unique in regards of what state is present and how the child will be using it after the call.&lt;br /&gt;
#In child: Indicate that parent can continue with ''ix_vfork_resume();''&lt;br /&gt;
&lt;br /&gt;
At this stage both parent and child are executing the same code segment, concurrently. Both have their own copies of static variables and can use them freely.&lt;br /&gt;
&lt;br /&gt;
If everything is done correctly this works fine. It is successfully used by for example the ixemul shell (pdksh).&lt;/div&gt;</summary>
		<author><name>JPV</name></author>	</entry>

	<entry>
		<id>https://library.morph.zone/index.php?title=Shell_Commands/Date&amp;diff=4386</id>
		<title>Shell Commands/Date</title>
		<link rel="alternate" type="text/html" href="https://library.morph.zone/index.php?title=Shell_Commands/Date&amp;diff=4386"/>
				<updated>2026-02-03T18:25:49Z</updated>
		
		<summary type="html">&lt;p&gt;JPV: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Date''' - Displays or sets the date and time of the system&lt;br /&gt;
&lt;br /&gt;
DAY, DATE, TIME, TO=VER/K&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
DAY     - sets the day to DAY                                                  &lt;br /&gt;
DATE    - sets the date to DATE&lt;br /&gt;
TIME    - sets the time to TIME&lt;br /&gt;
TO      - sets the date to that of the TO file&lt;br /&gt;
LFORMAT - defines a string to specially format the output&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Date with no argument displays the currently set system time and date,&lt;br /&gt;
including the day of the week. Time is displayed using a 24-hour clock.&lt;br /&gt;
&lt;br /&gt;
Date DATE sets only the date. The format for entry and display of DATE&lt;br /&gt;
is DD-MMM-YY (day-month-year). The hyphens between the arguments&lt;br /&gt;
are required. A leading zero in the date is not necessary.&lt;br /&gt;
The number or the first three letters of the month (in English)&lt;br /&gt;
must be used, as well as the last two digits of the year.&lt;br /&gt;
&lt;br /&gt;
The LFORMAT option modifies the output of Date. The available substitution operators are:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
%a - Abbreviated weekday name&lt;br /&gt;
%A - Weekday name&lt;br /&gt;
%b - Abbreviated month name&lt;br /&gt;
%B - Month name&lt;br /&gt;
%c - The same as &amp;quot;%a %b %d %H:%M:%S %Y&amp;quot;&lt;br /&gt;
%C - The same as &amp;quot;%a %b %e %T %Y&amp;quot;&lt;br /&gt;
%d - Day number with leading zeros&lt;br /&gt;
%D - The same as &amp;quot;%m/%d/%y&amp;quot;&lt;br /&gt;
%e - Day number with leading spaces&lt;br /&gt;
%F - The same as &amp;quot;%Y-%m-%d&amp;quot;&lt;br /&gt;
%h - Abbreviated month name&lt;br /&gt;
%H - Hour using 24 hour style with leading zeros&lt;br /&gt;
%I - Hour using 12 hour style with leading zeros&lt;br /&gt;
%j - Julian date&lt;br /&gt;
%m - Month number with leading zeros&lt;br /&gt;
%M - The number of minutes with leading zeros&lt;br /&gt;
%n - Linefeed&lt;br /&gt;
%p - AM or PM string in upper- or lowercase depending on the country selection&lt;br /&gt;
%P - &amp;quot;%p&amp;quot; in lowercase&lt;br /&gt;
%q - Hour using 24 hour style&lt;br /&gt;
%Q - Hour using 12 hour style&lt;br /&gt;
%r - The same as &amp;quot;%I:%M:%S %p&amp;quot;&lt;br /&gt;
%R - The same as &amp;quot;%H:%M&amp;quot;&lt;br /&gt;
%S - The number of seconds with leading zeros&lt;br /&gt;
%t - Tab&lt;br /&gt;
%T - The same as &amp;quot;%H:%M:%S&amp;quot;&lt;br /&gt;
%U - The week number, taking Sunday as the first day of the week&lt;br /&gt;
%w - The weekday number&lt;br /&gt;
%W - The week number, taking Monday as the first day of the week&lt;br /&gt;
%x - The same as &amp;quot;%m/%d/%y&amp;quot;&lt;br /&gt;
%X - The same as &amp;quot;%H:%M:%S&amp;quot;&lt;br /&gt;
%y - The year using two digits with leading zeros&lt;br /&gt;
%Y - The year using four digits with leading zeros&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
Ram Disk:&amp;gt; Date LFORMAT=&amp;quot;Today is %A.&amp;quot;&lt;br /&gt;
Today is Tuesday.&amp;lt;/nowiki&amp;gt;&lt;/div&gt;</summary>
		<author><name>JPV</name></author>	</entry>

	<entry>
		<id>https://library.morph.zone/index.php?title=Shell_Commands/Date&amp;diff=4385</id>
		<title>Shell Commands/Date</title>
		<link rel="alternate" type="text/html" href="https://library.morph.zone/index.php?title=Shell_Commands/Date&amp;diff=4385"/>
				<updated>2026-02-03T13:28:02Z</updated>
		
		<summary type="html">&lt;p&gt;JPV: Added the LFORMAT option&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Date''' - Displays or sets the date and time of the system&lt;br /&gt;
&lt;br /&gt;
DAY, DATE, TIME, TO=VER/K&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
DAY     - sets the day to DAY                                                  &lt;br /&gt;
DATE    - sets the date to DATE&lt;br /&gt;
TIME    - sets the time to TIME&lt;br /&gt;
TO      - sets the date to that of the TO file&lt;br /&gt;
LFORMAT - defines a string to specially format the output&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Date with no argument displays the currently set system time and date,&lt;br /&gt;
including the day of the week. Time is displayed using a 24-hour clock.&lt;br /&gt;
&lt;br /&gt;
Date DATE sets only the date. The format for entry and display of DATE&lt;br /&gt;
is DD-MMM-YY (day-month-year). The hyphens between the arguments&lt;br /&gt;
are required. A leading zero in the date is not necessary.&lt;br /&gt;
The number or the first three letters of the month (in English)&lt;br /&gt;
must be used, as well as the last two digits of the year.&lt;br /&gt;
&lt;br /&gt;
The LFORMAT option modifies the output of Date. The available substitution operators are:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
%a - Abbreviated weekday name&lt;br /&gt;
%A - Weekday name&lt;br /&gt;
%b - Abbreviated month name&lt;br /&gt;
%B - Month name&lt;br /&gt;
%c - The same as &amp;quot;%a %b %d %H:%M:%S %Y&amp;quot;&lt;br /&gt;
%C - The same as &amp;quot;%a %b %e %T %Y&amp;quot;&lt;br /&gt;
%d - Day number with leading zeros&lt;br /&gt;
%D - The same as &amp;quot;%m/%d/%y&amp;quot;&lt;br /&gt;
%e - Day number with leading spaces&lt;br /&gt;
%F - The same as &amp;quot;%Y-%m-%d&amp;quot;&lt;br /&gt;
%h - Abbreviated month name&lt;br /&gt;
%H - Hour using 24 hour style with leading zeros&lt;br /&gt;
%I - Hour using 12 hour style with leading zeros&lt;br /&gt;
%j - Julian date&lt;br /&gt;
%m - Month number with leading zeros&lt;br /&gt;
%M - The number of minutes with leading zeros&lt;br /&gt;
%n - Linefeed&lt;br /&gt;
%p - AM or PM string&lt;br /&gt;
%P - am or pm string&lt;br /&gt;
%q - Hour using 24 hour style&lt;br /&gt;
%Q - Hour using 12 hour style&lt;br /&gt;
%r - The same as &amp;quot;%I:%M:%S %p&amp;quot;&lt;br /&gt;
%R - The same as &amp;quot;%H:%M&amp;quot;&lt;br /&gt;
%S - The number of seconds with leading zeros&lt;br /&gt;
%t - Tab&lt;br /&gt;
%T - The same as &amp;quot;%H:%M:%S&amp;quot;&lt;br /&gt;
%U - The week number, taking Sunday as the first day of the week&lt;br /&gt;
%w - The weekday number&lt;br /&gt;
%W - The week number, taking Monday as the first day of the week&lt;br /&gt;
%x - The same as &amp;quot;%m/%d/%y&amp;quot;&lt;br /&gt;
%X - The same as &amp;quot;%H:%M:%S&amp;quot;&lt;br /&gt;
%y - The year using two digits with leading zeros&lt;br /&gt;
%Y - The year using four digits with leading zeros&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
Ram Disk:&amp;gt; Date LFORMAT=&amp;quot;Today is %A.&amp;quot;&lt;br /&gt;
Today is Tuesday.&amp;lt;/nowiki&amp;gt;&lt;/div&gt;</summary>
		<author><name>JPV</name></author>	</entry>

	<entry>
		<id>https://library.morph.zone/index.php?title=Crash_Course_to_Hollywood_Programming/Example_3_-_System-Friendly_GUI&amp;diff=4384</id>
		<title>Crash Course to Hollywood Programming/Example 3 - System-Friendly GUI</title>
		<link rel="alternate" type="text/html" href="https://library.morph.zone/index.php?title=Crash_Course_to_Hollywood_Programming/Example_3_-_System-Friendly_GUI&amp;diff=4384"/>
				<updated>2026-01-17T10:33:32Z</updated>
		
		<summary type="html">&lt;p&gt;JPV: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== System-Friendly GUI Example ==&lt;br /&gt;
=== Preface ===&lt;br /&gt;
Standard Hollywood applications are somewhat limited when implementing GUI functionality into them. System menus and all kinds of&lt;br /&gt;
requesters can be made, but if you want buttons or other GUI elements inside the Hollywood display, you have to draw them with&lt;br /&gt;
your own graphics and handle them in custom ways.&lt;br /&gt;
&lt;br /&gt;
But luckily Hollywood has a powerful cross-platform plugin system, and there are many nice plugins [http://www.hollywood-mal.com/docs/html/hollywood/PluginsObtaining_.html available] for it. Some of the&lt;br /&gt;
most impressive ones are [http://forums.hollywood-mal.com/viewtopic.php?f=19&amp;amp;t=618 MUI Royale] and [http://forums.hollywood-mal.com/viewtopic.php?f=19&amp;amp;t=1381 RapaGUI] plugins, which can be used to create native system-friendly GUIs for applications.&lt;br /&gt;
Both are official plugins by the author of Hollywood, and thus well supported and [http://www.hollywood-mal.com/help.html documented].&lt;br /&gt;
&lt;br /&gt;
'''MUI Royale''', as its name suggests, allows you to create MUI GUIs for Amiga compatible platforms. '''RapaGUI''', on the other hand, is a&lt;br /&gt;
beast at its own level, because it allows you to create GUIs that work on several completely different platforms using the&lt;br /&gt;
underlying GUI toolkit on each platform. Be it Windows, Linux, Mac, or Amiga compatible, you just write one GUI definition and&lt;br /&gt;
it'll work on every OS without modifications. When you run a RapaGUI application, it will look and feel just like other&lt;br /&gt;
programs on each platform, because it uses MUI on Amiga compatibles, GTK on Linux, and so on.&lt;br /&gt;
&lt;br /&gt;
Both MUI Royale and RapaGUI are very similar - the definition of a GUI is created by writing an '''XML''' file, which is then included into your&lt;br /&gt;
Hollywood program. The following example is made with MUI Royale, because we are now focusing on Hollywood programming under&lt;br /&gt;
MorphOS, and MUI Royale offers a bit more operating system specific features than the more generic RapaGUI. In any case, when you&lt;br /&gt;
have learned one of these, it's easy to jump to the other too.&lt;br /&gt;
&lt;br /&gt;
The most important thing to learn now is to look at information about [http://www.hollywood-mal.com/docs/html/muiroyale/Applicability_.html applicability] in the [http://www.hollywood-mal.com/docs/html/muiroyale/ documentation]. Every available&lt;br /&gt;
object attribute has its applicability described on its documentation page. Applicability is simply marked with four letters: I, S, G,&lt;br /&gt;
and N. If there's '''I''', you can use the attribute at initialization, which means it can be used when writing the XML file.&lt;br /&gt;
'''S''' (set value of a MUI object attribute) and '''G''' (get value of a MUI object attribute) can be used from the actual Hollywood script&lt;br /&gt;
at runtime. '''N''' can be used in both to handle notifications of attributes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== XML File ===&lt;br /&gt;
==== Source Code ====&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;iso-8859-1&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;application base=&amp;quot;HWEXAMPLE&amp;quot; id=&amp;quot;app&amp;quot; dropobject=&amp;quot;disp&amp;quot; icon=&amp;quot;muiexample.info&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;menustrip id=&amp;quot;examplemenustrip&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;menu title=&amp;quot;Project&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;item id=&amp;quot;menu_about&amp;quot; notify=&amp;quot;selected&amp;quot;&amp;gt;About...&amp;lt;/item&amp;gt;&lt;br /&gt;
            &amp;lt;item id=&amp;quot;menu_about_mui&amp;quot; notify=&amp;quot;selected&amp;quot;&amp;gt;About MUI...&amp;lt;/item&amp;gt;&lt;br /&gt;
            &amp;lt;item id=&amp;quot;menu_about_muiroyale&amp;quot; notify=&amp;quot;selected&amp;quot;&amp;gt;About MUI Royale...&amp;lt;/item&amp;gt;&lt;br /&gt;
            &amp;lt;item/&amp;gt;&lt;br /&gt;
            &amp;lt;item id=&amp;quot;menu_quit&amp;quot; notify=&amp;quot;selected&amp;quot; shortcut=&amp;quot;Q&amp;quot;&amp;gt;Quit&amp;lt;/item&amp;gt;&lt;br /&gt;
        &amp;lt;/menu&amp;gt;&lt;br /&gt;
        &amp;lt;menu title=&amp;quot;Settings&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;item id=&amp;quot;menu_muisettings&amp;quot; notify=&amp;quot;selected&amp;quot;&amp;gt;MUI...&amp;lt;/item&amp;gt;&lt;br /&gt;
        &amp;lt;/menu&amp;gt;&lt;br /&gt;
    &amp;lt;/menustrip&amp;gt;&lt;br /&gt;
    &amp;lt;window id=&amp;quot;win&amp;quot; muiid=&amp;quot;MAIN&amp;quot; title=&amp;quot;Hollywood MUI Example&amp;quot; screentitle=&amp;quot;Hollywood MUI Example 1.0&amp;quot; notify=&amp;quot;closerequest&amp;quot; menustrip=&amp;quot;examplemenustrip&amp;quot; appwindow=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;vgroup&amp;gt;&lt;br /&gt;
            &amp;lt;hgroup&amp;gt;&lt;br /&gt;
                &amp;lt;button id=&amp;quot;button1&amp;quot; notify=&amp;quot;pressed&amp;quot; cyclechain=&amp;quot;true&amp;quot; shorthelp=&amp;quot;Displays brush 1&amp;quot;&amp;gt;Brush _1&amp;lt;/button&amp;gt;&lt;br /&gt;
                &amp;lt;button id=&amp;quot;button2&amp;quot; notify=&amp;quot;pressed&amp;quot; cyclechain=&amp;quot;true&amp;quot; shorthelp=&amp;quot;Displays brush 2&amp;quot;&amp;gt;Brush _2&amp;lt;/button&amp;gt;&lt;br /&gt;
            &amp;lt;/hgroup&amp;gt;&lt;br /&gt;
            &amp;lt;hgroup&amp;gt;&lt;br /&gt;
                &amp;lt;button id=&amp;quot;button_random&amp;quot; notify=&amp;quot;pressed&amp;quot; cyclechain=&amp;quot;false&amp;quot; shorthelp=&amp;quot;Displays a random brush&amp;quot;&amp;gt;_Random&amp;lt;/button&amp;gt;&lt;br /&gt;
                &amp;lt;rectangle/&amp;gt;&lt;br /&gt;
                &amp;lt;text id=&amp;quot;clock&amp;quot; preparse=&amp;quot;\33r&amp;quot;&amp;gt;00:00:00&amp;lt;/text&amp;gt;&lt;br /&gt;
            &amp;lt;/hgroup&amp;gt;&lt;br /&gt;
            &amp;lt;hollywood id=&amp;quot;disp&amp;quot; display=&amp;quot;1&amp;quot; minwidth=&amp;quot;32&amp;quot; minheight=&amp;quot;32&amp;quot; maxwidth=&amp;quot;16384&amp;quot; maxheight=&amp;quot;16384&amp;quot; notify=&amp;quot;appmessage&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/vgroup&amp;gt;&lt;br /&gt;
    &amp;lt;/window&amp;gt;&lt;br /&gt;
&amp;lt;/application&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Description ====&lt;br /&gt;
Let's have a look at the '''XML file''' first. Create a text file and save it as '''muigui.xml'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;iso-8859-1&amp;quot;?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is a standard XML prologue line, and the file should start with it. ISO-8859-1 might be a safer bet than UTF-8 in our case.&lt;br /&gt;
Version means the version of the XML markup language, not the application version. Just copy and paste this line as is.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;application base=&amp;quot;HWEXAMPLE&amp;quot; id=&amp;quot;app&amp;quot; dropobject=&amp;quot;disp&amp;quot; icon=&amp;quot;muiexample.info&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The application object is the master object, and all other definitions should be under it in the [http://www.hollywood-mal.com/docs/html/muiroyale/ApplicationTree_.html object tree].&lt;br /&gt;
&lt;br /&gt;
The [http://www.hollywood-mal.com/docs/html/muiroyale/ApplicationBase_.html base] attribute (applicability IG) is important here, because it defines what name is used when saving MUI preferences and it's also used when&lt;br /&gt;
creating an ARexx port for the application. Don't use spaces or special characters, and try to pick a unique name that won't be&lt;br /&gt;
used by other programs.&lt;br /&gt;
&lt;br /&gt;
The [http://www.hollywood-mal.com/docs/html/muiroyale/NotifyID_.html id] attribute (I) is needed for every object you plan to access later from the Hollwood script. It's good to have it set for the&lt;br /&gt;
application object too.&lt;br /&gt;
&lt;br /&gt;
The last two attributes are pretty much optional, but let's have them as examples, because they're quite useful in general. The&lt;br /&gt;
[http://www.hollywood-mal.com/docs/html/muiroyale/ApplicationDropObject_.html dropobject] attribute (IS) defines which object gets notified if you drag and drop a file onto its appicon. In this case the object&lt;br /&gt;
called &amp;quot;disp&amp;quot;, which we'll define later, gets the notification.&lt;br /&gt;
&lt;br /&gt;
A program's application icon can be defined with the [http://www.hollywood-mal.com/docs/html/muiroyale/ApplicationIcon_.html icon] attribute (I). Without a path it takes the file from the directory the program&lt;br /&gt;
was launched from.&lt;br /&gt;
&lt;br /&gt;
As you can see, all of these attributes have I in their applicability information. When you browse the documentation and look for new&lt;br /&gt;
attributes or how to do things, applicability tells if you can use them in the XML file or during the program execution.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
     &amp;lt;menustrip id=&amp;quot;examplemenustrip&amp;quot;&amp;gt;&lt;br /&gt;
         &amp;lt;menu title=&amp;quot;Project&amp;quot;&amp;gt;&lt;br /&gt;
             &amp;lt;item id=&amp;quot;menu_about&amp;quot; notify=&amp;quot;selected&amp;quot;&amp;gt;About...&amp;lt;/item&amp;gt;&lt;br /&gt;
             &amp;lt;item id=&amp;quot;menu_about_mui&amp;quot; notify=&amp;quot;selected&amp;quot;&amp;gt;About MUI...&amp;lt;/item&amp;gt;&lt;br /&gt;
             &amp;lt;item id=&amp;quot;menu_about_muiroyale&amp;quot; notify=&amp;quot;selected&amp;quot;&amp;gt;About MUI Royale...&amp;lt;/item&amp;gt;&lt;br /&gt;
             &amp;lt;item/&amp;gt;&lt;br /&gt;
             &amp;lt;item id=&amp;quot;menu_quit&amp;quot; notify=&amp;quot;selected&amp;quot; shortcut=&amp;quot;Q&amp;quot;&amp;gt;Quit&amp;lt;/item&amp;gt;&lt;br /&gt;
         &amp;lt;/menu&amp;gt;&lt;br /&gt;
         &amp;lt;menu title=&amp;quot;Settings&amp;quot;&amp;gt;&lt;br /&gt;
             &amp;lt;item id=&amp;quot;menu_muisettings&amp;quot; notify=&amp;quot;selected&amp;quot;&amp;gt;MUI...&amp;lt;/item&amp;gt;&lt;br /&gt;
         &amp;lt;/menu&amp;gt; &lt;br /&gt;
     &amp;lt;/menustrip&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:HollywoodCourse-Example3-Menu.png|right]]&lt;br /&gt;
Every MUI application should contain a pull-down menu with items to open '''About MUI''' and '''About MUI Royale''' windows, and also an item&lt;br /&gt;
to open the '''MUI preferences''' program. We define a menu here and assign it later to the main window of our program. Remember to define&lt;br /&gt;
'''id''' attributes for all functional items as well as for the [http://www.hollywood-mal.com/docs/html/muiroyale/Menustrip_.html menustrip] object itself. Let's also add our own about window as the first&lt;br /&gt;
item in the &amp;quot;Project&amp;quot; menu and a quit option as the last item. The '''&amp;lt;item/&amp;gt;''' line adds a separator bar to the menu.&lt;br /&gt;
&lt;br /&gt;
If we want to get informed when the user has selected a menu item, we have to add notify tags to the items. Read more about the notification&lt;br /&gt;
mechanism [http://www.hollywood-mal.com/docs/html/muiroyale/Notifications_.html here]. When we read the '''Menuitem class''' chapter from the [http://www.hollywood-mal.com/docs/html/muiroyale/Menuitem_.html documentation], we can find out that the [http://www.hollywood-mal.com/docs/html/muiroyale/MenuitemSelected_.html Selected] attribute has&lt;br /&gt;
the applicability of N, and that means we can setup a notification for it. So, '''notify=&amp;quot;selected&amp;quot;''' does the trick.&lt;br /&gt;
&lt;br /&gt;
You can also define keyboard shortcuts for any of the menu items with the [http://www.hollywood-mal.com/docs/html/muiroyale/MenuitemShortcut_.html Shortcut] attribute. In this example we can quit the program&lt;br /&gt;
by pressing the command-q key combination.&lt;br /&gt;
&lt;br /&gt;
Remember the traditional Amiga style guide too. If an item opens a new interactive window or requester, add '''...''' at the end of it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
     &amp;lt;window id=&amp;quot;win&amp;quot; muiid=&amp;quot;MAIN&amp;quot; title=&amp;quot;Hollywood MUI Example&amp;quot; screentitle=&amp;quot;Hollywood MUI Example 1.0&amp;quot; notify=&amp;quot;closerequest&amp;quot; menustrip=&amp;quot;examplemenustrip&amp;quot; appwindow=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then it's time to define our application [http://www.hollywood-mal.com/docs/html/muiroyale/Window_.html window]. The most important attribute here is [http://www.hollywood-mal.com/docs/html/muiroyale/WindowMuiID_.html muiid], because without it users can't snapshot&lt;br /&gt;
window size or position. [http://www.hollywood-mal.com/docs/html/muiroyale/WindowMuiID_.html muiid] has to be exactly four characters long, and each window in your program must have a different [http://www.hollywood-mal.com/docs/html/muiroyale/WindowMuiID_.html muiid] value.&lt;br /&gt;
It doesn't matter if you use the same ID (like &amp;quot;MAIN&amp;quot;) in different programs, because they save their settings to different files.&lt;br /&gt;
&lt;br /&gt;
The [http://www.hollywood-mal.com/docs/html/muiroyale/WindowTitle_.html title] attribute sets the text in the window title bar of our program, and the [http://www.hollywood-mal.com/docs/html/muiroyale/WindowScreenTitle_.html screentitle] attribute sets the text shown in the&lt;br /&gt;
screen title bar when our window is active.&lt;br /&gt;
&lt;br /&gt;
The [http://www.hollywood-mal.com/docs/html/muiroyale/WindowCloseRequest_.html closerequest] notify will tell us if the window's close gadget has been clicked, and we can react to it in our main Hollywood script.&lt;br /&gt;
&lt;br /&gt;
The menu object we defined earlier can be specified for this window with the [http://www.hollywood-mal.com/docs/html/muiroyale/WindowMenustrip_.html menustrip] attribute. If you use multiple windows in&lt;br /&gt;
an application and would like to see the same menu in all of them, move this attribute from the '''&amp;lt;window&amp;gt;''' definition to the '''&amp;lt;application&amp;gt;'''&lt;br /&gt;
definition.&lt;br /&gt;
&lt;br /&gt;
The last [http://www.hollywood-mal.com/docs/html/muiroyale/WindowAppWindow_.html appwindow] attribute lets us listen if an icon (a file) is dragged and dropped onto our program window. It can be left out&lt;br /&gt;
if you don't need it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
         &amp;lt;vgroup&amp;gt;&lt;br /&gt;
             &amp;lt;hgroup&amp;gt;&lt;br /&gt;
                 &amp;lt;button id=&amp;quot;button1&amp;quot; notify=&amp;quot;pressed&amp;quot; cyclechain=&amp;quot;true&amp;quot; shorthelp=&amp;quot;Displays brush 1&amp;quot;&amp;gt;Brush _1&amp;lt;/button&amp;gt;&lt;br /&gt;
                 &amp;lt;button id=&amp;quot;button2&amp;quot; notify=&amp;quot;pressed&amp;quot; cyclechain=&amp;quot;true&amp;quot; shorthelp=&amp;quot;Displays brush 2&amp;quot;&amp;gt;Brush _2&amp;lt;/button&amp;gt;&lt;br /&gt;
             &amp;lt;/hgroup&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:HollywoodCourse-Example3.png|280px|thumb|Our MUI GUI example]]&lt;br /&gt;
The objects in our window can be organized in vertical or horizontal [http://www.hollywood-mal.com/docs/html/muiroyale/Groups_.html groups]. Here we create a vertical group with smaller horizontal&lt;br /&gt;
groups inside it. On these lines we define that we get two buttons next to each other horizontally.&lt;br /&gt;
&lt;br /&gt;
If we read the '''Button class''' [http://www.hollywood-mal.com/docs/html/muiroyale/Button_.html documentation], we see that we can get notified by the [http://www.hollywood-mal.com/docs/html/muiroyale/ButtonPressed_.html Pressed] attribute. We could also get notified&lt;br /&gt;
by the [http://www.hollywood-mal.com/docs/html/muiroyale/ButtonSelected_.html Selected] attribute if we created a [http://www.hollywood-mal.com/docs/html/muiroyale/ButtonToggle_.html toggle] button.&lt;br /&gt;
&lt;br /&gt;
[http://www.hollywood-mal.com/docs/html/muiroyale/AreaCycleChain_.html cyclechain] and [http://www.hollywood-mal.com/docs/html/muiroyale/AreaShortHelp_.html shorthelp] attributes are interesting, because they aren't button specific. They are actually attributes&lt;br /&gt;
of the '''Area class''', which is a super class for almost everything else, and you can use its attributes with about all objects. When&lt;br /&gt;
you are defining an object, you could also check the attributes from the '''Area class''' [http://www.hollywood-mal.com/docs/html/muiroyale/Area_.html documentation].&lt;br /&gt;
&lt;br /&gt;
The [http://www.hollywood-mal.com/docs/html/muiroyale/AreaCycleChain_.html cyclechain] attribute defines if you can activate the object from the keyboard by using the '''tab''' key. You should usually allow this.&lt;br /&gt;
&lt;br /&gt;
The contents of the MUI bubble help text can be defined with the [http://www.hollywood-mal.com/docs/html/muiroyale/AreaShortHelp_.html shorthelp] attribute. A bubble help window opens if you keep the mouse pointer&lt;br /&gt;
over an object for a while.&lt;br /&gt;
&lt;br /&gt;
An '''underscore''' in the button label makes the following character a keyboard shortcut. We can press &amp;quot;1&amp;quot; or &amp;quot;2&amp;quot; from the keyboard to make a&lt;br /&gt;
button press now.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
             &amp;lt;hgroup&amp;gt;&lt;br /&gt;
                 &amp;lt;button id=&amp;quot;button_random&amp;quot; notify=&amp;quot;pressed&amp;quot; cyclechain=&amp;quot;false&amp;quot; shorthelp=&amp;quot;Displays a random brush&amp;quot;&amp;gt;_Random&amp;lt;/button&amp;gt;&lt;br /&gt;
                 &amp;lt;rectangle/&amp;gt;&lt;br /&gt;
                 &amp;lt;text id=&amp;quot;clock&amp;quot; preparse=&amp;quot;\33r&amp;quot;&amp;gt;00:00:00&amp;lt;/text&amp;gt;&lt;br /&gt;
             &amp;lt;/hgroup&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here we define another horizontal group whose objects are shown below the previous group.&lt;br /&gt;
&lt;br /&gt;
The new button here is removed from the cyclechain as an example; you can't activate it with the tab key.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;rectangle/&amp;gt;''' adds some dynamic space between two objects. This can be quite useful when designing a GUI, and especially if you have some&lt;br /&gt;
resizing problems.&lt;br /&gt;
&lt;br /&gt;
The [http://www.hollywood-mal.com/docs/html/muiroyale/Text_.html text] object just displays some text, but we plan to update the text later with the current time. Let's put something as its initial&lt;br /&gt;
value anyway. The [http://www.hollywood-mal.com/docs/html/muiroyale/TextPreParse_.html preparse] attribute contains a format code for the text, and we use it to right align the text now.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
             &amp;lt;hollywood id=&amp;quot;disp&amp;quot; display=&amp;quot;1&amp;quot; minwidth=&amp;quot;32&amp;quot; minheight=&amp;quot;32&amp;quot; maxwidth=&amp;quot;16384&amp;quot; maxheight=&amp;quot;16384&amp;quot; notify=&amp;quot;appmessage&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This object isn't inside of any horizonal group and takes the whole window width itself.&lt;br /&gt;
&lt;br /&gt;
The [http://www.hollywood-mal.com/docs/html/muiroyale/Hollywood_.html hollywood] object embeds a complete Hollywood display inside the GUI. [http://www.hollywood-mal.com/docs/html/muiroyale/HollywoodDisplay_.html display] defines the ID number of the Hollywood display you want&lt;br /&gt;
show in the object. Defining the sizes makes it resizeable too. If you want to make MUI programs without the graphical display of&lt;br /&gt;
Hollywood, that's fine too.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
         &amp;lt;/vgroup&amp;gt;&lt;br /&gt;
     &amp;lt;/window&amp;gt;&lt;br /&gt;
 &amp;lt;/application&amp;gt; &lt;br /&gt;
&lt;br /&gt;
After finishing our definitions we have working code for the GUI part of our program!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Hollywood Script ===&lt;br /&gt;
==== Source Code ====&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@VERSION 5,2&lt;br /&gt;
@APPTITLE &amp;quot;Hollywood MUI Example&amp;quot;&lt;br /&gt;
@APPVERSION &amp;quot;$VER: HollywoodMUIExample 1.0 (31.10.17)&amp;quot;&lt;br /&gt;
@APPDESCRIPTION &amp;quot;A Hollywood example program.&amp;quot;&lt;br /&gt;
@REQUIRE &amp;quot;muiroyale&amp;quot;, {Version=1, Revision=7}&lt;br /&gt;
@DISPLAY {Hidden=True, Width=400, Height=300, Sizeable=True, Layers=True, ScaleMode=#SCALEMODE_LAYER, SmoothScale=True}&lt;br /&gt;
@BRUSH 1, &amp;quot;MOSSYS:Data/Jalapeno/ReadMode.png&amp;quot;, {LoadAlpha=True}&lt;br /&gt;
@FILE 1, &amp;quot;muigui.xml&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Function p_DrawGfx(brush_number)&lt;br /&gt;
    If Not brush_number Then brush_number = Rnd(2) + 1&lt;br /&gt;
    If LayerExists(&amp;quot;gfx&amp;quot;) Then RemoveLayerFX(&amp;quot;gfx&amp;quot;)&lt;br /&gt;
    mui.Set(&amp;quot;win&amp;quot;, &amp;quot;title&amp;quot;, &amp;quot;Brush &amp;quot; .. brush_number)&lt;br /&gt;
    DisplayBrushFX(brush_number, #CENTER, #CENTER)&lt;br /&gt;
    SetLayerName(0, &amp;quot;gfx&amp;quot;)&lt;br /&gt;
EndFunction&lt;br /&gt;
&lt;br /&gt;
Function p_Input(msg)&lt;br /&gt;
    DebugPrint(&amp;quot;Input event!&amp;quot;, msg.Action)&lt;br /&gt;
    Switch(msg.Action)&lt;br /&gt;
    Case &amp;quot;OnKeyDown&amp;quot;:&lt;br /&gt;
        DebugPrint(msg.Key, &amp;quot;key was pressed.&amp;quot;)&lt;br /&gt;
        Switch(msg.Key)&lt;br /&gt;
        Case &amp;quot; &amp;quot;:&lt;br /&gt;
            p_DrawGfx()&lt;br /&gt;
        Case &amp;quot;ESC&amp;quot;:&lt;br /&gt;
            DebugPrint(&amp;quot;Quitting...&amp;quot;)&lt;br /&gt;
            End&lt;br /&gt;
        EndSwitch&lt;br /&gt;
    Case &amp;quot;OnMouseDown&amp;quot;:&lt;br /&gt;
        p_DrawGfx()&lt;br /&gt;
    EndSwitch&lt;br /&gt;
EndFunction&lt;br /&gt;
&lt;br /&gt;
Function p_MUIEvent(msg)&lt;br /&gt;
    DebugPrint(&amp;quot;MUI event!&amp;quot;, &amp;quot;  Class:&amp;quot;, msg.Class, &amp;quot;  ID:&amp;quot;, msg.ID, &amp;quot;  Attribute:&amp;quot;, msg.Attribute)&lt;br /&gt;
    Switch msg.Class&lt;br /&gt;
    Case &amp;quot;Window&amp;quot;:&lt;br /&gt;
        Switch msg.Attribute&lt;br /&gt;
        Case &amp;quot;CloseRequest&amp;quot;:&lt;br /&gt;
            End&lt;br /&gt;
        EndSwitch&lt;br /&gt;
    Case &amp;quot;Menuitem&amp;quot;:&lt;br /&gt;
        Switch msg.ID&lt;br /&gt;
        Case &amp;quot;menu_about&amp;quot;:&lt;br /&gt;
            Local reqtext$ = &amp;quot;\27c\27bHollywood MUI Example\n\27nFor a tutorial at the MorphOS Library.&amp;quot;&lt;br /&gt;
            If mui.Request(&amp;quot;About&amp;quot;, reqtext$, &amp;quot;Open tutorial|*OK&amp;quot;) Then OpenURL(&amp;quot;http://library.morph.zone/Crash_Course_to_Hollywood_Programming&amp;quot;)&lt;br /&gt;
        Case &amp;quot;menu_about_mui&amp;quot;:&lt;br /&gt;
            mui.DoMethod(&amp;quot;app&amp;quot;, &amp;quot;AboutMUI&amp;quot;)&lt;br /&gt;
        Case &amp;quot;menu_about_muiroyale&amp;quot;:&lt;br /&gt;
            mui.DoMethod(&amp;quot;app&amp;quot;, &amp;quot;AboutMUIRoyale&amp;quot;)&lt;br /&gt;
        Case &amp;quot;menu_quit&amp;quot;:&lt;br /&gt;
            End&lt;br /&gt;
        Case &amp;quot;menu_muisettings&amp;quot;:&lt;br /&gt;
            mui.DoMethod(&amp;quot;app&amp;quot;, &amp;quot;OpenConfigWindow&amp;quot;)&lt;br /&gt;
        EndSwitch&lt;br /&gt;
    Case &amp;quot;Button&amp;quot;:&lt;br /&gt;
        Switch msg.ID&lt;br /&gt;
        Case &amp;quot;button1&amp;quot;:&lt;br /&gt;
            p_DrawGfx(1)&lt;br /&gt;
        Case &amp;quot;button2&amp;quot;:&lt;br /&gt;
            p_DrawGfx(2)&lt;br /&gt;
        Case &amp;quot;button_random&amp;quot;:&lt;br /&gt;
            p_DrawGfx()&lt;br /&gt;
        EndSwitch&lt;br /&gt;
    EndSwitch&lt;br /&gt;
EndFunction&lt;br /&gt;
&lt;br /&gt;
Function p_UpdateClock()&lt;br /&gt;
    mui.Set(&amp;quot;clock&amp;quot;, &amp;quot;contents&amp;quot;, GetTime(True))&lt;br /&gt;
EndFunction&lt;br /&gt;
&lt;br /&gt;
mui.CreateGUI(ReadString(1))&lt;br /&gt;
&lt;br /&gt;
InstallEventHandler({OnKeyDown = p_Input, OnMouseDown = p_Input, MUIRoyale = p_MUIEvent})&lt;br /&gt;
SetInterval(1, p_UpdateClock, 1000)&lt;br /&gt;
&lt;br /&gt;
LoadBrush(2, &amp;quot;MOSSYS:Data/Jalapeno/TrackMode.png&amp;quot;, {LoadAlpha = True})&lt;br /&gt;
p_DrawGfx()&lt;br /&gt;
&lt;br /&gt;
Repeat&lt;br /&gt;
   WaitEvent&lt;br /&gt;
Forever&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Description ====&lt;br /&gt;
&lt;br /&gt;
Let's modify our previous example ([[Crash_Course_to_Hollywood_Programming/Example_2_-_Hollywood_Programming|Example 2: Hollywood Programming]]) script to work with the MUI GUI now, and add some fancy new features as well.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 [http://www.hollywood-mal.com/docs/html/hollywood/atREQUIRE_.html @REQUIRE] &amp;quot;muiroyale&amp;quot;, {Version=1, Revision=7}&lt;br /&gt;
&lt;br /&gt;
With this [http://www.hollywood-mal.com/docs/html/hollywood/PrgPreproc_.html preprocessor] statement we can ensure that we have new enough version of the MUI Royale plugin available. In this case we make sure that&lt;br /&gt;
we have at least MUI Royale 1.7 in use.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 [http://www.hollywood-mal.com/docs/html/hollywood/atDISPLAY_.html @DISPLAY] {Hidden=True, Width=400, Height=300, Sizeable=True, Layers=True, ScaleMode=#SCALEMODE_LAYER, SmoothScale=True}&lt;br /&gt;
&lt;br /&gt;
Hollywood opens its initial display window automatically, but when we plan to open a separate MUI window with the Hollywood display&lt;br /&gt;
inside it, we can tell Hollywood to keep its display hidden at startup. Let's add a '''Hidden=True''' item to the [http://www.hollywood-mal.com/docs/html/hollywood/atDISPLAY_.html @DISPLAY] preprocessor table.&lt;br /&gt;
&lt;br /&gt;
We can also remove the ''Title'' and ''ScreenTitle'' items, because we have defined them in the XML file for the MUI GUI already.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 [http://www.hollywood-mal.com/docs/html/hollywood/atFILE_.html @FILE] 1, &amp;quot;muigui.xml&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This preprocessor command opens our GUI definition file for later use. We could open or load the file by other means later too, but when&lt;br /&gt;
it's opened with the preprocessor command the file gets '''linked''' into the executable when we compile the program. This way we don't have&lt;br /&gt;
to have a plaintext GUI definition file distributed with our compiled software.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Function p_DrawGfx(brush_number)&lt;br /&gt;
     If Not brush_number Then brush_number = Rnd(2) + 1&lt;br /&gt;
     If [http://www.hollywood-mal.com/docs/html/hollywood/LayerExists_.html LayerExists](&amp;quot;gfx&amp;quot;) Then [http://www.hollywood-mal.com/docs/html/hollywood/RemoveLayerFX_.html RemoveLayerFX](&amp;quot;gfx&amp;quot;)&lt;br /&gt;
     [http://www.hollywood-mal.com/docs/html/muiroyale/muiSet_.html mui.Set](&amp;quot;win&amp;quot;, &amp;quot;title&amp;quot;, &amp;quot;Brush &amp;quot; .. brush_number)&lt;br /&gt;
     [http://www.hollywood-mal.com/docs/html/hollywood/DisplayBrushFX_.html DisplayBrushFX](brush_number, #CENTER, #CENTER)&lt;br /&gt;
     [http://www.hollywood-mal.com/docs/html/hollywood/SetLayerName_.html SetLayerName](0, &amp;quot;gfx&amp;quot;)&lt;br /&gt;
 EndFunction&lt;br /&gt;
&lt;br /&gt;
Let's change our drawing function a bit as well.&lt;br /&gt;
&lt;br /&gt;
Now we accept a brush number as a parameter for it and assign a random value only if nothing was given.&lt;br /&gt;
&lt;br /&gt;
We'll also use MUI to change the window title text. The '''Window class''' section in the MUI Royale [http://www.hollywood-mal.com/docs/html/muiroyale/Window_.html documentation] reveals that there&lt;br /&gt;
is a [http://www.hollywood-mal.com/docs/html/muiroyale/WindowTitle_.html Title] attribute, which can be changed from our script, because it has '''S''' (set) marked in its applicability information.&lt;br /&gt;
The [http://www.hollywood-mal.com/docs/html/muiroyale/muiSet_.html mui.Set] function can be used to set values of attributes, and we pass to it the ID of our MUI window, the name of the argument we want&lt;br /&gt;
to change, and a new value for it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Function p_MUIEvent(msg)&lt;br /&gt;
     [http://www.hollywood-mal.com/docs/html/hollywood/DebugPrint_.html DebugPrint](&amp;quot;MUI event!&amp;quot;, &amp;quot;  Class:&amp;quot;, msg.Class, &amp;quot;  ID:&amp;quot;, msg.ID, &amp;quot;  Attribute:&amp;quot;, msg.Attribute)&lt;br /&gt;
&lt;br /&gt;
Here is a new function to handle MUI events. We could handle them in the same input event handler we made earlier, but let's keep them&lt;br /&gt;
separated for clarity now.&lt;br /&gt;
&lt;br /&gt;
The [http://www.hollywood-mal.com/docs/html/hollywood/DebugPrint_.html DebugPrint]() line shows us the class that triggered the event, the ID of the object, and the attribute that changed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
     Switch msg.Class&lt;br /&gt;
     Case &amp;quot;Window&amp;quot;:&lt;br /&gt;
         Switch msg.Attribute&lt;br /&gt;
         Case &amp;quot;CloseRequest&amp;quot;:&lt;br /&gt;
             [http://www.hollywood-mal.com/docs/html/hollywood/End_.html End]&lt;br /&gt;
         EndSwitch&lt;br /&gt;
&lt;br /&gt;
If the class was '''Window''' and the attribute was [http://www.hollywood-mal.com/docs/html/muiroyale/WindowCloseRequest_.html CloseRequest] (the close gadget was pressed), we quit the whole program with the [http://www.hollywood-mal.com/docs/html/hollywood/End_.html End]()&lt;br /&gt;
function. Hollywood closes the MUI window and frees the resources automatically.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
     Case &amp;quot;Menuitem&amp;quot;:&lt;br /&gt;
         Switch msg.ID&lt;br /&gt;
&lt;br /&gt;
If the event came from the '''Menuitem''' class, it's enough to check which object triggered it. The IDs are the same we defined in the XML file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
         Case &amp;quot;menu_about&amp;quot;:&lt;br /&gt;
             [http://www.hollywood-mal.com/docs/html/hollywood/PrgLocals_.html Local] reqtext$ = &amp;quot;\27c\27bHollywood MUI Example\27n\nFor a tutorial at the MorphOS Library.&amp;quot;&lt;br /&gt;
             If [http://www.hollywood-mal.com/docs/html/muiroyale/muiRequest_.html mui.Request](&amp;quot;About&amp;quot;, reqtext$, &amp;quot;Open tutorial|*OK&amp;quot;) Then [http://www.hollywood-mal.com/docs/html/hollywood/OpenURL_.html OpenURL](&amp;quot;http://library.morph.zone/Crash_Course_to_Hollywood_Programming&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
[[File:HollywoodCourse-Example3-About.png|right|247px]]&lt;br /&gt;
This is our own about window for the program. We declare a [http://www.hollywood-mal.com/docs/html/hollywood/PrgLocals_.html local variable] with a string in it, and because it's a '''string variable''' we use&lt;br /&gt;
a '''dollar sign''' as the last character of the variable name. It would work without the dollar sign too, but it's a [http://www.hollywood-mal.com/docs/html/hollywood/PrgStyleguideSuggestions_.html style guide] suggestion&lt;br /&gt;
in Hollywood to separate '''strings ($)''' and '''floating point values (!)''' from integer values.&lt;br /&gt;
&lt;br /&gt;
The string itself may look a bit cryptic, because we have used some [http://www.hollywood-mal.com/docs/html/muiroyale/TextFormat_.html formatting codes] as an example here. '''\27c''' centers the text,&lt;br /&gt;
'''\27b''' makes the text bold, '''\27n''' resets the text style back to normal, and '''\n''' starts a new line. Notice that we use '''\27''' here while&lt;br /&gt;
we used '''\33''' in the XML file.&lt;br /&gt;
&lt;br /&gt;
The [http://www.hollywood-mal.com/docs/html/muiroyale/muiRequest_.html mui.Request]() function is an easy way to pop up a MUI system requester. We have only two buttons in it this time, so we can directly&lt;br /&gt;
check the result with the [http://www.hollywood-mal.com/docs/html/hollywood/PrgIf_.html If statement] on the same line. If the user selects the &amp;quot;Open tutorial&amp;quot; button, the result will be &amp;quot;1&amp;quot; and we open&lt;br /&gt;
the web page with the [http://www.hollywood-mal.com/docs/html/hollywood/OpenURL_.html OpenURL]() function. The &amp;quot;OK&amp;quot; button will return 0 and nothing happens then. '''*''' can be used to mark which button&lt;br /&gt;
is pre-selected by default.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
         Case &amp;quot;menu_about_mui&amp;quot;:&lt;br /&gt;
             [http://www.hollywood-mal.com/docs/html/muiroyale/muiDoMethod_.html mui.DoMethod](&amp;quot;app&amp;quot;, &amp;quot;[http://www.hollywood-mal.com/docs/html/muiroyale/ApplicationAboutMUI_.html AboutMUI]&amp;quot;)&lt;br /&gt;
         Case &amp;quot;menu_about_muiroyale&amp;quot;:&lt;br /&gt;
             [http://www.hollywood-mal.com/docs/html/muiroyale/muiDoMethod_.html mui.DoMethod](&amp;quot;app&amp;quot;, &amp;quot;[http://www.hollywood-mal.com/docs/html/muiroyale/ApplicationAboutMUIRoyale_.html AboutMUIRoyale]&amp;quot;)&lt;br /&gt;
         Case &amp;quot;menu_quit&amp;quot;:&lt;br /&gt;
             [http://www.hollywood-mal.com/docs/html/hollywood/End_.html End]&lt;br /&gt;
         Case &amp;quot;menu_muisettings&amp;quot;:&lt;br /&gt;
             [http://www.hollywood-mal.com/docs/html/muiroyale/muiDoMethod_.html mui.DoMethod](&amp;quot;app&amp;quot;, &amp;quot;[http://www.hollywood-mal.com/docs/html/muiroyale/ApplicationOpenConfigWindow_.html OpenConfigWindow]&amp;quot;)&lt;br /&gt;
         EndSwitch&lt;br /&gt;
&lt;br /&gt;
Opening other about windows is pretty automatic with the MUI methods provided by the Application class. The methods can be run using the&lt;br /&gt;
[http://www.hollywood-mal.com/docs/html/muiroyale/muiDoMethod_.html mui.DoMethod]() function.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
     Case &amp;quot;Button&amp;quot;:&lt;br /&gt;
         Switch msg.ID&lt;br /&gt;
         Case &amp;quot;button1&amp;quot;:&lt;br /&gt;
             p_DrawGfx(1)&lt;br /&gt;
         Case &amp;quot;button2&amp;quot;:&lt;br /&gt;
             p_DrawGfx(2)&lt;br /&gt;
         Case &amp;quot;button_random&amp;quot;:&lt;br /&gt;
             p_DrawGfx()&lt;br /&gt;
         EndSwitch&lt;br /&gt;
     EndSwitch&lt;br /&gt;
 EndFunction&lt;br /&gt;
&lt;br /&gt;
Finally we handle button presses. We can now select which brush to show, or press the random button to call our drawing function without&lt;br /&gt;
a defined brush number.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Function p_UpdateClock()&lt;br /&gt;
     [http://www.hollywood-mal.com/docs/html/muiroyale/muiSet_.html mui.Set](&amp;quot;clock&amp;quot;, &amp;quot;contents&amp;quot;, GetTime(True))&lt;br /&gt;
 EndFunction&lt;br /&gt;
&lt;br /&gt;
We also created a text object to our GUI with the ID &amp;quot;clock&amp;quot;. Here is a short function to set its contents to the result we get&lt;br /&gt;
from the [http://www.hollywood-mal.com/docs/html/hollywood/GetTime_.html GetTime]() function. [http://www.hollywood-mal.com/docs/html/hollywood/GetTime_.html GetTime]() is found in the Time library, and if you set its optional argument to '''True''', it will return&lt;br /&gt;
the time in the '''hh:mm:ss''' format instead of the '''hh:mm''' format.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 [http://www.hollywood-mal.com/docs/html/muiroyale/muiCreateGUI_.html mui.CreateGUI]([http://www.hollywood-mal.com/docs/html/hollywood/ReadString_.html ReadString](1))&lt;br /&gt;
&lt;br /&gt;
The [http://www.hollywood-mal.com/docs/html/muiroyale/muiCreateGUI_.html mui.CreateGUI]() function creates the actual GUI from an XML source code string. You could put the string into a Hollywood script too,&lt;br /&gt;
but it's more comfortable to have the XML source in a separate file for any bigger projects.&lt;br /&gt;
&lt;br /&gt;
As we already opened the file with the [http://www.hollywood-mal.com/docs/html/hollywood/atFILE_.html @FILE] preprocessor command, we can just use the [http://www.hollywood-mal.com/docs/html/hollywood/ReadString_.html ReadString]() function with the file ID number as an&lt;br /&gt;
argument to get the file returned as a string.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 [http://www.hollywood-mal.com/docs/html/hollywood/InstallEventHandler_.html InstallEventHandler]({OnKeyDown = p_Input, OnMouseDown = p_Input, MUIRoyale = p_MUIEvent})&lt;br /&gt;
&lt;br /&gt;
We'll have to install the '''MUIRoyale''' event handler to get MUI related notifications to our '''p_MUIEvent()''' function.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 [http://www.hollywood-mal.com/docs/html/hollywood/SetInterval_.html SetInterval](1, p_UpdateClock, 1000)&lt;br /&gt;
&lt;br /&gt;
The [http://www.hollywood-mal.com/docs/html/hollywood/SetInterval_.html SetInterval]() function can be used to trigger events periodically. Here we create a new '''interval''' function which calls our '''p_UpdateClock()'''&lt;br /&gt;
function repeatedly at 1000 ms intervals. Our clock gets updated once per second now.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
And there it is! Our first MUI program made with Hollywood. If you have saved the Hollwood script as, for example, '''muiexample.hws''',&lt;br /&gt;
and you have '''muigui.xml''' and '''muiroyale.hwp''' files in the same directory, you can run the program with the &amp;lt;code&amp;gt;Hollywood muiexample.hws -quiet&amp;lt;/code&amp;gt; command&lt;br /&gt;
from the shell or with the F4 key in Cubic IDE. And if you '''compile''' the program, you don't need the '''muigui.xml''' file in the same directory any more.&lt;br /&gt;
&lt;br /&gt;
The '''muiroyale.hwp''' [http://www.hollywood-mal.com/download.html plugin] file can be installed into the '''SYS:Libs/Hollywood/''' directory to be always available for your programs, but when&lt;br /&gt;
distributing them I'd advice to have a copy of it '''in the same directory with the executable'''. That way users don't need to install&lt;br /&gt;
anything and it doesn't matter if they don't have the correct version in their Libs directory.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt; [[Crash_Course_to_Hollywood_Programming#Summary|Proceed to the summary chapter]]&lt;/div&gt;</summary>
		<author><name>JPV</name></author>	</entry>

	<entry>
		<id>https://library.morph.zone/index.php?title=Crash_Course_to_Hollywood_Programming/Example_2_-_Hollywood_Programming&amp;diff=4383</id>
		<title>Crash Course to Hollywood Programming/Example 2 - Hollywood Programming</title>
		<link rel="alternate" type="text/html" href="https://library.morph.zone/index.php?title=Crash_Course_to_Hollywood_Programming/Example_2_-_Hollywood_Programming&amp;diff=4383"/>
				<updated>2026-01-17T10:31:22Z</updated>
		
		<summary type="html">&lt;p&gt;JPV: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Hollywood Programming Example ==&lt;br /&gt;
=== Source Code ===&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@VERSION 6,0&lt;br /&gt;
@APPTITLE &amp;quot;Hollywood Example&amp;quot;&lt;br /&gt;
@APPVERSION &amp;quot;$VER: HollywoodExample 1.0 (31.10.17)&amp;quot;&lt;br /&gt;
@APPDESCRIPTION &amp;quot;A Hollywood example program.&amp;quot;&lt;br /&gt;
@DISPLAY {Title=&amp;quot;Hollywood Example&amp;quot;, ScreenTitle=&amp;quot;Hollywood Example&amp;quot;, Width=400, Height=300, Sizeable=True, Layers=True, ScaleMode=#SCALEMODE_LAYER, SmoothScale=True}&lt;br /&gt;
@BRUSH 1, &amp;quot;MOSSYS:Data/Jalapeno/ReadMode.png&amp;quot;, {LoadAlpha=True}&lt;br /&gt;
&lt;br /&gt;
Function p_DrawGfx()&lt;br /&gt;
    Local brush_number = Rnd(2) + 1&lt;br /&gt;
    If LayerExists(&amp;quot;gfx&amp;quot;) Then RemoveLayerFX(&amp;quot;gfx&amp;quot;)&lt;br /&gt;
    SetDisplayAttributes({Title = &amp;quot;Brush &amp;quot; .. brush_number})&lt;br /&gt;
    DisplayBrushFX(brush_number, #CENTER, #CENTER)&lt;br /&gt;
    SetLayerName(0, &amp;quot;gfx&amp;quot;)&lt;br /&gt;
EndFunction&lt;br /&gt;
&lt;br /&gt;
Function p_Input(msg)&lt;br /&gt;
    DebugPrint(&amp;quot;Input event!&amp;quot;, msg.Action)&lt;br /&gt;
    Switch(msg.Action)&lt;br /&gt;
    Case &amp;quot;OnKeyDown&amp;quot;:&lt;br /&gt;
        DebugPrint(msg.Key, &amp;quot;key was pressed.&amp;quot;)&lt;br /&gt;
        Switch(msg.Key)&lt;br /&gt;
        Case &amp;quot; &amp;quot;:&lt;br /&gt;
            p_DrawGfx()&lt;br /&gt;
        Case &amp;quot;ESC&amp;quot;:&lt;br /&gt;
            DebugPrint(&amp;quot;Quitting...&amp;quot;)&lt;br /&gt;
            End&lt;br /&gt;
        EndSwitch&lt;br /&gt;
    Case &amp;quot;OnMouseDown&amp;quot;:&lt;br /&gt;
        p_DrawGfx()&lt;br /&gt;
    EndSwitch&lt;br /&gt;
EndFunction&lt;br /&gt;
&lt;br /&gt;
LoadBrush(2, &amp;quot;MOSSYS:Data/Jalapeno/TrackMode.png&amp;quot;, {LoadAlpha=True})&lt;br /&gt;
p_DrawGfx()&lt;br /&gt;
&lt;br /&gt;
InstallEventHandler({OnKeyDown = p_Input, OnMouseDown = p_Input})&lt;br /&gt;
&lt;br /&gt;
Repeat&lt;br /&gt;
   WaitEvent&lt;br /&gt;
Forever&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
&lt;br /&gt;
The previous example ([[Crash_Course_to_Hollywood_Programming/Example_1_-_The_First_Test|Example 1: The First Test]]) could be extended to have more commands to be executed in batch, which could be fine for&lt;br /&gt;
presentations or slideshows, but let's take a more practical approach and create an interactive script whose&lt;br /&gt;
structure looks like a real program.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 [http://www.hollywood-mal.com/docs/html/hollywood/atVERSION_.html @VERSION] 6,0&lt;br /&gt;
&lt;br /&gt;
This preprocessor command defines which Hollywood version is required to run the script. If you want to run this example with an earlier version of Hollywood, remove the ScreenTitle attribute from the @DISPLAY preprocessor line.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 [http://www.hollywood-mal.com/docs/html/hollywood/atAPPTITLE_.html @APPTITLE] &amp;quot;Hollywood Example&amp;quot;&lt;br /&gt;
 [http://www.hollywood-mal.com/docs/html/hollywood/atAPPVERSION_.html @APPVERSION] &amp;quot;$VER: HollywoodExample 1.0 (26.10.17)&amp;quot;&lt;br /&gt;
 [http://www.hollywood-mal.com/docs/html/hollywood/atAPPDESCRIPTION_.html @APPDESCRIPTION] &amp;quot;A Hollywood example program.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
There are several preprocessor commands for adding informative strings to an application. These three are especially&lt;br /&gt;
useful for Amiga and MorphOS programs, because Hollywood programs act like commodities and you'll see this information&lt;br /&gt;
in, for example, the Exchange program. The @APPVERSION format should respect the standard version string rules,&lt;br /&gt;
which means that the date should be given in the DD.MM.YY format etc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 [http://www.hollywood-mal.com/docs/html/hollywood/atDISPLAY_.html @DISPLAY] {Title=&amp;quot;Hollywood Example&amp;quot;, ScreenTitle=&amp;quot;Hollywood Example&amp;quot;, Width=400, Height=300, Sizeable=True, Layers=True, ScaleMode=#SCALEMODE_LAYER, SmoothScale=True}&lt;br /&gt;
&lt;br /&gt;
This time we don't use the [http://www.hollywood-mal.com/docs/html/hollywood/atBGPIC_.html @BGPIC] preprocessor, but define the display size manually and add some extra&lt;br /&gt;
attributes too.&lt;br /&gt;
&lt;br /&gt;
'''Title''' defines what will be shown in the window title bar, and '''ScreenTitle''' what is shown in the screen title bar&lt;br /&gt;
when our program window is active.&lt;br /&gt;
&lt;br /&gt;
The '''Width''' and '''Height''' attributes define the actual drawing area (display) for our application. The application window&lt;br /&gt;
itself will be a bit larger with the standard OS window borders added around a Hollywood display. It is also&lt;br /&gt;
possible to open borderless and fullscreen windows without the standard window borders.&lt;br /&gt;
&lt;br /&gt;
The '''Sizeable''' attribute defines if the application window is resizeable by the user.&lt;br /&gt;
&lt;br /&gt;
'''Layers=True''' enables Hollywood's [http://www.hollywood-mal.com/docs/html/hollywood/LayersIntroduction_.html layer system]. It depends on the program you're developing whether you want to enable&lt;br /&gt;
layers or not. With layers enabled all drawing operations get their own layer that can be moved, removed, and&lt;br /&gt;
otherwise processed. When they're disabled, all graphics are just painted over each other on the display and it's&lt;br /&gt;
harder to change or undo things. But if you're just drawing fullscreen graphics to the display or something like&lt;br /&gt;
that, it's better to keep layers disabled.&lt;br /&gt;
&lt;br /&gt;
'''ScaleMode''' sets if display contents are scaled automatically when the display size changes. Many times&lt;br /&gt;
it's better to keep this disabled and recalculate your own graphics after a resize event to keep the aspect&lt;br /&gt;
ratio intact and to avoid slowdowns, but let's enable this now to get more functionality into our application without&lt;br /&gt;
extra lines of code.&lt;br /&gt;
&lt;br /&gt;
'''SmoothScale''' makes the scaling output prettier at the expense of speed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 [http://www.hollywood-mal.com/docs/html/hollywood/atBRUSH_.html @BRUSH] 1, &amp;quot;MOSSYS:Data/Jalapeno/ReadMode.png&amp;quot;, {LoadAlpha=True}&lt;br /&gt;
&lt;br /&gt;
Brushes are the most common way to load, process, and display graphics in Hollywood. This preprocessor line loads&lt;br /&gt;
a PNG image as a brush with ID number 1. All brush handling operations are done by referring to the ID number from&lt;br /&gt;
now on. The last argument is an optional table containing any extra options for loading. We are using graphics&lt;br /&gt;
with an alpha channel (transparency) now, so we tell Hollywood to load alpha channel values too.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Function p_DrawGfx()&lt;br /&gt;
     [http://www.hollywood-mal.com/docs/html/hollywood/PrgLocals_.html Local] brush_number = [http://www.hollywood-mal.com/docs/html/hollywood/Rnd_.html Rnd](2) + 1&lt;br /&gt;
     If [http://www.hollywood-mal.com/docs/html/hollywood/LayerExists_.html LayerExists](&amp;quot;gfx&amp;quot;) Then [http://www.hollywood-mal.com/docs/html/hollywood/RemoveLayerFX_.html RemoveLayerFX](&amp;quot;gfx&amp;quot;)&lt;br /&gt;
     [http://www.hollywood-mal.com/docs/html/hollywood/SetDisplayAttributes_.html SetDisplayAttributes]({Title = &amp;quot;Brush &amp;quot; .. brush_number})&lt;br /&gt;
     [http://www.hollywood-mal.com/docs/html/hollywood/DisplayBrushFX_.html DisplayBrushFX](brush_number, #CENTER, #CENTER)&lt;br /&gt;
     [http://www.hollywood-mal.com/docs/html/hollywood/SetLayerName_.html SetLayerName](0, &amp;quot;gfx&amp;quot;)&lt;br /&gt;
 EndFunction&lt;br /&gt;
&lt;br /&gt;
[[File:HollywoodCourse-Example2.png|thumb|Hollywood Example running]]&lt;br /&gt;
This is how you create your own [http://www.hollywood-mal.com/docs/html/hollywood/PrgFunctions_.html functions] in Hollywood. Our own function names should always start with the '''p_''' prefix&lt;br /&gt;
to distinguish them from Hollywood's internal functions. In this case the function doesn't take any parameters and&lt;br /&gt;
doesn't return any values, it can just be called from the program with p_DrawGfx() to run the lines inside it.&lt;br /&gt;
&lt;br /&gt;
The purpose of this function is to show one of the two brushes we have in memory. The brush ID numbers are 1 and 2, and&lt;br /&gt;
we randomly pick one of them. Because we have the [http://www.hollywood-mal.com/docs/html/hollywood/LayersIntroduction_.html layer system] enabled, we get a new layer every time we draw a brush&lt;br /&gt;
into the display. To avoid ending up with unlimited number of layers we remove an existing layer first. We also&lt;br /&gt;
change the window title bar text to show the number of the shown brush.&lt;br /&gt;
&lt;br /&gt;
The first line of the function declares a new local variable called brush_number and assigns a random value (1 or 2)&lt;br /&gt;
to it. You should declare new variables as local whenever possible; read more about it [http://www.hollywood-mal.com/docs/html/hollywood/PrgLocals.html here].&lt;br /&gt;
&lt;br /&gt;
The second line checks if we already have a specific layer created, and removes it with a fancy random effect if we do.&lt;br /&gt;
This line is just skipped when the function is called the first time, because we don't have the specific layer yet.&lt;br /&gt;
&lt;br /&gt;
The third line changes the window title text to the brush number we got on the first line. Almost all display attributes&lt;br /&gt;
can be changed on the fly, and you aren't restricted to the ones you defined with the [http://www.hollywood-mal.com/docs/html/hollywood/atDISPLAY_.html @DISPLAY] preprocessor command.&lt;br /&gt;
Here you can also see how you can combine a string from other strings or variables with the '''..''' operator, which is&lt;br /&gt;
familiar from Lua.&lt;br /&gt;
&lt;br /&gt;
[http://www.hollywood-mal.com/docs/html/hollywood/DisplayBrushFX_.html DisplayBrushFX]() shows the selected brush and creates a new layer on the layer stack. The position of the brush can be given&lt;br /&gt;
in pixels, but also using [http://www.hollywood-mal.com/docs/html/hollywood/PrgInbuiltCst_.html inbuilt constants] like '''#CENTER'''. '''FX''' at the end of the function name indicates that there's a&lt;br /&gt;
transition effect displayed when the function is called. In most cases they are a bit over the top, and you probably&lt;br /&gt;
end up using [http://www.hollywood-mal.com/docs/html/hollywood/DisplayBrush_.html DisplayBrush]() or other options to render the graphics.&lt;br /&gt;
&lt;br /&gt;
Layers get ID numbers automatically and they are assigned dynamically, which means that removing a layer changes the ID&lt;br /&gt;
numbers of the layers on top of it. To make life easier we can name the layers and handle them by their names&lt;br /&gt;
instead of their ID numbers. [http://www.hollywood-mal.com/docs/html/hollywood/SetLayerName_.html SetLayerName]() is one way to do that, and we use it to name the layer with the brush here.&lt;br /&gt;
The function accepts a layer ID number and name as parameters. Our displayed brush creates the first layer on the layer&lt;br /&gt;
stack and its ID number will thus be 1. [http://www.hollywood-mal.com/docs/html/hollywood/SetLayerName_.html SetLayerName](1,&amp;quot;gfx&amp;quot;) would work in this case, and our layer would get the name &amp;quot;gfx&amp;quot;&lt;br /&gt;
as intended. But to make life even easier we can give '''ID number 0''' as the first parameter, and the name will be given to the last&lt;br /&gt;
created layer. This way you don't have to keep count of layers at all.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Function p_Input(msg)&lt;br /&gt;
     [http://www.hollywood-mal.com/docs/html/hollywood/DebugPrint_.html DebugPrint](&amp;quot;Input event!&amp;quot;, msg.Action)&lt;br /&gt;
     Switch(msg.Action)&lt;br /&gt;
     Case &amp;quot;OnKeyDown&amp;quot;:&lt;br /&gt;
         [http://www.hollywood-mal.com/docs/html/hollywood/DebugPrint_.html DebugPrint](msg.Key, &amp;quot;key was pressed.&amp;quot;)&lt;br /&gt;
         Switch(msg.Key)&lt;br /&gt;
         Case &amp;quot; &amp;quot;:&lt;br /&gt;
             p_DrawGfx()&lt;br /&gt;
         Case &amp;quot;ESC&amp;quot;:&lt;br /&gt;
             [http://www.hollywood-mal.com/docs/html/hollywood/DebugPrint_.html DebugPrint](&amp;quot;Quitting...&amp;quot;)&lt;br /&gt;
             End&lt;br /&gt;
         EndSwitch&lt;br /&gt;
     Case &amp;quot;OnMouseDown&amp;quot;:&lt;br /&gt;
         p_DrawGfx()&lt;br /&gt;
     EndSwitch&lt;br /&gt;
 EndFunction&lt;br /&gt;
&lt;br /&gt;
Here's another function created by us. It is used to handle user input events. Event handling functions will get a&lt;br /&gt;
message table as their parameter, and we'll get it as a local variable called &amp;quot;msg&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[http://www.hollywood-mal.com/docs/html/hollywood/DebugPrint_.html DebugPrint]() is a useful function for checking what values we have in certain variables during the program execution. Don't&lt;br /&gt;
hesitate to use it temporarily to learn what results you get from different functions and what values you have in variables.&lt;br /&gt;
Here it is used to print the '''Action''' field from the message table, which tells us the name of the event that occured.&lt;br /&gt;
&lt;br /&gt;
If the user presses a key, we get an '''OnKeyDown''' event, and if the user presses the left mouse button, we get an '''OnMouseDown''' event.&lt;br /&gt;
A full list of standard events can be found [http://www.hollywood-mal.com/docs/html/hollywood/InstallEventHandler_.html here].&lt;br /&gt;
&lt;br /&gt;
We handle different events with a [http://www.hollywood-mal.com/docs/html/hollywood/PrgSwitch_.html Switch-Case] statement in this example, but feel free to handle it in other ways if you please. It&lt;br /&gt;
is also possible to have a separate function for each event.&lt;br /&gt;
&lt;br /&gt;
If we take a look at the [http://www.hollywood-mal.com/docs/html/hollywood/InstallEventHandler_.html documentation], we see that the '''OnKeyDown''' event contains the exact key that was pressed in its '''Key'''&lt;br /&gt;
field. It can be accessed with the '''msg.Key''' table item in our function.&lt;br /&gt;
&lt;br /&gt;
The inner [http://www.hollywood-mal.com/docs/html/hollywood/PrgSwitch_.html Switch-Case] statement checks if the pressed key was space or escape. If it was '''space''', our previous drawing function&lt;br /&gt;
is called and you get new graphics on the display, whereas pressing the '''escape''' key quits the program with a message. Pressing any&lt;br /&gt;
other keys will just print the key without doing anything else.&lt;br /&gt;
&lt;br /&gt;
Pressing the '''left mouse button''' also calls our previous drawing function, and the display gets refreshed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 [http://www.hollywood-mal.com/docs/html/hollywood/LoadBrush_.html LoadBrush](2, &amp;quot;MOSSYS:Data/Jalapeno/TrackMode.png&amp;quot;, {LoadAlpha=True})&lt;br /&gt;
&lt;br /&gt;
The first image in our example program was loaded with the [http://www.hollywood-mal.com/docs/html/hollywood/atBRUSH_.html @BRUSH] preprocessor command, but let's load the second image separately.&lt;br /&gt;
The difference between them is that by doing the latter the image doesn't get linked into our executable file when we compile the program. The image&lt;br /&gt;
is loaded from the filesystem every time you run the program, no matter if it's compiled or not.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 p_DrawGfx()&lt;br /&gt;
&lt;br /&gt;
Now that we have both images loaded as brushes, we can call the function we defined earlier, and we get some graphics shown in&lt;br /&gt;
the application window.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 [http://www.hollywood-mal.com/docs/html/hollywood/InstallEventHandler_.html InstallEventHandler]({OnKeyDown = p_Input, OnMouseDown = p_Input})&lt;br /&gt;
&lt;br /&gt;
Our previously defined p_Input() function doesn't get any events unless we install event handlers. A table passed to the&lt;br /&gt;
[http://www.hollywood-mal.com/docs/html/hollywood/InstallEventHandler_.html InstallEventHandler]() function defines which events are listened to and what functions they call when triggered. Here&lt;br /&gt;
we define both '''OnKeyDown''' and '''OnMouseDown''' events to call our own '''p_Input()''' function, and user input will work from now on.&lt;br /&gt;
As you can see, events can call the same function or they can be made to call other functions if necessary.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Repeat&lt;br /&gt;
     [http://www.hollywood-mal.com/docs/html/hollywood/WaitEvent_.html WaitEvent]&lt;br /&gt;
 Forever &lt;br /&gt;
&lt;br /&gt;
This is the main loop of the program. The [http://www.hollywood-mal.com/docs/html/hollywood/WaitEvent_.html WaitEvent] function is called repeatedly as long as our program is running and it only&lt;br /&gt;
waits for any event to happen. The program just sleeps and doesn't waste any CPU time when there aren't any events.&lt;br /&gt;
&lt;br /&gt;
Save the script as '''hwexample.hws''' and run it with the &amp;lt;code&amp;gt;Hollywood hwexample.hws -quiet&amp;lt;/code&amp;gt; command from the shell or with the F4 key in Cubic IDE.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;gt; [[Crash_Course_to_Hollywood_Programming/Example_3_-_System-Friendly_GUI|Proceed to the next example]]&lt;/div&gt;</summary>
		<author><name>JPV</name></author>	</entry>

	<entry>
		<id>https://library.morph.zone/index.php?title=Style_Guide&amp;diff=4382</id>
		<title>Style Guide</title>
		<link rel="alternate" type="text/html" href="https://library.morph.zone/index.php?title=Style_Guide&amp;diff=4382"/>
				<updated>2025-11-30T15:05:30Z</updated>
		
		<summary type="html">&lt;p&gt;JPV: Fixed capitalization on menu items.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This article presents fundamental recommendations for developing high-quality MorphOS software. Many applications do not fail because of missing functionality, but because of details that negatively affect the user experience. The following guidelines help avoid common pitfalls and ensure that applications integrate consistently into the MorphOS environment.&lt;br /&gt;
&lt;br /&gt;
== Structure of the Software Archive ==&lt;br /&gt;
&lt;br /&gt;
A professional first impression begins with the structure of the distributed archive. A program should always be delivered inside its own directory without version numbers in the directory or file names. This makes handling software packages easier for both the user and the system.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
The fictional tool ''Brawny'' is distributed as an archive named ''Brawny.lha'', containing a folder ''Brawny'' with all relevant files, including a program icon. Subfolders such as ''Help'' or language directories should each have their own .info file; purely system-related folders like ''Catalogs'' do not need one.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
Ram Disk:&amp;gt; lha x Brawny.lha&lt;br /&gt;
&lt;br /&gt;
Extracting from archive 'Brawny.lha':&lt;br /&gt;
 Extracting: (      4716/      4716)  Brawny.info&lt;br /&gt;
 Extracting: (   6567813/   6567813)  Brawny/Brawny&lt;br /&gt;
 Extracting: (     30276/     30276)  Brawny/Brawny.info&lt;br /&gt;
 Extracting: (     54414/     54414)  Brawny/Brawny.readme&lt;br /&gt;
 Extracting: (        54/        54)  Brawny/Brawny.readme.info&lt;br /&gt;
5 files extracted, all files OK.&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A clean archive structure improves access via both the Shell and the graphical Ambient interface.&lt;br /&gt;
&lt;br /&gt;
== The Correct Version String ==&lt;br /&gt;
&lt;br /&gt;
MorphOS requires a strictly defined format for version strings. Only when applications follow this standard can tools such as [[Shell_Commands/Version | Version]], package managers, or file comparison utilities work reliably.&lt;br /&gt;
&lt;br /&gt;
Version string format:&lt;br /&gt;
&lt;br /&gt;
 $VER: &amp;lt;ApplicationName&amp;gt; &amp;lt;Version&amp;gt;.&amp;lt;Revision&amp;gt; (&amp;lt;DD.MM.YY&amp;gt;) © &amp;lt;Year AuthorName&amp;gt; &amp;lt;optional additional info&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Important notes:&lt;br /&gt;
&lt;br /&gt;
* Version and revision consist of digits only.&lt;br /&gt;
* No letters or further sub-versions.&lt;br /&gt;
* The exact location in the program code is irrelevant, but it should appear early so it can be read quickly.&lt;br /&gt;
&lt;br /&gt;
An incorrect version string can cause scripts or system tools to malfunction and should therefore be avoided at all costs.&lt;br /&gt;
&lt;br /&gt;
== User Interface Principles ==&lt;br /&gt;
=== Localization ===&lt;br /&gt;
&lt;br /&gt;
Supporting multiple languages should be standard practice today. MorphOS provides extensive mechanisms for this purpose, and developers should make use of them.&lt;br /&gt;
&lt;br /&gt;
=== Labeling of UI Elements ===&lt;br /&gt;
&lt;br /&gt;
Labels for input elements should always end with a colon. This clearly indicates their association to the user.&lt;br /&gt;
:: [[File:styleguide_labels.png|frameless]]&lt;br /&gt;
&lt;br /&gt;
=== Buttons and Ellipses ===&lt;br /&gt;
&lt;br /&gt;
Ellipsis (three dots) is added to a button label to distinguish between direct and indirect actions.&lt;br /&gt;
&lt;br /&gt;
A clear rule applies to it:&lt;br /&gt;
* Direct action:   &amp;quot;Format&amp;quot;     (action starts immediately)&lt;br /&gt;
* Indirect action: &amp;quot;Format...&amp;quot; (opens a new window or confirmation dialog first)&lt;br /&gt;
&lt;br /&gt;
This convention increases predictability and safety for the user.&lt;br /&gt;
:: [[File:styleguide_buttons.png|frameless]]&lt;br /&gt;
&lt;br /&gt;
Note that in some languages, like in German, a space character is added between labels and ellipses (&amp;quot;Formatieren ...&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
=== Checkboxes ===&lt;br /&gt;
&lt;br /&gt;
* The text is always placed to the right of the checkbox.&lt;br /&gt;
* A uniform grid alignment creates a calm and consistent appearance.&lt;br /&gt;
:: [[File:styleguide_checkmarks.png|frameless]]&lt;br /&gt;
&lt;br /&gt;
=== Compact Interfaces ===&lt;br /&gt;
&lt;br /&gt;
Even though modern systems support large screens, interfaces should remain scalable and fully usable on 1024×768 displays. MUI supports this largely automatically; nevertheless, developers should:&lt;br /&gt;
* avoid unnecessarily wide buttons and text fields.&lt;br /&gt;
* move explanatory content into tooltips if needed.&lt;br /&gt;
&lt;br /&gt;
== Keyboard Shortcuts ==&lt;br /&gt;
&lt;br /&gt;
Keyboard shortcuts improve operation speed and should be available everywhere. Especially in settings windows, language conventions apply: the underline is usually placed on the first letter of the term (e.g., Save: &amp;quot;S&amp;quot;, Use: &amp;quot;U&amp;quot;, Cancel: &amp;quot;C&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
If the number of available letters is insufficient, the interface should be redesigned, or rarely used options placed in the context menu of a MUI object or in the screen menu.&lt;br /&gt;
:: [[File:styleguide_shortcuts.png|332px|frameless]]&lt;br /&gt;
&lt;br /&gt;
== Screen Menus ==&lt;br /&gt;
&lt;br /&gt;
=== Project vs. Application Menu ===&lt;br /&gt;
&lt;br /&gt;
A Project menu is only appropriate if the application can actually load or save project files. Otherwise, the menu should simply use the application's name.&lt;br /&gt;
:: [[File:styleguide_project_menu.png|frameless]] [[File:styleguide_application_menu.png|frameless|top]]&lt;br /&gt;
&lt;br /&gt;
=== Settings ===&lt;br /&gt;
&lt;br /&gt;
Every application should include a ''Settings'' menu, even if it has no custom options.&lt;br /&gt;
&lt;br /&gt;
At minimum, it must contain the MUI entry, which provides access to the application's local UI settings.&lt;br /&gt;
:: [[File:styleguide_settings_menu.png|frameless]]&lt;br /&gt;
&lt;br /&gt;
=== About Window ===&lt;br /&gt;
&lt;br /&gt;
MorphOS provides the Aboutbox.class, allowing developers to implement a uniform, professional about window with no extra effort.&lt;br /&gt;
&lt;br /&gt;
=== Standard Key Combinations ===&lt;br /&gt;
&lt;br /&gt;
There are established shortcuts (using the right Command key) that should be universal:&lt;br /&gt;
&lt;br /&gt;
* Q -&amp;gt; Quit&lt;br /&gt;
* ? -&amp;gt; About&lt;br /&gt;
* P -&amp;gt; Print&lt;br /&gt;
* N -&amp;gt; New Project&lt;br /&gt;
* O -&amp;gt; Open Project&lt;br /&gt;
* S -&amp;gt; Save&lt;br /&gt;
* A -&amp;gt; Save As&lt;br /&gt;
* X -&amp;gt; Cut&lt;br /&gt;
* C -&amp;gt; Copy&lt;br /&gt;
* V -&amp;gt; Paste&lt;br /&gt;
&lt;br /&gt;
=== Direct and Indirect Actions ===&lt;br /&gt;
&lt;br /&gt;
As with buttons, if a menu entry opens a new window, it must end with an ellipsis (&amp;quot;...&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
== Learning from Existing MorphOS Programs ==&lt;br /&gt;
&lt;br /&gt;
It is worthwhile to study applications included with the system. While not perfect, they generally implement UI conventions very well and serve as best-practice references for your own software.&lt;br /&gt;
&lt;br /&gt;
== Summary ==&lt;br /&gt;
&lt;br /&gt;
By consistently following a few clear design principles, MorphOS applications can be developed professionally and system-conformantly without significant extra effort. Clean archive organization, correct version strings, consistent user interfaces, and adherence to established conventions result in applications that integrate seamlessly into the system and feel immediately familiar to users.&lt;/div&gt;</summary>
		<author><name>JPV</name></author>	</entry>

	<entry>
		<id>https://library.morph.zone/index.php?title=Style_Guide&amp;diff=4381</id>
		<title>Style Guide</title>
		<link rel="alternate" type="text/html" href="https://library.morph.zone/index.php?title=Style_Guide&amp;diff=4381"/>
				<updated>2025-11-27T10:06:01Z</updated>
		
		<summary type="html">&lt;p&gt;JPV: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This article presents fundamental recommendations for developing high-quality MorphOS software. Many applications do not fail because of missing functionality, but because of details that negatively affect the user experience. The following guidelines help avoid common pitfalls and ensure that applications integrate consistently into the MorphOS environment.&lt;br /&gt;
&lt;br /&gt;
== Structure of the Software Archive ==&lt;br /&gt;
&lt;br /&gt;
A professional first impression begins with the structure of the distributed archive. A program should always be delivered inside its own directory without version numbers in the directory or file names. This makes handling software packages easier for both the user and the system.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
The fictional tool ''Brawny'' is distributed as an archive named ''Brawny.lha'', containing a folder ''Brawny'' with all relevant files, including a program icon. Subfolders such as ''Help'' or language directories should each have their own .info file; purely system-related folders like ''Catalogs'' do not need one.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
Ram Disk:&amp;gt; lha x Brawny.lha&lt;br /&gt;
&lt;br /&gt;
Extracting from archive 'Brawny.lha':&lt;br /&gt;
 Extracting: (      4716/      4716)  Brawny.info&lt;br /&gt;
 Extracting: (   6567813/   6567813)  Brawny/Brawny&lt;br /&gt;
 Extracting: (     30276/     30276)  Brawny/Brawny.info&lt;br /&gt;
 Extracting: (     54414/     54414)  Brawny/Brawny.readme&lt;br /&gt;
 Extracting: (        54/        54)  Brawny/Brawny.readme.info&lt;br /&gt;
5 files extracted, all files OK.&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A clean archive structure improves access via both the Shell and the graphical Ambient interface.&lt;br /&gt;
&lt;br /&gt;
== The Correct Version String ==&lt;br /&gt;
&lt;br /&gt;
MorphOS requires a strictly defined format for version strings. Only when applications follow this standard can tools such as [[Shell_Commands/Version | Version]], package managers, or file comparison utilities work reliably.&lt;br /&gt;
&lt;br /&gt;
Version string format:&lt;br /&gt;
&lt;br /&gt;
 $VER: &amp;lt;ApplicationName&amp;gt; &amp;lt;Version&amp;gt;.&amp;lt;Revision&amp;gt; (&amp;lt;DD.MM.YY&amp;gt;) © &amp;lt;Year AuthorName&amp;gt; &amp;lt;optional additional info&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Important notes:&lt;br /&gt;
&lt;br /&gt;
* Version and revision consist of digits only.&lt;br /&gt;
* No letters or further sub-versions.&lt;br /&gt;
* The exact location in the program code is irrelevant, but it should appear early so it can be read quickly.&lt;br /&gt;
&lt;br /&gt;
An incorrect version string can cause scripts or system tools to malfunction and should therefore be avoided at all costs.&lt;br /&gt;
&lt;br /&gt;
== User Interface Principles ==&lt;br /&gt;
=== Localization ===&lt;br /&gt;
&lt;br /&gt;
Supporting multiple languages should be standard practice today. MorphOS provides extensive mechanisms for this purpose, and developers should make use of them.&lt;br /&gt;
&lt;br /&gt;
=== Labeling of UI Elements ===&lt;br /&gt;
&lt;br /&gt;
Labels for input elements should always end with a colon. This clearly indicates their association to the user.&lt;br /&gt;
:: [[File:styleguide_labels.png|frameless]]&lt;br /&gt;
&lt;br /&gt;
=== Buttons and Ellipses ===&lt;br /&gt;
&lt;br /&gt;
Ellipsis (three dots) is added to a button label to distinguish between direct and indirect actions.&lt;br /&gt;
&lt;br /&gt;
A clear rule applies to it:&lt;br /&gt;
* Direct action:   &amp;quot;Format&amp;quot;     (action starts immediately)&lt;br /&gt;
* Indirect action: &amp;quot;Format...&amp;quot; (opens a new window or confirmation dialog first)&lt;br /&gt;
&lt;br /&gt;
This convention increases predictability and safety for the user.&lt;br /&gt;
:: [[File:styleguide_buttons.png|frameless]]&lt;br /&gt;
&lt;br /&gt;
Note that in some languages, like in German, a space character is added between labels and ellipses (&amp;quot;Formatieren ...&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
=== Checkboxes ===&lt;br /&gt;
&lt;br /&gt;
* The text is always placed to the right of the checkbox.&lt;br /&gt;
* A uniform grid alignment creates a calm and consistent appearance.&lt;br /&gt;
:: [[File:styleguide_checkmarks.png|frameless]]&lt;br /&gt;
&lt;br /&gt;
=== Compact Interfaces ===&lt;br /&gt;
&lt;br /&gt;
Even though modern systems support large screens, interfaces should remain scalable and fully usable on 1024×768 displays. MUI supports this largely automatically; nevertheless, developers should:&lt;br /&gt;
* avoid unnecessarily wide buttons and text fields.&lt;br /&gt;
* move explanatory content into tooltips if needed.&lt;br /&gt;
&lt;br /&gt;
== Keyboard Shortcuts ==&lt;br /&gt;
&lt;br /&gt;
Keyboard shortcuts improve operation speed and should be available everywhere. Especially in settings windows, language conventions apply: the underline is usually placed on the first letter of the term (e.g., Save: &amp;quot;S&amp;quot;, Use: &amp;quot;U&amp;quot;, Cancel: &amp;quot;C&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
If the number of available letters is insufficient, the interface should be redesigned, or rarely used options placed in the context menu of a MUI object or in the screen menu.&lt;br /&gt;
:: [[File:styleguide_shortcuts.png|332px|frameless]]&lt;br /&gt;
&lt;br /&gt;
== Screen Menus ==&lt;br /&gt;
&lt;br /&gt;
=== Project vs. Application Menu ===&lt;br /&gt;
&lt;br /&gt;
A Project menu is only appropriate if the application can actually load or save project files. Otherwise, the menu should simply use the application's name.&lt;br /&gt;
:: [[File:styleguide_project_menu.png|frameless]] [[File:styleguide_application_menu.png|frameless|top]]&lt;br /&gt;
&lt;br /&gt;
=== Settings ===&lt;br /&gt;
&lt;br /&gt;
Every application should include a ''Settings'' menu, even if it has no custom options.&lt;br /&gt;
&lt;br /&gt;
At minimum, it must contain the MUI entry, which provides access to the application's local UI settings.&lt;br /&gt;
:: [[File:styleguide_settings_menu.png|frameless]]&lt;br /&gt;
&lt;br /&gt;
=== About Window ===&lt;br /&gt;
&lt;br /&gt;
MorphOS provides the Aboutbox.class, allowing developers to implement a uniform, professional about window with no extra effort.&lt;br /&gt;
&lt;br /&gt;
=== Standard Key Combinations ===&lt;br /&gt;
&lt;br /&gt;
There are established shortcuts (using the right Command key) that should be universal:&lt;br /&gt;
&lt;br /&gt;
* Q -&amp;gt; Quit&lt;br /&gt;
* ? -&amp;gt; About&lt;br /&gt;
* P -&amp;gt; Print&lt;br /&gt;
* N -&amp;gt; New project&lt;br /&gt;
* O -&amp;gt; Open project&lt;br /&gt;
* S -&amp;gt; Save&lt;br /&gt;
* A -&amp;gt; Save As&lt;br /&gt;
* X -&amp;gt; Cut&lt;br /&gt;
* C -&amp;gt; Copy&lt;br /&gt;
* V -&amp;gt; Paste&lt;br /&gt;
&lt;br /&gt;
=== Direct and Indirect Actions ===&lt;br /&gt;
&lt;br /&gt;
As with buttons, if a menu entry opens a new window, it must end with an ellipsis (&amp;quot;...&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
== Learning from Existing MorphOS Programs ==&lt;br /&gt;
&lt;br /&gt;
It is worthwhile to study applications included with the system. While not perfect, they generally implement UI conventions very well and serve as best-practice references for your own software.&lt;br /&gt;
&lt;br /&gt;
== Summary ==&lt;br /&gt;
&lt;br /&gt;
By consistently following a few clear design principles, MorphOS applications can be developed professionally and system-conformantly without significant extra effort. Clean archive organization, correct version strings, consistent user interfaces, and adherence to established conventions result in applications that integrate seamlessly into the system and feel immediately familiar to users.&lt;/div&gt;</summary>
		<author><name>JPV</name></author>	</entry>

	<entry>
		<id>https://library.morph.zone/index.php?title=Main_Page&amp;diff=4380</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://library.morph.zone/index.php?title=Main_Page&amp;diff=4380"/>
				<updated>2025-11-27T07:45:12Z</updated>
		
		<summary type="html">&lt;p&gt;JPV: /* Development */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;siteLogo&amp;quot; style=&amp;quot;float: right;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size:162%; border:none; margin:0; padding:.1em; color:#274572;&amp;quot;&amp;gt;Welcome to the MorphOS Library,&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;top:+0.2em; font-size:95%; margin-bottom: 30px;&amp;quot;&amp;gt;the wiki based library of MorphOS related documentation.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;strong&amp;gt;Would you like to contribute and edit articles?&amp;lt;/strong&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Please contact us to set up an account via:&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-top: -10px; margin-bottom: 20px;&amp;quot;&amp;gt;https://morph.zone/message2library.png&amp;lt;/div&amp;gt;&lt;br /&gt;
'''Important notes to editors:''' [[Basic Guidelines]] - [[List of Wanted Articles]]&lt;br /&gt;
----&lt;br /&gt;
&amp;lt;small&amp;gt;This page in other languages: [[Strona główna|Polish]] [[Page principale|Français]]&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==About MorphOS==&lt;br /&gt;
MorphOS - The Lightning OS&lt;br /&gt;
&amp;lt;div class=&amp;quot;threecolumns&amp;quot;&amp;gt;&lt;br /&gt;
* [[What is MorphOS?]]&lt;br /&gt;
* [[Hardware Platforms]]&lt;br /&gt;
* [[Installation]]&lt;br /&gt;
* [[Characteristic features]]&lt;br /&gt;
* [[MorphOS integration]]&lt;br /&gt;
* [[MorphOS Development]]&lt;br /&gt;
* [[Developer tools]]&lt;br /&gt;
* [[3D graphics]]&lt;br /&gt;
* [[Games]]&lt;br /&gt;
* [[MorphOS key applications]]&lt;br /&gt;
* [[Platform expansion]]&lt;br /&gt;
* [[Who needs MorphOS?]]&lt;br /&gt;
* [[Conclusions]]&lt;br /&gt;
* [[Useful links]]&lt;br /&gt;
* [[F.A.Q.]]&lt;br /&gt;
* [[Historical notes]]&lt;br /&gt;
* [[Contributors]]&amp;lt;/div&amp;gt;&lt;br /&gt;
A five minute read for users familiar with the Commodore Amiga&lt;br /&gt;
*[[MorphOS in 5 minutes]]&lt;br /&gt;
&lt;br /&gt;
==Articles==&lt;br /&gt;
The core of the MorphOS Library can be found here.  Along with the provided manuals, there are several documents designed to help users get the most out of their MorphOS powered computer.&lt;br /&gt;
&lt;br /&gt;
* [[Fundamentals of MorphOS]]&lt;br /&gt;
* [[Dictionary of Terms]]&lt;br /&gt;
* [[First_Steps_Using_MorphOS | First Steps Using MorphOS]]&lt;br /&gt;
* [[Volume Names]]&lt;br /&gt;
* [[Applications|Applications Included with MorphOS]]&lt;br /&gt;
* [[Tools|Tools Included with MorphOS]]&lt;br /&gt;
* [[Utilities|Utilities Included with MorphOS]]&lt;br /&gt;
* [[Screenbar_Modules|Screenbar Modules Included with MorphOS]]&lt;br /&gt;
* [[Bundled_Games|Games Included with MorphOS]]&lt;br /&gt;
* [[Blankers|Blankers Included with MorphOS]]&lt;br /&gt;
* [[Shell Commands|Shell: Commands]]&lt;br /&gt;
* [[Pattern matching|Shell: Pattern Matching]]&lt;br /&gt;
* [[Filesystems | File Systems]]&lt;br /&gt;
* [[Supported Computers]]&lt;br /&gt;
* [[Supported HD cards]]&lt;br /&gt;
* [[Hardware Compatibility]]&lt;br /&gt;
* [[MIDI | MIDI Support]]&lt;br /&gt;
* [[Tips and Tricks]]&lt;br /&gt;
&lt;br /&gt;
==Tutorials==&lt;br /&gt;
Welcome to the Tutorials section of the MorphOS Library.  In this aisle of the library you can find examples and step by step instructions to help get the most out of your MorphOS experience.&lt;br /&gt;
&lt;br /&gt;
*[[Getting_Started | Getting Started - A Beginner's Guide to MorphOS]]&lt;br /&gt;
*[[Modifying the User-Startup file]]&lt;br /&gt;
*[[Configuring_Network | Configuring a Network Connection]]&lt;br /&gt;
*[[Installing_software | Installing Third Party Software]]&lt;br /&gt;
*[[Dual-boot MorphOS and MacOS X on a Mac Mini G4]]&lt;br /&gt;
*[[How to write Mails with SimpleMail]]&lt;br /&gt;
*[[Creating Backups]]&lt;br /&gt;
*[[MorphOS External USB Drive Backup Guide]]&lt;br /&gt;
*[[Scanning with SCANdal]]&lt;br /&gt;
*[[Recording an LP with Audio Evolution 4]]&lt;br /&gt;
*[[Passwordless SSH login with RemoteShell]]&lt;br /&gt;
*[[How to Install Directory Opus Magellan II]]&lt;br /&gt;
*[[How to Make MorphOS Look Like OS4]]&lt;br /&gt;
*[[How to Use Game Controllers]]&lt;br /&gt;
*[[Preparing_an_Amiga_Hard_Drive]]&lt;br /&gt;
*[[Mounting_Network_Drives]]&lt;br /&gt;
*[[How to translate program with SimpleCat]]&lt;br /&gt;
*[[Creating_Ambient_Filetypes]]&lt;br /&gt;
*[[Open_Firmware | Using Open Firmware]]&lt;br /&gt;
*[[Print_System | Using the New Printing System]]&lt;br /&gt;
*[[Multi-display | Using Multi-display Setups]]&lt;br /&gt;
&lt;br /&gt;
==Development==&lt;br /&gt;
In the development section of the MorphOS Library, you can find a collection of helpful articles and tutorials focused on MorphOS software development.&lt;br /&gt;
&lt;br /&gt;
*[[First steps in MorphOS programming]]&lt;br /&gt;
*[[Magic User Interface Programming]]&lt;br /&gt;
*[[In-depth: The New MorphOS Memory System]]&lt;br /&gt;
*[[Reggae: MorphOS multimedia framework]]&lt;br /&gt;
*[[An Introduction to MorphOS PPC Assembly]]&lt;br /&gt;
*[[Advanced Topics]]&lt;br /&gt;
*[[Getting Started with Lua]]&lt;br /&gt;
*[[Crash_Course_to_Hollywood_Programming]]&lt;br /&gt;
*[[Style_Guide | Design Guidelines for MorphOS Applications (Style Guide)]]&lt;br /&gt;
&lt;br /&gt;
==Benchmarks, Reports &amp;amp; Reviews==&lt;br /&gt;
*[[jPV's MorphOS 2 Review]]&lt;br /&gt;
*[[What's New in MorphOS 3]]&lt;br /&gt;
*[[What's New in MorphOS 3.10]]&lt;br /&gt;
*[[What's New in MorphOS 3.16]]&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
The MorphOS Link Database is a collection of websites that are of interest to all current and potential future users of MorphOS. For easier navigation, we have separated the list of websites into multiple categories.&lt;br /&gt;
&lt;br /&gt;
*[[Links#Community_Portals_.26_Forums|Community Portals]]&lt;br /&gt;
*[[Links#File_Repositories|File Repositories]]&lt;br /&gt;
*[[Links#Shops|Shops]]&lt;br /&gt;
*[[Links#Software|Software]]&lt;br /&gt;
*[[Links#Developers|Developers]]&lt;br /&gt;
*[[Links#Misc|Misc]]&lt;br /&gt;
&lt;br /&gt;
==Work in Progress==&lt;br /&gt;
*[[ReTooled]]&lt;/div&gt;</summary>
		<author><name>JPV</name></author>	</entry>

	<entry>
		<id>https://library.morph.zone/index.php?title=Style_Guide&amp;diff=4379</id>
		<title>Style Guide</title>
		<link rel="alternate" type="text/html" href="https://library.morph.zone/index.php?title=Style_Guide&amp;diff=4379"/>
				<updated>2025-11-27T07:40:53Z</updated>
		
		<summary type="html">&lt;p&gt;JPV: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''Author: Guido Mersmann''&lt;br /&gt;
&lt;br /&gt;
This article presents fundamental recommendations for developing high-quality MorphOS software. Many applications do not fail because of missing functionality, but because of details that negatively affect the user experience. The following guidelines help avoid common pitfalls and ensure that applications integrate consistently into the MorphOS environment.&lt;br /&gt;
&lt;br /&gt;
== Structure of the Software Archive ==&lt;br /&gt;
&lt;br /&gt;
A professional first impression begins with the structure of the distributed archive. A program should always be delivered inside its own directory without version numbers in the directory or file names. This makes handling software packages easier for both the user and the system.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
The fictional tool ''Brawny'' is distributed as an archive named ''Brawny.lha'', containing a folder ''Brawny'' with all relevant files, including a program icon. Subfolders such as ''Help'' or language directories should each have their own .info file; purely system-related folders like ''Catalogs'' do not need one.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
Ram Disk:&amp;gt; lha x Brawny.lha&lt;br /&gt;
&lt;br /&gt;
Extracting from archive 'Brawny.lha':&lt;br /&gt;
 Extracting: (      4716/      4716)  Brawny.info&lt;br /&gt;
 Extracting: (   6567813/   6567813)  Brawny/Brawny&lt;br /&gt;
 Extracting: (     30276/     30276)  Brawny/Brawny.info&lt;br /&gt;
 Extracting: (     54414/     54414)  Brawny/Brawny.readme&lt;br /&gt;
 Extracting: (        54/        54)  Brawny/Brawny.readme.info&lt;br /&gt;
5 files extracted, all files OK.&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A clean archive structure improves access via both the Shell and the graphical Ambient interface.&lt;br /&gt;
&lt;br /&gt;
== The Correct Version String ==&lt;br /&gt;
&lt;br /&gt;
MorphOS requires a strictly defined format for version strings. Only when applications follow this standard can tools such as [[Shell_Commands/Version | Version]], package managers, or file comparison utilities work reliably.&lt;br /&gt;
&lt;br /&gt;
Version string format:&lt;br /&gt;
&lt;br /&gt;
 $VER: &amp;lt;ApplicationName&amp;gt; &amp;lt;Version&amp;gt;.&amp;lt;Revision&amp;gt; (&amp;lt;DD.MM.YY&amp;gt;) © &amp;lt;Year AuthorName&amp;gt; &amp;lt;optional additional info&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Important notes:&lt;br /&gt;
&lt;br /&gt;
* Version and revision consist of digits only.&lt;br /&gt;
* No letters or further sub-versions.&lt;br /&gt;
* The exact location in the program code is irrelevant, but it should appear early so it can be read quickly.&lt;br /&gt;
&lt;br /&gt;
An incorrect version string can cause scripts or system tools to malfunction and should therefore be avoided at all costs.&lt;br /&gt;
&lt;br /&gt;
== User Interface Principles ==&lt;br /&gt;
=== Localization ===&lt;br /&gt;
&lt;br /&gt;
Supporting multiple languages should be standard practice today. MorphOS provides extensive mechanisms for this purpose, and developers should make use of them.&lt;br /&gt;
&lt;br /&gt;
=== Labeling of UI Elements ===&lt;br /&gt;
&lt;br /&gt;
Labels for input elements should always end with a colon. This clearly indicates their association to the user.&lt;br /&gt;
:: [[File:styleguide_labels.png|frameless]]&lt;br /&gt;
&lt;br /&gt;
=== Buttons and Ellipses ===&lt;br /&gt;
&lt;br /&gt;
Ellipsis (three dots) is added to a button label to distinguish between direct and indirect actions.&lt;br /&gt;
&lt;br /&gt;
A clear rule applies to it:&lt;br /&gt;
* Direct action:   &amp;quot;Format&amp;quot;     (action starts immediately)&lt;br /&gt;
* Indirect action: &amp;quot;Format...&amp;quot; (opens a new window or confirmation dialog first)&lt;br /&gt;
&lt;br /&gt;
This convention increases predictability and safety for the user.&lt;br /&gt;
:: [[File:styleguide_buttons.png|frameless]]&lt;br /&gt;
&lt;br /&gt;
Note that in some languages, like in German, a space character is added between labels and ellipses (&amp;quot;Formatieren ...&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
=== Checkboxes ===&lt;br /&gt;
&lt;br /&gt;
* The text is always placed to the right of the checkbox.&lt;br /&gt;
* A uniform grid alignment creates a calm and consistent appearance.&lt;br /&gt;
:: [[File:styleguide_checkmarks.png|frameless]]&lt;br /&gt;
&lt;br /&gt;
=== Compact Interfaces ===&lt;br /&gt;
&lt;br /&gt;
Even though modern systems support large screens, interfaces should remain scalable and fully usable on 1024×768 displays. MUI supports this largely automatically; nevertheless, developers should:&lt;br /&gt;
* avoid unnecessarily wide buttons and text fields.&lt;br /&gt;
* move explanatory content into tooltips if needed.&lt;br /&gt;
&lt;br /&gt;
== Keyboard Shortcuts ==&lt;br /&gt;
&lt;br /&gt;
Keyboard shortcuts improve operation speed and should be available everywhere. Especially in settings windows, language conventions apply: the underline is usually placed on the first letter of the term (e.g., Save: &amp;quot;S&amp;quot;, Use: &amp;quot;U&amp;quot;, Cancel: &amp;quot;C&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
If the number of available letters is insufficient, the interface should be redesigned, or rarely used options placed in the context menu of a MUI object or in the screen menu.&lt;br /&gt;
:: [[File:styleguide_shortcuts.png|332px|frameless]]&lt;br /&gt;
&lt;br /&gt;
== Screen Menus ==&lt;br /&gt;
&lt;br /&gt;
=== Project vs. Application Menu ===&lt;br /&gt;
&lt;br /&gt;
A Project menu is only appropriate if the application can actually load or save project files. Otherwise, the menu should simply use the application's name.&lt;br /&gt;
:: [[File:styleguide_project_menu.png|frameless]] [[File:styleguide_application_menu.png|frameless|top]]&lt;br /&gt;
&lt;br /&gt;
=== Settings ===&lt;br /&gt;
&lt;br /&gt;
Every application should include a ''Settings'' menu, even if it has no custom options.&lt;br /&gt;
&lt;br /&gt;
At minimum, it must contain the MUI entry, which provides access to the application's local UI settings.&lt;br /&gt;
:: [[File:styleguide_settings_menu.png|frameless]]&lt;br /&gt;
&lt;br /&gt;
=== About Window ===&lt;br /&gt;
&lt;br /&gt;
MorphOS provides the Aboutbox.class, allowing developers to implement a uniform, professional about window with no extra effort.&lt;br /&gt;
&lt;br /&gt;
=== Standard Key Combinations ===&lt;br /&gt;
&lt;br /&gt;
There are established shortcuts (using the right Command key) that should be universal:&lt;br /&gt;
&lt;br /&gt;
* Q -&amp;gt; Quit&lt;br /&gt;
* ? -&amp;gt; About&lt;br /&gt;
* P -&amp;gt; Print&lt;br /&gt;
* N -&amp;gt; New project&lt;br /&gt;
* O -&amp;gt; Open project&lt;br /&gt;
* S -&amp;gt; Save&lt;br /&gt;
* A -&amp;gt; Save As&lt;br /&gt;
* X -&amp;gt; Cut&lt;br /&gt;
* C -&amp;gt; Copy&lt;br /&gt;
* V -&amp;gt; Paste&lt;br /&gt;
&lt;br /&gt;
=== Direct and Indirect Actions ===&lt;br /&gt;
&lt;br /&gt;
As with buttons, if a menu entry opens a new window, it must end with an ellipsis (&amp;quot;...&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
== Learning from Existing MorphOS Programs ==&lt;br /&gt;
&lt;br /&gt;
It is worthwhile to study applications included with the system. While not perfect, they generally implement UI conventions very well and serve as best-practice references for your own software.&lt;br /&gt;
&lt;br /&gt;
== Summary ==&lt;br /&gt;
&lt;br /&gt;
By consistently following a few clear design principles, MorphOS applications can be developed professionally and system-conformantly without significant extra effort. Clean archive organization, correct version strings, consistent user interfaces, and adherence to established conventions result in applications that integrate seamlessly into the system and feel immediately familiar to users.&lt;/div&gt;</summary>
		<author><name>JPV</name></author>	</entry>

	<entry>
		<id>https://library.morph.zone/index.php?title=Style_Guide&amp;diff=4378</id>
		<title>Style Guide</title>
		<link rel="alternate" type="text/html" href="https://library.morph.zone/index.php?title=Style_Guide&amp;diff=4378"/>
				<updated>2025-11-26T14:53:37Z</updated>
		
		<summary type="html">&lt;p&gt;JPV: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''Author: Guido Mersmann''&lt;br /&gt;
&lt;br /&gt;
This article presents fundamental recommendations for developing high-quality MorphOS software. Many applications do not fail because of missing functionality, but because of details that negatively affect the user experience. The following guidelines help avoid common pitfalls and ensure that applications integrate consistently into the MorphOS environment.&lt;br /&gt;
&lt;br /&gt;
== Structure of the Software Archive ==&lt;br /&gt;
&lt;br /&gt;
A professional first impression begins with the structure of the distributed archive. A program should always be delivered inside its own directory without version numbers in the directory or file names. This makes handling software packages easier for both the user and the system.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
The fictional tool ''Brawny'' is distributed as an archive named ''Brawny.lha'', containing a folder ''Brawny'' with all relevant files, including a program icon. Subfolders such as ''Help'' or language directories should each have their own .info file; purely system-related folders like ''Catalogs'' do not need one.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
Ram Disk:&amp;gt; lha x Brawny.lha&lt;br /&gt;
&lt;br /&gt;
Extracting from archive 'Brawny.lha':&lt;br /&gt;
 Extracting: (      4716/      4716)  Brawny.info&lt;br /&gt;
 Extracting: (   6567813/   6567813)  Brawny/Brawny&lt;br /&gt;
 Extracting: (     30276/     30276)  Brawny/Brawny.info&lt;br /&gt;
 Extracting: (     54414/     54414)  Brawny/Brawny.readme&lt;br /&gt;
 Extracting: (        54/        54)  Brawny/Brawny.readme.info&lt;br /&gt;
5 files extracted, all files OK.&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A clean archive structure improves access via both the Shell and the graphical Ambient interface.&lt;br /&gt;
&lt;br /&gt;
== The Correct Version String ==&lt;br /&gt;
&lt;br /&gt;
MorphOS requires a strictly defined format for version strings. Only when applications follow this standard can tools such as [[Shell_Commands/Version | Version]], package managers, or file comparison utilities work reliably.&lt;br /&gt;
&lt;br /&gt;
Version string format:&lt;br /&gt;
&lt;br /&gt;
 $VER: &amp;lt;ApplicationName&amp;gt; &amp;lt;Version&amp;gt;.&amp;lt;Revision&amp;gt; (&amp;lt;DD.MM.YY&amp;gt;) © &amp;lt;Year AuthorName&amp;gt; &amp;lt;optional additional info&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Important notes:&lt;br /&gt;
&lt;br /&gt;
* Version and revision consist of digits only.&lt;br /&gt;
* No letters or further sub-versions.&lt;br /&gt;
* The exact location in the program code is irrelevant, but it should appear early so it can be read quickly.&lt;br /&gt;
&lt;br /&gt;
An incorrect version string can cause scripts or system tools to malfunction and should therefore be avoided at all costs.&lt;br /&gt;
&lt;br /&gt;
== User Interface Principles ==&lt;br /&gt;
=== Localization ===&lt;br /&gt;
&lt;br /&gt;
Supporting multiple languages should be standard practice today. MorphOS provides extensive mechanisms for this purpose, and developers should make use of them.&lt;br /&gt;
&lt;br /&gt;
=== Labeling of UI Elements ===&lt;br /&gt;
&lt;br /&gt;
Labels for input elements should always end with a colon. This clearly indicates their association to the user.&lt;br /&gt;
:: [[File:styleguide_labels.png|frameless]]&lt;br /&gt;
&lt;br /&gt;
=== Buttons and Ellipses ===&lt;br /&gt;
&lt;br /&gt;
To distinguish between direct and indirect actions, a clear rule applies:&lt;br /&gt;
* Direct action:   &amp;quot;Format&amp;quot;     (action starts immediately)&lt;br /&gt;
* Indirect action: &amp;quot;Format...&amp;quot; (opens a new window or confirmation dialog first)&lt;br /&gt;
&lt;br /&gt;
This convention increases predictability and safety for the user.&lt;br /&gt;
:: [[File:styleguide_buttons.png|frameless]]&lt;br /&gt;
&lt;br /&gt;
=== Checkboxes ===&lt;br /&gt;
&lt;br /&gt;
* The text is always placed to the right of the checkbox.&lt;br /&gt;
* A uniform grid alignment creates a calm and consistent appearance.&lt;br /&gt;
:: [[File:styleguide_checkmarks.png|frameless]]&lt;br /&gt;
&lt;br /&gt;
=== Compact Interfaces ===&lt;br /&gt;
&lt;br /&gt;
Even though modern systems support large screens, interfaces should remain scalable and fully usable on 1024×768 displays. MUI supports this largely automatically; nevertheless, developers should:&lt;br /&gt;
* avoid unnecessarily wide buttons and text fields.&lt;br /&gt;
* move explanatory content into tooltips if needed.&lt;br /&gt;
&lt;br /&gt;
== Keyboard Shortcuts ==&lt;br /&gt;
&lt;br /&gt;
Keyboard shortcuts improve operation speed and should be available everywhere. Especially in settings windows, language conventions apply: the underline is usually placed on the first letter of the term (e.g., Save: &amp;quot;S&amp;quot;, Use: &amp;quot;U&amp;quot;, Cancel: &amp;quot;C&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
If the number of available letters is insufficient, the interface should be redesigned, or rarely used options placed in the context menu of a MUI object or in the screen menu.&lt;br /&gt;
:: [[File:styleguide_shortcuts.png|frameless]]&lt;br /&gt;
&lt;br /&gt;
== Screen Menus ==&lt;br /&gt;
&lt;br /&gt;
=== Project vs. Application Menu ===&lt;br /&gt;
&lt;br /&gt;
A Project menu is only appropriate if the application can actually load or save project files. Otherwise, the menu should simply use the application's name.&lt;br /&gt;
:: [[File:styleguide_project_menu.png|frameless]] [[File:styleguide_application_menu.png|frameless|top]]&lt;br /&gt;
&lt;br /&gt;
=== Settings ===&lt;br /&gt;
&lt;br /&gt;
Every application should include a ''Settings'' menu, even if it has no custom options.&lt;br /&gt;
&lt;br /&gt;
At minimum, it must contain the MUI entry, which provides access to the application's local UI settings.&lt;br /&gt;
:: [[File:styleguide_settings_menu.png|frameless]]&lt;br /&gt;
&lt;br /&gt;
=== About Window ===&lt;br /&gt;
&lt;br /&gt;
MorphOS provides the Aboutbox.class, allowing developers to implement a uniform, professional about window with no extra effort.&lt;br /&gt;
&lt;br /&gt;
=== Standard Key Combinations ===&lt;br /&gt;
&lt;br /&gt;
There are established shortcuts (using the right Command key) that should be universal:&lt;br /&gt;
&lt;br /&gt;
* Q -&amp;gt; Quit&lt;br /&gt;
* ? -&amp;gt; About&lt;br /&gt;
* P -&amp;gt; Print&lt;br /&gt;
* N -&amp;gt; New project&lt;br /&gt;
* O -&amp;gt; Open project&lt;br /&gt;
* S -&amp;gt; Save&lt;br /&gt;
* A -&amp;gt; Save As&lt;br /&gt;
* X -&amp;gt; Cut&lt;br /&gt;
* C -&amp;gt; Copy&lt;br /&gt;
* V -&amp;gt; Paste&lt;br /&gt;
&lt;br /&gt;
=== Direct and Indirect Actions ===&lt;br /&gt;
&lt;br /&gt;
As with buttons, if a menu entry opens a new window, it must end with &amp;quot;...&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Learning from Existing MorphOS Programs ==&lt;br /&gt;
&lt;br /&gt;
It is worthwhile to study applications included with the system. While not perfect, they generally implement UI conventions very well and serve as best-practice references for your own software.&lt;br /&gt;
&lt;br /&gt;
== Summary ==&lt;br /&gt;
&lt;br /&gt;
By consistently following a few clear design principles, MorphOS applications can be developed professionally and system-conformantly without significant extra effort. Clean archive organization, correct version strings, consistent user interfaces, and adherence to established conventions result in applications that integrate seamlessly into the system and feel immediately familiar to users.&lt;/div&gt;</summary>
		<author><name>JPV</name></author>	</entry>

	<entry>
		<id>https://library.morph.zone/index.php?title=File:Styleguide_application_menu.png&amp;diff=4377</id>
		<title>File:Styleguide application menu.png</title>
		<link rel="alternate" type="text/html" href="https://library.morph.zone/index.php?title=File:Styleguide_application_menu.png&amp;diff=4377"/>
				<updated>2025-11-26T14:44:23Z</updated>
		
		<summary type="html">&lt;p&gt;JPV: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>JPV</name></author>	</entry>

	<entry>
		<id>https://library.morph.zone/index.php?title=File:Styleguide_shortcuts.png&amp;diff=4376</id>
		<title>File:Styleguide shortcuts.png</title>
		<link rel="alternate" type="text/html" href="https://library.morph.zone/index.php?title=File:Styleguide_shortcuts.png&amp;diff=4376"/>
				<updated>2025-11-26T14:27:51Z</updated>
		
		<summary type="html">&lt;p&gt;JPV: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>JPV</name></author>	</entry>

	<entry>
		<id>https://library.morph.zone/index.php?title=File:Styleguide_settings_menu.png&amp;diff=4375</id>
		<title>File:Styleguide settings menu.png</title>
		<link rel="alternate" type="text/html" href="https://library.morph.zone/index.php?title=File:Styleguide_settings_menu.png&amp;diff=4375"/>
				<updated>2025-11-26T14:11:17Z</updated>
		
		<summary type="html">&lt;p&gt;JPV: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>JPV</name></author>	</entry>

	<entry>
		<id>https://library.morph.zone/index.php?title=File:Styleguide_project_menu.png&amp;diff=4374</id>
		<title>File:Styleguide project menu.png</title>
		<link rel="alternate" type="text/html" href="https://library.morph.zone/index.php?title=File:Styleguide_project_menu.png&amp;diff=4374"/>
				<updated>2025-11-26T14:11:05Z</updated>
		
		<summary type="html">&lt;p&gt;JPV: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>JPV</name></author>	</entry>

	<entry>
		<id>https://library.morph.zone/index.php?title=File:Styleguide_labels.png&amp;diff=4373</id>
		<title>File:Styleguide labels.png</title>
		<link rel="alternate" type="text/html" href="https://library.morph.zone/index.php?title=File:Styleguide_labels.png&amp;diff=4373"/>
				<updated>2025-11-26T14:10:45Z</updated>
		
		<summary type="html">&lt;p&gt;JPV: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>JPV</name></author>	</entry>

	<entry>
		<id>https://library.morph.zone/index.php?title=File:Styleguide_checkmarks.png&amp;diff=4372</id>
		<title>File:Styleguide checkmarks.png</title>
		<link rel="alternate" type="text/html" href="https://library.morph.zone/index.php?title=File:Styleguide_checkmarks.png&amp;diff=4372"/>
				<updated>2025-11-26T14:10:31Z</updated>
		
		<summary type="html">&lt;p&gt;JPV: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>JPV</name></author>	</entry>

	<entry>
		<id>https://library.morph.zone/index.php?title=File:Styleguide_buttons.png&amp;diff=4371</id>
		<title>File:Styleguide buttons.png</title>
		<link rel="alternate" type="text/html" href="https://library.morph.zone/index.php?title=File:Styleguide_buttons.png&amp;diff=4371"/>
				<updated>2025-11-26T14:10:01Z</updated>
		
		<summary type="html">&lt;p&gt;JPV: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>JPV</name></author>	</entry>

	<entry>
		<id>https://library.morph.zone/index.php?title=Style_Guide&amp;diff=4370</id>
		<title>Style Guide</title>
		<link rel="alternate" type="text/html" href="https://library.morph.zone/index.php?title=Style_Guide&amp;diff=4370"/>
				<updated>2025-11-26T13:14:58Z</updated>
		
		<summary type="html">&lt;p&gt;JPV: Created page with &amp;quot;''Author: Guido Mersmann''  This article presents fundamental recommendations for developing high-quality MorphOS software. Many applications do not fail because of missing fu...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''Author: Guido Mersmann''&lt;br /&gt;
&lt;br /&gt;
This article presents fundamental recommendations for developing high-quality MorphOS software. Many applications do not fail because of missing functionality, but because of details that negatively affect the user experience. The following guidelines help avoid common pitfalls and ensure that applications integrate consistently into the MorphOS environment.&lt;br /&gt;
&lt;br /&gt;
== Structure of the Software Archive ==&lt;br /&gt;
&lt;br /&gt;
A professional first impression begins with the structure of the distributed archive. A program should always be delivered inside its own directory without version numbers in the directory or file names. This makes handling software packages easier for both the user and the system.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
The fictional tool ''Brawny'' is distributed as an archive named ''Brawny.lha'', containing a folder ''Brawny'' with all relevant files, including a program icon. Subfolders such as ''Help'' or language directories should each have their own .info file; purely system-related folders like ''Catalogs'' do not need one.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
Ram Disk:&amp;gt; lha x Brawny.lha&lt;br /&gt;
&lt;br /&gt;
Extracting from archive 'Brawny.lha':&lt;br /&gt;
 Extracting: (      4716/      4716)  Brawny.info&lt;br /&gt;
 Extracting: (   6567813/   6567813)  Brawny/Brawny&lt;br /&gt;
 Extracting: (     30276/     30276)  Brawny/Brawny.info&lt;br /&gt;
 Extracting: (     54414/     54414)  Brawny/Brawny.readme&lt;br /&gt;
 Extracting: (        54/        54)  Brawny/Brawny.readme.info&lt;br /&gt;
5 files extracted, all files OK.&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A clean archive structure improves access via both the Shell and the graphical Ambient interface.&lt;br /&gt;
&lt;br /&gt;
== The Correct Version String ==&lt;br /&gt;
&lt;br /&gt;
MorphOS requires a strictly defined format for version strings. Only when applications follow this standard can tools such as [[Shell_Commands/Version | Version]], package managers, or file comparison utilities work reliably.&lt;br /&gt;
&lt;br /&gt;
Version string format:&lt;br /&gt;
&lt;br /&gt;
 $VER: &amp;lt;ApplicationName&amp;gt; &amp;lt;Version&amp;gt;.&amp;lt;Revision&amp;gt; (&amp;lt;DD.MM.YY&amp;gt;) © &amp;lt;Year AuthorName&amp;gt; &amp;lt;optional additional info&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Important notes:&lt;br /&gt;
&lt;br /&gt;
* Version and revision consist of digits only.&lt;br /&gt;
* No letters or further sub-versions.&lt;br /&gt;
* The exact location in the program code is irrelevant, but it should appear early so it can be read quickly.&lt;br /&gt;
&lt;br /&gt;
An incorrect version string can cause scripts or system tools to malfunction and should therefore be avoided at all costs.&lt;br /&gt;
&lt;br /&gt;
== User Interface Principles ==&lt;br /&gt;
&lt;br /&gt;
=== Localization ===&lt;br /&gt;
&lt;br /&gt;
Supporting multiple languages should be standard practice today. MorphOS provides extensive mechanisms for this purpose, and developers should make use of them.&lt;br /&gt;
&lt;br /&gt;
=== Labeling of UI Elements ===&lt;br /&gt;
&lt;br /&gt;
* Labels for input elements should always end with a colon. This clearly indicates their association to the user.&lt;br /&gt;
&lt;br /&gt;
=== Buttons and Ellipses (&amp;quot;...&amp;quot;) ===&lt;br /&gt;
&lt;br /&gt;
To distinguish between direct and indirect actions, a clear rule applies:&lt;br /&gt;
&lt;br /&gt;
* Direct action:   &amp;quot;Format&amp;quot;     (action starts immediately)&lt;br /&gt;
* Indirect action: &amp;quot;Format...&amp;quot; (opens a new window or confirmation dialog first)&lt;br /&gt;
&lt;br /&gt;
This convention increases predictability and safety for the user.&lt;br /&gt;
&lt;br /&gt;
=== Checkboxes ===&lt;br /&gt;
&lt;br /&gt;
* The text is always placed to the right of the checkbox.&lt;br /&gt;
* A uniform grid alignment creates a calm and consistent appearance.&lt;br /&gt;
&lt;br /&gt;
=== Compact Interfaces ===&lt;br /&gt;
&lt;br /&gt;
Even though modern systems support large screens, interfaces should remain scalable and fully usable on 1024×768 displays. MUI supports this largely automatically; nevertheless, developers should:&lt;br /&gt;
&lt;br /&gt;
* avoid unnecessarily wide buttons and text fields.&lt;br /&gt;
* move explanatory content into tooltips if needed.&lt;br /&gt;
&lt;br /&gt;
== Keyboard Shortcuts ==&lt;br /&gt;
&lt;br /&gt;
Keyboard shortcuts improve operation speed and should be available everywhere. Especially in settings windows, language conventions apply: the underline is usually placed on the first letter of the term (e.g., Save: &amp;quot;S&amp;quot;, Use: &amp;quot;U&amp;quot;, Cancel: &amp;quot;C&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
If the number of available letters is insufficient, the interface should be redesigned, or rarely used options placed in the context menu of a MUI object or in the screen menu.&lt;br /&gt;
&lt;br /&gt;
== Screen Menus ==&lt;br /&gt;
&lt;br /&gt;
=== Project vs. Application Menu ===&lt;br /&gt;
&lt;br /&gt;
A Project menu is only appropriate if the application can actually load or save project files. Otherwise, the menu should simply use the application's name.&lt;br /&gt;
&lt;br /&gt;
=== Settings ===&lt;br /&gt;
&lt;br /&gt;
Every application should include a ''Settings'' menu, even if it has no custom options.&lt;br /&gt;
&lt;br /&gt;
At minimum, it must contain the MUI entry, which provides access to the application's local UI settings.&lt;br /&gt;
&lt;br /&gt;
=== About Window ===&lt;br /&gt;
&lt;br /&gt;
MorphOS provides the Aboutbox.class, allowing developers to implement a uniform, professional about window with no extra effort.&lt;br /&gt;
&lt;br /&gt;
=== Standard Key Combinations ===&lt;br /&gt;
&lt;br /&gt;
There are established shortcuts (using the right Command key) that should be universal:&lt;br /&gt;
&lt;br /&gt;
* Q -&amp;gt; Quit&lt;br /&gt;
* ? -&amp;gt; About&lt;br /&gt;
* P -&amp;gt; Print&lt;br /&gt;
* N -&amp;gt; New project&lt;br /&gt;
* O -&amp;gt; Open project&lt;br /&gt;
* S -&amp;gt; Save&lt;br /&gt;
* A -&amp;gt; Save As&lt;br /&gt;
* X -&amp;gt; Cut&lt;br /&gt;
* C -&amp;gt; Copy&lt;br /&gt;
* V -&amp;gt; Paste&lt;br /&gt;
&lt;br /&gt;
As with buttons, if a menu entry opens a new window, it must end with &amp;quot;...&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Learning from Existing MorphOS Programs ==&lt;br /&gt;
&lt;br /&gt;
It is worthwhile to study applications included with the system. While not perfect, they generally implement UI conventions very well and serve as best-practice references for your own software.&lt;br /&gt;
&lt;br /&gt;
== Summary ==&lt;br /&gt;
&lt;br /&gt;
By consistently following a few clear design principles, MorphOS applications can be developed professionally and system-conformantly without significant extra effort. Clean archive organization, correct version strings, consistent user interfaces, and adherence to established conventions result in applications that integrate seamlessly into the system and feel immediately familiar to users.&lt;/div&gt;</summary>
		<author><name>JPV</name></author>	</entry>

	<entry>
		<id>https://library.morph.zone/index.php?title=Applications/RDesktop&amp;diff=4369</id>
		<title>Applications/RDesktop</title>
		<link rel="alternate" type="text/html" href="https://library.morph.zone/index.php?title=Applications/RDesktop&amp;diff=4369"/>
				<updated>2025-10-08T07:48:06Z</updated>
		
		<summary type="html">&lt;p&gt;JPV: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Description ==&lt;br /&gt;
&lt;br /&gt;
Remote Desktop client supporting the RDP protocol, as used by MS Windows.  &lt;br /&gt;
&lt;br /&gt;
The application directory contains RDesktop (the tool itself) and RDesktopGUI (a graphical user interface for setting various options and arguements when launching rdesktop).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
To be able to connect to a Windows 10/11 (Pro) computer, enable the Remote Desktop setting and disable the requirement of Network Level Authentication on the remote computer. If the NLA setting is enabled, you get a CredSSP error when trying to connect on the remote machine.&lt;br /&gt;
&lt;br /&gt;
To prepare a Windows 11 Pro setup for connecting from MorphOS:&lt;br /&gt;
# Open Settings -&amp;gt; System -&amp;gt; Remote Desktop&lt;br /&gt;
# Toggle the Remote Desktop setting On&lt;br /&gt;
# Click the arrow on the right side of the toggle button to get more settings&lt;br /&gt;
# Disable the &amp;quot;Require devices to use Network Level Authentication to connect&amp;quot; setting&lt;br /&gt;
&lt;br /&gt;
Now you should be able to connect to the Windows computer if you set the Experience/Encryption setting to TLS 1.2 in the MorphOS RDesktop client.&lt;br /&gt;
&lt;br /&gt;
If you're using a Microsoft account for an enabled user, enter the email address as the username in the RDesktop GUI.&lt;br /&gt;
&lt;br /&gt;
If you want to use other encryption settings, or disable it completely, you can use this solution at the server side ([https://answers.microsoft.com/en-us/windows/forum/windows_10-other_settings/remote-desktop-connection-not-workin-after-win-10/f45c1446-5059-4ac3-90e5-81580f3f95d6 source]):&lt;br /&gt;
&lt;br /&gt;
# Open a Run dialog using Win-R.  Type &amp;quot;gpedit.msc&amp;quot; and hit Enter.&lt;br /&gt;
# On the left tree view, click on Computer Configuration &amp;gt; Administrative Templates &amp;gt; Windows Components &amp;gt; Remote Desktop Services &amp;gt; Remote Desktop Session Host &amp;gt; Security&lt;br /&gt;
# Double-click on the &amp;quot;Require use of specific security layer for remote (RDP) connections&amp;quot; setting on the right.&lt;br /&gt;
# Select the &amp;quot;Enabled&amp;quot; radio button&lt;br /&gt;
# Select &amp;quot;Negotiate&amp;quot; (or &amp;quot;RDP&amp;quot;) from the &amp;quot;Security Layer&amp;quot; drop-down and click OK.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Screenshot ==&lt;br /&gt;
: [[File:MorphOS3_jPV_Rdesktop.png|320px]]&lt;/div&gt;</summary>
		<author><name>JPV</name></author>	</entry>

	<entry>
		<id>https://library.morph.zone/index.php?title=Open_Firmware&amp;diff=4368</id>
		<title>Open Firmware</title>
		<link rel="alternate" type="text/html" href="https://library.morph.zone/index.php?title=Open_Firmware&amp;diff=4368"/>
				<updated>2025-08-20T09:08:17Z</updated>
		
		<summary type="html">&lt;p&gt;JPV: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Preface ==&lt;br /&gt;
'''Open Firmware''' ('''OF''') is a computer firmware system, similar to the BIOS on a PC, found in all MorphOS compatible Macs. The Pegasos, Pegasos II, and Efika also have an Open Firmware based hardware implementation, but with small differences to Mac firmware.&lt;br /&gt;
&lt;br /&gt;
Open Firmware uses a Command-Line based user interface, which can be used to control booting and other processes. This tutorial focuses on useful tips and tricks when using the user interface by way of specific examples. The examples were tested on PowerPC Macs, but may also work under bPlan machines to some extent.&lt;br /&gt;
&lt;br /&gt;
Output texts in these examples have been truncated in most cases to show only the  information of interest.&lt;br /&gt;
&lt;br /&gt;
== Accessing the User Interface ==&lt;br /&gt;
Hold down the '''Command-Option-O-F''' key combination on a Mac keyboard, though the '''Option''' key is sometimes marked as '''Alt''' - with a symbol/icon below it, or press the '''Win-Alt-O-F''' key combination on a PC Windows keyboard while booting the machine. Release the keys only after you see the Open Firmware prompt display on a grey background.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
Apple PowerBook5,9 4.9.6f0 BootROM built on 10/05/05 at 16:45:50&lt;br /&gt;
Copyright 1994-2005 Apple Computer, Inc.&lt;br /&gt;
All Rights Reserved.&lt;br /&gt;
&lt;br /&gt;
Welcome to Open Firmware, the system time and date is: 07/24/2018 21:07:11&lt;br /&gt;
&lt;br /&gt;
To continue booting, type &amp;quot;mac-boot&amp;quot; and press return.&lt;br /&gt;
To shut down, type &amp;quot;shut-down&amp;quot; and press return.&lt;br /&gt;
&lt;br /&gt;
Release keys to continue!&lt;br /&gt;
&lt;br /&gt;
 ok&lt;br /&gt;
0 &amp;gt; _&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the machine boots to an installed OS instead of the OF prompt, reboot and try again. It may help to connect the keyboard directly to the machine's USB port, not via a USB hub. The keys don't have to be pressed immediately when powering the machine on, but promptly after hearing the startup sound (if it has not been disabled) or as the machine triggers access to the optical drive.&lt;br /&gt;
&lt;br /&gt;
Open Firmware uses the '''US keyboard layout''', tips for typing using other keyboards can be found within the [http://www.morphos.de/guide/usb-boot#section5 official MorphOS USB boot guide].&lt;br /&gt;
&lt;br /&gt;
== Useful Commands ==&lt;br /&gt;
* '''mac-boot''' - Continues booting from the current OF state&lt;br /&gt;
* '''reset-all''' - Resets the machine to the power-on state and reboots&lt;br /&gt;
* '''shut-down''' - Shuts down the machine&lt;br /&gt;
* '''load &amp;lt;file&amp;gt; &amp;lt;args&amp;gt;''' - Loads an OF code file (e.g. ELF binary image like MorphOS boot.img or Forth script) into memory&lt;br /&gt;
* '''go''' - Runs/boots the loaded file&lt;br /&gt;
* '''boot &amp;lt;file&amp;gt; &amp;lt;args&amp;gt;''' - Loads an OF code file and boots it&lt;br /&gt;
* '''printenv''' - Prints environment variable values&lt;br /&gt;
* '''setenv''' - Sets environment variable values&lt;br /&gt;
* '''devalias''' - Displays a list of ''aliases'' for devices (similar to ''assigns'' on MorphOS)&lt;br /&gt;
* '''.properties''' - Displays a list of properties for the selected device&lt;br /&gt;
* '''ls''' - Displays contents of the current path in the device tree&lt;br /&gt;
* '''pwd''' - Displays the current path within the device tree&lt;br /&gt;
* '''dev''' - Selects a device (using either the alias or absolute/relative device tree path)&lt;br /&gt;
* '''dir''' - Lists files on a partition&lt;br /&gt;
&lt;br /&gt;
== Environment Variables ==&lt;br /&gt;
Use the ''printenv'' command to list all environment variable values.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
0 &amp;gt; printenv&lt;br /&gt;
-------------- Partition: common -------- Signature: 0x70 ---------------&lt;br /&gt;
little-endian?           false                false&lt;br /&gt;
real-mode?              false                false&lt;br /&gt;
auto-boot?              true                 true&lt;br /&gt;
skip-netboot?           false                false&lt;br /&gt;
use-nvramrc?           false                false&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The first value in the list is the current value and the second value is the default value. It's quite rare that you need to change these values, but it's interesting to learn more about your computer nevertheless.&lt;br /&gt;
&lt;br /&gt;
One common choice is to speed up Startup Manager (the boot menu you see when booting with the option/alt key pressed) by disabling the netboot option. So, let's change that, as an example, and check that we succeeded.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
0 &amp;gt; setenv skip-netboot? true&lt;br /&gt;
0 &amp;gt; printenv skip-netboot?&lt;br /&gt;
-------------- Partition: common -------- Signature: 0x70 ---------------&lt;br /&gt;
skip-netboot?           true                 false&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Examining Devices ==&lt;br /&gt;
The ''dev'' command selects a device to be examined, and ''.properties'', ''ls'', and ''dir'' commands can be used to print information about the selected device. '''Note''' that it depends on the device type if these commands will print something. ''dir'' only works for devices containing a filesystem, and such like.&lt;br /&gt;
&lt;br /&gt;
=== Listing Aliases ===&lt;br /&gt;
A special ''/aliases'' device contains information about shortcuts (aliases) to different hardware devices. Let's see a few examples of how to show that information.&lt;br /&gt;
&lt;br /&gt;
The device can be selected with the ''dev'' command and then the aliases can be listed with the ''.properties'' command:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
0 &amp;gt; dev /aliases&lt;br /&gt;
0 &amp;gt; .properties&lt;br /&gt;
name                    aliases &lt;br /&gt;
pci0                    /pci@f0000000&lt;br /&gt;
agp                     /pci@f0000000&lt;br /&gt;
pci1                    /pci@f2000000&lt;br /&gt;
pci2                    /pci@f4000000&lt;br /&gt;
usb0                    /pci@f2000000/@15&lt;br /&gt;
usb1                    /pci@f2000000/@15,1&lt;br /&gt;
usb2                    /pci@f2000000/@15,2&lt;br /&gt;
hd                      /pci@f4000000/ata-6@d/disk@0&lt;br /&gt;
cd                      /pci@f4000000/ata-6@d/disk@1&lt;br /&gt;
ud                      /pci@f2000000/usb@15,1/disk@1&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The commands can also be input combined, on a single line:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
0 &amp;gt; dev /aliases .properties&lt;br /&gt;
name                    aliases &lt;br /&gt;
pci0                    /pci@f0000000&lt;br /&gt;
agp                     /pci@f0000000&lt;br /&gt;
pci1                    /pci@f2000000&lt;br /&gt;
pci2                    /pci@f4000000&lt;br /&gt;
usb0                    /pci@f2000000/@15&lt;br /&gt;
usb1                    /pci@f2000000/@15,1&lt;br /&gt;
usb2                    /pci@f2000000/@15,2&lt;br /&gt;
hd                      /pci@f4000000/ata-6@d/disk@0&lt;br /&gt;
cd                      /pci@f4000000/ata-6@d/disk@1&lt;br /&gt;
ud                      /pci@f2000000/usb@15,1/disk@1&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There's also a shorter ''devalias'' command available on most firmware versions, and it does the same as the previous example:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
0 &amp;gt; devalias&lt;br /&gt;
name                    aliases &lt;br /&gt;
pci0                    /pci@f0000000&lt;br /&gt;
agp                     /pci@f0000000&lt;br /&gt;
pci1                    /pci@f2000000&lt;br /&gt;
pci2                    /pci@f4000000&lt;br /&gt;
usb0                    /pci@f2000000/@15&lt;br /&gt;
usb1                    /pci@f2000000/@15,1&lt;br /&gt;
usb2                    /pci@f2000000/@15,2&lt;br /&gt;
hd                      /pci@f4000000/ata-6@d/disk@0&lt;br /&gt;
cd                      /pci@f4000000/ata-6@d/disk@1&lt;br /&gt;
ud                      /pci@f2000000/usb@15,1/disk@1&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Other Useful Properties ===&lt;br /&gt;
''.properties'' on the root device shows the computer specs:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
0 &amp;gt; dev / .properties&lt;br /&gt;
model                   PowerBook5,9&lt;br /&gt;
compatible              PowerBook5,9&lt;br /&gt;
                        MacRISC3&lt;br /&gt;
                        Power Macintosh&lt;br /&gt;
						&lt;br /&gt;
serial-number           SX0&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The ''enet'' device shows the MAC address of the computer. ''00:11:24:e3:66:66'' in this case:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
0 &amp;gt; dev enet .properties&lt;br /&gt;
vendor-id               0000106b&lt;br /&gt;
device-id               0000006b&lt;br /&gt;
name                    ethernet&lt;br /&gt;
device_type             network&lt;br /&gt;
local-mac-address       001124e3 6666&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Listing Devices ===&lt;br /&gt;
The ''ls'' command lists devices found in the current device in the device tree:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
0 &amp;gt; dev usb1 ls&lt;br /&gt;
ff9e1650  /disk@1&lt;br /&gt;
ff9e1a28: /device@2&lt;br /&gt;
ff9e1c48:   /keyboard@0&lt;br /&gt;
ff9e1f88:   /mouse@1&lt;br /&gt;
ff9e2230:   /interface@2&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To list a complete list of all devices in the system:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
0 &amp;gt; dev / ls&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Listing Files ===&lt;br /&gt;
If a device (disk) contains a supported filesystem ('''HFS(+), FAT, ISO9660'''), its contents can be listed with the ''dir'' command.&lt;br /&gt;
&lt;br /&gt;
Syntax of the ''dir'' command is:&lt;br /&gt;
'''dir disk:partition,path'''&lt;br /&gt;
&lt;br /&gt;
* ''disk'' is a device path to a disk, aliases can be used here and the delimiter in the device tree is /&lt;br /&gt;
* ''partition'' is a partition number (starting from 1), the default partition is used if left blank&lt;br /&gt;
* ''path'' is a path in the filesystem, the directory delimiter is \ and the same character is also used to access the root directory&lt;br /&gt;
&lt;br /&gt;
Listing the root (\) directory from the default partition on the default HD (this is usually the Boot: partition on a MorphOS system). The &amp;quot;,&amp;quot; character could be omitted in certain cases, but it's safer to type that as well:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
0 &amp;gt; dir hd:,\&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Listing the root directory from the first partition on the (default) HD:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
0 &amp;gt; dir hd:1,\&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Listing the root directory from a CD:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
0 &amp;gt; dir cd:,\&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Listing a sub-directory from a CD:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
0 &amp;gt; dir cd:,\mac_ppc32&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Listing the root directory from a USB mass storage device found in the usb1 device (use the previously mentioned ''ls'' command to find the correct device):&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
0 &amp;gt; dir usb1/disk@1:,\&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Newer firmware versions create the ''ud'' alias for a USB mass storage device connected to the machine (if it's been connected prior to starting the OF interface), so this does the same as the previous example:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
0 &amp;gt; dir ud:,\&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Adding Custom Aliases ==&lt;br /&gt;
The ''devalias'' command adds temporary user defined aliases.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
0 &amp;gt; devalias dh /pci@f4000000/ata-6@d/disk@0&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''nvalias'' stores an alias in NVRAMRC. Variable ''use-nvramrc?'' needs to be set to true in order to execute NVRAMRC script at startup.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
0 &amp;gt; nvalias dh /pci@f4000000/ata-6@d/disk@0&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''nvunalias'' deletes an alias.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
0 &amp;gt; nvunalias dh&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can replace existing aliases with your own ones. Removing them will revert to original values.&lt;br /&gt;
&lt;br /&gt;
=== Creating an Alias for a USB Disk ===&lt;br /&gt;
If your firmware version doesn't create the ''ud'' alias by default, you can add the alias by yourself. The only drawback is that you'll have to use the same physical USB port always, or create several aliases for each port.&lt;br /&gt;
&lt;br /&gt;
1. Check that the alias doesn't exist alredy&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
0 &amp;gt; devalias&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. List all devices (press the Space Bar to see them all)&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
0 &amp;gt; dev / ls&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Look for a USB device that contains your disk (''disk@1'', for instance), and combine list tree entries to a full path. The path can be verified, for example, by listing files on the disk.&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
0 &amp;gt; dir /pci@f2000000/usb@1b,1/disk@1:,\&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Create a permanent alias with the ''nvalias'' command (and/or a temporary alias with ''devalias'' instead of ''nvalias'' for testing it before a reboot)&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
0 &amp;gt; nvalias ud /pci@f2000000/usb@1b,1/disk@1&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5. Make sure the ''use-nvramrc?'' env variable is set&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
0 &amp;gt; setenv use-nvramrc? true&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
6. Reboot the computer and the ''ud'' alias should be available on the firmware now&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
0 &amp;gt; reset-all&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Booting MorphOS ==&lt;br /&gt;
=== Basics ===&lt;br /&gt;
To boot into MorphOS, Open Firmware has to load a MorphOS boot image file, which is usually named as ''boot.img''. The boot image contains the MorphOS kernel and core drivers, so it's basically comparable to the Amiga's Kickstart. Open Firmware just loads and boots the file, and the rest is handled by MorphOS itself after that. In case of errors, it's important to distinguish if loading of the boot image failed or does the error occur at a later stage.&lt;br /&gt;
&lt;br /&gt;
The ''boot.img'' file usually resides on a special HFS formatted ''Boot:'' partition on Macs, or on a partition that has a filesystem known to Open Firmware in any case. The ''Boot:'' partition only contains a few Open Firmware related files and isn't used for anything else than to get the kernel loaded by the machine itself. How MorphOS sees the partition isn't important and it can even be unmounted from a MorphOS point of view. MorphOS itself is booted from a partition containing a MorphOS compatible [[Filesystems|filesystem]] and MorphOS system files in it, and this partition is usually named as &amp;quot;System:&amp;quot; and the SYS: '''assign''' points to it as well.&lt;br /&gt;
&lt;br /&gt;
When booting manually from OF, you'll see some output lines on screen. There are two important lines that tell you the boot stage. This can be demonstrated well with the ''load'' and ''go'' commands.&lt;br /&gt;
&lt;br /&gt;
Type in this line (if you have a MorphOS installation on your HD):&lt;br /&gt;
&lt;br /&gt;
 0 &amp;gt; load hd:,\boot.img&lt;br /&gt;
&lt;br /&gt;
And you'll see output like this:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
0 &amp;gt; load hd:,\boot.img load-size=16e8fc adler32=bd628950&lt;br /&gt;
&lt;br /&gt;
Loading ELF&lt;br /&gt;
 ok&lt;br /&gt;
0 &amp;gt; _&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Loading ELF&amp;quot; tells you that the file has been found and loaded.&lt;br /&gt;
&lt;br /&gt;
The file can be booted with the ''go'' command then:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
0 &amp;gt; go&lt;br /&gt;
DO-QUIESCE finished_&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;DO-QUIESCE finished&amp;quot; indicates that the file has been booted and the machine is now running under MorphOS. Problems after that stage are MorphOS related, and if the MorphOS boot image doesn't appear soon, then MorphOS might not have found a device or image to boot from, or there might be driver or compatibility issues. MorphOS reset keys (Ctrl-Lcmd-Rcmd, Fn-alt-alt) also work at this stage even if there are any other problems halting the boot process.&lt;br /&gt;
&lt;br /&gt;
A shorter, and usual, way to boot is to use the ''boot'' command, which combines both ''load'' and ''go'' commands.&lt;br /&gt;
&lt;br /&gt;
The previous example can be achieved with this single line:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
 0 &amp;gt; boot hd:,\boot.img&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And the output should then look like this:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
0 &amp;gt; boot hd:,\boot.img load-size=16e8fc adler32=bd628950&lt;br /&gt;
&lt;br /&gt;
Loading ELF&lt;br /&gt;
 &lt;br /&gt;
DO-QUIESCE finished_&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Boot Arguments ===&lt;br /&gt;
Several boot arguments can be given to the ''boot.img'' file by adding them to the end of a ''load'' or ''boot'' line. More detailed explanations of these arguments can be found from '''Docs/Booting MorphOS.txt''' and '''Docs/PegasosFirmware.txt''' files on your MorphOS system or the installation CD, but let's cover the most useful booting related ones here. Note that Sam460ex/cr and AmigaOne X5000 systems don't use Open Firmware, but the boot arguments can be given on them too by setting an environment variable in their [[Tips_and_Tricks#MorphOS_Boot_Arguments_on_U-boot_Systems | U-boot console]].&lt;br /&gt;
&lt;br /&gt;
Without arguments MorphOS boots a device that is bootable and has the highest boot priority set. '''Note''' that this only applies to partitions that contain a MorphOS compatible bootable [[Filesystems|filesystem]]. If a MorphOS installation CD is inserted, it usually has a higher priority than bootable partitions on the HD. The HDConfig tool can be used to set partitions bootable and alter their boot priorities, but usually it's unnecessary to change these settings.&lt;br /&gt;
&lt;br /&gt;
The syntax for arguments is '''argument=value''', but the equals sign can be replaced with a space character. The arguments can be given in a longer or shorter, in parenthesis '''()''' format.&lt;br /&gt;
&lt;br /&gt;
* '''bootdevice (bd)''' - Overrides boot priorities and boots from a given partition. The partition name must be given in the form MorphOS sees it as a '''device name''' (volume names don't work), and the trailing &amp;quot;:&amp;quot; character can be omitted. For example, &amp;quot;bootdevice=dh1&amp;quot; works, but &amp;quot;bootdevice=System&amp;quot; doesn't.[[File:MorphOS-BootMenu.png|thumb|MorphOS bootmenu]]&lt;br /&gt;
* '''bootimage (bi)''' - Boots the MorphOS system from an ISO image file, which is placed on a partition that is accessible with the built-in filesystems of the boot.img ('''FAT, SFS, FFS, PFS3, CDFS'''). A full MorphOS style path must be given to the argument, but use '''device names''' instead of volume names again. For example, &amp;quot;bootimage=umsd0:morphos-3.11.iso&amp;quot;, &amp;quot;bootimage=dh2:morphos-3.11.iso&amp;quot;.&lt;br /&gt;
* '''bootmenu (bm)''' - Boots into the MorphOS bootmenu where you can change display settings, see information about devices, or boot without startup-sequence. The same bootmenu can be accessed by pressing the '''Shift''' key, the '''F1''' key, or the '''left mouse button''' during the MorphOS boot process (you'll have to try which option works on your hardware). Pressing the '''v''' key in the bootmenu toggles between the default resolution and a 640x480@60Hz VESA mode, and that can be useful in case of display issues. The '''space''' toggles between multiple monitors instead.&lt;br /&gt;
&lt;br /&gt;
=== Examples ===&lt;br /&gt;
==== Booting from CD ====&lt;br /&gt;
MorphOS documentation's usual advice is to boot the machine with the ''c'' key pressed, but that method can sometimes be unreliable for one reason or another, so you might end up in a situation where a boot image has been loaded from a HD and the actual system from a CD, which results in an error if the boot image and the CD aren't from the same MorphOS version. A more reliable way is to boot into the Startup Manager menu on Macs by holding the ''alt'' (''option'') key at boot, and select the CD from that graphical boot menu. Pressing the F12 key in the menu will eject the CD.&lt;br /&gt;
&lt;br /&gt;
As well as the previously mentioned methods, there are other ways to boot a CD from the Open Firmware prompt.&lt;br /&gt;
&lt;br /&gt;
To boot any inserted CD that is bootable on Macs:&lt;br /&gt;
 0 &amp;gt; boot cd:,\\:tbxi&lt;br /&gt;
&lt;br /&gt;
&amp;quot;\\&amp;quot; will look for a ''blessed'' directory on a device (you can list it by ''dir cd:,\\'' or ''dir hd:,\\'', for instance) and '':tbxi'' looks for files of type tbxi (Toolbox image). This does practically the same thing as booting with the ''c'' key or booting from the Startup Manager menu, but you also see the output lines from OF (especially the &amp;quot;Loading ELF&amp;quot; &amp;amp; &amp;quot;DO-QUIESCE finished&amp;quot; lines) if you need some debug output.&lt;br /&gt;
&lt;br /&gt;
Another way to boot the MorphOS installation CD from the OF prompt is to locate a correct boot image file from the CD and boot it with some boot arguments.&lt;br /&gt;
&lt;br /&gt;
List the contents of the CD:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
0 &amp;gt; dir cd:,\&lt;br /&gt;
&lt;br /&gt;
  Volume: MorphOSBoot&lt;br /&gt;
     Size/        GMT                     File/Dir&lt;br /&gt;
     bytes   date     time   TYPE CRTR    Name&lt;br /&gt;
        94 07/04/2018 04:54:42  ???? ???? .morphosid&lt;br /&gt;
   2287135 07/04/2018 04:03:02  boot UNIX boot.img&lt;br /&gt;
   1454648 07/04/2018 04:03:02  boot UNIX bootcyrusplus.img&lt;br /&gt;
   2201986 07/04/2018 04:03:02  boot UNIX bootefika.img&lt;br /&gt;
   2286039 07/04/2018 04:03:02  boot UNIX bootpeg1.img&lt;br /&gt;
   1416944 07/04/2018 04:03:02  boot UNIX bootsam_ppc4x0.img&lt;br /&gt;
           01/01/1904 00:00:00           *mac_ppc32&lt;br /&gt;
           01/01/1904 00:00:00            mac_ppc64&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As you can see, there are several different boot images for different architectures. ''boot.img'' is for Pegasos II and others are easy to guess. Boot images for Macs are located in sub-directories, ''mac_ppc32'' contains the ''boot.img'' file for G4 Macs and ''mac_ppc64'' for G5 Macs. The ''blessed'' directory is marked with an asterisk.&lt;br /&gt;
&lt;br /&gt;
If we wanted to boot the CD on a G5 Mac:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
0 &amp;gt; dir cd:,\mac_ppc64&lt;br /&gt;
&lt;br /&gt;
     Size/        GMT                     File/Dir&lt;br /&gt;
     bytes   date     time   TYPE CRTR    Name&lt;br /&gt;
   1499688 07/04/2018 04:03:02  boot UNIX  boot.img&lt;br /&gt;
   &lt;br /&gt;
 ok&lt;br /&gt;
0 &amp;gt; boot cd:,\mac_ppc64\boot.img bd cd0&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
cd0: is the default CD device on MorphOS and it can be given as a bootdevice argument. The system would most likely boot from the CD even without this argument, because of the previously mentioned boot priorities.&lt;br /&gt;
&lt;br /&gt;
To boot into the MorphOS boot menu on a G5 Mac:&lt;br /&gt;
 0 &amp;gt; boot cd:,\mac_ppc64\boot.img bm&lt;br /&gt;
&lt;br /&gt;
And the same for a G4 Mac:&lt;br /&gt;
 0 &amp;gt; boot cd:,\mac_ppc32\boot.img bm&lt;br /&gt;
&lt;br /&gt;
On a G4 Mac you could also use the ''blessed'' directory as a shortcut:&lt;br /&gt;
 0 &amp;gt; boot cd:,\\boot.img bm&lt;br /&gt;
&lt;br /&gt;
==== Booting MorphOS ISO from USB ====&lt;br /&gt;
The [http://www.morphos.de/guide/usb-boot Official MorphOS USB Boot &amp;amp; Installation / Update Guide] describes the basics of USB booting, but let's cover a few special cases here. If you can't access your FAT formatted USB stick, refer to the official guide on how to re-format it in a compatible way. Some Macs can be more picky about the format than others, and the same stick, that works in G4 Macs, might not work in a G5 Mac, etc., but it usually helps if you format it as advised in the official guide. If you still have issues with USB stick detection in OF or can't format the stick properly, this section of the tutorial provides some alternative methods to get a system booted.&lt;br /&gt;
&lt;br /&gt;
The following examples assume that you have a '''correct boot image file''' (named as ''boot.img'' here) and a '''MorphOS ISO image file''' (named as ''morphos.iso'' here, remember that official MorphOS downloads have different names!) on a '''FAT formatted USB stick''', which is plugged in before starting the OF user interface. The boot.img file can be obtained from a MorphOS installation CD/ISO, but remember that G4 and G5 Macs are stored in different directories (mac_ppc32 vs mac_ppc64). The files may be named differently too, there's no problem if you want to keep different versions around and boot whichever you want. You could have ''boot310.img'' and ''morphos310.iso'' as a bootable backup, for instance.&lt;br /&gt;
&lt;br /&gt;
So, the basic idea is to boot the system from an ISO image without burning it or extracting files from it. This can be achieved by giving the ISO image location to the boot image with the ''bootimage'' argument.&lt;br /&gt;
&lt;br /&gt;
Some firmware versions create a ''ud'' alias, which points to a USB mass storage device connected to the computer. [[Open_Firmware#Listing_Aliases | List the aliases]] to find out if it's been created.&lt;br /&gt;
&lt;br /&gt;
MorphOS itself creates a ''umsd0:'' device for the USB mass storage device and our ISO file is found from this device when the boot.img has been loaded.&lt;br /&gt;
&lt;br /&gt;
If you have recent enough Open Firmware, booting the ISO file from a USB stick is easy:&lt;br /&gt;
 0 &amp;gt; boot ud:,\boot.img bi umsd0:morphos.iso&lt;br /&gt;
&lt;br /&gt;
If that doesn't work, try to list the contents of the USB stick to find out if it's in a compatible format:&lt;br /&gt;
 0 &amp;gt; dir ud:,\&lt;br /&gt;
&lt;br /&gt;
If you don't have the ''ud'' alias, you'll have to search usb* aliases for a correct path in the OF tree (or [[Open_Firmware#Creating_an_Alias_for_a_USB_Disk | create a new alias]]). List the aliases again or just start trying to list usb0, usb1, etc., devices until you find a device containing '''disk''' in its name, and that will reveal the full path to the USB stick, which can be used instead of the ''ud'' alias.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
0 &amp;gt; dev usb0 ls&lt;br /&gt;
 ok&lt;br /&gt;
0 &amp;gt; dev usb1 ls&lt;br /&gt;
ff9e1650: /disk@1&lt;br /&gt;
0 &amp;gt; dir usb1/disk@1:,\&lt;br /&gt;
  Volume: USB&lt;br /&gt;
 258048000  07-24-2018 18:34:24    morphos.iso&lt;br /&gt;
   1501436  07-04-2018 04:03:02    boot.img&lt;br /&gt;
 ok&lt;br /&gt;
0 &amp;gt; boot usb1/disk@1:,\boot.img bi umsd0:morphos.iso&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the stick is connected to a USB hub, the path just gets deeper in the OF tree:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
0 &amp;gt; dev usb1 ls&lt;br /&gt;
ff9e1650: /hub@1&lt;br /&gt;
ff9e1860:   /disk@4&lt;br /&gt;
0 &amp;gt; boot usb1/hub@1/disk@4:,\boot.img bi umsd0:morphos.iso&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If a USB stick isn't recognised by Open Firmware, but it's accessible from MorphOS itself and you don't want to re-format it, you could copy the boot.img to a Mac partition on the HD, but still load the ISO image from the USB stick. The Mac partition can be an existing OSX installation (HFS+ formatted partition) or previous MorphOS installation (the HFS formatted Boot partition), for instance. The ISO image itself can't be loaded from an HFS partition, because MorphOS kernel (boot.img) doesn't have HFS support built-in. HFS support is loaded from filesystem level at the later stage when you boot MorphOS, but as OF recognises HFS partitions, boot.img can be loaded from them.&lt;br /&gt;
&lt;br /&gt;
List the contents of the partitions until you find the correct partition where you copied the new boot.img file.&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
0 &amp;gt; dir hd:1,\&lt;br /&gt;
MAC-PARTS: specified MAC partition is not valid can't OPEN the DIR device&lt;br /&gt;
 ok&lt;br /&gt;
0 &amp;gt; dir hd:2,\&lt;br /&gt;
&lt;br /&gt;
  Volume: OSX&lt;br /&gt;
     Size/        GMT                      File/Dir&lt;br /&gt;
     bytes   date     time   TYPE CRTR     Name&lt;br /&gt;
           07/22/2017 07:27:40              Applications&lt;br /&gt;
           09/27/2016 09:59:40              bin&lt;br /&gt;
   1501436 07-04-2018 04:03:02  ???? UNIX   boot.img&lt;br /&gt;
 ok&lt;br /&gt;
0 &amp;gt; boot hd:2,\boot.img bi umsd0:morphos.iso&amp;lt;/nowiki&amp;gt;&lt;/div&gt;</summary>
		<author><name>JPV</name></author>	</entry>

	<entry>
		<id>https://library.morph.zone/index.php?title=Open_Firmware&amp;diff=4367</id>
		<title>Open Firmware</title>
		<link rel="alternate" type="text/html" href="https://library.morph.zone/index.php?title=Open_Firmware&amp;diff=4367"/>
				<updated>2025-08-20T08:57:53Z</updated>
		
		<summary type="html">&lt;p&gt;JPV: Added an example to add the UD alias for USB disks&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Preface ==&lt;br /&gt;
'''Open Firmware''' ('''OF''') is a computer firmware system, similar to the BIOS on a PC, found in all MorphOS compatible Macs. The Pegasos, Pegasos II, and Efika also have an Open Firmware based hardware implementation, but with small differences to Mac firmware.&lt;br /&gt;
&lt;br /&gt;
Open Firmware uses a Command-Line based user interface, which can be used to control booting and other processes. This tutorial focuses on useful tips and tricks when using the user interface by way of specific examples. The examples were tested on PowerPC Macs, but may also work under bPlan machines to some extent.&lt;br /&gt;
&lt;br /&gt;
Output texts in these examples have been truncated in most cases to show only the  information of interest.&lt;br /&gt;
&lt;br /&gt;
== Accessing the User Interface ==&lt;br /&gt;
Hold down the '''Command-Option-O-F''' key combination on a Mac keyboard, though the '''Option''' key is sometimes marked as '''Alt''' - with a symbol/icon below it, or press the '''Win-Alt-O-F''' key combination on a PC Windows keyboard while booting the machine. Release the keys only after you see the Open Firmware prompt display on a grey background.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
Apple PowerBook5,9 4.9.6f0 BootROM built on 10/05/05 at 16:45:50&lt;br /&gt;
Copyright 1994-2005 Apple Computer, Inc.&lt;br /&gt;
All Rights Reserved.&lt;br /&gt;
&lt;br /&gt;
Welcome to Open Firmware, the system time and date is: 07/24/2018 21:07:11&lt;br /&gt;
&lt;br /&gt;
To continue booting, type &amp;quot;mac-boot&amp;quot; and press return.&lt;br /&gt;
To shut down, type &amp;quot;shut-down&amp;quot; and press return.&lt;br /&gt;
&lt;br /&gt;
Release keys to continue!&lt;br /&gt;
&lt;br /&gt;
 ok&lt;br /&gt;
0 &amp;gt; _&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the machine boots to an installed OS instead of the OF prompt, reboot and try again. It may help to connect the keyboard directly to the machine's USB port, not via a USB hub. The keys don't have to be pressed immediately when powering the machine on, but promptly after hearing the startup sound (if it has not been disabled) or as the machine triggers access to the optical drive.&lt;br /&gt;
&lt;br /&gt;
Open Firmware uses the '''US keyboard layout''', tips for typing using other keyboards can be found within the [http://www.morphos.de/guide/usb-boot#section5 official MorphOS USB boot guide].&lt;br /&gt;
&lt;br /&gt;
== Useful Commands ==&lt;br /&gt;
* '''mac-boot''' - Continues booting from the current OF state&lt;br /&gt;
* '''reset-all''' - Resets the machine to the power-on state and reboots&lt;br /&gt;
* '''shut-down''' - Shuts down the machine&lt;br /&gt;
* '''load &amp;lt;file&amp;gt; &amp;lt;args&amp;gt;''' - Loads an OF code file (e.g. ELF binary image like MorphOS boot.img or Forth script) into memory&lt;br /&gt;
* '''go''' - Runs/boots the loaded file&lt;br /&gt;
* '''boot &amp;lt;file&amp;gt; &amp;lt;args&amp;gt;''' - Loads an OF code file and boots it&lt;br /&gt;
* '''printenv''' - Prints environment variable values&lt;br /&gt;
* '''setenv''' - Sets environment variable values&lt;br /&gt;
* '''devalias''' - Displays a list of ''aliases'' for devices (similar to ''assigns'' on MorphOS)&lt;br /&gt;
* '''.properties''' - Displays a list of properties for the selected device&lt;br /&gt;
* '''ls''' - Displays contents of the current path in the device tree&lt;br /&gt;
* '''pwd''' - Displays the current path within the device tree&lt;br /&gt;
* '''dev''' - Selects a device (using either the alias or absolute/relative device tree path)&lt;br /&gt;
* '''dir''' - Lists files on a partition&lt;br /&gt;
&lt;br /&gt;
== Environment Variables ==&lt;br /&gt;
Use the ''printenv'' command to list all environment variable values.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
0 &amp;gt; printenv&lt;br /&gt;
-------------- Partition: common -------- Signature: 0x70 ---------------&lt;br /&gt;
little-endian?           false                false&lt;br /&gt;
real-mode?              false                false&lt;br /&gt;
auto-boot?              true                 true&lt;br /&gt;
skip-netboot?           false                false&lt;br /&gt;
use-nvramrc?           false                false&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The first value in the list is the current value and the second value is the default value. It's quite rare that you need to change these values, but it's interesting to learn more about your computer nevertheless.&lt;br /&gt;
&lt;br /&gt;
One common choice is to speed up Startup Manager (the boot menu you see when booting with the option/alt key pressed) by disabling the netboot option. So, let's change that, as an example, and check that we succeeded.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
0 &amp;gt; setenv skip-netboot? true&lt;br /&gt;
0 &amp;gt; printenv skip-netboot?&lt;br /&gt;
-------------- Partition: common -------- Signature: 0x70 ---------------&lt;br /&gt;
skip-netboot?           true                 false&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Examining Devices ==&lt;br /&gt;
The ''dev'' command selects a device to be examined, and ''.properties'', ''ls'', and ''dir'' commands can be used to print information about the selected device. '''Note''' that it depends on the device type if these commands will print something. ''dir'' only works for devices containing a filesystem, and such like.&lt;br /&gt;
&lt;br /&gt;
=== Listing Aliases ===&lt;br /&gt;
A special ''/aliases'' device contains information about shortcuts (aliases) to different hardware devices. Let's see a few examples of how to show that information.&lt;br /&gt;
&lt;br /&gt;
The device can be selected with the ''dev'' command and then the aliases can be listed with the ''.properties'' command:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
0 &amp;gt; dev /aliases&lt;br /&gt;
0 &amp;gt; .properties&lt;br /&gt;
name                    aliases &lt;br /&gt;
pci0                    /pci@f0000000&lt;br /&gt;
agp                     /pci@f0000000&lt;br /&gt;
pci1                    /pci@f2000000&lt;br /&gt;
pci2                    /pci@f4000000&lt;br /&gt;
usb0                    /pci@f2000000/@15&lt;br /&gt;
usb1                    /pci@f2000000/@15,1&lt;br /&gt;
usb2                    /pci@f2000000/@15,2&lt;br /&gt;
hd                      /pci@f4000000/ata-6@d/disk@0&lt;br /&gt;
cd                      /pci@f4000000/ata-6@d/disk@1&lt;br /&gt;
ud                      /pci@f2000000/usb@15,1/disk@1&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The commands can also be input combined, on a single line:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
0 &amp;gt; dev /aliases .properties&lt;br /&gt;
name                    aliases &lt;br /&gt;
pci0                    /pci@f0000000&lt;br /&gt;
agp                     /pci@f0000000&lt;br /&gt;
pci1                    /pci@f2000000&lt;br /&gt;
pci2                    /pci@f4000000&lt;br /&gt;
usb0                    /pci@f2000000/@15&lt;br /&gt;
usb1                    /pci@f2000000/@15,1&lt;br /&gt;
usb2                    /pci@f2000000/@15,2&lt;br /&gt;
hd                      /pci@f4000000/ata-6@d/disk@0&lt;br /&gt;
cd                      /pci@f4000000/ata-6@d/disk@1&lt;br /&gt;
ud                      /pci@f2000000/usb@15,1/disk@1&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There's also a shorter ''devalias'' command available on most firmware versions, and it does the same as the previous example:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
0 &amp;gt; devalias&lt;br /&gt;
name                    aliases &lt;br /&gt;
pci0                    /pci@f0000000&lt;br /&gt;
agp                     /pci@f0000000&lt;br /&gt;
pci1                    /pci@f2000000&lt;br /&gt;
pci2                    /pci@f4000000&lt;br /&gt;
usb0                    /pci@f2000000/@15&lt;br /&gt;
usb1                    /pci@f2000000/@15,1&lt;br /&gt;
usb2                    /pci@f2000000/@15,2&lt;br /&gt;
hd                      /pci@f4000000/ata-6@d/disk@0&lt;br /&gt;
cd                      /pci@f4000000/ata-6@d/disk@1&lt;br /&gt;
ud                      /pci@f2000000/usb@15,1/disk@1&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Other Useful Properties ===&lt;br /&gt;
''.properties'' on the root device shows the computer specs:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
0 &amp;gt; dev / .properties&lt;br /&gt;
model                   PowerBook5,9&lt;br /&gt;
compatible              PowerBook5,9&lt;br /&gt;
                        MacRISC3&lt;br /&gt;
                        Power Macintosh&lt;br /&gt;
						&lt;br /&gt;
serial-number           SX0&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The ''enet'' device shows the MAC address of the computer. ''00:11:24:e3:66:66'' in this case:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
0 &amp;gt; dev enet .properties&lt;br /&gt;
vendor-id               0000106b&lt;br /&gt;
device-id               0000006b&lt;br /&gt;
name                    ethernet&lt;br /&gt;
device_type             network&lt;br /&gt;
local-mac-address       001124e3 6666&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Listing Devices ===&lt;br /&gt;
The ''ls'' command lists devices found in the current device in the device tree:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
0 &amp;gt; dev usb1 ls&lt;br /&gt;
ff9e1650  /disk@1&lt;br /&gt;
ff9e1a28: /device@2&lt;br /&gt;
ff9e1c48:   /keyboard@0&lt;br /&gt;
ff9e1f88:   /mouse@1&lt;br /&gt;
ff9e2230:   /interface@2&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To list a complete list of all devices in the system:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
0 &amp;gt; dev / ls&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Listing Files ===&lt;br /&gt;
If a device (disk) contains a supported filesystem ('''HFS(+), FAT, ISO9660'''), its contents can be listed with the ''dir'' command.&lt;br /&gt;
&lt;br /&gt;
Syntax of the ''dir'' command is:&lt;br /&gt;
'''dir disk:partition,path'''&lt;br /&gt;
&lt;br /&gt;
* ''disk'' is a device path to a disk, aliases can be used here and the delimiter in the device tree is /&lt;br /&gt;
* ''partition'' is a partition number (starting from 1), the default partition is used if left blank&lt;br /&gt;
* ''path'' is a path in the filesystem, the directory delimiter is \ and the same character is also used to access the root directory&lt;br /&gt;
&lt;br /&gt;
Listing the root (\) directory from the default partition on the default HD (this is usually the Boot: partition on a MorphOS system). The &amp;quot;,&amp;quot; character could be omitted in certain cases, but it's safer to type that as well:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
0 &amp;gt; dir hd:,\&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Listing the root directory from the first partition on the (default) HD:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
0 &amp;gt; dir hd:1,\&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Listing the root directory from a CD:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
0 &amp;gt; dir cd:,\&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Listing a sub-directory from a CD:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
0 &amp;gt; dir cd:,\mac_ppc32&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Listing the root directory from a USB mass storage device found in the usb1 device (use the previously mentioned ''ls'' command to find the correct device):&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
0 &amp;gt; dir usb1/disk@1:,\&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Newer firmware versions create the ''ud'' alias for a USB mass storage device connected to the machine (if it's been connected prior to starting the OF interface), so this does the same as the previous example:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
0 &amp;gt; dir ud:,\&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Adding Custom Aliases ==&lt;br /&gt;
The ''devalias'' command adds temporary user defined aliases.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
0 &amp;gt; devalias dh /pci@f4000000/ata-6@d/disk@0&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''nvalias'' stores an alias in NVRAMRC. Variable ''use-nvramrc?'' needs to be set to true in order to execute NVRAMRC script at startup.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
0 &amp;gt; nvalias dh /pci@f4000000/ata-6@d/disk@0&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''nvunalias'' deletes an alias.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
0 &amp;gt; nvunalias dh&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can replace existing aliases with your own ones. Removing them will revert to original values.&lt;br /&gt;
&lt;br /&gt;
=== Creating an Alias for a USB Disk ===&lt;br /&gt;
If your firmware version doesn't create the ''ud'' alias by default, you can add the alias by yourself. The only drawback is that you'll have to use the same physical USB port always, or create several aliases for each port.&lt;br /&gt;
&lt;br /&gt;
1. Check that the alias doesn't exist alredy&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
0 &amp;gt; devalias&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. List all devices (press the Space Bar to see them all)&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
0 &amp;gt; dev / ls&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Look for a USB device that contains your disk (''disk@1'', for instance), and combine list tree entries to a full path. The path can be verified, for example, by listing files on the disk.&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
0 &amp;gt; dir /pci@f2000000/usb@1b,1/disk@1:,\&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Create a permanent alias with the ''nvalias'' command (and/or a temporary alias with ''devalias'' instead of ''nvalias'' for testing it before a reboot)&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
0 &amp;gt; nvalias ud /pci@f2000000/usb@1b,1/disk@1&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5. Make sure the ''use-nvramrc?'' env variable is set&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
0 &amp;gt; setenv use-nvramrc? true&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
6. Reboot the computer and the ''ud'' alias should be available on the firmware now&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
0 &amp;gt; reset-all&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Booting MorphOS ==&lt;br /&gt;
=== Basics ===&lt;br /&gt;
To boot into MorphOS, Open Firmware has to load a MorphOS boot image file, which is usually named as ''boot.img''. The boot image contains the MorphOS kernel and core drivers, so it's basically comparable to the Amiga's Kickstart. Open Firmware just loads and boots the file, and the rest is handled by MorphOS itself after that. In case of errors, it's important to distinguish if loading of the boot image failed or does the error occur at a later stage.&lt;br /&gt;
&lt;br /&gt;
The ''boot.img'' file usually resides on a special HFS formatted ''Boot:'' partition on Macs, or on a partition that has a filesystem known to Open Firmware in any case. The ''Boot:'' partition only contains a few Open Firmware related files and isn't used for anything else than to get the kernel loaded by the machine itself. How MorphOS sees the partition isn't important and it can even be unmounted from a MorphOS point of view. MorphOS itself is booted from a partition containing a MorphOS compatible [[Filesystems|filesystem]] and MorphOS system files in it, and this partition is usually named as &amp;quot;System:&amp;quot; and the SYS: '''assign''' points to it as well.&lt;br /&gt;
&lt;br /&gt;
When booting manually from OF, you'll see some output lines on screen. There are two important lines that tell you the boot stage. This can be demonstrated well with the ''load'' and ''go'' commands.&lt;br /&gt;
&lt;br /&gt;
Type in this line (if you have a MorphOS installation on your HD):&lt;br /&gt;
&lt;br /&gt;
 0 &amp;gt; load hd:,\boot.img&lt;br /&gt;
&lt;br /&gt;
And you'll see output like this:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
0 &amp;gt; load hd:,\boot.img load-size=16e8fc adler32=bd628950&lt;br /&gt;
&lt;br /&gt;
Loading ELF&lt;br /&gt;
 ok&lt;br /&gt;
0 &amp;gt; _&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Loading ELF&amp;quot; tells you that the file has been found and loaded.&lt;br /&gt;
&lt;br /&gt;
The file can be booted with the ''go'' command then:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
0 &amp;gt; go&lt;br /&gt;
DO-QUIESCE finished_&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;DO-QUIESCE finished&amp;quot; indicates that the file has been booted and the machine is now running under MorphOS. Problems after that stage are MorphOS related, and if the MorphOS boot image doesn't appear soon, then MorphOS might not have found a device or image to boot from, or there might be driver or compatibility issues. MorphOS reset keys (Ctrl-Lcmd-Rcmd, Fn-alt-alt) also work at this stage even if there are any other problems halting the boot process.&lt;br /&gt;
&lt;br /&gt;
A shorter, and usual, way to boot is to use the ''boot'' command, which combines both ''load'' and ''go'' commands.&lt;br /&gt;
&lt;br /&gt;
The previous example can be achieved with this single line:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
 0 &amp;gt; boot hd:,\boot.img&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And the output should then look like this:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
0 &amp;gt; boot hd:,\boot.img load-size=16e8fc adler32=bd628950&lt;br /&gt;
&lt;br /&gt;
Loading ELF&lt;br /&gt;
 &lt;br /&gt;
DO-QUIESCE finished_&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Boot Arguments ===&lt;br /&gt;
Several boot arguments can be given to the ''boot.img'' file by adding them to the end of a ''load'' or ''boot'' line. More detailed explanations of these arguments can be found from '''Docs/Booting MorphOS.txt''' and '''Docs/PegasosFirmware.txt''' files on your MorphOS system or the installation CD, but let's cover the most useful booting related ones here. Note that Sam460ex/cr and AmigaOne X5000 systems don't use Open Firmware, but the boot arguments can be given on them too by setting an environment variable in their [[Tips_and_Tricks#MorphOS_Boot_Arguments_on_U-boot_Systems | U-boot console]].&lt;br /&gt;
&lt;br /&gt;
Without arguments MorphOS boots a device that is bootable and has the highest boot priority set. '''Note''' that this only applies to partitions that contain a MorphOS compatible bootable [[Filesystems|filesystem]]. If a MorphOS installation CD is inserted, it usually has a higher priority than bootable partitions on the HD. The HDConfig tool can be used to set partitions bootable and alter their boot priorities, but usually it's unnecessary to change these settings.&lt;br /&gt;
&lt;br /&gt;
The syntax for arguments is '''argument=value''', but the equals sign can be replaced with a space character. The arguments can be given in a longer or shorter, in parenthesis '''()''' format.&lt;br /&gt;
&lt;br /&gt;
* '''bootdevice (bd)''' - Overrides boot priorities and boots from a given partition. The partition name must be given in the form MorphOS sees it as a '''device name''' (volume names don't work), and the trailing &amp;quot;:&amp;quot; character can be omitted. For example, &amp;quot;bootdevice=dh1&amp;quot; works, but &amp;quot;bootdevice=System&amp;quot; doesn't.[[File:MorphOS-BootMenu.png|thumb|MorphOS bootmenu]]&lt;br /&gt;
* '''bootimage (bi)''' - Boots the MorphOS system from an ISO image file, which is placed on a partition that is accessible with the built-in filesystems of the boot.img ('''FAT, SFS, FFS, PFS3, CDFS'''). A full MorphOS style path must be given to the argument, but use '''device names''' instead of volume names again. For example, &amp;quot;bootimage=umsd0:morphos-3.11.iso&amp;quot;, &amp;quot;bootimage=dh2:morphos-3.11.iso&amp;quot;.&lt;br /&gt;
* '''bootmenu (bm)''' - Boots into the MorphOS bootmenu where you can change display settings, see information about devices, or boot without startup-sequence. The same bootmenu can be accessed by pressing the '''Shift''' key, the '''F1''' key, or the '''left mouse button''' during the MorphOS boot process (you'll have to try which option works on your hardware). Pressing the '''v''' key in the bootmenu toggles between the default resolution and a 640x480@60Hz VESA mode, and that can be useful in case of display issues. The '''space''' toggles between multiple monitors instead.&lt;br /&gt;
&lt;br /&gt;
=== Examples ===&lt;br /&gt;
==== Booting from CD ====&lt;br /&gt;
MorphOS documentation's usual advice is to boot the machine with the ''c'' key pressed, but that method can sometimes be unreliable for one reason or another, so you might end up in a situation where a boot image has been loaded from a HD and the actual system from a CD, which results in an error if the boot image and the CD aren't from the same MorphOS version. A more reliable way is to boot into the Startup Manager menu on Macs by holding the ''alt'' (''option'') key at boot, and select the CD from that graphical boot menu. Pressing the F12 key in the menu will eject the CD.&lt;br /&gt;
&lt;br /&gt;
As well as the previously mentioned methods, there are other ways to boot a CD from the Open Firmware prompt.&lt;br /&gt;
&lt;br /&gt;
To boot any inserted CD that is bootable on Macs:&lt;br /&gt;
 0 &amp;gt; boot cd:,\\:tbxi&lt;br /&gt;
&lt;br /&gt;
&amp;quot;\\&amp;quot; will look for a ''blessed'' directory on a device (you can list it by ''dir cd:,\\'' or ''dir hd:,\\'', for instance) and '':tbxi'' looks for files of type tbxi (Toolbox image). This does practically the same thing as booting with the ''c'' key or booting from the Startup Manager menu, but you also see the output lines from OF (especially the &amp;quot;Loading ELF&amp;quot; &amp;amp; &amp;quot;DO-QUIESCE finished&amp;quot; lines) if you need some debug output.&lt;br /&gt;
&lt;br /&gt;
Another way to boot the MorphOS installation CD from the OF prompt is to locate a correct boot image file from the CD and boot it with some boot arguments.&lt;br /&gt;
&lt;br /&gt;
List the contents of the CD:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
0 &amp;gt; dir cd:,\&lt;br /&gt;
&lt;br /&gt;
  Volume: MorphOSBoot&lt;br /&gt;
     Size/        GMT                     File/Dir&lt;br /&gt;
     bytes   date     time   TYPE CRTR    Name&lt;br /&gt;
        94 07/04/2018 04:54:42  ???? ???? .morphosid&lt;br /&gt;
   2287135 07/04/2018 04:03:02  boot UNIX boot.img&lt;br /&gt;
   1454648 07/04/2018 04:03:02  boot UNIX bootcyrusplus.img&lt;br /&gt;
   2201986 07/04/2018 04:03:02  boot UNIX bootefika.img&lt;br /&gt;
   2286039 07/04/2018 04:03:02  boot UNIX bootpeg1.img&lt;br /&gt;
   1416944 07/04/2018 04:03:02  boot UNIX bootsam_ppc4x0.img&lt;br /&gt;
           01/01/1904 00:00:00           *mac_ppc32&lt;br /&gt;
           01/01/1904 00:00:00            mac_ppc64&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As you can see, there are several different boot images for different architectures. ''boot.img'' is for Pegasos II and others are easy to guess. Boot images for Macs are located in sub-directories, ''mac_ppc32'' contains the ''boot.img'' file for G4 Macs and ''mac_ppc64'' for G5 Macs. The ''blessed'' directory is marked with an asterisk.&lt;br /&gt;
&lt;br /&gt;
If we wanted to boot the CD on a G5 Mac:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
0 &amp;gt; dir cd:,\mac_ppc64&lt;br /&gt;
&lt;br /&gt;
     Size/        GMT                     File/Dir&lt;br /&gt;
     bytes   date     time   TYPE CRTR    Name&lt;br /&gt;
   1499688 07/04/2018 04:03:02  boot UNIX  boot.img&lt;br /&gt;
   &lt;br /&gt;
 ok&lt;br /&gt;
0 &amp;gt; boot cd:,\mac_ppc64\boot.img bd cd0&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
cd0: is the default CD device on MorphOS and it can be given as a bootdevice argument. The system would most likely boot from the CD even without this argument, because of the previously mentioned boot priorities.&lt;br /&gt;
&lt;br /&gt;
To boot into the MorphOS boot menu on a G5 Mac:&lt;br /&gt;
 0 &amp;gt; boot cd:,\mac_ppc64\boot.img bm&lt;br /&gt;
&lt;br /&gt;
And the same for a G4 Mac:&lt;br /&gt;
 0 &amp;gt; boot cd:,\mac_ppc32\boot.img bm&lt;br /&gt;
&lt;br /&gt;
On a G4 Mac you could also use the ''blessed'' directory as a shortcut:&lt;br /&gt;
 0 &amp;gt; boot cd:,\\boot.img bm&lt;br /&gt;
&lt;br /&gt;
==== Booting MorphOS ISO from USB ====&lt;br /&gt;
The [http://www.morphos.de/guide/usb-boot Official MorphOS USB Boot &amp;amp; Installation / Update Guide] describes the basics of USB booting, but let's cover a few special cases here. If you can't access your FAT formatted USB stick, refer to the official guide on how to re-format it in a compatible way. Some Macs can be more picky about the format than others, and the same stick, that works in G4 Macs, might not work in a G5 Mac, etc., but it usually helps if you format it as advised in the official guide. If you still have issues with USB stick detection in OF or can't format the stick properly, this section of the tutorial provides some alternative methods to get a system booted.&lt;br /&gt;
&lt;br /&gt;
The following examples assume that you have a '''correct boot image file''' (named as ''boot.img'' here) and a '''MorphOS ISO image file''' (named as ''morphos.iso'' here, remember that official MorphOS downloads have different names!) on a '''FAT formatted USB stick''', which is plugged in before starting the OF user interface. The boot.img file can be obtained from a MorphOS installation CD/ISO, but remember that G4 and G5 Macs are stored in different directories (mac_ppc32 vs mac_ppc64). The files may be named differently too, there's no problem if you want to keep different versions around and boot whichever you want. You could have ''boot310.img'' and ''morphos310.iso'' as a bootable backup, for instance.&lt;br /&gt;
&lt;br /&gt;
So, the basic idea is to boot the system from an ISO image without burning it or extracting files from it. This can be achieved by giving the ISO image location to the boot image with the ''bootimage'' argument.&lt;br /&gt;
&lt;br /&gt;
Some firmware versions create a ''ud'' alias, which points to a USB mass storage device connected to the computer. [[Open_Firmware#Listing_Aliases | List the aliases]] to find out if it's been created.&lt;br /&gt;
&lt;br /&gt;
MorphOS itself creates a ''umsd0:'' device for the USB mass storage device and our ISO file is found from this device when the boot.img has been loaded.&lt;br /&gt;
&lt;br /&gt;
If you have recent enough Open Firmware, booting the ISO file from a USB stick is easy:&lt;br /&gt;
 0 &amp;gt; boot ud:,\boot.img bi umsd0:morphos.iso&lt;br /&gt;
&lt;br /&gt;
If that doesn't work, try to list the contents of the USB stick to find out if it's in a compatible format:&lt;br /&gt;
 0 &amp;gt; dir ud:,\&lt;br /&gt;
&lt;br /&gt;
If you don't have the ''ud'' alias, you'll have to search usb* aliases for a correct path in the OF tree. List the aliases again or just start trying to list usb0, usb1, etc., devices until you find a device containing '''disk''' in its name, and that will reveal the full path to the USB stick, which can be used instead of the ''ud'' alias.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
0 &amp;gt; dev usb0 ls&lt;br /&gt;
 ok&lt;br /&gt;
0 &amp;gt; dev usb1 ls&lt;br /&gt;
ff9e1650: /disk@1&lt;br /&gt;
0 &amp;gt; dir usb1/disk@1:,\&lt;br /&gt;
  Volume: USB&lt;br /&gt;
 258048000  07-24-2018 18:34:24    morphos.iso&lt;br /&gt;
   1501436  07-04-2018 04:03:02    boot.img&lt;br /&gt;
 ok&lt;br /&gt;
0 &amp;gt; boot usb1/disk@1:,\boot.img bi umsd0:morphos.iso&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the stick is connected to a USB hub, the path just gets deeper in the OF tree:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
0 &amp;gt; dev usb1 ls&lt;br /&gt;
ff9e1650: /hub@1&lt;br /&gt;
ff9e1860:   /disk@4&lt;br /&gt;
0 &amp;gt; boot usb1/hub@1/disk@4:,\boot.img bi umsd0:morphos.iso&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If a USB stick isn't recognised by Open Firmware, but it's accessible from MorphOS itself and you don't want to re-format it, you could copy the boot.img to a Mac partition on the HD, but still load the ISO image from the USB stick. The Mac partition can be an existing OSX installation (HFS+ formatted partition) or previous MorphOS installation (the HFS formatted Boot partition), for instance. The ISO image itself can't be loaded from an HFS partition, because MorphOS kernel (boot.img) doesn't have HFS support built-in. HFS support is loaded from filesystem level at the later stage when you boot MorphOS, but as OF recognises HFS partitions, boot.img can be loaded from them.&lt;br /&gt;
&lt;br /&gt;
List the contents of the partitions until you find the correct partition where you copied the new boot.img file.&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
0 &amp;gt; dir hd:1,\&lt;br /&gt;
MAC-PARTS: specified MAC partition is not valid can't OPEN the DIR device&lt;br /&gt;
 ok&lt;br /&gt;
0 &amp;gt; dir hd:2,\&lt;br /&gt;
&lt;br /&gt;
  Volume: OSX&lt;br /&gt;
     Size/        GMT                      File/Dir&lt;br /&gt;
     bytes   date     time   TYPE CRTR     Name&lt;br /&gt;
           07/22/2017 07:27:40              Applications&lt;br /&gt;
           09/27/2016 09:59:40              bin&lt;br /&gt;
   1501436 07-04-2018 04:03:02  ???? UNIX   boot.img&lt;br /&gt;
 ok&lt;br /&gt;
0 &amp;gt; boot hd:2,\boot.img bi umsd0:morphos.iso&amp;lt;/nowiki&amp;gt;&lt;/div&gt;</summary>
		<author><name>JPV</name></author>	</entry>

	<entry>
		<id>https://library.morph.zone/index.php?title=Tools/SFSDoctor&amp;diff=4366</id>
		<title>Tools/SFSDoctor</title>
		<link rel="alternate" type="text/html" href="https://library.morph.zone/index.php?title=Tools/SFSDoctor&amp;diff=4366"/>
				<updated>2025-07-02T13:59:07Z</updated>
		
		<summary type="html">&lt;p&gt;JPV: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Description ==&lt;br /&gt;
Diagnostic and repair tool for SFS formatted partitions. &lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
The '''Check Disk''' option checks for errors, but doesn't modify the filesystem data. The '''Scan Disk''' option can be used to repair filesystems.&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
Read the extensive information about filesystem errors and solutions by selecting the '''Help''' option from the pull-down menus.&lt;br /&gt;
&lt;br /&gt;
== Screenshot ==&lt;br /&gt;
: [[File:SFSDoctor.png]]&lt;/div&gt;</summary>
		<author><name>JPV</name></author>	</entry>

	<entry>
		<id>https://library.morph.zone/index.php?title=User:JPV&amp;diff=4359</id>
		<title>User:JPV</title>
		<link rel="alternate" type="text/html" href="https://library.morph.zone/index.php?title=User:JPV&amp;diff=4359"/>
				<updated>2025-05-22T08:07:35Z</updated>
		
		<summary type="html">&lt;p&gt;JPV: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A long-term Amiga and MorphOS user, who has difficulties to produce grammatically correct English, but tries to do his best to support the community by writing articles. Feel free to correct anything I've written and please visit my software/MorphOS pages [https://jpv.amigaaa.com/ here] :)&lt;/div&gt;</summary>
		<author><name>JPV</name></author>	</entry>

	<entry>
		<id>https://library.morph.zone/index.php?title=Tips_and_Tricks&amp;diff=4358</id>
		<title>Tips and Tricks</title>
		<link rel="alternate" type="text/html" href="https://library.morph.zone/index.php?title=Tips_and_Tricks&amp;diff=4358"/>
				<updated>2025-05-22T07:57:14Z</updated>
		
		<summary type="html">&lt;p&gt;JPV: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''Originally published at: http://jpv.wmhost.com/morphos/tips/''&lt;br /&gt;
&lt;br /&gt;
Miscellaneous tips and tricks for MorphOS use. Some may even be hackish and not officially encouraged by MorphOS Team. Everyone is welcome to make additions and corrections here.&lt;br /&gt;
== Basic Features ==&lt;br /&gt;
&lt;br /&gt;
=== Modifying the System Directory ===&lt;br /&gt;
: Tip #1: NEVER modify anything in the MOSSYS: (SYS:MorphOS/) path! All changes are lost in a system upgrade. If you need to add any 3rd party drivers or libraries, add them to SYS:. If there isn't a correct directory by default, make one.&lt;br /&gt;
&lt;br /&gt;
: There's only one exception (of course there is one) to this: you can rename MOSSYS:Libs/rexxsyslib.library to MOSSYS:Libs/rexxsyslib.library_disabled when you copy a 68k version of rexxsyslib.library to SYS:Libs/ in order to get the ARexx environment working.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Keyboard Commands ===&lt;br /&gt;
&lt;br /&gt;
: At first, check the default ones and define your favourites in '''System Settings -&amp;gt; IControl -&amp;gt; Hotkeys''' and in '''Ambient Settings -&amp;gt; Keyboard'''.&lt;br /&gt;
&lt;br /&gt;
: For example IControl has &amp;quot;Active Window: Activate Next&amp;quot; and &amp;quot;All Windows: Depth Menu&amp;quot; options, which can be used to achieve alt/ctrl/command-tab style window cycling functionality familiar from other operating systems.&lt;br /&gt;
&lt;br /&gt;
: Other keys: &lt;br /&gt;
:* To zoom Ambient icons in the icon mode: keep CTRL pressed and use the mouse wheel or just roll the wheel over the Viewmode button.&lt;br /&gt;
:* To find and select files in Ambient windows by letters: start typing a name when the window is active. Keep the Shift key pressed for directories. &lt;br /&gt;
:* To enter a path manually (for example for hidden dirs like .recycled): press the / key in an Ambient window and type in the path. &lt;br /&gt;
:* Command-f activates the find function in most programs. &lt;br /&gt;
:* The r key rotates the pictures in Ambient's internal viewer and Page Up/Down keys select previous and next images in a dir &lt;br /&gt;
:* Check keyboard commands of the Shell, like by default, commands can be completed with CTRL-tab, devices with ALT-tab, history with shift-tab etc. &lt;br /&gt;
:* Keeping the Alt key pressed while double clicking a drawer gives you different ways to open drawers.&lt;br /&gt;
:* Keeping the Alt key pressed while dragging files on the same partition copies files instead of moving, or vice versa depending on your Ambient settings.&lt;br /&gt;
&lt;br /&gt;
=== Enabling/Disabling Icon Tooltypes ===&lt;br /&gt;
&lt;br /&gt;
: Double click single tooltypes to enable and disable them in the icon information window.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Browsing History in Ambient ===&lt;br /&gt;
&lt;br /&gt;
: Clicking the parent button ([[File:Tips_Parent.png|middle]]) on an Ambient window (in browser mode) with the right mouse button gives you a browsing history popup menu for quick jumping between locations.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Sync the Clock from Internet at Boot ===&lt;br /&gt;
&lt;br /&gt;
: Add this line to S:user-network-startup file:&lt;br /&gt;
: &amp;lt;tt&amp;gt;Run DETACH MOSSYS:C/SetClockNTP SAVE&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Redirecting AHI Music Unit ===&lt;br /&gt;
&lt;br /&gt;
: You can select Unit 0 as the Music Unit in AHI to be able hear audio output from multiple programs at the same time, with a slight decrease in quality.&lt;br /&gt;
&lt;br /&gt;
: [[File:MorphOS_System_settings_Music_Unit.png|280px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Keeping AHI Audio Quality Better ===&lt;br /&gt;
&lt;br /&gt;
: Audio quality with AHI will be better if you reduce available channels for its shared modes (Unit 0 usually). Available channels will limit the amount of simultaneus playback of sounds, but you really don't need the default 32 channels and even two channels can be quite enough. Should there be more concurrent sounds, some of them just get muted until the other have been finished.&lt;br /&gt;
&lt;br /&gt;
: [[File:MorphOS_System_settings_Change_Unit.png|280px]] [[File:MorphOS_System_settings_Unit_0.png|280px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Mime Type Configuration ===&lt;br /&gt;
&lt;br /&gt;
: Learn to configure mime types from the Ambient settings. It really gives so much for your system and your user experience. [http://jpv.wmhost.com/pics/mimemplayer.png Here] is one example of how to configure MPlayer for all the video files.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Inline Editing ===&lt;br /&gt;
&lt;br /&gt;
: Inline editing is a quick way to edit filenames by clicking them with the mouse wheel or with the long left mouse click. Its behaviour can be configured from the Lister settings in Ambient Settings.&lt;br /&gt;
&lt;br /&gt;
: File comments can also be edited with the inline editing.&lt;br /&gt;
&lt;br /&gt;
: [[File:Tips_Inlineedit.png|280px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Batch Renaming in Ambient ===&lt;br /&gt;
&lt;br /&gt;
# Select files you want to be in the range of renaming.&lt;br /&gt;
# Hit rename button or command-r keyboard shortcut.&lt;br /&gt;
# Use pattern to rename. For example renaming all files which begin with &amp;quot;mod.&amp;quot; to files which end with &amp;quot;.mod&amp;quot;, use &amp;quot;mod.*&amp;quot; as source and &amp;quot;*.mod&amp;quot; as destination (quotation marks not needed).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Don't Forget RMB/Long-LMB Gadget Menus ===&lt;br /&gt;
&lt;br /&gt;
: You get menus from zoom and depth gadgets with right mouse button or by holding left mouse button pressed on them.&lt;br /&gt;
&lt;br /&gt;
: [[File:Tips_Zoommenu.png]] [[File:Tips_Windowdepthmenu.png]] [[File:Tips_Screendepthmenu.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== How to Use RMB with One-button Mouse ===&lt;br /&gt;
&lt;br /&gt;
: The right mouse button can be emulated in several different ways:&lt;br /&gt;
:* The '''System Settings -&amp;gt; Mouse -&amp;gt; Open menus by clicking...''' setting lets your mouse button act as the right mouse button if you hold a qualifier key pressed while clicking. The qualifier key can be configured for your preferences, but it's the shift key by default.&lt;br /&gt;
:* Press right alt and right command keys together. This probably doesn't work on systems with ADB keyboard, like on older Mac laptops. The ADB keyboard doesn't make difference between left and right keys.&lt;br /&gt;
:* With non-ADB laptops (PowerBook 5,6-5,9 and 6,7 (iBook)) you can also use two finger tap or two finger hold + button combination on the touchpad for RMB.&lt;br /&gt;
:* You can define a hotkey for menu launching on the IControl preferences (the default one is rcommand+space). It doesn't work exactly as the RMB everywhere, but works if you're mostly using the RMB for menus.&lt;br /&gt;
:* A multi button USB mouse works always!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Starting Programs Iconified ===&lt;br /&gt;
&lt;br /&gt;
: MUI has an option to start programs in iconified mode. It's useful for example for programs like Synergy, which you'd like to start on background without their main window jumping up. The option can be found from program's MUI Settings (Windows -&amp;gt; Iconify on startup).&lt;br /&gt;
&lt;br /&gt;
: [[File:Tips_Iconify.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Checking the Debug Log ===&lt;br /&gt;
&lt;br /&gt;
: If you want a stable system, you need to check the debug log periodically to see if any program misbehaves when used, especially when running new software.&lt;br /&gt;
&lt;br /&gt;
: An easy way to do it is to enable Debug screenbar module from the screen depth gadget menu. Bug looking Debug button on the screenbar will then give you a debug menu where you can view the log etc. If &amp;quot;Show Log...&amp;quot; option is ghosted, there's nothing in the log and everything is fine, but if it shows hundreds of cryptic lines (it's called a hit), then you have something to worry and the system probably isn't stable anymore. Some programs may output their own harmless debug information to the log too, but it's usually limited to few or tens of lines maximum. You'll recognize a real hit for sure.&lt;br /&gt;
&lt;br /&gt;
: [[File:Tips_Debug1.png|x64px]] [[File:Tips_Debug2.png|x64px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Printing to a PostScript Compatible Network Printer ===&lt;br /&gt;
&lt;br /&gt;
: You should mount the NETPAR: device and print to that device from programs like VPDF and OWB, which can output PostScript. NETPAR: is faster than printing through Turboprint (PRT:) and doesn't need Ghostscript installed (PS:).&lt;br /&gt;
&lt;br /&gt;
: &amp;quot;Mount NETPAR:&amp;quot; can be added to S:user-startup, for example.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== .recycled Directory ===&lt;br /&gt;
&lt;br /&gt;
: SFS is the default filesystem on MorphOS. It can have a special directory which contains recently deleted files. The directory is named as .recycled and it resides at the root level of every SFS partition (SYS:.recycled for example). Depending the format options it may be disabled, hidden but accessible, or visible.&lt;br /&gt;
&lt;br /&gt;
: If it's hidden, you can't see it even with &amp;quot;View All Files&amp;quot; option, but you can access it from the shell or Ambient (for example by pressing / key and then writing it to the path string after the volume name).&lt;br /&gt;
&lt;br /&gt;
: You shouldn't modify any files in it, but you can recover deleted files by copying them to some other path.&lt;br /&gt;
&lt;br /&gt;
: The PFS3 filesystem has a similar directory, but its name is &amp;quot;.deldir&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== How to Reduce Graphics Memory Usage ===&lt;br /&gt;
&lt;br /&gt;
: MorphOS can use graphics memory quite extensively which can cause slowdowns or glitches if you run out of it. It usually isn't an issue if you have 64MB or more graphics memory, but lower spec systems with today's resolutions may need some tuning. There are several ways to reduce memory usage and you have to decide or try which is the best for you.&lt;br /&gt;
&lt;br /&gt;
: MorphOS has an &amp;quot;Enhanced Display&amp;quot; mode, which uses the graphics card's 3D functions to draw graphic layers. It consumes more memory than the traditional 2D mode, but it provides some eyecandy, tearless moving etc.&lt;br /&gt;
&lt;br /&gt;
: To reduce its memory usage, you may:&lt;br /&gt;
:* Change its buffering settings on the DisplayEngine settings in MorphOS Preferences. You need to reboot or switch screens for the new settings to take effect.&lt;br /&gt;
:* Disable it completely from the Screens settings in MorphOS Preferences for some or all screens. It may also help if you let it be enabled for Ambient screen, but disable it on other screens you might have.&lt;br /&gt;
&lt;br /&gt;
: Other ways to reduce graphics memory usage:&lt;br /&gt;
:* Lower the color depth of screens from the Screens settings. 16-bit might be enough sometimes.&lt;br /&gt;
:* Don't use too many separate screens at the same time.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== How to Open MUI Programs on Their Own Screens ===&lt;br /&gt;
&lt;br /&gt;
: 1) An easy way is to select &amp;quot;Jump to Screen -&amp;gt; New&amp;quot; from the MUI popup menu gadget in program's window border. It always opens in an enhanced mode and clones the resolution from the Ambient screen. Open and save program's MUI settings to save it permanently.&lt;br /&gt;
: [[FIle:MorphOS3_jPV_Newscreen.png|120px]]&lt;br /&gt;
&lt;br /&gt;
: 2) A more configurable method is to open program's MUI settings, select the Screen tab, and create a totally new screen definition there. You can edit the screen name and the title to suit your use (you can use program's name for those for example), select any resolution and depth, enable or disable the enhanced mode etc. In many cases this is a better method, because you can save graphics memory by not using the enhanced mode for screens which you're going to use for full screen apps only or so.&lt;br /&gt;
&lt;br /&gt;
: You can switch between the screens with lamiga-m (lcommand-m) keyboard shortcut, or by clicking the screen depth gadget (left click switches to the next screen, right click gives you a menu where you can select any open screen).&lt;br /&gt;
: [[File:Tips_Screendepthmenu.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Advanced Features ==&lt;br /&gt;
&lt;br /&gt;
=== Default Device Icons ===&lt;br /&gt;
&lt;br /&gt;
: If you want a certain default icon for all the units of a certain device, you can create an icon named def_DEVICENAMExdisk.info to your default icons path (SYS:Prefs/Presets/Deficons/ by default).&lt;br /&gt;
&lt;br /&gt;
: For example the deficon for SMBFS devices would be called def_SMBFSxdisk.info.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Default Icon for Ambient Windows ===&lt;br /&gt;
&lt;br /&gt;
: By default there isn't a default icon file for the icon you see when iconifying an Ambient window (a view). If you want to override the built-in icon, create or copy a new icon file to your default icons path and name it to '''def_view.info'''. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Old Style Preferences Icons ===&lt;br /&gt;
&lt;br /&gt;
[[File:Separate_prefs_in_MorphOS.png|thumb|Example of separate system prefs in MorphOS]]&lt;br /&gt;
: You can have separate preferences icons in the SYS:Prefs/ directory in the old Amiga style for MorphOS system prefs. Make or copy icons named with a corresponding sub preference name into the SYS:Prefs/ dir and edit their Default Tool to &amp;quot;:MorphOS/Prefs/Preferences&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
: There's already a main preferences icon in SYS:Prefs, so here's an easy example: &amp;quot;copy SYS:Prefs/Preferences.info SYS:Prefs/Network.info&amp;quot;, after which double clicking the new Network icon opens the network preferences directly.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Hilight Options in Listers ===&lt;br /&gt;
&lt;br /&gt;
: If you want to use &amp;quot;Alternated rows&amp;quot; and &amp;quot;Hilighted sorting column&amp;quot; options in the Lister settings with a grapchics card that doesn't support 3D acceleration.&lt;br /&gt;
: Type in shell:&lt;br /&gt;
: &amp;lt;tt&amp;gt;Setenv MUI/fastppa SAVE 1&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Copy Selected Filenames ===&lt;br /&gt;
&lt;br /&gt;
: You can use the internal Ambient command &amp;quot;copyselectiontoclipboard&amp;quot; to copy selected filenames with or without path information to the clipboard. For example, create a new custom hotkey in the Ambient Settings and define &amp;quot;copyselectiontoclipboard VIEWID=%Si FULLPATH&amp;quot; as an internal command for it.&lt;br /&gt;
&lt;br /&gt;
: User may find it very useful to paste around the names selected in the Ambient windows in many situations.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Using ARexx Ports from Lua ===&lt;br /&gt;
&lt;br /&gt;
: MorphOS comes with a native implementation of the Lua scripting language. It can be used for script writing with application interacting instead of the emulated 3rd party ARexx. Lua can use existing ARexx ports with its ipc.module.&lt;br /&gt;
&lt;br /&gt;
: Load the IPC module first with the '''require 'ipc'''' line (unlike the standard Lua distribution, all modules have to be loaded with the ''require'' function on MorphOS. Check available modules from the ''MOSSYS:Libs/Lua/'' directory.)&lt;br /&gt;
&lt;br /&gt;
:* ipc.'''address(port)''' - sets the default ARexx port. Port &amp;quot;COMMAND&amp;quot; executes commands as DOS shell commands. &lt;br /&gt;
:* '''ipc.checkport(port)''' - checks if an ARexx port is available. &lt;br /&gt;
:* ipc.'''rx(command)''' - sends a command to a port set with ipc.address. It returns ARexx RESULT. &lt;br /&gt;
:* '''ipc.waitforport(name[, interval])''' - Waits for an ARexx port. Script is aborted if the port isn't found.&lt;br /&gt;
&lt;br /&gt;
: More about the topic [[Getting_Started_with_Lua|here]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Copying a Whole Disk As an Image File ===&lt;br /&gt;
&lt;br /&gt;
: You can access raw data of drives by MorphOS's RAWDISK: device. Partitions or whole disk can be copied in or out with it, but be careful to write to the correct destination! For copying you need to use SDK's cp command or standard Copy command with the DIRECT option.&lt;br /&gt;
&lt;br /&gt;
: You can browse available disks and devices by opening RAWDISK: device from the shell (just type RAWDISK: on the shell) or from Ambient (hit the / key, clear existing text, and write RAWDISK: to the string line). Browse to the Devices directory and then to the wanted device and unit to see the actual disk image file (rawdisk) and partition files in a separate partition table directory. Partition files let you recognize more easily that you're accessing the wanted disk. They also have information like device and filesystem names told in file comments (use the List command or Ambient to see them).&lt;br /&gt;
&lt;br /&gt;
: As an example, to make a backup of a whole SD card which is placed in a USB reader (the card is found in usbscsi.device unit 3):&lt;br /&gt;
: &amp;lt;tt&amp;gt;Copy DIRECT RAWDISK:Devices/usbscsi.device/3/rawdisk work:sdcard.img&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: And to copy the image back to the SD card (removes all existing data, be careful!):&lt;br /&gt;
: &amp;lt;tt&amp;gt;Copy DIRECT work:sdcard.img RAWDISK:Devices/usbscsi.device/3/rawdisk&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: This works with all raw disk image files like Raspberry Pi's OS distributions etc.&lt;br /&gt;
&lt;br /&gt;
: Single partitions can also be copied from the RAWDISK:Disks directory.&lt;br /&gt;
&lt;br /&gt;
: If you want to access the data in saved image files without needing to write them back to any device, you can mount them with help of [[Tools/FileImageCtrl]] and [[Tools/Mounter]] programs. You can either mount partitions directly with the [[Tools/FileImageCtrl|FileImageCtrl]] tool or insert disk images on it and mount the wanted partitions with the [[Tools/Mounter|Mounter]] tool.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Using WLAN with Hidden SSID ===&lt;br /&gt;
&lt;br /&gt;
: If you have to use wireless network with hidden SSID, you can add &amp;quot;scan_ssid=1&amp;quot; line in your ENVARC:sys/Wireless.prefs file's network block.&lt;br /&gt;
&lt;br /&gt;
: Contents should look something like this:&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;tt&amp;gt;network={&lt;br /&gt;
: &amp;amp;nbsp;&amp;amp;nbsp;ssid=&amp;quot;ThatHiddenSSID&amp;quot;&lt;br /&gt;
: &amp;amp;nbsp;&amp;amp;nbsp;scan_ssid=1&lt;br /&gt;
: &amp;amp;nbsp;&amp;amp;nbsp;psk=&amp;quot;password&amp;quot;&lt;br /&gt;
: }&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: Note: It's not recommended to hide the SSID, because it doesn't add security in practise. Use this only if you can't control the network you're connecting.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Modifying Screen and Keyboard Brightness on a Laptop without Using KB Shortcuts ===&lt;br /&gt;
&lt;br /&gt;
: Brightness values can be modified by editing the ENVARC:sys/laptopquick.conf file with a text editor. The values are taken in use after a reboot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Opening Ambient Windows from the Shell or Scripts ===&lt;br /&gt;
&lt;br /&gt;
: Directories can be opened with the [[Shell_Commands/Open|Open]] command, but it only opens them in the default view mode:&lt;br /&gt;
: &amp;lt;tt&amp;gt;Open SYS:Applications&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: If you need to open windows with certain location, size, position, and mode, you can use the LoadURI ARexx command. LoadURI accepts the following parameters:&lt;br /&gt;
:* URI which contains a path and attributes with values. The attributes are given after a question mark and they are separated with the &amp;amp; delimiter. Possible attributes are ''view'' (icon or list), ''mode'' (all, icons, or thumbs),  ''top'' (pixels from the top border), ''left'' (pixels from the left border), ''width'', and ''height''.&lt;br /&gt;
:* NEW=NEWWIN/S: opens a new window even if similar window would already be opened&lt;br /&gt;
:* RELOAD/S: reloads the URI&lt;br /&gt;
:* FORCE/S: forces full reloading&lt;br /&gt;
:* BROWSER/N: forces the browser mode on (1) or off (0)&lt;br /&gt;
:* VIEWID/N: specifies view/window ID&lt;br /&gt;
&lt;br /&gt;
: Use the ''AMBIENT'' port in ARexx scripts.&lt;br /&gt;
&lt;br /&gt;
: To open the SYS:Libs directory in the list mode showing all files in a 440x600 window at position x=350, y=50, no matter if it has been opened previously:&lt;br /&gt;
: &amp;lt;tt&amp;gt;'LoadURI &amp;quot;file://SYS:Libs?view=list&amp;amp;mode=all&amp;amp;top=50&amp;amp;left=350&amp;amp;width=440&amp;amp;height=600&amp;quot; NEW'&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: To open a directory in the icon mode showing thumbnails in a 500x400 window at position x=350, y=50, the window is also opened in the spatial (non browser) mode:&lt;br /&gt;
: &amp;lt;tt&amp;gt;'LoadURI &amp;quot;file://MOSSYS:Prefs/Wallpapers/1280x1024?view=icon&amp;amp;mode=thumbs&amp;amp;top=50&amp;amp;left=350&amp;amp;width=500&amp;amp;height=400&amp;quot; BROWSER=0'&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: If you don't want to write full ARexx scripts but would like to run them just as single shell commands, you can use the [[Shell_Commands/RXCmd|RXCmd]] shell command (notice that you have to escape the inner quotation marks with the asterisks):&lt;br /&gt;
: &amp;lt;tt&amp;gt;RXCmd AMBIENT &amp;quot;LoadURI *&amp;quot;file://SYS:Libs?view=list&amp;amp;mode=all&amp;amp;top=50&amp;amp;left=350&amp;amp;width=440&amp;amp;height=600*&amp;quot; NEW&amp;quot;&lt;br /&gt;
: RXCmd AMBIENT &amp;quot;LoadURI *&amp;quot;file://MOSSYS:Prefs/Wallpapers/1280x1024?view=icon&amp;amp;mode=thumbs&amp;amp;top=50&amp;amp;left=350&amp;amp;width=500&amp;amp;height=400*&amp;quot; BROWSER=0&amp;quot;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Bundled Software ==&lt;br /&gt;
&lt;br /&gt;
=== Flacapella Settings for MP3 Encoding ===&lt;br /&gt;
&lt;br /&gt;
: Example of a custom encoder setting in Flacapella:&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;tt&amp;gt;Compress Command: c:lame -V0 --tt &amp;quot;{title}&amp;quot; --ta &amp;quot;{artist}&amp;quot; --tl &amp;quot;{album}&amp;quot; --tn {track} {?coverfile:--ti &amp;quot;{coverfile}&amp;quot;} {input} {output}&lt;br /&gt;
: File Extension: mp3&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: This will encode tracks to mp3 files with title, artist, album and track number tags. It also embeds fetched cover image in files, if image was found. &lt;br /&gt;
: Example assumes you have [https://www.morphos-storage.net/?find=lame LAME] installed in C:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Jukebox Tips ===&lt;br /&gt;
&lt;br /&gt;
:* If you select any song in playlist by clicking it just once, it's played next no matter if you have random or sequential mode in use. &lt;br /&gt;
:* You can adjust volume in Jukebox by using mouse wheel over its screenbar module. &lt;br /&gt;
:* Displayed columns can be configured on the fly by right clicking the column title.&lt;br /&gt;
:* Jukebox can be better integrated into Ambient and its contextual menus with the [http://aminet.net/package/mus/play/JukeboxAdder JukeboxAdder] script.&lt;br /&gt;
:* Two new tooltypes were presented in MorphOS 3.8: &lt;br /&gt;
:** '''FRAMESCAN=NO''' disables the Reggae framescanning for tracks that have unknown duration. It speeds up the loading of such tracks, but you'll lose the seeking ability with them. &lt;br /&gt;
:** '''STREAMBUFFER=YES''' activates the Reggae streambuffer class which reduces stuttering, but causes lag on track change and seeking.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== How to Reduce OWB's HD Writes ===&lt;br /&gt;
&lt;br /&gt;
: OWB writes a lot of data to the hard drive by default. You might want to reduce it if you're paranoid about SFS fragmentation, filesystem corruption, privacy, or you'd like to avoid certain databases getting too big (which can cause slowdowns). Or you just want your .recycled dir to have other than the OWB files. One option is to use the Private Browsing mode always, but here are tips if you don't want to activate that always or you want to restrict certain writes only.&lt;br /&gt;
&lt;br /&gt;
:* Disable the TopSites feature. This makes a write for every page you visit, it's an awful amount. Its database (conf/TopSites.db) can also grow to hundreds of megabytes, which causes very noticeable slowdowns to browsing. You can disable it with the &amp;quot;Setenv SAVE OWB_DISABLE_TOPSITES 1&amp;quot; command in the shell, and if the database file has already grown too big, you can remove it.&lt;br /&gt;
:* Disable the Website Icons feature. Open the Interface settings and uncheck all Website Icons checkmarks. &lt;br /&gt;
:* Disable all saving options from the Privacy settings.&lt;br /&gt;
&lt;br /&gt;
: If you still need some option enabled, because some site requires it, you can soft link its configuration file to Ram Disk. I, for example, still have Local Storage enabled, but I have linked its dir to ENV: (which resides in Ram Disk). To do that, make LocalStorage directories to both ENV: and ENVARC: (that ensures that it's created after a reboot too), open the shell and cd into your OWB/Conf/ dir, rename or delete the old LocalStorage dir, type &amp;quot;makelink LocalStorage ENV:LocalStorage&amp;quot;. Using ENV: gives the advantage to have some files saved so that those settings are restored in every boot. If you're happy with a certain setting, copy the corresponding file to ENVARC: and it will be preserved without being messed up with the later usage. If you just want to have the configuration files enabled, but cleared on every boot, you could soft link them to T: for example.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Alternative YouTube Script for OWB ===&lt;br /&gt;
&lt;br /&gt;
: [http://www.morphzone.info/modules/newbb_plus/viewtopic.php?forum=9&amp;amp;topic_id=9799&amp;amp;post_id=109979&amp;amp;viewmode=flat&amp;amp;sortorder=0&amp;amp;showonepost=1 YouTube Center] is a feature rich configureable userscript for improving YouTube experience. It's made for mainstream browsers, but it also works on OWB! All videos can be forced to HTML5 to get them work in OWB. It's heavier than Fab's official OWB script, but works fine as an option or as a backup plan :). Script saves its settings to LocalStorage to #?www.youtube.com#? files.&lt;br /&gt;
&lt;br /&gt;
: Note: YouTube defaults to the HTML5 player nowadays and you might be fine without any Flash-&amp;gt;HTML5 converter scripts. It's probably better to install this script only if you want some other features from it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Watching Videos with Less CPU Load in OWB ===&lt;br /&gt;
&lt;br /&gt;
: When watching a video in OWB, the fullscreen mode makes a lot less CPU load than the default embedded mode, because the fast overlay mode is used then. CPU load may drop from 100% to 40% for example. Wait until the video really starts playing before clicking the fullscreen button on it, or it may fail and you have to reload the video to be able to try it again. Some videos may have a fullscreen option in their contextual menu too. Remember to have Fullscreen Fix scripts added and enabled from the Scripts window (&amp;quot;Windows-&amp;gt;Scripts...&amp;quot; pulldown menu entry) for YouTube, Dailymotion, and Vimeo.&lt;br /&gt;
&lt;br /&gt;
: Note: check that you really have the latest YouTube fullscreen fix script from http://fabportnawak.free.fr/owb/scripts/YouTube_Fullscreen_Fix.js in your OWB/Scripts/ directory. Grunch doesn't get updated for the latest version always for example.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Problems with YouTube Videos ===&lt;br /&gt;
&lt;br /&gt;
:* Now that YouTube defaults to HTML5, our days of ad-free videos have ended. It also means that the Content Blocking (AdBlock) option in the OWB's settings can block some videos. If you have some videos which won't start playing, try to disable the Content Blocking option and try again. If that was the problem, but you want to keep the content blocking enabled, add an allow rule to the Content Blocking settings. Open &amp;quot;Windows-&amp;gt;Content Blocking...&amp;quot; from the OWB's pulldown menus, click the Add button, and write &amp;quot;youtube.com&amp;quot; to the Rule line. Close the window and try the video again.&amp;lt;br /&amp;gt;[[File:OWB_ContentBlockingYT.png]]&lt;br /&gt;
&lt;br /&gt;
:* If all videos refuse to play, check if you have any YouTube converter scripts enabled in the &amp;quot;Windows-&amp;gt;Scripts...&amp;quot; settings. The Fullscreen Fix script is the only one needed and you should disable all converter scripts.&lt;br /&gt;
&lt;br /&gt;
:* Flash plugins can also break compatibility with YouTube, so if you have the swfdec_plugin.library file in your OWB/Plugins/ directory, you have the following options to choose from:&lt;br /&gt;
:** Remove the file from use if you don't need flash anywhere. The plugin doesn't work too well generally anyway.&lt;br /&gt;
:** Keep the file, but disable it for all pages by unchecking the &amp;quot;Settings-&amp;gt;Preferencfes-&amp;gt;Content-&amp;gt;Allow plugins&amp;quot; option. You can then enable it temporarily from &amp;quot;Settings-&amp;gt;Plugins-&amp;gt;Enable&amp;quot; if needed.&lt;br /&gt;
:** Disable it temporarily from &amp;quot;Settings-&amp;gt;Plugins-&amp;gt;Disable&amp;quot;, and reload the page.&lt;br /&gt;
:** Disable it just for YouTube by adding a new URL setting from &amp;quot;Windows-&amp;gt;URL Settings...&amp;quot;. Click the Add button, edit the URL line to for example &amp;quot;youtube.com&amp;quot;, and uncheck the Plugins option.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== OWB Doesn't Work or Stopped Working with Certain Web Pages ===&lt;br /&gt;
&lt;br /&gt;
:* Sometimes it helps to change the &amp;quot;Spoof as&amp;quot; setting in OWB. Web pages may offer different kind of content depending on what browser they think you are using. Some popular CAPTCHAs don't work with the default spoofing, but do work when spoofed as iPad for instance. iPad is generally a good option to start trying the spoofing, because you probably get the page in its simpliest form then.&lt;br /&gt;
&lt;br /&gt;
:* There are some bugs in the JavaScript engine in the latest available OWB version (1.24 at the time of writing) and that causes problems with some web pages, but there's a chance that these pages would still work with an earlier OWB version. You can download earlier OWB versions from [http://fabportnawak.free.fr/owb/ Fab's homepage] and install them, for example, to a different directory than your current OWB installation. There's no problem having two or even several OWB installations on your system, you can just launch whichever you want. As an example, Google Maps stopped working with OWB 1.24 in autumn 2017, but it still continued to work with [http://fabportnawak.free.fr/owb/owb-morphos-1.23.lha OWB 1.23].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Creating an ISO Image ===&lt;br /&gt;
&lt;br /&gt;
: Jalapeno can also create and save ISO images which will preserve MorphOS/AmigaOS file attributes and comments. Images can be used for backups or even be booted from USB devices.&lt;br /&gt;
&lt;br /&gt;
: An option to create an ISO image is found on the pulldown menu in the Burn Files section.&lt;br /&gt;
&lt;br /&gt;
: [[File:Tips_Create_ISO.png|200px]]&lt;br /&gt;
&lt;br /&gt;
: If the resulting image file will be bigger than 1GB, Jalapeno splits it into 1GB parts. Those parts can be joined into one big image file with the Join command in the shell, but remember the filesize limits of your target [https://library.morph.zone/Filesystems filesystem] when doing that.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Copying a CD/DVD to an ISO Image ===&lt;br /&gt;
&lt;br /&gt;
: If you want to make a standard, easily mountable, ISO image out of an existing CD or DVD, a good way to achieve it is to use the ReadCD program provided with the Jalapeno program on the standard MorphOS installation. Jalapeno itself can also create image files of optical media by selecting &amp;quot;Save as...&amp;quot; from the &amp;quot;Copy Tracks&amp;quot; pull-down menu, but resulting images aren't mountable by the system, because Jalapeno uses options that include more data into the images, for error checking etc.&lt;br /&gt;
&lt;br /&gt;
: Do these steps from the shell to read a CD/DVD into a standard ISO image:&lt;br /&gt;
:# Find your CD drive device by typing: MOSSYS:Data/Jalapeno/readcd -scanbus&lt;br /&gt;
:# Create an ISO image by typing (replace &amp;quot;1,1,0&amp;quot; to what you saw in the previous step, and the image path to what you want): MOSSYS:Data/Jalapeno/readcd -dev 1,1,0 f=ram:image.iso&lt;br /&gt;
&lt;br /&gt;
=== Disabling the Default UTF-8 Mode with Scribble ===&lt;br /&gt;
&lt;br /&gt;
: Scribble uses UTF-8 encoding by default, but you might prefer to default to the traditional ASCII format instead. The UTF-8 mode can be disabled from the pulldown menu in Scribble, but the setting isn't saved if you save the program settings.&lt;br /&gt;
: [[File:Scribble_ascii1.png|128px]]&lt;br /&gt;
&lt;br /&gt;
: If you want to disable it by default, you have to open the &amp;quot;Save As...&amp;quot; requester, enable the &amp;quot;Make Default&amp;quot; option (also check that Encoding is set to ASCII), and save a file (can be any file anywhere).&lt;br /&gt;
: [[File:Scribble_ascii2.png|205px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 3rd Party Software ==&lt;br /&gt;
&lt;br /&gt;
=== Where to Get Software? ===&lt;br /&gt;
:* Check [http://library.morph.zone/Links#File_Repositories file repositories] for manual installing&lt;br /&gt;
:* [http://www.geit.de/eng_grunch.html Grunch] is a good packet manager for automatic installation and updating of selected software&lt;br /&gt;
:* [http://www.meta-morphos.org/WArMUp/chrysalis_en.pdf Chrysalis] is a preconfigured environment and software distribution package ([http://www.warmup-asso.org/download/pack/chrysalis.iso Download ISO image])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Custom Ambient Menus with AREXX ===&lt;br /&gt;
&lt;br /&gt;
: You can add own menu items to Ambient pulldown menus with AREXX. Read SYS:MorphOS/Ambient/docs/arexx.txt for more info about AREXX usage or download the [http://morphos-files.net/remote/CRABUM CRABUM] program, which helps you to create correct AREXX lines ([http://library.morph.zone/Getting_Started#Creating_Menus_with_CRABUM tutorial]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Help with Shell Commands ===&lt;br /&gt;
&lt;br /&gt;
: MorphOS Library contains descriptions of all [http://library.morph.zone/Shell_Commands shell commands] and the descriptions can be displayed on the shell with the [http://aminet.net/package/util/batch/Chelp Chelp] script. The script can be used to replace older [http://aminet.net/package/util/cli/Help Help] program (which would otherwise be nice still, but it only contains help for MorphOS 1.x commands).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Utilizing Your Keyboard's Multimedia Keys ===&lt;br /&gt;
&lt;br /&gt;
:* The [http://www.geit.de/eng_mmkeyboard.html MMKeyboard] software can be used to assign different kinds of functions to extra keys found on some keyboards.&lt;br /&gt;
:* The [http://aminet.net/package/mus/play/MultiMeedio MultiMeedio] script provides a unified control for all popular media players.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Hardware Related ==&lt;br /&gt;
&lt;br /&gt;
=== Removing Startup Sound on Macs ===&lt;br /&gt;
&lt;br /&gt;
: The annoying startup sound can be removed from the '''Sound preferences''' on MorphOS nowadays. Set the '''Boot Chime Volume''' to zero to mute it.&lt;br /&gt;
&lt;br /&gt;
: Other (now obsolete) methods to mute it:&lt;br /&gt;
:* If you plan to use Mac as MorphOS only system, but you still have OSX installed, you can mute the audio from OSX before wiping it out by installing MorphOS. Startup sound doesn't come back if you won't boot into OSX anymore.&lt;br /&gt;
:* If you don't have OSX anymore, you could try to remove sound with some Linux distribution's live/installation CD. More info [http://www.meta-morphos.org/faq.php?id_cat=2&amp;amp;myfaq=yes&amp;amp;categories=Installation+et+d%E9marrage#74 here] and [https://morphosuser.wordpress.com/2014/12/28/removing-the-boot-sound/ here].&lt;br /&gt;
:* If you use OSX and MorphOS as a dualboot system you can install [http://www5e.biglobe.ne.jp/~arcana/StartupSound/index.en.html StartupSound.prefPane] for OSX.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Speeding Up the Startup Manager on Macs ===&lt;br /&gt;
&lt;br /&gt;
: Startup Manager (the boot menu you get by booting with option/alt key pressed) can be slow when it tries to find network boot devices. To speed it up go to the OF prompt and type &amp;quot;'''setenv skip-netboot? true'''&amp;quot;. Funnily enough, it only affects if you have network cable plugged in.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Booting MorphOS ISO from USB Stick ===&lt;br /&gt;
&lt;br /&gt;
: MorphOS Team has released an [http://www.morphos-team.net/guide/usb-boot official guide] for USB booting, but I've also noticed that at least some Macs (Mac mini and Powerbook for example) have certain ud alias for USB drive. You can use that as a shortcut and get the booting done with less work (no need to search the correct path, works even when USB stick is in a hub, less typing and less to remember).&lt;br /&gt;
&lt;br /&gt;
: If you have only one mass storage device connected, you can just boot into Open Firmware prompt (command-alt-o-f) and type:&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;tt&amp;gt;boot ud:,\boot.img bi umsd0:morphos.iso&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: (Remember to have both boot.img and morphos.iso on the stick)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Keyboard Reboot on ADB Laptops ===&lt;br /&gt;
&lt;br /&gt;
: The traditional Ctrl-Command-Command (Ctrl-Amiga-Amiga) keyboard combination doesn't work on laptops using the ADB interface for the keyboard, because ADB doesn't make difference between the left and right command keys. You can reboot them with an alternative Fn-Alt-Alt keyboard combination.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Blackouts or Graphical Flickering on Mac mini ===&lt;br /&gt;
&lt;br /&gt;
: Mac minis suffer from short blackouts with some monitors when the connection is made with a DVI cable. The screen gets usually blanked for few seconds, and depending of the monitor it may happen more or less frequently. Issue may also show up as flickering lines on the screen and it may get worse and worse until the monitor is unable to sync to the signal anymore.&lt;br /&gt;
&lt;br /&gt;
: One option to get around it is to use a VGA adapter/cable, because it doesn't seem to happen with it.&lt;br /&gt;
&lt;br /&gt;
: An another option is to try to lower the pixel clock value for the used screenmode from the Monitors settings in the MorphOS preferences. If your default mode has for example vertical frequency of 75 Hz, going to 60 Hz mode may help. Sometimes even a small change can help, and lowering just couple clicks from 60 Hz does the trick.&lt;br /&gt;
&lt;br /&gt;
: This seems to be a common problem with Mac minis and &amp;quot;non-coherent&amp;quot; displays as discussed for example [https://discussions.apple.com/thread/2723110 here].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Disabling the Internal Touchpad on Laptops ===&lt;br /&gt;
==== From the Touchpad Settings (Preferred)====&lt;br /&gt;
: An internal touchpad can be disabled from the MorphOS system settings nowadays, and this is the preferred method. Open '''System Settings -&amp;gt; Touchpad''' and disable the '''Enable the Touchpad driver''' setting.&lt;br /&gt;
&lt;br /&gt;
: [[File:MorphOS_Preferences_disabling_touchpad.png|200px]]&lt;br /&gt;
&lt;br /&gt;
==== From the USB Settings ====&lt;br /&gt;
: The touchpad can be disabled temporarily by removing its binding in the USB settings. This setting is reverted back next time the machine is booted or if USB class scanning is done otherwise.&lt;br /&gt;
&lt;br /&gt;
: To remove the binding, open the USB settings from the MorphOS Preferences application and go to the Devices list.&lt;br /&gt;
:* If you have &amp;quot;Apple Internal Trackpad&amp;quot; alone in the list, you can just select it and click the Unbind button.&lt;br /&gt;
:: [[File:Disabling touchpad ibook.png|200px]]&lt;br /&gt;
:* If your machine has a combined internal keyboard and trackpad device, double click it (&amp;quot;Apple Internal Keyboard / Trackpad&amp;quot;). Select Touchpad from the newly opened window and then click the Release Binding button.&lt;br /&gt;
:: [[File:Disabling touchpad powerbook.png|200px]]&lt;br /&gt;
&lt;br /&gt;
==== Removing the Driver at Boot Time ====&lt;br /&gt;
: Touchpad can also be disabled permanently by removing touchpad.library from use. Removing it is a bit tricky, because it resides in &amp;quot;ROM&amp;quot; and not as a file in system directories, but it can be done with the mf (module filter) boot command argument.&lt;br /&gt;
&lt;br /&gt;
: The boot command arguments can be edited by editing the bootinfo.txt file on Macs. The bootinfo.txt file is found on the Boot: partition, which also contains the boot.img file. If you don't see the partition, you probably need to mount it first by using, for example, the [[Tools/Mounter | Mounter]] tool. '''Note that if you edit the bootinfo.txt file, you must bless the file with the [[Shell_Commands/HFSSetMacBoot | HFSSetMacBoot]] command or the system won't be bootable anymore!'''&lt;br /&gt;
&lt;br /&gt;
: To add the mf argument, open the bootinfo.txt file with a text editor, find the line between &amp;lt;BOOT-SCRIPT&amp;gt; and &amp;lt;/BOOT-SCRIPT&amp;gt; lines (it starts with &amp;quot;boot&amp;quot;), and add ''mf=touchpad.library'' at the end of the boot line. Save the file and '''remember to bless it with the ''HFSSetMacBoot Boot:bootinfo.txt'' command from the shell or your system won't boot again!'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== MorphOS Boot Arguments on U-boot Systems ===&lt;br /&gt;
: To boot into MorphOS, hardware has to load a MorphOS boot image file that contains the kernel and core drivers. The boot image file also accepts arguments to control the boot procedure before the actual operating system is loaded from the system partition. The boot arguments usage on [[Open Firmware]] systems is well [[Open_Firmware#Boot_Arguments | documented]], but they must be given in a different way on [http://www.intuitionbase.com/static.php?section=uboot U-boot] systems (Sam460ex/cr, AmigaOne X5000).&lt;br /&gt;
&lt;br /&gt;
: On the U-boot systems the boot arguments have to be set in the '''morphosargs''' environment variable in the U-boot console.&lt;br /&gt;
&lt;br /&gt;
: To check if you already have the variable set:&lt;br /&gt;
: &amp;lt;tt&amp;gt;printenv morphosargs&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: To set an argument (in this example we'd disable an unsupported SCSI controller by removing the SCSI driver from the boot image by using the ''module filter (mf)'' boot argument):&lt;br /&gt;
: &amp;lt;tt&amp;gt;setenv morphosargs mf=symbios.device&amp;lt;/tt&amp;gt;&lt;br /&gt;
: &amp;lt;tt&amp;gt;saveenv&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: To edit an existing variable:&lt;br /&gt;
: &amp;lt;tt&amp;gt;editenv morphosargs&amp;lt;/tt&amp;gt;&lt;br /&gt;
: &amp;lt;tt&amp;gt;saveenv&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== FireWire Debugging ===&lt;br /&gt;
&lt;br /&gt;
: It's possible to transfer MorphOS debug logs to another computer via a FireWire connection. Please read [https://morph.zone/modules/newbb_plus/viewtopic.php?forum=11&amp;amp;topic_id=12759&amp;amp;post_id=143825&amp;amp;viewmode=flat&amp;amp;sortorder=0&amp;amp;showonepost=1 this post at MorphZone] for more information.&lt;/div&gt;</summary>
		<author><name>JPV</name></author>	</entry>

	<entry>
		<id>https://library.morph.zone/index.php?title=Open_Firmware&amp;diff=4357</id>
		<title>Open Firmware</title>
		<link rel="alternate" type="text/html" href="https://library.morph.zone/index.php?title=Open_Firmware&amp;diff=4357"/>
				<updated>2025-05-22T07:49:39Z</updated>
		
		<summary type="html">&lt;p&gt;JPV: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Preface ==&lt;br /&gt;
'''Open Firmware''' ('''OF''') is a computer firmware system, similar to the BIOS on a PC, found in all MorphOS compatible Macs. The Pegasos, Pegasos II, and Efika also have an Open Firmware based hardware implementation, but with small differences to Mac firmware.&lt;br /&gt;
&lt;br /&gt;
Open Firmware uses a Command-Line based user interface, which can be used to control booting and other processes. This tutorial focuses on useful tips and tricks when using the user interface by way of specific examples. The examples were tested on PowerPC Macs, but may also work under bPlan machines to some extent.&lt;br /&gt;
&lt;br /&gt;
Output texts in these examples have been truncated in most cases to show only the  information of interest.&lt;br /&gt;
&lt;br /&gt;
== Accessing the User Interface ==&lt;br /&gt;
Hold down the '''Command-Option-O-F''' key combination on a Mac keyboard, though the '''Option''' key is sometimes marked as '''Alt''' - with a symbol/icon below it, or press the '''Win-Alt-O-F''' key combination on a PC Windows keyboard while booting the machine. Release the keys only after you see the Open Firmware prompt display on a grey background.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
Apple PowerBook5,9 4.9.6f0 BootROM built on 10/05/05 at 16:45:50&lt;br /&gt;
Copyright 1994-2005 Apple Computer, Inc.&lt;br /&gt;
All Rights Reserved.&lt;br /&gt;
&lt;br /&gt;
Welcome to Open Firmware, the system time and date is: 07/24/2018 21:07:11&lt;br /&gt;
&lt;br /&gt;
To continue booting, type &amp;quot;mac-boot&amp;quot; and press return.&lt;br /&gt;
To shut down, type &amp;quot;shut-down&amp;quot; and press return.&lt;br /&gt;
&lt;br /&gt;
Release keys to continue!&lt;br /&gt;
&lt;br /&gt;
 ok&lt;br /&gt;
0 &amp;gt; _&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the machine boots to an installed OS instead of the OF prompt, reboot and try again. It may help to connect the keyboard directly to the machine's USB port, not via a USB hub. The keys don't have to be pressed immediately when powering the machine on, but promptly after hearing the startup sound (if it has not been disabled) or as the machine triggers access to the optical drive.&lt;br /&gt;
&lt;br /&gt;
Open Firmware uses the '''US keyboard layout''', tips for typing using other keyboards can be found within the [http://www.morphos.de/guide/usb-boot#section5 official MorphOS USB boot guide].&lt;br /&gt;
&lt;br /&gt;
== Useful Commands ==&lt;br /&gt;
* '''mac-boot''' - Continues booting from the current OF state&lt;br /&gt;
* '''reset-all''' - Resets the machine to the power-on state and reboots&lt;br /&gt;
* '''shut-down''' - Shuts down the machine&lt;br /&gt;
* '''load &amp;lt;file&amp;gt; &amp;lt;args&amp;gt;''' - Loads an OF code file (e.g. ELF binary image like MorphOS boot.img or Forth script) into memory&lt;br /&gt;
* '''go''' - Runs/boots the loaded file&lt;br /&gt;
* '''boot &amp;lt;file&amp;gt; &amp;lt;args&amp;gt;''' - Loads an OF code file and boots it&lt;br /&gt;
* '''printenv''' - Prints environment variable values&lt;br /&gt;
* '''setenv''' - Sets environment variable values&lt;br /&gt;
* '''devalias''' - Displays a list of ''aliases'' for devices (similar to ''assigns'' on MorphOS)&lt;br /&gt;
* '''.properties''' - Displays a list of properties for the selected device&lt;br /&gt;
* '''ls''' - Displays contents of the current path in the device tree&lt;br /&gt;
* '''pwd''' - Displays the current path within the device tree&lt;br /&gt;
* '''dev''' - Selects a device (using either the alias or absolute/relative device tree path)&lt;br /&gt;
* '''dir''' - Lists files on a partition&lt;br /&gt;
&lt;br /&gt;
== Environment Variables ==&lt;br /&gt;
Use the ''printenv'' command to list all environment variable values.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
0 &amp;gt; printenv&lt;br /&gt;
-------------- Partition: common -------- Signature: 0x70 ---------------&lt;br /&gt;
little-endian?           false                false&lt;br /&gt;
real-mode?              false                false&lt;br /&gt;
auto-boot?              true                 true&lt;br /&gt;
skip-netboot?           false                false&lt;br /&gt;
use-nvramrc?           false                false&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The first value in the list is the current value and the second value is the default value. It's quite rare that you need to change these values, but it's interesting to learn more about your computer nevertheless.&lt;br /&gt;
&lt;br /&gt;
One common choice is to speed up Startup Manager (the boot menu you see when booting with the option/alt key pressed) by disabling the netboot option. So, let's change that, as an example, and check that we succeeded.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
0 &amp;gt; setenv skip-netboot? true&lt;br /&gt;
0 &amp;gt; printenv skip-netboot?&lt;br /&gt;
-------------- Partition: common -------- Signature: 0x70 ---------------&lt;br /&gt;
skip-netboot?           true                 false&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Examining Devices ==&lt;br /&gt;
The ''dev'' command selects a device to be examined, and ''.properties'', ''ls'', and ''dir'' commands can be used to print information about the selected device. '''Note''' that it depends on the device type if these commands will print something. ''dir'' only works for devices containing a filesystem, and such like.&lt;br /&gt;
&lt;br /&gt;
=== Listing Aliases ===&lt;br /&gt;
A special ''/aliases'' device contains information about shortcuts (aliases) to different hardware devices. Let's see a few examples of how to show that information.&lt;br /&gt;
&lt;br /&gt;
The device can be selected with the ''dev'' command and then the aliases can be listed with the ''.properties'' command:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
0 &amp;gt; dev /aliases&lt;br /&gt;
0 &amp;gt; .properties&lt;br /&gt;
name                    aliases &lt;br /&gt;
pci0                    /pci@f0000000&lt;br /&gt;
agp                     /pci@f0000000&lt;br /&gt;
pci1                    /pci@f2000000&lt;br /&gt;
pci2                    /pci@f4000000&lt;br /&gt;
usb0                    /pci@f2000000/@15&lt;br /&gt;
usb1                    /pci@f2000000/@15,1&lt;br /&gt;
usb2                    /pci@f2000000/@15,2&lt;br /&gt;
hd                      /pci@f4000000/ata-6@d/disk@0&lt;br /&gt;
cd                      /pci@f4000000/ata-6@d/disk@1&lt;br /&gt;
ud                      /pci@f2000000/usb@15,1/disk@1&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The commands can also be input combined, on a single line:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
0 &amp;gt; dev /aliases .properties&lt;br /&gt;
name                    aliases &lt;br /&gt;
pci0                    /pci@f0000000&lt;br /&gt;
agp                     /pci@f0000000&lt;br /&gt;
pci1                    /pci@f2000000&lt;br /&gt;
pci2                    /pci@f4000000&lt;br /&gt;
usb0                    /pci@f2000000/@15&lt;br /&gt;
usb1                    /pci@f2000000/@15,1&lt;br /&gt;
usb2                    /pci@f2000000/@15,2&lt;br /&gt;
hd                      /pci@f4000000/ata-6@d/disk@0&lt;br /&gt;
cd                      /pci@f4000000/ata-6@d/disk@1&lt;br /&gt;
ud                      /pci@f2000000/usb@15,1/disk@1&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There's also a shorter ''devalias'' command available on most firmware versions, and it does the same as the previous example:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
0 &amp;gt; devalias&lt;br /&gt;
name                    aliases &lt;br /&gt;
pci0                    /pci@f0000000&lt;br /&gt;
agp                     /pci@f0000000&lt;br /&gt;
pci1                    /pci@f2000000&lt;br /&gt;
pci2                    /pci@f4000000&lt;br /&gt;
usb0                    /pci@f2000000/@15&lt;br /&gt;
usb1                    /pci@f2000000/@15,1&lt;br /&gt;
usb2                    /pci@f2000000/@15,2&lt;br /&gt;
hd                      /pci@f4000000/ata-6@d/disk@0&lt;br /&gt;
cd                      /pci@f4000000/ata-6@d/disk@1&lt;br /&gt;
ud                      /pci@f2000000/usb@15,1/disk@1&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Other Useful Properties ===&lt;br /&gt;
''.properties'' on the root device shows the computer specs:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
0 &amp;gt; dev / .properties&lt;br /&gt;
model                   PowerBook5,9&lt;br /&gt;
compatible              PowerBook5,9&lt;br /&gt;
                        MacRISC3&lt;br /&gt;
                        Power Macintosh&lt;br /&gt;
						&lt;br /&gt;
serial-number           SX0&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The ''enet'' device shows the MAC address of the computer. ''00:11:24:e3:66:66'' in this case:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
0 &amp;gt; dev enet .properties&lt;br /&gt;
vendor-id               0000106b&lt;br /&gt;
device-id               0000006b&lt;br /&gt;
name                    ethernet&lt;br /&gt;
device_type             network&lt;br /&gt;
local-mac-address       001124e3 6666&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Listing Devices ===&lt;br /&gt;
The ''ls'' command lists devices found in the current device in the device tree:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
0 &amp;gt; dev usb1 ls&lt;br /&gt;
ff9e1650  /disk@1&lt;br /&gt;
ff9e1a28: /device@2&lt;br /&gt;
ff9e1c48:   /keyboard@0&lt;br /&gt;
ff9e1f88:   /mouse@1&lt;br /&gt;
ff9e2230:   /interface@2&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Listing Files ===&lt;br /&gt;
If a device (disk) contains a supported filesystem ('''HFS(+), FAT, ISO9660'''), its contents can be listed with the ''dir'' command.&lt;br /&gt;
&lt;br /&gt;
Syntax of the ''dir'' command is:&lt;br /&gt;
'''dir disk:partition,path'''&lt;br /&gt;
&lt;br /&gt;
* ''disk'' is a device path to a disk, aliases can be used here and the delimiter in the device tree is /&lt;br /&gt;
* ''partition'' is a partition number (starting from 1), the default partition is used if left blank&lt;br /&gt;
* ''path'' is a path in the filesystem, the directory delimiter is \ and the same character is also used to access the root directory&lt;br /&gt;
&lt;br /&gt;
Listing the root (\) directory from the default partition on the default HD (this is usually the Boot: partition on a MorphOS system). The &amp;quot;,&amp;quot; character could be omitted in certain cases, but it's safer to type that as well:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
0 &amp;gt; dir hd:,\&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Listing the root directory from the first partition on the (default) HD:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
0 &amp;gt; dir hd:1,\&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Listing the root directory from a CD:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
0 &amp;gt; dir cd:,\&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Listing a sub-directory from a CD:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
0 &amp;gt; dir cd:,\mac_ppc32&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Listing the root directory from a USB mass storage device found in the usb1 device (use the previously mentioned ''ls'' command to find the correct device):&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
0 &amp;gt; dir usb1/disk@1:,\&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Newer firmware versions create the ''ud'' alias for a USB mass storage device connected to the machine (if it's been connected prior to starting the OF interface), so this does the same as the previous example:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
0 &amp;gt; dir ud:,\&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Adding Custom Devaliases ==&lt;br /&gt;
The ''devalias'' command adds temporary user defined devaliases.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
0 &amp;gt; devalias dh /pci@f4000000/ata-6@d/disk@0&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''nvvalias'' stores a devalias in NVRAMRC. Variable ''use-nvramrc?'' needs to be set to true in order to execute NVRAMRC script at startup.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
0 &amp;gt; nvalias dh /pci@f4000000/ata-6@d/disk@0&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''nvunalias'' deletes an alias.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
0 &amp;gt; nvunalias dh&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can replace existing devaliases with your own ones. Removing them will revert to original values.&lt;br /&gt;
&lt;br /&gt;
== Booting MorphOS ==&lt;br /&gt;
=== Basics ===&lt;br /&gt;
To boot into MorphOS, Open Firmware has to load a MorphOS boot image file, which is usually named as ''boot.img''. The boot image contains the MorphOS kernel and core drivers, so it's basically comparable to the Amiga's Kickstart. Open Firmware just loads and boots the file, and the rest is handled by MorphOS itself after that. In case of errors, it's important to distinguish if loading of the boot image failed or does the error occur at a later stage.&lt;br /&gt;
&lt;br /&gt;
The ''boot.img'' file usually resides on a special HFS formatted ''Boot:'' partition on Macs, or on a partition that has a filesystem known to Open Firmware in any case. The ''Boot:'' partition only contains a few Open Firmware related files and isn't used for anything else than to get the kernel loaded by the machine itself. How MorphOS sees the partition isn't important and it can even be unmounted from a MorphOS point of view. MorphOS itself is booted from a partition containing a MorphOS compatible [[Filesystems|filesystem]] and MorphOS system files in it, and this partition is usually named as &amp;quot;System:&amp;quot; and the SYS: '''assign''' points to it as well.&lt;br /&gt;
&lt;br /&gt;
When booting manually from OF, you'll see some output lines on screen. There are two important lines that tell you the boot stage. This can be demonstrated well with the ''load'' and ''go'' commands.&lt;br /&gt;
&lt;br /&gt;
Type in this line (if you have a MorphOS installation on your HD):&lt;br /&gt;
&lt;br /&gt;
 0 &amp;gt; load hd:,\boot.img&lt;br /&gt;
&lt;br /&gt;
And you'll see output like this:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
0 &amp;gt; load hd:,\boot.img load-size=16e8fc adler32=bd628950&lt;br /&gt;
&lt;br /&gt;
Loading ELF&lt;br /&gt;
 ok&lt;br /&gt;
0 &amp;gt; _&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Loading ELF&amp;quot; tells you that the file has been found and loaded.&lt;br /&gt;
&lt;br /&gt;
The file can be booted with the ''go'' command then:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
0 &amp;gt; go&lt;br /&gt;
DO-QUIESCE finished_&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;DO-QUIESCE finished&amp;quot; indicates that the file has been booted and the machine is now running under MorphOS. Problems after that stage are MorphOS related, and if the MorphOS boot image doesn't appear soon, then MorphOS might not have found a device or image to boot from, or there might be driver or compatibility issues. MorphOS reset keys (Ctrl-Lcmd-Rcmd, Fn-alt-alt) also work at this stage even if there are any other problems halting the boot process.&lt;br /&gt;
&lt;br /&gt;
A shorter, and usual, way to boot is to use the ''boot'' command, which combines both ''load'' and ''go'' commands.&lt;br /&gt;
&lt;br /&gt;
The previous example can be achieved with this single line:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
 0 &amp;gt; boot hd:,\boot.img&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And the output should then look like this:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
0 &amp;gt; boot hd:,\boot.img load-size=16e8fc adler32=bd628950&lt;br /&gt;
&lt;br /&gt;
Loading ELF&lt;br /&gt;
 &lt;br /&gt;
DO-QUIESCE finished_&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Boot Arguments ===&lt;br /&gt;
Several boot arguments can be given to the ''boot.img'' file by adding them to the end of a ''load'' or ''boot'' line. More detailed explanations of these arguments can be found from '''Docs/Booting MorphOS.txt''' and '''Docs/PegasosFirmware.txt''' files on your MorphOS system or the installation CD, but let's cover the most useful booting related ones here. Note that Sam460ex/cr and AmigaOne X5000 systems don't use Open Firmware, but the boot arguments can be given on them too by setting an environment variable in their [[Tips_and_Tricks#MorphOS_Boot_Arguments_on_U-boot_Systems | U-boot console]].&lt;br /&gt;
&lt;br /&gt;
Without arguments MorphOS boots a device that is bootable and has the highest boot priority set. '''Note''' that this only applies to partitions that contain a MorphOS compatible bootable [[Filesystems|filesystem]]. If a MorphOS installation CD is inserted, it usually has a higher priority than bootable partitions on the HD. The HDConfig tool can be used to set partitions bootable and alter their boot priorities, but usually it's unnecessary to change these settings.&lt;br /&gt;
&lt;br /&gt;
The syntax for arguments is '''argument=value''', but the equals sign can be replaced with a space character. The arguments can be given in a longer or shorter, in parenthesis '''()''' format.&lt;br /&gt;
&lt;br /&gt;
* '''bootdevice (bd)''' - Overrides boot priorities and boots from a given partition. The partition name must be given in the form MorphOS sees it as a '''device name''' (volume names don't work), and the trailing &amp;quot;:&amp;quot; character can be omitted. For example, &amp;quot;bootdevice=dh1&amp;quot; works, but &amp;quot;bootdevice=System&amp;quot; doesn't.[[File:MorphOS-BootMenu.png|thumb|MorphOS bootmenu]]&lt;br /&gt;
* '''bootimage (bi)''' - Boots the MorphOS system from an ISO image file, which is placed on a partition that is accessible with the built-in filesystems of the boot.img ('''FAT, SFS, FFS, PFS3, CDFS'''). A full MorphOS style path must be given to the argument, but use '''device names''' instead of volume names again. For example, &amp;quot;bootimage=umsd0:morphos-3.11.iso&amp;quot;, &amp;quot;bootimage=dh2:morphos-3.11.iso&amp;quot;.&lt;br /&gt;
* '''bootmenu (bm)''' - Boots into the MorphOS bootmenu where you can change display settings, see information about devices, or boot without startup-sequence. The same bootmenu can be accessed by pressing the '''Shift''' key, the '''F1''' key, or the '''left mouse button''' during the MorphOS boot process (you'll have to try which option works on your hardware). Pressing the '''v''' key in the bootmenu toggles between the default resolution and a 640x480@60Hz VESA mode, and that can be useful in case of display issues. The '''space''' toggles between multiple monitors instead.&lt;br /&gt;
&lt;br /&gt;
=== Examples ===&lt;br /&gt;
==== Booting from CD ====&lt;br /&gt;
MorphOS documentation's usual advice is to boot the machine with the ''c'' key pressed, but that method can sometimes be unreliable for one reason or another, so you might end up in a situation where a boot image has been loaded from a HD and the actual system from a CD, which results in an error if the boot image and the CD aren't from the same MorphOS version. A more reliable way is to boot into the Startup Manager menu on Macs by holding the ''alt'' (''option'') key at boot, and select the CD from that graphical boot menu. Pressing the F12 key in the menu will eject the CD.&lt;br /&gt;
&lt;br /&gt;
As well as the previously mentioned methods, there are other ways to boot a CD from the Open Firmware prompt.&lt;br /&gt;
&lt;br /&gt;
To boot any inserted CD that is bootable on Macs:&lt;br /&gt;
 0 &amp;gt; boot cd:,\\:tbxi&lt;br /&gt;
&lt;br /&gt;
&amp;quot;\\&amp;quot; will look for a ''blessed'' directory on a device (you can list it by ''dir cd:,\\'' or ''dir hd:,\\'', for instance) and '':tbxi'' looks for files of type tbxi (Toolbox image). This does practically the same thing as booting with the ''c'' key or booting from the Startup Manager menu, but you also see the output lines from OF (especially the &amp;quot;Loading ELF&amp;quot; &amp;amp; &amp;quot;DO-QUIESCE finished&amp;quot; lines) if you need some debug output.&lt;br /&gt;
&lt;br /&gt;
Another way to boot the MorphOS installation CD from the OF prompt is to locate a correct boot image file from the CD and boot it with some boot arguments.&lt;br /&gt;
&lt;br /&gt;
List the contents of the CD:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
0 &amp;gt; dir cd:,\&lt;br /&gt;
&lt;br /&gt;
  Volume: MorphOSBoot&lt;br /&gt;
     Size/        GMT                     File/Dir&lt;br /&gt;
     bytes   date     time   TYPE CRTR    Name&lt;br /&gt;
        94 07/04/2018 04:54:42  ???? ???? .morphosid&lt;br /&gt;
   2287135 07/04/2018 04:03:02  boot UNIX boot.img&lt;br /&gt;
   1454648 07/04/2018 04:03:02  boot UNIX bootcyrusplus.img&lt;br /&gt;
   2201986 07/04/2018 04:03:02  boot UNIX bootefika.img&lt;br /&gt;
   2286039 07/04/2018 04:03:02  boot UNIX bootpeg1.img&lt;br /&gt;
   1416944 07/04/2018 04:03:02  boot UNIX bootsam_ppc4x0.img&lt;br /&gt;
           01/01/1904 00:00:00           *mac_ppc32&lt;br /&gt;
           01/01/1904 00:00:00            mac_ppc64&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As you can see, there are several different boot images for different architectures. ''boot.img'' is for Pegasos II and others are easy to guess. Boot images for Macs are located in sub-directories, ''mac_ppc32'' contains the ''boot.img'' file for G4 Macs and ''mac_ppc64'' for G5 Macs. The ''blessed'' directory is marked with an asterisk.&lt;br /&gt;
&lt;br /&gt;
If we wanted to boot the CD on a G5 Mac:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
0 &amp;gt; dir cd:,\mac_ppc64&lt;br /&gt;
&lt;br /&gt;
     Size/        GMT                     File/Dir&lt;br /&gt;
     bytes   date     time   TYPE CRTR    Name&lt;br /&gt;
   1499688 07/04/2018 04:03:02  boot UNIX  boot.img&lt;br /&gt;
   &lt;br /&gt;
 ok&lt;br /&gt;
0 &amp;gt; boot cd:,\mac_ppc64\boot.img bd cd0&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
cd0: is the default CD device on MorphOS and it can be given as a bootdevice argument. The system would most likely boot from the CD even without this argument, because of the previously mentioned boot priorities.&lt;br /&gt;
&lt;br /&gt;
To boot into the MorphOS boot menu on a G5 Mac:&lt;br /&gt;
 0 &amp;gt; boot cd:,\mac_ppc64\boot.img bm&lt;br /&gt;
&lt;br /&gt;
And the same for a G4 Mac:&lt;br /&gt;
 0 &amp;gt; boot cd:,\mac_ppc32\boot.img bm&lt;br /&gt;
&lt;br /&gt;
On a G4 Mac you could also use the ''blessed'' directory as a shortcut:&lt;br /&gt;
 0 &amp;gt; boot cd:,\\boot.img bm&lt;br /&gt;
&lt;br /&gt;
==== Booting MorphOS ISO from USB ====&lt;br /&gt;
The [http://www.morphos.de/guide/usb-boot Official MorphOS USB Boot &amp;amp; Installation / Update Guide] describes the basics of USB booting, but let's cover a few special cases here. If you can't access your FAT formatted USB stick, refer to the official guide on how to re-format it in a compatible way. Some Macs can be more picky about the format than others, and the same stick, that works in G4 Macs, might not work in a G5 Mac, etc., but it usually helps if you format it as advised in the official guide. If you still have issues with USB stick detection in OF or can't format the stick properly, this section of the tutorial provides some alternative methods to get a system booted.&lt;br /&gt;
&lt;br /&gt;
The following examples assume that you have a '''correct boot image file''' (named as ''boot.img'' here) and a '''MorphOS ISO image file''' (named as ''morphos.iso'' here, remember that official MorphOS downloads have different names!) on a '''FAT formatted USB stick''', which is plugged in before starting the OF user interface. The boot.img file can be obtained from a MorphOS installation CD/ISO, but remember that G4 and G5 Macs are stored in different directories (mac_ppc32 vs mac_ppc64). The files may be named differently too, there's no problem if you want to keep different versions around and boot whichever you want. You could have ''boot310.img'' and ''morphos310.iso'' as a bootable backup, for instance.&lt;br /&gt;
&lt;br /&gt;
So, the basic idea is to boot the system from an ISO image without burning it or extracting files from it. This can be achieved by giving the ISO image location to the boot image with the ''bootimage'' argument.&lt;br /&gt;
&lt;br /&gt;
Some firmware versions create a ''ud'' alias, which points to a USB mass storage device connected to the computer. [[Open_Firmware#Listing_Aliases | List the aliases]] to find out if it's been created.&lt;br /&gt;
&lt;br /&gt;
MorphOS itself creates a ''umsd0:'' device for the USB mass storage device and our ISO file is found from this device when the boot.img has been loaded.&lt;br /&gt;
&lt;br /&gt;
If you have recent enough Open Firmware, booting the ISO file from a USB stick is easy:&lt;br /&gt;
 0 &amp;gt; boot ud:,\boot.img bi umsd0:morphos.iso&lt;br /&gt;
&lt;br /&gt;
If that doesn't work, try to list the contents of the USB stick to find out if it's in a compatible format:&lt;br /&gt;
 0 &amp;gt; dir ud:,\&lt;br /&gt;
&lt;br /&gt;
If you don't have the ''ud'' alias, you'll have to search usb* aliases for a correct path in the OF tree. List the aliases again or just start trying to list usb0, usb1, etc., devices until you find a device containing '''disk''' in its name, and that will reveal the full path to the USB stick, which can be used instead of the ''ud'' alias.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
0 &amp;gt; dev usb0 ls&lt;br /&gt;
 ok&lt;br /&gt;
0 &amp;gt; dev usb1 ls&lt;br /&gt;
ff9e1650: /disk@1&lt;br /&gt;
0 &amp;gt; dir usb1/disk@1:,\&lt;br /&gt;
  Volume: USB&lt;br /&gt;
 258048000  07-24-2018 18:34:24    morphos.iso&lt;br /&gt;
   1501436  07-04-2018 04:03:02    boot.img&lt;br /&gt;
 ok&lt;br /&gt;
0 &amp;gt; boot usb1/disk@1:,\boot.img bi umsd0:morphos.iso&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the stick is connected to a USB hub, the path just gets deeper in the OF tree:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
0 &amp;gt; dev usb1 ls&lt;br /&gt;
ff9e1650: /hub@1&lt;br /&gt;
ff9e1860:   /disk@4&lt;br /&gt;
0 &amp;gt; boot usb1/hub@1/disk@4:,\boot.img bi umsd0:morphos.iso&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If a USB stick isn't recognised by Open Firmware, but it's accessible from MorphOS itself and you don't want to re-format it, you could copy the boot.img to a Mac partition on the HD, but still load the ISO image from the USB stick. The Mac partition can be an existing OSX installation (HFS+ formatted partition) or previous MorphOS installation (the HFS formatted Boot partition), for instance. The ISO image itself can't be loaded from an HFS partition, because MorphOS kernel (boot.img) doesn't have HFS support built-in. HFS support is loaded from filesystem level at the later stage when you boot MorphOS, but as OF recognises HFS partitions, boot.img can be loaded from them.&lt;br /&gt;
&lt;br /&gt;
List the contents of the partitions until you find the correct partition where you copied the new boot.img file.&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
0 &amp;gt; dir hd:1,\&lt;br /&gt;
MAC-PARTS: specified MAC partition is not valid can't OPEN the DIR device&lt;br /&gt;
 ok&lt;br /&gt;
0 &amp;gt; dir hd:2,\&lt;br /&gt;
&lt;br /&gt;
  Volume: OSX&lt;br /&gt;
     Size/        GMT                      File/Dir&lt;br /&gt;
     bytes   date     time   TYPE CRTR     Name&lt;br /&gt;
           07/22/2017 07:27:40              Applications&lt;br /&gt;
           09/27/2016 09:59:40              bin&lt;br /&gt;
   1501436 07-04-2018 04:03:02  ???? UNIX   boot.img&lt;br /&gt;
 ok&lt;br /&gt;
0 &amp;gt; boot hd:2,\boot.img bi umsd0:morphos.iso&amp;lt;/nowiki&amp;gt;&lt;/div&gt;</summary>
		<author><name>JPV</name></author>	</entry>

	<entry>
		<id>https://library.morph.zone/index.php?title=Shell_Commands/Copy&amp;diff=4356</id>
		<title>Shell Commands/Copy</title>
		<link rel="alternate" type="text/html" href="https://library.morph.zone/index.php?title=Shell_Commands/Copy&amp;diff=4356"/>
				<updated>2025-05-20T07:16:17Z</updated>
		
		<summary type="html">&lt;p&gt;JPV: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Copy''' - Copies a source file or directory to another directory&lt;br /&gt;
&lt;br /&gt;
FROM/M, TO, PAT=PATTERN/K, BUF=BUFFER/K/N, ALL/S, DIRECT/S, &lt;br /&gt;
CLONE/S, DATES/S, NOPRO/S, PROX/S, COM=COMMENT/S, QUIET/S, NOREQ/S,                          &lt;br /&gt;
ERRWARN/S, MAKEDIR/S, MOVE/S, DELETE/S, HARD=HARDLINK/S,                             &lt;br /&gt;
SOFT=SOFTLINK/S, FOLNK=FORCELINK/S, FODEL=FORCEDELETE/S,                             &lt;br /&gt;
FOOVR=FORCEOVERWRITE/S,DONTOVR=DONTOVERWRITE/S,FORCE/S                               &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
FROM    - files or directory to copy.                                                &lt;br /&gt;
TO      - destination path-name or file&lt;br /&gt;
PATTERN - when FROM is a directory, only files matching this pattern&lt;br /&gt;
          will be copied.&lt;br /&gt;
BUFFER  - size of the buffer (multiple of 512 bytes)to use during the copy&lt;br /&gt;
ALL     - includes sub-directories if FROM is a directory&lt;br /&gt;
DIRECT  - copy file without any tests or options&lt;br /&gt;
CLONE   - keeps timestamp, comments, and protec. bits of the FROM file.&lt;br /&gt;
DATES   - the timestamp of the FROM file is copied to the TO file.&lt;br /&gt;
NOPRO   - The protection bits of the FROM file are not copied&lt;br /&gt;
          to the TO file. The TO file is given standard protection bits&lt;br /&gt;
          or r, w, e, and d.&lt;br /&gt;
PROX    - only copy X,S,P protection bits&lt;br /&gt;
COMMENT - the comments of the FROM file are copied to the TO file.&lt;br /&gt;
QUIET   - suppresses output messages/errors and requesters.&lt;br /&gt;
NOREQ   - errors such as disk full, or assign not existing will cause&lt;br /&gt;
          the display of a requester. Using this switch will remove them.&lt;br /&gt;
ERRWARN - do not proceed when one file failed.&lt;br /&gt;
MAKEDIR - produce directories.&lt;br /&gt;
MOVE    - delete source files after the copying successful.&lt;br /&gt;
DELETE  - do not copy but delete the source files.&lt;br /&gt;
HARD    - make a hardlink to source instead of copying.&lt;br /&gt;
SOFT    - make a sourcelink to source instead of copying.&lt;br /&gt;
FOLNK   - also makes links to directories.&lt;br /&gt;
FODEL   - delete protected files as well.&lt;br /&gt;
FOOVR   - also overwrites protected files.&lt;br /&gt;
DONTOVR - do not overwrite files if they already exist&lt;br /&gt;
FORCE   - DEPRECIATED: if files already exist and are write-protected,&lt;br /&gt;
          this option will force them to be overwritten&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Copy copies the file or directory specified with the FROM argument&lt;br /&gt;
to the file or directory specified by the TO argument.&lt;br /&gt;
You can copy several items at once by giving more than one name/pattern&lt;br /&gt;
in the FROM argument; they should be separated by spaces.&lt;br /&gt;
If the FROM argument is a pattern or consists of multiple names,&lt;br /&gt;
the TO argument must be a directory.&lt;br /&gt;
If a TO file name already exists, Copy overwrites the TO file with&lt;br /&gt;
the FROM file. You can use a pair of double quotation marks (&amp;quot;&amp;quot;)&lt;br /&gt;
to refer to the current directory. When used as the FROM argument,&lt;br /&gt;
&amp;quot;&amp;quot; copies all the files in the current directory.&lt;br /&gt;
Do not put any spaces between the double quotation marks.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;Ram Disk:&amp;gt; Copy System: Work:System/ ALL CLONE QUIET&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Creates a backup of the whole System partition. The CLONE option preserves original file attributes and dates.&lt;/div&gt;</summary>
		<author><name>JPV</name></author>	</entry>

	<entry>
		<id>https://library.morph.zone/index.php?title=Links&amp;diff=4355</id>
		<title>Links</title>
		<link rel="alternate" type="text/html" href="https://library.morph.zone/index.php?title=Links&amp;diff=4355"/>
				<updated>2025-05-20T07:04:48Z</updated>
		
		<summary type="html">&lt;p&gt;JPV: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Official MorphOS Website==&lt;br /&gt;
* http://www.morphos-team.net&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Community Portals &amp;amp; Forums==&lt;br /&gt;
* http://morph.zone&lt;br /&gt;
&lt;br /&gt;
* https://www.morphos-forum.de&lt;br /&gt;
&lt;br /&gt;
* http://www.pegasos.org&lt;br /&gt;
&lt;br /&gt;
* http://www.pegasos.hu&lt;br /&gt;
&lt;br /&gt;
* http://www.ppa.pl&lt;br /&gt;
&lt;br /&gt;
* http://saku.bbs.fi/foorumi&lt;br /&gt;
&lt;br /&gt;
* http://www.warmup-asso.org&lt;br /&gt;
&lt;br /&gt;
* http://www.warmup-asso.fr&lt;br /&gt;
&lt;br /&gt;
* http://www.morphos-store.com - A website to buy and sell MorphOS hardware and software.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==File Repositories==&lt;br /&gt;
&lt;br /&gt;
* http://mos.aminet.net - Aminet MorphOS Section&lt;br /&gt;
&lt;br /&gt;
* https://www.morphos-storage.net -  MorphOS Storage by WArMUp&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;s&amp;gt;http://morphos-files.ppa.pl&amp;lt;/s&amp;gt; - MorphOS File Hosting Service (abandoned)&lt;br /&gt;
&lt;br /&gt;
* http://morphos.lukysoft.cz - MorphOS Software Database&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Software==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Demoscene&lt;br /&gt;
&lt;br /&gt;
* https://jpv.amigaaa.com/demopack_morphos/ - MorphOS Demopack&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Emulation&lt;br /&gt;
&lt;br /&gt;
* http://www.amidog.com/amiga/fpse/ - Free PlayStation Emulator, ported by Mathias 'AmiDog' Roslund&lt;br /&gt;
&lt;br /&gt;
* http://ace.cpcscene.net/en:introduction - The acidulous CPC/CPC+ emulator.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Internet &amp;amp; Network&lt;br /&gt;
&lt;br /&gt;
* http://www.amipodder.com - AmiPodder, free podcast client&lt;br /&gt;
&lt;br /&gt;
* http://www.heightanxiety.com/AmiSSL/ - Port of OpenSSL for legacy applications&lt;br /&gt;
&lt;br /&gt;
* http://amitradecenter.net - AmiTradeCenter, FTP client&lt;br /&gt;
&lt;br /&gt;
* http://www.students.tut.fi/~komsa/amiga/beehive/ - Home of Beehive, a BitTorrent client&lt;br /&gt;
&lt;br /&gt;
* http://sourceforge.net/projects/simplemail/ - SimpleMail, open source email client&lt;br /&gt;
&lt;br /&gt;
* http://www.yam.ch - YAM, open source email client&lt;br /&gt;
&lt;br /&gt;
* http://www.amirc.org - The famous IRC client&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Music&lt;br /&gt;
&lt;br /&gt;
* http://www.digiboosterpro.de/en/ - Home of Digibooster Pro&lt;br /&gt;
&lt;br /&gt;
* http://jahjah.free.fr/morphos/ - Home of Ripper, a CD music ripping and conversion tool&lt;br /&gt;
&lt;br /&gt;
* http://amigadev.free.fr/songplayer/index_en.html - Home of SongPlayer, a music player&lt;br /&gt;
&lt;br /&gt;
* http://tcheko.binaryriot.org/soundbankster/ - A realtime audio mixing application dedicated to DJ enthusiasts&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Office&lt;br /&gt;
&lt;br /&gt;
* http://amigadev.free.fr/pointrider/ - PowerPoint viewer application&lt;br /&gt;
&lt;br /&gt;
* http://www.grasshopperllc.com - Home of Pagestream, a commercial desktop publishing / page layout software&lt;br /&gt;
&lt;br /&gt;
* http://beebase.sourceforge.net - Home of BeeBase aka MUIBase, Steffen Gutmann's relational programmable database (with GUI)&lt;br /&gt;
&lt;br /&gt;
* http://shinkuro.altervista.org/amiga/software/nowined.htm - Home of NoWinEd, text editor&lt;br /&gt;
&lt;br /&gt;
* http://www.winfield.demon.nl - Free MS Word reader&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Package Management&lt;br /&gt;
&lt;br /&gt;
* http://www.geit.de/eng_grunch.html - Search, download, install, update, and uninstall programs&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
System&lt;br /&gt;
&lt;br /&gt;
* http://morphosambient.sourceforge.net - Ambient 'desktop' environment&lt;br /&gt;
&lt;br /&gt;
* http://scalos.noname.fr - Scalos desktop, an alternative to Ambient&lt;br /&gt;
&lt;br /&gt;
* http://sourceforge.net/projects/snoopium/ - System monitor application.&lt;br /&gt;
&lt;br /&gt;
* http://sourceforge.net/projects/backman/ - Backman, open source backup program&lt;br /&gt;
&lt;br /&gt;
* http://amigazeux.net/diavolo/ - Diavolo Backup, formerly commercial backup program&lt;br /&gt;
&lt;br /&gt;
==Developers==&lt;br /&gt;
&lt;br /&gt;
* http://amigazeux.org - AmiNet Radio, Dragon, Wetter, SkinClock, and much more.&lt;br /&gt;
&lt;br /&gt;
* http://polymere.free.fr/index_en.html - Home of PolyNet (icon bar), PolyOrganizer and PolyGlot (MSN messenger)&lt;br /&gt;
&lt;br /&gt;
* http://members.shaw.ca/realstar/ - Developer of the Aqua, Eve and HyperCannon game titles.&lt;br /&gt;
&lt;br /&gt;
* http://fabportnawak.free.fr - MPlayer, ScummVM, Odyssey Web Browser, MAME, and more.&lt;br /&gt;
&lt;br /&gt;
* http://krashan.ppa.pl - DigiBooster 3, MorphOS Programmer's Handbook, audio tools, and more.&lt;br /&gt;
&lt;br /&gt;
* http://tbs-software.com/morgoth/&lt;br /&gt;
&lt;br /&gt;
* http://khtml.ppa.pl&lt;br /&gt;
&lt;br /&gt;
* http://bigfoot.morphos-team.net&lt;br /&gt;
&lt;br /&gt;
* http://dreamolers.binaryriot.org&lt;br /&gt;
&lt;br /&gt;
* http://tokai.binaryriot.org&lt;br /&gt;
&lt;br /&gt;
* http://www.biclodon.com&lt;br /&gt;
&lt;br /&gt;
* http://www.iki.fi/sintonen&lt;br /&gt;
&lt;br /&gt;
* http://www.tbs-software.com/stefkos/&lt;br /&gt;
&lt;br /&gt;
* http://home.elka.pw.edu.pl/~mszyprow/programy/ - Author of SFSDoctor.&lt;br /&gt;
&lt;br /&gt;
* http://kiero.binaryriot.org - Freespace 1&amp;amp;2, Foobilliard, Homeworld, scube, szoom, and more.&lt;br /&gt;
&lt;br /&gt;
* http://www.geit.de - Home of Grunch, MagicBeacon, MMKeyboard, and more.&lt;br /&gt;
&lt;br /&gt;
* http://yellowblue.free.fr - Home of Yomgui, who maintains Blender, Python, PyMUI and Helios (Firewire)&lt;br /&gt;
&lt;br /&gt;
* http://www.orel.rekom.ru/~imax/ - Maxim Ilyin ported VirtualJaguar, Mike Steed's FlashPlayer, and more.&lt;br /&gt;
&lt;br /&gt;
* http://haru.at/ - Creator of MorphUp packagement system, ported VLC, MLDonkey, and more.&lt;br /&gt;
&lt;br /&gt;
* http://www.amirus.org.ru - Various utilities such a KeyMorpher, a MUI-based key mapper. (Website is in Russian.)&lt;br /&gt;
&lt;br /&gt;
* http://tbs-software.com/mark/ - Developer of PowerD, various utilities.&lt;br /&gt;
&lt;br /&gt;
* http://tbs-software.com/powerd/ - PowerD programming language&lt;br /&gt;
&lt;br /&gt;
* http://www.lukysoft.cz - Home of Lukáš Stehlík (AmiGod benchmark)&lt;br /&gt;
&lt;br /&gt;
* http://dasixk.free.fr - Home of SixK, who ported a multitude of apps&lt;br /&gt;
&lt;br /&gt;
* http://alfie.altervista.org - Home of Alfonso 'alfie' Ranieri, creator of RxMUI, AmRSS (RSS client), and much more. &lt;br /&gt;
&lt;br /&gt;
* http://morphware.schwarzes.net - Various small tools made by Andreas Schwarz.&lt;br /&gt;
&lt;br /&gt;
* http://www.onyxsoft.se - Home of Onyxsoft who have released a number of applications and games.&lt;br /&gt;
&lt;br /&gt;
* http://www.mguc.ppa.pl - Marian Guc's website, developer of PciTool, AutoDoc Reader and the unfinished Nemesis desktop.&lt;br /&gt;
&lt;br /&gt;
* http://brain.umcs.lublin.pl/~rzookol/ - Michał Żukowski's website, developer of SCANdal (scanner software)&lt;br /&gt;
&lt;br /&gt;
* http://www.igracki.de - gTranslator, yWeather, CRABUM, and more.&lt;br /&gt;
&lt;br /&gt;
* http://www.morguesoft.eu - Various screen savers.&lt;br /&gt;
&lt;br /&gt;
* http://tcheko.binaryriot.org/ - SoundBankster, commodities, utils.&lt;br /&gt;
&lt;br /&gt;
* http://bszili.morphos.me/ - Home of BSzili, who has ported numerous games.&lt;br /&gt;
&lt;br /&gt;
* https://jpv.amigaaa.com/ - Hollywood applications and Lua, ARexx, and shell scripts.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Misc==&lt;br /&gt;
&lt;br /&gt;
* http://www.via-altera.de/mid.htm - some documents about MorphOS (German/English)&lt;br /&gt;
* https://morphosuser.wordpress.com - Yasu's MorphOS Blog&lt;br /&gt;
* http://pegasos.lena-johannson.de/ - Otti website with many Deutsch translations&lt;/div&gt;</summary>
		<author><name>JPV</name></author>	</entry>

	<entry>
		<id>https://library.morph.zone/index.php?title=Hardware_Compatibility&amp;diff=4353</id>
		<title>Hardware Compatibility</title>
		<link rel="alternate" type="text/html" href="https://library.morph.zone/index.php?title=Hardware_Compatibility&amp;diff=4353"/>
				<updated>2025-01-18T16:17:31Z</updated>
		
		<summary type="html">&lt;p&gt;JPV: /* Mice */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div id=&amp;quot;hardwareCompatibility&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Official Information ==&lt;br /&gt;
An official list of supported hardware is available at the [http://www.morphos-team.net/hardware MorphOS homepage] and a list of complete computer setups based on the official information is available [[Supported_Computers|here]].&lt;br /&gt;
&lt;br /&gt;
== User Provided Reports ==&lt;br /&gt;
This is a list of hardware compatibility reported by users. It isn't, by any means, a complete list of hardware compatibility, but just individual findings by users that may contain user errors or obsolete information. Please report your findings in [https://morph.zone/modules/newbb_plus/viewtopic.php?topic_id=12445&amp;amp;forum=11 this thread] at MorphZone, or request an account to the MorphOS Library so you can edit the list yourself.&lt;br /&gt;
&lt;br /&gt;
'''Note''': This list will only be as complete and comprehensive if you, a MorphOS user, report the hardware you have used in conjunction with MorphOS successfully, or unsuccessfully, for it to be included for others to gain the benefit from, and if necessary, possible and/or realistic, for further testing to be undertaken to establish if the hardware can be made functional for all users to enjoy with MorphOS. &lt;br /&gt;
&lt;br /&gt;
This is as much '''your''' list, as it is also part of '''your''' Official MorphOS Library. Where possible the lists will be maintained in alphabetical order (A-Z), but if you find any errors please [https://morph.zone/modules/newbb_plus/viewtopic.php?topic_id=12445&amp;amp;forum=11 let us know] so correction(s) can be made.&lt;br /&gt;
&lt;br /&gt;
=== Game Controllers ===&lt;br /&gt;
&amp;lt;table style=&amp;quot;width:100%&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th class=&amp;quot;type&amp;quot;&amp;gt;USB Device&amp;lt;/th&amp;gt;&amp;lt;th class=&amp;quot;driver&amp;quot;&amp;gt;USB driver&amp;lt;/th&amp;gt;&amp;lt;th class=&amp;quot;os&amp;quot;&amp;gt;OS&amp;lt;/th&amp;gt;&amp;lt;th class=&amp;quot;comments&amp;quot;&amp;gt;Comments&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;8bitdo SFC30 Pro Controller&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;hid&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.11&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;8bitdo SN30 Pro Controller&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;hid, xbox360&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.11&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;wired&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[https://www.morphos-store.com/product_info.php?products_id=34 BIMONK Wired Gaming Controller]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;hid&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.15&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[https://www.morphos-store.com/product_info.php?products_id=70 BIMONK Wireless Gaming Controller]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;hid&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.15&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Logitech Rumble Pad wired (USB2)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;hid&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.11&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[https://www.morphos-store.com/product_info.php?products_id=85 Mcbazel Dobe Mini Arcade Stick]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;hid&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.15&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[https://www.onyxsoft.se/joydivision.html OnyxSoft JoyDivision] DB9-USB adapter&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;hid&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.13&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Connect an Atari style joystick to USB&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[https://www.retronicdesign.com/en/ Retronic Design] DB9-USB adapter&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;hid&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.13&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Connect an Atari style joystick to USB&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Saitek P380 Dual Analog wired (USB2)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;hid&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.11&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;color:red;&amp;quot;&amp;gt;Sony Dualshock 3 (PS3)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;not supported&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Sony Dualshock 4 (PS4)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;xbox360&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.10&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Speedlink Competition Pro USB&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;hid&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.11&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Speedlink Xeox Gamepad&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;hid&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.11&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[https://tgsjoystick.wordpress.com/ The Greek Stick] (T.G.S.)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;hid&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.15&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Thrustmaster 360 Modena Pro Racing Wheel&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;hid&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.11&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;needs some setup for the ranges from the Poseidon prefs&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Xbox 360 wired and wireless pads&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;xbox360&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.11&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;wireless supported via PC adapter&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Xbox One gamepad&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;xbox360&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.11&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;wired only&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[https://www.marvo-tech.com/products/gt-016-wired-gaming-controller Marvo Scorpion GT-016 Joypad]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;hid&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.18&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;wired,Dual-Analog, USB2 (PC,Android &amp;amp; PS3)&amp;lt;td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Keyboards ===&lt;br /&gt;
&amp;lt;table style=&amp;quot;width:100%;&amp;quot;&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;Model&amp;lt;/th&amp;gt;&amp;lt;th class=&amp;quot;os&amp;quot;&amp;gt;OS&amp;lt;/th&amp;gt;&amp;lt;th class=&amp;quot;comments&amp;quot;&amp;gt;Comments&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Apple A1016 Wireless BlueTooth&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.10&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;①&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Apple Magic Keyboard (Version 1)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.13&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;①&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Cooler Master MS210/MK110&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.13&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;No software needed for full RGB control and Fn multimedia keys do work out of the box&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Ducky Zero Keyboard DK2108SZ&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.10&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;IBM SK-8815 Corded USB Keyboard&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.15&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Logitech UltraX Premium&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.10&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Microsoft Wired Keyboard 600&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.13&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Model X880609-600&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Microsoft Wireless 900 Keyboard&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.13&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Mouse+kb combo&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Rapoo E6300 Ultra-Slim BT keyboard for iPad&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.11&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;①&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Rapoo E9050 Wireless Compact Ultra-Slim Keyboard&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.11&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Rapoo E2710 Wireless Nano-USB Keyboard&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.11&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Xenta Super Compact Black Wired Keyboard (RK 107)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.13&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
① requires a machine which supports paired BT input devices, like Mac mini&lt;br /&gt;
&lt;br /&gt;
=== Mice ===&lt;br /&gt;
&amp;lt;table&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;Model&amp;lt;/th&amp;gt;&amp;lt;th class=&amp;quot;os&amp;quot;&amp;gt;OS&amp;lt;/th&amp;gt;&amp;lt;th class=&amp;quot;comments&amp;quot;&amp;gt;Comments&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;A-Eon Technology MX-1000-1&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.13&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Dacota Gaming Serpent Mouse&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.15&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Wired, 809024&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[https://www.logitech.com/en-us/products/mice/m100-usb-mouse.910-001601.html Logitech M100 Optical Corded Mouse]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.15&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Logitech M180&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.11&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Logitech M185&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.10&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Logitech M190&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.15&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Logitech M220 Silent&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.15&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Logitech M330 Silent&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.14&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Logitech M650&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.19&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Logitech M650 L&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.19&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Logitech T-RB22 Wireless Trackball&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.11&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Logitech G203&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.10&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;No software control over RGB, DPI&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Labtec Optical Mouse 800&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.10&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Microsoft Compact Optical Mouse 500&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.14&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Microsoft Trackball Explorer v1.0&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.11&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;PS2&amp;gt;USB adapter required&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Microsoft Wireless Mouse 900&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.14&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Mouse+kb combo&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;color:red;&amp;quot;&amp;gt;Microsoft Wireless Mouse 4000&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.13&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Not working&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Razer Viper Mini&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.15&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;No software control over RGB, DPI&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Sharkoon Skiller SGM2&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.13&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;No software needed for RGB and DPI settings, side buttons don't work&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Targus AMU3102EU&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.10&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[https://www.morphos-store.com/product_info.php?products_id=82 TENMOS K6 Wireless Gaming Mouse]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.15&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== MIDI Devices ===&lt;br /&gt;
&amp;lt;table&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;Device&amp;lt;/th&amp;gt;&amp;lt;th class=&amp;quot;os&amp;quot;&amp;gt;OS&amp;lt;/th&amp;gt;&amp;lt;th class=&amp;quot;comments&amp;quot;&amp;gt;Comments&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[https://www.alesis.com/products/legacy/vi25 Alesis VI25] keyboard&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.13&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[https://www.korg.com/us/products/computergear/nanokey2/ Korg nanoKEY2] keyboard&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.13&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Yamaha PSR-433 keyboard&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.14&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Networking ===&lt;br /&gt;
&amp;lt;table&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;Device&amp;lt;/th&amp;gt;&amp;lt;th class=&amp;quot;os&amp;quot;&amp;gt;OS&amp;lt;/th&amp;gt;&amp;lt;th class=&amp;quot;comments&amp;quot;&amp;gt;Comments&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;TL-WR702N Nano Router&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;TL-WR802N Nano Router&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Printers ===&lt;br /&gt;
&amp;lt;table&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;Model&amp;lt;/th&amp;gt;&amp;lt;th class=&amp;quot;os&amp;quot;&amp;gt;OS&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;TurboPrint (Printer) driver&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;PostScript (Printers) driver&amp;lt;/th&amp;gt;&amp;lt;th class=&amp;quot;comments&amp;quot;&amp;gt;Comments&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;HP 2500 Color LaserJet&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.11&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;[http://www.artica.fr/download/ppd/hp-en-hp2500_6.ppd.gz HP2500_6.PPD]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;[http://www.artica.fr/download/ppd/hp-de-hp2500_6.ppd.gz DE],  [http://www.artica.fr/download/ppd/hp-es-hp2500c2.ppd.gz ES],  [http://www.artica.fr/download/ppd/hp-fr-hp2500_6.ppd.gz FR],  [http://www.artica.fr/download/ppd/hp-it-hp2500_6.ppd.gz IT]&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Konica Minolta Magicolor 4650&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.11&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;M4650PX.ppd&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Lexmark E342n&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.11&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;HP_LaserJet5series&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;[http://support.lexmark.com/index?productCode=LEXMARK_E340&amp;amp;segment=SUPPORTproductCode%3D&amp;amp;viewlocale=pt_BR&amp;amp;page=content&amp;amp;searchid=1378996742336&amp;amp;actp=search&amp;amp;id=DR13234&amp;amp;locale=EN&amp;amp;userlocale=EN_US Lexmark_E342n_en.PPD]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Xerox 3225 Workcentre&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.11&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Reported to work with PS&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;HP Color LaserJet MFP M274n&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.15&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;hp-color_laserjet_mfp_m274-ps.ppd&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Xerox B230&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.18&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;HP_LaserJet5series&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;[https://www.support.xerox.com/en-mu/product/xerox-b230-printer/content/152267 PPD at support page]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;B225 &amp;amp; B235 should work too, maybe also C230 &amp;amp; C235&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Scanners ===&lt;br /&gt;
&amp;lt;table&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;Model&amp;lt;/th&amp;gt;&amp;lt;th class=&amp;quot;os&amp;quot;&amp;gt;OS&amp;lt;/th&amp;gt;&amp;lt;th class=&amp;quot;comments&amp;quot;&amp;gt;Comments&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Epson Perfection 1640SU&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.11&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Including recent support for its ADF (Automatic Document Feeder).&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Storage ===&lt;br /&gt;
&amp;lt;table&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;Device&amp;lt;/th&amp;gt;&amp;lt;th class=&amp;quot;os&amp;quot;&amp;gt;OS&amp;lt;/th&amp;gt;&amp;lt;th class=&amp;quot;comments&amp;quot;&amp;gt;Comments&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[https://www.amazon.co.uk/Hama-00055348-35in1-Multi-Reader/dp/B000IH1W20?th=1 HAMA USB 2.0 Card Reader 35 in 1]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== USB Audio Devices ===&lt;br /&gt;
&amp;lt;table&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;Device&amp;lt;/th&amp;gt;&amp;lt;th class=&amp;quot;os&amp;quot;&amp;gt;OS&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Output&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Input&amp;lt;/th&amp;gt;&amp;lt;th class=&amp;quot;comments&amp;quot;&amp;gt;Comments&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;quot;[http://www.dx.com/p/virtual-5-1-surround-usb-2-0-external-sound-card-22475 3D Sound]&amp;quot; USB sound card&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.10&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;OK&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;No&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[https://www.aliexpress.com/item/Vikings-City-Bluetooth-Adapter-APT-X-Low-Latency-Driver-Free-Plug-n-Play-BT-4-1/32828525027.html ANTTUS Gaming USB Bluetooth Adapter]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.11&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;OK&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Untested&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[https://www.amazon.ca/Avantree-Bluetooth-Driver-Free-Wireless-Transmitter/dp/B01G3J1I5M Avantree Leaf BT 4.1 adapter]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.11&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;OK&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Untested&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;C-Media soundcard&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.11&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;OK&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Untested&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Distorted output&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Corsair Void Elite Surround adapter/headset&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.14&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;OK&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;No&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Headset with 3.5mm jack and a USB adapter. Analog volume control.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Corsair Void RGB Elite headset&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.14&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;OK&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;No&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Volume control binds to the HID class. Hint: can be used with [http://aminet.net/package/mus/play/MultiMeedio this].&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;FX-Audio- DAC-X3&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.12&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;OK&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;N/A&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Griffin iMic&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.11&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;OK&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Untested&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Distorted output&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[https://www.inline-info.com/de/produkte/eingabe-ausgabe/kopfhoerer-verstaerker/9909/inline-ampusb-hi-res-audio-hifi-dsd-kopfhoerer-verstaerker-usb-digital-audio-konverter-384khz/32-bit InLine AmpUSB Headphone Amplifier]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.14&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;OK&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;N/A&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Logitech H540 headset&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.14&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;OK&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;No&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Volume control binds to the HID class. Hint: can be used with [http://aminet.net/package/mus/play/MultiMeedio this].&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Sony PlayStation Gold 7.1 headset&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.13&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;OK&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Untested&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Works in stereo.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[https://de.creative.com/p/sound-cards/sound-blaster-digital-music-premium-hd Sound Blaster X-Fi]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.11&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;OK&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Untested&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Only front output tested&amp;lt;/tD&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Steelseries Arctis 7 headset&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.13&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;OK&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;No&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[https://www.terratec.de/details.php?artnr=195448 TerraTec 195448 Aureon Dual USB]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.11&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;OK&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Untested&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Turtle Beach Stealth 520 headset&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.13&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;OK&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;No&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>JPV</name></author>	</entry>

	<entry>
		<id>https://library.morph.zone/index.php?title=Tips_and_Tricks&amp;diff=4352</id>
		<title>Tips and Tricks</title>
		<link rel="alternate" type="text/html" href="https://library.morph.zone/index.php?title=Tips_and_Tricks&amp;diff=4352"/>
				<updated>2025-01-08T10:49:14Z</updated>
		
		<summary type="html">&lt;p&gt;JPV: FireWire Debugging&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''Originally published at: http://jpv.wmhost.com/morphos/tips/''&lt;br /&gt;
&lt;br /&gt;
Miscellaneous tips and tricks for MorphOS use. Some may even be hackish and not officially encouraged by MorphOS Team. Everyone is welcome to make additions and corrections here.&lt;br /&gt;
== Basic Features ==&lt;br /&gt;
&lt;br /&gt;
=== Modifying the System Directory ===&lt;br /&gt;
: Tip #1: NEVER modify anything in the MOSSYS: (SYS:MorphOS/) path! All changes are lost in a system upgrade. If you need to add any 3rd party drivers or libraries, add them to SYS:. If there isn't a correct directory by default, make one.&lt;br /&gt;
&lt;br /&gt;
: There's only one exception (of course there is one) to this: you can rename MOSSYS:Libs/rexxsyslib.library to MOSSYS:Libs/rexxsyslib.library_disabled when you copy a 68k version of rexxsyslib.library to SYS:Libs/ in order to get the ARexx environment working.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Keyboard Commands ===&lt;br /&gt;
&lt;br /&gt;
: At first, check the default ones and define your favourites in '''System Settings -&amp;gt; IControl -&amp;gt; Hotkeys''' and in '''Ambient Settings -&amp;gt; Keyboard'''.&lt;br /&gt;
&lt;br /&gt;
: For example IControl has &amp;quot;Active Window: Activate Next&amp;quot; and &amp;quot;All Windows: Depth Menu&amp;quot; options, which can be used to achieve alt/ctrl/command-tab style window cycling functionality familiar from other operating systems.&lt;br /&gt;
&lt;br /&gt;
: Other keys: &lt;br /&gt;
:* To zoom Ambient icons in the icon mode: keep CTRL pressed and use the mouse wheel or just roll the wheel over the Viewmode button.&lt;br /&gt;
:* To find and select files in Ambient windows by letters: start typing a name when the window is active. Keep the Shift key pressed for directories. &lt;br /&gt;
:* To enter a path manually (for example for hidden dirs like .recycled): press the / key in an Ambient window and type in the path. &lt;br /&gt;
:* Command-f activates the find function in most programs. &lt;br /&gt;
:* The r key rotates the pictures in Ambient's internal viewer and Page Up/Down keys select previous and next images in a dir &lt;br /&gt;
:* Check keyboard commands of the Shell, like by default, commands can be completed with CTRL-tab, devices with ALT-tab, history with shift-tab etc. &lt;br /&gt;
:* Keeping the Alt key pressed while double clicking a drawer gives you different ways to open drawers.&lt;br /&gt;
:* Keeping the Alt key pressed while dragging files on the same partition copies files instead of moving, or vice versa depending on your Ambient settings.&lt;br /&gt;
&lt;br /&gt;
=== Enabling/Disabling Icon Tooltypes ===&lt;br /&gt;
&lt;br /&gt;
: Double click single tooltypes to enable and disable them in the icon information window.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Browsing History in Ambient ===&lt;br /&gt;
&lt;br /&gt;
: Clicking the parent button ([[File:Tips_Parent.png|middle]]) on an Ambient window (in browser mode) with the right mouse button gives you a browsing history popup menu for quick jumping between locations.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Sync the Clock from Internet at Boot ===&lt;br /&gt;
&lt;br /&gt;
: Add this line to S:user-network-startup file:&lt;br /&gt;
: &amp;lt;tt&amp;gt;Run DETACH MOSSYS:C/SetClockNTP SAVE&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Redirecting AHI Music Unit ===&lt;br /&gt;
&lt;br /&gt;
: You can select Unit 0 as the Music Unit in AHI to be able hear audio output from multiple programs at the same time, with a slight decrease in quality.&lt;br /&gt;
&lt;br /&gt;
: [[File:MorphOS_System_settings_Music_Unit.png|280px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Keeping AHI Audio Quality Better ===&lt;br /&gt;
&lt;br /&gt;
: Audio quality with AHI will be better if you reduce available channels for its shared modes (Unit 0 usually). Available channels will limit the amount of simultaneus playback of sounds, but you really don't need the default 32 channels and even two channels can be quite enough. Should there be more concurrent sounds, some of them just get muted until the other have been finished.&lt;br /&gt;
&lt;br /&gt;
: [[File:MorphOS_System_settings_Change_Unit.png|280px]] [[File:MorphOS_System_settings_Unit_0.png|280px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Mime Type Configuration ===&lt;br /&gt;
&lt;br /&gt;
: Learn to configure mime types from the Ambient settings. It really gives so much for your system and your user experience. [http://jpv.wmhost.com/pics/mimemplayer.png Here] is one example of how to configure MPlayer for all the video files.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Inline Editing ===&lt;br /&gt;
&lt;br /&gt;
: Inline editing is a quick way to edit filenames by clicking them with the mouse wheel or with the long left mouse click. Its behaviour can be configured from the Lister settings in Ambient Settings.&lt;br /&gt;
&lt;br /&gt;
: File comments can also be edited with the inline editing.&lt;br /&gt;
&lt;br /&gt;
: [[File:Tips_Inlineedit.png|280px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Batch Renaming in Ambient ===&lt;br /&gt;
&lt;br /&gt;
# Select files you want to be in the range of renaming.&lt;br /&gt;
# Hit rename button or command-r keyboard shortcut.&lt;br /&gt;
# Use pattern to rename. For example renaming all files which begin with &amp;quot;mod.&amp;quot; to files which end with &amp;quot;.mod&amp;quot;, use &amp;quot;mod.*&amp;quot; as source and &amp;quot;*.mod&amp;quot; as destination (quotation marks not needed).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Don't Forget RMB/Long-LMB Gadget Menus ===&lt;br /&gt;
&lt;br /&gt;
: You get menus from zoom and depth gadgets with right mouse button or by holding left mouse button pressed on them.&lt;br /&gt;
&lt;br /&gt;
: [[File:Tips_Zoommenu.png]] [[File:Tips_Windowdepthmenu.png]] [[File:Tips_Screendepthmenu.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== How to Use RMB with One-button Mouse ===&lt;br /&gt;
&lt;br /&gt;
: The right mouse button can be emulated in several different ways:&lt;br /&gt;
:* The '''System Settings -&amp;gt; Mouse -&amp;gt; Open menus by clicking...''' setting lets your mouse button act as the right mouse button if you hold a qualifier key pressed while clicking. The qualifier key can be configured for your preferences, but it's the shift key by default.&lt;br /&gt;
:* Press right alt and right command keys together. This probably doesn't work on systems with ADB keyboard, like on older Mac laptops. The ADB keyboard doesn't make difference between left and right keys.&lt;br /&gt;
:* With non-ADB laptops (PowerBook 5,6-5,9 and 6,7 (iBook)) you can also use two finger tap or two finger hold + button combination on the touchpad for RMB.&lt;br /&gt;
:* You can define a hotkey for menu launching on the IControl preferences (the default one is rcommand+space). It doesn't work exactly as the RMB everywhere, but works if you're mostly using the RMB for menus.&lt;br /&gt;
:* A multi button USB mouse works always!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Starting Programs Iconified ===&lt;br /&gt;
&lt;br /&gt;
: MUI has an option to start programs in iconified mode. It's useful for example for programs like Synergy, which you'd like to start on background without their main window jumping up. The option can be found from program's MUI Settings (Windows -&amp;gt; Iconify on startup).&lt;br /&gt;
&lt;br /&gt;
: [[File:Tips_Iconify.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Checking the Debug Log ===&lt;br /&gt;
&lt;br /&gt;
: If you want a stable system, you need to check the debug log periodically to see if any program misbehaves when used, especially when running new software.&lt;br /&gt;
&lt;br /&gt;
: An easy way to do it is to enable Debug screenbar module from the screen depth gadget menu. Bug looking Debug button on the screenbar will then give you a debug menu where you can view the log etc. If &amp;quot;Show Log...&amp;quot; option is ghosted, there's nothing in the log and everything is fine, but if it shows hundreds of cryptic lines (it's called a hit), then you have something to worry and the system probably isn't stable anymore. Some programs may output their own harmless debug information to the log too, but it's usually limited to few or tens of lines maximum. You'll recognize a real hit for sure.&lt;br /&gt;
&lt;br /&gt;
: [[File:Tips_Debug1.png|x64px]] [[File:Tips_Debug2.png|x64px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Printing to a PostScript Compatible Network Printer ===&lt;br /&gt;
&lt;br /&gt;
: You should mount the NETPAR: device and print to that device from programs like VPDF and OWB, which can output PostScript. NETPAR: is faster than printing through Turboprint (PRT:) and doesn't need Ghostscript installed (PS:).&lt;br /&gt;
&lt;br /&gt;
: &amp;quot;Mount NETPAR:&amp;quot; can be added to S:user-startup, for example.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== .recycled Directory ===&lt;br /&gt;
&lt;br /&gt;
: SFS is the default filesystem on MorphOS. It can have a special directory which contains recently deleted files. The directory is named as .recycled and it resides at the root level of every SFS partition (SYS:.recycled for example). Depending the format options it may be disabled, hidden but accessible, or visible.&lt;br /&gt;
&lt;br /&gt;
: If it's hidden, you can't see it even with &amp;quot;View All Files&amp;quot; option, but you can access it from the shell or Ambient (for example by pressing / key and then writing it to the path string after the volume name).&lt;br /&gt;
&lt;br /&gt;
: You shouldn't modify any files in it, but you can recover deleted files by copying them to some other path.&lt;br /&gt;
&lt;br /&gt;
: The PFS3 filesystem has a similar directory, but its name is &amp;quot;.deldir&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== How to Reduce Graphics Memory Usage ===&lt;br /&gt;
&lt;br /&gt;
: MorphOS can use graphics memory quite extensively which can cause slowdowns or glitches if you run out of it. It usually isn't an issue if you have 64MB or more graphics memory, but lower spec systems with today's resolutions may need some tuning. There are several ways to reduce memory usage and you have to decide or try which is the best for you.&lt;br /&gt;
&lt;br /&gt;
: MorphOS has an &amp;quot;Enhanced Display&amp;quot; mode, which uses the graphics card's 3D functions to draw graphic layers. It consumes more memory than the traditional 2D mode, but it provides some eyecandy, tearless moving etc.&lt;br /&gt;
&lt;br /&gt;
: To reduce its memory usage, you may:&lt;br /&gt;
:* Change its buffering settings on the DisplayEngine settings in MorphOS Preferences. You need to reboot or switch screens for the new settings to take effect.&lt;br /&gt;
:* Disable it completely from the Screens settings in MorphOS Preferences for some or all screens. It may also help if you let it be enabled for Ambient screen, but disable it on other screens you might have.&lt;br /&gt;
&lt;br /&gt;
: Other ways to reduce graphics memory usage:&lt;br /&gt;
:* Lower the color depth of screens from the Screens settings. 16-bit might be enough sometimes.&lt;br /&gt;
:* Don't use too many separate screens at the same time.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== How to Open MUI Programs on Their Own Screens ===&lt;br /&gt;
&lt;br /&gt;
: 1) An easy way is to select &amp;quot;Jump to Screen -&amp;gt; New&amp;quot; from the MUI popup menu gadget in program's window border. It always opens in an enhanced mode and clones the resolution from the Ambient screen. Open and save program's MUI settings to save it permanently.&lt;br /&gt;
: [[FIle:MorphOS3_jPV_Newscreen.png|120px]]&lt;br /&gt;
&lt;br /&gt;
: 2) A more configurable method is to open program's MUI settings, select the Screen tab, and create a totally new screen definition there. You can edit the screen name and the title to suit your use (you can use program's name for those for example), select any resolution and depth, enable or disable the enhanced mode etc. In many cases this is a better method, because you can save graphics memory by not using the enhanced mode for screens which you're going to use for full screen apps only or so.&lt;br /&gt;
&lt;br /&gt;
: You can switch between the screens with lamiga-m (lcommand-m) keyboard shortcut, or by clicking the screen depth gadget (left click switches to the next screen, right click gives you a menu where you can select any open screen).&lt;br /&gt;
: [[File:Tips_Screendepthmenu.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Advanced Features ==&lt;br /&gt;
&lt;br /&gt;
=== Default Device Icons ===&lt;br /&gt;
&lt;br /&gt;
: If you want a certain default icon for all the units of a certain device, you can create an icon named def_DEVICENAMExdisk.info to your default icons path (SYS:Prefs/Presets/Deficons/ by default).&lt;br /&gt;
&lt;br /&gt;
: For example the deficon for SMBFS devices would be called def_SMBFSxdisk.info.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Default Icon for Ambient Windows ===&lt;br /&gt;
&lt;br /&gt;
: By default there isn't a default icon file for the icon you see when iconifying an Ambient window (a view). If you want to override the built-in icon, create or copy a new icon file to your default icons path and name it to '''def_view.info'''. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Old Style Preferences Icons ===&lt;br /&gt;
&lt;br /&gt;
[[File:Separate_prefs_in_MorphOS.png|thumb|Example of separate system prefs in MorphOS]]&lt;br /&gt;
: You can have separate preferences icons in the SYS:Prefs/ directory in the old Amiga style for MorphOS system prefs. Make or copy icons named with a corresponding sub preference name into the SYS:Prefs/ dir and edit their Default Tool to &amp;quot;:MorphOS/Prefs/Preferences&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
: There's already a main preferences icon in SYS:Prefs, so here's an easy example: &amp;quot;copy SYS:Prefs/Preferences.info SYS:Prefs/Network.info&amp;quot;, after which double clicking the new Network icon opens the network preferences directly.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Hilight Options in Listers ===&lt;br /&gt;
&lt;br /&gt;
: If you want to use &amp;quot;Alternated rows&amp;quot; and &amp;quot;Hilighted sorting column&amp;quot; options in the Lister settings with a grapchics card that doesn't support 3D acceleration.&lt;br /&gt;
: Type in shell:&lt;br /&gt;
: &amp;lt;tt&amp;gt;Setenv MUI/fastppa SAVE 1&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Copy Selected Filenames ===&lt;br /&gt;
&lt;br /&gt;
: You can use the internal Ambient command &amp;quot;copyselectiontoclipboard&amp;quot; to copy selected filenames with or without path information to the clipboard. For example, create a new custom hotkey in the Ambient Settings and define &amp;quot;copyselectiontoclipboard VIEWID=%Si FULLPATH&amp;quot; as an internal command for it.&lt;br /&gt;
&lt;br /&gt;
: User may find it very useful to paste around the names selected in the Ambient windows in many situations.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Using ARexx Ports from Lua ===&lt;br /&gt;
&lt;br /&gt;
: MorphOS comes with a native implementation of the Lua scripting language. It can be used for script writing with application interacting instead of the emulated 3rd party ARexx. Lua can use existing ARexx ports with its ipc.module.&lt;br /&gt;
&lt;br /&gt;
: Load the IPC module first with the '''require 'ipc'''' line (unlike the standard Lua distribution, all modules have to be loaded with the ''require'' function on MorphOS. Check available modules from the ''MOSSYS:Libs/Lua/'' directory.)&lt;br /&gt;
&lt;br /&gt;
:* ipc.'''address(port)''' - sets the default ARexx port. Port &amp;quot;COMMAND&amp;quot; executes commands as DOS shell commands. &lt;br /&gt;
:* '''ipc.checkport(port)''' - checks if an ARexx port is available. &lt;br /&gt;
:* ipc.'''rx(command)''' - sends a command to a port set with ipc.address. It returns ARexx RESULT. &lt;br /&gt;
:* '''ipc.waitforport(name[, interval])''' - Waits for an ARexx port. Script is aborted if the port isn't found.&lt;br /&gt;
&lt;br /&gt;
: More about the topic [[Getting_Started_with_Lua|here]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Copying a Whole Disk As an Image File ===&lt;br /&gt;
&lt;br /&gt;
: You can access raw data of drives by MorphOS's RAWDISK: device. Partitions or whole disk can be copied in or out with it, but be careful to write to the correct destination! For copying you need to use SDK's cp command or standard Copy command with the DIRECT option.&lt;br /&gt;
&lt;br /&gt;
: You can browse available disks and devices by opening RAWDISK: device from the shell (just type RAWDISK: on the shell) or from Ambient (hit the / key, clear existing text, and write RAWDISK: to the string line). Browse to the Devices directory and then to the wanted device and unit to see the actual disk image file (rawdisk) and partition files in a separate partition table directory. Partition files let you recognize more easily that you're accessing the wanted disk. They also have information like device and filesystem names told in file comments (use the List command or Ambient to see them).&lt;br /&gt;
&lt;br /&gt;
: As an example, to make a backup of a whole SD card which is placed in a USB reader (the card is found in usbscsi.device unit 3):&lt;br /&gt;
: &amp;lt;tt&amp;gt;Copy DIRECT RAWDISK:Devices/usbscsi.device/3/rawdisk work:sdcard.img&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: And to copy the image back to the SD card (removes all existing data, be careful!):&lt;br /&gt;
: &amp;lt;tt&amp;gt;Copy DIRECT work:sdcard.img RAWDISK:Devices/usbscsi.device/3/rawdisk&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: This works with all raw disk image files like Raspberry Pi's OS distributions etc.&lt;br /&gt;
&lt;br /&gt;
: Single partitions can also be copied from the RAWDISK:Disks directory.&lt;br /&gt;
&lt;br /&gt;
: If you want to access the data in saved image files without needing to write them back to any device, you can mount them with help of [[Tools/FileImageCtrl]] and [[Tools/Mounter]] programs. You can either mount partitions directly with the [[Tools/FileImageCtrl|FileImageCtrl]] tool or insert disk images on it and mount the wanted partitions with the [[Tools/Mounter|Mounter]] tool.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Using WLAN with Hidden SSID ===&lt;br /&gt;
&lt;br /&gt;
: If you have to use wireless network with hidden SSID, you can add &amp;quot;scan_ssid=1&amp;quot; line in your ENVARC:sys/Wireless.prefs file's network block.&lt;br /&gt;
&lt;br /&gt;
: Contents should look something like this:&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;tt&amp;gt;network={&lt;br /&gt;
: &amp;amp;nbsp;&amp;amp;nbsp;ssid=&amp;quot;ThatHiddenSSID&amp;quot;&lt;br /&gt;
: &amp;amp;nbsp;&amp;amp;nbsp;scan_ssid=1&lt;br /&gt;
: &amp;amp;nbsp;&amp;amp;nbsp;psk=&amp;quot;password&amp;quot;&lt;br /&gt;
: }&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: Note: It's not recommended to hide the SSID, because it doesn't add security in practise. Use this only if you can't control the network you're connecting.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Modifying Screen and Keyboard Brightness on a Laptop without Using KB Shortcuts ===&lt;br /&gt;
&lt;br /&gt;
: Brightness values can be modified by editing the ENVARC:sys/laptopquick.conf file with a text editor. The values are taken in use after a reboot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Opening Ambient Windows from the Shell or Scripts ===&lt;br /&gt;
&lt;br /&gt;
: Directories can be opened with the [[Shell_Commands/Open|Open]] command, but it only opens them in the default view mode:&lt;br /&gt;
: &amp;lt;tt&amp;gt;Open SYS:Applications&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: If you need to open windows with certain location, size, position, and mode, you can use the LoadURI ARexx command. LoadURI accepts the following parameters:&lt;br /&gt;
:* URI which contains a path and attributes with values. The attributes are given after a question mark and they are separated with the &amp;amp; delimiter. Possible attributes are ''view'' (icon or list), ''mode'' (all, icons, or thumbs),  ''top'' (pixels from the top border), ''left'' (pixels from the left border), ''width'', and ''height''.&lt;br /&gt;
:* NEW=NEWWIN/S: opens a new window even if similar window would already be opened&lt;br /&gt;
:* RELOAD/S: reloads the URI&lt;br /&gt;
:* FORCE/S: forces full reloading&lt;br /&gt;
:* BROWSER/N: forces the browser mode on (1) or off (0)&lt;br /&gt;
:* VIEWID/N: specifies view/window ID&lt;br /&gt;
&lt;br /&gt;
: Use the ''AMBIENT'' port in ARexx scripts.&lt;br /&gt;
&lt;br /&gt;
: To open the SYS:Libs directory in the list mode showing all files in a 440x600 window at position x=350, y=50, no matter if it has been opened previously:&lt;br /&gt;
: &amp;lt;tt&amp;gt;'LoadURI &amp;quot;file://SYS:Libs?view=list&amp;amp;mode=all&amp;amp;top=50&amp;amp;left=350&amp;amp;width=440&amp;amp;height=600&amp;quot; NEW'&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: To open a directory in the icon mode showing thumbnails in a 500x400 window at position x=350, y=50, the window is also opened in the spatial (non browser) mode:&lt;br /&gt;
: &amp;lt;tt&amp;gt;'LoadURI &amp;quot;file://MOSSYS:Prefs/Wallpapers/1280x1024?view=icon&amp;amp;mode=thumbs&amp;amp;top=50&amp;amp;left=350&amp;amp;width=500&amp;amp;height=400&amp;quot; BROWSER=0'&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: If you don't want to write full ARexx scripts but would like to run them just as single shell commands, you can use the [[Shell_Commands/RXCmd|RXCmd]] shell command (notice that you have to escape the inner quotation marks with the asterisks):&lt;br /&gt;
: &amp;lt;tt&amp;gt;RXCmd AMBIENT &amp;quot;LoadURI *&amp;quot;file://SYS:Libs?view=list&amp;amp;mode=all&amp;amp;top=50&amp;amp;left=350&amp;amp;width=440&amp;amp;height=600*&amp;quot; NEW&amp;quot;&lt;br /&gt;
: RXCmd AMBIENT &amp;quot;LoadURI *&amp;quot;file://MOSSYS:Prefs/Wallpapers/1280x1024?view=icon&amp;amp;mode=thumbs&amp;amp;top=50&amp;amp;left=350&amp;amp;width=500&amp;amp;height=400*&amp;quot; BROWSER=0&amp;quot;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Bundled Software ==&lt;br /&gt;
&lt;br /&gt;
=== Flacapella Settings for MP3 Encoding ===&lt;br /&gt;
&lt;br /&gt;
: Example of a custom encoder setting in Flacapella:&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;tt&amp;gt;Compress Command: c:lame -V0 --tt &amp;quot;{title}&amp;quot; --ta &amp;quot;{artist}&amp;quot; --tl &amp;quot;{album}&amp;quot; --tn {track} {?coverfile:--ti &amp;quot;{coverfile}&amp;quot;} {input} {output}&lt;br /&gt;
: File Extension: mp3&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: This will encode tracks to mp3 files with title, artist, album and track number tags. It also embeds fetched cover image in files, if image was found. &lt;br /&gt;
: Example assumes you have [https://www.morphos-storage.net/?find=lame LAME] installed in C:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Jukebox Tips ===&lt;br /&gt;
&lt;br /&gt;
:* If you select any song in playlist by clicking it just once, it's played next no matter if you have random or sequential mode in use. &lt;br /&gt;
:* You can adjust volume in Jukebox by using mouse wheel over its screenbar module. &lt;br /&gt;
:* Displayed columns can be configured on the fly by right clicking the column title.&lt;br /&gt;
:* Jukebox can be better integrated into Ambient and its contextual menus with the [http://aminet.net/package/mus/play/JukeboxAdder JukeboxAdder] script.&lt;br /&gt;
:* Two new tooltypes were presented in MorphOS 3.8: &lt;br /&gt;
:** '''FRAMESCAN=NO''' disables the Reggae framescanning for tracks that have unknown duration. It speeds up the loading of such tracks, but you'll lose the seeking ability with them. &lt;br /&gt;
:** '''STREAMBUFFER=YES''' activates the Reggae streambuffer class which reduces stuttering, but causes lag on track change and seeking.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== How to Reduce OWB's HD Writes ===&lt;br /&gt;
&lt;br /&gt;
: OWB writes a lot of data to the hard drive by default. You might want to reduce it if you're paranoid about SFS fragmentation, filesystem corruption, privacy, or you'd like to avoid certain databases getting too big (which can cause slowdowns). Or you just want your .recycled dir to have other than the OWB files. One option is to use the Private Browsing mode always, but here are tips if you don't want to activate that always or you want to restrict certain writes only.&lt;br /&gt;
&lt;br /&gt;
:* Disable the TopSites feature. This makes a write for every page you visit, it's an awful amount. Its database (conf/TopSites.db) can also grow to hundreds of megabytes, which causes very noticeable slowdowns to browsing. You can disable it with the &amp;quot;Setenv SAVE OWB_DISABLE_TOPSITES 1&amp;quot; command in the shell, and if the database file has already grown too big, you can remove it.&lt;br /&gt;
:* Disable the Website Icons feature. Open the Interface settings and uncheck all Website Icons checkmarks. &lt;br /&gt;
:* Disable all saving options from the Privacy settings.&lt;br /&gt;
&lt;br /&gt;
: If you still need some option enabled, because some site requires it, you can soft link its configuration file to Ram Disk. I, for example, still have Local Storage enabled, but I have linked its dir to ENV: (which resides in Ram Disk). To do that, make LocalStorage directories to both ENV: and ENVARC: (that ensures that it's created after a reboot too), open the shell and cd into your OWB/Conf/ dir, rename or delete the old LocalStorage dir, type &amp;quot;makelink LocalStorage ENV:LocalStorage&amp;quot;. Using ENV: gives the advantage to have some files saved so that those settings are restored in every boot. If you're happy with a certain setting, copy the corresponding file to ENVARC: and it will be preserved without being messed up with the later usage. If you just want to have the configuration files enabled, but cleared on every boot, you could soft link them to T: for example.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Alternative YouTube Script for OWB ===&lt;br /&gt;
&lt;br /&gt;
: [http://www.morphzone.info/modules/newbb_plus/viewtopic.php?forum=9&amp;amp;topic_id=9799&amp;amp;post_id=109979&amp;amp;viewmode=flat&amp;amp;sortorder=0&amp;amp;showonepost=1 YouTube Center] is a feature rich configureable userscript for improving YouTube experience. It's made for mainstream browsers, but it also works on OWB! All videos can be forced to HTML5 to get them work in OWB. It's heavier than Fab's official OWB script, but works fine as an option or as a backup plan :). Script saves its settings to LocalStorage to #?www.youtube.com#? files.&lt;br /&gt;
&lt;br /&gt;
: Note: YouTube defaults to the HTML5 player nowadays and you might be fine without any Flash-&amp;gt;HTML5 converter scripts. It's probably better to install this script only if you want some other features from it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Watching Videos with Less CPU Load in OWB ===&lt;br /&gt;
&lt;br /&gt;
: When watching a video in OWB, the fullscreen mode makes a lot less CPU load than the default embedded mode, because the fast overlay mode is used then. CPU load may drop from 100% to 40% for example. Wait until the video really starts playing before clicking the fullscreen button on it, or it may fail and you have to reload the video to be able to try it again. Some videos may have a fullscreen option in their contextual menu too. Remember to have Fullscreen Fix scripts added and enabled from the Scripts window (&amp;quot;Windows-&amp;gt;Scripts...&amp;quot; pulldown menu entry) for YouTube, Dailymotion, and Vimeo.&lt;br /&gt;
&lt;br /&gt;
: Note: check that you really have the latest YouTube fullscreen fix script from http://fabportnawak.free.fr/owb/scripts/YouTube_Fullscreen_Fix.js in your OWB/Scripts/ directory. Grunch doesn't get updated for the latest version always for example.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Problems with YouTube Videos ===&lt;br /&gt;
&lt;br /&gt;
:* Now that YouTube defaults to HTML5, our days of ad-free videos have ended. It also means that the Content Blocking (AdBlock) option in the OWB's settings can block some videos. If you have some videos which won't start playing, try to disable the Content Blocking option and try again. If that was the problem, but you want to keep the content blocking enabled, add an allow rule to the Content Blocking settings. Open &amp;quot;Windows-&amp;gt;Content Blocking...&amp;quot; from the OWB's pulldown menus, click the Add button, and write &amp;quot;youtube.com&amp;quot; to the Rule line. Close the window and try the video again.&amp;lt;br /&amp;gt;[[File:OWB_ContentBlockingYT.png]]&lt;br /&gt;
&lt;br /&gt;
:* If all videos refuse to play, check if you have any YouTube converter scripts enabled in the &amp;quot;Windows-&amp;gt;Scripts...&amp;quot; settings. The Fullscreen Fix script is the only one needed and you should disable all converter scripts.&lt;br /&gt;
&lt;br /&gt;
:* Flash plugins can also break compatibility with YouTube, so if you have the swfdec_plugin.library file in your OWB/Plugins/ directory, you have the following options to choose from:&lt;br /&gt;
:** Remove the file from use if you don't need flash anywhere. The plugin doesn't work too well generally anyway.&lt;br /&gt;
:** Keep the file, but disable it for all pages by unchecking the &amp;quot;Settings-&amp;gt;Preferencfes-&amp;gt;Content-&amp;gt;Allow plugins&amp;quot; option. You can then enable it temporarily from &amp;quot;Settings-&amp;gt;Plugins-&amp;gt;Enable&amp;quot; if needed.&lt;br /&gt;
:** Disable it temporarily from &amp;quot;Settings-&amp;gt;Plugins-&amp;gt;Disable&amp;quot;, and reload the page.&lt;br /&gt;
:** Disable it just for YouTube by adding a new URL setting from &amp;quot;Windows-&amp;gt;URL Settings...&amp;quot;. Click the Add button, edit the URL line to for example &amp;quot;youtube.com&amp;quot;, and uncheck the Plugins option.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== OWB Doesn't Work or Stopped Working with Certain Web Pages ===&lt;br /&gt;
&lt;br /&gt;
:* Sometimes it helps to change the &amp;quot;Spoof as&amp;quot; setting in OWB. Web pages may offer different kind of content depending on what browser they think you are using. Some popular CAPTCHAs don't work with the default spoofing, but do work when spoofed as iPad for instance. iPad is generally a good option to start trying the spoofing, because you probably get the page in its simpliest form then.&lt;br /&gt;
&lt;br /&gt;
:* There are some bugs in the JavaScript engine in the latest available OWB version (1.24 at the time of writing) and that causes problems with some web pages, but there's a chance that these pages would still work with an earlier OWB version. You can download earlier OWB versions from [http://fabportnawak.free.fr/owb/ Fab's homepage] and install them, for example, to a different directory than your current OWB installation. There's no problem having two or even several OWB installations on your system, you can just launch whichever you want. As an example, Google Maps stopped working with OWB 1.24 in autumn 2017, but it still continued to work with [http://fabportnawak.free.fr/owb/owb-morphos-1.23.lha OWB 1.23].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Creating an ISO Image ===&lt;br /&gt;
&lt;br /&gt;
: Jalapeno can also create and save ISO images which will preserve MorphOS/AmigaOS file attributes and comments. Images can be used for backups or even be booted from USB devices.&lt;br /&gt;
&lt;br /&gt;
: An option to create an ISO image is found on the pulldown menu in the Burn Files section.&lt;br /&gt;
&lt;br /&gt;
: [[File:Tips_Create_ISO.png|200px]]&lt;br /&gt;
&lt;br /&gt;
: If the resulting image file will be bigger than 1GB, Jalapeno splits it into 1GB parts. Those parts can be joined into one big image file with the Join command in the shell, but remember the filesize limits of your target [https://library.morph.zone/Filesystems filesystem] when doing that.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Copying a CD/DVD to an ISO Image ===&lt;br /&gt;
&lt;br /&gt;
: If you want to make a standard, easily mountable, ISO image out of an existing CD or DVD, a good way to achieve it is to use the ReadCD program provided with the Jalapeno program on the standard MorphOS installation. Jalapeno itself can also create image files of optical media by selecting &amp;quot;Save as...&amp;quot; from the &amp;quot;Copy Tracks&amp;quot; pull-down menu, but resulting images aren't mountable by the system, because Jalapeno uses options that include more data into the images, for error checking etc.&lt;br /&gt;
&lt;br /&gt;
: Do these steps from the shell to read a CD/DVD into a standard ISO image:&lt;br /&gt;
:# Find your CD drive device by typing: MOSSYS:Data/Jalapeno/readcd -scanbus&lt;br /&gt;
:# Create an ISO image by typing (replace &amp;quot;1,1,0&amp;quot; to what you saw in the previous step, and the image path to what you want): MOSSYS:Data/Jalapeno/readcd -dev 1,1,0 f=ram:image.iso&lt;br /&gt;
&lt;br /&gt;
=== Disabling the Default UTF-8 Mode with Scribble ===&lt;br /&gt;
&lt;br /&gt;
: Scribble uses UTF-8 encoding by default, but you might prefer to default to the traditional ASCII format instead. The UTF-8 mode can be disabled from the pulldown menu in Scribble, but the setting isn't saved if you save the program settings.&lt;br /&gt;
: [[File:Scribble_ascii1.png|128px]]&lt;br /&gt;
&lt;br /&gt;
: If you want to disable it by default, you have to open the &amp;quot;Save As...&amp;quot; requester, enable the &amp;quot;Make Default&amp;quot; option (also check that Encoding is set to ASCII), and save a file (can be any file anywhere).&lt;br /&gt;
: [[File:Scribble_ascii2.png|205px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 3rd Party Software ==&lt;br /&gt;
&lt;br /&gt;
=== Where to Get Software? ===&lt;br /&gt;
:* Check [http://library.morph.zone/Links#File_Repositories file repositories] for manual installing&lt;br /&gt;
:* [http://www.geit.de/eng_grunch.html Grunch] is a good packet manager for automatic installation and updating of selected software&lt;br /&gt;
:* [http://www.meta-morphos.org/WArMUp/chrysalis_en.pdf Chrysalis] is a preconfigured environment and software distribution package ([http://www.warmup-asso.org/download/pack/chrysalis.iso Download ISO image])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Custom Ambient Menus with AREXX ===&lt;br /&gt;
&lt;br /&gt;
: You can add own menu items to Ambient pulldown menus with AREXX. Read SYS:MorphOS/Ambient/docs/arexx.txt for more info about AREXX usage or download the [http://morphos-files.net/remote/CRABUM CRABUM] program, which helps you to create correct AREXX lines ([http://library.morph.zone/Getting_Started#Creating_Menus_with_CRABUM tutorial]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Help with Shell Commands ===&lt;br /&gt;
&lt;br /&gt;
: MorphOS Library contains descriptions of all [http://library.morph.zone/Shell_Commands shell commands] and the descriptions can be displayed on the shell with the [http://aminet.net/package/util/batch/Chelp Chelp] script. The script can be used to replace older [http://aminet.net/package/util/cli/Help Help] program (which would otherwise be nice still, but it only contains help for MorphOS 1.x commands).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Utilizing Your Keyboard's Multimedia Keys ===&lt;br /&gt;
&lt;br /&gt;
:* The [http://www.geit.de/eng_mmkeyboard.html MMKeyboard] software can be used to assign different kinds of functions to extra keys found on some keyboards.&lt;br /&gt;
:* The [http://aminet.net/package/mus/play/MultiMeedio MultiMeedio] script provides a unified control for all popular media players.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Hardware Related ==&lt;br /&gt;
&lt;br /&gt;
=== Removing Startup Sound on Macs ===&lt;br /&gt;
&lt;br /&gt;
: Sadly there isn't any known way to disable that annoying startup sound from MorphOS itself or from Open Firmware, but there are few different ways to achieve it anyway.&lt;br /&gt;
&lt;br /&gt;
:* If you plan to use Mac as MorphOS only system, but you still have OSX installed, you can mute the audio from OSX before wiping it out by installing MorphOS. Startup sound doesn't come back if you won't boot into OSX anymore.&lt;br /&gt;
:* If you don't have OSX anymore, you could try to remove sound with some Linux distribution's live/installation CD. More info [http://www.meta-morphos.org/faq.php?id_cat=2&amp;amp;myfaq=yes&amp;amp;categories=Installation+et+d%E9marrage#74 here] and [https://morphosuser.wordpress.com/2014/12/28/removing-the-boot-sound/ here].&lt;br /&gt;
:* If you use OSX and MorphOS as a dualboot system you can install [http://www5e.biglobe.ne.jp/~arcana/StartupSound/index.en.html StartupSound.prefPane] for OSX.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Speeding Up the Startup Manager on Macs ===&lt;br /&gt;
&lt;br /&gt;
: Startup Manager (the boot menu you get by booting with option/alt key pressed) can be slow when it tries to find network boot devices. To speed it up go to the OF prompt and type &amp;quot;'''setenv skip-netboot? true'''&amp;quot;. Funnily enough, it only affects if you have network cable plugged in.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Booting MorphOS ISO from USB Stick ===&lt;br /&gt;
&lt;br /&gt;
: MorphOS Team has released an [http://www.morphos-team.net/guide/usb-boot official guide] for USB booting, but I've also noticed that at least some Macs (Mac mini and Powerbook for example) have certain ud alias for USB drive. You can use that as a shortcut and get the booting done with less work (no need to search the correct path, works even when USB stick is in a hub, less typing and less to remember).&lt;br /&gt;
&lt;br /&gt;
: If you have only one mass storage device connected, you can just boot into Open Firmware prompt (command-alt-o-f) and type:&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;tt&amp;gt;boot ud:,\boot.img bi umsd0:morphos.iso&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: (Remember to have both boot.img and morphos.iso on the stick)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Keyboard Reboot on ADB Laptops ===&lt;br /&gt;
&lt;br /&gt;
: The traditional Ctrl-Command-Command (Ctrl-Amiga-Amiga) keyboard combination doesn't work on laptops using the ADB interface for the keyboard, because ADB doesn't make difference between the left and right command keys. You can reboot them with an alternative Fn-Alt-Alt keyboard combination.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Blackouts or Graphical Flickering on Mac mini ===&lt;br /&gt;
&lt;br /&gt;
: Mac minis suffer from short blackouts with some monitors when the connection is made with a DVI cable. The screen gets usually blanked for few seconds, and depending of the monitor it may happen more or less frequently. Issue may also show up as flickering lines on the screen and it may get worse and worse until the monitor is unable to sync to the signal anymore.&lt;br /&gt;
&lt;br /&gt;
: One option to get around it is to use a VGA adapter/cable, because it doesn't seem to happen with it.&lt;br /&gt;
&lt;br /&gt;
: An another option is to try to lower the pixel clock value for the used screenmode from the Monitors settings in the MorphOS preferences. If your default mode has for example vertical frequency of 75 Hz, going to 60 Hz mode may help. Sometimes even a small change can help, and lowering just couple clicks from 60 Hz does the trick.&lt;br /&gt;
&lt;br /&gt;
: This seems to be a common problem with Mac minis and &amp;quot;non-coherent&amp;quot; displays as discussed for example [https://discussions.apple.com/thread/2723110 here].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Disabling the Internal Touchpad on Laptops ===&lt;br /&gt;
==== From the Touchpad Settings (Preferred)====&lt;br /&gt;
: An internal touchpad can be disabled from the MorphOS system settings nowadays, and this is the preferred method. Open '''System Settings -&amp;gt; Touchpad''' and disable the '''Enable the Touchpad driver''' setting.&lt;br /&gt;
&lt;br /&gt;
: [[File:MorphOS_Preferences_disabling_touchpad.png|200px]]&lt;br /&gt;
&lt;br /&gt;
==== From the USB Settings ====&lt;br /&gt;
: The touchpad can be disabled temporarily by removing its binding in the USB settings. This setting is reverted back next time the machine is booted or if USB class scanning is done otherwise.&lt;br /&gt;
&lt;br /&gt;
: To remove the binding, open the USB settings from the MorphOS Preferences application and go to the Devices list.&lt;br /&gt;
:* If you have &amp;quot;Apple Internal Trackpad&amp;quot; alone in the list, you can just select it and click the Unbind button.&lt;br /&gt;
:: [[File:Disabling touchpad ibook.png|200px]]&lt;br /&gt;
:* If your machine has a combined internal keyboard and trackpad device, double click it (&amp;quot;Apple Internal Keyboard / Trackpad&amp;quot;). Select Touchpad from the newly opened window and then click the Release Binding button.&lt;br /&gt;
:: [[File:Disabling touchpad powerbook.png|200px]]&lt;br /&gt;
&lt;br /&gt;
==== Removing the Driver at Boot Time ====&lt;br /&gt;
: Touchpad can also be disabled permanently by removing touchpad.library from use. Removing it is a bit tricky, because it resides in &amp;quot;ROM&amp;quot; and not as a file in system directories, but it can be done with the mf (module filter) boot command argument.&lt;br /&gt;
&lt;br /&gt;
: The boot command arguments can be edited by editing the bootinfo.txt file on Macs. The bootinfo.txt file is found on the Boot: partition, which also contains the boot.img file. If you don't see the partition, you probably need to mount it first by using, for example, the [[Tools/Mounter | Mounter]] tool. '''Note that if you edit the bootinfo.txt file, you must bless the file with the [[Shell_Commands/HFSSetMacBoot | HFSSetMacBoot]] command or the system won't be bootable anymore!'''&lt;br /&gt;
&lt;br /&gt;
: To add the mf argument, open the bootinfo.txt file with a text editor, find the line between &amp;lt;BOOT-SCRIPT&amp;gt; and &amp;lt;/BOOT-SCRIPT&amp;gt; lines (it starts with &amp;quot;boot&amp;quot;), and add ''mf=touchpad.library'' at the end of the boot line. Save the file and '''remember to bless it with the ''HFSSetMacBoot Boot:bootinfo.txt'' command from the shell or your system won't boot again!'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== MorphOS Boot Arguments on U-boot Systems ===&lt;br /&gt;
: To boot into MorphOS, hardware has to load a MorphOS boot image file that contains the kernel and core drivers. The boot image file also accepts arguments to control the boot procedure before the actual operating system is loaded from the system partition. The boot arguments usage on [[Open Firmware]] systems is well [[Open_Firmware#Boot_Arguments | documented]], but they must be given in a different way on [http://www.intuitionbase.com/static.php?section=uboot U-boot] systems (Sam460ex/cr, AmigaOne X5000).&lt;br /&gt;
&lt;br /&gt;
: On the U-boot systems the boot arguments have to be set in the '''morphosargs''' environment variable in the U-boot console.&lt;br /&gt;
&lt;br /&gt;
: To check if you already have the variable set:&lt;br /&gt;
: &amp;lt;tt&amp;gt;printenv morphosargs&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: To set an argument (in this example we'd disable an unsupported SCSI controller by removing the SCSI driver from the boot image by using the ''module filter (mf)'' boot argument):&lt;br /&gt;
: &amp;lt;tt&amp;gt;setenv morphosargs mf=symbios.device&amp;lt;/tt&amp;gt;&lt;br /&gt;
: &amp;lt;tt&amp;gt;saveenv&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: To edit an existing variable:&lt;br /&gt;
: &amp;lt;tt&amp;gt;editenv morphosargs&amp;lt;/tt&amp;gt;&lt;br /&gt;
: &amp;lt;tt&amp;gt;saveenv&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== FireWire Debugging ===&lt;br /&gt;
&lt;br /&gt;
: It's possible to transfer MorphOS debug logs to another computer via a FireWire connection. Please read [https://morph.zone/modules/newbb_plus/viewtopic.php?forum=11&amp;amp;topic_id=12759&amp;amp;post_id=143825&amp;amp;viewmode=flat&amp;amp;sortorder=0&amp;amp;showonepost=1 this post at MorphZone] for more information.&lt;/div&gt;</summary>
		<author><name>JPV</name></author>	</entry>

	<entry>
		<id>https://library.morph.zone/index.php?title=Mounting_Network_Drives&amp;diff=4349</id>
		<title>Mounting Network Drives</title>
		<link rel="alternate" type="text/html" href="https://library.morph.zone/index.php?title=Mounting_Network_Drives&amp;diff=4349"/>
				<updated>2024-09-26T12:34:01Z</updated>
		
		<summary type="html">&lt;p&gt;JPV: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== SmbFS ==&lt;br /&gt;
Windows shares, and Samba shares on other systems like Linux servers and NAS devices, can be mounted with the native [[Shell_Commands/SmbFS|SmbFS]] Shell command which is included with MorphOS. You shouldn't install any third party versions, because the included command is the most up-to-date and compatible version available, and it also has 64-bit I/O support.&lt;br /&gt;
&lt;br /&gt;
'''Note that SmbFS works only with the obsoleted SMB1 protocol and isn't adviced to be used anymore. Please read the [https://library.morph.zone/Mounting_Network_Drives#Smb2FS Smb2FS] section for support for modern SMB2 and SMB3 protocols.'''&lt;br /&gt;
&lt;br /&gt;
The ''SYS:MorphOS/Locale/Help/english/SmbFS.txt'' file contains a detailed description of all [[Shell_Commands/SmbFS|SmbFS]] options, but in most cases you'll be fine with just few basic options.&lt;br /&gt;
&lt;br /&gt;
Note that recent mainstream systems have started to drop support for older protocol versions on their default configurations, and you might need to enable the legacy support manually to get SmbFS connected to them.&lt;br /&gt;
&lt;br /&gt;
For example, on Windows 10 you might need to enable ''SMB 1.0/CIFS File Sharing Support'' options from the ''Turn Windows Features off and On'' settings in the Control Panel, and on Linux ''server min protocol = NT1'' and ''ntlm auth = yes'' lines may need to be added to the ''/etc/samba/smb.conf'' file.&lt;br /&gt;
&lt;br /&gt;
=== A simple example run from the Shell ===&lt;br /&gt;
 '''SmbFS WORKGROUP=workgroup USER=myusername PASSWORD=mypassword  VOLUME=Win7_share: SERVICE=//win7/sharedstuff'''&lt;br /&gt;
 Connected '//win7/sharedstuff' to 'Win7_share:'; &amp;quot;Break 5&amp;quot; or [Ctrl-C] to stop...&lt;br /&gt;
&lt;br /&gt;
The VOLUME option specifies a volume name for the mounted device. Without it the device would only be accessible with its device name and no icon would appear on the Ambient desktop. Any name you want will be fine.&lt;br /&gt;
&lt;br /&gt;
The first part of the SERVICE option contains a remote file server's name as seen, for example, on the network computers list on Windows. It is followed by a share name, which would be seen if you opened a network computer on Windows. The server name is ''win7'' and the share name is ''sharedstuff'' in this case.&lt;br /&gt;
&lt;br /&gt;
The share can be unmounted by pressing ''CTRL C'' keyboard combination when started like this.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The server name should work as it is, but if the host can't be found for some reason, you could try to add it to the Hosts settings in the MorphOS preferences.&lt;br /&gt;
: [[File:MorphOS_Preferences_Hosts.png|320px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you want to start the [[Shell_Commands/SmbFS|SmbFS]] command as a background process from the Shell, the S:user-network-startup file, or anywhere else, you can launch it with the [[Shell_Commands/Run|Run]] command. The ''&amp;gt;NIL:'' redirect ensures that no output windows will pop up either.&lt;br /&gt;
&lt;br /&gt;
'''Run &amp;gt;NIL: SmbFS WORKGROUP=workgroup USER=myusername PASSWORD=mypassword  VOLUME=Win7_share: SERVICE=//win7/sharedstuff'''&lt;br /&gt;
&lt;br /&gt;
There are several ways to unmount the share now, but the easiest is to use the Eject [[Screenbar_Modules|screenbar module]] or the [[Shell_Commands/UnMount|UnMount]] command.&lt;br /&gt;
: [[File:NetworkDrives_SmbFS_Eject.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you replace the PASSWORD option with the ASKPASSWORD option, you'll get a requester asking for the password.&lt;br /&gt;
&lt;br /&gt;
'''Run &amp;gt;NIL: SmbFS WORKGROUP=workgroup USER=MorphOS_Rulez ASKPASSWORD VOLUME=Win7_share: SERVICE=//win7/sharedstuff'''&lt;br /&gt;
: [[File:NetworkDrives_SmbFS_PW.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Smb2FS ==&lt;br /&gt;
While SmbFS works only with the SMB1 protocol, [[Shell_Commands/Smb2FS|Smb2FS]] works with SMB2 and SMB3 protocols. Smb2FS can be used with SmbFS's arguments, but it also supports the URL format:&lt;br /&gt;
 smb://[&amp;lt;domain;][&amp;lt;username&amp;gt;@]&amp;lt;host&amp;gt;[:&amp;lt;port&amp;gt;]/&amp;lt;share&amp;gt;/&amp;lt;path&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Since MorphOS 3.18 it's possible to browse and mount SMB2/3 shares directly from Ambient, which practically obsoletes the command-line usage of Smb2FS. Here's a [https://m.youtube.com/watch?v=YKmeI2aboUc demonstration video] of the Networks browsing and mounting.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Ssh2FS ==&lt;br /&gt;
The built-in [[Shell_Commands/Ssh2FS|Ssh2FS]] command can be used to mount a remote SFTP share on your local MorphOS machine. Practically all remote servers you can access using a SSH2 client can also be mounted as part of the filesystem with this command.&lt;br /&gt;
&lt;br /&gt;
The ''SYS:MorphOS/Locale/Help/english/Ssh2FS.readme'' file contains a detailed description of all [[Shell_Commands/Ssh2FS|Ssh2FS]] the options.&lt;br /&gt;
&lt;br /&gt;
=== Requirements ===&lt;br /&gt;
Ssh2FS needs a home directory for the user, and that directory must be set to ''MorphOS Preferences -&amp;gt; Users -&amp;gt; Home Dir'' or provided as a Command-Line argument to Ssh2FS (''HOME=path:dir/'').&lt;br /&gt;
&lt;br /&gt;
It is recommended to set the home directory in the MorphOS Preferences for easier use later on.&lt;br /&gt;
# Create a new directory somewhere. ''SYS:Home'', for instance.&lt;br /&gt;
# Set this directory to ''MorphOS Preferences -&amp;gt; Users -&amp;gt; Home Dir'' and save settings. A ''HOME:'' assign is created automatically to point into this directory.&lt;br /&gt;
&lt;br /&gt;
=== Examples ===&lt;br /&gt;
Here are some examples to run from the Shell. '''Bold lines''' are what you need to type into the Shell.&lt;br /&gt;
&lt;br /&gt;
==== Mounting with the Password Prompt ====&lt;br /&gt;
This will ask for a password for the &amp;quot;linuxuser&amp;quot; account, and mounts the remote server with &amp;quot;Linux&amp;quot; as a volume name. A drive icon with that name will appear on the Ambient desktop.&lt;br /&gt;
 '''ssh2fs linuxuser@192.168.1.4 Linux: pw'''&lt;br /&gt;
 Remote says: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.3&lt;br /&gt;
 Host '192.168.1.4' is not known!&lt;br /&gt;
 Add host to known_hosts file ? (y/n)'''y'''&lt;br /&gt;
 Enter password:&lt;br /&gt;
 SFTP connection established.&lt;br /&gt;
&lt;br /&gt;
Now you can unmount the share by pressing the ''CTRL C'' keyboard combination, by using the Eject [[Screenbar_Modules|screenbar module]], or with the [[Shell_Commands/UnMount|UnMount]] Shell command (''UnMount Linux:'').&lt;br /&gt;
&lt;br /&gt;
The previous example mounted the root directory of the server, but this would only mount your own home directory.&lt;br /&gt;
 '''ssh2fs linuxuser@192.168.1.4:/home/linuxuser Linux: pw'''&lt;br /&gt;
 Remote says: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.3&lt;br /&gt;
 Enter password:&lt;br /&gt;
 SFTP connection established.&lt;br /&gt;
&lt;br /&gt;
If you have mapped a hostname for your server's IP address from ''MorphOS Preferences -&amp;gt; Hosts'', that will also work, as well as any URL to remote servers on the Internet. Here we have ''linux4'' set for the LAN address 192.168.1.4.&lt;br /&gt;
 '''ssh2fs linuxuser@linux4:/home/linuxuser Linux: pw'''&lt;br /&gt;
 Remote says: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.3&lt;br /&gt;
 Enter password:&lt;br /&gt;
 SFTP connection established.&lt;br /&gt;
&lt;br /&gt;
==== Passwordless Mounting ====&lt;br /&gt;
If you prefer to avoid entering the password, and do more automatic mounting of shares, a public key can be generated and used for authentication.&lt;br /&gt;
# Set a hostname for your machine in ''MorphOS Preferences -&amp;gt; Network -&amp;gt; Host and DNS'' if not already set&lt;br /&gt;
# Open the Shell, type '''SYS:Applications/RemoteShell/Files/ssh-keygen -t rsa''', and press the Enter key a few times (don't set the passphrase).&lt;br /&gt;
# Copy the resulting files (''id_rsa'' and ''id_rsa.pub'') to the ''.ssh'' directory in your MorphOS home directory. For example, '''Copy SYS:Applications/RemoteShell/Files/conf/id_rsa#? HOME:.ssh/'''&lt;br /&gt;
# Append the contents of the ''id_rsa.pub'' file to the ''~/.ssh/authorized_keys'' file on the server. There are several ways to do that, such as, these two (pick only one, and notice the double &amp;gt; character):&lt;br /&gt;
## Copy the file to the server, connect by an SSH client, execute ''cat id_rsa.pub &amp;gt;&amp;gt; ~/.ssh/authorized_keys''&lt;br /&gt;
## Mount your own remote ''home directory'' with Ssh2FS and the password option as mentioned in the previous section, type in the MorphOS Shell: '''Type HOME:.ssh/id_rsa.pub &amp;gt;&amp;gt; Linux:.ssh/authorized_keys'''&lt;br /&gt;
&lt;br /&gt;
Now you should be able to mount the server without encountering a password prompt with the ''pk'' argument:&lt;br /&gt;
 '''ssh2fs linuxuser@linux4:/home/linuxuser Linux: pk'''&lt;br /&gt;
 Remote says: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.3&lt;br /&gt;
 SFTP connection established.&lt;br /&gt;
&lt;br /&gt;
==== Mounting as a Background Process ====&lt;br /&gt;
The previous examples required user interaction in the Shell, but if you want to start Ssh2FS mounts as a background processes, you'll have to use the &lt;br /&gt;
[[Shell_Commands/RunFS|RunFS]] command. Normally you would do that with the Run command, but that has some limitations in this case and so that's why the RunFS command is provided.&lt;br /&gt;
&lt;br /&gt;
Note that you'll have to provide a path to the Ssh2FS location (''C:''), otherwise RunFS won't find it. In this example we'll also disable the output with the ''Q=QUIET'' argument.&lt;br /&gt;
 '''runfs Q C:ssh2fs linuxuser@linux4:/home/linuxuser Linux: pk'''&lt;br /&gt;
&lt;br /&gt;
If you want to open a new Ambient window automatically for the newly mounted share, you can use the ''O=OPEN'' argument.&lt;br /&gt;
 '''runfs Q O C:ssh2fs linuxuser@linux4:/home/linuxuser Linux: pk'''&lt;br /&gt;
&lt;br /&gt;
With the previous lines you can mount SFTP shares, for example, automatically on each boot from ''S:user-network-startup'', or manually from the menus or keyboard shortcuts.&lt;br /&gt;
&lt;br /&gt;
=== Unmounting ===&lt;br /&gt;
As mentioned earlier, mounted Ssh2FS shares can be unmounted in several ways.&lt;br /&gt;
* Use the Eject [[Screenbar_Modules|screenbar module]]&lt;br /&gt;
* Use the [[Shell_Commands/UnMount|UnMount]] Shell command: ''UnMount VolumeName:''&lt;br /&gt;
* Send a ''CTRL C'' signal to the Ssh2FS task, for example, by keyboard, using the [[Shell_Commands/Break|Break]] command, or using the [[Utilities/TaskManager|TaskManager]] utility.&lt;br /&gt;
&lt;br /&gt;
== NetFS Revised ==&lt;br /&gt;
[http://aminet.net/package/comm/net/NetFS-revised NetFS Revised] allows mounting of drives between MorphOS and AmigaOS systems. It is the best alternative to share files between Amiga compatible systems, because it preserves protection bits and other Amiga-like file properties. NetFS Revised also contains a tool to access ARexx ports remotely.&lt;br /&gt;
&lt;br /&gt;
'''NOTE: There's an installer script provided with the latest version and no manual installation is required anymore. It also comes with graphical tools to create and mount shares.'''&lt;br /&gt;
&lt;br /&gt;
'''The manual installation procedure described below is also partly outdated for now. Please watch this [https://m.youtube.com/watch?v=SirKvJ03EnM video about NetFS Revised] if you need help using a recent version of the filesystem.&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
Here's a step-by-step guide of how to install it manually on MorphOS.&lt;br /&gt;
&lt;br /&gt;
# Copy contents of the '''NetFS/SYS.MorphOS/''' directory to your '''SYS:''' partition&lt;br /&gt;
# Copy '''NetFS/Prefs/Env-Archive/netfs-server.config''' to '''ENVARC:'''&lt;br /&gt;
# (Optionally) Copy '''NetFS/Devs/DOSDrivers/ANETFS0''' to '''SYS:Storage/DOSDrivers/''' (if you want to mount a drive with a mountlist later)&lt;br /&gt;
# (Optionally) Copy '''NetFS/Help/english/NetFS.guide''' to '''HELP:english/''' (to keep the documentation available)&lt;br /&gt;
# Add '''amiganetfs 2500/tcp''', '''amiganetfs 2500/udp''', and '''amiganetfsprobe 2501/udp''' lines to the '''ENVARC:sys/net/services''' file.&amp;lt;br /&amp;gt;[[File:NetworkDrives_NetFS1.png|480px]]&lt;br /&gt;
# Add '''amiganetfs stream tcp nowait root C:InetD/netfs-server''' and '''amiganetfs dgram udp wait root C:InetD/netfs-server''' lines to the '''ENVARC:sys/net/inetd.conf''' file. If you don't plan to use the system as a server, you may leave it commented by starting the line with the # character, but better add the line there for any future use.&amp;lt;br /&amp;gt;[[File:NetworkDrives_NetFS2.png|480px]]&lt;br /&gt;
# Edit the last line on the '''ENVARC:netfs-server.config''' file to your liking on the server machine. In this example we'll allow access to the Work: partition with a specified login and password.&amp;lt;br /&amp;gt;[[File:NetworkDrives_NetFS3.png|480px]]&lt;br /&gt;
# '''Reboot''' the machine before trying it out.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The server works automatically, and you just need to connect to it from a client machine. We can mount the server's Work: partition by running the NetMount command on the client machine. Server's IP address is 192.168.1.10 in this example.&lt;br /&gt;
&lt;br /&gt;
'''NetMount 192.168.1.10 Work: NetFS0: LOGIN=morphos PASS=rulez''' mounts the remote Work: partition as a local device called NetFS0:. The local device name can be anything you want, but NetMount creates the volume name automatically by adding the address after the remote volume name. &lt;br /&gt;
: [[File:NetworkDrives_NetFS4.png|480px]]&lt;br /&gt;
&lt;br /&gt;
A better solution is to add a hostname for the server IP address, if you haven't done that already, and use that instead of the numerical address. Let's remove the mount with the [[Shell_Commands/UnMount|UnMount]] command and add a hostname on the Hosts settings in the MorphOS preferences.&lt;br /&gt;
: [[File:NetworkDrives_NetFS5.png|480px]]&lt;br /&gt;
&lt;br /&gt;
So, let's try that again with the '''NetMount pb Work: NetFS0: LOGIN=morphos PASS=rulez''' command.&lt;br /&gt;
: [[File:NetworkDrives_NetFS6.png|480px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you want to unmount the shares with the Eject [[Screenbar_Modules|screenbar module]], you'll have to decide to use a certain pattern with device names you mount and add that pattern to the Eject module's settings. If you keep using device names like NetFS0, NetFS1, NetFS3, etc, you could add '''NetFS#[0-9]''' or '''NetFS#?''' or similar to the Unmount pattern.&lt;br /&gt;
: [[File:NetworkDrives_NetFS7.png|480px]] [[File:NetworkDrives_NetFS8.png|480px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Also if you want to have a new default icon for the previous devices, copy or create an icon named def_NetFSxdisk.info to the SYS:Prefs/Presets/Deficons/ directory. '''Copy SYS:Prefs/Presets/Deficons/def_SMBFSxdisk.info to SYS:Prefs/Presets/Deficons/def_NetFSxdisk.info''' which would then use the same icon with SmbFS and NetFS shares.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== RDesktop ==&lt;br /&gt;
The [[Applications/RDesktop|RDesktop]] application included in MorphOS displays a remote machine's desktop on your computer, but it can also mount a local directory on the remote machine. If you're using [[Applications/RDesktop|RDesktop]] to control a remote machine, it's a good way to share MorphOS files with the remote machine without needing to install any other services on your MorphOS computer.&lt;br /&gt;
&lt;br /&gt;
Click the '''Options''' button on the RDesktopGUI window, open the '''Resources''' tab, and select a directory on the '''Mounted Directories''' group. The directory will be shown on the remote machine when you connect to it.&lt;br /&gt;
: [[File:MorphOS3_jPV_Rdesktop.png|320px]] [[File:RDesktop_netdisk_mount.png|320px|top]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Google Drive and Dropbox Handlers ==&lt;br /&gt;
The [http://aminet.net/package/comm/tcp/AmigaCloudHandlers Amiga Cloud Handlers] pack contains handlers to mount both Google Drive and Dropbox cloud store-types. Write support for both handlers requires a licence key.&lt;br /&gt;
&lt;br /&gt;
If you want mounted devices being activated immediately, and not when first accessed, change the wanted '''Activate = 0''' lines to '''Activate = 1''' lines in the DEVS:Cloud/cloud.mountlist file. Also, move mount lines from the S:user-startup file to the S:user-network-startup file, or somewhere else to be mounted later when the network connection is up for sure.&lt;br /&gt;
&lt;br /&gt;
A registered version of Google Drive handler can also export Google documents to RTF, ODT, HTML, PDF, ZIP, DOCX, and TXT formats. It simply asks for the desired format when copying a Google document file from a mounted volume to any other location.&lt;br /&gt;
: [[File:NetworkDrives_GoogleDrive1.png|320px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== NFS ==&lt;br /&gt;
There aren't any native clients or servers for Sun's NFS protocol on MorphOS, but you can still use old 68k binaries for that purpose.&lt;br /&gt;
&lt;br /&gt;
Read more about it [https://amiga23.wordpress.com/2014/11/21/how-to-use-nfs-shares-on-morphos/ here].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== FTPMount ==&lt;br /&gt;
FTP sites can be mounted as part of a filesystem with the FTPMount program.&lt;br /&gt;
&lt;br /&gt;
An installation tutorial is to be found [https://amiga23.wordpress.com/2014/11/22/how-to-access-ftp-servers-via-the-filesystem-on-morphos/ here].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Samba ==&lt;br /&gt;
There are few ports of the full Samba package, but they are quite old and usually just overkill in most cases. If [[Shell_Commands/SmbFS|SmbFS]] or [[Applications/RDesktop|RDesktop]] fills your needs, don't go for full Samba.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Other ==&lt;br /&gt;
&lt;br /&gt;
You might find other options and protocols to mount network drives, especially from 68k binaries. For example Envoy should work on MorphOS, to some degree, but be prepared to Google around and to face up to some issues when setting it up.&lt;/div&gt;</summary>
		<author><name>JPV</name></author>	</entry>

	<entry>
		<id>https://library.morph.zone/index.php?title=Mounting_Network_Drives&amp;diff=4348</id>
		<title>Mounting Network Drives</title>
		<link rel="alternate" type="text/html" href="https://library.morph.zone/index.php?title=Mounting_Network_Drives&amp;diff=4348"/>
				<updated>2024-09-26T12:28:29Z</updated>
		
		<summary type="html">&lt;p&gt;JPV: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== SmbFS ==&lt;br /&gt;
Windows shares, and Samba shares on other systems like Linux servers and NAS devices, can be mounted with the native [[Shell_Commands/SmbFS|SmbFS]] Shell command which is included with MorphOS. You shouldn't install any third party versions, because the included command is the most up-to-date and compatible version available, and it also has 64-bit I/O support.&lt;br /&gt;
&lt;br /&gt;
'''Note that SmbFS works only with the obsoleted SMB1 protocol and isn't adviced to be used anymore. Please read the [https://library.morph.zone/Mounting_Network_Drives#Smb2FS Smb2FS] section for support for modern SMB2 and SMB3 protocols.'''&lt;br /&gt;
&lt;br /&gt;
The ''SYS:MorphOS/Locale/Help/english/SmbFS.txt'' file contains a detailed description of all [[Shell_Commands/SmbFS|SmbFS]] options, but in most cases you'll be fine with just few basic options.&lt;br /&gt;
&lt;br /&gt;
Note that recent mainstream systems have started to drop support for older protocol versions on their default configurations, and you might need to enable the legacy support manually to get SmbFS connected to them.&lt;br /&gt;
&lt;br /&gt;
For example, on Windows 10 you might need to enable ''SMB 1.0/CIFS File Sharing Support'' options from the ''Turn Windows Features off and On'' settings in the Control Panel, and on Linux ''server min protocol = NT1'' and ''ntlm auth = yes'' lines may need to be added to the ''/etc/samba/smb.conf'' file.&lt;br /&gt;
&lt;br /&gt;
=== A simple example run from the Shell ===&lt;br /&gt;
 '''SmbFS WORKGROUP=workgroup USER=myusername PASSWORD=mypassword  VOLUME=Win7_share: SERVICE=//win7/sharedstuff'''&lt;br /&gt;
 Connected '//win7/sharedstuff' to 'Win7_share:'; &amp;quot;Break 5&amp;quot; or [Ctrl-C] to stop...&lt;br /&gt;
&lt;br /&gt;
The VOLUME option specifies a volume name for the mounted device. Without it the device would only be accessible with its device name and no icon would appear on the Ambient desktop. Any name you want will be fine.&lt;br /&gt;
&lt;br /&gt;
The first part of the SERVICE option contains a remote file server's name as seen, for example, on the network computers list on Windows. It is followed by a share name, which would be seen if you opened a network computer on Windows. The server name is ''win7'' and the share name is ''sharedstuff'' in this case.&lt;br /&gt;
&lt;br /&gt;
The share can be unmounted by pressing ''CTRL C'' keyboard combination when started like this.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The server name should work as it is, but if the host can't be found for some reason, you could try to add it to the Hosts settings in the MorphOS preferences.&lt;br /&gt;
: [[File:MorphOS_Preferences_Hosts.png|320px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you want to start the [[Shell_Commands/SmbFS|SmbFS]] command as a background process from the Shell, the S:user-network-startup file, or anywhere else, you can launch it with the [[Shell_Commands/Run|Run]] command. The ''&amp;gt;NIL:'' redirect ensures that no output windows will pop up either.&lt;br /&gt;
&lt;br /&gt;
'''Run &amp;gt;NIL: SmbFS WORKGROUP=workgroup USER=myusername PASSWORD=mypassword  VOLUME=Win7_share: SERVICE=//win7/sharedstuff'''&lt;br /&gt;
&lt;br /&gt;
There are several ways to unmount the share now, but the easiest is to use the Eject [[Screenbar_Modules|screenbar module]] or the [[Shell_Commands/UnMount|UnMount]] command.&lt;br /&gt;
: [[File:NetworkDrives_SmbFS_Eject.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you replace the PASSWORD option with the ASKPASSWORD option, you'll get a requester asking for the password.&lt;br /&gt;
&lt;br /&gt;
'''Run &amp;gt;NIL: SmbFS WORKGROUP=workgroup USER=MorphOS_Rulez ASKPASSWORD VOLUME=Win7_share: SERVICE=//win7/sharedstuff'''&lt;br /&gt;
: [[File:NetworkDrives_SmbFS_PW.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Smb2FS ==&lt;br /&gt;
While SmbFS works only with the SMB1 protocol, [[Shell_Commands/Smb2FS|Smb2FS]] works with SMB2 and SMB3 protocols. Smb2FS can be used with SmbFS's arguments, but it also supports the URL format:&lt;br /&gt;
 smb://[&amp;lt;domain;][&amp;lt;username&amp;gt;@]&amp;lt;host&amp;gt;[:&amp;lt;port&amp;gt;]/&amp;lt;share&amp;gt;/&amp;lt;path&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Since MorphOS 3.18 it's possible to browse and mount SMB2/3 shares directly from Ambient, which practically obsoletes the command-line usage of Smb2FS. Here's a [https://m.youtube.com/watch?v=YKmeI2aboUc demonstration video] of the Networks browsing and mounting.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Ssh2FS ==&lt;br /&gt;
The built-in [[Shell_Commands/Ssh2FS|Ssh2FS]] command can be used to mount a remote SFTP share on your local MorphOS machine. Practically all remote servers you can access using a SSH2 client can also be mounted as part of the filesystem with this command.&lt;br /&gt;
&lt;br /&gt;
The ''SYS:MorphOS/Locale/Help/english/Ssh2FS.readme'' file contains a detailed description of all [[Shell_Commands/Ssh2FS|Ssh2FS]] the options.&lt;br /&gt;
&lt;br /&gt;
=== Requirements ===&lt;br /&gt;
Ssh2FS needs a home directory for the user, and that directory must be set to ''MorphOS Preferences -&amp;gt; Users -&amp;gt; Home Dir'' or provided as a Command-Line argument to Ssh2FS (''HOME=path:dir/'').&lt;br /&gt;
&lt;br /&gt;
It is recommended to set the home directory in the MorphOS Preferences for easier use later on.&lt;br /&gt;
# Create a new directory somewhere. ''SYS:Home'', for instance.&lt;br /&gt;
# Set this directory to ''MorphOS Preferences -&amp;gt; Users -&amp;gt; Home Dir'' and save settings. A ''HOME:'' assign is created automatically to point into this directory.&lt;br /&gt;
&lt;br /&gt;
=== Examples ===&lt;br /&gt;
Here are some examples to run from the Shell. '''Bold lines''' are what you need to type into the Shell.&lt;br /&gt;
&lt;br /&gt;
==== Mounting with the Password Prompt ====&lt;br /&gt;
This will ask for a password for the &amp;quot;linuxuser&amp;quot; account, and mounts the remote server with &amp;quot;Linux&amp;quot; as a volume name. A drive icon with that name will appear on the Ambient desktop.&lt;br /&gt;
 '''ssh2fs linuxuser@192.168.1.4 Linux: pw'''&lt;br /&gt;
 Remote says: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.3&lt;br /&gt;
 Host '192.168.1.4' is not known!&lt;br /&gt;
 Add host to known_hosts file ? (y/n)'''y'''&lt;br /&gt;
 Enter password:&lt;br /&gt;
 SFTP connection established.&lt;br /&gt;
&lt;br /&gt;
Now you can unmount the share by pressing the ''CTRL C'' keyboard combination, by using the Eject [[Screenbar_Modules|screenbar module]], or with the [[Shell_Commands/UnMount|UnMount]] Shell command (''UnMount Linux:'').&lt;br /&gt;
&lt;br /&gt;
The previous example mounted the root directory of the server, but this would only mount your own home directory.&lt;br /&gt;
 '''ssh2fs linuxuser@192.168.1.4:/home/linuxuser Linux: pw'''&lt;br /&gt;
 Remote says: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.3&lt;br /&gt;
 Enter password:&lt;br /&gt;
 SFTP connection established.&lt;br /&gt;
&lt;br /&gt;
If you have mapped a hostname for your server's IP address from ''MorphOS Preferences -&amp;gt; Hosts'', that will also work, as well as any URL to remote servers on the Internet. Here we have ''linux4'' set for the LAN address 192.168.1.4.&lt;br /&gt;
 '''ssh2fs linuxuser@linux4:/home/linuxuser Linux: pw'''&lt;br /&gt;
 Remote says: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.3&lt;br /&gt;
 Enter password:&lt;br /&gt;
 SFTP connection established.&lt;br /&gt;
&lt;br /&gt;
==== Passwordless Mounting ====&lt;br /&gt;
If you prefer to avoid entering the password, and do more automatic mounting of shares, a public key can be generated and used for authentication.&lt;br /&gt;
# Set a hostname for your machine in ''MorphOS Preferences -&amp;gt; Network -&amp;gt; Host and DNS'' if not already set&lt;br /&gt;
# Open the Shell, type '''SYS:Applications/RemoteShell/Files/ssh-keygen -t rsa''', and press the Enter key a few times (don't set the passphrase).&lt;br /&gt;
# Copy the resulting files (''id_rsa'' and ''id_rsa.pub'') to the ''.ssh'' directory in your MorphOS home directory. For example, '''Copy SYS:Applications/RemoteShell/Files/conf/id_rsa#? HOME:.ssh/'''&lt;br /&gt;
# Append the contents of the ''id_rsa.pub'' file to the ''~/.ssh/authorized_keys'' file on the server. There are several ways to do that, such as, these two (pick only one, and notice the double &amp;gt; character):&lt;br /&gt;
## Copy the file to the server, connect by an SSH client, execute ''cat id_rsa.pub &amp;gt;&amp;gt; ~/.ssh/authorized_keys''&lt;br /&gt;
## Mount your own remote ''home directory'' with Ssh2FS and the password option as mentioned in the previous section, type in the MorphOS Shell: '''Type HOME:.ssh/id_rsa.pub &amp;gt;&amp;gt; Linux:.ssh/authorized_keys'''&lt;br /&gt;
&lt;br /&gt;
Now you should be able to mount the server without encountering a password prompt with the ''pk'' argument:&lt;br /&gt;
 '''ssh2fs linuxuser@linux4:/home/linuxuser Linux: pk'''&lt;br /&gt;
 Remote says: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.3&lt;br /&gt;
 SFTP connection established.&lt;br /&gt;
&lt;br /&gt;
==== Mounting as a Background Process ====&lt;br /&gt;
The previous examples required user interaction in the Shell, but if you want to start Ssh2FS mounts as a background processes, you'll have to use the &lt;br /&gt;
[[Shell_Commands/RunFS|RunFS]] command. Normally you would do that with the Run command, but that has some limitations in this case and so that's why the RunFS command is provided.&lt;br /&gt;
&lt;br /&gt;
Note that you'll have to provide a path to the Ssh2FS location (''C:''), otherwise RunFS won't find it. In this example we'll also disable the output with the ''Q=QUIET'' argument.&lt;br /&gt;
 '''runfs Q C:ssh2fs linuxuser@linux4:/home/linuxuser Linux: pk'''&lt;br /&gt;
&lt;br /&gt;
If you want to open a new Ambient window automatically for the newly mounted share, you can use the ''O=OPEN'' argument.&lt;br /&gt;
 '''runfs Q O C:ssh2fs linuxuser@linux4:/home/linuxuser Linux: pk'''&lt;br /&gt;
&lt;br /&gt;
With the previous lines you can mount SFTP shares, for example, automatically on each boot from ''S:user-network-startup'', or manually from the menus or keyboard shortcuts.&lt;br /&gt;
&lt;br /&gt;
=== Unmounting ===&lt;br /&gt;
As mentioned earlier, mounted Ssh2FS shares can be unmounted in several ways.&lt;br /&gt;
* Use the Eject [[Screenbar_Modules|screenbar module]]&lt;br /&gt;
* Use the [[Shell_Commands/UnMount|UnMount]] Shell command: ''UnMount VolumeName:''&lt;br /&gt;
* Send a ''CTRL C'' signal to the Ssh2FS task, for example, by keyboard, using the [[Shell_Commands/Break|Break]] command, or using the [[Utilities/TaskManager|TaskManager]] utility.&lt;br /&gt;
&lt;br /&gt;
== NetFS Revised ==&lt;br /&gt;
[http://aminet.net/package/comm/net/NetFS-revised NetFS Revised] allows mounting of drives between MorphOS and AmigaOS systems. It is the best alternative to share files between Amiga compatible systems, because it preserves protection bits and other Amiga-like file properties. NetFS Revised also contains a tool to access ARexx ports remotely.&lt;br /&gt;
&lt;br /&gt;
'''NOTE: There's an installer script provided with the latest version and no manual installation is required anymore. The manual installation procedure described below is also partly outdated for now. Please watch this [https://m.youtube.com/watch?v=SirKvJ03EnM video about NetFS Revised] if you need help using a recent version of the filesystem.&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
Here's a step-by-step guide of how to install it manually on MorphOS.&lt;br /&gt;
&lt;br /&gt;
# Copy contents of the '''NetFS/SYS.MorphOS/''' directory to your '''SYS:''' partition&lt;br /&gt;
# Copy '''NetFS/Prefs/Env-Archive/netfs-server.config''' to '''ENVARC:'''&lt;br /&gt;
# (Optionally) Copy '''NetFS/Devs/DOSDrivers/ANETFS0''' to '''SYS:Storage/DOSDrivers/''' (if you want to mount a drive with a mountlist later)&lt;br /&gt;
# (Optionally) Copy '''NetFS/Help/english/NetFS.guide''' to '''HELP:english/''' (to keep the documentation available)&lt;br /&gt;
# Add '''amiganetfs 2500/tcp''', '''amiganetfs 2500/udp''', and '''amiganetfsprobe 2501/udp''' lines to the '''ENVARC:sys/net/services''' file.&amp;lt;br /&amp;gt;[[File:NetworkDrives_NetFS1.png|480px]]&lt;br /&gt;
# Add '''amiganetfs stream tcp nowait root C:InetD/netfs-server''' and '''amiganetfs dgram udp wait root C:InetD/netfs-server''' lines to the '''ENVARC:sys/net/inetd.conf''' file. If you don't plan to use the system as a server, you may leave it commented by starting the line with the # character, but better add the line there for any future use.&amp;lt;br /&amp;gt;[[File:NetworkDrives_NetFS2.png|480px]]&lt;br /&gt;
# Edit the last line on the '''ENVARC:netfs-server.config''' file to your liking on the server machine. In this example we'll allow access to the Work: partition with a specified login and password.&amp;lt;br /&amp;gt;[[File:NetworkDrives_NetFS3.png|480px]]&lt;br /&gt;
# '''Reboot''' the machine before trying it out.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The server works automatically, and you just need to connect to it from a client machine. We can mount the server's Work: partition by running the NetMount command on the client machine. Server's IP address is 192.168.1.10 in this example.&lt;br /&gt;
&lt;br /&gt;
'''NetMount 192.168.1.10 Work: NetFS0: LOGIN=morphos PASS=rulez''' mounts the remote Work: partition as a local device called NetFS0:. The local device name can be anything you want, but NetMount creates the volume name automatically by adding the address after the remote volume name. &lt;br /&gt;
: [[File:NetworkDrives_NetFS4.png|480px]]&lt;br /&gt;
&lt;br /&gt;
A better solution is to add a hostname for the server IP address, if you haven't done that already, and use that instead of the numerical address. Let's remove the mount with the [[Shell_Commands/UnMount|UnMount]] command and add a hostname on the Hosts settings in the MorphOS preferences.&lt;br /&gt;
: [[File:NetworkDrives_NetFS5.png|480px]]&lt;br /&gt;
&lt;br /&gt;
So, let's try that again with the '''NetMount pb Work: NetFS0: LOGIN=morphos PASS=rulez''' command.&lt;br /&gt;
: [[File:NetworkDrives_NetFS6.png|480px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you want to unmount the shares with the Eject [[Screenbar_Modules|screenbar module]], you'll have to decide to use a certain pattern with device names you mount and add that pattern to the Eject module's settings. If you keep using device names like NetFS0, NetFS1, NetFS3, etc, you could add '''NetFS#[0-9]''' or '''NetFS#?''' or similar to the Unmount pattern.&lt;br /&gt;
: [[File:NetworkDrives_NetFS7.png|480px]] [[File:NetworkDrives_NetFS8.png|480px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Also if you want to have a new default icon for the previous devices, copy or create an icon named def_NetFSxdisk.info to the SYS:Prefs/Presets/Deficons/ directory. '''Copy SYS:Prefs/Presets/Deficons/def_SMBFSxdisk.info to SYS:Prefs/Presets/Deficons/def_NetFSxdisk.info''' which would then use the same icon with SmbFS and NetFS shares.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== RDesktop ==&lt;br /&gt;
The [[Applications/RDesktop|RDesktop]] application included in MorphOS displays a remote machine's desktop on your computer, but it can also mount a local directory on the remote machine. If you're using [[Applications/RDesktop|RDesktop]] to control a remote machine, it's a good way to share MorphOS files with the remote machine without needing to install any other services on your MorphOS computer.&lt;br /&gt;
&lt;br /&gt;
Click the '''Options''' button on the RDesktopGUI window, open the '''Resources''' tab, and select a directory on the '''Mounted Directories''' group. The directory will be shown on the remote machine when you connect to it.&lt;br /&gt;
: [[File:MorphOS3_jPV_Rdesktop.png|320px]] [[File:RDesktop_netdisk_mount.png|320px|top]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Google Drive and Dropbox Handlers ==&lt;br /&gt;
The [http://aminet.net/package/comm/tcp/AmigaCloudHandlers Amiga Cloud Handlers] pack contains handlers to mount both Google Drive and Dropbox cloud store-types. Write support for both handlers requires a licence key.&lt;br /&gt;
&lt;br /&gt;
If you want mounted devices being activated immediately, and not when first accessed, change the wanted '''Activate = 0''' lines to '''Activate = 1''' lines in the DEVS:Cloud/cloud.mountlist file. Also, move mount lines from the S:user-startup file to the S:user-network-startup file, or somewhere else to be mounted later when the network connection is up for sure.&lt;br /&gt;
&lt;br /&gt;
A registered version of Google Drive handler can also export Google documents to RTF, ODT, HTML, PDF, ZIP, DOCX, and TXT formats. It simply asks for the desired format when copying a Google document file from a mounted volume to any other location.&lt;br /&gt;
: [[File:NetworkDrives_GoogleDrive1.png|320px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== NFS ==&lt;br /&gt;
There aren't any native clients or servers for Sun's NFS protocol on MorphOS, but you can still use old 68k binaries for that purpose.&lt;br /&gt;
&lt;br /&gt;
Read more about it [https://amiga23.wordpress.com/2014/11/21/how-to-use-nfs-shares-on-morphos/ here].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== FTPMount ==&lt;br /&gt;
FTP sites can be mounted as part of a filesystem with the FTPMount program.&lt;br /&gt;
&lt;br /&gt;
An installation tutorial is to be found [https://amiga23.wordpress.com/2014/11/22/how-to-access-ftp-servers-via-the-filesystem-on-morphos/ here].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Samba ==&lt;br /&gt;
There are few ports of the full Samba package, but they are quite old and usually just overkill in most cases. If [[Shell_Commands/SmbFS|SmbFS]] or [[Applications/RDesktop|RDesktop]] fills your needs, don't go for full Samba.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Other ==&lt;br /&gt;
&lt;br /&gt;
You might find other options and protocols to mount network drives, especially from 68k binaries. For example Envoy should work on MorphOS, to some degree, but be prepared to Google around and to face up to some issues when setting it up.&lt;/div&gt;</summary>
		<author><name>JPV</name></author>	</entry>

	<entry>
		<id>https://library.morph.zone/index.php?title=Shell_Commands/FileWrite&amp;diff=4345</id>
		<title>Shell Commands/FileWrite</title>
		<link rel="alternate" type="text/html" href="https://library.morph.zone/index.php?title=Shell_Commands/FileWrite&amp;diff=4345"/>
				<updated>2024-07-19T20:49:51Z</updated>
		
		<summary type="html">&lt;p&gt;JPV: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''FileWrite''' - Writes data to a file&lt;br /&gt;
&lt;br /&gt;
FILE/A, SIZE/N/A, DATA/N, STRING, ADD/S&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
FILE   - Filename to write data to&lt;br /&gt;
SIZE   - Amount of data in bytes to be written&lt;br /&gt;
DATA   - Data to be written in hex&lt;br /&gt;
STRING - Data in the string format&lt;br /&gt;
ADD    - Adds data to an existing file instead of creating a new file&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
If the length of data is shorter than the size value, the file is filled by repeating the data contents. Strings get separated by null bytes then. Data entered in decimals gets converted to hex. If no data is given, the file is filled with null bytes.&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
Ram Disk:&amp;gt; FileWrite test 8 0x4d4f5321&lt;br /&gt;
Ram Disk:&amp;gt; Type test HEX&lt;br /&gt;
0000: 4D4F5321 4D4F5321                   MOS!MOS!&lt;br /&gt;
&lt;br /&gt;
Ram Disk:&amp;gt; FileWrite test 32 STRING MorphOS&lt;br /&gt;
Ram Disk:&amp;gt; Type test HEX&lt;br /&gt;
0000: 4D6F7270 684F5300 4D6F7270 684F5300 MorphOS.MorphOS.&lt;br /&gt;
0010: 4D6F7270 684F5300 4D6F7270 684F5300 MorphOS.MorphOS.&lt;br /&gt;
&lt;br /&gt;
Ram Disk:&amp;gt; FileWrite test 4 STRING MorphOS&lt;br /&gt;
Ram Disk:&amp;gt; Type test HEX&lt;br /&gt;
0000: 4D6F7270                            Morp&lt;br /&gt;
&lt;br /&gt;
Ram Disk:&amp;gt; FileWrite test 4 STRING MorphOS ADD&lt;br /&gt;
Ram Disk:&amp;gt; Type test HEX&lt;br /&gt;
0000: 4D6F7270 4D6F7270                   MorpMorp&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To create an empty ADF image (which can then be mounted with [[Tools/FileImageCtrl]] and formatted with [[Tools/Format]] under MorphOS, or just be used in an Amiga emulator):&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
Ram Disk:&amp;gt; FileWrite empty.adf 901120&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And similarly, creating an empty HDF image (100 megabytes in this case):&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
Ram Disk: FileWrite harddisk.hdf `eval 100*1024*1024`&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;/div&gt;</summary>
		<author><name>JPV</name></author>	</entry>

	<entry>
		<id>https://library.morph.zone/index.php?title=Print_System&amp;diff=4339</id>
		<title>Print System</title>
		<link rel="alternate" type="text/html" href="https://library.morph.zone/index.php?title=Print_System&amp;diff=4339"/>
				<updated>2024-05-24T06:50:25Z</updated>
		
		<summary type="html">&lt;p&gt;JPV: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;New printer system has been introduced in MorphOS 3.10 and extended in MorphOS 3.12. &lt;br /&gt;
It is based on CUPS logic although it does not contain any CUPS code in its core. &lt;br /&gt;
Drivers are represented using PPD  [https://en.wikipedia.org/wiki/PostScript_Printer_Description (PostScript Printer Description)] files, which support both Postscript and non-Postscript printers. Previously Postscript printers could be used in MorphOS directly sending raw Postscript stream to the printer. It doesn't allow to set any settings and only Pagestream has decent settings for that. &lt;br /&gt;
&lt;br /&gt;
== Drivers == &lt;br /&gt;
&lt;br /&gt;
New preferences has been created to handle drivers and profiles. Driver is a binary form of PPD textual file.  Profile is a driver which includes settings set by the user. &lt;br /&gt;
[[File:Printers1.png|frameless|center|700px]]&lt;br /&gt;
&lt;br /&gt;
To have printer connected one has to provide PPD driver. Some of printers including EPSON ESC/PR and Samsung CLPs can be automatically found and driver will be added using '''Search driver''' button. If not please use '''Add...''' button to select PPD file. PPD files for Postscript printers will be added and they are ready to work. PPD files for other printers (PCL/SPL/ESCPR) contain reference to filter file (actual driver which translates data to printer binary format). If PPD file with filter not available in MorphOS is provided user will be asked what to do.&lt;br /&gt;
[[File:Printers2.png|frameless|center|700px]]&lt;br /&gt;
&lt;br /&gt;
== Profiles == &lt;br /&gt;
&lt;br /&gt;
After adding the driver profile needs to be created. Please select Add... button. A window with driver selection will appear. User can create many profiles for one driver: one for color printing, one for b/w, etc.&lt;br /&gt;
[[File:Printers3.png|frameless|center|700px]]&lt;br /&gt;
After creating the profile you can make it as default and set the output path. Both file and device output is supported. So for printing to file you can set RAM:output_print. For network printing please use NETPAR: and for usb printers please use USBPAR:. A corresponding mountlist (USBPAR or NETPAR) needs to be copied from Storage/DosDrivers to the DEVS:DosDrivers, or add ''mount USBPAR:'' or ''mount NETPAR:'' somewhere in the S:user-startup file.&lt;br /&gt;
&lt;br /&gt;
[[File:Printers4.png|frameless|center|700px]]&lt;br /&gt;
&lt;br /&gt;
Under '''Options''' button printer options can be set for the profile. Each printer driver has own set of options. &lt;br /&gt;
[[File:Printers5.png|frameless|center|700px]]&lt;br /&gt;
&lt;br /&gt;
== Current Applications ==&lt;br /&gt;
&lt;br /&gt;
The main application which makes use of the new printing system is VPDF - PDF files viewer from Application directory. When selecting Postscript option in Print window, a Profile selector is available where you can select between profiles defined earlier in Printers preferences. You can also use (To file) to get raw Postscript output.&lt;br /&gt;
[[File:Printers7.png|frameless|center|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Printer.device support ==&lt;br /&gt;
printer.device/TurboPrint like printing from old applications is not yet supported, although VPDF prints using TurboPrint when Postscript option is not active. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Printer-handler usage ==&lt;br /&gt;
&lt;br /&gt;
To get printing supported in any application (with Postscript support) please use &lt;br /&gt;
PRINTER: device for storing Postscript output. printer-handler which control the PRINTER: device has such options:&lt;br /&gt;
* PROFILE/K  - name of the profile, get default profile from Printers preferences when not set&lt;br /&gt;
* ARGS/K - CUPS compatible option set&lt;br /&gt;
* FORMAT/K - defaults to PS for now&lt;br /&gt;
* COPIES/N - how many copies should be printed&lt;br /&gt;
&lt;br /&gt;
When PRINTER: device is used it preformats raw Postscript output from application adding additional parameters set in Printers preferences and for example make multipage per sheet printing which is not available in raw printing. For non-Postscript printers internal Ghostscript 8.70 processing is done. This can take some seconds so Postscript printers are preffered.&lt;br /&gt;
&lt;br /&gt;
Shell Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;copy FROM RAM:example.ps TO &amp;quot;PRINTER:profile='HP Color 6' ARGS=' ' COPIES=1 FORMAT=PS&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== My printer does not work ==&lt;br /&gt;
* Check connection (USB) in Poseidon or Netprinter (Network)   &lt;br /&gt;
* Check if your Postscript printer has correct PPD file provided. In most cases Postscript printers has also additional PPD drivers which use various filters (for example Postscript printer with PCL5 support may have also PPD file with PCL5 filter). PPD files just for Postscript printing are preffered.&lt;br /&gt;
* Check free memory. Printing uses Ghostscript sometimes for converting the data and stores some temportary files in T: device. It may not work in low memory situations. You may use PRINTER_TEMPDIR environment variable to set the dir for storing temporary files although setting it to the disk will slow down printing process.&lt;br /&gt;
* Printer is not supported by the current drivers.&lt;/div&gt;</summary>
		<author><name>JPV</name></author>	</entry>

	<entry>
		<id>https://library.morph.zone/index.php?title=Hardware_Compatibility&amp;diff=4338</id>
		<title>Hardware Compatibility</title>
		<link rel="alternate" type="text/html" href="https://library.morph.zone/index.php?title=Hardware_Compatibility&amp;diff=4338"/>
				<updated>2024-05-13T14:33:20Z</updated>
		
		<summary type="html">&lt;p&gt;JPV: /* Printers */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div id=&amp;quot;hardwareCompatibility&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Official Information ==&lt;br /&gt;
An official list of supported hardware is available at the [http://www.morphos-team.net/hardware MorphOS homepage] and a list of complete computer setups based on the official information is available [[Supported_Computers|here]].&lt;br /&gt;
&lt;br /&gt;
== User Provided Reports ==&lt;br /&gt;
This is a list of hardware compatibility reported by users. It isn't, by any means, a complete list of hardware compatibility, but just individual findings by users that may contain user errors or obsolete information. Please report your findings in [https://morph.zone/modules/newbb_plus/viewtopic.php?topic_id=12445&amp;amp;forum=11 this thread] at MorphZone, or request an account to the MorphOS Library so you can edit the list yourself.&lt;br /&gt;
&lt;br /&gt;
'''Note''': This list will only be as complete and comprehensive if you, a MorphOS user, report the hardware you have used in conjunction with MorphOS successfully, or unsuccessfully, for it to be included for others to gain the benefit from, and if necessary, possible and/or realistic, for further testing to be undertaken to establish if the hardware can be made functional for all users to enjoy with MorphOS. &lt;br /&gt;
&lt;br /&gt;
This is as much '''your''' list, as it is also part of '''your''' Official MorphOS Library. Where possible the lists will be maintained in alphabetical order (A-Z), but if you find any errors please [https://morph.zone/modules/newbb_plus/viewtopic.php?topic_id=12445&amp;amp;forum=11 let us know] so correction(s) can be made.&lt;br /&gt;
&lt;br /&gt;
=== Game Controllers ===&lt;br /&gt;
&amp;lt;table style=&amp;quot;width:100%&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th class=&amp;quot;type&amp;quot;&amp;gt;USB Device&amp;lt;/th&amp;gt;&amp;lt;th class=&amp;quot;driver&amp;quot;&amp;gt;USB driver&amp;lt;/th&amp;gt;&amp;lt;th class=&amp;quot;os&amp;quot;&amp;gt;OS&amp;lt;/th&amp;gt;&amp;lt;th class=&amp;quot;comments&amp;quot;&amp;gt;Comments&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;8bitdo SFC30 Pro Controller&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;hid&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.11&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;8bitdo SN30 Pro Controller&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;hid, xbox360&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.11&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;wired&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[https://www.morphos-store.com/product_info.php?products_id=34 BIMONK Wired Gaming Controller]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;hid&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.15&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[https://www.morphos-store.com/product_info.php?products_id=70 BIMONK Wireless Gaming Controller]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;hid&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.15&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Logitech Rumble Pad wired (USB2)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;hid&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.11&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[https://www.morphos-store.com/product_info.php?products_id=85 Mcbazel Dobe Mini Arcade Stick]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;hid&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.15&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[https://www.onyxsoft.se/joydivision.html OnyxSoft JoyDivision] DB9-USB adapter&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;hid&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.13&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Connect an Atari style joystick to USB&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[https://www.retronicdesign.com/en/ Retronic Design] DB9-USB adapter&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;hid&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.13&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Connect an Atari style joystick to USB&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Saitek P380 Dual Analog wired (USB2)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;hid&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.11&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;color:red;&amp;quot;&amp;gt;Sony Dualshock 3 (PS3)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;not supported&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Sony Dualshock 4 (PS4)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;xbox360&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.10&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Speedlink Competition Pro USB&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;hid&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.11&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Speedlink Xeox Gamepad&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;hid&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.11&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[https://tgsjoystick.wordpress.com/ The Greek Stick] (T.G.S.)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;hid&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.15&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Thrustmaster 360 Modena Pro Racing Wheel&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;hid&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.11&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;needs some setup for the ranges from the Poseidon prefs&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Xbox 360 wired and wireless pads&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;xbox360&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.11&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;wireless supported via PC adapter&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Xbox One gamepad&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;xbox360&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.11&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;wired only&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[https://www.marvo-tech.com/products/gt-016-wired-gaming-controller Marvo Scorpion GT-016 Joypad]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;hid&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.18&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;wired,Dual-Analog, USB2 (PC,Android &amp;amp; PS3)&amp;lt;td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Keyboards ===&lt;br /&gt;
&amp;lt;table style=&amp;quot;width:100%;&amp;quot;&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;Model&amp;lt;/th&amp;gt;&amp;lt;th class=&amp;quot;os&amp;quot;&amp;gt;OS&amp;lt;/th&amp;gt;&amp;lt;th class=&amp;quot;comments&amp;quot;&amp;gt;Comments&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Apple A1016 Wireless BlueTooth&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.10&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;①&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Apple Magic Keyboard (Version 1)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.13&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;①&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Cooler Master MS210/MK110&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.13&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;No software needed for full RGB control and Fn multimedia keys do work out of the box&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Ducky Zero Keyboard DK2108SZ&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.10&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;IBM SK-8815 Corded USB Keyboard&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.15&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Logitech UltraX Premium&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.10&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Microsoft Wired Keyboard 600&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.13&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Model X880609-600&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Microsoft Wireless 900 Keyboard&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.13&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Mouse+kb combo&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Rapoo E6300 Ultra-Slim BT keyboard for iPad&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.11&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;①&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Rapoo E9050 Wireless Compact Ultra-Slim Keyboard&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.11&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Rapoo E2710 Wireless Nano-USB Keyboard&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.11&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Xenta Super Compact Black Wired Keyboard (RK 107)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.13&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
① requires a machine which supports paired BT input devices, like Mac mini&lt;br /&gt;
&lt;br /&gt;
=== Mice ===&lt;br /&gt;
&amp;lt;table&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;Model&amp;lt;/th&amp;gt;&amp;lt;th class=&amp;quot;os&amp;quot;&amp;gt;OS&amp;lt;/th&amp;gt;&amp;lt;th class=&amp;quot;comments&amp;quot;&amp;gt;Comments&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;A-Eon Technology MX-1000-1&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.13&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Dacota Gaming Serpent Mouse&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.15&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Wired, 809024&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[https://www.logitech.com/en-us/products/mice/m100-usb-mouse.910-001601.html Logitech M100 Optical Corded Mouse]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.15&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Logitech M180&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.11&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Logitech M185&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.10&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Logitech M190&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.15&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Logitech M220 Silent&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.15&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Logitech M330 Silent&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.14&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Logitech T-RB22 Wireless Trackball&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.11&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Logitech G203&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.10&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;No software control over RGB, DPI&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Labtec Optical Mouse 800&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.10&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Microsoft Compact Optical Mouse 500&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.14&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Microsoft Trackball Explorer v1.0&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.11&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;PS2&amp;gt;USB adapter required&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Microsoft Wireless Mouse 900&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.14&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Mouse+kb combo&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;color:red;&amp;quot;&amp;gt;Microsoft Wireless Mouse 4000&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.13&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Not working&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Razer Viper Mini&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.15&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;No software control over RGB, DPI&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Sharkoon Skiller SGM2&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.13&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;No software needed for RGB and DPI settings, side buttons don't work&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Targus AMU3102EU&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.10&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[https://www.morphos-store.com/product_info.php?products_id=82 TENMOS K6 Wireless Gaming Mouse]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.15&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== MIDI Devices ===&lt;br /&gt;
&amp;lt;table&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;Device&amp;lt;/th&amp;gt;&amp;lt;th class=&amp;quot;os&amp;quot;&amp;gt;OS&amp;lt;/th&amp;gt;&amp;lt;th class=&amp;quot;comments&amp;quot;&amp;gt;Comments&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[https://www.alesis.com/products/legacy/vi25 Alesis VI25] keyboard&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.13&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[https://www.korg.com/us/products/computergear/nanokey2/ Korg nanoKEY2] keyboard&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.13&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Yamaha PSR-433 keyboard&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.14&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Networking ===&lt;br /&gt;
&amp;lt;table&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;Device&amp;lt;/th&amp;gt;&amp;lt;th class=&amp;quot;os&amp;quot;&amp;gt;OS&amp;lt;/th&amp;gt;&amp;lt;th class=&amp;quot;comments&amp;quot;&amp;gt;Comments&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;TL-WR702N Nano Router&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;TL-WR802N Nano Router&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Printers ===&lt;br /&gt;
&amp;lt;table&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;Model&amp;lt;/th&amp;gt;&amp;lt;th class=&amp;quot;os&amp;quot;&amp;gt;OS&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;TurboPrint (Printer) driver&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;PostScript (Printers) driver&amp;lt;/th&amp;gt;&amp;lt;th class=&amp;quot;comments&amp;quot;&amp;gt;Comments&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;HP 2500 Color LaserJet&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.11&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;[http://www.artica.fr/download/ppd/hp-en-hp2500_6.ppd.gz HP2500_6.PPD]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;[http://www.artica.fr/download/ppd/hp-de-hp2500_6.ppd.gz DE],  [http://www.artica.fr/download/ppd/hp-es-hp2500c2.ppd.gz ES],  [http://www.artica.fr/download/ppd/hp-fr-hp2500_6.ppd.gz FR],  [http://www.artica.fr/download/ppd/hp-it-hp2500_6.ppd.gz IT]&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Konica Minolta Magicolor 4650&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.11&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;M4650PX.ppd&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Lexmark E342n&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.11&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;HP_LaserJet5series&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;[http://support.lexmark.com/index?productCode=LEXMARK_E340&amp;amp;segment=SUPPORTproductCode%3D&amp;amp;viewlocale=pt_BR&amp;amp;page=content&amp;amp;searchid=1378996742336&amp;amp;actp=search&amp;amp;id=DR13234&amp;amp;locale=EN&amp;amp;userlocale=EN_US Lexmark_E342n_en.PPD]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Xerox 3225 Workcentre&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.11&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Reported to work with PS&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;HP Color LaserJet MFP M274n&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.15&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;hp-color_laserjet_mfp_m274-ps.ppd&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Xerox B230&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.18&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;HP_LaserJet5series&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;[https://www.support.xerox.com/en-mu/product/xerox-b230-printer/content/152267 PPD at support page]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;B225 &amp;amp; B235 should work too, maybe also C230 &amp;amp; C235&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Scanners ===&lt;br /&gt;
&amp;lt;table&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;Model&amp;lt;/th&amp;gt;&amp;lt;th class=&amp;quot;os&amp;quot;&amp;gt;OS&amp;lt;/th&amp;gt;&amp;lt;th class=&amp;quot;comments&amp;quot;&amp;gt;Comments&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Epson Perfection 1640SU&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.11&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Including recent support for its ADF (Automatic Document Feeder).&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Storage ===&lt;br /&gt;
&amp;lt;table&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;Device&amp;lt;/th&amp;gt;&amp;lt;th class=&amp;quot;os&amp;quot;&amp;gt;OS&amp;lt;/th&amp;gt;&amp;lt;th class=&amp;quot;comments&amp;quot;&amp;gt;Comments&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[https://www.amazon.co.uk/Hama-00055348-35in1-Multi-Reader/dp/B000IH1W20?th=1 HAMA USB 2.0 Card Reader 35 in 1]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== USB Audio Devices ===&lt;br /&gt;
&amp;lt;table&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;Device&amp;lt;/th&amp;gt;&amp;lt;th class=&amp;quot;os&amp;quot;&amp;gt;OS&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Output&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Input&amp;lt;/th&amp;gt;&amp;lt;th class=&amp;quot;comments&amp;quot;&amp;gt;Comments&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;quot;[http://www.dx.com/p/virtual-5-1-surround-usb-2-0-external-sound-card-22475 3D Sound]&amp;quot; USB sound card&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.10&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;OK&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;No&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[https://www.aliexpress.com/item/Vikings-City-Bluetooth-Adapter-APT-X-Low-Latency-Driver-Free-Plug-n-Play-BT-4-1/32828525027.html ANTTUS Gaming USB Bluetooth Adapter]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.11&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;OK&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Untested&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[https://www.amazon.ca/Avantree-Bluetooth-Driver-Free-Wireless-Transmitter/dp/B01G3J1I5M Avantree Leaf BT 4.1 adapter]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.11&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;OK&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Untested&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;C-Media soundcard&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.11&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;OK&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Untested&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Distorted output&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Corsair Void Elite Surround adapter/headset&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.14&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;OK&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;No&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Headset with 3.5mm jack and a USB adapter. Analog volume control.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Corsair Void RGB Elite headset&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.14&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;OK&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;No&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Volume control binds to the HID class. Hint: can be used with [http://aminet.net/package/mus/play/MultiMeedio this].&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;FX-Audio- DAC-X3&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.12&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;OK&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;N/A&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Griffin iMic&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.11&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;OK&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Untested&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Distorted output&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[https://www.inline-info.com/de/produkte/eingabe-ausgabe/kopfhoerer-verstaerker/9909/inline-ampusb-hi-res-audio-hifi-dsd-kopfhoerer-verstaerker-usb-digital-audio-konverter-384khz/32-bit InLine AmpUSB Headphone Amplifier]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.14&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;OK&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;N/A&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Logitech H540 headset&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.14&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;OK&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;No&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Volume control binds to the HID class. Hint: can be used with [http://aminet.net/package/mus/play/MultiMeedio this].&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Sony PlayStation Gold 7.1 headset&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.13&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;OK&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Untested&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Works in stereo.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[https://de.creative.com/p/sound-cards/sound-blaster-digital-music-premium-hd Sound Blaster X-Fi]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.11&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;OK&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Untested&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Only front output tested&amp;lt;/tD&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Steelseries Arctis 7 headset&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.13&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;OK&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;No&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[https://www.terratec.de/details.php?artnr=195448 TerraTec 195448 Aureon Dual USB]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.11&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;OK&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Untested&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Turtle Beach Stealth 520 headset&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.13&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;OK&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;No&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>JPV</name></author>	</entry>

	<entry>
		<id>https://library.morph.zone/index.php?title=Hardware_Compatibility&amp;diff=4337</id>
		<title>Hardware Compatibility</title>
		<link rel="alternate" type="text/html" href="https://library.morph.zone/index.php?title=Hardware_Compatibility&amp;diff=4337"/>
				<updated>2024-05-13T14:31:54Z</updated>
		
		<summary type="html">&lt;p&gt;JPV: /* Printers */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div id=&amp;quot;hardwareCompatibility&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Official Information ==&lt;br /&gt;
An official list of supported hardware is available at the [http://www.morphos-team.net/hardware MorphOS homepage] and a list of complete computer setups based on the official information is available [[Supported_Computers|here]].&lt;br /&gt;
&lt;br /&gt;
== User Provided Reports ==&lt;br /&gt;
This is a list of hardware compatibility reported by users. It isn't, by any means, a complete list of hardware compatibility, but just individual findings by users that may contain user errors or obsolete information. Please report your findings in [https://morph.zone/modules/newbb_plus/viewtopic.php?topic_id=12445&amp;amp;forum=11 this thread] at MorphZone, or request an account to the MorphOS Library so you can edit the list yourself.&lt;br /&gt;
&lt;br /&gt;
'''Note''': This list will only be as complete and comprehensive if you, a MorphOS user, report the hardware you have used in conjunction with MorphOS successfully, or unsuccessfully, for it to be included for others to gain the benefit from, and if necessary, possible and/or realistic, for further testing to be undertaken to establish if the hardware can be made functional for all users to enjoy with MorphOS. &lt;br /&gt;
&lt;br /&gt;
This is as much '''your''' list, as it is also part of '''your''' Official MorphOS Library. Where possible the lists will be maintained in alphabetical order (A-Z), but if you find any errors please [https://morph.zone/modules/newbb_plus/viewtopic.php?topic_id=12445&amp;amp;forum=11 let us know] so correction(s) can be made.&lt;br /&gt;
&lt;br /&gt;
=== Game Controllers ===&lt;br /&gt;
&amp;lt;table style=&amp;quot;width:100%&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th class=&amp;quot;type&amp;quot;&amp;gt;USB Device&amp;lt;/th&amp;gt;&amp;lt;th class=&amp;quot;driver&amp;quot;&amp;gt;USB driver&amp;lt;/th&amp;gt;&amp;lt;th class=&amp;quot;os&amp;quot;&amp;gt;OS&amp;lt;/th&amp;gt;&amp;lt;th class=&amp;quot;comments&amp;quot;&amp;gt;Comments&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;8bitdo SFC30 Pro Controller&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;hid&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.11&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;8bitdo SN30 Pro Controller&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;hid, xbox360&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.11&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;wired&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[https://www.morphos-store.com/product_info.php?products_id=34 BIMONK Wired Gaming Controller]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;hid&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.15&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[https://www.morphos-store.com/product_info.php?products_id=70 BIMONK Wireless Gaming Controller]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;hid&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.15&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Logitech Rumble Pad wired (USB2)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;hid&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.11&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[https://www.morphos-store.com/product_info.php?products_id=85 Mcbazel Dobe Mini Arcade Stick]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;hid&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.15&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[https://www.onyxsoft.se/joydivision.html OnyxSoft JoyDivision] DB9-USB adapter&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;hid&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.13&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Connect an Atari style joystick to USB&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[https://www.retronicdesign.com/en/ Retronic Design] DB9-USB adapter&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;hid&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.13&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Connect an Atari style joystick to USB&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Saitek P380 Dual Analog wired (USB2)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;hid&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.11&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;color:red;&amp;quot;&amp;gt;Sony Dualshock 3 (PS3)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;not supported&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Sony Dualshock 4 (PS4)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;xbox360&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.10&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Speedlink Competition Pro USB&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;hid&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.11&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Speedlink Xeox Gamepad&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;hid&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.11&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[https://tgsjoystick.wordpress.com/ The Greek Stick] (T.G.S.)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;hid&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.15&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Thrustmaster 360 Modena Pro Racing Wheel&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;hid&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.11&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;needs some setup for the ranges from the Poseidon prefs&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Xbox 360 wired and wireless pads&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;xbox360&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.11&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;wireless supported via PC adapter&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Xbox One gamepad&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;xbox360&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.11&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;wired only&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[https://www.marvo-tech.com/products/gt-016-wired-gaming-controller Marvo Scorpion GT-016 Joypad]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;hid&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.18&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;wired,Dual-Analog, USB2 (PC,Android &amp;amp; PS3)&amp;lt;td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Keyboards ===&lt;br /&gt;
&amp;lt;table style=&amp;quot;width:100%;&amp;quot;&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;Model&amp;lt;/th&amp;gt;&amp;lt;th class=&amp;quot;os&amp;quot;&amp;gt;OS&amp;lt;/th&amp;gt;&amp;lt;th class=&amp;quot;comments&amp;quot;&amp;gt;Comments&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Apple A1016 Wireless BlueTooth&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.10&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;①&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Apple Magic Keyboard (Version 1)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.13&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;①&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Cooler Master MS210/MK110&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.13&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;No software needed for full RGB control and Fn multimedia keys do work out of the box&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Ducky Zero Keyboard DK2108SZ&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.10&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;IBM SK-8815 Corded USB Keyboard&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.15&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Logitech UltraX Premium&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.10&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Microsoft Wired Keyboard 600&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.13&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Model X880609-600&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Microsoft Wireless 900 Keyboard&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.13&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Mouse+kb combo&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Rapoo E6300 Ultra-Slim BT keyboard for iPad&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.11&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;①&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Rapoo E9050 Wireless Compact Ultra-Slim Keyboard&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.11&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Rapoo E2710 Wireless Nano-USB Keyboard&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.11&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Xenta Super Compact Black Wired Keyboard (RK 107)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.13&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
① requires a machine which supports paired BT input devices, like Mac mini&lt;br /&gt;
&lt;br /&gt;
=== Mice ===&lt;br /&gt;
&amp;lt;table&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;Model&amp;lt;/th&amp;gt;&amp;lt;th class=&amp;quot;os&amp;quot;&amp;gt;OS&amp;lt;/th&amp;gt;&amp;lt;th class=&amp;quot;comments&amp;quot;&amp;gt;Comments&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;A-Eon Technology MX-1000-1&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.13&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Dacota Gaming Serpent Mouse&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.15&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Wired, 809024&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[https://www.logitech.com/en-us/products/mice/m100-usb-mouse.910-001601.html Logitech M100 Optical Corded Mouse]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.15&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Logitech M180&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.11&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Logitech M185&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.10&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Logitech M190&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.15&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Logitech M220 Silent&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.15&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Logitech M330 Silent&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.14&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Logitech T-RB22 Wireless Trackball&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.11&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Logitech G203&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.10&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;No software control over RGB, DPI&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Labtec Optical Mouse 800&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.10&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Microsoft Compact Optical Mouse 500&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.14&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Microsoft Trackball Explorer v1.0&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.11&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;PS2&amp;gt;USB adapter required&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Microsoft Wireless Mouse 900&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.14&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Mouse+kb combo&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;color:red;&amp;quot;&amp;gt;Microsoft Wireless Mouse 4000&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.13&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Not working&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Razer Viper Mini&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.15&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;No software control over RGB, DPI&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Sharkoon Skiller SGM2&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.13&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;No software needed for RGB and DPI settings, side buttons don't work&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Targus AMU3102EU&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.10&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[https://www.morphos-store.com/product_info.php?products_id=82 TENMOS K6 Wireless Gaming Mouse]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.15&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== MIDI Devices ===&lt;br /&gt;
&amp;lt;table&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;Device&amp;lt;/th&amp;gt;&amp;lt;th class=&amp;quot;os&amp;quot;&amp;gt;OS&amp;lt;/th&amp;gt;&amp;lt;th class=&amp;quot;comments&amp;quot;&amp;gt;Comments&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[https://www.alesis.com/products/legacy/vi25 Alesis VI25] keyboard&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.13&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[https://www.korg.com/us/products/computergear/nanokey2/ Korg nanoKEY2] keyboard&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.13&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Yamaha PSR-433 keyboard&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.14&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Networking ===&lt;br /&gt;
&amp;lt;table&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;Device&amp;lt;/th&amp;gt;&amp;lt;th class=&amp;quot;os&amp;quot;&amp;gt;OS&amp;lt;/th&amp;gt;&amp;lt;th class=&amp;quot;comments&amp;quot;&amp;gt;Comments&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;TL-WR702N Nano Router&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;TL-WR802N Nano Router&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Printers ===&lt;br /&gt;
&amp;lt;table&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;Model&amp;lt;/th&amp;gt;&amp;lt;th class=&amp;quot;os&amp;quot;&amp;gt;OS&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;TurboPrint (Printer) driver&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;PostScript (Printers) driver&amp;lt;/th&amp;gt;&amp;lt;th class=&amp;quot;comments&amp;quot;&amp;gt;Comments&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;HP 2500 Color LaserJet&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.11&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;[http://www.artica.fr/download/ppd/hp-en-hp2500_6.ppd.gz HP2500_6.PPD]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;[http://www.artica.fr/download/ppd/hp-de-hp2500_6.ppd.gz DE],  [http://www.artica.fr/download/ppd/hp-es-hp2500c2.ppd.gz ES],  [http://www.artica.fr/download/ppd/hp-fr-hp2500_6.ppd.gz FR],  [http://www.artica.fr/download/ppd/hp-it-hp2500_6.ppd.gz IT]&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Konica Minolta Magicolor 4650&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.11&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;M4650PX.ppd&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Lexmark E342n&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.11&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;HP_LaserJet5series&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;[http://support.lexmark.com/index?productCode=LEXMARK_E340&amp;amp;segment=SUPPORTproductCode%3D&amp;amp;viewlocale=pt_BR&amp;amp;page=content&amp;amp;searchid=1378996742336&amp;amp;actp=search&amp;amp;id=DR13234&amp;amp;locale=EN&amp;amp;userlocale=EN_US Lexmark_E342n_en.PPD]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Xerox 3225 Workcentre&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.11&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Reported to work with PS&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;HP Color LaserJet MFP M274n&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.15&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;hp-color_laserjet_mfp_m274-ps.ppd&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Xerox B230&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.18&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;HP_LaserJet5series&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;[https://www.support.xerox.com/en-mu/product/xerox-b230-printer/content/152267 Xerox_B225_B230_B235_5.810.0.0_PPD.zip]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;B225 &amp;amp; B235 should work too, maybe also C230 &amp;amp; C235&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Scanners ===&lt;br /&gt;
&amp;lt;table&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;Model&amp;lt;/th&amp;gt;&amp;lt;th class=&amp;quot;os&amp;quot;&amp;gt;OS&amp;lt;/th&amp;gt;&amp;lt;th class=&amp;quot;comments&amp;quot;&amp;gt;Comments&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Epson Perfection 1640SU&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.11&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Including recent support for its ADF (Automatic Document Feeder).&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Storage ===&lt;br /&gt;
&amp;lt;table&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;Device&amp;lt;/th&amp;gt;&amp;lt;th class=&amp;quot;os&amp;quot;&amp;gt;OS&amp;lt;/th&amp;gt;&amp;lt;th class=&amp;quot;comments&amp;quot;&amp;gt;Comments&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[https://www.amazon.co.uk/Hama-00055348-35in1-Multi-Reader/dp/B000IH1W20?th=1 HAMA USB 2.0 Card Reader 35 in 1]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== USB Audio Devices ===&lt;br /&gt;
&amp;lt;table&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;Device&amp;lt;/th&amp;gt;&amp;lt;th class=&amp;quot;os&amp;quot;&amp;gt;OS&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Output&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Input&amp;lt;/th&amp;gt;&amp;lt;th class=&amp;quot;comments&amp;quot;&amp;gt;Comments&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;quot;[http://www.dx.com/p/virtual-5-1-surround-usb-2-0-external-sound-card-22475 3D Sound]&amp;quot; USB sound card&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.10&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;OK&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;No&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[https://www.aliexpress.com/item/Vikings-City-Bluetooth-Adapter-APT-X-Low-Latency-Driver-Free-Plug-n-Play-BT-4-1/32828525027.html ANTTUS Gaming USB Bluetooth Adapter]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.11&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;OK&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Untested&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[https://www.amazon.ca/Avantree-Bluetooth-Driver-Free-Wireless-Transmitter/dp/B01G3J1I5M Avantree Leaf BT 4.1 adapter]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.11&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;OK&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Untested&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;C-Media soundcard&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.11&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;OK&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Untested&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Distorted output&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Corsair Void Elite Surround adapter/headset&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.14&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;OK&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;No&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Headset with 3.5mm jack and a USB adapter. Analog volume control.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Corsair Void RGB Elite headset&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.14&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;OK&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;No&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Volume control binds to the HID class. Hint: can be used with [http://aminet.net/package/mus/play/MultiMeedio this].&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;FX-Audio- DAC-X3&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.12&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;OK&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;N/A&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Griffin iMic&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.11&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;OK&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Untested&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Distorted output&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[https://www.inline-info.com/de/produkte/eingabe-ausgabe/kopfhoerer-verstaerker/9909/inline-ampusb-hi-res-audio-hifi-dsd-kopfhoerer-verstaerker-usb-digital-audio-konverter-384khz/32-bit InLine AmpUSB Headphone Amplifier]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.14&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;OK&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;N/A&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Logitech H540 headset&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.14&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;OK&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;No&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Volume control binds to the HID class. Hint: can be used with [http://aminet.net/package/mus/play/MultiMeedio this].&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Sony PlayStation Gold 7.1 headset&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.13&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;OK&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Untested&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Works in stereo.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[https://de.creative.com/p/sound-cards/sound-blaster-digital-music-premium-hd Sound Blaster X-Fi]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.11&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;OK&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Untested&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Only front output tested&amp;lt;/tD&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Steelseries Arctis 7 headset&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.13&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;OK&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;No&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[https://www.terratec.de/details.php?artnr=195448 TerraTec 195448 Aureon Dual USB]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.11&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;OK&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Untested&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Turtle Beach Stealth 520 headset&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3.13&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;OK&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;No&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>JPV</name></author>	</entry>

	<entry>
		<id>https://library.morph.zone/index.php?title=Applications/ShowCase&amp;diff=4330</id>
		<title>Applications/ShowCase</title>
		<link rel="alternate" type="text/html" href="https://library.morph.zone/index.php?title=Applications/ShowCase&amp;diff=4330"/>
				<updated>2024-02-08T11:00:03Z</updated>
		
		<summary type="html">&lt;p&gt;JPV: /* Description */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Description ==&lt;br /&gt;
&lt;br /&gt;
Powerful image viewer incorporating processing, editing and conversion tools. Support for a wide range of image file formats (via datatypes). &lt;br /&gt;
 &lt;br /&gt;
*Easy browsing of directories (with mouse and keyboard)&lt;br /&gt;
*Lots of supported file formats thanks to Datatypes system&lt;br /&gt;
*Nice Magic User Interface GUI&lt;br /&gt;
*Image processing options like resizing, color balance, smoothing, sharpening, cropping, glowing, noise reduction etc.&lt;br /&gt;
*Saving of images in JPEG (with preview), PNG, TGA, TIFF  or IFF&lt;br /&gt;
*Loading/displaying images with alpha channel&lt;br /&gt;
*Scaling image display to fit in the window (user controllable)&lt;br /&gt;
*Scrolling/zooming of big images&lt;br /&gt;
*Optional bilinear filtering of the displayed image&lt;br /&gt;
*Drag&amp;amp;drop of files/directories to be displayed&lt;br /&gt;
*DOS notifications support (refreshing  of list  of files  when new files are copied in/ removed)&lt;br /&gt;
*Thumbnails generator (with templates)&lt;br /&gt;
*Lossless JPEG transformations (for photos from digital camera from example)&lt;br /&gt;
*Automatic rotation of images taken from digital cameras (if camera provides needed informations).&lt;br /&gt;
*2 directory browsing methods. Using &amp;quot;simple&amp;quot; list or list of thumbnails (miniature of image)&lt;br /&gt;
*Thumbnails browser optimized for viewing pictures taken with digicam (very fast thumbnail creation)&lt;br /&gt;
*Opus Magellan-like quick search function&lt;br /&gt;
*Simple file management functions like copy, move, rename, delete&lt;br /&gt;
*Text inserting function&lt;br /&gt;
*Color picker&lt;br /&gt;
*ARexx interface&lt;br /&gt;
*3D View and slideshow for more eye candy&lt;br /&gt;
*Displaying of EXIF information stored in images.&lt;br /&gt;
*Image clipboard to ease file operations on images.&lt;br /&gt;
*Slideshow&lt;br /&gt;
*Batch processor&lt;br /&gt;
*Image cataloging&lt;br /&gt;
*Searching functionality&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Screenshots ==&lt;br /&gt;
: [[File:Review_jpv_Showgirls.png|640px]]&lt;br /&gt;
: [[File:ShowGirls_Menus1.png|320px]] [[File:ShowGirls_Menus2.png|320px]] [[File:ShowGirls_Menus3.png|320px]] [[File:ShowGirls_Menus4.png|320px]] [[File:ShowGirls_Menus5.png|320px]]&lt;/div&gt;</summary>
		<author><name>JPV</name></author>	</entry>

	<entry>
		<id>https://library.morph.zone/index.php?title=Tips_and_Tricks&amp;diff=4327</id>
		<title>Tips and Tricks</title>
		<link rel="alternate" type="text/html" href="https://library.morph.zone/index.php?title=Tips_and_Tricks&amp;diff=4327"/>
				<updated>2023-11-27T07:07:12Z</updated>
		
		<summary type="html">&lt;p&gt;JPV: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''Originally published at: http://jpv.wmhost.com/morphos/tips/''&lt;br /&gt;
&lt;br /&gt;
Miscellaneous tips and tricks for MorphOS use. Some may even be hackish and not officially encouraged by MorphOS Team. Everyone is welcome to make additions and corrections here.&lt;br /&gt;
== Basic Features ==&lt;br /&gt;
&lt;br /&gt;
=== Modifying the System Directory ===&lt;br /&gt;
: Tip #1: NEVER modify anything in the MOSSYS: (SYS:MorphOS/) path! All changes are lost in a system upgrade. If you need to add any 3rd party drivers or libraries, add them to SYS:. If there isn't a correct directory by default, make one.&lt;br /&gt;
&lt;br /&gt;
: There's only one exception (of course there is one) to this: you can rename MOSSYS:Libs/rexxsyslib.library to MOSSYS:Libs/rexxsyslib.library_disabled when you copy a 68k version of rexxsyslib.library to SYS:Libs/ in order to get the ARexx environment working.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Keyboard Commands ===&lt;br /&gt;
&lt;br /&gt;
: At first, check the default ones and define your favourites in '''System Settings -&amp;gt; IControl -&amp;gt; Hotkeys''' and in '''Ambient Settings -&amp;gt; Keyboard'''.&lt;br /&gt;
&lt;br /&gt;
: For example IControl has &amp;quot;Active Window: Activate Next&amp;quot; and &amp;quot;All Windows: Depth Menu&amp;quot; options, which can be used to achieve alt/ctrl/command-tab style window cycling functionality familiar from other operating systems.&lt;br /&gt;
&lt;br /&gt;
: Other keys: &lt;br /&gt;
:* To zoom Ambient icons in the icon mode: keep CTRL pressed and use the mouse wheel or just roll the wheel over the Viewmode button.&lt;br /&gt;
:* To find and select files in Ambient windows by letters: start typing a name when the window is active. Keep the Shift key pressed for directories. &lt;br /&gt;
:* To enter a path manually (for example for hidden dirs like .recycled): press the / key in an Ambient window and type in the path. &lt;br /&gt;
:* Command-f activates the find function in most programs. &lt;br /&gt;
:* The r key rotates the pictures in Ambient's internal viewer and Page Up/Down keys select previous and next images in a dir &lt;br /&gt;
:* Check keyboard commands of the Shell, like by default, commands can be completed with CTRL-tab, devices with ALT-tab, history with shift-tab etc. &lt;br /&gt;
:* Keeping the Alt key pressed while double clicking a drawer gives you different ways to open drawers.&lt;br /&gt;
:* Keeping the Alt key pressed while dragging files on the same partition copies files instead of moving, or vice versa depending on your Ambient settings.&lt;br /&gt;
&lt;br /&gt;
=== Enabling/Disabling Icon Tooltypes ===&lt;br /&gt;
&lt;br /&gt;
: Double click single tooltypes to enable and disable them in the icon information window.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Browsing History in Ambient ===&lt;br /&gt;
&lt;br /&gt;
: Clicking the parent button ([[File:Tips_Parent.png|middle]]) on an Ambient window (in browser mode) with the right mouse button gives you a browsing history popup menu for quick jumping between locations.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Sync the Clock from Internet at Boot ===&lt;br /&gt;
&lt;br /&gt;
: Add this line to S:user-network-startup file:&lt;br /&gt;
: &amp;lt;tt&amp;gt;Run DETACH MOSSYS:C/SetClockNTP SAVE&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Redirecting AHI Music Unit ===&lt;br /&gt;
&lt;br /&gt;
: You can select Unit 0 as the Music Unit in AHI to be able hear audio output from multiple programs at the same time, with a slight decrease in quality.&lt;br /&gt;
&lt;br /&gt;
: [[File:MorphOS_System_settings_Music_Unit.png|280px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Keeping AHI Audio Quality Better ===&lt;br /&gt;
&lt;br /&gt;
: Audio quality with AHI will be better if you reduce available channels for its shared modes (Unit 0 usually). Available channels will limit the amount of simultaneus playback of sounds, but you really don't need the default 32 channels and even two channels can be quite enough. Should there be more concurrent sounds, some of them just get muted until the other have been finished.&lt;br /&gt;
&lt;br /&gt;
: [[File:MorphOS_System_settings_Change_Unit.png|280px]] [[File:MorphOS_System_settings_Unit_0.png|280px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Mime Type Configuration ===&lt;br /&gt;
&lt;br /&gt;
: Learn to configure mime types from the Ambient settings. It really gives so much for your system and your user experience. [http://jpv.wmhost.com/pics/mimemplayer.png Here] is one example of how to configure MPlayer for all the video files.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Inline Editing ===&lt;br /&gt;
&lt;br /&gt;
: Inline editing is a quick way to edit filenames by clicking them with the mouse wheel or with the long left mouse click. Its behaviour can be configured from the Lister settings in Ambient Settings.&lt;br /&gt;
&lt;br /&gt;
: File comments can also be edited with the inline editing.&lt;br /&gt;
&lt;br /&gt;
: [[File:Tips_Inlineedit.png|280px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Batch Renaming in Ambient ===&lt;br /&gt;
&lt;br /&gt;
# Select files you want to be in the range of renaming.&lt;br /&gt;
# Hit rename button or command-r keyboard shortcut.&lt;br /&gt;
# Use pattern to rename. For example renaming all files which begin with &amp;quot;mod.&amp;quot; to files which end with &amp;quot;.mod&amp;quot;, use &amp;quot;mod.*&amp;quot; as source and &amp;quot;*.mod&amp;quot; as destination (quotation marks not needed).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Don't Forget RMB/Long-LMB Gadget Menus ===&lt;br /&gt;
&lt;br /&gt;
: You get menus from zoom and depth gadgets with right mouse button or by holding left mouse button pressed on them.&lt;br /&gt;
&lt;br /&gt;
: [[File:Tips_Zoommenu.png]] [[File:Tips_Windowdepthmenu.png]] [[File:Tips_Screendepthmenu.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== How to Use RMB with One-button Mouse ===&lt;br /&gt;
&lt;br /&gt;
: The right mouse button can be emulated in several different ways:&lt;br /&gt;
:* The '''System Settings -&amp;gt; Mouse -&amp;gt; Open menus by clicking...''' setting lets your mouse button act as the right mouse button if you hold a qualifier key pressed while clicking. The qualifier key can be configured for your preferences, but it's the shift key by default.&lt;br /&gt;
:* Press right alt and right command keys together. This probably doesn't work on systems with ADB keyboard, like on older Mac laptops. The ADB keyboard doesn't make difference between left and right keys.&lt;br /&gt;
:* With non-ADB laptops (PowerBook 5,6-5,9 and 6,7 (iBook)) you can also use two finger tap or two finger hold + button combination on the touchpad for RMB.&lt;br /&gt;
:* You can define a hotkey for menu launching on the IControl preferences (the default one is rcommand+space). It doesn't work exactly as the RMB everywhere, but works if you're mostly using the RMB for menus.&lt;br /&gt;
:* A multi button USB mouse works always!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Starting Programs Iconified ===&lt;br /&gt;
&lt;br /&gt;
: MUI has an option to start programs in iconified mode. It's useful for example for programs like Synergy, which you'd like to start on background without their main window jumping up. The option can be found from program's MUI Settings (Windows -&amp;gt; Iconify on startup).&lt;br /&gt;
&lt;br /&gt;
: [[File:Tips_Iconify.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Checking the Debug Log ===&lt;br /&gt;
&lt;br /&gt;
: If you want a stable system, you need to check the debug log periodically to see if any program misbehaves when used, especially when running new software.&lt;br /&gt;
&lt;br /&gt;
: An easy way to do it is to enable Debug screenbar module from the screen depth gadget menu. Bug looking Debug button on the screenbar will then give you a debug menu where you can view the log etc. If &amp;quot;Show Log...&amp;quot; option is ghosted, there's nothing in the log and everything is fine, but if it shows hundreds of cryptic lines (it's called a hit), then you have something to worry and the system probably isn't stable anymore. Some programs may output their own harmless debug information to the log too, but it's usually limited to few or tens of lines maximum. You'll recognize a real hit for sure.&lt;br /&gt;
&lt;br /&gt;
: [[File:Tips_Debug1.png|x64px]] [[File:Tips_Debug2.png|x64px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Printing to a PostScript Compatible Network Printer ===&lt;br /&gt;
&lt;br /&gt;
: You should mount the NETPAR: device and print to that device from programs like VPDF and OWB, which can output PostScript. NETPAR: is faster than printing through Turboprint (PRT:) and doesn't need Ghostscript installed (PS:).&lt;br /&gt;
&lt;br /&gt;
: &amp;quot;Mount NETPAR:&amp;quot; can be added to S:user-startup, for example.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== .recycled Directory ===&lt;br /&gt;
&lt;br /&gt;
: SFS is the default filesystem on MorphOS. It can have a special directory which contains recently deleted files. The directory is named as .recycled and it resides at the root level of every SFS partition (SYS:.recycled for example). Depending the format options it may be disabled, hidden but accessible, or visible.&lt;br /&gt;
&lt;br /&gt;
: If it's hidden, you can't see it even with &amp;quot;View All Files&amp;quot; option, but you can access it from the shell or Ambient (for example by pressing / key and then writing it to the path string after the volume name).&lt;br /&gt;
&lt;br /&gt;
: You shouldn't modify any files in it, but you can recover deleted files by copying them to some other path.&lt;br /&gt;
&lt;br /&gt;
: The PFS3 filesystem has a similar directory, but its name is &amp;quot;.deldir&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== How to Reduce Graphics Memory Usage ===&lt;br /&gt;
&lt;br /&gt;
: MorphOS can use graphics memory quite extensively which can cause slowdowns or glitches if you run out of it. It usually isn't an issue if you have 64MB or more graphics memory, but lower spec systems with today's resolutions may need some tuning. There are several ways to reduce memory usage and you have to decide or try which is the best for you.&lt;br /&gt;
&lt;br /&gt;
: MorphOS has an &amp;quot;Enhanced Display&amp;quot; mode, which uses the graphics card's 3D functions to draw graphic layers. It consumes more memory than the traditional 2D mode, but it provides some eyecandy, tearless moving etc.&lt;br /&gt;
&lt;br /&gt;
: To reduce its memory usage, you may:&lt;br /&gt;
:* Change its buffering settings on the DisplayEngine settings in MorphOS Preferences. You need to reboot or switch screens for the new settings to take effect.&lt;br /&gt;
:* Disable it completely from the Screens settings in MorphOS Preferences for some or all screens. It may also help if you let it be enabled for Ambient screen, but disable it on other screens you might have.&lt;br /&gt;
&lt;br /&gt;
: Other ways to reduce graphics memory usage:&lt;br /&gt;
:* Lower the color depth of screens from the Screens settings. 16-bit might be enough sometimes.&lt;br /&gt;
:* Don't use too many separate screens at the same time.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== How to Open MUI Programs on Their Own Screens ===&lt;br /&gt;
&lt;br /&gt;
: 1) An easy way is to select &amp;quot;Jump to Screen -&amp;gt; New&amp;quot; from the MUI popup menu gadget in program's window border. It always opens in an enhanced mode and clones the resolution from the Ambient screen. Open and save program's MUI settings to save it permanently.&lt;br /&gt;
: [[FIle:MorphOS3_jPV_Newscreen.png|120px]]&lt;br /&gt;
&lt;br /&gt;
: 2) A more configurable method is to open program's MUI settings, select the Screen tab, and create a totally new screen definition there. You can edit the screen name and the title to suit your use (you can use program's name for those for example), select any resolution and depth, enable or disable the enhanced mode etc. In many cases this is a better method, because you can save graphics memory by not using the enhanced mode for screens which you're going to use for full screen apps only or so.&lt;br /&gt;
&lt;br /&gt;
: You can switch between the screens with lamiga-m (lcommand-m) keyboard shortcut, or by clicking the screen depth gadget (left click switches to the next screen, right click gives you a menu where you can select any open screen).&lt;br /&gt;
: [[File:Tips_Screendepthmenu.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Advanced Features ==&lt;br /&gt;
&lt;br /&gt;
=== Default Device Icons ===&lt;br /&gt;
&lt;br /&gt;
: If you want a certain default icon for all the units of a certain device, you can create an icon named def_DEVICENAMExdisk.info to your default icons path (SYS:Prefs/Presets/Deficons/ by default).&lt;br /&gt;
&lt;br /&gt;
: For example the deficon for SMBFS devices would be called def_SMBFSxdisk.info.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Default Icon for Ambient Windows ===&lt;br /&gt;
&lt;br /&gt;
: By default there isn't a default icon file for the icon you see when iconifying an Ambient window (a view). If you want to override the built-in icon, create or copy a new icon file to your default icons path and name it to '''def_view.info'''. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Old Style Preferences Icons ===&lt;br /&gt;
&lt;br /&gt;
[[File:Separate_prefs_in_MorphOS.png|thumb|Example of separate system prefs in MorphOS]]&lt;br /&gt;
: You can have separate preferences icons in the SYS:Prefs/ directory in the old Amiga style for MorphOS system prefs. Make or copy icons named with a corresponding sub preference name into the SYS:Prefs/ dir and edit their Default Tool to &amp;quot;:MorphOS/Prefs/Preferences&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
: There's already a main preferences icon in SYS:Prefs, so here's an easy example: &amp;quot;copy SYS:Prefs/Preferences.info SYS:Prefs/Network.info&amp;quot;, after which double clicking the new Network icon opens the network preferences directly.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Hilight Options in Listers ===&lt;br /&gt;
&lt;br /&gt;
: If you want to use &amp;quot;Alternated rows&amp;quot; and &amp;quot;Hilighted sorting column&amp;quot; options in the Lister settings with a grapchics card that doesn't support 3D acceleration.&lt;br /&gt;
: Type in shell:&lt;br /&gt;
: &amp;lt;tt&amp;gt;Setenv MUI/fastppa SAVE 1&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Copy Selected Filenames ===&lt;br /&gt;
&lt;br /&gt;
: You can use the internal Ambient command &amp;quot;copyselectiontoclipboard&amp;quot; to copy selected filenames with or without path information to the clipboard. For example, create a new custom hotkey in the Ambient Settings and define &amp;quot;copyselectiontoclipboard VIEWID=%Si FULLPATH&amp;quot; as an internal command for it.&lt;br /&gt;
&lt;br /&gt;
: User may find it very useful to paste around the names selected in the Ambient windows in many situations.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Using ARexx Ports from Lua ===&lt;br /&gt;
&lt;br /&gt;
: MorphOS comes with a native implementation of the Lua scripting language. It can be used for script writing with application interacting instead of the emulated 3rd party ARexx. Lua can use existing ARexx ports with its ipc.module.&lt;br /&gt;
&lt;br /&gt;
: Load the IPC module first with the '''require 'ipc'''' line (unlike the standard Lua distribution, all modules have to be loaded with the ''require'' function on MorphOS. Check available modules from the ''MOSSYS:Libs/Lua/'' directory.)&lt;br /&gt;
&lt;br /&gt;
:* ipc.'''address(port)''' - sets the default ARexx port. Port &amp;quot;COMMAND&amp;quot; executes commands as DOS shell commands. &lt;br /&gt;
:* '''ipc.checkport(port)''' - checks if an ARexx port is available. &lt;br /&gt;
:* ipc.'''rx(command)''' - sends a command to a port set with ipc.address. It returns ARexx RESULT. &lt;br /&gt;
:* '''ipc.waitforport(name[, interval])''' - Waits for an ARexx port. Script is aborted if the port isn't found.&lt;br /&gt;
&lt;br /&gt;
: More about the topic [[Getting_Started_with_Lua|here]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Copying a Whole Disk As an Image File ===&lt;br /&gt;
&lt;br /&gt;
: You can access raw data of drives by MorphOS's RAWDISK: device. Partitions or whole disk can be copied in or out with it, but be careful to write to the correct destination! For copying you need to use SDK's cp command or standard Copy command with the DIRECT option.&lt;br /&gt;
&lt;br /&gt;
: You can browse available disks and devices by opening RAWDISK: device from the shell (just type RAWDISK: on the shell) or from Ambient (hit the / key, clear existing text, and write RAWDISK: to the string line). Browse to the Devices directory and then to the wanted device and unit to see the actual disk image file (rawdisk) and partition files in a separate partition table directory. Partition files let you recognize more easily that you're accessing the wanted disk. They also have information like device and filesystem names told in file comments (use the List command or Ambient to see them).&lt;br /&gt;
&lt;br /&gt;
: As an example, to make a backup of a whole SD card which is placed in a USB reader (the card is found in usbscsi.device unit 3):&lt;br /&gt;
: &amp;lt;tt&amp;gt;Copy DIRECT RAWDISK:Devices/usbscsi.device/3/rawdisk work:sdcard.img&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: And to copy the image back to the SD card (removes all existing data, be careful!):&lt;br /&gt;
: &amp;lt;tt&amp;gt;Copy DIRECT work:sdcard.img RAWDISK:Devices/usbscsi.device/3/rawdisk&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: This works with all raw disk image files like Raspberry Pi's OS distributions etc.&lt;br /&gt;
&lt;br /&gt;
: Single partitions can also be copied from the RAWDISK:Disks directory.&lt;br /&gt;
&lt;br /&gt;
: If you want to access the data in saved image files without needing to write them back to any device, you can mount them with help of [[Tools/FileImageCtrl]] and [[Tools/Mounter]] programs. You can either mount partitions directly with the [[Tools/FileImageCtrl|FileImageCtrl]] tool or insert disk images on it and mount the wanted partitions with the [[Tools/Mounter|Mounter]] tool.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Using WLAN with Hidden SSID ===&lt;br /&gt;
&lt;br /&gt;
: If you have to use wireless network with hidden SSID, you can add &amp;quot;scan_ssid=1&amp;quot; line in your ENVARC:sys/Wireless.prefs file's network block.&lt;br /&gt;
&lt;br /&gt;
: Contents should look something like this:&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;tt&amp;gt;network={&lt;br /&gt;
: &amp;amp;nbsp;&amp;amp;nbsp;ssid=&amp;quot;ThatHiddenSSID&amp;quot;&lt;br /&gt;
: &amp;amp;nbsp;&amp;amp;nbsp;scan_ssid=1&lt;br /&gt;
: &amp;amp;nbsp;&amp;amp;nbsp;psk=&amp;quot;password&amp;quot;&lt;br /&gt;
: }&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: Note: It's not recommended to hide the SSID, because it doesn't add security in practise. Use this only if you can't control the network you're connecting.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Modifying Screen and Keyboard Brightness on a Laptop without Using KB Shortcuts ===&lt;br /&gt;
&lt;br /&gt;
: Brightness values can be modified by editing the ENVARC:sys/laptopquick.conf file with a text editor. The values are taken in use after a reboot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Opening Ambient Windows from the Shell or Scripts ===&lt;br /&gt;
&lt;br /&gt;
: Directories can be opened with the [[Shell_Commands/Open|Open]] command, but it only opens them in the default view mode:&lt;br /&gt;
: &amp;lt;tt&amp;gt;Open SYS:Applications&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: If you need to open windows with certain location, size, position, and mode, you can use the LoadURI ARexx command. LoadURI accepts the following parameters:&lt;br /&gt;
:* URI which contains a path and attributes with values. The attributes are given after a question mark and they are separated with the &amp;amp; delimiter. Possible attributes are ''view'' (icon or list), ''mode'' (all, icons, or thumbs),  ''top'' (pixels from the top border), ''left'' (pixels from the left border), ''width'', and ''height''.&lt;br /&gt;
:* NEW=NEWWIN/S: opens a new window even if similar window would already be opened&lt;br /&gt;
:* RELOAD/S: reloads the URI&lt;br /&gt;
:* FORCE/S: forces full reloading&lt;br /&gt;
:* BROWSER/N: forces the browser mode on (1) or off (0)&lt;br /&gt;
:* VIEWID/N: specifies view/window ID&lt;br /&gt;
&lt;br /&gt;
: Use the ''AMBIENT'' port in ARexx scripts.&lt;br /&gt;
&lt;br /&gt;
: To open the SYS:Libs directory in the list mode showing all files in a 440x600 window at position x=350, y=50, no matter if it has been opened previously:&lt;br /&gt;
: &amp;lt;tt&amp;gt;'LoadURI &amp;quot;file://SYS:Libs?view=list&amp;amp;mode=all&amp;amp;top=50&amp;amp;left=350&amp;amp;width=440&amp;amp;height=600&amp;quot; NEW'&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: To open a directory in the icon mode showing thumbnails in a 500x400 window at position x=350, y=50, the window is also opened in the spatial (non browser) mode:&lt;br /&gt;
: &amp;lt;tt&amp;gt;'LoadURI &amp;quot;file://MOSSYS:Prefs/Wallpapers/1280x1024?view=icon&amp;amp;mode=thumbs&amp;amp;top=50&amp;amp;left=350&amp;amp;width=500&amp;amp;height=400&amp;quot; BROWSER=0'&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: If you don't want to write full ARexx scripts but would like to run them just as single shell commands, you can use the [[Shell_Commands/RXCmd|RXCmd]] shell command (notice that you have to escape the inner quotation marks with the asterisks):&lt;br /&gt;
: &amp;lt;tt&amp;gt;RXCmd AMBIENT &amp;quot;LoadURI *&amp;quot;file://SYS:Libs?view=list&amp;amp;mode=all&amp;amp;top=50&amp;amp;left=350&amp;amp;width=440&amp;amp;height=600*&amp;quot; NEW&amp;quot;&lt;br /&gt;
: RXCmd AMBIENT &amp;quot;LoadURI *&amp;quot;file://MOSSYS:Prefs/Wallpapers/1280x1024?view=icon&amp;amp;mode=thumbs&amp;amp;top=50&amp;amp;left=350&amp;amp;width=500&amp;amp;height=400*&amp;quot; BROWSER=0&amp;quot;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Bundled Software ==&lt;br /&gt;
&lt;br /&gt;
=== Flacapella Settings for MP3 Encoding ===&lt;br /&gt;
&lt;br /&gt;
: Example of a custom encoder setting in Flacapella:&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;tt&amp;gt;Compress Command: c:lame -V0 --tt &amp;quot;{title}&amp;quot; --ta &amp;quot;{artist}&amp;quot; --tl &amp;quot;{album}&amp;quot; --tn {track} {?coverfile:--ti &amp;quot;{coverfile}&amp;quot;} {input} {output}&lt;br /&gt;
: File Extension: mp3&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: This will encode tracks to mp3 files with title, artist, album and track number tags. It also embeds fetched cover image in files, if image was found. &lt;br /&gt;
: Example assumes you have [https://www.morphos-storage.net/?find=lame LAME] installed in C:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Jukebox Tips ===&lt;br /&gt;
&lt;br /&gt;
:* If you select any song in playlist by clicking it just once, it's played next no matter if you have random or sequential mode in use. &lt;br /&gt;
:* You can adjust volume in Jukebox by using mouse wheel over its screenbar module. &lt;br /&gt;
:* Displayed columns can be configured on the fly by right clicking the column title.&lt;br /&gt;
:* Jukebox can be better integrated into Ambient and its contextual menus with the [http://aminet.net/package/mus/play/JukeboxAdder JukeboxAdder] script.&lt;br /&gt;
:* Two new tooltypes were presented in MorphOS 3.8: &lt;br /&gt;
:** '''FRAMESCAN=NO''' disables the Reggae framescanning for tracks that have unknown duration. It speeds up the loading of such tracks, but you'll lose the seeking ability with them. &lt;br /&gt;
:** '''STREAMBUFFER=YES''' activates the Reggae streambuffer class which reduces stuttering, but causes lag on track change and seeking.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== How to Reduce OWB's HD Writes ===&lt;br /&gt;
&lt;br /&gt;
: OWB writes a lot of data to the hard drive by default. You might want to reduce it if you're paranoid about SFS fragmentation, filesystem corruption, privacy, or you'd like to avoid certain databases getting too big (which can cause slowdowns). Or you just want your .recycled dir to have other than the OWB files. One option is to use the Private Browsing mode always, but here are tips if you don't want to activate that always or you want to restrict certain writes only.&lt;br /&gt;
&lt;br /&gt;
:* Disable the TopSites feature. This makes a write for every page you visit, it's an awful amount. Its database (conf/TopSites.db) can also grow to hundreds of megabytes, which causes very noticeable slowdowns to browsing. You can disable it with the &amp;quot;Setenv SAVE OWB_DISABLE_TOPSITES 1&amp;quot; command in the shell, and if the database file has already grown too big, you can remove it.&lt;br /&gt;
:* Disable the Website Icons feature. Open the Interface settings and uncheck all Website Icons checkmarks. &lt;br /&gt;
:* Disable all saving options from the Privacy settings.&lt;br /&gt;
&lt;br /&gt;
: If you still need some option enabled, because some site requires it, you can soft link its configuration file to Ram Disk. I, for example, still have Local Storage enabled, but I have linked its dir to ENV: (which resides in Ram Disk). To do that, make LocalStorage directories to both ENV: and ENVARC: (that ensures that it's created after a reboot too), open the shell and cd into your OWB/Conf/ dir, rename or delete the old LocalStorage dir, type &amp;quot;makelink LocalStorage ENV:LocalStorage&amp;quot;. Using ENV: gives the advantage to have some files saved so that those settings are restored in every boot. If you're happy with a certain setting, copy the corresponding file to ENVARC: and it will be preserved without being messed up with the later usage. If you just want to have the configuration files enabled, but cleared on every boot, you could soft link them to T: for example.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Alternative YouTube Script for OWB ===&lt;br /&gt;
&lt;br /&gt;
: [http://www.morphzone.info/modules/newbb_plus/viewtopic.php?forum=9&amp;amp;topic_id=9799&amp;amp;post_id=109979&amp;amp;viewmode=flat&amp;amp;sortorder=0&amp;amp;showonepost=1 YouTube Center] is a feature rich configureable userscript for improving YouTube experience. It's made for mainstream browsers, but it also works on OWB! All videos can be forced to HTML5 to get them work in OWB. It's heavier than Fab's official OWB script, but works fine as an option or as a backup plan :). Script saves its settings to LocalStorage to #?www.youtube.com#? files.&lt;br /&gt;
&lt;br /&gt;
: Note: YouTube defaults to the HTML5 player nowadays and you might be fine without any Flash-&amp;gt;HTML5 converter scripts. It's probably better to install this script only if you want some other features from it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Watching Videos with Less CPU Load in OWB ===&lt;br /&gt;
&lt;br /&gt;
: When watching a video in OWB, the fullscreen mode makes a lot less CPU load than the default embedded mode, because the fast overlay mode is used then. CPU load may drop from 100% to 40% for example. Wait until the video really starts playing before clicking the fullscreen button on it, or it may fail and you have to reload the video to be able to try it again. Some videos may have a fullscreen option in their contextual menu too. Remember to have Fullscreen Fix scripts added and enabled from the Scripts window (&amp;quot;Windows-&amp;gt;Scripts...&amp;quot; pulldown menu entry) for YouTube, Dailymotion, and Vimeo.&lt;br /&gt;
&lt;br /&gt;
: Note: check that you really have the latest YouTube fullscreen fix script from http://fabportnawak.free.fr/owb/scripts/YouTube_Fullscreen_Fix.js in your OWB/Scripts/ directory. Grunch doesn't get updated for the latest version always for example.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Problems with YouTube Videos ===&lt;br /&gt;
&lt;br /&gt;
:* Now that YouTube defaults to HTML5, our days of ad-free videos have ended. It also means that the Content Blocking (AdBlock) option in the OWB's settings can block some videos. If you have some videos which won't start playing, try to disable the Content Blocking option and try again. If that was the problem, but you want to keep the content blocking enabled, add an allow rule to the Content Blocking settings. Open &amp;quot;Windows-&amp;gt;Content Blocking...&amp;quot; from the OWB's pulldown menus, click the Add button, and write &amp;quot;youtube.com&amp;quot; to the Rule line. Close the window and try the video again.&amp;lt;br /&amp;gt;[[File:OWB_ContentBlockingYT.png]]&lt;br /&gt;
&lt;br /&gt;
:* If all videos refuse to play, check if you have any YouTube converter scripts enabled in the &amp;quot;Windows-&amp;gt;Scripts...&amp;quot; settings. The Fullscreen Fix script is the only one needed and you should disable all converter scripts.&lt;br /&gt;
&lt;br /&gt;
:* Flash plugins can also break compatibility with YouTube, so if you have the swfdec_plugin.library file in your OWB/Plugins/ directory, you have the following options to choose from:&lt;br /&gt;
:** Remove the file from use if you don't need flash anywhere. The plugin doesn't work too well generally anyway.&lt;br /&gt;
:** Keep the file, but disable it for all pages by unchecking the &amp;quot;Settings-&amp;gt;Preferencfes-&amp;gt;Content-&amp;gt;Allow plugins&amp;quot; option. You can then enable it temporarily from &amp;quot;Settings-&amp;gt;Plugins-&amp;gt;Enable&amp;quot; if needed.&lt;br /&gt;
:** Disable it temporarily from &amp;quot;Settings-&amp;gt;Plugins-&amp;gt;Disable&amp;quot;, and reload the page.&lt;br /&gt;
:** Disable it just for YouTube by adding a new URL setting from &amp;quot;Windows-&amp;gt;URL Settings...&amp;quot;. Click the Add button, edit the URL line to for example &amp;quot;youtube.com&amp;quot;, and uncheck the Plugins option.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== OWB Doesn't Work or Stopped Working with Certain Web Pages ===&lt;br /&gt;
&lt;br /&gt;
:* Sometimes it helps to change the &amp;quot;Spoof as&amp;quot; setting in OWB. Web pages may offer different kind of content depending on what browser they think you are using. Some popular CAPTCHAs don't work with the default spoofing, but do work when spoofed as iPad for instance. iPad is generally a good option to start trying the spoofing, because you probably get the page in its simpliest form then.&lt;br /&gt;
&lt;br /&gt;
:* There are some bugs in the JavaScript engine in the latest available OWB version (1.24 at the time of writing) and that causes problems with some web pages, but there's a chance that these pages would still work with an earlier OWB version. You can download earlier OWB versions from [http://fabportnawak.free.fr/owb/ Fab's homepage] and install them, for example, to a different directory than your current OWB installation. There's no problem having two or even several OWB installations on your system, you can just launch whichever you want. As an example, Google Maps stopped working with OWB 1.24 in autumn 2017, but it still continued to work with [http://fabportnawak.free.fr/owb/owb-morphos-1.23.lha OWB 1.23].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Creating an ISO Image ===&lt;br /&gt;
&lt;br /&gt;
: Jalapeno can also create and save ISO images which will preserve MorphOS/AmigaOS file attributes and comments. Images can be used for backups or even be booted from USB devices.&lt;br /&gt;
&lt;br /&gt;
: An option to create an ISO image is found on the pulldown menu in the Burn Files section.&lt;br /&gt;
&lt;br /&gt;
: [[File:Tips_Create_ISO.png|200px]]&lt;br /&gt;
&lt;br /&gt;
: If the resulting image file will be bigger than 1GB, Jalapeno splits it into 1GB parts. Those parts can be joined into one big image file with the Join command in the shell, but remember the filesize limits of your target [https://library.morph.zone/Filesystems filesystem] when doing that.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Copying a CD/DVD to an ISO Image ===&lt;br /&gt;
&lt;br /&gt;
: If you want to make a standard, easily mountable, ISO image out of an existing CD or DVD, a good way to achieve it is to use the ReadCD program provided with the Jalapeno program on the standard MorphOS installation. Jalapeno itself can also create image files of optical media by selecting &amp;quot;Save as...&amp;quot; from the &amp;quot;Copy Tracks&amp;quot; pull-down menu, but resulting images aren't mountable by the system, because Jalapeno uses options that include more data into the images, for error checking etc.&lt;br /&gt;
&lt;br /&gt;
: Do these steps from the shell to read a CD/DVD into a standard ISO image:&lt;br /&gt;
:# Find your CD drive device by typing: MOSSYS:Data/Jalapeno/readcd -scanbus&lt;br /&gt;
:# Create an ISO image by typing (replace &amp;quot;1,1,0&amp;quot; to what you saw in the previous step, and the image path to what you want): MOSSYS:Data/Jalapeno/readcd -dev 1,1,0 f=ram:image.iso&lt;br /&gt;
&lt;br /&gt;
=== Disabling the Default UTF-8 Mode with Scribble ===&lt;br /&gt;
&lt;br /&gt;
: Scribble uses UTF-8 encoding by default, but you might prefer to default to the traditional ASCII format instead. The UTF-8 mode can be disabled from the pulldown menu in Scribble, but the setting isn't saved if you save the program settings.&lt;br /&gt;
: [[File:Scribble_ascii1.png|128px]]&lt;br /&gt;
&lt;br /&gt;
: If you want to disable it by default, you have to open the &amp;quot;Save As...&amp;quot; requester, enable the &amp;quot;Make Default&amp;quot; option (also check that Encoding is set to ASCII), and save a file (can be any file anywhere).&lt;br /&gt;
: [[File:Scribble_ascii2.png|205px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 3rd Party Software ==&lt;br /&gt;
&lt;br /&gt;
=== Where to Get Software? ===&lt;br /&gt;
:* Check [http://library.morph.zone/Links#File_Repositories file repositories] for manual installing&lt;br /&gt;
:* [http://www.geit.de/eng_grunch.html Grunch] is a good packet manager for automatic installation and updating of selected software&lt;br /&gt;
:* [http://www.meta-morphos.org/WArMUp/chrysalis_en.pdf Chrysalis] is a preconfigured environment and software distribution package ([http://www.warmup-asso.org/download/pack/chrysalis.iso Download ISO image])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Custom Ambient Menus with AREXX ===&lt;br /&gt;
&lt;br /&gt;
: You can add own menu items to Ambient pulldown menus with AREXX. Read SYS:MorphOS/Ambient/docs/arexx.txt for more info about AREXX usage or download the [http://morphos-files.net/remote/CRABUM CRABUM] program, which helps you to create correct AREXX lines ([http://library.morph.zone/Getting_Started#Creating_Menus_with_CRABUM tutorial]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Help with Shell Commands ===&lt;br /&gt;
&lt;br /&gt;
: MorphOS Library contains descriptions of all [http://library.morph.zone/Shell_Commands shell commands] and the descriptions can be displayed on the shell with the [http://aminet.net/package/util/batch/Chelp Chelp] script. The script can be used to replace older [http://aminet.net/package/util/cli/Help Help] program (which would otherwise be nice still, but it only contains help for MorphOS 1.x commands).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Utilizing Your Keyboard's Multimedia Keys ===&lt;br /&gt;
&lt;br /&gt;
:* The [http://www.geit.de/eng_mmkeyboard.html MMKeyboard] software can be used to assign different kinds of functions to extra keys found on some keyboards.&lt;br /&gt;
:* The [http://aminet.net/package/mus/play/MultiMeedio MultiMeedio] script provides a unified control for all popular media players.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Hardware Related ==&lt;br /&gt;
&lt;br /&gt;
=== Removing Startup Sound on Macs ===&lt;br /&gt;
&lt;br /&gt;
: Sadly there isn't any known way to disable that annoying startup sound from MorphOS itself or from Open Firmware, but there are few different ways to achieve it anyway.&lt;br /&gt;
&lt;br /&gt;
:* If you plan to use Mac as MorphOS only system, but you still have OSX installed, you can mute the audio from OSX before wiping it out by installing MorphOS. Startup sound doesn't come back if you won't boot into OSX anymore.&lt;br /&gt;
:* If you don't have OSX anymore, you could try to remove sound with some Linux distribution's live/installation CD. More info [http://www.meta-morphos.org/faq.php?id_cat=2&amp;amp;myfaq=yes&amp;amp;categories=Installation+et+d%E9marrage#74 here] and [https://morphosuser.wordpress.com/2014/12/28/removing-the-boot-sound/ here].&lt;br /&gt;
:* If you use OSX and MorphOS as a dualboot system you can install [http://www5e.biglobe.ne.jp/~arcana/StartupSound/index.en.html StartupSound.prefPane] for OSX.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Speeding Up the Startup Manager on Macs ===&lt;br /&gt;
&lt;br /&gt;
: Startup Manager (the boot menu you get by booting with option/alt key pressed) can be slow when it tries to find network boot devices. To speed it up go to the OF prompt and type &amp;quot;'''setenv skip-netboot? true'''&amp;quot;. Funnily enough, it only affects if you have network cable plugged in.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Booting MorphOS ISO from USB Stick ===&lt;br /&gt;
&lt;br /&gt;
: MorphOS Team has released an [http://www.morphos-team.net/guide/usb-boot official guide] for USB booting, but I've also noticed that at least some Macs (Mac mini and Powerbook for example) have certain ud alias for USB drive. You can use that as a shortcut and get the booting done with less work (no need to search the correct path, works even when USB stick is in a hub, less typing and less to remember).&lt;br /&gt;
&lt;br /&gt;
: If you have only one mass storage device connected, you can just boot into Open Firmware prompt (command-alt-o-f) and type:&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;tt&amp;gt;boot ud:,\boot.img bi umsd0:morphos.iso&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: (Remember to have both boot.img and morphos.iso on the stick)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Keyboard Reboot on ADB Laptops ===&lt;br /&gt;
&lt;br /&gt;
: The traditional Ctrl-Command-Command (Ctrl-Amiga-Amiga) keyboard combination doesn't work on laptops using the ADB interface for the keyboard, because ADB doesn't make difference between the left and right command keys. You can reboot them with an alternative Fn-Alt-Alt keyboard combination.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Blackouts or Graphical Flickering on Mac mini ===&lt;br /&gt;
&lt;br /&gt;
: Mac minis suffer from short blackouts with some monitors when the connection is made with a DVI cable. The screen gets usually blanked for few seconds, and depending of the monitor it may happen more or less frequently. Issue may also show up as flickering lines on the screen and it may get worse and worse until the monitor is unable to sync to the signal anymore.&lt;br /&gt;
&lt;br /&gt;
: One option to get around it is to use a VGA adapter/cable, because it doesn't seem to happen with it.&lt;br /&gt;
&lt;br /&gt;
: An another option is to try to lower the pixel clock value for the used screenmode from the Monitors settings in the MorphOS preferences. If your default mode has for example vertical frequency of 75 Hz, going to 60 Hz mode may help. Sometimes even a small change can help, and lowering just couple clicks from 60 Hz does the trick.&lt;br /&gt;
&lt;br /&gt;
: This seems to be a common problem with Mac minis and &amp;quot;non-coherent&amp;quot; displays as discussed for example [https://discussions.apple.com/thread/2723110 here].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Disabling the Internal Touchpad on Laptops ===&lt;br /&gt;
==== From the Touchpad Settings (Preferred)====&lt;br /&gt;
: An internal touchpad can be disabled from the MorphOS system settings nowadays, and this is the preferred method. Open '''System Settings -&amp;gt; Touchpad''' and disable the '''Enable the Touchpad driver''' setting.&lt;br /&gt;
&lt;br /&gt;
: [[File:MorphOS_Preferences_disabling_touchpad.png|200px]]&lt;br /&gt;
&lt;br /&gt;
==== From the USB Settings ====&lt;br /&gt;
: The touchpad can be disabled temporarily by removing its binding in the USB settings. This setting is reverted back next time the machine is booted or if USB class scanning is done otherwise.&lt;br /&gt;
&lt;br /&gt;
: To remove the binding, open the USB settings from the MorphOS Preferences application and go to the Devices list.&lt;br /&gt;
:* If you have &amp;quot;Apple Internal Trackpad&amp;quot; alone in the list, you can just select it and click the Unbind button.&lt;br /&gt;
:: [[File:Disabling touchpad ibook.png|200px]]&lt;br /&gt;
:* If your machine has a combined internal keyboard and trackpad device, double click it (&amp;quot;Apple Internal Keyboard / Trackpad&amp;quot;). Select Touchpad from the newly opened window and then click the Release Binding button.&lt;br /&gt;
:: [[File:Disabling touchpad powerbook.png|200px]]&lt;br /&gt;
&lt;br /&gt;
==== Removing the Driver at Boot Time ====&lt;br /&gt;
: Touchpad can also be disabled permanently by removing touchpad.library from use. Removing it is a bit tricky, because it resides in &amp;quot;ROM&amp;quot; and not as a file in system directories, but it can be done with the mf (module filter) boot command argument.&lt;br /&gt;
&lt;br /&gt;
: The boot command arguments can be edited by editing the bootinfo.txt file on Macs. The bootinfo.txt file is found on the Boot: partition, which also contains the boot.img file. If you don't see the partition, you probably need to mount it first by using, for example, the [[Tools/Mounter | Mounter]] tool. '''Note that if you edit the bootinfo.txt file, you must bless the file with the [[Shell_Commands/HFSSetMacBoot | HFSSetMacBoot]] command or the system won't be bootable anymore!'''&lt;br /&gt;
&lt;br /&gt;
: To add the mf argument, open the bootinfo.txt file with a text editor, find the line between &amp;lt;BOOT-SCRIPT&amp;gt; and &amp;lt;/BOOT-SCRIPT&amp;gt; lines (it starts with &amp;quot;boot&amp;quot;), and add ''mf=touchpad.library'' at the end of the boot line. Save the file and '''remember to bless it with the ''HFSSetMacBoot Boot:bootinfo.txt'' command from the shell or your system won't boot again!'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== MorphOS Boot Arguments on U-boot Systems ===&lt;br /&gt;
: To boot into MorphOS, hardware has to load a MorphOS boot image file that contains the kernel and core drivers. The boot image file also accepts arguments to control the boot procedure before the actual operating system is loaded from the system partition. The boot arguments usage on [[Open Firmware]] systems is well [[Open_Firmware#Boot_Arguments | documented]], but they must be given in a different way on [http://www.intuitionbase.com/static.php?section=uboot U-boot] systems (Sam460ex/cr, AmigaOne X5000).&lt;br /&gt;
&lt;br /&gt;
: On the U-boot systems the boot arguments have to be set in the '''morphosargs''' environment variable in the U-boot console.&lt;br /&gt;
&lt;br /&gt;
: To check if you already have the variable set:&lt;br /&gt;
: &amp;lt;tt&amp;gt;printenv morphosargs&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: To set an argument (in this example we'd disable an unsupported SCSI controller by removing the SCSI driver from the boot image by using the ''module filter (mf)'' boot argument):&lt;br /&gt;
: &amp;lt;tt&amp;gt;setenv morphosargs mf=symbios.device&amp;lt;/tt&amp;gt;&lt;br /&gt;
: &amp;lt;tt&amp;gt;saveenv&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: To edit an existing variable:&lt;br /&gt;
: &amp;lt;tt&amp;gt;editenv morphosargs&amp;lt;/tt&amp;gt;&lt;br /&gt;
: &amp;lt;tt&amp;gt;saveenv&amp;lt;/tt&amp;gt;&lt;/div&gt;</summary>
		<author><name>JPV</name></author>	</entry>

	<entry>
		<id>https://library.morph.zone/index.php?title=Tips_and_Tricks&amp;diff=4326</id>
		<title>Tips and Tricks</title>
		<link rel="alternate" type="text/html" href="https://library.morph.zone/index.php?title=Tips_and_Tricks&amp;diff=4326"/>
				<updated>2023-11-27T06:58:08Z</updated>
		
		<summary type="html">&lt;p&gt;JPV: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''Originally published at: http://jpv.wmhost.com/morphos/tips/''&lt;br /&gt;
&lt;br /&gt;
Miscellaneous tips and tricks for MorphOS use. Some may even be hackish and not officially encouraged by MorphOS Team. Everyone is welcome to make additions and corrections here.&lt;br /&gt;
== Basic Features ==&lt;br /&gt;
&lt;br /&gt;
=== Modifying the System Directory ===&lt;br /&gt;
: Tip #1: NEVER modify anything in the MOSSYS: (SYS:MorphOS/) path! All the changes are lost in the system upgrade. If you need to add any 3rd party drivers or libraries, add them to SYS:. If there isn't a correct directory by default, make one.&lt;br /&gt;
&lt;br /&gt;
: There's only one exception (of course there is one) to this: you can rename MOSSYS:Libs/rexxsyslib.library to MOSSYS:Libs/rexxsyslib.library_disabled when you copy 68k version of rexxsyslib.library to SYS:Libs/ in order to get the AREXX working.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Keyboard Commands ===&lt;br /&gt;
&lt;br /&gt;
: At first, check the default ones and define your favourites in '''System Settings -&amp;gt; IControl -&amp;gt; Hotkeys''' and in '''Ambient Settings -&amp;gt; Keyboard'''.&lt;br /&gt;
&lt;br /&gt;
: For example IControl has &amp;quot;Active Window: Activate Next&amp;quot; and &amp;quot;All Windows: Depth Menu&amp;quot; options, which can be used to achieve alt/ctrl/command-tab style window cycling functionality familiar from other operating systems.&lt;br /&gt;
&lt;br /&gt;
: Other keys: &lt;br /&gt;
:* To zoom Ambient icons in the icon mode: keep CTRL pressed and use the mouse wheel or just roll the wheel over the Viewmode button.&lt;br /&gt;
:* To find and select files in Ambient windows by letters: start typing a name when the window is active. Keep the Shift key pressed for directories. &lt;br /&gt;
:* To enter a path manually (for example for hidden dirs like .recycled): press the / key in an Ambient window and type in the path. &lt;br /&gt;
:* Command-f activates the find function in most programs. &lt;br /&gt;
:* The r key rotates the pictures in Ambient's internal viewer and Page Up/Down keys select previous and next images in a dir &lt;br /&gt;
:* Check keyboard commands of the Shell, like by default, commands can be completed with CTRL-tab, devices with ALT-tab, history with shift-tab etc. &lt;br /&gt;
:* Keeping the Alt key pressed while double clicking a drawer gives you different ways to open drawers.&lt;br /&gt;
:* Keeping the Alt key pressed while dragging files on the same partition copies files instead of moving, or vice versa depending on your Ambient settings.&lt;br /&gt;
&lt;br /&gt;
=== Enabling/Disabling Icon Tooltypes ===&lt;br /&gt;
&lt;br /&gt;
: Double click single tooltypes to enable and disable them in the icon information window.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Browsing History in Ambient ===&lt;br /&gt;
&lt;br /&gt;
: Clicking the parent button ([[File:Tips_Parent.png|middle]]) on an Ambient window (in browser mode) with the right mouse button gives you a browsing history popup menu for quick jumping between locations.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Sync the Clock from Internet at Boot ===&lt;br /&gt;
&lt;br /&gt;
: Add this line to S:user-network-startup file:&lt;br /&gt;
: &amp;lt;tt&amp;gt;Run DETACH MOSSYS:C/SetClockNTP SAVE&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Redirecting AHI Music Unit ===&lt;br /&gt;
&lt;br /&gt;
: You can select Unit 0 as the Music Unit in AHI to be able hear audio output from multiple programs at the same time, with a slight decrease in quality.&lt;br /&gt;
&lt;br /&gt;
: [[File:MorphOS_System_settings_Music_Unit.png|280px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Keeping AHI Audio Quality Better ===&lt;br /&gt;
&lt;br /&gt;
: Audio quality with AHI will be better if you reduce available channels for its shared modes (Unit 0 usually). Available channels will limit the amount of simultaneus playback of sounds, but you really don't need the default 32 channels and even two channels can be quite enough. Should there be more concurrent sounds, some of them just get muted until the other have been finished.&lt;br /&gt;
&lt;br /&gt;
: [[File:MorphOS_System_settings_Change_Unit.png|280px]] [[File:MorphOS_System_settings_Unit_0.png|280px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Mime Type Configuration ===&lt;br /&gt;
&lt;br /&gt;
: Learn to configure mime types from the Ambient settings. It really gives so much for your system and your user experience. [http://jpv.wmhost.com/pics/mimemplayer.png Here] is one example of how to configure MPlayer for all the video files.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Inline Editing ===&lt;br /&gt;
&lt;br /&gt;
: Inline editing is a quick way to edit filenames by clicking them with the mouse wheel or with the long left mouse click. Its behaviour can be configured from the Lister settings in Ambient Settings.&lt;br /&gt;
&lt;br /&gt;
: File comments can also be edited with the inline editing.&lt;br /&gt;
&lt;br /&gt;
: [[File:Tips_Inlineedit.png|280px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Batch Renaming in Ambient ===&lt;br /&gt;
&lt;br /&gt;
# Select files you want to be in the range of renaming.&lt;br /&gt;
# Hit rename button or command-r keyboard shortcut.&lt;br /&gt;
# Use pattern to rename. For example renaming all files which begin with &amp;quot;mod.&amp;quot; to files which end with &amp;quot;.mod&amp;quot;, use &amp;quot;mod.*&amp;quot; as source and &amp;quot;*.mod&amp;quot; as destination (quotation marks not needed).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Don't Forget RMB/Long-LMB Gadget Menus ===&lt;br /&gt;
&lt;br /&gt;
: You get menus from zoom and depth gadgets with right mouse button or by holding left mouse button pressed on them.&lt;br /&gt;
&lt;br /&gt;
: [[File:Tips_Zoommenu.png]] [[File:Tips_Windowdepthmenu.png]] [[File:Tips_Screendepthmenu.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== How to Use RMB with One-button Mouse ===&lt;br /&gt;
&lt;br /&gt;
: The right mouse button can be emulated in several different ways:&lt;br /&gt;
:* The '''System Settings -&amp;gt; Mouse -&amp;gt; Open menus by clicking...''' setting lets your mouse button act as the right mouse button if you hold a qualifier key pressed while clicking. The qualifier key can be configured for your preferences, but it's the shift key by default.&lt;br /&gt;
:* Press right alt and right command keys together. This probably doesn't work on systems with ADB keyboard, like on older Mac laptops. The ADB keyboard doesn't make difference between left and right keys.&lt;br /&gt;
:* With non-ADB laptops (PowerBook 5,6-5,9 and 6,7 (iBook)) you can also use two finger tap or two finger hold + button combination on the touchpad for RMB.&lt;br /&gt;
:* You can define a hotkey for menu launching on the IControl preferences (the default one is rcommand+space). It doesn't work exactly as the RMB everywhere, but works if you're mostly using the RMB for menus.&lt;br /&gt;
:* A multi button USB mouse works always!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Starting Programs Iconified ===&lt;br /&gt;
&lt;br /&gt;
: MUI has an option to start programs in iconified mode. It's useful for example for programs like Synergy, which you'd like to start on background without their main window jumping up. The option can be found from program's MUI Settings (Windows -&amp;gt; Iconify on startup).&lt;br /&gt;
&lt;br /&gt;
: [[File:Tips_Iconify.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Checking the Debug Log ===&lt;br /&gt;
&lt;br /&gt;
: If you want a stable system, you need to check the debug log periodically to see if any program misbehaves when used, especially when running new software.&lt;br /&gt;
&lt;br /&gt;
: An easy way to do it is to enable Debug screenbar module from the screen depth gadget menu. Bug looking Debug button on the screenbar will then give you a debug menu where you can view the log etc. If &amp;quot;Show Log...&amp;quot; option is ghosted, there's nothing in the log and everything is fine, but if it shows hundreds of cryptic lines (it's called a hit), then you have something to worry and the system probably isn't stable anymore. Some programs may output their own harmless debug information to the log too, but it's usually limited to few or tens of lines maximum. You'll recognize a real hit for sure.&lt;br /&gt;
&lt;br /&gt;
: [[File:Tips_Debug1.png|x64px]] [[File:Tips_Debug2.png|x64px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Printing to a PostScript Compatible Network Printer ===&lt;br /&gt;
&lt;br /&gt;
: You should mount the NETPAR: device and print to that device from programs like VPDF and OWB, which can output PostScript. NETPAR: is faster than printing through Turboprint (PRT:) and doesn't need Ghostscript installed (PS:).&lt;br /&gt;
&lt;br /&gt;
: &amp;quot;Mount NETPAR:&amp;quot; can be added to S:user-startup, for example.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== .recycled Directory ===&lt;br /&gt;
&lt;br /&gt;
: SFS is the default filesystem on MorphOS. It can have a special directory which contains recently deleted files. The directory is named as .recycled and it resides at the root level of every SFS partition (SYS:.recycled for example). Depending the format options it may be disabled, hidden but accessible, or visible.&lt;br /&gt;
&lt;br /&gt;
: If it's hidden, you can't see it even with &amp;quot;View All Files&amp;quot; option, but you can access it from the shell or Ambient (for example by pressing / key and then writing it to the path string after the volume name).&lt;br /&gt;
&lt;br /&gt;
: You shouldn't modify any files in it, but you can recover deleted files by copying them to some other path.&lt;br /&gt;
&lt;br /&gt;
: The PFS3 filesystem has a similar directory, but its name is &amp;quot;.deldir&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== How to Reduce Graphics Memory Usage ===&lt;br /&gt;
&lt;br /&gt;
: MorphOS can use graphics memory quite extensively which can cause slowdowns or glitches if you run out of it. It usually isn't an issue if you have 64MB or more graphics memory, but lower spec systems with today's resolutions may need some tuning. There are several ways to reduce memory usage and you have to decide or try which is the best for you.&lt;br /&gt;
&lt;br /&gt;
: MorphOS has an &amp;quot;Enhanced Display&amp;quot; mode, which uses the graphics card's 3D functions to draw graphic layers. It consumes more memory than the traditional 2D mode, but it provides some eyecandy, tearless moving etc.&lt;br /&gt;
&lt;br /&gt;
: To reduce its memory usage, you may:&lt;br /&gt;
:* Change its buffering settings on the DisplayEngine settings in MorphOS Preferences. You need to reboot or switch screens for the new settings to take effect.&lt;br /&gt;
:* Disable it completely from the Screens settings in MorphOS Preferences for some or all screens. It may also help if you let it be enabled for Ambient screen, but disable it on other screens you might have.&lt;br /&gt;
&lt;br /&gt;
: Other ways to reduce graphics memory usage:&lt;br /&gt;
:* Lower the color depth of screens from the Screens settings. 16-bit might be enough sometimes.&lt;br /&gt;
:* Don't use too many separate screens at the same time.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== How to Open MUI Programs on Their Own Screens ===&lt;br /&gt;
&lt;br /&gt;
: 1) An easy way is to select &amp;quot;Jump to Screen -&amp;gt; New&amp;quot; from the MUI popup menu gadget in program's window border. It always opens in an enhanced mode and clones the resolution from the Ambient screen. Open and save program's MUI settings to save it permanently.&lt;br /&gt;
: [[FIle:MorphOS3_jPV_Newscreen.png|120px]]&lt;br /&gt;
&lt;br /&gt;
: 2) A more configurable method is to open program's MUI settings, select the Screen tab, and create a totally new screen definition there. You can edit the screen name and the title to suit your use (you can use program's name for those for example), select any resolution and depth, enable or disable the enhanced mode etc. In many cases this is a better method, because you can save graphics memory by not using the enhanced mode for screens which you're going to use for full screen apps only or so.&lt;br /&gt;
&lt;br /&gt;
: You can switch between the screens with lamiga-m (lcommand-m) keyboard shortcut, or by clicking the screen depth gadget (left click switches to the next screen, right click gives you a menu where you can select any open screen).&lt;br /&gt;
: [[File:Tips_Screendepthmenu.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Advanced Features ==&lt;br /&gt;
&lt;br /&gt;
=== Default Device Icons ===&lt;br /&gt;
&lt;br /&gt;
: If you want a certain default icon for all the units of a certain device, you can create an icon named def_DEVICENAMExdisk.info to your default icons path (SYS:Prefs/Presets/Deficons/ by default).&lt;br /&gt;
&lt;br /&gt;
: For example the deficon for SMBFS devices would be called def_SMBFSxdisk.info.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Default Icon for Ambient Windows ===&lt;br /&gt;
&lt;br /&gt;
: By default there isn't a default icon file for the icon you see when iconifying an Ambient window (a view). If you want to override the built-in icon, create or copy a new icon file to your default icons path and name it to '''def_view.info'''. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Old Style Preferences Icons ===&lt;br /&gt;
&lt;br /&gt;
[[File:Separate_prefs_in_MorphOS.png|thumb|Example of separate system prefs in MorphOS]]&lt;br /&gt;
: You can have separate preferences icons in the SYS:Prefs/ directory in the old Amiga style for MorphOS system prefs. Make or copy icons named with a corresponding sub preference name into the SYS:Prefs/ dir and edit their Default Tool to &amp;quot;:MorphOS/Prefs/Preferences&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
: There's already a main preferences icon in SYS:Prefs, so here's an easy example: &amp;quot;copy SYS:Prefs/Preferences.info SYS:Prefs/Network.info&amp;quot;, after which double clicking the new Network icon opens the network preferences directly.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Hilight Options in Listers ===&lt;br /&gt;
&lt;br /&gt;
: If you want to use &amp;quot;Alternated rows&amp;quot; and &amp;quot;Hilighted sorting column&amp;quot; options in the Lister settings with a grapchics card that doesn't support 3D acceleration.&lt;br /&gt;
: Type in shell:&lt;br /&gt;
: &amp;lt;tt&amp;gt;Setenv MUI/fastppa SAVE 1&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Copy Selected Filenames ===&lt;br /&gt;
&lt;br /&gt;
: You can use the internal Ambient command &amp;quot;copyselectiontoclipboard&amp;quot; to copy selected filenames with or without path information to the clipboard. For example, create a new custom hotkey in the Ambient Settings and define &amp;quot;copyselectiontoclipboard VIEWID=%Si FULLPATH&amp;quot; as an internal command for it.&lt;br /&gt;
&lt;br /&gt;
: User may find it very useful to paste around the names selected in the Ambient windows in many situations.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Using ARexx Ports from Lua ===&lt;br /&gt;
&lt;br /&gt;
: MorphOS comes with a native implementation of the Lua scripting language. It can be used for script writing with application interacting instead of the emulated 3rd party ARexx. Lua can use existing ARexx ports with its ipc.module.&lt;br /&gt;
&lt;br /&gt;
: Load the IPC module first with the '''require 'ipc'''' line (unlike the standard Lua distribution, all modules have to be loaded with the ''require'' function on MorphOS. Check available modules from the ''MOSSYS:Libs/Lua/'' directory.)&lt;br /&gt;
&lt;br /&gt;
:* ipc.'''address(port)''' - sets the default ARexx port. Port &amp;quot;COMMAND&amp;quot; executes commands as DOS shell commands. &lt;br /&gt;
:* '''ipc.checkport(port)''' - checks if ARexx port is available. &lt;br /&gt;
:* ipc.'''rx(command)''' - sends command to a port set with ipc.address. It returns ARexx RESULT. &lt;br /&gt;
:* '''ipc.waitforport(name[, interval])''' - Waits for a ARexx port. Script is aborted if the port isn't found.&lt;br /&gt;
&lt;br /&gt;
: More about the topic [[Getting_Started_with_Lua|here]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Copying a Whole Disk As an Image File ===&lt;br /&gt;
&lt;br /&gt;
: You can access raw data of drives by MorphOS's RAWDISK: device. Partitions or whole disk can be copied in or out with it, but be careful to write to the correct destination! For copying you need to use SDK's cp command or standard Copy command with the DIRECT option.&lt;br /&gt;
&lt;br /&gt;
: You can browse available disks and devices by opening RAWDISK: device from the shell (just type RAWDISK: on the shell) or from Ambient (hit the / key, clear existing text, and write RAWDISK: to the string line). Browse to the Devices directory and then to the wanted device and unit to see the actual disk image file (rawdisk) and partition files in a separate partition table directory. Partition files let you recognize more easily that you're accessing the wanted disk. They also have information like device and filesystem names told in file comments (use the List command or Ambient to see them).&lt;br /&gt;
&lt;br /&gt;
: As an example, to make a backup of a whole SD card which is placed in a USB reader (the card is found in usbscsi.device unit 3):&lt;br /&gt;
: &amp;lt;tt&amp;gt;Copy DIRECT RAWDISK:Devices/usbscsi.device/3/rawdisk work:sdcard.img&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: And to copy the image back to the SD card (removes all existing data, be careful!):&lt;br /&gt;
: &amp;lt;tt&amp;gt;Copy DIRECT work:sdcard.img RAWDISK:Devices/usbscsi.device/3/rawdisk&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: This works with all raw disk image files like Raspberry Pi's OS distributions etc.&lt;br /&gt;
&lt;br /&gt;
: Single partitions can also be copied from the RAWDISK:Disks directory.&lt;br /&gt;
&lt;br /&gt;
: If you want to access the data in saved image files without needing to write them back to any device, you can mount them with help of [[Tools/FileImageCtrl]] and [[Tools/Mounter]] programs. You can either mount partitions directly with the [[Tools/FileImageCtrl|FileImageCtrl]] tool or insert disk images on it and mount the wanted partitions with the [[Tools/Mounter|Mounter]] tool.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Using WLAN with Hidden SSID ===&lt;br /&gt;
&lt;br /&gt;
: If you have to use wireless network with hidden SSID, you can add &amp;quot;scan_ssid=1&amp;quot; line in your ENVARC:sys/Wireless.prefs file's network block.&lt;br /&gt;
&lt;br /&gt;
: Contents should look something like this:&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;tt&amp;gt;network={&lt;br /&gt;
: &amp;amp;nbsp;&amp;amp;nbsp;ssid=&amp;quot;ThatHiddenSSID&amp;quot;&lt;br /&gt;
: &amp;amp;nbsp;&amp;amp;nbsp;scan_ssid=1&lt;br /&gt;
: &amp;amp;nbsp;&amp;amp;nbsp;psk=&amp;quot;password&amp;quot;&lt;br /&gt;
: }&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: Note: It's not recommended to hide the SSID, because it doesn't add security in practise. Use this only if you can't control the network you're connecting.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Modifying Screen and Keyboard Brightness on a Laptop without Using KB Shortcuts ===&lt;br /&gt;
&lt;br /&gt;
: Brightness values can be modified by editing the ENVARC:sys/laptopquick.conf file with a text editor. The values are taken in use after a reboot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Opening Ambient Windows from the Shell or Scripts ===&lt;br /&gt;
&lt;br /&gt;
: Directories can be opened with the [[Shell_Commands/Open|Open]] command, but it only opens them in the default view mode:&lt;br /&gt;
: &amp;lt;tt&amp;gt;Open SYS:Applications&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: If you need to open windows with certain location, size, position, and mode, you can use the LoadURI ARexx command. LoadURI accepts the following parameters:&lt;br /&gt;
:* URI which contains a path and attributes with values. The attributes are given after a question mark and they are separated with the &amp;amp; delimiter. Possible attributes are ''view'' (icon or list), ''mode'' (all, icons, or thumbs),  ''top'' (pixels from the top border), ''left'' (pixels from the left border), ''width'', and ''height''.&lt;br /&gt;
:* NEW=NEWWIN/S: opens a new window even if similar window would already be opened&lt;br /&gt;
:* RELOAD/S: reloads the URI&lt;br /&gt;
:* FORCE/S: forces full reloading&lt;br /&gt;
:* BROWSER/N: forces the browser mode on (1) or off (0)&lt;br /&gt;
:* VIEWID/N: specifies view/window ID&lt;br /&gt;
&lt;br /&gt;
: Use the ''AMBIENT'' port in ARexx scripts.&lt;br /&gt;
&lt;br /&gt;
: To open the SYS:Libs directory in the list mode showing all files in a 440x600 window at position x=350, y=50, no matter if it has been opened previously:&lt;br /&gt;
: &amp;lt;tt&amp;gt;'LoadURI &amp;quot;file://SYS:Libs?view=list&amp;amp;mode=all&amp;amp;top=50&amp;amp;left=350&amp;amp;width=440&amp;amp;height=600&amp;quot; NEW'&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: To open a directory in the icon mode showing thumbnails in a 500x400 window at position x=350, y=50, the window is also opened in the spatial (non browser) mode:&lt;br /&gt;
: &amp;lt;tt&amp;gt;'LoadURI &amp;quot;file://MOSSYS:Prefs/Wallpapers/1280x1024?view=icon&amp;amp;mode=thumbs&amp;amp;top=50&amp;amp;left=350&amp;amp;width=500&amp;amp;height=400&amp;quot; BROWSER=0'&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: If you don't want to write full ARexx scripts but would like to run them just as single shell commands, you can use the [[Shell_Commands/RXCmd|RXCmd]] shell command (notice that you have to escape the inner quotation marks with the asterisks):&lt;br /&gt;
: &amp;lt;tt&amp;gt;RXCmd AMBIENT &amp;quot;LoadURI *&amp;quot;file://SYS:Libs?view=list&amp;amp;mode=all&amp;amp;top=50&amp;amp;left=350&amp;amp;width=440&amp;amp;height=600*&amp;quot; NEW&amp;quot;&lt;br /&gt;
: RXCmd AMBIENT &amp;quot;LoadURI *&amp;quot;file://MOSSYS:Prefs/Wallpapers/1280x1024?view=icon&amp;amp;mode=thumbs&amp;amp;top=50&amp;amp;left=350&amp;amp;width=500&amp;amp;height=400*&amp;quot; BROWSER=0&amp;quot;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Bundled Software ==&lt;br /&gt;
&lt;br /&gt;
=== Flacapella Settings for MP3 Encoding ===&lt;br /&gt;
&lt;br /&gt;
: Example of a custom encoder setting in Flacapella:&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;tt&amp;gt;Compress Command: c:lame -V0 --tt &amp;quot;{title}&amp;quot; --ta &amp;quot;{artist}&amp;quot; --tl &amp;quot;{album}&amp;quot; --tn {track} {?coverfile:--ti &amp;quot;{coverfile}&amp;quot;} {input} {output}&lt;br /&gt;
: File Extension: mp3&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: This will encode tracks to mp3 files with title, artist, album and track number tags. It also embeds fetched cover image in files, if image was found. &lt;br /&gt;
: Example assumes you have [https://www.morphos-storage.net/?find=lame LAME] installed in C:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Jukebox Tips ===&lt;br /&gt;
&lt;br /&gt;
:* If you select any song in playlist by clicking it just once, it's played next no matter if you have random or sequential mode in use. &lt;br /&gt;
:* You can adjust volume in Jukebox by using mouse wheel over its screenbar module. &lt;br /&gt;
:* Displayed columns can be configured on the fly by right clicking the column title.&lt;br /&gt;
:* Jukebox can be better integrated into Ambient and its contextual menus with the [http://aminet.net/package/mus/play/JukeboxAdder JukeboxAdder] script.&lt;br /&gt;
:* Two new tooltypes were presented in MorphOS 3.8: &lt;br /&gt;
:** '''FRAMESCAN=NO''' disables the Reggae framescanning for tracks that have unknown duration. It speeds up the loading of such tracks, but you'll lose the seeking ability with them. &lt;br /&gt;
:** '''STREAMBUFFER=YES''' activates the Reggae streambuffer class which reduces stuttering, but causes lag on track change and seeking.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== How to Reduce OWB's HD Writes ===&lt;br /&gt;
&lt;br /&gt;
: OWB writes a lot of data to the hard drive by default. You might want to reduce it if you're paranoid about SFS fragmentation, filesystem corruption, privacy, or you'd like to avoid certain databases getting too big (which can cause slowdowns). Or you just want your .recycled dir to have other than the OWB files. One option is to use the Private Browsing mode always, but here are tips if you don't want to activate that always or you want to restrict certain writes only.&lt;br /&gt;
&lt;br /&gt;
:* Disable the TopSites feature. This makes a write for every page you visit, it's an awful amount. Its database (conf/TopSites.db) can also grow to hundreds of megabytes, which causes very noticeable slowdowns to browsing. You can disable it with the &amp;quot;Setenv SAVE OWB_DISABLE_TOPSITES 1&amp;quot; command in the shell, and if the database file has already grown too big, you can remove it.&lt;br /&gt;
:* Disable the Website Icons feature. Open the Interface settings and uncheck all Website Icons checkmarks. &lt;br /&gt;
:* Disable all saving options from the Privacy settings.&lt;br /&gt;
&lt;br /&gt;
: If you still need some option enabled, because some site requires it, you can soft link its configuration file to Ram Disk. I, for example, still have Local Storage enabled, but I have linked its dir to ENV: (which resides in Ram Disk). To do that, make LocalStorage directories to both ENV: and ENVARC: (that ensures that it's created after a reboot too), open the shell and cd into your OWB/Conf/ dir, rename or delete the old LocalStorage dir, type &amp;quot;makelink LocalStorage ENV:LocalStorage&amp;quot;. Using ENV: gives the advantage to have some files saved so that those settings are restored in every boot. If you're happy with a certain setting, copy the corresponding file to ENVARC: and it will be preserved without being messed up with the later usage. If you just want to have the configuration files enabled, but cleared on every boot, you could soft link them to T: for example.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Alternative YouTube Script for OWB ===&lt;br /&gt;
&lt;br /&gt;
: [http://www.morphzone.info/modules/newbb_plus/viewtopic.php?forum=9&amp;amp;topic_id=9799&amp;amp;post_id=109979&amp;amp;viewmode=flat&amp;amp;sortorder=0&amp;amp;showonepost=1 YouTube Center] is a feature rich configureable userscript for improving YouTube experience. It's made for mainstream browsers, but it also works on OWB! All videos can be forced to HTML5 to get them work in OWB. It's heavier than Fab's official OWB script, but works fine as an option or as a backup plan :). Script saves its settings to LocalStorage to #?www.youtube.com#? files.&lt;br /&gt;
&lt;br /&gt;
: Note: YouTube defaults to the HTML5 player nowadays and you might be fine without any Flash-&amp;gt;HTML5 converter scripts. It's probably better to install this script only if you want some other features from it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Watching Videos with Less CPU Load in OWB ===&lt;br /&gt;
&lt;br /&gt;
: When watching a video in OWB, the fullscreen mode makes a lot less CPU load than the default embedded mode, because the fast overlay mode is used then. CPU load may drop from 100% to 40% for example. Wait until the video really starts playing before clicking the fullscreen button on it, or it may fail and you have to reload the video to be able to try it again. Some videos may have a fullscreen option in their contextual menu too. Remember to have Fullscreen Fix scripts added and enabled from the Scripts window (&amp;quot;Windows-&amp;gt;Scripts...&amp;quot; pulldown menu entry) for YouTube, Dailymotion, and Vimeo.&lt;br /&gt;
&lt;br /&gt;
: Note: check that you really have the latest YouTube fullscreen fix script from http://fabportnawak.free.fr/owb/scripts/YouTube_Fullscreen_Fix.js in your OWB/Scripts/ directory. Grunch doesn't get updated for the latest version always for example.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Problems with YouTube Videos ===&lt;br /&gt;
&lt;br /&gt;
:* Now that YouTube defaults to HTML5, our days of ad-free videos have ended. It also means that the Content Blocking (AdBlock) option in the OWB's settings can block some videos. If you have some videos which won't start playing, try to disable the Content Blocking option and try again. If that was the problem, but you want to keep the content blocking enabled, add an allow rule to the Content Blocking settings. Open &amp;quot;Windows-&amp;gt;Content Blocking...&amp;quot; from the OWB's pulldown menus, click the Add button, and write &amp;quot;youtube.com&amp;quot; to the Rule line. Close the window and try the video again.&amp;lt;br /&amp;gt;[[File:OWB_ContentBlockingYT.png]]&lt;br /&gt;
&lt;br /&gt;
:* If all videos refuse to play, check if you have any YouTube converter scripts enabled in the &amp;quot;Windows-&amp;gt;Scripts...&amp;quot; settings. The Fullscreen Fix script is the only one needed and you should disable all converter scripts.&lt;br /&gt;
&lt;br /&gt;
:* Flash plugins can also break compatibility with YouTube, so if you have the swfdec_plugin.library file in your OWB/Plugins/ directory, you have the following options to choose from:&lt;br /&gt;
:** Remove the file from use if you don't need flash anywhere. The plugin doesn't work too well generally anyway.&lt;br /&gt;
:** Keep the file, but disable it for all pages by unchecking the &amp;quot;Settings-&amp;gt;Preferencfes-&amp;gt;Content-&amp;gt;Allow plugins&amp;quot; option. You can then enable it temporarily from &amp;quot;Settings-&amp;gt;Plugins-&amp;gt;Enable&amp;quot; if needed.&lt;br /&gt;
:** Disable it temporarily from &amp;quot;Settings-&amp;gt;Plugins-&amp;gt;Disable&amp;quot;, and reload the page.&lt;br /&gt;
:** Disable it just for YouTube by adding a new URL setting from &amp;quot;Windows-&amp;gt;URL Settings...&amp;quot;. Click the Add button, edit the URL line to for example &amp;quot;youtube.com&amp;quot;, and uncheck the Plugins option.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== OWB Doesn't Work or Stopped Working with Certain Web Pages ===&lt;br /&gt;
&lt;br /&gt;
:* Sometimes it helps to change the &amp;quot;Spoof as&amp;quot; setting in OWB. Web pages may offer different kind of content depending on what browser they think you are using. Some popular CAPTCHAs don't work with the default spoofing, but do work when spoofed as iPad for instance. iPad is generally a good option to start trying the spoofing, because you probably get the page in its simpliest form then.&lt;br /&gt;
&lt;br /&gt;
:* There are some bugs in the JavaScript engine in the latest available OWB version (1.24 at the time of writing) and that causes problems with some web pages, but there's a chance that these pages would still work with an earlier OWB version. You can download earlier OWB versions from [http://fabportnawak.free.fr/owb/ Fab's homepage] and install them, for example, to a different directory than your current OWB installation. There's no problem having two or even several OWB installations on your system, you can just launch whichever you want. As an example, Google Maps stopped working with OWB 1.24 in autumn 2017, but it still continued to work with [http://fabportnawak.free.fr/owb/owb-morphos-1.23.lha OWB 1.23].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Creating an ISO Image ===&lt;br /&gt;
&lt;br /&gt;
: Jalapeno can also create and save ISO images which will preserve MorphOS/AmigaOS file attributes and comments. Images can be used for backups or even be booted from USB devices.&lt;br /&gt;
&lt;br /&gt;
: An option to create an ISO image is found on the pulldown menu in the Burn Files section.&lt;br /&gt;
&lt;br /&gt;
: [[File:Tips_Create_ISO.png|200px]]&lt;br /&gt;
&lt;br /&gt;
: If the resulting image file will be bigger than 1GB, Jalapeno splits it into 1GB parts. Those parts can be joined into one big image file with the Join command in the shell, but remember the filesize limits of your target [https://library.morph.zone/Filesystems filesystem] when doing that.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Copying a CD/DVD to an ISO Image ===&lt;br /&gt;
&lt;br /&gt;
: If you want to make a standard, easily mountable, ISO image out of an existing CD or DVD, a good way to achieve it is to use the ReadCD program provided with the Jalapeno program on the standard MorphOS installation. Jalapeno itself can also create image files of optical media by selecting &amp;quot;Save as...&amp;quot; from the &amp;quot;Copy Tracks&amp;quot; pull-down menu, but resulting images aren't mountable by the system, because Jalapeno uses options that include more data into the images, for error checking etc.&lt;br /&gt;
&lt;br /&gt;
: Do these steps from the shell to read a CD/DVD into a standard ISO image:&lt;br /&gt;
:# Find your CD drive device by typing: MOSSYS:Data/Jalapeno/readcd -scanbus&lt;br /&gt;
:# Create an ISO image by typing (replace &amp;quot;1,1,0&amp;quot; to what you saw in the previous step, and the image path to what you want): MOSSYS:Data/Jalapeno/readcd -dev 1,1,0 f=ram:image.iso&lt;br /&gt;
&lt;br /&gt;
=== Disabling the Default UTF-8 Mode with Scribble ===&lt;br /&gt;
&lt;br /&gt;
: Scribble uses UTF-8 encoding by default, but you might prefer to default to the traditional ASCII format instead. The UTF-8 mode can be disabled from the pulldown menu in Scribble, but the setting isn't saved if you save the program settings.&lt;br /&gt;
: [[File:Scribble_ascii1.png|128px]]&lt;br /&gt;
&lt;br /&gt;
: If you want to disable it by default, you have to open the &amp;quot;Save As...&amp;quot; requester, enable the &amp;quot;Make Default&amp;quot; option (also check that Encoding is set to ASCII), and save a file (can be any file anywhere).&lt;br /&gt;
: [[File:Scribble_ascii2.png|205px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 3rd Party Software ==&lt;br /&gt;
&lt;br /&gt;
=== Where to Get Software? ===&lt;br /&gt;
:* Check [http://library.morph.zone/Links#File_Repositories file repositories] for manual installing&lt;br /&gt;
:* [http://www.geit.de/eng_grunch.html Grunch] is a good packet manager for automatic installation and updating of selected software&lt;br /&gt;
:* [http://www.meta-morphos.org/WArMUp/chrysalis_en.pdf Chrysalis] is a preconfigured environment and software distribution package ([http://www.warmup-asso.org/download/pack/chrysalis.iso Download ISO image])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Custom Ambient Menus with AREXX ===&lt;br /&gt;
&lt;br /&gt;
: You can add own menu items to Ambient pulldown menus with AREXX. Read SYS:MorphOS/Ambient/docs/arexx.txt for more info about AREXX usage or download the [http://morphos-files.net/remote/CRABUM CRABUM] program, which helps you to create correct AREXX lines ([http://library.morph.zone/Getting_Started#Creating_Menus_with_CRABUM tutorial]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Help with Shell Commands ===&lt;br /&gt;
&lt;br /&gt;
: MorphOS Library contains descriptions of all [http://library.morph.zone/Shell_Commands shell commands] and the descriptions can be displayed on the shell with the [http://aminet.net/package/util/batch/Chelp Chelp] script. The script can be used to replace older [http://aminet.net/package/util/cli/Help Help] program (which would otherwise be nice still, but it only contains help for MorphOS 1.x commands).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Utilizing Your Keyboard's Multimedia Keys ===&lt;br /&gt;
&lt;br /&gt;
:* The [http://www.geit.de/eng_mmkeyboard.html MMKeyboard] software can be used to assign different kinds of functions to extra keys found on some keyboards.&lt;br /&gt;
:* The [http://aminet.net/package/mus/play/MultiMeedio MultiMeedio] script provides a unified control for all popular media players.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Hardware Related ==&lt;br /&gt;
&lt;br /&gt;
=== Removing Startup Sound on Macs ===&lt;br /&gt;
&lt;br /&gt;
: Sadly there isn't any known way to disable that annoying startup sound from MorphOS itself or from Open Firmware, but there are few different ways to achieve it anyway.&lt;br /&gt;
&lt;br /&gt;
:* If you plan to use Mac as MorphOS only system, but you still have OSX installed, you can mute the audio from OSX before wiping it out by installing MorphOS. Startup sound doesn't come back if you won't boot into OSX anymore.&lt;br /&gt;
:* If you don't have OSX anymore, you could try to remove sound with some Linux distribution's live/installation CD. More info [http://www.meta-morphos.org/faq.php?id_cat=2&amp;amp;myfaq=yes&amp;amp;categories=Installation+et+d%E9marrage#74 here] and [https://morphosuser.wordpress.com/2014/12/28/removing-the-boot-sound/ here].&lt;br /&gt;
:* If you use OSX and MorphOS as a dualboot system you can install [http://www5e.biglobe.ne.jp/~arcana/StartupSound/index.en.html StartupSound.prefPane] for OSX.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Speeding Up the Startup Manager on Macs ===&lt;br /&gt;
&lt;br /&gt;
: Startup Manager (the boot menu you get by booting with option/alt key pressed) can be slow when it tries to find network boot devices. To speed it up go to the OF prompt and type &amp;quot;'''setenv skip-netboot? true'''&amp;quot;. Funnily enough, it only affects if you have network cable plugged in.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Booting MorphOS ISO from USB Stick ===&lt;br /&gt;
&lt;br /&gt;
: MorphOS Team has released an [http://www.morphos-team.net/guide/usb-boot official guide] for USB booting, but I've also noticed that at least some Macs (Mac mini and Powerbook for example) have certain ud alias for USB drive. You can use that as a shortcut and get the booting done with less work (no need to search the correct path, works even when USB stick is in a hub, less typing and less to remember).&lt;br /&gt;
&lt;br /&gt;
: If you have only one mass storage device connected, you can just boot into Open Firmware prompt (command-alt-o-f) and type:&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;tt&amp;gt;boot ud:,\boot.img bi umsd0:morphos.iso&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: (Remember to have both boot.img and morphos.iso on the stick)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Keyboard Reboot on ADB Laptops ===&lt;br /&gt;
&lt;br /&gt;
: The traditional Ctrl-Command-Command (Ctrl-Amiga-Amiga) keyboard combination doesn't work on laptops using the ADB interface for the keyboard, because ADB doesn't make difference between the left and right command keys. You can reboot them with an alternative Fn-Alt-Alt keyboard combination.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Blackouts or Graphical Flickering on Mac mini ===&lt;br /&gt;
&lt;br /&gt;
: Mac minis suffer from short blackouts with some monitors when the connection is made with a DVI cable. The screen gets usually blanked for few seconds, and depending of the monitor it may happen more or less frequently. Issue may also show up as flickering lines on the screen and it may get worse and worse until the monitor is unable to sync to the signal anymore.&lt;br /&gt;
&lt;br /&gt;
: One option to get around it is to use a VGA adapter/cable, because it doesn't seem to happen with it.&lt;br /&gt;
&lt;br /&gt;
: An another option is to try to lower the pixel clock value for the used screenmode from the Monitors settings in the MorphOS preferences. If your default mode has for example vertical frequency of 75 Hz, going to 60 Hz mode may help. Sometimes even a small change can help, and lowering just couple clicks from 60 Hz does the trick.&lt;br /&gt;
&lt;br /&gt;
: This seems to be a common problem with Mac minis and &amp;quot;non-coherent&amp;quot; displays as discussed for example [https://discussions.apple.com/thread/2723110 here].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Disabling the Internal Touchpad on Laptops ===&lt;br /&gt;
==== From the Touchpad Settings (Preferred)====&lt;br /&gt;
: An internal touchpad can be disabled from the MorphOS system settings nowadays, and this is the preferred method. Open '''System Settings -&amp;gt; Touchpad''' and disable the '''Enable the Touchpad driver''' setting.&lt;br /&gt;
&lt;br /&gt;
: [[File:MorphOS_Preferences_disabling_touchpad.png|200px]]&lt;br /&gt;
&lt;br /&gt;
==== From the USB Settings ====&lt;br /&gt;
: The touchpad can be disabled temporarily by removing its binding in the USB settings. This setting is reverted back next time the machine is booted or if USB class scanning is done otherwise.&lt;br /&gt;
&lt;br /&gt;
: To remove the binding, open the USB settings from the MorphOS Preferences application and go to the Devices list.&lt;br /&gt;
:* If you have &amp;quot;Apple Internal Trackpad&amp;quot; alone in the list, you can just select it and click the Unbind button.&lt;br /&gt;
:: [[File:Disabling touchpad ibook.png|200px]]&lt;br /&gt;
:* If your machine has a combined internal keyboard and trackpad device, double click it (&amp;quot;Apple Internal Keyboard / Trackpad&amp;quot;). Select Touchpad from the newly opened window and then click the Release Binding button.&lt;br /&gt;
:: [[File:Disabling touchpad powerbook.png|200px]]&lt;br /&gt;
&lt;br /&gt;
==== Removing the Driver at Boot Time ====&lt;br /&gt;
: Touchpad can also be disabled permanently by removing touchpad.library from use. Removing it is a bit tricky, because it resides in &amp;quot;ROM&amp;quot; and not as a file in system directories, but it can be done with the mf (module filter) boot command argument.&lt;br /&gt;
&lt;br /&gt;
: The boot command arguments can be edited by editing the bootinfo.txt file on Macs. The bootinfo.txt file is found on the Boot: partition, which also contains the boot.img file. If you don't see the partition, you probably need to mount it first by using, for example, the [[Tools/Mounter | Mounter]] tool. '''Note that if you edit the bootinfo.txt file, you must bless the file with the [[Shell_Commands/HFSSetMacBoot | HFSSetMacBoot]] command or the system won't be bootable anymore!'''&lt;br /&gt;
&lt;br /&gt;
: To add the mf argument, open the bootinfo.txt file with a text editor, find the line between &amp;lt;BOOT-SCRIPT&amp;gt; and &amp;lt;/BOOT-SCRIPT&amp;gt; lines (it starts with &amp;quot;boot&amp;quot;), and add ''mf=touchpad.library'' at the end of the boot line. Save the file and '''remember to bless it with the ''HFSSetMacBoot Boot:bootinfo.txt'' command from the shell or your system won't boot again!'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== MorphOS Boot Arguments on U-boot Systems ===&lt;br /&gt;
: To boot into MorphOS, hardware has to load a MorphOS boot image file that contains the kernel and core drivers. The boot image file also accepts arguments to control the boot procedure before the actual operating system is loaded from the system partition. The boot arguments usage on [[Open Firmware]] systems is well [[Open_Firmware#Boot_Arguments | documented]], but they must be given in a different way on [http://www.intuitionbase.com/static.php?section=uboot U-boot] systems (Sam460ex/cr, AmigaOne X5000).&lt;br /&gt;
&lt;br /&gt;
: On the U-boot systems the boot arguments have to be set in the '''morphosargs''' environment variable in the U-boot console.&lt;br /&gt;
&lt;br /&gt;
: To check if you already have the variable set:&lt;br /&gt;
: &amp;lt;tt&amp;gt;printenv morphosargs&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: To set an argument (in this example we'd disable an unsupported SCSI controller by removing the SCSI driver from the boot image by using the ''module filter (mf)'' boot argument):&lt;br /&gt;
: &amp;lt;tt&amp;gt;setenv morphosargs mf=symbios.device&amp;lt;/tt&amp;gt;&lt;br /&gt;
: &amp;lt;tt&amp;gt;saveenv&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: To edit an existing variable:&lt;br /&gt;
: &amp;lt;tt&amp;gt;editenv morphosargs&amp;lt;/tt&amp;gt;&lt;br /&gt;
: &amp;lt;tt&amp;gt;saveenv&amp;lt;/tt&amp;gt;&lt;/div&gt;</summary>
		<author><name>JPV</name></author>	</entry>

	<entry>
		<id>https://library.morph.zone/index.php?title=Filesystems&amp;diff=4314</id>
		<title>Filesystems</title>
		<link rel="alternate" type="text/html" href="https://library.morph.zone/index.php?title=Filesystems&amp;diff=4314"/>
				<updated>2023-07-06T09:56:46Z</updated>
		
		<summary type="html">&lt;p&gt;JPV: Updated some links&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== About ==&lt;br /&gt;
This page collects information about file systems working natively under MorphOS. In addition to these, Amiga 68k file systems can be used too ([[Preparing_an_Amiga_Hard_Drive|example]]).&lt;br /&gt;
&lt;br /&gt;
'''NOTE: this page is still under construction and many values would need to be verified!''' Any feedback is welcome to this [https://morph.zone/modules/newbb_plus/viewtopic.php?topic_id=12144&amp;amp;forum=3 thread].&lt;br /&gt;
&lt;br /&gt;
== Disk File Systems ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! style=&amp;quot;text-align:left;&amp;quot;| Name&lt;br /&gt;
! style=&amp;quot;text-align:left;&amp;quot;| Location&lt;br /&gt;
! style=&amp;quot;text-align:left;&amp;quot;| Bootable&lt;br /&gt;
! style=&amp;quot;text-align:left;&amp;quot;| Native File Properties&lt;br /&gt;
! style=&amp;quot;text-align:left;&amp;quot;| Max File Name Length&lt;br /&gt;
! style=&amp;quot;text-align:left;&amp;quot;| Max File Size&lt;br /&gt;
! style=&amp;quot;text-align:left;&amp;quot;| Max Partition Size&lt;br /&gt;
! style=&amp;quot;text-align:left;&amp;quot;| Notes&lt;br /&gt;
|-&lt;br /&gt;
| Smart File System (SFS)&lt;br /&gt;
| Built-in (boot.img)&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
| 107&lt;br /&gt;
| 4 GiB - 2 bytes&lt;br /&gt;
| 128 GiB&lt;br /&gt;
| The default file system&lt;br /&gt;
|-&lt;br /&gt;
| Professional File System III (PFS3)&lt;br /&gt;
| Built-in (boot.img)&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
| 107&lt;br /&gt;
| 2 GiB&lt;br /&gt;
| 104 GiB&lt;br /&gt;
| Legacy support for PFS2 and AFS1&lt;br /&gt;
|-&lt;br /&gt;
| Fast File System 2 (FFS)&lt;br /&gt;
| Built-in (boot.img)&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
| 107&lt;br /&gt;
| 4 GiB - 2 bytes&lt;br /&gt;
| 2 TiB to 128 TiB&lt;br /&gt;
| Legacy support for OFS and FFS&lt;br /&gt;
|-&lt;br /&gt;
| FAT File System (FAT)&lt;br /&gt;
| Built-in (boot.img)&lt;br /&gt;
| Yes&lt;br /&gt;
| No&lt;br /&gt;
| 255* (UCS-2)&lt;br /&gt;
| 4 GiB&lt;br /&gt;
| 2 TiB&lt;br /&gt;
| Supports FAT12, FAT16, and FAT32 with LFN&lt;br /&gt;
|-&lt;br /&gt;
| Mac File System (HFS)&lt;br /&gt;
| Built-in (MOSSYS:L)&lt;br /&gt;
| No&lt;br /&gt;
| No&lt;br /&gt;
| 31&lt;br /&gt;
| 2 GiB&lt;br /&gt;
| 2 TiB&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Hierarchical File System (HFS+)&lt;br /&gt;
| Built-in (MOSSYS:L)&lt;br /&gt;
| No&lt;br /&gt;
| No&lt;br /&gt;
| 255* (UTF-16) &lt;br /&gt;
| 2 TiB**&lt;br /&gt;
| 2 TiB**&lt;br /&gt;
| Read-only&lt;br /&gt;
|-&lt;br /&gt;
| Second Extended File System (ext2, ext3, ext4)&lt;br /&gt;
| Built-in (MOSSYS:L)&lt;br /&gt;
| No&lt;br /&gt;
| No&lt;br /&gt;
| 255*&lt;br /&gt;
| 16 GiB to 2 TiB&lt;br /&gt;
| 2 TiB&lt;br /&gt;
| Limited read-only support for ext4&lt;br /&gt;
|-&lt;br /&gt;
| NT File System (NTFS)&lt;br /&gt;
| Built-in (MOSSYS:L)&lt;br /&gt;
| No&lt;br /&gt;
| No&lt;br /&gt;
| 255*&lt;br /&gt;
| 2 TiB**&lt;br /&gt;
| 2 TiB**&lt;br /&gt;
| Read-only&lt;br /&gt;
|-&lt;br /&gt;
| SGI X File System (XFS)&lt;br /&gt;
| Built-in (MOSSYS:L)&lt;br /&gt;
| No&lt;br /&gt;
| No&lt;br /&gt;
| 255*&lt;br /&gt;
| 2 TiB**&lt;br /&gt;
| 2 TiB**&lt;br /&gt;
| Read-only&lt;br /&gt;
|-&lt;br /&gt;
| Ice File System (IceFS)&lt;br /&gt;
| 3rd party ([http://blubbedev.net/icefs/ link])([https://www.morphos-storage.net/?find=ice-fs link2])&lt;br /&gt;
| Yes/No&lt;br /&gt;
| Yes&lt;br /&gt;
| 107 (255)&lt;br /&gt;
| 9 EB&lt;br /&gt;
| 9 EB&lt;br /&gt;
| Bootable on Pegasos and Efika, but not on Macs&lt;br /&gt;
|-&lt;br /&gt;
| ExFAT File System (ExFAT)&lt;br /&gt;
| 3rd party ([https://www.morphos-storage.net/?find=exfat link])&lt;br /&gt;
| No&lt;br /&gt;
| No&lt;br /&gt;
| 255 UTF-16&lt;br /&gt;
| 128 PiB&lt;br /&gt;
| 128 PiB&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| NT File System 3G (NTFS-3G)&lt;br /&gt;
| 3rd party ([http://blubbedev.net/filesysbox/ link])([https://www.morphos-storage.net/?find=ntfs link2])&lt;br /&gt;
| No&lt;br /&gt;
| No&lt;br /&gt;
| 255&lt;br /&gt;
| 16 EiB&lt;br /&gt;
| 16 EiB&lt;br /&gt;
| Can't be placed on RDB&lt;br /&gt;
|-&lt;br /&gt;
| FS1541&lt;br /&gt;
| 3rd party ([http://aminet.net/package/disk/misc/FS1541-MorphOS link])&lt;br /&gt;
| No&lt;br /&gt;
| No&lt;br /&gt;
| 16&lt;br /&gt;
| 164 KiB&lt;br /&gt;
| 170 KiB&lt;br /&gt;
| For CBM 1541 disks/images&lt;br /&gt;
|-&lt;br /&gt;
| CDRive File System (CDFS)&lt;br /&gt;
| Built-in (boot.img)&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
| 255*&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| ISO 9660/Amiga Rock Ridge/Joliet, audio as WAV files, ISO file support&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;* &amp;lt;/nowiki&amp;gt;Filenames over 107 characters will be stripped&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;** &amp;lt;/nowiki&amp;gt;Theoretical sizes may be bigger, but filesystems using deviceio.library are limited to 2 TiB&lt;br /&gt;
&lt;br /&gt;
== Network File Systems ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! style=&amp;quot;text-align:left;&amp;quot;| Name&lt;br /&gt;
! style=&amp;quot;text-align:left;&amp;quot;| Location&lt;br /&gt;
! style=&amp;quot;text-align:left;&amp;quot;| Native File Properties&lt;br /&gt;
! style=&amp;quot;text-align:left;&amp;quot;| Notes&lt;br /&gt;
|-&lt;br /&gt;
| [https://library.morph.zone/Mounting_Network_Drives#SmbFS SmbFS]&lt;br /&gt;
| Built-in (MOSSYS:C)&lt;br /&gt;
| No&lt;br /&gt;
| For mounting Windows shares or Samba shares (SMB1) on other platforms&lt;br /&gt;
|-&lt;br /&gt;
| [https://library.morph.zone/Mounting_Network_Drives#Smb2FS Smb2FS]&lt;br /&gt;
| Built-in (MOSSYS:C)&lt;br /&gt;
| No&lt;br /&gt;
| For mounting Windows shares or Samba shares (SMB2/3) on other platforms&lt;br /&gt;
|-&lt;br /&gt;
| [https://library.morph.zone/Mounting_Network_Drives#Ssh2FS Ssh2FS]&lt;br /&gt;
| Built-in (MOSSYS:C)&lt;br /&gt;
| No&lt;br /&gt;
| For mounting SFTP shares on other platforms&lt;br /&gt;
|-&lt;br /&gt;
| [https://library.morph.zone/Mounting_Network_Drives#NetFS_Revised NetFS Revised]&lt;br /&gt;
| 3rd party ([http://aminet.net/package/comm/net/NetFS-revised link])&lt;br /&gt;
| Yes&lt;br /&gt;
| For mounting partitions between MorphOS and/or AmigaOS systems&lt;br /&gt;
|-&lt;br /&gt;
| [https://library.morph.zone/Mounting_Network_Drives#FTPMount FTPMount]&lt;br /&gt;
| 3rd party ([http://aminet.net/package/comm/tcp/FTPMount_MOS link])&lt;br /&gt;
| No&lt;br /&gt;
| For mounting FTP sites as part of a filesystem&lt;br /&gt;
|-&lt;br /&gt;
| [https://library.morph.zone/Mounting_Network_Drives#Google_Drive_and_Dropbox_Handlers Amiga Cloud Handlers]&lt;br /&gt;
| 3rd party ([http://aminet.net/package/comm/tcp/AmigaCloudHandlers link])&lt;br /&gt;
| No&lt;br /&gt;
| For mounting Google Drive and Dropbox storage&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>JPV</name></author>	</entry>

	<entry>
		<id>https://library.morph.zone/index.php?title=Main_Page&amp;diff=4311</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://library.morph.zone/index.php?title=Main_Page&amp;diff=4311"/>
				<updated>2023-06-05T14:10:25Z</updated>
		
		<summary type="html">&lt;p&gt;JPV: /* Articles */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;siteLogo&amp;quot; style=&amp;quot;float: right;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size:162%; border:none; margin:0; padding:.1em; color:#274572;&amp;quot;&amp;gt;Welcome to the MorphOS Library,&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;top:+0.2em; font-size:95%; margin-bottom: 30px;&amp;quot;&amp;gt;the wiki based library of MorphOS related documentation.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;strong&amp;gt;Would you like to contribute and edit articles?&amp;lt;/strong&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Please contact us to set up an account via:&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-top: -10px; margin-bottom: 20px;&amp;quot;&amp;gt;https://morph.zone/message2library.png&amp;lt;/div&amp;gt;&lt;br /&gt;
'''Important notes to editors:''' [[Basic Guidelines]] - [[List of Wanted Articles]]&lt;br /&gt;
----&lt;br /&gt;
&amp;lt;small&amp;gt;This page in other languages: [[Strona główna|Polish]] [[Page principale|Français]]&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==About MorphOS==&lt;br /&gt;
MorphOS - The Lightning OS&lt;br /&gt;
&amp;lt;div class=&amp;quot;threecolumns&amp;quot;&amp;gt;&lt;br /&gt;
* [[What is MorphOS?]]&lt;br /&gt;
* [[Hardware Platforms]]&lt;br /&gt;
* [[Installation]]&lt;br /&gt;
* [[Characteristic features]]&lt;br /&gt;
* [[MorphOS integration]]&lt;br /&gt;
* [[MorphOS Development]]&lt;br /&gt;
* [[Developer tools]]&lt;br /&gt;
* [[3D graphics]]&lt;br /&gt;
* [[Games]]&lt;br /&gt;
* [[MorphOS key applications]]&lt;br /&gt;
* [[Platform expansion]]&lt;br /&gt;
* [[Who needs MorphOS?]]&lt;br /&gt;
* [[Conclusions]]&lt;br /&gt;
* [[Useful links]]&lt;br /&gt;
* [[F.A.Q.]]&lt;br /&gt;
* [[Historical notes]]&lt;br /&gt;
* [[Contributors]]&amp;lt;/div&amp;gt;&lt;br /&gt;
A five minute read for users familiar with the Commodore Amiga&lt;br /&gt;
*[[MorphOS in 5 minutes]]&lt;br /&gt;
&lt;br /&gt;
==Articles==&lt;br /&gt;
The core of the MorphOS Library can be found here.  Along with the provided manuals, there are several documents designed to help users get the most out of their MorphOS powered computer.&lt;br /&gt;
&lt;br /&gt;
* [[Fundamentals of MorphOS]]&lt;br /&gt;
* [[Dictionary of Terms]]&lt;br /&gt;
* [[First_Steps_Using_MorphOS | First Steps Using MorphOS]]&lt;br /&gt;
* [[Volume Names]]&lt;br /&gt;
* [[Applications|Applications Included with MorphOS]]&lt;br /&gt;
* [[Tools|Tools Included with MorphOS]]&lt;br /&gt;
* [[Utilities|Utilities Included with MorphOS]]&lt;br /&gt;
* [[Screenbar_Modules|Screenbar Modules Included with MorphOS]]&lt;br /&gt;
* [[Bundled_Games|Games Included with MorphOS]]&lt;br /&gt;
* [[Blankers|Blankers Included with MorphOS]]&lt;br /&gt;
* [[Shell Commands|Shell: Commands]]&lt;br /&gt;
* [[Pattern matching|Shell: Pattern Matching]]&lt;br /&gt;
* [[Filesystems | File Systems]]&lt;br /&gt;
* [[Supported Computers]]&lt;br /&gt;
* [[Hardware Compatibility]]&lt;br /&gt;
* [[MIDI | MIDI Support]]&lt;br /&gt;
* [[Tips and Tricks]]&lt;br /&gt;
&lt;br /&gt;
==Tutorials==&lt;br /&gt;
Welcome to the Tutorials section of the MorphOS Library.  In this aisle of the library you can find examples and step by step instructions to help get the most out of your MorphOS experience.&lt;br /&gt;
&lt;br /&gt;
*[[Getting_Started | Getting Started - A Beginner's Guide to MorphOS]]&lt;br /&gt;
*[[Modifying the User-Startup file]]&lt;br /&gt;
*[[Configuring_Network | Configuring a Network Connection]]&lt;br /&gt;
*[[Installing_software | Installing Third Party Software]]&lt;br /&gt;
*[[Dual-boot MorphOS and MacOS X on a Mac Mini G4]]&lt;br /&gt;
*[[How to write Mails with SimpleMail]]&lt;br /&gt;
*[[Creating Backups]]&lt;br /&gt;
*[[MorphOS External USB Drive Backup Guide]]&lt;br /&gt;
*[[Scanning with SCANdal]]&lt;br /&gt;
*[[Recording an LP with Audio Evolution 4]]&lt;br /&gt;
*[[Passwordless SSH login with RemoteShell]]&lt;br /&gt;
*[[How to Install Directory Opus Magellan II]]&lt;br /&gt;
*[[How to Make MorphOS Look Like OS4]]&lt;br /&gt;
*[[How to Use Game Controllers]]&lt;br /&gt;
*[[Preparing_an_Amiga_Hard_Drive]]&lt;br /&gt;
*[[Mounting_Network_Drives]]&lt;br /&gt;
*[[How to translate program with SimpleCat]]&lt;br /&gt;
*[[Creating_Ambient_Filetypes]]&lt;br /&gt;
*[[Open_Firmware | Using Open Firmware]]&lt;br /&gt;
*[[Print_System | Using the New Printing System]]&lt;br /&gt;
*[[Multi-display | Using Multi-display Setups]]&lt;br /&gt;
&lt;br /&gt;
==Development==&lt;br /&gt;
In the development section of the MorphOS Library, you can find a collection of helpful articles and tutorials focused on MorphOS software development.&lt;br /&gt;
&lt;br /&gt;
*[[First steps in MorphOS programming]]&lt;br /&gt;
*[[Magic User Interface Programming]]&lt;br /&gt;
*[[In-depth: The New MorphOS Memory System]]&lt;br /&gt;
*[[Reggae: MorphOS multimedia framework]]&lt;br /&gt;
*[[An Introduction to MorphOS PPC Assembly]]&lt;br /&gt;
*[[Advanced Topics]]&lt;br /&gt;
*[[Getting Started with Lua]]&lt;br /&gt;
*[[Crash_Course_to_Hollywood_Programming]]&lt;br /&gt;
&lt;br /&gt;
==Benchmarks, Reports &amp;amp; Reviews==&lt;br /&gt;
*[[jPV's MorphOS 2 Review]]&lt;br /&gt;
*[[What's New in MorphOS 3]]&lt;br /&gt;
*[[What's New in MorphOS 3.10]]&lt;br /&gt;
*[[What's New in MorphOS 3.16]]&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
The MorphOS Link Database is a collection of websites that are of interest to all current and potential future users of MorphOS. For easier navigation, we have separated the list of websites into multiple categories.&lt;br /&gt;
&lt;br /&gt;
*[[Links#Community_Portals_.26_Forums|Community Portals]]&lt;br /&gt;
*[[Links#File_Repositories|File Repositories]]&lt;br /&gt;
*[[Links#Shops|Shops]]&lt;br /&gt;
*[[Links#Software|Software]]&lt;br /&gt;
*[[Links#Developers|Developers]]&lt;br /&gt;
*[[Links#Misc|Misc]]&lt;br /&gt;
&lt;br /&gt;
==Work in Progress==&lt;br /&gt;
*[[ReTooled]]&lt;/div&gt;</summary>
		<author><name>JPV</name></author>	</entry>

	<entry>
		<id>https://library.morph.zone/index.php?title=MIDI&amp;diff=4310</id>
		<title>MIDI</title>
		<link rel="alternate" type="text/html" href="https://library.morph.zone/index.php?title=MIDI&amp;diff=4310"/>
				<updated>2023-06-05T14:07:04Z</updated>
		
		<summary type="html">&lt;p&gt;JPV: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''Author: Antoine Dubourg'' - ''Proof-reading: Neil Pearson''&lt;br /&gt;
&lt;br /&gt;
MorphOS is able to make use of the MIDI protocol with various system components.&lt;br /&gt;
&lt;br /&gt;
To make best use of MIDI, it is advised to have some MIDI instruments be it physical devices or soft synthesis.&lt;br /&gt;
&lt;br /&gt;
== Low level components ==&lt;br /&gt;
All the MIDI intricacies are handled by two system components:&lt;br /&gt;
* '''camd.library''', which handles message parsing and delivery to applications&lt;br /&gt;
* '''camdusbmidi.class''', which bridges MIDI messages from USB compliant MIDI devices to camd.library&lt;br /&gt;
&lt;br /&gt;
''camd.library'' is located in ''SYS:MorphOS/Libs/'' while ''camdusbmidi.class'' is located in ''SYS:MorphOS/Classes/USB/''.&lt;br /&gt;
&lt;br /&gt;
=== CAMD concepts ===&lt;br /&gt;
CAMD library was designed in the 90s using the concept of delivery by copying of MIDI messages.&lt;br /&gt;
&lt;br /&gt;
When an application wants to use MIDI, it creates a ''MidiNode'', which is a type of area for storing messages.&lt;br /&gt;
&lt;br /&gt;
Once ''MidiNode'' is created by the application, this node is then linked to its destination name, the MIDI cluster.&lt;br /&gt;
&lt;br /&gt;
''MidiLink'' can be only a single type: sending or receiving. So, an application will send MIDI messages while some will receive MIDI messages. Some might do both.&lt;br /&gt;
&lt;br /&gt;
All the mechanics of CAMD is based around MIDI clusters: they provide a user friendly way to promote MIDI flux. Usually, clusters are presented to &lt;br /&gt;
a user to configure access to MIDI instruments.&lt;br /&gt;
&lt;br /&gt;
Instrument(s) and application(s) can be started in any order. The cluster name is a collection point created by the first one joining the cluster.&lt;br /&gt;
&lt;br /&gt;
=== Understanding the MIDI cluster naming scheme ===&lt;br /&gt;
When a MIDI instrument is connected to CAMD, it 'registers' itself to a MIDI cluster using a specific naming scheme.&lt;br /&gt;
&lt;br /&gt;
Usually, an instrument will create a two way communication link, one for sending MIDI messages and another one for receiving MIDI messages.&lt;br /&gt;
&lt;br /&gt;
The cluster name ending with '.out' is used to send MIDI messages '''to''' the instrument.&lt;br /&gt;
&lt;br /&gt;
The cluster name ending with .'in' is used to receive MIDI messages '''from''' the instrument.&lt;br /&gt;
&lt;br /&gt;
Those '.in' and '.out' are usually prefixed with a name. For example, you have a MIDI instrument of whatever brand, which will usually be shown similar to 'Brand-DeviceName.in' and 'Brand-DeviceName.out'.&lt;br /&gt;
&lt;br /&gt;
== Installing &amp;amp; testing MIDI gear ==&lt;br /&gt;
Initial, first time, setup of MIDI gear can be quite intimidating. It has to be correctly wired if connected using legacy DIN connectors (inverting&lt;br /&gt;
in and out isn't dangerous at all, it will just not work) and figuring out how to use an application often requires some getting used to.&lt;br /&gt;
&lt;br /&gt;
MorphOS features two handy applications that can help with testing and boot-strapping MIDI gear:&lt;br /&gt;
&lt;br /&gt;
* [[Utilities/MIDIPiano | MIDI Piano]], is a simple virtual MIDI keyboard for sending or receiving MIDI messages&lt;br /&gt;
* [[Utilities/MIDI_Logger | MIDI Logger]], a tool for looking at MIDI messages&lt;br /&gt;
&lt;br /&gt;
Both tools are located in SYS:Utilities/MIDI/.&lt;br /&gt;
&lt;br /&gt;
== Using Virtual MIDI Keyboard ==&lt;br /&gt;
Run it by double-clicking the [[Utilities/MIDIPiano | MIDI Piano]] icon. You'll get a window with a large piano keyboard. VMK (Virtual MIDI Keyboard) is able to receive or send MIDI messages.&lt;br /&gt;
&lt;br /&gt;
# Select the mode of operation with the first cycle, 'Receive' for ... receiving MIDI messages, 'Send' for ... you guessed it, sending MIDI messages.&lt;br /&gt;
# Select the cluster to connect to. If you're sending, be sure to select a cluster with a name ending in '.out'. Inversly, select an '.in' cluster for receiving.&lt;br /&gt;
# Select to which MIDI channels you want to send/receive MIDI messages. VMK will happily send/receive from multiple MIDI channels at once.&lt;br /&gt;
# a) If you are in receive mode, the piano keyboard won't react to mouse events but will colour the keys as/when receiving note events from the cluster.&amp;lt;br&amp;gt;b) If in send mode, the piano keyboard will react to mouse event(s): clicking on the piano keys will emit MIDI messages to the selected cluster.&lt;br /&gt;
&lt;br /&gt;
'''Tip''': The MIDI instrument keeps emitting an annoying sound? &lt;br /&gt;
If so, then send an 'All Notes Off' message with 'Send a MIDI message' using that menu option.&lt;br /&gt;
&lt;br /&gt;
== Using MIDI Logger ==&lt;br /&gt;
[[Utilities/MIDI_Logger | MIDI Logger]] is an analysis tool for watching incoming MIDI messages. It is most helpful for debugging an application, or to simply check MIDI messages.&lt;br /&gt;
&lt;br /&gt;
This application is only able to receive MIDI messages.&lt;br /&gt;
&lt;br /&gt;
# Select the cluster you'd like to receive from&lt;br /&gt;
# Select channels you'd like to view&lt;br /&gt;
# Select the kind of MIDI message you'd like to view&lt;br /&gt;
&lt;br /&gt;
Any message meeting your filter criteria will be displayed in the list.&lt;br /&gt;
&lt;br /&gt;
== Playing a MIDI file ==&lt;br /&gt;
MorphOS features a MIDI playback tool wisely named [[Shell_Commands/PlayMidi | PlayMIDI]]. This is a Shell only tool that features the minimum for playback '.smf' MIDI files.&lt;br /&gt;
&lt;br /&gt;
It takes a FILE argument that should point to a valid '.smf' MIDI file and a CLUSTERNAME argument that should point to an '.out' cluster name.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
 PlayMIDI FILE=song.smf CLUSTERNAME=myinstrument.out&lt;br /&gt;
&lt;br /&gt;
The song will be sent to the 'myinstrument.out' cluster.&lt;br /&gt;
&lt;br /&gt;
== Soft Synthesis ==&lt;br /&gt;
MorphOS does not feature any soft synthesis application for MIDI. You'll have to rely on an external application for that. One tool is available for&lt;br /&gt;
doing soft synthesis: FrozenLiquid (available at the [https://tcheko.binaryriot.org developer's page] or [https://www.morphos-storage.net/?find=frozenliquid MorphOS Storage]).&lt;br /&gt;
&lt;br /&gt;
FrozenLiquid needs a sound font for producing sound. Sound fonts are easy to find with any search engine.&lt;br /&gt;
&lt;br /&gt;
Soft synthesis is producing sound with the help of the CPU. It can consume a large amount of CPU capability depending on the number of MIDI events required to process, and the complexity of the sound font.&lt;br /&gt;
&lt;br /&gt;
Starting FrozenLiquid is just a single step:&lt;br /&gt;
&lt;br /&gt;
 FrozenLiquid FILE=soundfontname.sf2&lt;br /&gt;
&lt;br /&gt;
By default, FrozenLiquid will create a MIDI cluster based on the filename of the sound font.&lt;br /&gt;
&lt;br /&gt;
With PlayMIDI and FrozenLiquid, you can experience MIDI without owning any actual hardware based MIDI instrument.&lt;/div&gt;</summary>
		<author><name>JPV</name></author>	</entry>

	<entry>
		<id>https://library.morph.zone/index.php?title=MIDI&amp;diff=4309</id>
		<title>MIDI</title>
		<link rel="alternate" type="text/html" href="https://library.morph.zone/index.php?title=MIDI&amp;diff=4309"/>
				<updated>2023-06-01T16:48:09Z</updated>
		
		<summary type="html">&lt;p&gt;JPV: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''Author: Antoine Dubourg''&lt;br /&gt;
&lt;br /&gt;
MorphOS is able to make use of the MIDI protocol with various system components.&lt;br /&gt;
&lt;br /&gt;
To make best use of MIDI, it is advised to have some MIDI instruments be it physical devices or soft synthesis.&lt;br /&gt;
&lt;br /&gt;
== Low level components ==&lt;br /&gt;
All the MIDI intricacies are handled by two system components:&lt;br /&gt;
* '''camd.library''', which handles message parsing and delivery to applications&lt;br /&gt;
* '''camdusbmidi.class''', which bridges MIDI messages from USB compliant MIDI devices to camd.library&lt;br /&gt;
&lt;br /&gt;
''camd.library'' is located in ''SYS:MorphOS/Libs/'' while ''camdusbmidi.class'' is located in ''SYS:MorphOS/Classes/USB/''.&lt;br /&gt;
&lt;br /&gt;
=== CAMD concepts ===&lt;br /&gt;
CAMD library was designed in the 90s using the concept of delivery by copying of MIDI messages.&lt;br /&gt;
&lt;br /&gt;
When an application wants to use MIDI, it creates a ''MidiNode'', which is a type of area for storing messages.&lt;br /&gt;
&lt;br /&gt;
Once ''MidiNode'' is created by the application, this node is then linked to its destination name, the MIDI cluster.&lt;br /&gt;
&lt;br /&gt;
''MidiLink'' can be only a single type: sending or receiving. So, an application will send MIDI messages while some will receive MIDI messages. Some might do both.&lt;br /&gt;
&lt;br /&gt;
All the mechanics of CAMD is based around MIDI clusters: they provide a user friendly way to promote MIDI flux. Usually, clusters are presented to &lt;br /&gt;
a user to configure access to MIDI instruments.&lt;br /&gt;
&lt;br /&gt;
Instrument(s) and application(s) can be started in any order. The cluster name is a collection point created by the first one joining the cluster.&lt;br /&gt;
&lt;br /&gt;
=== Understanding the MIDI cluster naming scheme ===&lt;br /&gt;
When a MIDI instrument is connected to CAMD, it 'registers' itself to a MIDI cluster using a specific naming scheme.&lt;br /&gt;
&lt;br /&gt;
Usually, an instrument will create a two way communication link, one for sending MIDI messages and another one for receiving MIDI messages.&lt;br /&gt;
&lt;br /&gt;
The cluster name ending with '.out' is used to send MIDI messages '''to''' the instrument.&lt;br /&gt;
&lt;br /&gt;
The cluster name ending with .'in' is used to receive MIDI messages '''from''' the instrument.&lt;br /&gt;
&lt;br /&gt;
Those '.in' and '.out' are usually prefixed with a name. For example, you have a MIDI instrument of whatever make, which will usually be shown similar to 'Brand-DeviceName.in' and 'Brand-DeviceName.out'.&lt;br /&gt;
&lt;br /&gt;
== Installing &amp;amp; testing MIDI gear ==&lt;br /&gt;
Initial, first time, setup of MIDI gear can be quite intimidating. It has to be correctly wired if connected using legacy DIN connectors (inverting&lt;br /&gt;
in and out isn't dangerous at all, it will just not work) and figuring out how to use an application often requires some getting used to.&lt;br /&gt;
&lt;br /&gt;
MorphOS features two handy applications that can help with testing and boot-strapping MIDI gear:&lt;br /&gt;
&lt;br /&gt;
* [[Utilities/MIDIPiano | MIDI Piano]], is a simple virtual MIDI keyboard for sending or receiving MIDI messages&lt;br /&gt;
* [[Utilities/MIDI_Logger | MIDI Logger]], a tool for looking at MIDI messages&lt;br /&gt;
&lt;br /&gt;
Both tools are located in SYS:Utilities/MIDI/.&lt;br /&gt;
&lt;br /&gt;
== Using Virtual MIDI Keyboard ==&lt;br /&gt;
Run it by double-clicking the [[Utilities/MIDIPiano | MIDI Piano]] icon. You'll get a window with a large piano keyboard. VMK (Virtual MIDI Keyboard) is able to receive or send MIDI messages.&lt;br /&gt;
&lt;br /&gt;
# Select the mode of operation with the first cycle, 'Receive' for ... receiving MIDI messages, 'Send' for ... you guessed it, sending MIDI messages.&lt;br /&gt;
# Select the cluster to connect to. If you're sending, be sure to select a cluster with a name ending in '.out'. Inversly, select an '.in' cluster for receiving.&lt;br /&gt;
# Select to which MIDI channels you want to send/receive MIDI messages. VMK will happily send/receive from multiple MIDI channels at once.&lt;br /&gt;
# a) If you are in receive mode, the piano keyboard won't react to mouse events but will colour the keys as/when receiving note events from the cluster.&amp;lt;br&amp;gt;b) If in send mode, the piano keyboard will react to mouse event(s): clicking on the piano keys will emit MIDI messages to the selected cluster.&lt;br /&gt;
&lt;br /&gt;
'''Tip''': The MIDI instrument keeps emitting an annoying sound? &lt;br /&gt;
If so, then send an 'All Notes Off' message with 'Send a MIDI message' using that menu option.&lt;br /&gt;
&lt;br /&gt;
== Using MIDI Logger ==&lt;br /&gt;
[[Utilities/MIDI_Logger | MIDI Logger]] is an analysis tool for watching incoming MIDI messages. It is most helpful for debugging an application, or to simply check MIDI messages.&lt;br /&gt;
&lt;br /&gt;
This application is only able to receive MIDI messages.&lt;br /&gt;
&lt;br /&gt;
# Select the cluster you'd like to receive from&lt;br /&gt;
# Select channels you'd like to view&lt;br /&gt;
# Select the kind of MIDI message you'd like to view&lt;br /&gt;
&lt;br /&gt;
Any message meeting your filter criteria will be displayed in the list.&lt;br /&gt;
&lt;br /&gt;
== Playing a MIDI file ==&lt;br /&gt;
MorphOS features a MIDI playback tool wisely named [[Shell_Commands/PlayMidi | PlayMIDI]]. This is a Shell only tool that features the minimum for playback '.smf' MIDI files.&lt;br /&gt;
&lt;br /&gt;
It takes a FILE argument that should point to a valid '.smf' MIDI file and a CLUSTERNAME argument that should point to an '.out' cluster name.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
 PlayMIDI FILE=song.smf CLUSTERNAME=myinstrument.out&lt;br /&gt;
&lt;br /&gt;
The song will be sent to the 'myinstrument.out' cluster.&lt;br /&gt;
&lt;br /&gt;
== Soft Synthesis ==&lt;br /&gt;
MorphOS does not feature any soft synthesis application for MIDI. You'll have to rely on an external application for that. One tool is available for&lt;br /&gt;
doing soft synthesis: FrozenLiquid (available at the [https://tcheko.binaryriot.org developer's page] or [https://www.morphos-storage.net/?find=frozenliquid MorphOS Storage]).&lt;br /&gt;
&lt;br /&gt;
FrozenLiquid needs a sound font for producing sound. Sound fonts are easy to find with any search engine.&lt;br /&gt;
&lt;br /&gt;
Soft synthesis is producing sound with the help of the CPU. It can consume a large amount of CPU capability depending on the number of MIDI events required to process, and the complexity of the sound font.&lt;br /&gt;
&lt;br /&gt;
Starting FrozenLiquid is just a single step:&lt;br /&gt;
&lt;br /&gt;
 FrozenLiquid FILE=soundfontname.sf2&lt;br /&gt;
&lt;br /&gt;
By default, FrozenLiquid will create a MIDI cluster based on the filename of the sound font.&lt;br /&gt;
&lt;br /&gt;
With PlayMIDI and FrozenLiquid, you can experience MIDI without owning any actual (hardware based) MIDI instrument.&lt;/div&gt;</summary>
		<author><name>JPV</name></author>	</entry>

	<entry>
		<id>https://library.morph.zone/index.php?title=MIDI&amp;diff=4308</id>
		<title>MIDI</title>
		<link rel="alternate" type="text/html" href="https://library.morph.zone/index.php?title=MIDI&amp;diff=4308"/>
				<updated>2023-06-01T16:46:12Z</updated>
		
		<summary type="html">&lt;p&gt;JPV: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;MorphOS is able to make use of the MIDI protocol with various system components.&lt;br /&gt;
&lt;br /&gt;
To make best use of MIDI, it is advised to have some MIDI instruments be it physical devices or soft synthesis.&lt;br /&gt;
&lt;br /&gt;
== Low level components ==&lt;br /&gt;
All the MIDI intricacies are handled by two system components:&lt;br /&gt;
* '''camd.library''', which handles message parsing and delivery to applications&lt;br /&gt;
* '''camdusbmidi.class''', which bridges MIDI messages from USB compliant MIDI devices to camd.library&lt;br /&gt;
&lt;br /&gt;
''camd.library'' is located in ''SYS:MorphOS/Libs/'' while ''camdusbmidi.class'' is located in ''SYS:MorphOS/Classes/USB/''.&lt;br /&gt;
&lt;br /&gt;
=== CAMD concepts ===&lt;br /&gt;
CAMD library was designed in the 90s using the concept of delivery by copying of MIDI messages.&lt;br /&gt;
&lt;br /&gt;
When an application wants to use MIDI, it creates a ''MidiNode'', which is a type of area for storing messages.&lt;br /&gt;
&lt;br /&gt;
Once ''MidiNode'' is created by the application, this node is then linked to its destination name, the MIDI cluster.&lt;br /&gt;
&lt;br /&gt;
''MidiLink'' can be only a single type: sending or receiving. So, an application will send MIDI messages while some will receive MIDI messages. Some might do both.&lt;br /&gt;
&lt;br /&gt;
All the mechanics of CAMD is based around MIDI clusters: they provide a user friendly way to promote MIDI flux. Usually, clusters are presented to &lt;br /&gt;
a user to configure access to MIDI instruments.&lt;br /&gt;
&lt;br /&gt;
Instrument(s) and application(s) can be started in any order. The cluster name is a collection point created by the first one joining the cluster.&lt;br /&gt;
&lt;br /&gt;
=== Understanding the MIDI cluster naming scheme ===&lt;br /&gt;
When a MIDI instrument is connected to CAMD, it 'registers' itself to a MIDI cluster using a specific naming scheme.&lt;br /&gt;
&lt;br /&gt;
Usually, an instrument will create a two way communication link, one for sending MIDI messages and another one for receiving MIDI messages.&lt;br /&gt;
&lt;br /&gt;
The cluster name ending with '.out' is used to send MIDI messages '''to''' the instrument.&lt;br /&gt;
&lt;br /&gt;
The cluster name ending with .'in' is used to receive MIDI messages '''from''' the instrument.&lt;br /&gt;
&lt;br /&gt;
Those '.in' and '.out' are usually prefixed with a name. For example, you have a MIDI instrument of whatever make, which will usually be shown similar to 'Brand-DeviceName.in' and 'Brand-DeviceName.out'.&lt;br /&gt;
&lt;br /&gt;
== Installing &amp;amp; testing MIDI gear ==&lt;br /&gt;
Initial, first time, setup of MIDI gear can be quite intimidating. It has to be correctly wired if connected using legacy DIN connectors (inverting&lt;br /&gt;
in and out isn't dangerous at all, it will just not work) and figuring out how to use an application often requires some getting used to.&lt;br /&gt;
&lt;br /&gt;
MorphOS features two handy applications that can help with testing and boot-strapping MIDI gear:&lt;br /&gt;
&lt;br /&gt;
* [[Utilities/MIDIPiano | MIDI Piano]], is a simple virtual MIDI keyboard for sending or receiving MIDI messages&lt;br /&gt;
* [[Utilities/MIDI_Logger | MIDI Logger]], a tool for looking at MIDI messages&lt;br /&gt;
&lt;br /&gt;
Both tools are located in SYS:Utilities/MIDI/.&lt;br /&gt;
&lt;br /&gt;
== Using Virtual MIDI Keyboard ==&lt;br /&gt;
Run it by double-clicking the [[Utilities/MIDIPiano | MIDI Piano]] icon. You'll get a window with a large piano keyboard. VMK (Virtual MIDI Keyboard) is able to receive or send MIDI messages.&lt;br /&gt;
&lt;br /&gt;
# Select the mode of operation with the first cycle, 'Receive' for ... receiving MIDI messages, 'Send' for ... you guessed it, sending MIDI messages.&lt;br /&gt;
# Select the cluster to connect to. If you're sending, be sure to select a cluster with a name ending in '.out'. Inversly, select an '.in' cluster for receiving.&lt;br /&gt;
# Select to which MIDI channels you want to send/receive MIDI messages. VMK will happily send/receive from multiple MIDI channels at once.&lt;br /&gt;
# a) If you are in receive mode, the piano keyboard won't react to mouse events but will colour the keys as/when receiving note events from the cluster.&amp;lt;br&amp;gt;b) If in send mode, the piano keyboard will react to mouse event(s): clicking on the piano keys will emit MIDI messages to the selected cluster.&lt;br /&gt;
&lt;br /&gt;
'''Tip''': The MIDI instrument keeps emitting an annoying sound? &lt;br /&gt;
If so, then send an 'All Notes Off' message with 'Send a MIDI message' using that menu option.&lt;br /&gt;
&lt;br /&gt;
== Using MIDI Logger ==&lt;br /&gt;
[[Utilities/MIDI_Logger | MIDI Logger]] is an analysis tool for watching incoming MIDI messages. It is most helpful for debugging an application, or to simply check MIDI messages.&lt;br /&gt;
&lt;br /&gt;
This application is only able to receive MIDI messages.&lt;br /&gt;
&lt;br /&gt;
# Select the cluster you'd like to receive from&lt;br /&gt;
# Select channels you'd like to view&lt;br /&gt;
# Select the kind of MIDI message you'd like to view&lt;br /&gt;
&lt;br /&gt;
Any message meeting your filter criteria will be displayed in the list.&lt;br /&gt;
&lt;br /&gt;
== Playing a MIDI file ==&lt;br /&gt;
MorphOS features a MIDI playback tool wisely named [[Shell_Commands/PlayMidi | PlayMIDI]]. This is a Shell only tool that features the minimum for playback '.smf' MIDI files.&lt;br /&gt;
&lt;br /&gt;
It takes a FILE argument that should point to a valid '.smf' MIDI file and a CLUSTERNAME argument that should point to an '.out' cluster name.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
 PlayMIDI FILE=song.smf CLUSTERNAME=myinstrument.out&lt;br /&gt;
&lt;br /&gt;
The song will be sent to the 'myinstrument.out' cluster.&lt;br /&gt;
&lt;br /&gt;
== Soft Synthesis ==&lt;br /&gt;
MorphOS does not feature any soft synthesis application for MIDI. You'll have to rely on an external application for that. One tool is available for&lt;br /&gt;
doing soft synthesis: FrozenLiquid (available at the [https://tcheko.binaryriot.org developer's page] or [https://www.morphos-storage.net/?find=frozenliquid MorphOS Storage]).&lt;br /&gt;
&lt;br /&gt;
FrozenLiquid needs a sound font for producing sound. Sound fonts are easy to find with any search engine.&lt;br /&gt;
&lt;br /&gt;
Soft synthesis is producing sound with the help of the CPU. It can consume a large amount of CPU capability depending on the number of MIDI events required to process, and the complexity of the sound font.&lt;br /&gt;
&lt;br /&gt;
Starting FrozenLiquid is just a single step:&lt;br /&gt;
&lt;br /&gt;
 FrozenLiquid FILE=soundfontname.sf2&lt;br /&gt;
&lt;br /&gt;
By default, FrozenLiquid will create a MIDI cluster based on the filename of the sound font.&lt;br /&gt;
&lt;br /&gt;
With PlayMIDI and FrozenLiquid, you can experience MIDI without owning any actual (hardware based) MIDI instrument.&lt;/div&gt;</summary>
		<author><name>JPV</name></author>	</entry>

	<entry>
		<id>https://library.morph.zone/index.php?title=MIDI&amp;diff=4307</id>
		<title>MIDI</title>
		<link rel="alternate" type="text/html" href="https://library.morph.zone/index.php?title=MIDI&amp;diff=4307"/>
				<updated>2023-06-01T14:02:32Z</updated>
		
		<summary type="html">&lt;p&gt;JPV: An article by Antoine Dubourg, proof-reading by Neil Pearson&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;MorphOS is able to make use of the MIDI protocol with various system components.&lt;br /&gt;
&lt;br /&gt;
To make best use of MIDI, it is advised to have some MIDI instruments be it physical devices or soft synthesis.&lt;br /&gt;
&lt;br /&gt;
== Low level components ==&lt;br /&gt;
All the MIDI intricacies are handled by two system components:&lt;br /&gt;
* camd.library, which handles message parsing and delivery to applications&lt;br /&gt;
* camdusbmidi.class, which bridges MIDI messages from USB compliant MIDI devices to camd.library&lt;br /&gt;
&lt;br /&gt;
camd.library is located in SYS:MorphOS/Libs while camdusbmidi.class is located in SYS:MorphOS/Classes/USB.&lt;br /&gt;
&lt;br /&gt;
=== CAMD concepts ===&lt;br /&gt;
CAMD library was designed in the 90s using the concept of delivery by copying of MIDI messages.&lt;br /&gt;
&lt;br /&gt;
When an application wants to use MIDI, it creates a 'MidiNode', which is a type of area for storing messages.&lt;br /&gt;
&lt;br /&gt;
Once MidiNode is created by the application, this node is then linked to its destination name, the MIDI cluster.&lt;br /&gt;
&lt;br /&gt;
MidiLink can be only a single type: sending or receiving. So, an application will send MIDI messages while some will receive MIDI messages. Some might do both.&lt;br /&gt;
&lt;br /&gt;
All the mechanics of CAMD is based around MIDI clusters: they provide a user friendly way to promote MIDI flux. Usually, clusters are presented to &lt;br /&gt;
a user to configure access to MIDI instruments.&lt;br /&gt;
&lt;br /&gt;
Instrument(s) and application(s) can be started in any order. The cluster name is a collection point created by the first one joining the cluster.&lt;br /&gt;
&lt;br /&gt;
=== Understanding the MIDI cluster naming scheme ===&lt;br /&gt;
When a MIDI instrument is connected to CAMD, it 'registers' itself to a MIDI cluster using a specific naming scheme.&lt;br /&gt;
&lt;br /&gt;
Usually, an instrument will create a two way communication link, one for sending MIDI messages and another one for receiving MIDI messages.&lt;br /&gt;
&lt;br /&gt;
The cluster name ending with '.out' is used to send MIDI messages TO the instrument.&lt;br /&gt;
&lt;br /&gt;
The cluster name ending with .'in' is used to receive MIDI messages FROM the instrument.&lt;br /&gt;
&lt;br /&gt;
Those '.in' and '.out' are usually prefixed with a name. For example, you have a MIDI instrument of whatever make, which will usually be shown similar to 'Brand-DeviceName.in' and 'Brand-DeviceName.out'.&lt;br /&gt;
&lt;br /&gt;
== Installing &amp;amp; testing MIDI gear ==&lt;br /&gt;
Initial, first time, setup of MIDI gear can be quite intimidating. It has to be correctly wired if connected using legacy DIN connectors (inverting&lt;br /&gt;
in and out isn't dangerous at all, it will just not work) and figuring out how to use an application often requires some getting used to.&lt;br /&gt;
&lt;br /&gt;
MorphOS features two handy applications that can help with testing and boot-strapping MIDI gear:&lt;br /&gt;
&lt;br /&gt;
- Virtual MIDI Keyboard, is a simple visual keyboard for sending or receiving MIDI messages,&lt;br /&gt;
&lt;br /&gt;
- MIDI Logger, a tool for looking at MIDI messages.&lt;br /&gt;
&lt;br /&gt;
Both tools are located in SYS:Tools/MIDI.&lt;br /&gt;
&lt;br /&gt;
== Using Virtual MIDI Keyboard ==&lt;br /&gt;
Run it by double-clicking its icon. You'll get a window with a large piano keyboard. VMK (Virtual MIDI Keyboard) is able to receive or send MIDI messages.&lt;br /&gt;
&lt;br /&gt;
1. Select the mode of operation with the first cycle, 'Receive' for ... receiving MIDI messages, 'Send' for ... you guessed it, sending MIDI messages.&lt;br /&gt;
&lt;br /&gt;
2. Select the cluster to connect to. If you're sending, be sure to select a cluster with a name ending in '.out'. Inversly, select an '.in' cluster for receiving.&lt;br /&gt;
&lt;br /&gt;
3. Select to which MIDI channels you want to send/receive MIDI messages. VMK will happily send/receive from multiple MIDI channels at once.&lt;br /&gt;
&lt;br /&gt;
4a. If you are in receive mode, the piano keyboard won't react to mouse events but will colour the keys as/when receiving note events from the cluster.&lt;br /&gt;
&lt;br /&gt;
4b. If in send mode, the piano keyboard will react to mouse event(s): clicking on the piano keys will emit MIDI messages to the selected cluster.&lt;br /&gt;
&lt;br /&gt;
'''Tip''': The MIDI instrument keeps emitting an annoying sound? &lt;br /&gt;
If so, then send an 'All Notes Off' message with 'Send a MIDI message' using that menu option.&lt;br /&gt;
&lt;br /&gt;
== Using MIDI Logger ==&lt;br /&gt;
MIDI Logger is an analysis tool for watching incoming MIDI messages. It is most helpful for debugging an application, or to simply check MIDI messages.&lt;br /&gt;
&lt;br /&gt;
This application is only able to receive MIDI messages.&lt;br /&gt;
&lt;br /&gt;
1. Select the cluster you'd like to receive from&lt;br /&gt;
&lt;br /&gt;
2. Select channels you'd like to view&lt;br /&gt;
&lt;br /&gt;
3. Select the kind of MIDI message you'd like to view&lt;br /&gt;
&lt;br /&gt;
Any message meeting your filter criteria will be displayed in the list.&lt;br /&gt;
&lt;br /&gt;
== Playing a MIDI file ==&lt;br /&gt;
MorphOS features a MIDI playback tool wisely named PlayMIDI. This is a Shell only tool that features the minimum for playback '.smf' MIDI files.&lt;br /&gt;
&lt;br /&gt;
It takes a FILE argument that should point to a valid '.smf' MIDI file and a CLUSTERNAME argument that should point to an '.out' cluster name.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
PlayMIDI FILE=song.smf CLUSTERNAME=myinstrument.out&lt;br /&gt;
&lt;br /&gt;
The song will be sent to the 'myinstrument.out' cluster.&lt;br /&gt;
&lt;br /&gt;
See PlayMIDI (MZ library link to PlayMIDI page)&lt;br /&gt;
&lt;br /&gt;
== Soft Synthesis ==&lt;br /&gt;
MorphOS does not feature any soft synthesis application for MIDI. You'll have to rely on an external application for that. One tool is available for&lt;br /&gt;
doing soft synthesis: FrozenLiquid (available at https://tcheko.binaryriot.org or MorphOS Storage).&lt;br /&gt;
&lt;br /&gt;
FrozenLiquid needs a sound font for producing sound. Sound fonts are easy to find with any search engine.&lt;br /&gt;
&lt;br /&gt;
Soft synthesis is producing sound with the help of the CPU. It can consume a large amount of CPU capability depending on the number of MIDI events required to process, and the complexity of the sound font.&lt;br /&gt;
&lt;br /&gt;
Starting FrozenLiquid is just a single step:&lt;br /&gt;
&lt;br /&gt;
FrozenLiquid FILE=soundfontname.sf2&lt;br /&gt;
&lt;br /&gt;
By default, FrozenLiquid will create a MIDI cluster based on the filename of the sound font.&lt;br /&gt;
&lt;br /&gt;
With PlayMIDI and FrozenLiquid, you can experience MIDI without owning any actual (hardware based) MIDI instrument.&lt;/div&gt;</summary>
		<author><name>JPV</name></author>	</entry>

	<entry>
		<id>https://library.morph.zone/index.php?title=Filesystems&amp;diff=4306</id>
		<title>Filesystems</title>
		<link rel="alternate" type="text/html" href="https://library.morph.zone/index.php?title=Filesystems&amp;diff=4306"/>
				<updated>2023-05-20T08:33:28Z</updated>
		
		<summary type="html">&lt;p&gt;JPV: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== About ==&lt;br /&gt;
This page collects information about file systems working natively under MorphOS. In addition to these, Amiga 68k file systems can be used too ([[Preparing_an_Amiga_Hard_Drive|example]]).&lt;br /&gt;
&lt;br /&gt;
'''NOTE: this page is still under construction and many values would need to be verified!''' Any feedback is welcome to this [https://morph.zone/modules/newbb_plus/viewtopic.php?topic_id=12144&amp;amp;forum=3 thread].&lt;br /&gt;
&lt;br /&gt;
== Disk File Systems ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! style=&amp;quot;text-align:left;&amp;quot;| Name&lt;br /&gt;
! style=&amp;quot;text-align:left;&amp;quot;| Location&lt;br /&gt;
! style=&amp;quot;text-align:left;&amp;quot;| Bootable&lt;br /&gt;
! style=&amp;quot;text-align:left;&amp;quot;| Native File Properties&lt;br /&gt;
! style=&amp;quot;text-align:left;&amp;quot;| Max File Name Length&lt;br /&gt;
! style=&amp;quot;text-align:left;&amp;quot;| Max File Size&lt;br /&gt;
! style=&amp;quot;text-align:left;&amp;quot;| Max Partition Size&lt;br /&gt;
! style=&amp;quot;text-align:left;&amp;quot;| Notes&lt;br /&gt;
|-&lt;br /&gt;
| Smart File System (SFS)&lt;br /&gt;
| Built-in (boot.img)&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
| 107&lt;br /&gt;
| 4 GiB - 2 bytes&lt;br /&gt;
| 128 GiB&lt;br /&gt;
| The default file system&lt;br /&gt;
|-&lt;br /&gt;
| Professional File System III (PFS3)&lt;br /&gt;
| Built-in (boot.img)&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
| 107&lt;br /&gt;
| 2 GiB&lt;br /&gt;
| 104 GiB&lt;br /&gt;
| Legacy support for PFS2 and AFS1&lt;br /&gt;
|-&lt;br /&gt;
| Fast File System 2 (FFS)&lt;br /&gt;
| Built-in (boot.img)&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
| 107&lt;br /&gt;
| 4 GiB - 2 bytes&lt;br /&gt;
| 2 TiB to 128 TiB&lt;br /&gt;
| Legacy support for OFS and FFS&lt;br /&gt;
|-&lt;br /&gt;
| FAT File System (FAT)&lt;br /&gt;
| Built-in (boot.img)&lt;br /&gt;
| Yes&lt;br /&gt;
| No&lt;br /&gt;
| 255* (UCS-2)&lt;br /&gt;
| 4 GiB&lt;br /&gt;
| 2 TiB&lt;br /&gt;
| Supports FAT12, FAT16, and FAT32 with LFN&lt;br /&gt;
|-&lt;br /&gt;
| Mac File System (HFS)&lt;br /&gt;
| Built-in (MOSSYS:L)&lt;br /&gt;
| No&lt;br /&gt;
| No&lt;br /&gt;
| 31&lt;br /&gt;
| 2 GiB&lt;br /&gt;
| 2 TiB&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Hierarchical File System (HFS+)&lt;br /&gt;
| Built-in (MOSSYS:L)&lt;br /&gt;
| No&lt;br /&gt;
| No&lt;br /&gt;
| 255* (UTF-16) &lt;br /&gt;
| 2 TiB**&lt;br /&gt;
| 2 TiB**&lt;br /&gt;
| Read-only&lt;br /&gt;
|-&lt;br /&gt;
| Second Extended File System (ext2, ext3, ext4)&lt;br /&gt;
| Built-in (MOSSYS:L)&lt;br /&gt;
| No&lt;br /&gt;
| No&lt;br /&gt;
| 255*&lt;br /&gt;
| 16 GiB to 2 TiB&lt;br /&gt;
| 2 TiB&lt;br /&gt;
| Limited read-only support for ext4&lt;br /&gt;
|-&lt;br /&gt;
| NT File System (NTFS)&lt;br /&gt;
| Built-in (MOSSYS:L)&lt;br /&gt;
| No&lt;br /&gt;
| No&lt;br /&gt;
| 255*&lt;br /&gt;
| 2 TiB**&lt;br /&gt;
| 2 TiB**&lt;br /&gt;
| Read-only&lt;br /&gt;
|-&lt;br /&gt;
| SGI X File System (XFS)&lt;br /&gt;
| Built-in (MOSSYS:L)&lt;br /&gt;
| No&lt;br /&gt;
| No&lt;br /&gt;
| 255*&lt;br /&gt;
| 2 TiB**&lt;br /&gt;
| 2 TiB**&lt;br /&gt;
| Read-only&lt;br /&gt;
|-&lt;br /&gt;
| Ice File System (IceFS)&lt;br /&gt;
| 3rd party ([http://blubbedev.net/icefs/ link])([https://www.morphos-storage.net/?find=ice-fs link2])&lt;br /&gt;
| Yes/No&lt;br /&gt;
| Yes&lt;br /&gt;
| 107 (255)&lt;br /&gt;
| 9 EB&lt;br /&gt;
| 9 EB&lt;br /&gt;
| Bootable on Pegasos and Efika, but not on Macs&lt;br /&gt;
|-&lt;br /&gt;
| ExFAT File System (ExFAT)&lt;br /&gt;
| 3rd party ([http://www.morphos-storage.net/?page=System/Devices/HD/Filesystems&amp;amp;file=exFAT-FS_1.1.lha link])&lt;br /&gt;
| No&lt;br /&gt;
| No&lt;br /&gt;
| 255 UTF-16&lt;br /&gt;
| 128 PiB&lt;br /&gt;
| 128 PiB&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| NT File System 3G (NTFS-3G)&lt;br /&gt;
| 3rd party ([http://blubbedev.net/filesysbox/ link])&lt;br /&gt;
| No&lt;br /&gt;
| No&lt;br /&gt;
| 255&lt;br /&gt;
| 16 EiB&lt;br /&gt;
| 16 EiB&lt;br /&gt;
| Can't be placed on RDB&lt;br /&gt;
|-&lt;br /&gt;
| FS1541&lt;br /&gt;
| 3rd party ([http://aminet.net/package/disk/misc/FS1541-MorphOS link])&lt;br /&gt;
| No&lt;br /&gt;
| No&lt;br /&gt;
| 16&lt;br /&gt;
| 164 KiB&lt;br /&gt;
| 170 KiB&lt;br /&gt;
| For CBM 1541 disks/images&lt;br /&gt;
|-&lt;br /&gt;
| CDRive File System (CDFS)&lt;br /&gt;
| Built-in (boot.img)&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
| 255*&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| ISO 9660/Amiga Rock Ridge/Joliet, audio as WAV files, ISO file support&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;* &amp;lt;/nowiki&amp;gt;Filenames over 107 characters will be stripped&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;** &amp;lt;/nowiki&amp;gt;Theoretical sizes may be bigger, but filesystems using deviceio.library are limited to 2 TiB&lt;br /&gt;
&lt;br /&gt;
== Network File Systems ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! style=&amp;quot;text-align:left;&amp;quot;| Name&lt;br /&gt;
! style=&amp;quot;text-align:left;&amp;quot;| Location&lt;br /&gt;
! style=&amp;quot;text-align:left;&amp;quot;| Native File Properties&lt;br /&gt;
! style=&amp;quot;text-align:left;&amp;quot;| Notes&lt;br /&gt;
|-&lt;br /&gt;
| [https://library.morph.zone/Mounting_Network_Drives#SmbFS SmbFS]&lt;br /&gt;
| Built-in (MOSSYS:C)&lt;br /&gt;
| No&lt;br /&gt;
| For mounting Windows shares or Samba shares (SMB1) on other platforms&lt;br /&gt;
|-&lt;br /&gt;
| [https://library.morph.zone/Mounting_Network_Drives#Smb2FS Smb2FS]&lt;br /&gt;
| Built-in (MOSSYS:C)&lt;br /&gt;
| No&lt;br /&gt;
| For mounting Windows shares or Samba shares (SMB2/3) on other platforms&lt;br /&gt;
|-&lt;br /&gt;
| [https://library.morph.zone/Mounting_Network_Drives#Ssh2FS Ssh2FS]&lt;br /&gt;
| Built-in (MOSSYS:C)&lt;br /&gt;
| No&lt;br /&gt;
| For mounting SFTP shares on other platforms&lt;br /&gt;
|-&lt;br /&gt;
| [https://library.morph.zone/Mounting_Network_Drives#NetFS_Revised NetFS Revised]&lt;br /&gt;
| 3rd party ([http://aminet.net/package/comm/net/NetFS-revised link])&lt;br /&gt;
| Yes&lt;br /&gt;
| For mounting partitions between MorphOS and/or AmigaOS systems&lt;br /&gt;
|-&lt;br /&gt;
| [https://library.morph.zone/Mounting_Network_Drives#FTPMount FTPMount]&lt;br /&gt;
| 3rd party ([http://aminet.net/package/comm/tcp/FTPMount_MOS link])&lt;br /&gt;
| No&lt;br /&gt;
| For mounting FTP sites as part of a filesystem&lt;br /&gt;
|-&lt;br /&gt;
| [https://library.morph.zone/Mounting_Network_Drives#Google_Drive_and_Dropbox_Handlers Amiga Cloud Handlers]&lt;br /&gt;
| 3rd party ([http://aminet.net/package/comm/tcp/AmigaCloudHandlers link])&lt;br /&gt;
| No&lt;br /&gt;
| For mounting Google Drive and Dropbox storage&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>JPV</name></author>	</entry>

	</feed>