<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://w96.wiki/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Undefishin</id>
	<title>Wiki96 - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://w96.wiki/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Undefishin"/>
	<link rel="alternate" type="text/html" href="https://w96.wiki/wiki/Special:Contributions/Undefishin"/>
	<updated>2026-05-03T07:27:50Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.37.1</generator>
	<entry>
		<id>https://w96.wiki/w/index.php?title=Windows_96_v2&amp;diff=1274</id>
		<title>Windows 96 v2</title>
		<link rel="alternate" type="text/html" href="https://w96.wiki/w/index.php?title=Windows_96_v2&amp;diff=1274"/>
		<updated>2024-06-28T13:57:33Z</updated>

		<summary type="html">&lt;p&gt;Undefishin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{NoSupport}}&lt;br /&gt;
[[File:Windows 96 v2 screenshot.png|thumb|Windows 96 version 2.0 default desktop. Note that this is an older build and might not have the latest features.]]&lt;br /&gt;
Windows 96 v2 is a version of Windows 96 which is the successor to [[Windows 96 v1]]. Note that this was the version where Windows 96 completely rewritten from scratch. Therefore, it only bears visual similarity to its [[Windows 96 v1|predecessor]]. Windows 96 v2 RTM released on the 5th of February 2021, while SP1 and SP2 released on the 4th of April and the 29th of June respectively.&lt;br /&gt;
&lt;br /&gt;
You can visit this release at [https://rel2.windows96.net https://rel2.windows96.net].&lt;br /&gt;
&lt;br /&gt;
== Why the rewrite? ==&lt;br /&gt;
* The code was not well optimized and it was impossible to do so due to the inefficient source code structure.&lt;br /&gt;
* It became spaghetti code due to all the OS logic being fit into one file.&lt;br /&gt;
* As a result of this, it became near impossible to make the code modular and the effort would be better spent rewriting the OS from scratch.&lt;br /&gt;
* Windows 96 v1 had a synchronous design all round, which meant that any async operations would not fit in well and make the spaghetti code situation even worse.&lt;br /&gt;
* WebFS's mixed asynchronous model still imposed annoying file limits often reached by regular users, and also generally made the experience feel much slower.&lt;br /&gt;
* Cross browser support was not 1:1 due to the lack of CSS normalization/use of browser specific functionality. This meant that Windows 96 would not have a consistent look across browsers.&lt;br /&gt;
* A more efficient OS architecture was proposed, where the pros of rewriting the OS eventually outweighed the cons of not rewriting it.&lt;br /&gt;
* To allow more than 1 developer to work on the source code without losing their mind.&lt;br /&gt;
* And lastly, because of ES6 (ECMAScript v6). Most people and browsers cannot support them.&lt;br /&gt;
&lt;br /&gt;
== Version Highlights ==&lt;br /&gt;
* Too many to count (TODO)&lt;br /&gt;
&lt;br /&gt;
== Trivia ==&lt;br /&gt;
* The rewrite took around 6 months to be somewhat usable. During this time, the original Windows 96 community died out completely and many fans left without a trace, due to the year-long period.&lt;br /&gt;
* The COVID-19 pandemic also made it a pain to stay motivated to keep developing Windows 96.&lt;br /&gt;
* The project reached an extent where more than 1 developer was needed.&lt;/div&gt;</summary>
		<author><name>Undefishin</name></author>
	</entry>
	<entry>
		<id>https://w96.wiki/w/index.php?title=Windows_96_v1&amp;diff=1273</id>
		<title>Windows 96 v1</title>
		<link rel="alternate" type="text/html" href="https://w96.wiki/w/index.php?title=Windows_96_v1&amp;diff=1273"/>
		<updated>2024-06-28T13:55:44Z</updated>

		<summary type="html">&lt;p&gt;Undefishin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{NoSupport}}&lt;br /&gt;
[[File:Screenshot01-v1.png|thumb|A fresh Windows 96 version 1.0 desktop.]]&lt;br /&gt;
&lt;br /&gt;
Windows 96 v1 is the last &amp;quot;classic&amp;quot; version of Windows 96 released on the 15th of August 2019.&lt;br /&gt;
&lt;br /&gt;
It's dubbed as the last classic version due to a total rewrite that occurred between Windows 96 v1 and v2. The rewrite made Windows 96 v1 apps completely incompatible with [[Windows 96 v2|2.0]] due to a different architecture and API set.&lt;br /&gt;
&lt;br /&gt;
It can still be found at https://rel1.windows96.net.&lt;br /&gt;
&lt;br /&gt;
== Version Highlights ==&lt;br /&gt;
* A package manager was introduced to allow users to install extra applications not part of the original OS.&lt;br /&gt;
* KeyboardMusic was added to allow users to make music using their keyboards.&lt;br /&gt;
* Many window manager bugs that existed in version 0.5 were fixed (e.g. active window switching bug).&lt;br /&gt;
* The &amp;lt;code&amp;gt;x:/content&amp;lt;/code&amp;gt; folder was emptied.&lt;br /&gt;
* Window icons were added and the taskbar functionality was improved.&lt;br /&gt;
* Many apps had their functionality refined.&lt;br /&gt;
&lt;br /&gt;
== Trivia ==&lt;br /&gt;
* This version was the main version of Windows 96 for a very long time.&lt;br /&gt;
* Most changes were API updates and app refinements, compared to version 0.5.&lt;/div&gt;</summary>
		<author><name>Undefishin</name></author>
	</entry>
	<entry>
		<id>https://w96.wiki/w/index.php?title=Windows_96_v0.5&amp;diff=1272</id>
		<title>Windows 96 v0.5</title>
		<link rel="alternate" type="text/html" href="https://w96.wiki/w/index.php?title=Windows_96_v0.5&amp;diff=1272"/>
		<updated>2024-06-28T13:54:04Z</updated>

		<summary type="html">&lt;p&gt;Undefishin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{NoSupport}}&lt;br /&gt;
[[File:Windows 96 v0.5 screenshot.png|alt=The default desktop of a fresh Windows 96 v0.5 install.|thumb|The default desktop of a fresh Windows 96 v0.5 install.]]&lt;br /&gt;
Windows 96 v0.5 is an old version of Windows 96 released on the 7th of July 2019.&lt;br /&gt;
&lt;br /&gt;
This version introduced major improvements to the OS and the quality of life of the user using it.&lt;br /&gt;
&lt;br /&gt;
This version can still be found at https://rel05.windows96.net.&lt;br /&gt;
&lt;br /&gt;
== Version Highlights ==&lt;br /&gt;
* The widespread use of the new Pixel Arial font was applied everywhere.&lt;br /&gt;
* A terminal was added for command line based applications.&lt;br /&gt;
* A folder containing various silly and weird things was added, which could be accessed at &amp;lt;code&amp;gt;x:/content&amp;lt;/code&amp;gt;.&lt;br /&gt;
* A bunch of new entertainment apps were added.&lt;br /&gt;
* The Windows 96 Wiki was updated to include more in-depth API samples.&lt;br /&gt;
* A massive UI lift occurred, which made the OS feel more like Windows 9x compared to previous releases. This includes under-the-hood changes, such as updated UI APIs and CSS level changes, such as the removal of certain fonts and incompatible styles.&lt;br /&gt;
* The Windows 96 C/C++ SDK was introduced to allow users to write Windows 96 apps in C++.&lt;br /&gt;
* The window manager underwent major improvements.&lt;br /&gt;
* Support for JavaScript and HTML document highlighting was added to the default text editor.&lt;br /&gt;
* Cross browser support was improved through compatibility stylesheets.&lt;br /&gt;
* File uploading was added.&lt;br /&gt;
* With the introduction of file uploading, the file system switched to a mixed asynchronous model, which allowed for a theoretical 32 gigabytes of useable space (compared to 8 MB).&lt;br /&gt;
&lt;br /&gt;
== Trivia ==&lt;br /&gt;
* This version is considered to be the first version where the Windows 96 design principles were ratified properly.&lt;br /&gt;
* A Start menu bug exists where the applications menu will appear after the Start menu is closed.&lt;br /&gt;
* There is an XSS bug in Terminal using the &amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt; command.&lt;/div&gt;</summary>
		<author><name>Undefishin</name></author>
	</entry>
	<entry>
		<id>https://w96.wiki/w/index.php?title=Windows_96_v0.1&amp;diff=1271</id>
		<title>Windows 96 v0.1</title>
		<link rel="alternate" type="text/html" href="https://w96.wiki/w/index.php?title=Windows_96_v0.1&amp;diff=1271"/>
		<updated>2024-06-28T13:51:59Z</updated>

		<summary type="html">&lt;p&gt;Undefishin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{NoSupport}}&lt;br /&gt;
