Line 5:
Line 5:
| status = mothball
| status = mothball
| stubvariant = 2008
| stubvariant = 2008
+
| base = [[IOS20]]
+
| secondBase = [[IOS28]]
+
| twins = [[IOS31]]<br />[[IOS35]]
+
| forks = [[IOS40]]
}}
}}
'''IOS30''' was used by [[3.0|System Menu 3.0]], [[3.1]], [[3.2]] and [[3.3]]. Changes from [[IOS28]] include adding an $IOSVersion tag to every module, as well as changing <code>DVDLowUnencryptedRead</code> to allow two other areas to be loaded; these areas are used to detect [[drivechip]]s and show [[error 001]]. IOS30 also added USB Keyboard support through a KBD module, but this was not used until v1040 despite being present in v1037.
'''IOS30''' was used by [[3.0|System Menu 3.0]], [[3.1]], [[3.2]] and [[3.3]]. Changes from [[IOS28]] include adding an $IOSVersion tag to every module, as well as changing <code>DVDLowUnencryptedRead</code> to allow two other areas to be loaded; these areas are used to detect [[drivechip]]s and show [[error 001]]. IOS30 also added USB Keyboard support through a KBD module, but this was not used until v1040 despite being present in v1037.
+
+
Like IOS28, IOS30 has a mechanism to block access to certain devices from the [[Broadway]]. However, instead of continuing the search as if the device does not exist, IOS_Open in IOS30 returns -1 if the device blocks access.
Together with [[IOS16]], [[IOS31]], and [[IOS37]], IOS30 did not have its ES_Identify and [[:/dev/flash]] access fixed with [[3.3rev03]]. With the exception of IOS16, which got stubbed in [[4.0]], all of these were fixed in [[3.4]].
Together with [[IOS16]], [[IOS31]], and [[IOS37]], IOS30 did not have its ES_Identify and [[:/dev/flash]] access fixed with [[3.3rev03]]. With the exception of IOS16, which got stubbed in [[4.0]], all of these were fixed in [[3.4]].