<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://wiki.rabbitholecomputing.com/index.php?action=history&amp;feed=atom&amp;title=ZuluIDE_INI_Configuration</id>
	<title>ZuluIDE INI Configuration - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.rabbitholecomputing.com/index.php?action=history&amp;feed=atom&amp;title=ZuluIDE_INI_Configuration"/>
	<link rel="alternate" type="text/html" href="http://wiki.rabbitholecomputing.com/index.php?title=ZuluIDE_INI_Configuration&amp;action=history"/>
	<updated>2026-04-22T02:17:18Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.42.3</generator>
	<entry>
		<id>http://wiki.rabbitholecomputing.com/index.php?title=ZuluIDE_INI_Configuration&amp;diff=113&amp;oldid=prev</id>
		<title>Mbalmer: set table alignments</title>
		<link rel="alternate" type="text/html" href="http://wiki.rabbitholecomputing.com/index.php?title=ZuluIDE_INI_Configuration&amp;diff=113&amp;oldid=prev"/>
		<updated>2025-05-25T07:37:56Z</updated>

		<summary type="html">&lt;p&gt;set table alignments&lt;/p&gt;
&lt;a href=&quot;http://wiki.rabbitholecomputing.com/index.php?title=ZuluIDE_INI_Configuration&amp;amp;diff=113&amp;amp;oldid=112&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>Mbalmer</name></author>
	</entry>
	<entry>
		<id>http://wiki.rabbitholecomputing.com/index.php?title=ZuluIDE_INI_Configuration&amp;diff=112&amp;oldid=prev</id>
		<title>Mbalmer: Added current INI file options.</title>
		<link rel="alternate" type="text/html" href="http://wiki.rabbitholecomputing.com/index.php?title=ZuluIDE_INI_Configuration&amp;diff=112&amp;oldid=prev"/>
		<updated>2025-05-25T07:30:12Z</updated>

		<summary type="html">&lt;p&gt;Added current INI file options.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Before You Edit Anything ==&lt;br /&gt;