[[File:Windows 96 v0.1 screenshot.png|alt=The default desktop of a fresh Windows 96 v0.1 installation.|thumb|The default desktop of a fresh Windows 96 v0.1 installation.]]&lt;br /&gt;
&lt;br /&gt;
Windows 96 v0.1 is an old version of Windows 96, which released on the 20th of April 2019.&lt;br /&gt;
&lt;br /&gt;
This is not the first version, but this is the first version which had semi-usable applications, windows, and file system.&lt;br /&gt;
&lt;br /&gt;
This version can still be found at https://rel01.windows96.net.&lt;br /&gt;
&lt;br /&gt;
== Version Highlights ==&lt;br /&gt;
* The default fonts used were Pixel Verdana and LWindows, but these were eventually swapped for Pixel Arial in later releases.&lt;br /&gt;
* The file system during this time was fully synchronous (utilizing &amp;lt;code&amp;gt;localStorage&amp;lt;/code&amp;gt;), which meant that there was a hard browser cap at around 8 megabytes of total data storage.&lt;br /&gt;
* The context menus in this version were not yet completed.&lt;br /&gt;
* The window manager in this version was extremely primitive and had no way to tell active and inactive windows apart, often resulting in windows not appearing as they should.&lt;br /&gt;
* Taskbar tasks could not have an icon representing their appropriate function.&lt;br /&gt;
* Terrible font blurring is present all around this version and cross browser support was horrible.&lt;br /&gt;
* Half of the Start menu was not functional at all and the Start menu was extremely glitchy.&lt;br /&gt;
&lt;br /&gt;
== Trivia ==&lt;br /&gt;
* [[Ctrlz]] (the only developer at the time) had zero idea how to render bitmap fonts properly using CSS and generally had weak CSS abilities during this time.&lt;br /&gt;
* Windows 96 was actually not [[Ctrlz]]'s first attempt at making a Web OS. He has attempted it before with unsatisfying results.&lt;br /&gt;
* [[Ctrlz]]'s longtime friend Dan conceptualized parts of (and heavily tested) the first releases of Windows 96.&lt;br /&gt;
* Most of Windows 96 v0.1 was developed during a school drama performance, where [[Ctrlz]] and Dan were tasked to record the performance, but obviously didn't because they were too busy working on the future of the internet (:wooge:).&lt;br /&gt;
* [[Ctrlz]] and Dan still regularly poke fun with Windows 96, often attempting to run the Web OS at random places or random devices for absolutely no reason.&lt;/div&gt;</summary>
		<author><name>Undefishin</name></author>
	</entry>
	<entry>
		<id>https://w96.wiki/w/index.php?title=API:BSOD&amp;diff=1270</id>
		<title>API:BSOD</title>
		<link rel="alternate" type="text/html" href="https://w96.wiki/w/index.php?title=API:BSOD&amp;diff=1270"/>
		<updated>2024-06-28T13:49:48Z</updated>

		<summary type="html">&lt;p&gt;Undefishin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Using this simple API, you can render a BSOD (Blue Screen of Death). This simple function works in [[Windows 96 v2]] and newer.&lt;br /&gt;
&lt;br /&gt;
=== Usage ===&lt;br /&gt;
Rendering a BSOD is very simple. It uses one function that only requires one argument.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;js&amp;quot;&amp;gt;&lt;br /&gt;
w96.sys.renderBSOD(&amp;quot;message of BSOD&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Undefishin</name></author>
	</entry>
	<entry>
		<id>https://w96.wiki/w/index.php?title=Win96_Run_Time&amp;diff=1269</id>
		<title>Win96 Run Time</title>
		<link rel="alternate" type="text/html" href="https://w96.wiki/w/index.php?title=Win96_Run_Time&amp;diff=1269"/>
		<updated>2024-06-28T13:49:17Z</updated>

		<summary type="html">&lt;p&gt;Undefishin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Win96 Run Time''', sometimes abbreviated as WRT, is the runtime behind the Windows 96 binaries.&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
A script executed with the WRT will behave differently than a normal script. Firstly, WRT scripts will be able to use &amp;lt;code&amp;gt;FS&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;FSUtil&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;WApplication&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;StandardWindow&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;registerApp&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;deregisterApp&amp;lt;/code&amp;gt; without having to use the &amp;lt;code&amp;gt;w96&amp;lt;/code&amp;gt; namespace. They will also be able to use the WRT module API where the &amp;lt;code&amp;gt;module&amp;lt;/code&amp;gt; object is available for exporting data and &amp;lt;code&amp;gt;include&amp;lt;/code&amp;gt; for getting module exported data. Scripts executed with the WRT will also be executed in an asynchronous context, making it possible to use top-level &amp;lt;code&amp;gt;await&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
To execute a script using the WRT, there are 2 options:&lt;br /&gt;
&lt;br /&gt;
# Have this shebang &amp;lt;code&amp;gt;//!wrt&amp;lt;/code&amp;gt; be the first line of the script&lt;br /&gt;
# Run the &amp;lt;code&amp;gt;wrtrun&amp;lt;/code&amp;gt; command with the path to the script in the Terminal.&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
The Windows Runtime was introduced in [[Windows 96 v2]] Service Pack 2.&lt;br /&gt;
&lt;br /&gt;
From the changelog:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;quot;A set of APIs which allow you to easily make apps and include modules, without worrying about the filesystem and stuff like that.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
''Windows 96 devs in the rel2sp2 changelog.''&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Shebang ==&lt;br /&gt;
A shebang is a marker starting with &amp;lt;code&amp;gt;//&amp;lt;/code&amp;gt; (or &amp;lt;code&amp;gt;#!&amp;lt;/code&amp;gt; in Unix's case which is where this feature comes from), which can contain a path to any executable. It is always placed at the first line of a file. If any file with a shebang is ran like an executable, the program loader loading the file will interpret the shebang and pass the file being ran to the shebang's specified executable as the first argument.&lt;br /&gt;
&lt;br /&gt;
In this case, a shebang for the WRT is defined like so: &amp;lt;code&amp;gt;//!wrt&amp;lt;/code&amp;gt;. The shebang denotes that the file is a WRT binary, and must be the very first line in any WRT application. &lt;br /&gt;
&lt;br /&gt;
=== The binary specification (BSPEC) ===&lt;br /&gt;
The binary specification (BSPEC) is a structure which contains metadata for a WRT binary. It always follows the shebang on the same line, where the cumulative line size must not exceed 256 characters.&lt;br /&gt;
&lt;br /&gt;
The BSPEC is a simple JSON object prefixed with &amp;lt;code&amp;gt;$BSPEC:&amp;lt;/code&amp;gt; and contains the following fields:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;icn&amp;lt;/code&amp;gt; - The name of the icon to use.&lt;br /&gt;
* &amp;lt;code&amp;gt;cpr&amp;lt;/code&amp;gt; - The copyright holder of the application.&lt;br /&gt;
* &amp;lt;code&amp;gt;dsc&amp;lt;/code&amp;gt; - A basic description of the application.&lt;br /&gt;
* &amp;lt;code&amp;gt;frn&amp;lt;/code&amp;gt; - The display name of the application.&lt;br /&gt;
* &amp;lt;code&amp;gt;aut&amp;lt;/code&amp;gt; - The application author.&lt;br /&gt;
* &amp;lt;code&amp;gt;ssy&amp;lt;/code&amp;gt; - The subsystem to use for this application. Can either be &amp;lt;code&amp;gt;gui&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;cli&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &amp;lt;code&amp;gt;ver&amp;lt;/code&amp;gt; - The version of the application.&lt;br /&gt;
&lt;br /&gt;
Below is an example of a binary specification declaration for the File Explorer application.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
//!wrt $BSPEC:{&amp;quot;icn&amp;quot;:&amp;quot;apps/explorer&amp;quot;,&amp;quot;cpr&amp;quot;:&amp;quot;Copyright (C) Windows 96 Team 2021.&amp;quot;,&amp;quot;dsc&amp;quot;:&amp;quot;System File Explorer&amp;quot;,&amp;quot;frn&amp;quot;:&amp;quot;Explorer&amp;quot;,&amp;quot;ver&amp;quot;:1}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Modules ==&lt;br /&gt;
A module is a file called by a script in the WRT. They will also run in WRT and have access to WRT features. In addition to this, modules can export data that can be used in other scripts and modules. A module can be called with the &amp;lt;code&amp;gt;include&amp;lt;/code&amp;gt; function. It returns a Promise with the module exports.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;include&amp;lt;/code&amp;gt; function returns:&lt;br /&gt;
&lt;br /&gt;
* The &amp;lt;code&amp;gt;module.exports&amp;lt;/code&amp;gt; of a JavaScript file.&lt;br /&gt;
* The parsed content of a JSON file.&lt;br /&gt;
* The raw content of any other file type.&lt;br /&gt;
&lt;br /&gt;
=== Global Modules ===&lt;br /&gt;
Modules can also be global by declaring a JSON manifest in &amp;lt;code&amp;gt;C:/system/local/lib/modules&amp;lt;/code&amp;gt; in the following format: &amp;lt;code&amp;gt;MODULE.json&amp;lt;/code&amp;gt; where &amp;lt;code&amp;gt;MODULE&amp;lt;/code&amp;gt; is the name of the module when including it. The content of this file should look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot; line=&amp;quot;1&amp;quot; start=&amp;quot;-2&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;libPath&amp;quot;: &amp;quot;C:/path/to/module.js&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then, the module can be accessed from any file by doing &amp;lt;code&amp;gt;include(&amp;quot;MODULE&amp;quot;)&amp;lt;/code&amp;gt;.&lt;/div&gt;</summary>
		<author><name>Undefishin</name></author>
	</entry>
	<entry>
		<id>https://w96.wiki/w/index.php?title=Win96_Run_Time&amp;diff=1268</id>
		<title>Win96 Run Time</title>
		<link rel="alternate" type="text/html" href="https://w96.wiki/w/index.php?title=Win96_Run_Time&amp;diff=1268"/>
		<updated>2024-06-28T13:48:06Z</updated>

		<summary type="html">&lt;p&gt;Undefishin: This wiki is very active as you can tell,&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Win96 Run Time''', sometimes abbreviated as WRT, is the runtime behind the Windows 96 binaries.&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
A script executed with the WRT will behave differently than a normal script. Firstly, WRT scripts will be able to use &amp;lt;code&amp;gt;FS&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;FSUtil&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;WApplication&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;StandardWindow&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;registerApp&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;deregisterApp&amp;lt;/code&amp;gt; without having to use the &amp;lt;code&amp;gt;w96&amp;lt;/code&amp;gt; namespace. They will also be able to use the WRT module API where the &amp;lt;code&amp;gt;module&amp;lt;/code&amp;gt; object is available for exporting data and &amp;lt;code&amp;gt;include&amp;lt;/code&amp;gt; for getting module exported data. Scripts executed with the WRT will also be executed in an asynchronous context, making it possible to use top-level &amp;lt;code&amp;gt;await&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
To execute a script using the WRT, there are 2 options:&lt;br /&gt;
&lt;br /&gt;
# Have this shebang &amp;lt;code&amp;gt;//!wrt&amp;lt;/code&amp;gt; be the first line of the script&lt;br /&gt;
# Run the &amp;lt;code&amp;gt;wrtrun&amp;lt;/code&amp;gt; command with the path to the script in the Terminal&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
The Windows Runtime was introduced in [[Windows 96 v2]] Service Pack 2.&lt;br /&gt;
&lt;br /&gt;
From the changelog:&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;quot;A set of APIs which allow you to easily make apps and include modules, without worrying about the filesystem and stuff like that.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
''Windows 96 devs in the rel2sp2 changelog.''&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Shebang ==&lt;br /&gt;
A shebang is a marker starting with &amp;lt;code&amp;gt;//&amp;lt;/code&amp;gt; (or &amp;lt;code&amp;gt;#!&amp;lt;/code&amp;gt; in Unix's case), which can contain a path to any executable. It is always placed at the first line of a file. If any file with a shebang is ran like an executable, the program loader loading the file will interpret the shebang and pass the file being ran to the shebang's specified executable as the first argument.&lt;br /&gt;
&lt;br /&gt;
In this case, a shebang for the WRT is defined like so: &amp;lt;code&amp;gt;//!wrt&amp;lt;/code&amp;gt;. The shebang denotes that the file is a WRT binary, and must be the very first line in any WRT application. &lt;br /&gt;
&lt;br /&gt;
=== The binary specification (BSPEC) ===&lt;br /&gt;
The binary specification (BSPEC) is a structure which contains metadata for a WRT binary. It always follows the shebang on the same line, where the cumulative line size must not exceed 256 characters.&lt;br /&gt;
&lt;br /&gt;
The BSPEC is a simple JSON object prefixed with &amp;lt;code&amp;gt;$BSPEC:&amp;lt;/code&amp;gt; and contains the following fields:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;icn&amp;lt;/code&amp;gt; - The name of the icon to use.&lt;br /&gt;
* &amp;lt;code&amp;gt;cpr&amp;lt;/code&amp;gt; - The copyright holder of the application.&lt;br /&gt;
* &amp;lt;code&amp;gt;dsc&amp;lt;/code&amp;gt; - A basic description of the application.&lt;br /&gt;
* &amp;lt;code&amp;gt;frn&amp;lt;/code&amp;gt; - The display name of the application.&lt;br /&gt;
* &amp;lt;code&amp;gt;aut&amp;lt;/code&amp;gt; - The application author.&lt;br /&gt;
* &amp;lt;code&amp;gt;ssy&amp;lt;/code&amp;gt; - The subsystem to use for this application. Can either be &amp;lt;code&amp;gt;gui&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;cli&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &amp;lt;code&amp;gt;ver&amp;lt;/code&amp;gt; - The version of the application.&lt;br /&gt;
&lt;br /&gt;
Below is an example of a binary specification declaration for the File Explorer application.&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
//!wrt $BSPEC:{&amp;quot;icn&amp;quot;:&amp;quot;apps/explorer&amp;quot;,&amp;quot;cpr&amp;quot;:&amp;quot;Copyright (C) Windows 96 Team 2021.&amp;quot;,&amp;quot;dsc&amp;quot;:&amp;quot;System File Explorer&amp;quot;,&amp;quot;frn&amp;quot;:&amp;quot;Explorer&amp;quot;,&amp;quot;ver&amp;quot;:1}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Modules ==&lt;br /&gt;
A module is a file called by a script in the WRT. They will also run in WRT and have access to WRT features. In addition to this, modules can export data that can be used in other scripts and modules. A module can be called with the &amp;lt;code&amp;gt;include&amp;lt;/code&amp;gt; function. It returns a Promise with the module exports.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;include&amp;lt;/code&amp;gt; function returns:&lt;br /&gt;
&lt;br /&gt;
* The &amp;lt;code&amp;gt;module.exports&amp;lt;/code&amp;gt; of a JavaScript file.&lt;br /&gt;
* The parsed content of a JSON file.&lt;br /&gt;
* The raw content of any other file type.&lt;br /&gt;
&lt;br /&gt;
=== Global Modules ===&lt;br /&gt;
Modules can also be global by declaring a JSON manifest in &amp;lt;code&amp;gt;C:/system/local/lib/modules&amp;lt;/code&amp;gt; in the following format: &amp;lt;code&amp;gt;MODULE.json&amp;lt;/code&amp;gt; where &amp;lt;code&amp;gt;MODULE&amp;lt;/code&amp;gt; is the name of the module when including it. The content of this file should look like this:&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot; line=&amp;quot;1&amp;quot; start=&amp;quot;-2&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;libPath&amp;quot;: &amp;quot;C:/path/to/module.js&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Then, the module can be accessed from any file by doing &amp;lt;code&amp;gt;include(&amp;quot;MODULE&amp;quot;)&amp;lt;/code&amp;gt;.&lt;/div&gt;</summary>
		<author><name>Undefishin</name></author>
	</entry>
	<entry>
		<id>https://w96.wiki/w/index.php?title=Virtual_Machine&amp;diff=1263</id>
		<title>Virtual Machine</title>
		<link rel="alternate" type="text/html" href="https://w96.wiki/w/index.php?title=Virtual_Machine&amp;diff=1263"/>
		<updated>2024-03-08T08:18:17Z</updated>

		<summary type="html">&lt;p&gt;Undefishin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Nov3}}&lt;br /&gt;