In the vast majority of use cases, many people don&amp;#039;t need to change the options in the INI file. Most of the options presented here will work perfectly well with their defaults; the only time most options need to be changed is where a specific use case requires it or if there is a particular problem with the way the device is performing.&lt;br /&gt;
&lt;br /&gt;
The most recent version of the base INI file can be found at the [https://github.com/ZuluIDE/ZuluIDE-firmware/blob/main/zuluide.ini ZuluIDE Github repo.] &lt;br /&gt;
&lt;br /&gt;
Settings of type &amp;#039;&amp;#039;&amp;#039;On/Off&amp;#039;&amp;#039;&amp;#039; are set using a &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; or a &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;, with a 1 meaning the feature is enabled, while a 0 means the feature is disabled.&lt;br /&gt;
&lt;br /&gt;
Settings of type &amp;#039;&amp;#039;&amp;#039;string&amp;#039;&amp;#039;&amp;#039; require a string enclosed in double quotation marks.&lt;br /&gt;
&lt;br /&gt;
Settings of type &amp;#039;&amp;#039;&amp;#039;int&amp;#039;&amp;#039;&amp;#039; require an integer, usually corresponding to a particular mode number.&lt;br /&gt;
&lt;br /&gt;
Settings with a default listed as &amp;#039;&amp;#039;&amp;#039;unset&amp;#039;&amp;#039;&amp;#039; should remain commented out unless needed. &lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;[IDE]&amp;lt;/code&amp;gt; section ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Setting&lt;br /&gt;
!Type&lt;br /&gt;
!Effect&lt;br /&gt;
!Default&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;debug&amp;lt;/code&amp;gt;&lt;br /&gt;
|on/off&lt;br /&gt;
|If &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;, enables writing a debug log to &amp;lt;code&amp;gt;zululog.txt&amp;lt;/code&amp;gt;. &amp;#039;&amp;#039;&amp;#039;This overrides the DIP switch setting.&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
|off&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;enable_usb_mass_storage&amp;lt;/code&amp;gt;&lt;br /&gt;
|on/off&lt;br /&gt;
|If &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;, allows direct access to the microSD card&amp;#039;s filesystem via the USB port. This does &amp;#039;&amp;#039;&amp;#039;not&amp;#039;&amp;#039;&amp;#039; allow access to the image currently loaded by the ZuluIDE. &lt;br /&gt;
|off&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;eject_button&amp;lt;/code&amp;gt;&lt;br /&gt;
|on/off&lt;br /&gt;
|If &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;, sets the eject button&amp;#039;s GPIO pin to pin 14; if &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;, sets the eject button&amp;#039;s GPIO pin to pin 11 (the default)&lt;br /&gt;
|off&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;ignore_prevent_removal&amp;lt;/code&amp;gt;&lt;br /&gt;
|on/off&lt;br /&gt;
|Set this to &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; to force the ZuluIDE to respect the host device&amp;#039;s ability to prohibit media ejection. When on, the ZuluIDE will allow you to eject an image at any time, regardless of the circumstances.&lt;br /&gt;
|on&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;has_drive1&amp;lt;/code&amp;gt;&lt;br /&gt;
|on/off&lt;br /&gt;
|Uncomment and set this to &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; to forcibly tell the ZuluIDE that there is no secondary drive attached to the same IDE channel that the ZuluIDE is using. &amp;#039;&amp;#039;&amp;#039;Only use this option if the ZuluIDE claims in the debug log that a secondary drive is present when the ZuluIDE is the only device on that IDE channel and the ZuluIDE is set as the primary drive.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|Unset&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;max_udma&amp;lt;/code&amp;gt;&lt;br /&gt;
|int&lt;br /&gt;
|Set the maximum UltraDMA mode to use. Set to &amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt; to disable UltraDMA modes entirely.&lt;br /&gt;
|&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;max_pio&amp;lt;/code&amp;gt;&lt;br /&gt;
|int&lt;br /&gt;
|Set the maximum programmed I/O mode to use. Maximum supported PIO mode on the ZuluIDE RP2040 is mode 3. &lt;br /&gt;
|&amp;lt;code&amp;gt;3&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;max_blocksize&amp;lt;/code&amp;gt;&lt;br /&gt;
|int&lt;br /&gt;
|Maximum number of bytes in a single transfer block.&lt;br /&gt;
|&amp;lt;code&amp;gt;4096&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;device&amp;lt;/code&amp;gt;&lt;br /&gt;
|string&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;without quotes&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|Set the device type to emulate. Valid choices are: &lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;CDROM&amp;lt;/code&amp;gt; for optical drives&lt;br /&gt;
* &amp;lt;code&amp;gt;Zip100&amp;lt;/code&amp;gt; for 100MB Zip drives&lt;br /&gt;
* &amp;lt;code&amp;gt;Zip250&amp;lt;/code&amp;gt; for 250MB Zip drives (experimental)&lt;br /&gt;
* &amp;lt;code&amp;gt;Removable&amp;lt;/code&amp;gt; for generic removable media&lt;br /&gt;
* &amp;lt;code&amp;gt;HDD&amp;lt;/code&amp;gt; for fixed-disk mode&lt;br /&gt;
|&amp;lt;code&amp;gt;CDROM&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;atapi_vendor&amp;lt;/code&amp;gt;&lt;br /&gt;
|string&lt;br /&gt;
|Report a specific vendor string to the system BIOS when operating as an ATAPI device (i.e., optical drives). Maximum length 8 characters.&lt;br /&gt;
|&amp;lt;code&amp;gt;ZuluIDE&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;atapi_product&amp;lt;/code&amp;gt;&lt;br /&gt;
|string&lt;br /&gt;
|Report a specific product name string to the system BIOS when operating as an ATAPI device (i.e., optical drives). Maximum length 16 characters.&lt;br /&gt;
|&amp;lt;code&amp;gt;CDROM&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;atapi_version&amp;lt;/code&amp;gt;&lt;br /&gt;
|string&lt;br /&gt;
|Report a specific product version string to the system BIOS when operating as an ATAPI device (i.e., optical drives). Maximum length 4 characters.&lt;br /&gt;
|&amp;lt;code&amp;gt;1.0&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;ide_model&amp;lt;/code&amp;gt;&lt;br /&gt;
|string&lt;br /&gt;
|Report a specific model name to the system BIOS when operating as an IDE device (i.e., hard disks). Maximum length 40 characters.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;ide_serial&amp;lt;/code&amp;gt;&lt;br /&gt;
|string&lt;br /&gt;
|Report a specific serial number to the system BIOS when operating as an IDE device (i.e., hard disks). Maximum length 20 characters.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;ide_revision&amp;lt;/code&amp;gt;&lt;br /&gt;
|string&lt;br /&gt;
|Report a specific revision code to the system BIOS when operating as an IDE device (i.e., hard disks). Maximum length 8 characters.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;reinsert_media_after_eject&amp;lt;/code&amp;gt;&lt;br /&gt;
|on/off&lt;br /&gt;
|If set to &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;, the ZuluIDE will automatically re-mount the most recently ejected image. Handy for cases where the system auto-ejects media without your input.&lt;br /&gt;
|&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;reinsert_media_on_inquiry&amp;lt;/code&amp;gt;&lt;br /&gt;
|on/off&lt;br /&gt;
|If set to &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;, the ZuluIDE will automatically re-mount the most recently ejected image when it receives either an ATA &amp;lt;code&amp;gt;IDENTIFY_DEVICE&amp;lt;/code&amp;gt; command or &amp;lt;code&amp;gt;IDENTIFY_PACKET_DEVICE&amp;lt;/code&amp;gt; command.&lt;br /&gt;
|&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;reinsert_media_on_sd_insert&amp;lt;/code&amp;gt;&lt;br /&gt;
|on/off&lt;br /&gt;
|If set to &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;, the ZuluIDE will automatically re-mount the most recently used image when an SD card is inserted. The most recently used image is stored directly as a filename in the &amp;lt;code&amp;gt;zululast.txt&amp;lt;/code&amp;gt; file in the root folder of the SD card.&lt;br /&gt;
|&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;set_not_ready_on_insert&amp;lt;/code&amp;gt;&lt;br /&gt;
|on/off&lt;br /&gt;
|Set this to &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; to have the next ATAPI command report with a &amp;quot;not ready&amp;quot; response when the loaded image file is changed. Some systems and/or OSes need this to properly handle a media change.&lt;br /&gt;
|&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;init_with_last_used_image&amp;lt;/code&amp;gt;&lt;br /&gt;
|on/off&lt;br /&gt;
|Set this to &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; to cause the ZuluIDE to automatically re-mount the last-used image on powerup.&lt;br /&gt;
|&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;ignore_command_interrupt&amp;lt;/code&amp;gt;&lt;br /&gt;
|on/off&lt;br /&gt;
|When set to &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;, the ZuluIDE will ignore any command that interrupts one that is currently executing. &lt;br /&gt;
|&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;atapi_intrq&amp;lt;/code&amp;gt;&lt;br /&gt;
|on/off&lt;br /&gt;
|When set to &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;, the ZuluIDE will enable the &amp;lt;code&amp;gt;INTRQ&amp;lt;/code&amp;gt; signal during a &amp;lt;code&amp;gt;PACKET&amp;lt;/code&amp;gt; command. This is normally left disabled. &amp;#039;&amp;#039;&amp;#039;Only enable this if support directs you to.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;cylinders&amp;lt;/code&amp;gt;&lt;br /&gt;
|int&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; |Specify number of cylinders, heads, and sectors for rigid disk emulation. &amp;#039;&amp;#039;&amp;#039;All three&amp;#039;&amp;#039;&amp;#039; of these parameters must be set for the ZuluIDE to use them, otherwise the ZuluIDE will make a best guess based on the size of the image file and report that best guess to the BIOS when queried.&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; |unset&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;heads&amp;lt;/code&amp;gt;&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;sectors&amp;lt;/code&amp;gt;&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;access_delay&amp;lt;/code&amp;gt;&lt;br /&gt;
|int&lt;br /&gt;
|Add an extra delay (in milliseconds) before responding to commands issued by the host system.&lt;br /&gt;
|&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;max_volume&amp;lt;/code&amp;gt;&lt;br /&gt;
|int&lt;br /&gt;
|Volume level used when decoding Redbook audio through the optional I&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;S audio interface. Valid range is &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;100&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&amp;lt;code&amp;gt;100&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;[UI]&amp;lt;/code&amp;gt; section ===&lt;br /&gt;
The options in this section require either the optional hardware interface, or require a Pi Pico W to be mounted to the optional Audio &amp;amp; Pico Shield. &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Setting&lt;br /&gt;
!Type&lt;br /&gt;
!Effect&lt;br /&gt;
!Default&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;wifissid&amp;lt;/code&amp;gt;&lt;br /&gt;
|string&lt;br /&gt;
|Set the SSID to connect to to present the HTML interface.&lt;br /&gt;
|unset&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;wifipassword&amp;lt;/code&amp;gt;&lt;br /&gt;
|string&lt;br /&gt;
|Set the password to the SSID above. &lt;br /&gt;
|unset&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;rotary_encoder_ticks&amp;lt;/code&amp;gt;&lt;br /&gt;
|int&lt;br /&gt;
|Number of detents before the controller board registers a turn of the rotary encoder. Earlier versions of the hardware interface protocol used &amp;lt;code&amp;gt;4&amp;lt;/code&amp;gt; for this value, current firmware sets this to &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; by default.&lt;br /&gt;
|&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Mbalmer</name></author>
	</entry>
</feed>