[[File:Vm.png|thumb|Virtual Machine app in [[Windows 96 v2|version 2.0 SP2]]]]&lt;br /&gt;
''For the v3 version of this program, see [[Version Browser]].''&lt;br /&gt;
&lt;br /&gt;
'''Virtual Machine''' (in v3 known as Version Browser) is a program that allows users to launch old versions of [[Windows 96]] and use them as you would back then. The earliest version is [[Windows 96 v0.1|version 0.1]] and the newest is [[Windows 96 v1|version 1.0]].&lt;/div&gt;</summary>
		<author><name>Undefishin</name></author>
	</entry>
	<entry>
		<id>https://w96.wiki/w/index.php?title=ShareBoard&amp;diff=1259</id>
		<title>ShareBoard</title>
		<link rel="alternate" type="text/html" href="https://w96.wiki/w/index.php?title=ShareBoard&amp;diff=1259"/>
		<updated>2024-02-08T20:03:46Z</updated>

		<summary type="html">&lt;p&gt;Undefishin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:ShareBoard screenshot.png|thumb|ShareBoard homepage in the dedicated Windows 96 app.]]&lt;br /&gt;
ShareBoard was an anonymous board hosted on Windows 96 where users can make text posts of any kind. It also had a comment system and downloading functionality. ShareBoard was released as part of [[Windows 96 v2|Windows 96 v2 SP1]], and got removed in [[Windows 96 v3]]. It was accessible as an app on the Windows 96 desktop.&lt;br /&gt;
&lt;br /&gt;
Image and file uploading functionality is planned, but it's unknown when this will be implemented.&lt;br /&gt;
&lt;br /&gt;
== Common posts ==&lt;br /&gt;
Currently (as of May 2021), the ShareBoard userbase creates several types of posts:&lt;br /&gt;
&lt;br /&gt;
* Random posts where nobody knows what the person is talking about.&lt;br /&gt;
* Posts mentioning current affairs in the world.&lt;br /&gt;
* Posts that either criticise or praise the website.&lt;br /&gt;
* Posts with genuine suggestions.&lt;br /&gt;
* The occasional wholesome post.&lt;br /&gt;
* Posts where users ask how to use Windows 96.&lt;br /&gt;
* Posts where the user is confused how they got to this website in the first place.&lt;br /&gt;
* The occasional NSFW post/post that breaks the rules. Usually deleted on sight in short time.&lt;br /&gt;
* Completely unfunny Among Us memes, usually containing a lot of &amp;quot;sus&amp;quot; phrases.&lt;br /&gt;
* Posts that try to abuse/exploit the board. These users usually try the same thing, which is to attempt to XSS the board with HTML in their post.&lt;br /&gt;
&lt;br /&gt;
Of course, a lot of this is generalized, and you can help us improve the general vibe of the board by refraining from making rule-breaking posts, etc.&lt;br /&gt;
&lt;br /&gt;
== Current state ==&lt;br /&gt;
The state of ShareBoard is not clear, and it is unknown whether development will continue on the site, since it has been closed for quite some time.&lt;br /&gt;
&lt;br /&gt;
== Trivia ==&lt;br /&gt;
* There was an XSS problem which allowed users to put arbitrary HTML code into their posts.&lt;br /&gt;
* Even though the list above sounds a bit negative, there is a large chunk of the ShareBoard community who are very wholesome and kind.&lt;br /&gt;
* Account registration was planned for more recurring users, but this was not required and the board can be used completely anonymously.&lt;/div&gt;</summary>
		<author><name>Undefishin</name></author>
	</entry>
	<entry>
		<id>https://w96.wiki/w/index.php?title=API:w96.debug&amp;diff=1258</id>
		<title>API:w96.debug</title>
		<link rel="alternate" type="text/html" href="https://w96.wiki/w/index.php?title=API:w96.debug&amp;diff=1258"/>
		<updated>2024-02-08T19:56:53Z</updated>

		<summary type="html">&lt;p&gt;Undefishin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ActualTitle|w96.__debug}}&lt;br /&gt;
&lt;br /&gt;
The API docs say this:&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size:1.1em;line-height:1.333em;margin-bottom:2em;&amp;quot;&amp;gt;Debug export namespace.&amp;lt;/div&amp;gt;&lt;br /&gt;
This is purely for the Windows 96 developers, there is no need to mess with it.&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
and a const named &amp;quot;__empty&amp;quot; is also listed, which is a null value. (it doesn't actually exist though, but if you do want to make it exist, do &amp;lt;code&amp;gt;w96.__debug.__empty = null;&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
But we're (or rather, I'm ([[User:Cab|Cab]])) gonna document what's actually there anyway.&lt;br /&gt;
== V2 ==&lt;br /&gt;
=== Winlogon ===&lt;br /&gt;
All those methods require a SAM config (basically just a login password set).&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;displayLogonUI(e)&amp;lt;/code&amp;gt; ====&lt;br /&gt;
Asynchronized method. Returns nothing (undefined).&lt;br /&gt;
&lt;br /&gt;
Shows a login screen, and requires you to enter your password. After the correct password is entered, the &amp;lt;code&amp;gt;e&amp;lt;/code&amp;gt; function is called with one parameter, that's equal to &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
If no SAM config is found, it shows an error message, and calls the &amp;lt;code&amp;gt;e&amp;lt;/code&amp;gt; function with one parameter, that's equal to &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Also, from that screen, you can reboot.&lt;br /&gt;
==== &amp;lt;code&amp;gt;displayLogonUIAsync()&amp;lt;/code&amp;gt; ====&lt;br /&gt;
Asynchronized (technically synchronized) method. Returns a Boolean.&lt;br /&gt;
&lt;br /&gt;
Same as &amp;lt;code&amp;gt;displayLogonUI&amp;lt;/code&amp;gt;, except no parameter is required - the alternative here is the result. &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt; if the SAM config is missing, &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; after the correct password was entered.&lt;br /&gt;
&lt;br /&gt;
=== processes ===&lt;br /&gt;
This is an interesting one. It's not an object, it's an array instead. Contains all the processes in the system.&lt;br /&gt;
&lt;br /&gt;
If we're going by its initial length, the maximum amount of processes in Windows 96 is limited to 8192.&lt;br /&gt;
&lt;br /&gt;
When the limit is exceeded, no applications will run - they will display an error in the console. From that point, closing any open application WILL LOWER THE LIMIT! So the only option is to restart the system.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Object.seal()&amp;lt;/code&amp;gt;ing the array will cause a similar situation to the process limit being exceeded, however you won't be able to close any windows.&lt;br /&gt;
&lt;br /&gt;
== V2 SP1+ ==&lt;br /&gt;
=== ImmersiveDesktopEnvironment ===&lt;br /&gt;
The Immersive Desktop Environment (or the IMDE). It gets initialized on startup, even though it has an exposed &amp;lt;code&amp;gt;init()&amp;lt;/code&amp;gt; method, so as a result, calling it is unnecessary. &lt;br /&gt;
==== &amp;lt;code&amp;gt;init()&amp;lt;/code&amp;gt; ====&lt;br /&gt;
Asynchronized method. Returns nothing (undefined).&lt;br /&gt;
&lt;br /&gt;
Initializes the IMDE. As said above, it is unnecessary to call it.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;closeAllPopups()&amp;lt;/code&amp;gt; ====&lt;br /&gt;
Synchronized method. Returns nothing (undefined).&lt;br /&gt;
&lt;br /&gt;
Doesn't seem to do anything. Calling &amp;lt;code&amp;gt;.toString()&amp;lt;/code&amp;gt; on it reveals this: &amp;lt;code&amp;gt;function w(){document.querySelectorAll(&amp;quot;.imde-ui-popup&amp;quot;).forEach((e=&amp;gt;e.remove()))}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== V3 ==&lt;br /&gt;
As of June 7, 2022.&lt;br /&gt;
&lt;br /&gt;
Won't be listing anything old, as it's the same.&lt;br /&gt;
&lt;br /&gt;
=== SdgfxTest ===&lt;br /&gt;
A...class? Looking through the &amp;lt;code&amp;gt;.toString()&amp;lt;/code&amp;gt; output reveals that its some &amp;lt;canvas&amp;gt; test.&lt;br /&gt;
&lt;br /&gt;
After constructing it and running &amp;lt;code&amp;gt;main()&amp;lt;/code&amp;gt; manually, it shows this window:&lt;br /&gt;
&lt;br /&gt;
[[File:SdgfxTest.png]]&lt;br /&gt;
&lt;br /&gt;
But that seems to be all there is.&lt;br /&gt;
[[Category:API]]&lt;/div&gt;</summary>
		<author><name>Undefishin</name></author>
	</entry>
	<entry>
		<id>https://w96.wiki/w/index.php?title=Windows_96_v2&amp;diff=1257</id>
		<title>Windows 96 v2</title>
		<link rel="alternate" type="text/html" href="https://w96.wiki/w/index.php?title=Windows_96_v2&amp;diff=1257"/>
		<updated>2024-02-08T19:53:12Z</updated>

		<summary type="html">&lt;p&gt;Undefishin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{NoSupport}}&lt;br /&gt;
[[File:Windows 96 v2 screenshot.png|thumb|Windows 96 version 2.0 default desktop. Note that this is an older build and might not have the latest features.]]&lt;br /&gt;
Windows 96 v2 is a version of Windows 96 and was completely rewritten from scratch. Therefore, it only bears visual similarity to its [[Windows 96 v1|predecessor]]. Windows 96 v2 RTM released on the 5th of February 2021, while SP1 and SP2 released on the 4th of April and the 29th of June respectively.&lt;br /&gt;
&lt;br /&gt;
You can visit this release at [https://rel2.windows96.net https://rel2.windows96.net].&lt;br /&gt;
&lt;br /&gt;
== Why the rewrite? ==&lt;br /&gt;
* The code was not well optimized and it was impossible to do so due to the inefficient source code structure.&lt;br /&gt;
* It became spaghetti code due to all the OS logic being fit into one file.&lt;br /&gt;
* As a result of this, it became near impossible to make the code modular and the effort would be better spent rewriting the OS from scratch.&lt;br /&gt;
* Windows 96 v1 had a synchronous design all round, which meant that any async operations would not fit in well and make the spaghetti code situation even worse.&lt;br /&gt;
* WebFS's mixed asynchronous model still imposed annoying file limits often reached by regular users, and also generally made the experience feel much slower.&lt;br /&gt;
* Cross browser support was not 1:1 due to the lack of CSS normalization/use of browser specific functionality. This meant that Windows 96 would not have a consistent look across browsers.&lt;br /&gt;
* A more efficient OS architecture was proposed, where the pros of rewriting the OS eventually outweighed the cons of not rewriting it.&lt;br /&gt;
* To allow more than 1 developer to work on the source code without losing their mind.&lt;br /&gt;
* And lastly, because of ES6 (ECMAScript v6). Most people and browsers cannot support them.&lt;br /&gt;
&lt;br /&gt;
== Version Highlights ==&lt;br /&gt;
* Too many to count (TODO)&lt;br /&gt;
&lt;br /&gt;
== Trivia ==&lt;br /&gt;
* The rewrite took around 6 months to be somewhat usable. During this time, the original Windows 96 community died out completely and many fans left without a trace, due to the year-long period.&lt;br /&gt;
* The COVID-19 pandemic also made it a pain to stay motivated to keep developing Windows 96.&lt;br /&gt;
* The project reached an extent where more than 1 developer was needed.&lt;/div&gt;</summary>
		<author><name>Undefishin</name></author>
	</entry>
	<entry>
		<id>https://w96.wiki/w/index.php?title=The_Windows_96_HiAsm_Pack/Element_Support&amp;diff=1256</id>
		<title>The Windows 96 HiAsm Pack/Element Support</title>
		<link rel="alternate" type="text/html" href="https://w96.wiki/w/index.php?title=The_Windows_96_HiAsm_Pack/Element_Support&amp;diff=1256"/>
		<updated>2024-02-06T13:34:24Z</updated>

		<summary type="html">&lt;p&gt;Undefishin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;As the pack lets you switch the target Windows 96 version for building, the elements in the pack need to be supported for essentially every Windows 96 version.&lt;br /&gt;
&lt;br /&gt;
And because of the above, there's an element named &amp;quot;VersionSwitch&amp;quot;, which was made for making some code appear on one version, but not on other.&lt;br /&gt;
&lt;br /&gt;
''TODO: add the background color thing to the middle column''&lt;br /&gt;
&lt;br /&gt;
== Tables ==&lt;br /&gt;
MultiThreads and Helpers are excluded since they are CodeGen and IDE only.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Main&lt;br /&gt;
|-&lt;br /&gt;
! Name !! Support !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Label || All ||&lt;br /&gt;
|-&lt;br /&gt;
| Edit || All ||&lt;br /&gt;
|-&lt;br /&gt;
| CheckBox || All ||&lt;br /&gt;
|-&lt;br /&gt;
| RadioButton || All ||&lt;br /&gt;
|-&lt;br /&gt;
| Button || All ||&lt;br /&gt;
|-&lt;br /&gt;
| DropDown || All ||&lt;br /&gt;
|-&lt;br /&gt;
| ListBox || All ||&lt;br /&gt;
|-&lt;br /&gt;
| TextArea || Partial || ''doSave and doLoad are not supported on V1''&lt;br /&gt;
|-&lt;br /&gt;
| ProgressBar || All ||&lt;br /&gt;
|-&lt;br /&gt;
| IFrame || All ||&lt;br /&gt;
|-&lt;br /&gt;
| Image || All ||&lt;br /&gt;
|-&lt;br /&gt;
| Canvas || All ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Controls&lt;br /&gt;
|-&lt;br /&gt;
! Name !! Support !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Timeout || All || This really has to be remade&lt;br /&gt;
|-&lt;br /&gt;
| Wait || V2+ only || Uses API that's only present in the next version. This really has to be remade&lt;br /&gt;
|-&lt;br /&gt;
| Interval || All || This really has to be remade&lt;br /&gt;
|-&lt;br /&gt;
| MessageBox || All ||&lt;br /&gt;
|-&lt;br /&gt;
| MsgBoxSimple || Partial || ''doIdleProgress is V2+ only''&lt;br /&gt;
|-&lt;br /&gt;
| Alert || Partial? || Is meant to use the system's custom alert method, which doesnt exist in V1&lt;br /&gt;
|-&lt;br /&gt;
| ContextMenu || V2+ only ||&lt;br /&gt;
|-&lt;br /&gt;
| WApplication || V2+ only ||&lt;br /&gt;
|-&lt;br /&gt;
| NotifyIcon || All || In older versions of the pack, there was no support for V1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Graphics&lt;br /&gt;
|-&lt;br /&gt;
! Name !! Support !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Cnv_Point || All ||&lt;br /&gt;
|-&lt;br /&gt;
| Cnv_Line || All ||&lt;br /&gt;
|-&lt;br /&gt;
| Cnv_Rectangle || All ||&lt;br /&gt;
|-&lt;br /&gt;
| Cnv_Ellipse || All ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ System&lt;br /&gt;
|-&lt;br /&gt;
! (Subcategory/)Name !! Support !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Exec || Partial || doExec is not available in V1&lt;br /&gt;
|-&lt;br /&gt;
| Reboot || All || In V1, simply reloads the page&lt;br /&gt;
|-&lt;br /&gt;
| WRT || V2+ only ||&lt;br /&gt;
|-&lt;br /&gt;
| OSRelease || V2+ only ||&lt;br /&gt;
|-&lt;br /&gt;
| Console || All || Fun Fact: Nander once wrote a Console element that only had a Log method&lt;br /&gt;
|-&lt;br /&gt;
| Components/SystemConfig || V3 only ||&lt;br /&gt;
|-&lt;br /&gt;
| Components/SystemFlags || V2+ only ||&lt;br /&gt;
|-&lt;br /&gt;
| Components/WindowSystem || Partial || ''doCloseAllWindows, doDeactivateAllWindows and StartZIndex are not available in V1''&lt;br /&gt;
|-&lt;br /&gt;
| Miscellaneous/[[API:w96.debug|__debug]] || V2+ only ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Network&lt;br /&gt;
|-&lt;br /&gt;
! Name !! Support !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| WebSocket || All ||&lt;br /&gt;
|-&lt;br /&gt;
| SocketIO || All ||&lt;br /&gt;
|-&lt;br /&gt;
| SocketIOShared || All ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Strings&lt;br /&gt;
|-&lt;br /&gt;
! (Subcategory/)Name !! Support !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| StrList || V2+ only || ''doSave and doLoad are not supported on V1''&lt;br /&gt;
|-&lt;br /&gt;
| Delete || All ||&lt;br /&gt;
|-&lt;br /&gt;
| Copy || All ||&lt;br /&gt;
|-&lt;br /&gt;
| Insert || All ||&lt;br /&gt;
|-&lt;br /&gt;
| Length || All ||&lt;br /&gt;
|-&lt;br /&gt;
| Convert || All ||&lt;br /&gt;
|-&lt;br /&gt;
| Concatenation/StrCat || All ||&lt;br /&gt;
|-&lt;br /&gt;
| Concatenation/StrCatDelim || All ||&lt;br /&gt;
|-&lt;br /&gt;
| Concatenation/FormatStr || All ||&lt;br /&gt;
|-&lt;br /&gt;
| Separation/Split || All ||&lt;br /&gt;
|-&lt;br /&gt;
| Search/Position || All ||&lt;br /&gt;
|-&lt;br /&gt;
| Substitution/StrCase || All ||&lt;br /&gt;
|-&lt;br /&gt;
| Substitution/Replace || All ||&lt;br /&gt;
|-&lt;br /&gt;
| Substitution/Trim || All ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ File System&lt;br /&gt;
|-&lt;br /&gt;
! (Subcategory/)Name !! Support !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| DirTools || V2+ only ||&lt;br /&gt;
|-&lt;br /&gt;
| FileTools || V2+ only ||&lt;br /&gt;
|-&lt;br /&gt;
| UniversalTools || V2+ only ||&lt;br /&gt;
|-&lt;br /&gt;
| DirForEach || V2+ only ||&lt;br /&gt;
|-&lt;br /&gt;
| FileStat || V2+ only ||&lt;br /&gt;
|-&lt;br /&gt;
| MkShortcut || All ||&lt;br /&gt;
|-&lt;br /&gt;
| Ini || V3 only ||&lt;br /&gt;
|-&lt;br /&gt;
| Dialogs/ODialog || V2+ only ||&lt;br /&gt;
|-&lt;br /&gt;
| Dialogs/SDialog || V2+ only ||&lt;br /&gt;
|-&lt;br /&gt;
| Custom File Systems/LocalStorageFileSystem || V2+ only ||&lt;br /&gt;
|-&lt;br /&gt;
| Custom File Systems/IndexedFileSystem || V2+ only ||&lt;br /&gt;
|-&lt;br /&gt;
| Custom File Systems/RamFileSystem || V2+ only ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Logic&lt;br /&gt;
|-&lt;br /&gt;
! Name !! Support !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Operation || All ||&lt;br /&gt;
|-&lt;br /&gt;
| Rand || V2+ only || Will most likely have a polyfill in the future&lt;br /&gt;
|-&lt;br /&gt;
| If || All ||&lt;br /&gt;
|-&lt;br /&gt;
| Between || All ||&lt;br /&gt;
|-&lt;br /&gt;
| For || All ||&lt;br /&gt;
|-&lt;br /&gt;
| While || All ||&lt;br /&gt;
|-&lt;br /&gt;
| Boolean || All ||&lt;br /&gt;
|-&lt;br /&gt;
| IsNaN || All ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Arrays&lt;br /&gt;
|-&lt;br /&gt;
! Name !! Support !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| ArrayRW || All ||&lt;br /&gt;
|-&lt;br /&gt;
| ArrayEnum || All ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Tools&lt;br /&gt;
|-&lt;br /&gt;
! (Subcategory/)Name !! Support !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| DoData || All ||&lt;br /&gt;
|-&lt;br /&gt;
| EventFromData || All ||&lt;br /&gt;
|-&lt;br /&gt;
| Variable || All || This really has to be remade&lt;br /&gt;
|-&lt;br /&gt;
| IndexToChanel || All || The grammar mistake is intentional&lt;br /&gt;
|-&lt;br /&gt;
| VisualStrings || All ||&lt;br /&gt;
|-&lt;br /&gt;
| InlineCode || All ||&lt;br /&gt;
|-&lt;br /&gt;
| TryCatch || All ||&lt;br /&gt;
|-&lt;br /&gt;
| Function || All ||&lt;br /&gt;
|-&lt;br /&gt;
| Comment || All ||&lt;br /&gt;
|-&lt;br /&gt;
| VersionSwitch || All ||&lt;br /&gt;
|-&lt;br /&gt;
| Util || V2+ only ||&lt;br /&gt;
|-&lt;br /&gt;
| FakeLocalStorage || All ||&lt;br /&gt;
|-&lt;br /&gt;
| Object || All ||&lt;br /&gt;
|-&lt;br /&gt;
| Types/TypeOf || All ||&lt;br /&gt;
|-&lt;br /&gt;
| Types/Converter || All ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Exposed Objects&lt;br /&gt;
|-&lt;br /&gt;
! Name !! Support !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| StandardWindow || All ||&lt;br /&gt;
|-&lt;br /&gt;
| WindowParams || V2+ only ||&lt;br /&gt;
|-&lt;br /&gt;
| MouseEvent || All ||&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Undefishin</name></author>
	</entry>
	<entry>
		<id>https://w96.wiki/w/index.php?title=The_Windows_96_HiAsm_Pack/QNA&amp;diff=1255</id>
		<title>The Windows 96 HiAsm Pack/QNA</title>
		<link rel="alternate" type="text/html" href="https://w96.wiki/w/index.php?title=The_Windows_96_HiAsm_Pack/QNA&amp;diff=1255"/>
		<updated>2024-02-06T13:33:03Z</updated>

		<summary type="html">&lt;p&gt;Undefishin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Stub|help add questions}}&lt;br /&gt;
&lt;br /&gt;
== Questions and Answers ==&lt;br /&gt;
=== How do I use HiAsm? ===&lt;br /&gt;
There's plenty of tutorials, guides, etc on other websites, including YouTube.&lt;br /&gt;
&lt;br /&gt;
Be aware that most of them are in Russian, due to the nature of the program's country of origin.&lt;br /&gt;
&lt;br /&gt;
=== The elements are limiting what I can do, how do I exceed those limits? ===&lt;br /&gt;
Three options:&lt;br /&gt;
* If you can write JavaScript code, you can use the InlineCode element. It's located in the Tools category.&lt;br /&gt;
* Ask the developer(s) to make an element for what you're trying to do. Or try to make one yourself.&lt;br /&gt;
* Use elements that are available to do the job. Note that this may not work for some things.&lt;br /&gt;
&lt;br /&gt;
=== Can I make apps for Windows 93? ===&lt;br /&gt;
No. Maybe in the future it will be possible as a separate pack.&lt;br /&gt;
&lt;br /&gt;
=== Why are some elements unavailable in earlier versions? ===&lt;br /&gt;
Some things are just unavailable in them. Built-in polyfills might be added later.&lt;br /&gt;
&lt;br /&gt;
=== I want a child window, how do I make one? ===&lt;br /&gt;
You can experiment with InlineCode, but that's probably it; MultiElement(Ex/Poly)s are too complex to implement at the moment. They're the base of ChildWindows.&lt;br /&gt;
&lt;br /&gt;
== Problems and Solutions ==&lt;br /&gt;
=== The pack is not showing! ===&lt;br /&gt;
Make sure you:&lt;br /&gt;
* Didn't change the IDE's language to English. There's a weird bug that hides custom packs when the language is set to English.&lt;br /&gt;
* Extracted the pack correctly. Make sure you extracted it as &amp;lt;code&amp;gt;(HiAsm installation directory)\Elements\w96&amp;lt;/code&amp;gt; (for example, &amp;lt;code&amp;gt;C:\Program Files (x86)\HiAsm\Elements\w96&amp;lt;/code&amp;gt;). If you extracted it as a subfolder (like &amp;lt;code&amp;gt;(HiAsm installation directory)\Elements\w96\w96&amp;lt;/code&amp;gt;), it won't work.&lt;br /&gt;
* Ran the w96.his file. If it shows a &amp;quot;unknown file&amp;quot; window, drag it into the HiAsm icon, or if HiAsm is open, just drag it into the IDE.&lt;br /&gt;
* Didn't delete the Elements.db file. It contains all elements.&lt;/div&gt;</summary>
		<author><name>Undefishin</name></author>
	</entry>
	<entry>
		<id>https://w96.wiki/w/index.php?title=The_Windows_96_HiAsm_Pack&amp;diff=1254</id>
		<title>The Windows 96 HiAsm Pack</title>
		<link rel="alternate" type="text/html" href="https://w96.wiki/w/index.php?title=The_Windows_96_HiAsm_Pack&amp;diff=1254"/>
		<updated>2024-02-06T13:31:40Z</updated>

		<summary type="html">&lt;p&gt;Undefishin: didn't think I would make constructive edits here, huh?&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:04-08components.png|thumb|All the element, as of the August 4th release. An element (or component) is like a lego block of an application created with HiAsm.]]&lt;br /&gt;
&lt;br /&gt;
An addon for HiAsm, a niche no-code IDE from Russia (for Windows only), that lets you make apps for Windows 96 with almost no effort. It is created by [[User:Cab|Cab]].&lt;br /&gt;
&lt;br /&gt;
== Sub-pages ==&lt;br /&gt;
* [[The Windows 96 HiAsm Pack/QNA|Questions &amp;amp; Answers]]&lt;br /&gt;
* [[The Windows 96 HiAsm Pack/Element Support|Element Support]]&lt;br /&gt;
&lt;br /&gt;
== What's the point? ==&lt;br /&gt;
Most people are too lazy to learn how to code, or if they do know how to, they may be lazy to even code in the first place.&lt;br /&gt;
&lt;br /&gt;
But really, the pack is made for fun.&lt;br /&gt;
&lt;br /&gt;
== What are even the benefits from just coding alone? ==&lt;br /&gt;
* The code is '''generated'''.&lt;br /&gt;
* HiAsm has a built-in form (window) designer.&lt;br /&gt;
* The pack does all the UI work for you.&lt;br /&gt;
* Easy prototyping.&lt;br /&gt;
* Code generation for [[Windows 96 v3|v3]], [[Windows 96 v2|v2]] and even [[Windows 96 v1|v1]] if you want.&lt;br /&gt;
&lt;br /&gt;
== Installation guide ==&lt;br /&gt;
In case you got interested, here's a guide on how to install both HiAsm and the pack.&lt;br /&gt;
&lt;br /&gt;
Skip Part 1 if you already have HiAsm installed.&lt;br /&gt;
&lt;br /&gt;
=== Part 1: Installing HiAsm ===&lt;br /&gt;
Go to [https://hiasm.com/ HiAsm's website]. In the top menu bar, click on &amp;quot;Скачать&amp;quot; (Download, in Russian).&lt;br /&gt;
&lt;br /&gt;
On the next page, click on the first link if you want the official build (less stuff, also right click then click save as), or the second if you want the alternative build (more stuff).&lt;br /&gt;
&lt;br /&gt;
If you get the official build, you should get a .rar, which contains the HiAsm installer. Just go through the instructions, and at the last instruction, enter whatever you want (it will ask you for kinda personal information, however that is not important nor does HiAsm or the installer send it anywhere in anyway).&lt;br /&gt;
&lt;br /&gt;
If you get the alternative build, you should get an executable directly. Just click on it and then &amp;quot;Установить&amp;quot; (Install). Wait until the installation finishes. You should get a window with the following checkboxes:&lt;br /&gt;
&lt;br /&gt;
# Add a shortcut to HiAsm on the desktop&lt;br /&gt;
# Add a shortcut to HiSVN (the updater) on the desktop (you may wanna untick this)&lt;br /&gt;
# Add shortcuts to the start menu&lt;br /&gt;
# Add service information to the registry&lt;br /&gt;
# Don't change the current HiAsm settings (if its your first time installing the program, it'll be disabled)&lt;br /&gt;
# Launch the take-own script for the HiAsm directory (you may wanna untick this as it's pretty much useless if you have administrator (or if you're on XP and below))&lt;br /&gt;
# Let alone updated KOL for D4 (not sure what this does, so maybe leave it turned off)&lt;br /&gt;
Now, HiAsm is installed. Just run it once, then exit it. Create a folder at &amp;lt;code&amp;gt;%USERPROFILE%\Projects&amp;lt;/code&amp;gt; (for example &amp;lt;code&amp;gt;C:\Users\(USERNAME)\Projects&amp;lt;/code&amp;gt;), if it doesn't exist yet. This will be required from now on.&lt;br /&gt;
&lt;br /&gt;
You may have noticed the weird gibberish text inside, that's an issue related to the fact that you dont have cyrillic fonts installed. Or maybe you do, but then your fonts arent configured to be cyrillic.&lt;br /&gt;
&lt;br /&gt;
Anyway, now onto Part 2.&lt;br /&gt;
&lt;br /&gt;
=== Part 2: Installing the pack ===&lt;br /&gt;
First, [https://cdn.discordapp.com/attachments/750475455051726848/1017783075079463052/w96.zip download the pack]. The installation instructions are inside the archive.&lt;br /&gt;
&lt;br /&gt;
In other words:&lt;br /&gt;
# Download the pack using the link above&lt;br /&gt;
# Extract the archive into &amp;lt;code&amp;gt;(HiAsm installation path)\Elements\w96&amp;lt;/code&amp;gt; (for example &amp;lt;code&amp;gt;C:\Program Files (x86)\HiAsm\Elements\w96&amp;lt;/code&amp;gt;)&lt;br /&gt;
# Go to the extracted archive, and run the w96.his file '''from there'''. HiAsm should open and immediately close&lt;br /&gt;
To make sure the pack did install, run HiAsm again, and click on the file icon on the toolbar on the top. A (new project) window should appear. If you see &amp;quot;w96&amp;quot; there, then that means the pack has been installed!&lt;br /&gt;
&lt;br /&gt;
=== Part 3: Getting at least a very basic app to generate ===&lt;br /&gt;
In the New Project window, click on w96, then Entry point. You should be met with a blank white grid with only one element: the EntryPoint. Click on the icon with a file and zeros and ones to generate a w96 app. (do not click the green triangle its not gonna do anything useful)&lt;br /&gt;
&lt;br /&gt;
Go to the Projects folder you created earlier, and you should see a .js file. That IS the app that was generated! It should look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
//!wrt&lt;br /&gt;
const { Theme } = w96.ui;&lt;br /&gt;
class hiProject1 extends w96.WApplication {&lt;br /&gt;
  constructor() {super();}&lt;br /&gt;
  async main(argv) {&lt;br /&gt;
    super.main(argv);&lt;br /&gt;
    const mainwnd = this.createWindow({&lt;br /&gt;
      center: true,&lt;br /&gt;
      controlBoxStyle: &amp;quot;WS_CBX_CLOSE&amp;quot;,&lt;br /&gt;
      resizable: false,&lt;br /&gt;
      initialWidth: 320,&lt;br /&gt;
      initialHeight: 240,&lt;br /&gt;
      title: &amp;quot;Form&amp;quot;,&lt;br /&gt;
      taskbar: true,&lt;br /&gt;
      body: ''&lt;br /&gt;
    }, true);&lt;br /&gt;
    mainwnd.show();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
return await WApplication.execAsync(new hiProject1(), this.boxedEnv.args);&lt;br /&gt;
// simply double click to run&lt;br /&gt;
// Generated using HiAsm 4.5 build 186&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt; (assuming you didn't touch anything)&lt;br /&gt;
&lt;br /&gt;
==== Part 3.1: Switching between versions ====&lt;br /&gt;
By default, new projects in the Windows 96 Pack generate for V3. This can be changed by simply going into the properties of the EntryPoint element (after selecting it, click on the tab on the right that has a hand pointing to a sheet of paper), in Script -&amp;gt; Version. After clicking on the &amp;quot;text&amp;quot; field, click the little button on the right.&lt;br /&gt;
&lt;br /&gt;
You can select v3, v2, or (you won't believe it) v1.&lt;br /&gt;
&lt;br /&gt;
=== Part 4: Fin ===&lt;br /&gt;
You have successfully installed HiAsm and the pack. You may use the tab on the left (in the IDE when a w96 pack project is open) to insert other elements.&lt;br /&gt;
&lt;br /&gt;
Have fun!&lt;br /&gt;
&lt;br /&gt;
== Example applications, by the author ==&lt;br /&gt;
* Trash Cleaner ([https://cdn.discordapp.com/attachments/750475455051726848/1002200102301089843/TrashCleaner.js V3], [https://cdn.discordapp.com/attachments/750475455051726848/1002200186212331570/TrashCleaner.js V2])&lt;br /&gt;
* Create a Drive ([https://cdn.discordapp.com/attachments/750475455051726848/976520092445712454/CreateFS.js V3], [https://cdn.discordapp.com/attachments/750475455051726848/976520345693597706/CreateFS.js V2])&lt;br /&gt;
* Guess a Number ([https://cdn.discordapp.com/attachments/750475455051726848/971746605273342113/GuessNumber.js V3], [https://cdn.discordapp.com/attachments/750475455051726848/971746664719220746/GuessNumber.js V2])&lt;/div&gt;</summary>
		<author><name>Undefishin</name></author>
	</entry>
	<entry>
		<id>https://w96.wiki/w/index.php?title=Windows_96_v3&amp;diff=1253</id>
		<title>Windows 96 v3</title>
		<link rel="alternate" type="text/html" href="https://w96.wiki/w/index.php?title=Windows_96_v3&amp;diff=1253"/>
		<updated>2024-02-06T13:27:54Z</updated>

		<summary type="html">&lt;p&gt;Undefishin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Windows 96 v3 is the current version of [[Windows 96]] that is the successor to [[Windows 96 v2|v2]]. It added a lot of features, most notably a much more faithful Windows 9x style UI. It had some cut content which you can see [[Windows 96 v3 Cut Content|here]].&lt;br /&gt;
&lt;br /&gt;
== Version Highlights ==&lt;br /&gt;
* The 9x style of the OS has been vastly improved.&lt;br /&gt;
* The apps are now in the [[Root Filesystem|filesystem]] instead of in the Windows96 kernel.&lt;br /&gt;
* A new terminal, compatible with XTerm.&lt;br /&gt;
* System Config Manager (SCM) that works similarly to the Windows Registry.&lt;br /&gt;
* A new shell, and a highly advanced theming engine.&lt;br /&gt;
* A new file explorer that looks more like the Windows 98 one.&lt;br /&gt;
* BoxedWine (bWINE) is now built in into Windows 96.&lt;br /&gt;
* More apps, including: WMBox, JSLinux, 3D Pinball Space Cadet (the IMGUI port), and PDF Reader.&lt;br /&gt;
* An Out Of Box Experience that can triggered by pressing ALT+O on Windows 96 boot.&lt;br /&gt;
* [[Disk Encryption]].&lt;br /&gt;
* The new and improved WEX (Windows96 C/C++ API) (as opposed to the old SDK), that allows you to write Windows 96 apps in C/C++.&lt;br /&gt;
* A new wiki which you are on right now.&lt;br /&gt;
* Task Manager, allowing you to easily kill misbehaving apps.&lt;br /&gt;
* [[Media Player]], replaces the old Video Player.&lt;br /&gt;
* [[Version Browser]], replaces the old [[Virtual Machine]].&lt;br /&gt;
* [[InternetE]], replaces the old [[Internet Exploder]].&lt;br /&gt;
* The filesystem is now fully asynchronous.&lt;br /&gt;
* P3FS&lt;br /&gt;
* The YouAreAnIdiot app now bounces across the screen, like the real YouAreAnIdiot.&lt;br /&gt;
&lt;br /&gt;
== Trivia ==&lt;br /&gt;
* This version took a very long time to release, due to the extended development time.&lt;/div&gt;</summary>
		<author><name>Undefishin</name></author>
	</entry>
	<entry>
		<id>https://w96.wiki/w/index.php?title=Windows_96_v2&amp;diff=1252</id>
		<title>Windows 96 v2</title>
		<link rel="alternate" type="text/html" href="https://w96.wiki/w/index.php?title=Windows_96_v2&amp;diff=1252"/>
		<updated>2024-02-06T13:23:15Z</updated>

		<summary type="html">&lt;p&gt;Undefishin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{NoSupport}}&lt;br /&gt;
[[File:Windows 96 v2 screenshot.png|thumb|Windows 96 version 2.0 default desktop. Note that this is an older build and might not have the latest features.]]&lt;br /&gt;
Windows 96 v2 is a version of Windows 96 and was completely rewritten from scratch. Therefore, it only bears visual similarity to its [[Windows 96 v1|predecessor]]. Windows 96 v2 RTM released on the 5th of February 2021, while SP1 and SP2 released on the 4th of April and the 29th of June respectively.&lt;br /&gt;
&lt;br /&gt;
You can visit this release at [https://rel2.windows96.net https://rel2.windows96.net].&lt;br /&gt;
&lt;br /&gt;
== Why the rewrite? ==&lt;br /&gt;
* The code was not well optimized and it was impossible to do so due to the inefficient source code structure.&lt;br /&gt;
* It became spaghetti code due to all the OS logic being fitted into one file.&lt;br /&gt;
* As a result of this, it became near impossible to make the code modular and the effort would be better spent rewriting the OS from scratch.&lt;br /&gt;
* Windows 96 v1 had a synchronous design all round, which meant that any async operations would not fit in well and make the spaghetti code situation even worse.&lt;br /&gt;
* WebFS's mixed asynchronous model still imposed annoying file limits often reached by regular users, and also generally made the experience feel much slower.&lt;br /&gt;
* Cross browser support was not 1:1 due to the lack of CSS normalization/use of browser specific functionality. This meant that Windows 96 would not have a consistent look across browsers.&lt;br /&gt;
* A more efficient OS architecture was proposed, where the pros of rewriting the OS eventually outweighed the cons of not rewriting it.&lt;br /&gt;
* To allow more than 1 developer to work on the source code without losing their mind.&lt;br /&gt;
*And because the ES6 (ECMAScript v6). Most people and browsers cannot support them.&lt;br /&gt;
&lt;br /&gt;
== Version Highlights ==&lt;br /&gt;
* Too many to count (TODO)&lt;br /&gt;
&lt;br /&gt;
== Trivia ==&lt;br /&gt;
* The rewrite took around 6 months to be somewhat usable. During this time, the original Windows 96 community died out completely and many fans left without a trace.&lt;br /&gt;
* The COVID-19 pandemic also made it a pain to stay motivated to keep developing Windows 96.&lt;br /&gt;
* The project reached an extent where more than 1 developer was needed.&lt;/div&gt;</summary>
		<author><name>Undefishin</name></author>
	</entry>
	<entry>
		<id>https://w96.wiki/w/index.php?title=Windows_96_v1&amp;diff=1251</id>
		<title>Windows 96 v1</title>
		<link rel="alternate" type="text/html" href="https://w96.wiki/w/index.php?title=Windows_96_v1&amp;diff=1251"/>
		<updated>2024-02-06T13:18:24Z</updated>

		<summary type="html">&lt;p&gt;Undefishin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{NoSupport}}&lt;br /&gt;
[[File:Screenshot01-v1.png|thumb|A fresh Windows 96 version 1.0 desktop.]]&lt;br /&gt;
&lt;br /&gt;
Windows 96 v1 is the last &amp;quot;classic&amp;quot; version of Windows 96 released on the 15th of August 2019.&lt;br /&gt;
&lt;br /&gt;
It's dubbed as the last classic version due to a total rewrite that occurred between Windows 96 v1 and v2. The rewrite made Windows 96 v1 apps completely incompatible with [[Windows 96 v2|2.0]] due to a different architecture and API set.&lt;br /&gt;
&lt;br /&gt;
It can still be found at https://rel1.windows96.net.&lt;br /&gt;
&lt;br /&gt;
== Version Highlights ==&lt;br /&gt;
* A package manager was introduced to allow users to install additional apps from what was already provided.&lt;br /&gt;
* KeyboardMusic was added to allow users to make music using their keyboards.&lt;br /&gt;
* Many window manager bugs that existed in version 0.5 were fixed (e.g. active window switching bug).&lt;br /&gt;
* The &amp;lt;code&amp;gt;x:/content&amp;lt;/code&amp;gt; folder was emptied.&lt;br /&gt;
* Window icons were added and the taskbar functionality was improved.&lt;br /&gt;
* Many apps had their functionality refined.&lt;br /&gt;
&lt;br /&gt;
== Trivia ==&lt;br /&gt;
* This version was the main version of Windows 96 for a very long time.&lt;br /&gt;
* Most changes were API updates and app refinements compared to version 0.5.&lt;/div&gt;</summary>
		<author><name>Undefishin</name></author>
	</entry>
	<entry>
		<id>https://w96.wiki/w/index.php?title=User_talk:Undefishin&amp;diff=1250</id>
		<title>User talk:Undefishin</title>
		<link rel="alternate" type="text/html" href="https://w96.wiki/w/index.php?title=User_talk:Undefishin&amp;diff=1250"/>
		<updated>2024-02-06T13:13:13Z</updated>

		<summary type="html">&lt;p&gt;Undefishin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Welcome to ''Wiki96''!'''&lt;br /&gt;
We hope you will contribute much and well.&lt;br /&gt;
You will probably want to read the [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents help pages].&lt;br /&gt;
Again, welcome and have fun! [[User:Z8|Z8]] ([[User talk:Z8|talk]]) 14:10, 6 February 2024 (CET)&lt;br /&gt;
: I certainly will. Thank you for letting me on here, it is very well appreciated! --[[User:Undefishin|Undefishin]] ([[User talk:Undefishin|talk]]) 14:13, 6 February 2024 (CET)&lt;/div&gt;</summary>
		<author><name>Undefishin</name></author>
	</entry>
</feed>