<?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=Kelbaz</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=Kelbaz"/>
	<link rel="alternate" type="text/html" href="https://w96.wiki/wiki/Special:Contributions/Kelbaz"/>
	<updated>2026-05-03T07:28:22Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.37.1</generator>
	<entry>
		<id>https://w96.wiki/w/index.php?title=Package_Manager&amp;diff=1247</id>
		<title>Package Manager</title>
		<link rel="alternate" type="text/html" href="https://w96.wiki/w/index.php?title=Package_Manager&amp;diff=1247"/>
		<updated>2024-01-25T22:05:45Z</updated>

		<summary type="html">&lt;p&gt;Kelbaz: Changed Onofficiel's repository url&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Package Manager.jpg|thumb|The Package Manager program.]]&lt;br /&gt;
The package manager is Windows 96's primary method of distribution for programs. The term &amp;quot;package&amp;quot; refers to a complex set of folders and files, which when coupled with a JSON file and structured correctly, can be decoded by the package manager program and unpacked into the Windows 96 filesystem.&lt;br /&gt;
&lt;br /&gt;
==Functioning ==&lt;br /&gt;
Packages are hosted on a webserver, where the root URL of the package folder is then set as a package repository in the package manager. Packages can be hosted on any static website host (i.e. Github Pages), and comprise of a set of 16x16 and 32x32 pixel icon files, as well as a &amp;quot;content@1.0&amp;quot; directories/zips and a JSON file which sets the folders and icons as variables.[[File:Pkgman-structure.png|The package manager file structure.|thumb]]&lt;br /&gt;
==Package structure==&lt;br /&gt;
During the creation of a package repository, the package manager must be able to decode the structure of the package to be able to successfully unpack any files or folders inside. The file sctructure can be found on the right.&lt;br /&gt;
&lt;br /&gt;
==Community==&lt;br /&gt;
Packages are created by the community to share their work to other users. Packages may contain applications, programs, tools, themes, or wallpapers. Here are some repositories created by the community:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!URL&lt;br /&gt;
!Author&lt;br /&gt;
!Note&lt;br /&gt;
|-&lt;br /&gt;
|[https://packages.windows96.net/community https://packages.windows96.net/r3-main]&lt;br /&gt;
|Windows 96&lt;br /&gt;
|The official main repository.&lt;br /&gt;
|-&lt;br /&gt;
|https://packages.windows96.net/community&lt;br /&gt;
|Windows 96 Contributors&lt;br /&gt;
|The official community repository. Packages are picked using a high standard. (Down)&lt;br /&gt;
|-&lt;br /&gt;
|https://nandertga.ddns.net/w96-packages&lt;br /&gt;
|NanderTGA&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|https://sgeo.github.io/win96-repos/apps&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Sgeo&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|https://sgeo.github.io/win96-repos/malware&lt;br /&gt;
|Malware repository - use at your own risk&lt;br /&gt;
|-&lt;br /&gt;
|https://jameisepic.github.io/thinkjame/public/main&lt;br /&gt;
|JameIsEpic&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[https://onofficiel.github.io/w96/v3 https://onofficiel.github.io/w96]&lt;br /&gt;
|Onofficiel ([[User:Kelbaz|Kelbaz]])&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|https://plopilpy.github.io/w96&lt;br /&gt;
|[[User:Plopilpy|Plopilpy]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|https://pack96.awesomecrater.repl.co/main&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; |[[User:Themirrazz|themirrazz]]&lt;br /&gt;
|Only for [[Windows 96 v2]] (Down)&lt;br /&gt;
|-&lt;br /&gt;
|https://themirrazz.vercel.app&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|https://themirrazzjp.vercel.app&lt;br /&gt;
|Japanese Repo (Beta) / 日本語リポジトリー (ベータ版)&lt;br /&gt;
|-&lt;br /&gt;
|https://w96.boomlings.xyz/repo/v3&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |[[User:Nolanwhy|nolanwhy]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|https://w96.boomlings.xyz/repo/v3/malware&lt;br /&gt;
|Malware repository - use at your own risk&lt;br /&gt;
|-&lt;br /&gt;
|https://egg.l5.ca/w96&lt;br /&gt;
|egg.l5.ca&lt;br /&gt;
|Contains wallpaper packs, themes and games&lt;br /&gt;
|-&lt;br /&gt;
|https://raw.githubusercontent.com/Driftini/w96pkgs/main&lt;br /&gt;
|Driftini&lt;br /&gt;
|&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Kelbaz</name></author>
	</entry>
	<entry>
		<id>https://w96.wiki/w/index.php?title=API:w96.FS&amp;diff=1228</id>
		<title>API:w96.FS</title>
		<link rel="alternate" type="text/html" href="https://w96.wiki/w/index.php?title=API:w96.FS&amp;diff=1228"/>
		<updated>2023-12-22T18:53:09Z</updated>

		<summary type="html">&lt;p&gt;Kelbaz: Filled every single methods&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== &amp;lt;code&amp;gt;class FS&amp;lt;/code&amp;gt; ===&lt;br /&gt;
This namespace refers to the file system API of Windows 96. &amp;lt;code&amp;gt;w96.FS&amp;lt;/code&amp;gt; allows manipulation of file system entries by, for example, renaming, deleting or copying them. It is also possible to create, read and write files and directories.&lt;br /&gt;
&lt;br /&gt;
== Structure ==&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;mount(fso: IFileSystem): Promise&amp;lt;void&amp;gt;&amp;lt;/code&amp;gt; ===&lt;br /&gt;
Mounts a file system using the specified object (&amp;quot;driver&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;umount(prefix: String): Promise&amp;lt;void&amp;gt;&amp;lt;/code&amp;gt; ===&lt;br /&gt;
Unmounts a file system instance.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;mounts(): IFileSystem[]&amp;lt;/code&amp;gt; ===&lt;br /&gt;
Gets all mounted file systems.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;list(): String[]&amp;lt;/code&amp;gt; ===&lt;br /&gt;
Gets all mounted file system prefixes.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;nextLetter(): String&amp;lt;/code&amp;gt; ===&lt;br /&gt;
Get the next available drive letter.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;toBlob(path: String): Promise&amp;lt;Blob&amp;gt;&amp;lt;/code&amp;gt; ===&lt;br /&gt;
Creates a blob from a specified path.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;get(prefix: String): IFileSystem&amp;lt;/code&amp;gt; ===&lt;br /&gt;
Retuns a file system by its prefix.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;toURL(path: String): Promise&amp;lt;String&amp;gt;&amp;lt;/code&amp;gt; ===&lt;br /&gt;
Creates a URL from the specified file path.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;isFile(path: String): Promise&amp;lt;Boolean&amp;gt;&amp;lt;/code&amp;gt; ===&lt;br /&gt;
Returns &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; if the entry is a file.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;isEmpty(path: String): Promise&amp;lt;Boolean&amp;gt;&amp;lt;/code&amp;gt; ===&lt;br /&gt;
Returns &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; if the file is empty.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;mkdir(path: String): Promise&amp;lt;Boolean&amp;gt;&amp;lt;/code&amp;gt; ===&lt;br /&gt;
Creates a directory at the specified path.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;rmdir(path: String): Promise&amp;lt;Boolean&amp;gt;&amp;lt;/code&amp;gt; ===&lt;br /&gt;
Deletes a directory at the specified path.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;touch(path: String): Promise&amp;lt;Boolean&amp;gt;&amp;lt;/code&amp;gt; ===&lt;br /&gt;
Creates a file at the specified path.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;rm(path: String): Promise&amp;lt;Boolean&amp;gt;&amp;lt;/code&amp;gt; ===&lt;br /&gt;
Deletes a file at the specified path.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;readdir(path: String, scan_mode: Boolean): String[]&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
* If scan_mode is set to true, then the filetype is included with the path&lt;br /&gt;
&lt;br /&gt;
Returns a list of entities contained in the specified path.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;cpdir(src: String, dest: String): Promise&amp;lt;Boolean&amp;gt;&amp;lt;/code&amp;gt; ===&lt;br /&gt;
Copies a directory to a new destination.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;cpfile(src: String, dest: String): Promise&amp;lt;Boolean&amp;gt;&amp;lt;/code&amp;gt; ===&lt;br /&gt;
Copies a file to a new destination.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;mvfile(src: String, dest: String): Promise&amp;lt;Boolean&amp;gt;&amp;lt;/code&amp;gt; ===&lt;br /&gt;
Moves a file to a new destination.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;mvdir(src: String, dest: String): Promise&amp;lt;Boolean&amp;gt;&amp;lt;/code&amp;gt; ===&lt;br /&gt;
Moves a directory to a new destination.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;exists(path: String): Boolean&amp;lt;/code&amp;gt; ===&lt;br /&gt;
Checks if an entity exists.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;readstr(path: String): Promise&amp;lt;String&amp;gt;&amp;lt;/code&amp;gt; ===&lt;br /&gt;
Reads the specified file as a string.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;readbin(path: String): Promise&amp;lt;Uint8Array&amp;gt;&amp;lt;/code&amp;gt; ===&lt;br /&gt;
Reads the specified file as binary.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;filetype(path: String): 0 | 1 | -1&amp;lt;/code&amp;gt; ===&lt;br /&gt;
Returns the file type of a node. This can be a binary or text file.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;writestr(path: String, data: String): Promise&amp;lt;Boolean&amp;gt;&amp;lt;/code&amp;gt; ===&lt;br /&gt;
Truncates and writes a UTF-8 encoded string to the specified file.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;writebin(path: String, data: Uint8Array | Number[]): Promise&amp;lt;Boolean&amp;gt;&amp;lt;/code&amp;gt; ===&lt;br /&gt;
Truncates and writes data to the specified file.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;walk(path: String): String[]&amp;lt;/code&amp;gt; ===&lt;br /&gt;
Walks through the contents of a directory.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;stat(path: String): FSStatResult&amp;lt;/code&amp;gt; ===&lt;br /&gt;
Retrieves information about a file system entry.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;rename(path: String, newName: String): Promise&amp;lt;Boolean&amp;gt;&amp;lt;/code&amp;gt; ===&lt;br /&gt;
Renames a file or folder.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;readBinChunk(path: String, start?: Number, end?: Number): Promise&amp;lt;Uint8Array&amp;gt;&amp;lt;/code&amp;gt; ===&lt;br /&gt;
Returns a slice of a file binary data from a path, a start and an end index.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;readStrChunk(path: String, start?: Number, end?: Number): Promise&amp;lt;String&amp;gt;&amp;lt;/code&amp;gt; ===&lt;br /&gt;
Returns a slice of a file as a string from a path, a start and an end index.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;cache(path: String, params: { type: &amp;quot;binary&amp;quot; | &amp;quot;string&amp;quot; | &amp;quot;blob&amp;quot;, overwrite: Boolean }): Promise&amp;lt;void&amp;gt;&amp;lt;/code&amp;gt; ===&lt;br /&gt;
Caches a file from a given path depending on parameters like the overwriting or the file type.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;uncache(path: String): void&amp;lt;/code&amp;gt; ===&lt;br /&gt;
Uncaches the file at a specified path.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;getFromCache(path: String): Uint8Array | String | Blob | undefined&amp;lt;/code&amp;gt; ===&lt;br /&gt;
Gives the the data from the cached file at a specified path. If the file wasn't cached, it returns &amp;lt;code&amp;gt;undefined&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;hash(path: String, algorithm: &amp;quot;default&amp;quot; | &amp;quot;md5&amp;quot; | &amp;quot;sha256&amp;quot; | &amp;quot;sha512&amp;quot;): Promise&amp;lt;String&amp;gt;&amp;lt;/code&amp;gt; ===&lt;br /&gt;
Creates a hash from a given path and algorithm.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;assert(path: String): Promise&amp;lt;void&amp;gt;&amp;lt;/code&amp;gt; ===&lt;br /&gt;
Checks if a file exists at a specific path. If not, it will throw an &amp;lt;code&amp;gt;Error&amp;lt;/code&amp;gt;.&lt;br /&gt;
[[Category:API]]&lt;/div&gt;</summary>
		<author><name>Kelbaz</name></author>
	</entry>
	<entry>
		<id>https://w96.wiki/w/index.php?title=Required_Knowledge_for_Development&amp;diff=1216</id>
		<title>Required Knowledge for Development</title>
		<link rel="alternate" type="text/html" href="https://w96.wiki/w/index.php?title=Required_Knowledge_for_Development&amp;diff=1216"/>
		<updated>2023-11-29T22:25:48Z</updated>

		<summary type="html">&lt;p&gt;Kelbaz: First sentence :/&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Prerequisites]]&lt;br /&gt;
As Windows 96 is based on web technologies, basic knowledge of JavaScript and HTML is required.&lt;/div&gt;</summary>
		<author><name>Kelbaz</name></author>
	</entry>
	<entry>
		<id>https://w96.wiki/w/index.php?title=Startup_Arguments&amp;diff=1215</id>
		<title>Startup Arguments</title>
		<link rel="alternate" type="text/html" href="https://w96.wiki/w/index.php?title=Startup_Arguments&amp;diff=1215"/>
		<updated>2023-11-29T22:21:05Z</updated>

		<summary type="html">&lt;p&gt;Kelbaz: Added the &amp;quot;faster&amp;quot; argument&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;It is possible to start Windows 96 with additional startup arguments to enable/disable specific functionality. They can be specified in the URL as query parameters.&lt;br /&gt;
&lt;br /&gt;
Note: This is different from system flags and takes higher precedence in the startup process, since it foregoes any storage to persist its values.&lt;br /&gt;
&lt;br /&gt;
Example: &amp;lt;code&amp;gt;https://windows96.net/?live=1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== List of startup arguments ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Argument&lt;br /&gt;
!Value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|live&lt;br /&gt;
|1/0&lt;br /&gt;
|Whether to boot Windows 96 in &amp;quot;Live Mode&amp;quot; (a mode which does not install Windows 96 locally, but on a temporary RAM disk instead). This mode also skips setup prompts and gives you the default experience straight away.&lt;br /&gt;
|-&lt;br /&gt;
|debug&lt;br /&gt;
|1/0&lt;br /&gt;
|Whether to enable debug mode. This flag enables a console.&lt;br /&gt;
|-&lt;br /&gt;
|rootfs&lt;br /&gt;
|&amp;lt;string&amp;gt;&lt;br /&gt;
|Specifies the path/URL of the root filesystem zip to use.&lt;br /&gt;
|-&lt;br /&gt;
|faster&lt;br /&gt;
|1/0&lt;br /&gt;
|If set to 1, the boot time will be faster.&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Kelbaz</name></author>
	</entry>
	<entry>
		<id>https://w96.wiki/w/index.php?title=Package_Manager&amp;diff=1213</id>
		<title>Package Manager</title>
		<link rel="alternate" type="text/html" href="https://w96.wiki/w/index.php?title=Package_Manager&amp;diff=1213"/>
		<updated>2023-10-27T22:59:38Z</updated>

		<summary type="html">&lt;p&gt;Kelbaz: nolan not happy because caps&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Package Manager.jpg|thumb|The Package Manager program.]]&lt;br /&gt;
The package manager is Windows 96's primary method of distribution for programs. The term &amp;quot;package&amp;quot; refers to a complex set of folders and files, which when coupled with a JSON file and structured correctly, can be decoded by the package manager program and unpacked into the Windows 96 filesystem.&lt;br /&gt;
&lt;br /&gt;
==Functioning ==&lt;br /&gt;
Packages are hosted on a webserver, where the root URL of the package folder is then set as a package repository in the package manager. Packages can be hosted on any static website host (i.e. Github Pages), and comprise of a set of 16x16 and 32x32 pixel icon files, as well as a &amp;quot;content@1.0&amp;quot; directories/zips and a JSON file which sets the folders and icons as variables.[[File:Pkgman-structure.png|The package manager file structure.|thumb]]&lt;br /&gt;
==Package structure==&lt;br /&gt;
During the creation of a package repository, the package manager must be able to decode the structure of the package to be able to successfully unpack any files or folders inside. The file sctructure can be found on the right.&lt;br /&gt;
&lt;br /&gt;
==Community==&lt;br /&gt;
Packages are created by the community to share their work to other users. Packages may contain applications, programs, tools, themes, or wallpapers. Here are some repositories created by the community:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!URL&lt;br /&gt;
!Author&lt;br /&gt;
!Note&lt;br /&gt;
|-&lt;br /&gt;
|https://packages.windows96.net/community&lt;br /&gt;
|Windows 96 Contributors&lt;br /&gt;
|The official community repository. Packages are picked using a high standard. (Down)&lt;br /&gt;
|-&lt;br /&gt;
|https://nandertga.ddns.net/w96-packages&lt;br /&gt;
|NanderTGA&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|https://sgeo.github.io/win96-repos/apps&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Sgeo&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|https://sgeo.github.io/win96-repos/malware&lt;br /&gt;
|Malware repository - use at your own risk&lt;br /&gt;
|-&lt;br /&gt;
|https://jameisepic.github.io/thinkjame/public/main&lt;br /&gt;
|JameIsEpic&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|https://onofficiel.github.io/w96/v2&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Onofficiel ([[User:Kelbaz|Kelbaz]])&lt;br /&gt;
|Only for [[Windows 96 v2]]&lt;br /&gt;
|-&lt;br /&gt;
|https://onofficiel.github.io/w96/v3&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|https://plopilpy.github.io/w96&lt;br /&gt;
|[[User:Plopilpy|Plopilpy]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|https://themirrazz.repl.co&lt;br /&gt;
|[[User:Themirrazz|TheMirrazz]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|https://nolanwhy.github.io/w96-repo/v3&lt;br /&gt;
|nolanwhy&lt;br /&gt;
|&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Kelbaz</name></author>
	</entry>
	<entry>
		<id>https://w96.wiki/w/index.php?title=Package_Manager&amp;diff=1212</id>
		<title>Package Manager</title>
		<link rel="alternate" type="text/html" href="https://w96.wiki/w/index.php?title=Package_Manager&amp;diff=1212"/>
		<updated>2023-10-27T22:57:17Z</updated>

		<summary type="html">&lt;p&gt;Kelbaz: added repo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Package Manager.jpg|thumb|The Package Manager program.]]&lt;br /&gt;
The package manager is Windows 96's primary method of distribution for programs. The term &amp;quot;package&amp;quot; refers to a complex set of folders and files, which when coupled with a JSON file and structured correctly, can be decoded by the package manager program and unpacked into the Windows 96 filesystem.&lt;br /&gt;
&lt;br /&gt;
==Functioning ==&lt;br /&gt;
Packages are hosted on a webserver, where the root URL of the package folder is then set as a package repository in the package manager. Packages can be hosted on any static website host (i.e. Github Pages), and comprise of a set of 16x16 and 32x32 pixel icon files, as well as a &amp;quot;content@1.0&amp;quot; directories/zips and a JSON file which sets the folders and icons as variables.[[File:Pkgman-structure.png|The package manager file structure.|thumb]]&lt;br /&gt;
==Package structure==&lt;br /&gt;
During the creation of a package repository, the package manager must be able to decode the structure of the package to be able to successfully unpack any files or folders inside. The file sctructure can be found on the right.&lt;br /&gt;
&lt;br /&gt;
==Community==&lt;br /&gt;
Packages are created by the community to share their work to other users. Packages may contain applications, programs, tools, themes, or wallpapers. Here are some repositories created by the community:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!URL&lt;br /&gt;
!Author&lt;br /&gt;
!Note&lt;br /&gt;
|-&lt;br /&gt;
|https://packages.windows96.net/community&lt;br /&gt;
|Windows 96 Contributors&lt;br /&gt;
|The official community repository. Packages are picked using a high standard. (Down)&lt;br /&gt;
|-&lt;br /&gt;
|https://nandertga.ddns.net/w96-packages&lt;br /&gt;
|NanderTGA&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|https://sgeo.github.io/win96-repos/apps&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Sgeo&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|https://sgeo.github.io/win96-repos/malware&lt;br /&gt;
|Malware repository - use at your own risk&lt;br /&gt;
|-&lt;br /&gt;
|https://jameisepic.github.io/thinkjame/public/main&lt;br /&gt;
|JameIsEpic&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|https://onofficiel.github.io/w96/v2&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Onofficiel ([[User:Kelbaz|Kelbaz]])&lt;br /&gt;
|Only for [[Windows 96 v2]]&lt;br /&gt;
|-&lt;br /&gt;
|https://onofficiel.github.io/w96/v3&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|https://plopilpy.github.io/w96&lt;br /&gt;
|[[User:Plopilpy|Plopilpy]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|https://themirrazz.repl.co&lt;br /&gt;
|[[User:Themirrazz|TheMirrazz]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|https://nolanwhy.github.io/w96-repo/v3&lt;br /&gt;
|[[User:Nolanwhy|NolanWhy]]&lt;br /&gt;
|&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Kelbaz</name></author>
	</entry>
	<entry>
		<id>https://w96.wiki/w/index.php?title=API:w96.FS&amp;diff=1211</id>
		<title>API:w96.FS</title>
		<link rel="alternate" type="text/html" href="https://w96.wiki/w/index.php?title=API:w96.FS&amp;diff=1211"/>
		<updated>2023-10-26T15:54:40Z</updated>

		<summary type="html">&lt;p&gt;Kelbaz: Dare you scan mode!&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== &amp;lt;code&amp;gt;class FS&amp;lt;/code&amp;gt; ===&lt;br /&gt;
This namespace refers to the file system API of Windows 96. &amp;lt;code&amp;gt;w96.FS&amp;lt;/code&amp;gt; allows manipulation of file system entries by, for example, renaming, deleting or copying them. It is also possible to create, read and write files and directories.&lt;br /&gt;
&lt;br /&gt;
== Structure ==&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;mount(fso: IFileSystem): Promise&amp;lt;void&amp;gt;&amp;lt;/code&amp;gt; ===&lt;br /&gt;
Mounts a file system using the specified object (&amp;quot;driver&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;umount(prefix: String): Promise&amp;lt;void&amp;gt;&amp;lt;/code&amp;gt; ===&lt;br /&gt;
Unmounts a file system instance.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;mounts(): IFileSystem[]&amp;lt;/code&amp;gt; ===&lt;br /&gt;
Gets all mounted file systems.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;list(): String[]&amp;lt;/code&amp;gt; ===&lt;br /&gt;
Gets all mounted file system prefixes.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;nextLetter(): String&amp;lt;/code&amp;gt; ===&lt;br /&gt;
Get the next available drive letter.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;toBlob(path: String): Promise&amp;lt;Blob&amp;gt;&amp;lt;/code&amp;gt; ===&lt;br /&gt;
Creates a blob from a specified path.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;get(prefix: String): IFileSystem&amp;lt;/code&amp;gt; ===&lt;br /&gt;
Retuns a file system by its prefix.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;toURL(path: String): Promise&amp;lt;String&amp;gt;&amp;lt;/code&amp;gt; ===&lt;br /&gt;
Creates a URL from the specified file path.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;isFile(path: String): Promise&amp;lt;Boolean&amp;gt;&amp;lt;/code&amp;gt; ===&lt;br /&gt;
Returns &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; if the entry is a file.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;isEmpty(path: String): Promise&amp;lt;Boolean&amp;gt;&amp;lt;/code&amp;gt; ===&lt;br /&gt;
Returns &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; if the file is empty.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;mkdir(path: String): Promise&amp;lt;Boolean&amp;gt;&amp;lt;/code&amp;gt; ===&lt;br /&gt;
Creates a directory at the specified path.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;rmdir(path: String): Promise&amp;lt;Boolean&amp;gt;&amp;lt;/code&amp;gt; ===&lt;br /&gt;
Deletes a directory at the specified path.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;touch(path: String): Promise&amp;lt;Boolean&amp;gt;&amp;lt;/code&amp;gt; ===&lt;br /&gt;
Creates a file at the specified path.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;rm(path: String): Promise&amp;lt;Boolean&amp;gt;&amp;lt;/code&amp;gt; ===&lt;br /&gt;
Deletes a file at the specified path.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;readdir(path: String, scan_mode: Boolean): String[]&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
* If scan_mode is set to true, then the filetype is included with the path&lt;br /&gt;
&lt;br /&gt;
Returns a list of entities contained in the specified path.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;cpdir(src: String, dest: String): Promise&amp;lt;Boolean&amp;gt;&amp;lt;/code&amp;gt; ===&lt;br /&gt;
Copies a directory to a new destination.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;cpfile(src: String, dest: String): Promise&amp;lt;Boolean&amp;gt;&amp;lt;/code&amp;gt; ===&lt;br /&gt;
Copies a file to a new destination.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;mvfile(src: String, dest: String): Promise&amp;lt;Boolean&amp;gt;&amp;lt;/code&amp;gt; ===&lt;br /&gt;
Moves a file to a new destination.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;mvdir(src: String, dest: String): Promise&amp;lt;Boolean&amp;gt;&amp;lt;/code&amp;gt; ===&lt;br /&gt;
Moves a directory to a new destination.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;exists(path: String): Boolean&amp;lt;/code&amp;gt; ===&lt;br /&gt;
Checks if an entity exists.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;readstr(path: String): Promise&amp;lt;String&amp;gt;&amp;lt;/code&amp;gt; ===&lt;br /&gt;
Reads the specified file as a string.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;readbin(path: String): Promise&amp;lt;Uint8Array&amp;gt;&amp;lt;/code&amp;gt; ===&lt;br /&gt;
Reads the specified file as binary.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;filetype(path: String): 0 | 1 | -1&amp;lt;/code&amp;gt; ===&lt;br /&gt;
Returns the file type of a node. This can be a binary or text file.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;writestr(path: String, data: String): Promise&amp;lt;Boolean&amp;gt;&amp;lt;/code&amp;gt; ===&lt;br /&gt;
Truncates and writes a UTF-8 encoded string to the specified file.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;writebin(path: String, data: Uint8Array | Number[]): Promise&amp;lt;Boolean&amp;gt;&amp;lt;/code&amp;gt; ===&lt;br /&gt;
Truncates and writes data to the specified file.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;walk(path: String): String[]&amp;lt;/code&amp;gt; ===&lt;br /&gt;
Walks through the contents of a directory.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;stat(path: String): FSStatResult&amp;lt;/code&amp;gt; ===&lt;br /&gt;
Retrieves information about a file system entry.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;rename(path: String, newName: String): Promise&amp;lt;Boolean&amp;gt;&amp;lt;/code&amp;gt; ===&lt;br /&gt;
Renames a file or folder.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;readBinChunk()&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;readStrChunk()&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;cache()&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;uncache()&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;getFromCache()&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;hash(path: String, algorithm: &amp;quot;default&amp;quot; | &amp;quot;md5&amp;quot; | &amp;quot;sha256&amp;quot; | &amp;quot;sha512&amp;quot;): Promise&amp;lt;String&amp;gt;&amp;lt;/code&amp;gt; ===&lt;br /&gt;
Create a hash from a given path and algorithm.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;assert()&amp;lt;/code&amp;gt; ===&lt;br /&gt;
[[Category:API]]&lt;/div&gt;</summary>
		<author><name>Kelbaz</name></author>
	</entry>
	<entry>
		<id>https://w96.wiki/w/index.php?title=Package_Manager&amp;diff=1210</id>
		<title>Package Manager</title>
		<link rel="alternate" type="text/html" href="https://w96.wiki/w/index.php?title=Package_Manager&amp;diff=1210"/>
		<updated>2023-10-15T17:09:41Z</updated>

		<summary type="html">&lt;p&gt;Kelbaz: Updated the table&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Package Manager.jpg|thumb|The Package Manager program.]]&lt;br /&gt;
The package manager is Windows 96's primary method of distribution for programs. The term &amp;quot;package&amp;quot; refers to a complex set of folders and files, which when coupled with a JSON file and structured correctly, can be decoded by the package manager program and unpacked into the Windows 96 filesystem.&lt;br /&gt;
&lt;br /&gt;
==Functioning ==&lt;br /&gt;
Packages are hosted on a webserver, where the root URL of the package folder is then set as a package repository in the package manager. Packages can be hosted on any static website host (i.e. Github Pages), and comprise of a set of 16x16 and 32x32 pixel icon files, as well as a &amp;quot;content@1.0&amp;quot; directories/zips and a JSON file which sets the folders and icons as variables.[[File:Pkgman-structure.png|The package manager file structure.|thumb]]&lt;br /&gt;
==Package structure==&lt;br /&gt;
During the creation of a package repository, the package manager must be able to decode the structure of the package to be able to successfully unpack any files or folders inside. The file sctructure can be found on the right.&lt;br /&gt;
&lt;br /&gt;
==Community==&lt;br /&gt;
Packages are created by the community to share their work to other users. Packages may contain applications, programs, tools, themes, or wallpapers. Here are some repositories created by the community:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!URL&lt;br /&gt;
!Author&lt;br /&gt;
!Note&lt;br /&gt;
|-&lt;br /&gt;
|https://packages.windows96.net/community&lt;br /&gt;
|Windows 96 Contributors&lt;br /&gt;
|The official community repository. Packages are picked using a high standard. (Down)&lt;br /&gt;
|-&lt;br /&gt;
|https://nandertga.ddns.net/w96-packages&lt;br /&gt;
|NanderTGA&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|https://sgeo.github.io/win96-repos/apps&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Sgeo&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|https://sgeo.github.io/win96-repos/malware&lt;br /&gt;
|Malware repository - use at your own risk&lt;br /&gt;
|-&lt;br /&gt;
|https://jameisepic.github.io/thinkjame/public/main&lt;br /&gt;
|JameIsEpic&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|https://onofficiel.github.io/w96/v2&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Onofficiel ([[User:Kelbaz|Kelbaz]])&lt;br /&gt;
|Only for [[Windows 96 v2]]&lt;br /&gt;
|-&lt;br /&gt;
|https://onofficiel.github.io/w96/v3&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|https://plopilpy.github.io/w96&lt;br /&gt;
|[[User:Plopilpy|Plopilpy]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|https://themirrazz.repl.co&lt;br /&gt;
|[[User:Themirrazz|TheMirrazz]]&lt;br /&gt;
|&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Kelbaz</name></author>
	</entry>
	<entry>
		<id>https://w96.wiki/w/index.php?title=Windows_96_Development_Toolchain&amp;diff=1209</id>
		<title>Windows 96 Development Toolchain</title>
		<link rel="alternate" type="text/html" href="https://w96.wiki/w/index.php?title=Windows_96_Development_Toolchain&amp;diff=1209"/>
		<updated>2023-10-12T17:20:52Z</updated>

		<summary type="html">&lt;p&gt;Kelbaz: Adding Directives part&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:WDT.png|thumb|The Windows 96 Development Toolchain running in Windows96.]]&lt;br /&gt;
The Windows 96 Development Toolchain (WDT) is a build system developed by the Windows 96 Team in 2023. It addresses the need for an efficient build system for system apps within the Windows 96 environment. This toolchain was created to overcome limitations of the old builder, providing enhanced performance, project management, and portability. WDT follows the principle of &amp;quot;eating your own dog food&amp;quot; where the system is used to build itself.&lt;br /&gt;
&lt;br /&gt;
WDT runs on Windows, MacOS, Linux and Windows 96 itself.&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
WDT offers a range of features designed to streamline the app development process within the Windows 96 ecosystem: &lt;br /&gt;
&lt;br /&gt;
* '''Project Management:''' Create, manage, and compile app projects seamlessly.&lt;br /&gt;
* '''Preprocessing:''' Perform operations like handling includes and defining directives.&lt;br /&gt;
* '''Portability:''' Build projects on various systems without strict location or OS constraints.&lt;br /&gt;
* '''Concurrency:''' Leverage CPU concurrency to accelerate project builds.&lt;br /&gt;
* '''Task Management:''' Manage the build process using WMakefiles.&lt;br /&gt;
* '''Modernization:''' Replaces the outdated previous build system with a more efficient and user-friendly solution.&lt;br /&gt;
&lt;br /&gt;
== Commands ==&lt;br /&gt;
Here are all the WDT commands:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Command Name&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Argument(s)&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;build&amp;lt;/code&amp;gt;&lt;br /&gt;
|Project Path&lt;br /&gt;
|''Output Path''&lt;br /&gt;
|Builds a project&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;version&amp;lt;/code&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
|Gets the current toolchain version&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;preproc&amp;lt;/code&amp;gt;&lt;br /&gt;
|In Path&lt;br /&gt;
|Out Path&lt;br /&gt;
|Runs a file through the source preprocessor&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;help&amp;lt;/code&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |''Command''&lt;br /&gt;
|Gets command help (or general CLI help without the command parameter)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |''Path''&lt;br /&gt;
|Runs a makefile (WMakefile) in the current directory or the specified path&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;minify&amp;lt;/code&amp;gt;&lt;br /&gt;
|Input&lt;br /&gt;
|Output&lt;br /&gt;
|Minifies JavaScript code&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;project init&amp;lt;/code&amp;gt;&lt;br /&gt;
|Project Path&lt;br /&gt;
|''&amp;lt;code&amp;gt;--template&amp;lt;/code&amp;gt; Template Name''&lt;br /&gt;
|Inits a project at the path (from a template if specified)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;project import&amp;lt;/code&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
|''Not implemented yet''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Preprocessor Directives &amp;amp; Macros ==&lt;br /&gt;
Directives are preprocessor statements used to guide the compilation process by providing instructions to the preprocessor. In the context of WDT, a directive is defined using two dollar signs, followed by the directive name.&lt;br /&gt;
&lt;br /&gt;
Here are the currently supported macros in WDT:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Definition&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;$$Include(&amp;quot;./file.js&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|Include a file&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;$$IncludeOnce(&amp;quot;./file.js&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|Include a file enable checks to ensure its only included once&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;$$Define(&amp;quot;Macro&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Define a macro&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;$$Define(&amp;quot;MacroName&amp;quot;, &amp;quot;OptionalValue&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;$$Undef(&amp;quot;Name&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|undefine a macro&lt;br /&gt;
|}&lt;br /&gt;
It's important to note that preprocessing directives must be terminated by a newline for proper parsing and execution during the compilation process. &amp;lt;code&amp;gt;$[(&amp;quot;MacroName&amp;quot;)]&amp;lt;/code&amp;gt; allows to get a macro value.&lt;/div&gt;</summary>
		<author><name>Kelbaz</name></author>
	</entry>
	<entry>
		<id>https://w96.wiki/w/index.php?title=WDT&amp;diff=1208</id>
		<title>WDT</title>
		<link rel="alternate" type="text/html" href="https://w96.wiki/w/index.php?title=WDT&amp;diff=1208"/>
		<updated>2023-10-12T16:08:11Z</updated>

		<summary type="html">&lt;p&gt;Kelbaz: Redirected page to Windows 96 Development Toolchain&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Windows 96 Development Toolchain]]&lt;/div&gt;</summary>
		<author><name>Kelbaz</name></author>
	</entry>
	<entry>
		<id>https://w96.wiki/w/index.php?title=Windows_96_Development_Toolchain&amp;diff=1207</id>
		<title>Windows 96 Development Toolchain</title>
		<link rel="alternate" type="text/html" href="https://w96.wiki/w/index.php?title=Windows_96_Development_Toolchain&amp;diff=1207"/>
		<updated>2023-08-25T22:07:27Z</updated>

		<summary type="html">&lt;p&gt;Kelbaz: Added image&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:WDT.png|thumb|The Windows 96 Development Toolchain running in Windows96.]]&lt;br /&gt;
The Windows 96 Development Toolchain (WDT) is a build system developed by the Windows 96 Team in 2023. It addresses the need for an efficient build system for system apps within the Windows 96 environment. This toolchain was created to overcome limitations of the old builder, providing enhanced performance, project management, and portability. WDT follows the principle of &amp;quot;eating your own dog food&amp;quot; where the system is used to build itself.&lt;br /&gt;
&lt;br /&gt;
WDT runs on Windows, MacOS, Linux and Windows 96 itself.&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
WDT offers a range of features designed to streamline the app development process within the Windows 96 ecosystem: &lt;br /&gt;
&lt;br /&gt;
* '''Project Management:''' Create, manage, and compile app projects seamlessly.&lt;br /&gt;
* '''Preprocessing:''' Perform operations like handling includes and defining directives.&lt;br /&gt;
* '''Portability:''' Build projects on various systems without strict location or OS constraints.&lt;br /&gt;
* '''Concurrency:''' Leverage CPU concurrency to accelerate project builds.&lt;br /&gt;
* '''Task Management:''' Manage the build process using WMakefiles.&lt;br /&gt;
* '''Modernization:''' Replaces the outdated previous build system with a more efficient and user-friendly solution.&lt;br /&gt;
&lt;br /&gt;
== Commands ==&lt;br /&gt;
Here are all the WDT commands:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Command Name&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Argument(s)&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;build&amp;lt;/code&amp;gt;&lt;br /&gt;
|Project Path&lt;br /&gt;
|''Output Path''&lt;br /&gt;
|Builds a project&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;version&amp;lt;/code&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
|Gets the current toolchain version&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;preproc&amp;lt;/code&amp;gt;&lt;br /&gt;
|In Path&lt;br /&gt;
|Out Path&lt;br /&gt;
|Runs a file through the source preprocessor&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;help&amp;lt;/code&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |''Command''&lt;br /&gt;
|Gets command help (or general CLI help without the command parameter)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |''Path''&lt;br /&gt;
|Runs a makefile (WMakefile) in the current directory or the specified path&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;minify&amp;lt;/code&amp;gt;&lt;br /&gt;
|Input&lt;br /&gt;
|Output&lt;br /&gt;
|Minifies JavaScript code&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;project init&amp;lt;/code&amp;gt;&lt;br /&gt;
|Project Path&lt;br /&gt;
|''&amp;lt;code&amp;gt;--template&amp;lt;/code&amp;gt; Template Name''&lt;br /&gt;
|Inits a project at the path (from a template if specified)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;project import&amp;lt;/code&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
|''Not implemented yet''&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Kelbaz</name></author>
	</entry>
	<entry>
		<id>https://w96.wiki/w/index.php?title=File:WDT.png&amp;diff=1206</id>
		<title>File:WDT.png</title>
		<link rel="alternate" type="text/html" href="https://w96.wiki/w/index.php?title=File:WDT.png&amp;diff=1206"/>
		<updated>2023-08-25T22:06:23Z</updated>

		<summary type="html">&lt;p&gt;Kelbaz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Windows 96 Development Toolchain running in Windows 96&lt;/div&gt;</summary>
		<author><name>Kelbaz</name></author>
	</entry>
	<entry>
		<id>https://w96.wiki/w/index.php?title=Windows_96_Development_Toolchain&amp;diff=1205</id>
		<title>Windows 96 Development Toolchain</title>
		<link rel="alternate" type="text/html" href="https://w96.wiki/w/index.php?title=Windows_96_Development_Toolchain&amp;diff=1205"/>
		<updated>2023-08-25T21:50:31Z</updated>

		<summary type="html">&lt;p&gt;Kelbaz: Creating the page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Windows 96 Development Toolchain (WDT) is a build system developed by the Windows 96 Team in 2023. It addresses the need for an efficient build system for system apps within the Windows 96 environment. This toolchain was created to overcome limitations of the old builder, providing enhanced performance, project management, and portability. WDT follows the principle of &amp;quot;eating your own dog food&amp;quot; where the system is used to build itself.&lt;br /&gt;
&lt;br /&gt;
WDT runs on Windows, MacOS, Linux and Windows 96 itself.&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
WDT offers a range of features designed to streamline the app development process within the Windows 96 ecosystem: &lt;br /&gt;
&lt;br /&gt;
* '''Project Management:''' Create, manage, and compile app projects seamlessly.&lt;br /&gt;
* '''Preprocessing:''' Perform operations like handling includes and defining directives.&lt;br /&gt;
* '''Portability:''' Build projects on various systems without strict location or OS constraints.&lt;br /&gt;
* '''Concurrency:''' Leverage CPU concurrency to accelerate project builds.&lt;br /&gt;
* '''Task Management:''' Manage the build process using WMakefiles.&lt;br /&gt;
* '''Modernization:''' Replaces the outdated previous build system with a more efficient and user-friendly solution.&lt;br /&gt;
&lt;br /&gt;
== Commands ==&lt;br /&gt;
Here are all the WDT commands:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Command Name&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Argument(s)&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;build&amp;lt;/code&amp;gt;&lt;br /&gt;
|Project Path&lt;br /&gt;
|''Output Path''&lt;br /&gt;
|Builds a project&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;version&amp;lt;/code&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
|Gets the current toolchain version&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;preproc&amp;lt;/code&amp;gt;&lt;br /&gt;
|In Path&lt;br /&gt;
|Out Path&lt;br /&gt;
|Runs a file through the source preprocessor&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;help&amp;lt;/code&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |''Command''&lt;br /&gt;
|Gets command help (or general CLI help without the command parameter)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |''Path''&lt;br /&gt;
|Runs a makefile (WMakefile) in the current directory or the specified path&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;minify&amp;lt;/code&amp;gt;&lt;br /&gt;
|Input&lt;br /&gt;
|Output&lt;br /&gt;
|Minifies JavaScript code&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;project init&amp;lt;/code&amp;gt;&lt;br /&gt;
|Project Path&lt;br /&gt;
|''&amp;lt;code&amp;gt;--template&amp;lt;/code&amp;gt; Template Name''&lt;br /&gt;
|Inits a project at the path (from a template if specified)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;project import&amp;lt;/code&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
|''Not implemented yet''&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Kelbaz</name></author>
	</entry>
	<entry>
		<id>https://w96.wiki/w/index.php?title=User:Kelbaz&amp;diff=1196</id>
		<title>User:Kelbaz</title>
		<link rel="alternate" type="text/html" href="https://w96.wiki/w/index.php?title=User:Kelbaz&amp;diff=1196"/>
		<updated>2023-07-13T15:11:39Z</updated>

		<summary type="html">&lt;p&gt;Kelbaz: /* Links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Kelbaz graph.png|thumb|A beautiful logo]]&lt;br /&gt;
Hey there! I'm Kelbaz, the dev behind [[Border]], the TypeScript Compiler for Windows 96 and KoreJS. I'm active in the community and on this wiki. You can contact me [mailto:its.kelbaz@gmail.com here].&lt;br /&gt;
&lt;br /&gt;
== Repository ==&lt;br /&gt;
All my apps are available on [https://onofficiel.github.io/w96 this repository] (a guide on how to add it to your installation is present on the website). They are all open source so your contribution is welcomed!&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
* [https://codeberg.org/kelbaz Codeberg]&lt;br /&gt;
* [https://kelbazz.github.io Website]&lt;br /&gt;
* [https://github.com/kelbazz Github]&lt;br /&gt;
*[https://mastodon.social/@Kelbaz Mastodon]&lt;/div&gt;</summary>
		<author><name>Kelbaz</name></author>
	</entry>
	<entry>
		<id>https://w96.wiki/w/index.php?title=Win96_Run_Time&amp;diff=1195</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=1195"/>
		<updated>2023-07-12T20:38:10Z</updated>

		<summary type="html">&lt;p&gt;Kelbaz: Added the Module Part&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, this script 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 before. these script 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 asyncronous context, so it is 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;
* Start the script with the following shebang: &amp;lt;code&amp;gt;//!wrt&amp;lt;/code&amp;gt;&lt;br /&gt;
* Run the &amp;lt;code&amp;gt;wrtrun&amp;lt;/code&amp;gt; command with the path to the script&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
The Windows Runtime was introduced in Windows 96 v2 Service Pack 2.&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;
The shebang is the first line of a binary. The WRT shebang starts with &amp;lt;code&amp;gt;//!wrt&amp;lt;/code&amp;gt;. The shebang denotes that this regular file is a WRT bin, 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 way to describe metadata for a WRT bin. 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. Those files will also run in WRT and will 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 will 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>Kelbaz</name></author>
	</entry>
	<entry>
		<id>https://w96.wiki/w/index.php?title=Dynamic_Wallpaper_(DWP)&amp;diff=1194</id>
		<title>Dynamic Wallpaper (DWP)</title>
		<link rel="alternate" type="text/html" href="https://w96.wiki/w/index.php?title=Dynamic_Wallpaper_(DWP)&amp;diff=1194"/>
		<updated>2023-07-11T20:00:10Z</updated>

		<summary type="html">&lt;p&gt;Kelbaz: /* Known Glitches */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A Dynamic Wallpaper is a special JSON-based wallpaper format for moving wallpapers. A dynamic wallpaper file (DWP) is a JSON object with the properties `name`, `author`, `url`, and `properties` properties (sounds weird to say &amp;quot;properties properties&amp;quot;). Dynamic Wallpapers were introduced with the release of [[Windows 96 v2]] Service Pack 1.&lt;br /&gt;
&lt;br /&gt;
''This is the contents of the DWP file for the Cloud Animated wallpaper:''&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
	&amp;quot;name&amp;quot;: &amp;quot;Cloudy Animated&amp;quot;,&lt;br /&gt;
	&amp;quot;author&amp;quot;: &amp;quot;litevx&amp;quot;,&lt;br /&gt;
	&amp;quot;url&amp;quot;: &amp;quot;/system/resource/dwp/clouds/index.html&amp;quot;,&lt;br /&gt;
	&amp;quot;properties&amp;quot;: {}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
== Documentation ==&lt;br /&gt;
&lt;br /&gt;
name: The name of the animated wallpaper&lt;br /&gt;
&lt;br /&gt;
author: The name of the person who created the wallpaper&lt;br /&gt;
&lt;br /&gt;
url: The web page the wallpaper is located at&lt;br /&gt;
&lt;br /&gt;
properties: An empty object, unknown what it is for.&lt;br /&gt;
&lt;br /&gt;
== Known Glitches ==&lt;br /&gt;
&lt;br /&gt;
Dynamic Wallpaper also uses iFrames to display content (just like [[InternetE]]).&lt;br /&gt;
&lt;br /&gt;
Most browsers allow javascript: URLs to run inside an iFrame. When javascript: URLs are run in an iFrame, they are treated as same-origin (just like about:blank). This means users can get infected with malware from applying DWPs or even just previewing them. The JavaScript code could also show an actual wallpaper while secretly corrupting files, adding boot scripts, replacing the shell, adding a custom kernel, and running other malicious processes.&lt;/div&gt;</summary>
		<author><name>Kelbaz</name></author>
	</entry>
	<entry>
		<id>https://w96.wiki/w/index.php?title=Win96_Run_Time&amp;diff=1190</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=1190"/>
		<updated>2023-06-03T16:07:36Z</updated>

		<summary type="html">&lt;p&gt;Kelbaz: /* Usage */ updating to wrtrun bin&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, this script 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 before. these script 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 asyncronous context, so it is 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;
* Start the script with the following shebang: &amp;lt;code&amp;gt;//!wrt&amp;lt;/code&amp;gt;&lt;br /&gt;
* Run the &amp;lt;code&amp;gt;wrtrun&amp;lt;/code&amp;gt; command with the path to the script&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
The Windows Runtime was introduced in Windows 96 v2 Service Pack 2.&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;
The shebang is the first line of a binary. The WRT shebang starts with &amp;lt;code&amp;gt;//!wrt&amp;lt;/code&amp;gt;. The shebang denotes that this regular file is a WRT bin, 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 way to describe metadata for a WRT bin. 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;/div&gt;</summary>
		<author><name>Kelbaz</name></author>
	</entry>
	<entry>
		<id>https://w96.wiki/w/index.php?title=Disk_Encryption&amp;diff=1189</id>
		<title>Disk Encryption</title>
		<link rel="alternate" type="text/html" href="https://w96.wiki/w/index.php?title=Disk_Encryption&amp;diff=1189"/>
		<updated>2023-06-03T16:05:57Z</updated>

		<summary type="html">&lt;p&gt;Kelbaz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Disk encryption wizard.png|thumb|The Disk Encryption setup wizard]]&lt;br /&gt;
[[File:Disk encryption password prompt.png|thumb|The dialog asking for your password to decrypt the C: drive on boot]]Disk Encryption is a feature introduced in [[Windows 96 v3|v3]] that allows you to protect your files by encrypting your disk.&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
Disk Encryption is different than a login password. A login password is stored in a file, which can easily be removed via your browser's DevTools console. Disk Encryption encrypts all your files with an encryption key generated from a password you choose. Once you enable Disk Encryption, you will need your password to access your files.&lt;br /&gt;
&lt;br /&gt;
'''''Note:''' If you forget your password, you have no choice but to reset your Windows96 installation.''&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
Disk Encryption can only be launched from the Control Panel, but the Disk Encryption wizard has to be ran in recovery mode. Therefore, launching Disk Encryption will automatically reboot Windows 96 into recovery mode.&lt;/div&gt;</summary>
		<author><name>Kelbaz</name></author>
	</entry>
	<entry>
		<id>https://w96.wiki/w/index.php?title=User:Kelbaz&amp;diff=1188</id>
		<title>User:Kelbaz</title>
		<link rel="alternate" type="text/html" href="https://w96.wiki/w/index.php?title=User:Kelbaz&amp;diff=1188"/>
		<updated>2023-05-20T13:13:03Z</updated>

		<summary type="html">&lt;p&gt;Kelbaz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Kelbaz graph.png|thumb|A beautiful logo]]&lt;br /&gt;
Hey there! I'm Kelbaz, the dev behind [[Border]], the TypeScript Compiler for Windows 96 and KoreJS. I'm active in the community and on this wiki. You can contact me [mailto:its.kelbaz@gmail.com here].&lt;br /&gt;
&lt;br /&gt;
== Repository ==&lt;br /&gt;
All my apps are available on [https://onofficiel.github.io/w96 this repository] (a guide on how to add it to your installation is present on the website). They are all open source so your contribution is welcomed!&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
* [https://codeberg.org/kelbaz Codeberg]&lt;br /&gt;
* [https://kelbazz.github.io Website]&lt;br /&gt;
* [https://github.com/kelbazz Github]&lt;/div&gt;</summary>
		<author><name>Kelbaz</name></author>
	</entry>
	<entry>
		<id>https://w96.wiki/w/index.php?title=Monaco&amp;diff=793</id>
		<title>Monaco</title>
		<link rel="alternate" type="text/html" href="https://w96.wiki/w/index.php?title=Monaco&amp;diff=793"/>
		<updated>2023-04-15T15:58:48Z</updated>

		<summary type="html">&lt;p&gt;Kelbaz: Languages update&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Monaco.jpg|thumb|Monaco editing a CSS file.]]&lt;br /&gt;
Monaco is a Windows 96 code editor based on [[Microsoft]]'s similarly named editor. Monaco supports syntax highlight. It also supports code completion, refactoring and formatting.&lt;br /&gt;
&lt;br /&gt;
== Languages ==&lt;br /&gt;
Monaco supports several languages, here is a list of them:&lt;br /&gt;
&lt;br /&gt;
* HTML&lt;br /&gt;
* CSS&lt;br /&gt;
* JavaScript&lt;br /&gt;
* TypeScript&lt;br /&gt;
* Batch&lt;br /&gt;
* C / C++&lt;br /&gt;
* INI&lt;br /&gt;
* JSON&lt;br /&gt;
* Lua&lt;br /&gt;
* Markdown&lt;br /&gt;
* Python&lt;br /&gt;
* YAML&lt;br /&gt;
&lt;br /&gt;
== Customisation ==&lt;br /&gt;
Monaco can be customized by editing a configuration file stored at &amp;lt;code&amp;gt;C:/user/appdata/Monaco/config.json&amp;lt;/code&amp;gt;. Here is an example of configuration:&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;theme&amp;quot;: &amp;quot;vs-dark&amp;quot;,&lt;br /&gt;
    &amp;quot;enableMinimap&amp;quot;: true,&lt;br /&gt;
&lt;br /&gt;
    &amp;quot;fontFamily&amp;quot;: &amp;quot;JetBrains Mono&amp;quot;,&lt;br /&gt;
    &amp;quot;fontSize&amp;quot;: 13,&lt;br /&gt;
    &amp;quot;lineHeight&amp;quot;: 18&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Additional informations ==&lt;br /&gt;
&lt;br /&gt;
* A command palette can be displayed by pressing &amp;lt;code&amp;gt;F1&amp;lt;/code&amp;gt;&lt;br /&gt;
* HTML files can be viewed in [[InternetE]] by clicking on ''&amp;quot;Tools &amp;gt; Preview in Browser&amp;quot;''&lt;br /&gt;
&lt;br /&gt;
[[Category:Apps]]&lt;/div&gt;</summary>
		<author><name>Kelbaz</name></author>
	</entry>
	<entry>
		<id>https://w96.wiki/w/index.php?title=File_System_Structure&amp;diff=792</id>
		<title>File System Structure</title>
		<link rel="alternate" type="text/html" href="https://w96.wiki/w/index.php?title=File_System_Structure&amp;diff=792"/>
		<updated>2023-04-15T15:15:11Z</updated>

		<summary type="html">&lt;p&gt;Kelbaz: Added /system/startup&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Windows 96 has a unique file structure, which has gone through many changes in each major version.&lt;br /&gt;
&lt;br /&gt;
== Default Volumes ==&lt;br /&gt;
Upon boot, the kernel mounts 4 default volumes, which are deemed essential to the operation of a Windows 96 session.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Letter&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|B:&lt;br /&gt;
|A hidden cache drive, which is commonly used to store boot logs, etc.&lt;br /&gt;
|-&lt;br /&gt;
|C:&lt;br /&gt;
|The root drive of a Windows 96 installation, containing the files needed for a successful startup.&lt;br /&gt;
|-&lt;br /&gt;
|W:&lt;br /&gt;
|A file system representation of the true system files (the files which boot Windows 96 in in browser)&lt;br /&gt;
|-&lt;br /&gt;
|Z:&lt;br /&gt;
|A ramdisk used to store files which are only needed for the current session.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== General Purpose Locations ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Path&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|c:/user&lt;br /&gt;
|Personal home folder.&lt;br /&gt;
|-&lt;br /&gt;
|c:/user/appdata&lt;br /&gt;
|Application data.&lt;br /&gt;
|-&lt;br /&gt;
|c:/user/desktop&lt;br /&gt;
|The desktop folder, which contains the files shown on the desktop.&lt;br /&gt;
|-&lt;br /&gt;
|c:/user/documents&lt;br /&gt;
|A generic folder for document storage.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== System Locations ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Path&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|c:/trash&lt;br /&gt;
|Where deleted files go before being permanently deleted.&lt;br /&gt;
|-&lt;br /&gt;
|c:/local&lt;br /&gt;
|A directory which stores programs/program data local to the current installation (e.g. packages from Package Manager).&lt;br /&gt;
|-&lt;br /&gt;
|c:/system&lt;br /&gt;
|System files. Usually configuration files, boot scripts, app registration files, etc.&lt;br /&gt;
|-&lt;br /&gt;
|c:/system/boot&lt;br /&gt;
|Where boot scripts are stored (scripts that run before startup).&lt;br /&gt;
|-&lt;br /&gt;
|c:/system/startup&lt;br /&gt;
|Where startup scripts are stored (scripts that run on startup). &lt;br /&gt;
|-&lt;br /&gt;
|c:/system/config&lt;br /&gt;
|Where configuration files are stored.&lt;br /&gt;
|-&lt;br /&gt;
|c:/system/etc&lt;br /&gt;
|Where system configuration files are stored.&lt;br /&gt;
|-&lt;br /&gt;
|c:/system/resource&lt;br /&gt;
|A folder which can store custom themes, icon and sound packs.&lt;br /&gt;
|-&lt;br /&gt;
|c:/system/local&lt;br /&gt;
|Local system programs/binaries/libraries. Also stores modules used for WRT.&lt;br /&gt;
|-&lt;br /&gt;
|c:/system/log&lt;br /&gt;
|A folder where log files are usually stored.&lt;br /&gt;
|-&lt;br /&gt;
|c:/system/packages&lt;br /&gt;
|A folder which contains package manager data.&lt;br /&gt;
|-&lt;br /&gt;
|c:/system/programs&lt;br /&gt;
|Shortcuts which are displayed in the start menu.&lt;br /&gt;
|-&lt;br /&gt;
|c:/system/temp&lt;br /&gt;
|Temporary files are stored here. They are removed on reboot.&lt;br /&gt;
|-&lt;br /&gt;
|c:/system/wallpapers&lt;br /&gt;
|Where wallpapers are stored.&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Kelbaz</name></author>
	</entry>
	<entry>
		<id>https://w96.wiki/w/index.php?title=April_10th&amp;diff=791</id>
		<title>April 10th</title>
		<link rel="alternate" type="text/html" href="https://w96.wiki/w/index.php?title=April_10th&amp;diff=791"/>
		<updated>2023-04-10T21:33:31Z</updated>

		<summary type="html">&lt;p&gt;Kelbaz: 2023&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;April 10th is the official anniversary day of Windows 96. The OS is currently 4 years old as of last anniversary.&lt;br /&gt;
&lt;br /&gt;
== 2020 ==&lt;br /&gt;
Nothing special occurred during 2020, mainly due to the 2020 pandemic and lack of motivation during such crippling times.&lt;br /&gt;
&lt;br /&gt;
== 2021 ==&lt;br /&gt;
[[File:Service Pack 1 Upgrade Screenshot.png|thumb|Service Pack 1 welcome screen (triggered on startup)]]&lt;br /&gt;
A special anniversary welcome screen was added during the anniversary, which included numerous apps, features, and bug fixes.&lt;br /&gt;
&lt;br /&gt;
An open sourcing of Windows 96 was (and still is to some extent) planned, but this was delayed indefinitely.&lt;br /&gt;
&lt;br /&gt;
== 2022 ==&lt;br /&gt;
V3 was initially planned to be released on the third anniversary of Windows 96. This didn't happen due to a multitude of development roadblocks.&lt;br /&gt;
&lt;br /&gt;
Instead, an anarchy Minecraft server event was held in the Windows 96 Discord, where a player could win a prize for the best looking base.&lt;br /&gt;
&lt;br /&gt;
== 2023 ==&lt;br /&gt;
For the 2023 Anniversary of Windows 96, Userland was opensourced. Some of the changes includes a new [[Monaco]] release and the complete rework of [[MsgRoom]].&lt;/div&gt;</summary>
		<author><name>Kelbaz</name></author>
	</entry>
	<entry>
		<id>https://w96.wiki/w/index.php?title=Developing_Applications&amp;diff=788</id>
		<title>Developing Applications</title>
		<link rel="alternate" type="text/html" href="https://w96.wiki/w/index.php?title=Developing_Applications&amp;diff=788"/>
		<updated>2023-04-05T12:18:32Z</updated>

		<summary type="html">&lt;p&gt;Kelbaz: Categorization&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Windows 96 includes a flexible API for developing your own applications. All applications are ran under WRT, which is a partial sandbox and runtime provided by Windows 96 for applications.&lt;br /&gt;
&lt;br /&gt;
Applications may be referred to as &amp;quot;bins&amp;quot;, &amp;quot;WRT bins&amp;quot;, &amp;quot;application bin&amp;quot;, or &amp;quot;sysbins&amp;quot; depending on the context.&lt;br /&gt;
&lt;br /&gt;
== Structure of an application ==&lt;br /&gt;
Windows 96 applications are simply JavaScript files without the .JS extension that include a WRT shebang (&amp;lt;code&amp;gt;//!wrt&amp;lt;/code&amp;gt;). The shebang denotes that this regular file is a WRT bin, and must be the very first line in any WRT application. It may sometimes include a binary specification (BSPEC) suffix to describe some metadata about the application.&lt;br /&gt;
&lt;br /&gt;
=== The binary specification (BSPEC) ===&lt;br /&gt;
As mentioned before, the binary specification (BSPEC) is a way to describe metadata for a WRT bin. 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;
=== A GUI example program ===&lt;br /&gt;
&lt;br /&gt;
Here is an example of a very basic Windows 96 GUI program:&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
//!wrt&lt;br /&gt;
const { Theme } = w96.ui;&lt;br /&gt;
&lt;br /&gt;
class GUIApplication extends WApplication {&lt;br /&gt;
    /**&lt;br /&gt;
     * Application constructor.&lt;br /&gt;
     */&lt;br /&gt;
    constructor() {&lt;br /&gt;
        super();&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    /**&lt;br /&gt;
     * Main entry point.&lt;br /&gt;
     * @param {String[]} argv The program arguments.&lt;br /&gt;
     */&lt;br /&gt;
    async main(argv) {&lt;br /&gt;
        super.main(argv);&lt;br /&gt;
&lt;br /&gt;
        // Create the window&lt;br /&gt;
        const mainwnd = this.createWindow({&lt;br /&gt;
            title: &amp;quot;Sample Application&amp;quot;,&lt;br /&gt;
            body: &amp;quot;Sample text&amp;quot;,&lt;br /&gt;
            bodyClass: &amp;quot;sample-app&amp;quot;,&lt;br /&gt;
            taskbar: true,&lt;br /&gt;
            resizable: true,&lt;br /&gt;
            initialHeight: 480,&lt;br /&gt;
            initialWidth: 640,&lt;br /&gt;
            icon: await Theme.getIconUrl(&amp;quot;mime/executable&amp;quot;, '16x16')&lt;br /&gt;
        }, true);&lt;br /&gt;
        &lt;br /&gt;
        // Show the window&lt;br /&gt;
        mainwnd.show();&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
return await WApplication.execAsync(new GUIApplication(), this.boxedEnv.args);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Save this file anywhere, without a file extension, and then double click to run it. You may need to refresh your explorer view to allow it to recognize this file as a program.&lt;br /&gt;
&lt;br /&gt;
=== A CLI example program ===&lt;br /&gt;
Here is an example of a very basic Windows 96 terminal program:&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
//!wrt $BSPEC:{&amp;quot;ssy&amp;quot;:&amp;quot;cli&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
const term = this.boxedEnv.term;&lt;br /&gt;
// If the program is not executed in a terminal, exit.&lt;br /&gt;
if (!term) return;&lt;br /&gt;
&lt;br /&gt;
class CLIApplication extends WApplication {&lt;br /&gt;
    /**&lt;br /&gt;
     * Application constructor.&lt;br /&gt;
     */&lt;br /&gt;
    constructor() {&lt;br /&gt;
        super()&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    /**&lt;br /&gt;
     * Main entry point.&lt;br /&gt;
     * @param {String[]} argv The program arguments.&lt;br /&gt;
     */&lt;br /&gt;
    async main(argv) {&lt;br /&gt;
        super.main(argv);&lt;br /&gt;
        &lt;br /&gt;
        // Write some text in the terminal.&lt;br /&gt;
        term.writeln(&amp;quot;Hello World!&amp;quot;);&lt;br /&gt;
        term.writeln(&amp;quot;Welcome to the most useful app!&amp;quot;);&lt;br /&gt;
        &lt;br /&gt;
        // Get user input and store it in a variable.&lt;br /&gt;
        let e = await term.prompt(&amp;quot;Enter your first name: &amp;quot;);&lt;br /&gt;
        term.writeln(&amp;quot;Nice job &amp;quot; + e + &amp;quot;!&amp;quot;);&lt;br /&gt;
        &lt;br /&gt;
        let r = await term.prompt(&amp;quot;Last name: &amp;quot;);&lt;br /&gt;
        term.writeln(`Hi there ${e} ${r}!`);&lt;br /&gt;
        &lt;br /&gt;
        // Pause the program.&lt;br /&gt;
        await term.pause()&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
return await WApplication.execAsync(new CLIApplication(), this.boxedEnv.args, this);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Save this file anywhere, without a file extension, and then enter the path to the file in the terminal to run it.&lt;br /&gt;
&lt;br /&gt;
== Running an application ==&lt;br /&gt;
To run an application, you can either:&lt;br /&gt;
&lt;br /&gt;
* Run it from the Run box or terminal with its executable name, if the binary is present in any directory denoted by the PATH environment variable.&lt;br /&gt;
* Double click it in an explorer window to execute it in the current directory.&lt;br /&gt;
* Enter the absolute path of the application bin in a Run box or terminal window.&lt;br /&gt;
[[Category:Tutorials]]&lt;/div&gt;</summary>
		<author><name>Kelbaz</name></author>
	</entry>
	<entry>
		<id>https://w96.wiki/w/index.php?title=Developing_Games&amp;diff=787</id>
		<title>Developing Games</title>
		<link rel="alternate" type="text/html" href="https://w96.wiki/w/index.php?title=Developing_Games&amp;diff=787"/>
		<updated>2023-04-05T12:17:57Z</updated>

		<summary type="html">&lt;p&gt;Kelbaz: Categorization&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Windows 96 can be pretty boring at times. There are games in the Package Manager, but what if you want to create your own games?&lt;br /&gt;
&lt;br /&gt;
You can [[Developing Games/JavaScript|use JS]], otherwise here are some tutorials for various game engines (that are known to export to HTML5):&lt;br /&gt;
* [[Developing Games/Unity|Unity]]&lt;br /&gt;
* [[Developing Games/Godot|Godot Engine]]&lt;br /&gt;
* [[Developing Games/Construct|Construct 2/3]]&lt;br /&gt;
* [[Developing Games/Flixel|HaxeFlixel]]&lt;br /&gt;
* [[Developing Games/Fusion|Clickteam Fusion]]&lt;br /&gt;
[[Category:Tutorials]]&lt;/div&gt;</summary>
		<author><name>Kelbaz</name></author>
	</entry>
	<entry>
		<id>https://w96.wiki/w/index.php?title=Category:Tutorials&amp;diff=786</id>
		<title>Category:Tutorials</title>
		<link rel="alternate" type="text/html" href="https://w96.wiki/w/index.php?title=Category:Tutorials&amp;diff=786"/>
		<updated>2023-04-05T12:14:16Z</updated>

		<summary type="html">&lt;p&gt;Kelbaz: r&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Various tutorials to help you customise your Windows 96&lt;/div&gt;</summary>
		<author><name>Kelbaz</name></author>
	</entry>
	<entry>
		<id>https://w96.wiki/w/index.php?title=Jsh&amp;diff=785</id>
		<title>Jsh</title>
		<link rel="alternate" type="text/html" href="https://w96.wiki/w/index.php?title=Jsh&amp;diff=785"/>
		<updated>2023-04-05T12:12:54Z</updated>

		<summary type="html">&lt;p&gt;Kelbaz: Added apps category&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Jsh.jpg|thumb|The JSH program]]&lt;br /&gt;
JSH ''(aka JS Shell)'' is a Windows 96 command line interface read–eval–print loop ''(REPL)'' program able to evaluate JavaScript inside a [[Win96 Run Time|WRT]] module environment.&lt;br /&gt;
&lt;br /&gt;
== Specificities ==&lt;br /&gt;
Unlike inside WRT modules, it is not possible to use top-level await in the JSH REPL. JSH also features commands, it is possible to see all of them by typing &amp;lt;code&amp;gt;.help&amp;lt;/code&amp;gt; in the shell. JSH will format all the outputs with syntax highlighting.&lt;br /&gt;
&lt;br /&gt;
== Commands ==&lt;br /&gt;
JSH has several commands that can be used to do specific actions. Here are them:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Command&lt;br /&gt;
!Arguments&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;.clear&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Clears the screen&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;.exit&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Quits the REPL shell&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;.load&amp;lt;/code&amp;gt;&lt;br /&gt;
|path&lt;br /&gt;
|Loads the specified file into the current shell&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;.help&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Shows the help message&lt;br /&gt;
|}&lt;br /&gt;
[[Category:Apps]]&lt;/div&gt;</summary>
		<author><name>Kelbaz</name></author>
	</entry>
	<entry>
		<id>https://w96.wiki/w/index.php?title=Jsh&amp;diff=784</id>
		<title>Jsh</title>
		<link rel="alternate" type="text/html" href="https://w96.wiki/w/index.php?title=Jsh&amp;diff=784"/>
		<updated>2023-04-04T17:45:27Z</updated>

		<summary type="html">&lt;p&gt;Kelbaz: Created JSH page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Jsh.jpg|thumb|The JSH program]]&lt;br /&gt;
JSH ''(aka JS Shell)'' is a Windows 96 command line interface read–eval–print loop ''(REPL)'' program able to evaluate JavaScript inside a [[Win96 Run Time|WRT]] module environment.&lt;br /&gt;
&lt;br /&gt;
== Specificities ==&lt;br /&gt;
Unlike inside WRT modules, it is not possible to use top-level await in the JSH REPL. JSH also features commands, it is possible to see all of them by typing &amp;lt;code&amp;gt;.help&amp;lt;/code&amp;gt; in the shell. JSH will format all the outputs with syntax highlighting.&lt;br /&gt;
&lt;br /&gt;
== Commands ==&lt;br /&gt;
JSH has several commands that can be used to do specific actions. Here are them:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Command&lt;br /&gt;
!Arguments&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;.clear&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Clears the screen&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;.exit&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Quits the REPL shell&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;.load&amp;lt;/code&amp;gt;&lt;br /&gt;
|path&lt;br /&gt;
|Loads the specified file into the current shell&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;.help&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Shows the help message&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Kelbaz</name></author>
	</entry>
	<entry>
		<id>https://w96.wiki/w/index.php?title=File:Jsh.jpg&amp;diff=783</id>
		<title>File:Jsh.jpg</title>
		<link rel="alternate" type="text/html" href="https://w96.wiki/w/index.php?title=File:Jsh.jpg&amp;diff=783"/>
		<updated>2023-04-04T17:16:38Z</updated>

		<summary type="html">&lt;p&gt;Kelbaz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The JS Shell Program&lt;/div&gt;</summary>
		<author><name>Kelbaz</name></author>
	</entry>
	<entry>
		<id>https://w96.wiki/w/index.php?title=Package_Manager&amp;diff=776</id>
		<title>Package Manager</title>
		<link rel="alternate" type="text/html" href="https://w96.wiki/w/index.php?title=Package_Manager&amp;diff=776"/>
		<updated>2023-03-25T17:54:57Z</updated>

		<summary type="html">&lt;p&gt;Kelbaz: Structured and added community repos so much easier to find&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Package Manager.jpg|thumb|The Package Manager program.]]&lt;br /&gt;
The package manager is Windows 96's primary method of distribution for programs. The term &amp;quot;package&amp;quot; refers to a complex set of folders and files, which when coupled with a JSON file and structured correctly, can be decoded by the package manager program and unpacked into the Windows 96 filesystem.&lt;br /&gt;
&lt;br /&gt;
==Functioning ==&lt;br /&gt;
Packages are hosted on a webserver, where the root URL of the package folder is then set as a package repository in the package manager. Packages can be hosted on any static website host (i.e. Github Pages), and comprise of a set of 16x16 and 32x32 pixel icon files, as well as a &amp;quot;content@1.0&amp;quot; directories/zips and a JSON file which sets the folders and icons as variables.[[File:Pkgman-structure.png|The package manager file structure.|thumb]]&lt;br /&gt;
==Package structure==&lt;br /&gt;
During the creation of a package repository, the package manager must be able to decode the structure of the package to be able to successfully unpack any files or folders inside. The file sctructure can be found on the right.&lt;br /&gt;
&lt;br /&gt;
==Community==&lt;br /&gt;
Packages are created by the community to share their work to other users. Packages may contain applications, programs, tools, themes, or wallpapers. Here are some repositories created by the community:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!URL&lt;br /&gt;
!Author&lt;br /&gt;
!Note&lt;br /&gt;
|-&lt;br /&gt;
|https://packages.windows96.net/community&lt;br /&gt;
|Windows 96 Contributors&lt;br /&gt;
|The official community repository. Packages are picked using a high standard.&lt;br /&gt;
|-&lt;br /&gt;
|https://nandertga.ddns.net/w96-packages&lt;br /&gt;
|NanderTGA&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|https://billygoat891.github.io/w96/repo&lt;br /&gt;
|billygoat891&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|https://sgeo.github.io/win96-repos/apps&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Sgeo&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|https://sgeo.github.io/win96-repos/malware&lt;br /&gt;
|Malware repository - use at your own risk&lt;br /&gt;
|-&lt;br /&gt;
|https://packages.ctrl.wtf/main&lt;br /&gt;
|ctrlz&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|https://jameisepic.github.io/thinkjame/public/main&lt;br /&gt;
|JameIsEpic&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|https://w96.stilic.ynh.fr/main&lt;br /&gt;
|Stilic&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|https://onofficiel.github.io/w96/v2&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Onofficiel&lt;br /&gt;
|Only for [[Windows 96 v2]]&lt;br /&gt;
|-&lt;br /&gt;
|https://onofficiel.github.io/w96/v3&lt;br /&gt;
|&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Kelbaz</name></author>
	</entry>
	<entry>
		<id>https://w96.wiki/w/index.php?title=File:Pkgman-structure.png&amp;diff=775</id>
		<title>File:Pkgman-structure.png</title>
		<link rel="alternate" type="text/html" href="https://w96.wiki/w/index.php?title=File:Pkgman-structure.png&amp;diff=775"/>
		<updated>2023-03-25T17:32:15Z</updated>

		<summary type="html">&lt;p&gt;Kelbaz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The package manager file structure.&lt;/div&gt;</summary>
		<author><name>Kelbaz</name></author>
	</entry>
	<entry>
		<id>https://w96.wiki/w/index.php?title=File:Package_Manager.jpg&amp;diff=774</id>
		<title>File:Package Manager.jpg</title>
		<link rel="alternate" type="text/html" href="https://w96.wiki/w/index.php?title=File:Package_Manager.jpg&amp;diff=774"/>
		<updated>2023-03-25T17:27:21Z</updated>

		<summary type="html">&lt;p&gt;Kelbaz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Package Manager application&lt;/div&gt;</summary>
		<author><name>Kelbaz</name></author>
	</entry>
	<entry>
		<id>https://w96.wiki/w/index.php?title=API:w96.FS&amp;diff=757</id>
		<title>API:w96.FS</title>
		<link rel="alternate" type="text/html" href="https://w96.wiki/w/index.php?title=API:w96.FS&amp;diff=757"/>
		<updated>2023-03-22T15:32:20Z</updated>

		<summary type="html">&lt;p&gt;Kelbaz: Started this page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== &amp;lt;code&amp;gt;class FS&amp;lt;/code&amp;gt; ===&lt;br /&gt;
This namespace refers to the file system API of Windows 96. &amp;lt;code&amp;gt;w96.FS&amp;lt;/code&amp;gt; allows manipulation of file system entries by, for example, renaming, deleting or copying them. It is also possible to create, read and write files and directories.&lt;br /&gt;
&lt;br /&gt;
== Structure ==&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;mount(fso: IFileSystem): Promise&amp;lt;void&amp;gt;&amp;lt;/code&amp;gt; ===&lt;br /&gt;
Mounts a file system using the specified object (&amp;quot;driver&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;umount(prefix: String): Promise&amp;lt;void&amp;gt;&amp;lt;/code&amp;gt; ===&lt;br /&gt;
Unmounts a file system instance.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;mounts(): IFileSystem[]&amp;lt;/code&amp;gt; ===&lt;br /&gt;
Gets all mounted file systems.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;list(): String[]&amp;lt;/code&amp;gt; ===&lt;br /&gt;
Gets all mounted file system prefixes.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;nextLetter(): String&amp;lt;/code&amp;gt; ===&lt;br /&gt;
Get the next available drive letter.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;toBlob(path: String): Primise&amp;lt;Blob&amp;gt;&amp;lt;/code&amp;gt; ===&lt;br /&gt;
Creates a blob from a specified path.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;get(prefix: String): IFileSystem&amp;lt;/code&amp;gt; ===&lt;br /&gt;
Retuns a file system by its prefix.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;toURL(path: String): Primise&amp;lt;String&amp;gt;&amp;lt;/code&amp;gt; ===&lt;br /&gt;
Creates a URL from the specified file path.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;isFile(path: String): Primise&amp;lt;Boolean&amp;gt;&amp;lt;/code&amp;gt; ===&lt;br /&gt;
Returns &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; if the entry is a file.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;isEmpty(path: String): Primise&amp;lt;Boolean&amp;gt;&amp;lt;/code&amp;gt; ===&lt;br /&gt;
Returns &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; if the file is empty.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;mkdir(path: String): Primise&amp;lt;Boolean&amp;gt;&amp;lt;/code&amp;gt; ===&lt;br /&gt;
Creates a directory at the specified path.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;rmdir(path: String): Primise&amp;lt;Boolean&amp;gt;&amp;lt;/code&amp;gt; ===&lt;br /&gt;
Deletes a directory at the specified path.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;touch(path: String): Primise&amp;lt;Boolean&amp;gt;&amp;lt;/code&amp;gt; ===&lt;br /&gt;
Creates a file at the specified path.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;rm(path: String): Primise&amp;lt;Boolean&amp;gt;&amp;lt;/code&amp;gt; ===&lt;br /&gt;
Deletes a file at the specified path.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;readdir(path: String): String[]&amp;lt;/code&amp;gt; ===&lt;br /&gt;
Returns a list of entities contained in the specified path.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;cpdir(src: String, dest: String): Promise&amp;lt;Boolean&amp;gt;&amp;lt;/code&amp;gt; ===&lt;br /&gt;
Copies a directory to a new destination.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;cpfile(src: String, dest: String): Promise&amp;lt;Boolean&amp;gt;&amp;lt;/code&amp;gt; ===&lt;br /&gt;
Copies a file to a new destination.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;mvfile(src: String, dest: String): Promise&amp;lt;Boolean&amp;gt;&amp;lt;/code&amp;gt; ===&lt;br /&gt;
Moves a file to a new destination.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;mvdir(src: String, dest: String): Promise&amp;lt;Boolean&amp;gt;&amp;lt;/code&amp;gt; ===&lt;br /&gt;
Moves a directory to a new destination.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;exists(path: String): Boolean&amp;lt;/code&amp;gt; ===&lt;br /&gt;
Checks if an entity exists.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;readstr(path: String): Promise&amp;lt;String&amp;gt;&amp;lt;/code&amp;gt; ===&lt;br /&gt;
Reads the specified file as a string.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;readbin(path: String): Promise&amp;lt;Uint8Array&amp;gt;&amp;lt;/code&amp;gt; ===&lt;br /&gt;
Reads the specified file as binary.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;filetype(path: String): 0 | 1 | -1&amp;lt;/code&amp;gt; ===&lt;br /&gt;
Returns the file type of a node. This can be a binary or text file.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;writestr(path: String, data: String): Promise&amp;lt;Boolean&amp;gt;&amp;lt;/code&amp;gt; ===&lt;br /&gt;
Truncates and writes a UTF-8 encoded string to the specified file.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;writebin(path: String, data: Uint8Array | Number[]): Promise&amp;lt;Boolean&amp;gt;&amp;lt;/code&amp;gt; ===&lt;br /&gt;
Truncates and writes data to the specified file.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;walk(path: String): String[]&amp;lt;/code&amp;gt; ===&lt;br /&gt;
Walks through the contents of a directory.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;stat(path: String): FSStatResult&amp;lt;/code&amp;gt; ===&lt;br /&gt;
Retrieves information about a file system entry.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;rename(path: String, newName: String): Promise&amp;lt;Boolean&amp;gt;&amp;lt;/code&amp;gt; ===&lt;br /&gt;
Renames a file or folder.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;readBinChunk()&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;readStrChunk()&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;cache()&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;uncache()&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;getFromCache()&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;hash(path: String, algorithm: &amp;quot;default&amp;quot; | &amp;quot;md5&amp;quot; | &amp;quot;sha256&amp;quot; | &amp;quot;sha512&amp;quot;): Promise&amp;lt;String&amp;gt;&amp;lt;/code&amp;gt; ===&lt;br /&gt;
Create a hash from a given path and algorithm.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;assert()&amp;lt;/code&amp;gt; ===&lt;br /&gt;
[[Category:API]]&lt;/div&gt;</summary>
		<author><name>Kelbaz</name></author>
	</entry>
	<entry>
		<id>https://w96.wiki/w/index.php?title=User:Kelbaz&amp;diff=753</id>
		<title>User:Kelbaz</title>
		<link rel="alternate" type="text/html" href="https://w96.wiki/w/index.php?title=User:Kelbaz&amp;diff=753"/>
		<updated>2023-03-21T20:32:05Z</updated>

		<summary type="html">&lt;p&gt;Kelbaz: undo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Kelbaz graph.png|thumb|A beautiful logo]]&lt;br /&gt;
Hey there! I'm Kelbaz, the dev behind Border, TSC for Windows 96 and Faastify. I'm active in the community and on this wiki.&lt;br /&gt;
&lt;br /&gt;
== Repository ==&lt;br /&gt;
All my apps are available on [https://onofficiel.github.io/w96 this repository] (a guide on how to add it to your installation is present on the website). They are all open source so your contribution is welcomed!&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/kelbazz Github]&lt;br /&gt;
* [https://kelbazz.github.io Website]&lt;br /&gt;
* [https://codeberg.org/kelbaz Codeberg]&lt;/div&gt;</summary>
		<author><name>Kelbaz</name></author>
	</entry>
	<entry>
		<id>https://w96.wiki/w/index.php?title=MsgRoom&amp;diff=750</id>
		<title>MsgRoom</title>
		<link rel="alternate" type="text/html" href="https://w96.wiki/w/index.php?title=MsgRoom&amp;diff=750"/>
		<updated>2023-03-21T18:49:45Z</updated>

		<summary type="html">&lt;p&gt;Kelbaz: Added to the apps category&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:MsgRoom Screenshot.png|thumb|MsgRoom with a dark theme applied. You can also see the staff title, which many users try to fake in the MSGroom. Stop doing that, you aren't fooling anyone.]]&lt;br /&gt;
MsgRoom is a chat room for Windows 96. It allows people to chat to others in real time. No registration is required to use the service, though IP bans can be given out in cases of abuse.&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
MsgRoom offers the following features:&lt;br /&gt;
&lt;br /&gt;
* 3 default themes, with the option to create your own using css stylesheets.&lt;br /&gt;
* Markdown formatting in text messages.&lt;br /&gt;
* TweMoji rendering for messages containing emoji. There is no dedicated emoji picker as of now.&lt;br /&gt;
&lt;br /&gt;
== Commands ==&lt;br /&gt;
MsgRoom is equipped with several useful commands. Here is a list of them and what they do.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Command&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|/about&lt;br /&gt;
|Prints some about text displaying the current version of MsgRoom.&lt;br /&gt;
|-&lt;br /&gt;
|/block &amp;lt;user_id&amp;gt;&lt;br /&gt;
|Blocks a user by ID. This will prevent you from seeing their messages.&lt;br /&gt;
|-&lt;br /&gt;
|/clear&lt;br /&gt;
|Clears the current chat log.&lt;br /&gt;
|-&lt;br /&gt;
|/config&lt;br /&gt;
|Edits the current chat configuration.&lt;br /&gt;
|-&lt;br /&gt;
|/help&lt;br /&gt;
|Views the built in help.&lt;br /&gt;
|-&lt;br /&gt;
|/list&lt;br /&gt;
|View online members. This command also displays their user IDs and whether they are blocked.&lt;br /&gt;
|-&lt;br /&gt;
|/unblock &amp;lt;user_id&amp;gt;&lt;br /&gt;
|Unblocks a user by ID.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Trivia ==&lt;br /&gt;
&lt;br /&gt;
* A witty comment will be displayed if you attempt to block yourself.&lt;br /&gt;
* The nickname &amp;quot;System&amp;quot; cannot be used as nickname. Doing so will prompt an error.&lt;br /&gt;
[[Category:Apps]]&lt;/div&gt;</summary>
		<author><name>Kelbaz</name></author>
	</entry>
	<entry>
		<id>https://w96.wiki/w/index.php?title=SCM&amp;diff=749</id>
		<title>SCM</title>
		<link rel="alternate" type="text/html" href="https://w96.wiki/w/index.php?title=SCM&amp;diff=749"/>
		<updated>2023-03-21T16:08:32Z</updated>

		<summary type="html">&lt;p&gt;Kelbaz: Redirected page to System Configuration Manager&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[System Configuration Manager]]&lt;/div&gt;</summary>
		<author><name>Kelbaz</name></author>
	</entry>
	<entry>
		<id>https://w96.wiki/w/index.php?title=TUT:Set_a_search_engine_in_InternetE&amp;diff=748</id>
		<title>TUT:Set a search engine in InternetE</title>
		<link rel="alternate" type="text/html" href="https://w96.wiki/w/index.php?title=TUT:Set_a_search_engine_in_InternetE&amp;diff=748"/>
		<updated>2023-03-21T15:43:42Z</updated>

		<summary type="html">&lt;p&gt;Kelbaz: /* Example search engines */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:Set a search engine in InternetE}}&lt;br /&gt;
&lt;br /&gt;
= How to set a Search Engine in InternetE =&lt;br /&gt;
&lt;br /&gt;
==Opening SCM==&lt;br /&gt;
[[File:Scm-in-start-menu.png|alt=The start menu entry to access System Configuration Manager|thumb|276x276px]]&lt;br /&gt;
Start by opening up the [[System Configuration Manager|System Config Manager]] (SCM).&lt;br /&gt;
&lt;br /&gt;
You can open it either by&lt;br /&gt;
&lt;br /&gt;
#going to &amp;lt;code&amp;gt;Start Menu &amp;gt; Programs &amp;gt; System &amp;gt; System Config Manager&amp;lt;/code&amp;gt;&lt;br /&gt;
#or entering &amp;lt;code&amp;gt;scm&amp;lt;/code&amp;gt; into the run box.&lt;br /&gt;
&lt;br /&gt;
== Browsing the configuration==&lt;br /&gt;
[[File:Internete_scm_folder.png|alt=The InternetE folder in the &amp;quot;Software&amp;quot; Section of the System Config Manager|thumb|275x275px]]&lt;br /&gt;
Once in SCM, go to &amp;lt;code&amp;gt;Software &amp;gt; InternetE&amp;lt;/code&amp;gt;. If you don't see the [[InternetE]] folder, it means you probably haven't used InternetE and need to open the InternetE in order for the folder to appear.&lt;br /&gt;
&lt;br /&gt;
''Note: If you don't see the Software folder, reboot Windows96. If it still doesn't show up, you may need to reinstall Windows96''&lt;br /&gt;
&lt;br /&gt;
==Configure the new search engine==&lt;br /&gt;
[[File:Scm-edit-internete-search.png|alt=The dialog to edit the InternetE search engine in SCM|thumb|280x280px]]&lt;br /&gt;
Once in the InternetE folder, double-click the &amp;quot;searchEngine&amp;quot; entry. Delete the text in the &amp;lt;code&amp;gt;JSON Value&amp;lt;/code&amp;gt; box, and put a pair of quotation marks (&amp;lt;code&amp;gt;&amp;quot;&amp;lt;/code&amp;gt;). You can now put the URL to your favorite search engine. To determine where the search query will go, put &amp;lt;code&amp;gt;%SEARCH_QUERY%&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Example search engines==&lt;br /&gt;
To help you, some entries for popular search engines will go here (including the quotes).&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Search Engine&lt;br /&gt;
!URL &lt;br /&gt;
!CORS Unblocker need ?&lt;br /&gt;
|-&lt;br /&gt;
|Google&lt;br /&gt;
|&amp;lt;code&amp;gt;&amp;quot;&amp;lt;nowiki&amp;gt;https://www.google.com/search?igu=1&amp;amp;q=%SEARCH_QUERY&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
|no&lt;br /&gt;
|-&lt;br /&gt;
|Bing&lt;br /&gt;
|&amp;lt;code&amp;gt;&amp;quot;&amp;lt;nowiki&amp;gt;https://bing.com/search?q=%SEARCH_QUERY%&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
|no&lt;br /&gt;
|-&lt;br /&gt;
|DuckDuckGo&lt;br /&gt;
|&amp;lt;code&amp;gt;&amp;quot;&amp;lt;nowiki&amp;gt;https://duckduckgo.com/search?q=%SEARCH_QUERY%&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
|yes&lt;br /&gt;
|-&lt;br /&gt;
| Brave&lt;br /&gt;
|&amp;lt;code&amp;gt;&amp;quot;&amp;lt;nowiki&amp;gt;https://search.brave.com/search?q=%SEARCH_QUERY%&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
|yes&lt;br /&gt;
|-&lt;br /&gt;
|Skynet (Windows 93)&lt;br /&gt;
|&amp;lt;code&amp;gt;&amp;quot;&amp;lt;nowiki&amp;gt;https://pierrepapierciseaux.net/.skynet/?q=%SEARCH_QUERY%&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
|no &lt;br /&gt;
|-&lt;br /&gt;
|Ecosia&lt;br /&gt;
|&amp;lt;code&amp;gt;&amp;quot;&amp;lt;nowiki&amp;gt;https://ecosia.org/search?q=%SEARCH_QUERY%&amp;amp;method=index&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
|yes&lt;br /&gt;
|-&lt;br /&gt;
|Wikipedia&lt;br /&gt;
|&amp;lt;code&amp;gt;&amp;quot;&amp;lt;nowiki&amp;gt;https://en.wikipedia.org/wiki/?search=%SEARCH_QUERY%&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
|no&lt;br /&gt;
|-&lt;br /&gt;
|YouTube&lt;br /&gt;
|&amp;lt;code&amp;gt;&amp;quot;&amp;lt;nowiki&amp;gt;https://youtube.com/results?search_query=%SEARCH_QUERY%&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
|yes&lt;br /&gt;
|}&lt;br /&gt;
[[Category:Tutorials]]&lt;br /&gt;
{{DEFAULTSORT:Set_a_search_engine_in_InternetE}}&lt;/div&gt;</summary>
		<author><name>Kelbaz</name></author>
	</entry>
	<entry>
		<id>https://w96.wiki/w/index.php?title=WRT&amp;diff=747</id>
		<title>WRT</title>
		<link rel="alternate" type="text/html" href="https://w96.wiki/w/index.php?title=WRT&amp;diff=747"/>
		<updated>2023-03-21T15:31:19Z</updated>

		<summary type="html">&lt;p&gt;Kelbaz: Added a redirection page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Win96 Run Time]]&lt;/div&gt;</summary>
		<author><name>Kelbaz</name></author>
	</entry>
	<entry>
		<id>https://w96.wiki/w/index.php?title=Win96_Run_Time&amp;diff=746</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=746"/>
		<updated>2023-03-21T15:27:36Z</updated>

		<summary type="html">&lt;p&gt;Kelbaz: Created WRT page&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, this script 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 before. these script 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 asyncronous context, so it is 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;
* Start the script with the following shebang: &amp;lt;code&amp;gt;//!wrt&amp;lt;/code&amp;gt;&lt;br /&gt;
* Run the &amp;lt;code&amp;gt;wjs&amp;lt;/code&amp;gt; command with the path to the script&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
The Windows Runtime was introduced in Windows 96 v2 Service Pack 2.&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;
The shebang is the first line of a binary. The WRT shebang starts with &amp;lt;code&amp;gt;//!wrt&amp;lt;/code&amp;gt;. The shebang denotes that this regular file is a WRT bin, 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 way to describe metadata for a WRT bin. 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;/div&gt;</summary>
		<author><name>Kelbaz</name></author>
	</entry>
	<entry>
		<id>https://w96.wiki/w/index.php?title=TUT:Set_a_search_engine_in_InternetE&amp;diff=745</id>
		<title>TUT:Set a search engine in InternetE</title>
		<link rel="alternate" type="text/html" href="https://w96.wiki/w/index.php?title=TUT:Set_a_search_engine_in_InternetE&amp;diff=745"/>
		<updated>2023-03-21T14:08:03Z</updated>

		<summary type="html">&lt;p&gt;Kelbaz: Clearify the tutorial&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:Set a search engine in InternetE}}&lt;br /&gt;
&lt;br /&gt;
= How to set a Search Engine in InternetE =&lt;br /&gt;
&lt;br /&gt;
==Opening SCM==&lt;br /&gt;
[[File:Scm-in-start-menu.png|alt=The start menu entry to access System Configuration Manager|thumb|276x276px]]&lt;br /&gt;
Start by opening up the [[System Configuration Manager|System Config Manager]] (SCM).&lt;br /&gt;
&lt;br /&gt;
You can open it either by&lt;br /&gt;
&lt;br /&gt;
#going to &amp;lt;code&amp;gt;Start Menu &amp;gt; Programs &amp;gt; System &amp;gt; System Config Manager&amp;lt;/code&amp;gt;&lt;br /&gt;
#or entering &amp;lt;code&amp;gt;scm&amp;lt;/code&amp;gt; into the run box.&lt;br /&gt;
&lt;br /&gt;
== Browsing the configuration==&lt;br /&gt;
[[File:Internete_scm_folder.png|alt=The InternetE folder in the &amp;quot;Software&amp;quot; Section of the System Config Manager|thumb|275x275px]]&lt;br /&gt;
Once in SCM, go to &amp;lt;code&amp;gt;Software &amp;gt; InternetE&amp;lt;/code&amp;gt;. If you don't see the [[InternetE]] folder, it means you probably haven't used InternetE and need to open the InternetE in order for the folder to appear.&lt;br /&gt;
&lt;br /&gt;
''Note: If you don't see the Software folder, reboot Windows96. If it still doesn't show up, you may need to reinstall Windows96''&lt;br /&gt;
&lt;br /&gt;
==Configure the new search engine==&lt;br /&gt;
[[File:Scm-edit-internete-search.png|alt=The dialog to edit the InternetE search engine in SCM|thumb|280x280px]]&lt;br /&gt;
Once in the InternetE folder, double-click the &amp;quot;searchEngine&amp;quot; entry. Delete the text in the &amp;lt;code&amp;gt;JSON Value&amp;lt;/code&amp;gt; box, and put a pair of quotation marks (&amp;lt;code&amp;gt;&amp;quot;&amp;lt;/code&amp;gt;). You can now put the URL to your favorite search engine. To determine where the search query will go, put &amp;lt;code&amp;gt;%SEARCH_QUERY%&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Example search engines==&lt;br /&gt;
To help you, some entries for popular search engines will go here (including the quotes).&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Search Engine&lt;br /&gt;
!URL &lt;br /&gt;
!CORS Unblocker need ?&lt;br /&gt;
|-&lt;br /&gt;
|Google&lt;br /&gt;
|&amp;lt;code&amp;gt;&amp;quot;&amp;lt;nowiki&amp;gt;https://www.google.com/search?igu=1&amp;amp;q=%SEARCH_QUERY&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
|no&lt;br /&gt;
|-&lt;br /&gt;
|Bing&lt;br /&gt;
|&amp;lt;code&amp;gt;&amp;quot;&amp;lt;nowiki&amp;gt;https://bing.com/search?q=%SEARCH_QUERY%&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
|no&lt;br /&gt;
|-&lt;br /&gt;
|DuckDuckGo&lt;br /&gt;
|&amp;lt;code&amp;gt;&amp;quot;&amp;lt;nowiki&amp;gt;https://duckduckgo.com/search?q=%SEARCH_QUERY%&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
|yes&lt;br /&gt;
|-&lt;br /&gt;
| Brave&lt;br /&gt;
|&amp;lt;code&amp;gt;&amp;quot;&amp;lt;nowiki&amp;gt;https://search.brave.com/search?q=%SEARCH_QUERY%&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
|yes&lt;br /&gt;
|-&lt;br /&gt;
|Skynet (Windows 93)&lt;br /&gt;
|&amp;lt;code&amp;gt;&amp;quot;&amp;lt;nowiki&amp;gt;https://pierrepapierciseaux.net/.skynet/?q=%SEARCH_QUERY%&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
|no &lt;br /&gt;
|-&lt;br /&gt;
|Ecosia&lt;br /&gt;
|&amp;lt;code&amp;gt;&amp;quot;&amp;lt;nowiki&amp;gt;https://ecosia.org/search?q=%SEARCH_QUERY%&amp;amp;method=index&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
|yes&lt;br /&gt;
|-&lt;br /&gt;
|Wikipedia&lt;br /&gt;
|&amp;lt;code&amp;gt;&amp;quot;&amp;lt;nowiki&amp;gt;https://en.wikipedia.org/w/index.php?search=%SEARCH_QUERY%&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
|no&lt;br /&gt;
|-&lt;br /&gt;
|YouTube&lt;br /&gt;
|&amp;lt;code&amp;gt;&amp;quot;&amp;lt;nowiki&amp;gt;https://youtube.com/results?search_query=%SEARCH_QUERY%&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
|yes&lt;br /&gt;
|}&lt;br /&gt;
[[Category:Tutorials]]&lt;br /&gt;
{{DEFAULTSORT:Set_a_search_engine_in_InternetE}}&lt;/div&gt;</summary>
		<author><name>Kelbaz</name></author>
	</entry>
	<entry>
		<id>https://w96.wiki/w/index.php?title=April_10th&amp;diff=744</id>
		<title>April 10th</title>
		<link rel="alternate" type="text/html" href="https://w96.wiki/w/index.php?title=April_10th&amp;diff=744"/>
		<updated>2023-03-21T13:05:30Z</updated>

		<summary type="html">&lt;p&gt;Kelbaz: Changing age&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;April 10th is the official anniversary day of Windows 96. The OS is currently 4 years old as of last anniversary.&lt;br /&gt;
&lt;br /&gt;
== 2020 ==&lt;br /&gt;
Nothing special occurred during 2020, mainly due to the 2020 pandemic and lack of motivation during such crippling times.&lt;br /&gt;
&lt;br /&gt;
== 2021 ==&lt;br /&gt;
[[File:Service Pack 1 Upgrade Screenshot.png|thumb|Service Pack 1 welcome screen (triggered on startup)]]&lt;br /&gt;
A special anniversary welcome screen was added during the anniversary, which included numerous apps, features, and bug fixes.&lt;br /&gt;
&lt;br /&gt;
An open sourcing of Windows 96 was (and still is to some extent) planned, but this was delayed indefinitely.&lt;br /&gt;
&lt;br /&gt;
== 2022 ==&lt;br /&gt;
V3 was initially planned to be released on the third anniversary of Windows 96. This didn't happen due to a multitude of development roadblocks.&lt;br /&gt;
&lt;br /&gt;
Instead, an anarchy Minecraft server event was held in the Windows 96 Discord, where a player could win a prize for the best looking base.&lt;/div&gt;</summary>
		<author><name>Kelbaz</name></author>
	</entry>
	<entry>
		<id>https://w96.wiki/w/index.php?title=Media_Player&amp;diff=743</id>
		<title>Media Player</title>
		<link rel="alternate" type="text/html" href="https://w96.wiki/w/index.php?title=Media_Player&amp;diff=743"/>
		<updated>2023-03-21T12:44:28Z</updated>

		<summary type="html">&lt;p&gt;Kelbaz: Added content&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:MediaPlayer Control Panel.jpg|thumb|The Media Player control panel]]&lt;br /&gt;
[[File:MediaPlayer Video Player.jpg|thumb|The Media Player video player.]]&lt;br /&gt;
The Media Player (also known as &amp;quot;MPlayer&amp;quot;) is a Windows 96 application which can, as it's name suggests, play audio and video files. This application is not complete but most features are already implemented. The interface is composed of a progress bar to go to a specific moment of the media and of buttons to control to the stream.&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
Media Player was introduced in [[Windows 96 v3|v3]]. Before the 3&amp;lt;sup&amp;gt;rd&amp;lt;/sup&amp;gt; Windows 96 release, it was not possible to play audio from files from the user interface. Media Player is the successor to Video Player from [[Windows 96 v2]].&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
Here is the list of features that Media Player offer:&lt;br /&gt;
&lt;br /&gt;
* Play, pause, stop and eject the stream&lt;br /&gt;
* Rewind and fast forward (2 seconds)&lt;br /&gt;
* Mark navigation&lt;br /&gt;
* Time, frame, track scaling&lt;br /&gt;
* Time selection&lt;br /&gt;
&lt;br /&gt;
[[Category:Apps]]&lt;/div&gt;</summary>
		<author><name>Kelbaz</name></author>
	</entry>
	<entry>
		<id>https://w96.wiki/w/index.php?title=File:MediaPlayer_Video_Player.jpg&amp;diff=742</id>
		<title>File:MediaPlayer Video Player.jpg</title>
		<link rel="alternate" type="text/html" href="https://w96.wiki/w/index.php?title=File:MediaPlayer_Video_Player.jpg&amp;diff=742"/>
		<updated>2023-03-21T12:07:38Z</updated>

		<summary type="html">&lt;p&gt;Kelbaz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The MediaPlayer video player&lt;/div&gt;</summary>
		<author><name>Kelbaz</name></author>
	</entry>
	<entry>
		<id>https://w96.wiki/w/index.php?title=File:MediaPlayer_Control_Panel.jpg&amp;diff=741</id>
		<title>File:MediaPlayer Control Panel.jpg</title>
		<link rel="alternate" type="text/html" href="https://w96.wiki/w/index.php?title=File:MediaPlayer_Control_Panel.jpg&amp;diff=741"/>
		<updated>2023-03-21T11:41:54Z</updated>

		<summary type="html">&lt;p&gt;Kelbaz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The MediaPlayer control panel.&lt;/div&gt;</summary>
		<author><name>Kelbaz</name></author>
	</entry>
	<entry>
		<id>https://w96.wiki/w/index.php?title=InternetE&amp;diff=740</id>
		<title>InternetE</title>
		<link rel="alternate" type="text/html" href="https://w96.wiki/w/index.php?title=InternetE&amp;diff=740"/>
		<updated>2023-03-21T11:24:02Z</updated>

		<summary type="html">&lt;p&gt;Kelbaz: Added content&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Internetee screenshot.png|thumb|alt=A screenshot of InternetE displaying the start page|A screenshot of InternetE displaying the start page]]InternetE is the successor to [[Internet Exploder]]. InternetE was first introduced in [[Windows 96 v3]] during the beta program. Despite being completely rewritten from the ground up, click &amp;quot;about&amp;quot; in the &amp;quot;Help&amp;quot; menu will yield a dialog declaring the current version installed to be 2.0.&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
InternetE uses [[.URL_files|URL Files]] to store bookmarks instead of storing them in JSON Format like [[Internet Exploder]]. InternetE also saves the browsing history, so it is now possible to navigate through it. It is also possible to set a default home page ''(InternetE also uses the same start page as [[Internet Exploder]]).'' InternetE can, unlike its predecessor, define a search engine.&lt;br /&gt;
&lt;br /&gt;
== Option panel ==&lt;br /&gt;
[[File:InternetE options.jpg|thumb|InternetE option panel by default.]]&lt;br /&gt;
InternetE also introduce a new option panel. This allows the user to configure the browser and control the history. Those options are divised in categories. Here are the current settings:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+General&lt;br /&gt;
!Setting&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; |Home page&lt;br /&gt;
|-&lt;br /&gt;
|Address&lt;br /&gt;
|about:start&lt;br /&gt;
|The current page used as the home page.&lt;br /&gt;
''(Opened on startup and when the home button is clicked)''&lt;br /&gt;
|-&lt;br /&gt;
|Use Current&lt;br /&gt;
|''(button)''&lt;br /&gt;
|Use the current website as home page.&lt;br /&gt;
|-&lt;br /&gt;
|Use Default&lt;br /&gt;
|''(button)''&lt;br /&gt;
|Use &amp;quot;about:start&amp;quot; as home page.&lt;br /&gt;
|-&lt;br /&gt;
|Use Blank&lt;br /&gt;
|''(button)''&lt;br /&gt;
|Use &amp;quot;about:blank&amp;quot; as home page.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; |History&lt;br /&gt;
|-&lt;br /&gt;
|Clear History&lt;br /&gt;
|''(button)''&lt;br /&gt;
|Clears browser history&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
InternetE also provides settings in the [[System Configuration Manager]]. Here are the editable properties:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Key&lt;br /&gt;
!Default Value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|homepage&lt;br /&gt;
|&amp;lt;code&amp;gt;&amp;quot;about:start&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
|The current page used as the home page.&lt;br /&gt;
|-&lt;br /&gt;
|searchEngine&lt;br /&gt;
|&amp;lt;code&amp;gt;&amp;quot;about:blank?placeholder&amp;amp;q=%SEARCH_QUERY%&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
|The search engine to use in InternetE. ''(Using &amp;quot;Search&amp;quot; button)''&lt;br /&gt;
|}&lt;br /&gt;
[[Category:Apps]]&lt;/div&gt;</summary>
		<author><name>Kelbaz</name></author>
	</entry>
	<entry>
		<id>https://w96.wiki/w/index.php?title=File:InternetE_options.jpg&amp;diff=739</id>
		<title>File:InternetE options.jpg</title>
		<link rel="alternate" type="text/html" href="https://w96.wiki/w/index.php?title=File:InternetE_options.jpg&amp;diff=739"/>
		<updated>2023-03-21T10:48:16Z</updated>

		<summary type="html">&lt;p&gt;Kelbaz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;InternetE option menu&lt;/div&gt;</summary>
		<author><name>Kelbaz</name></author>
	</entry>
	<entry>
		<id>https://w96.wiki/w/index.php?title=User:Kelbaz&amp;diff=738</id>
		<title>User:Kelbaz</title>
		<link rel="alternate" type="text/html" href="https://w96.wiki/w/index.php?title=User:Kelbaz&amp;diff=738"/>
		<updated>2023-03-21T09:59:39Z</updated>

		<summary type="html">&lt;p&gt;Kelbaz: That's just a waste of time bro&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Kelbaz graph.png|thumb|A beautiful logo]]&lt;br /&gt;
Hey there! I'm Kelbaz, the dev behind Border, TSC for Windows 96 and Faastify. I'm active in the community and on this wiki.&lt;br /&gt;
&lt;br /&gt;
== Repository ==&lt;br /&gt;
All my apps are available on [https://onofficiel.github.io/w96 this repository] (a guide on how to add it to your installation is present on the website). They are all open source so your contribution is welcomed!&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/kelbazz Github]&lt;br /&gt;
* [https://kelbazz.github.io Website]&lt;br /&gt;
* [https://codeberg.org/kelbaz Codeberg]&lt;/div&gt;</summary>
		<author><name>Kelbaz</name></author>
	</entry>
	<entry>
		<id>https://w96.wiki/w/index.php?title=User:Kelbaz&amp;diff=736</id>
		<title>User:Kelbaz</title>
		<link rel="alternate" type="text/html" href="https://w96.wiki/w/index.php?title=User:Kelbaz&amp;diff=736"/>
		<updated>2023-03-20T18:01:43Z</updated>

		<summary type="html">&lt;p&gt;Kelbaz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Kelbaz graph.png|thumb|A beautiful logo]]&lt;br /&gt;
Hey there! I'm Kelbaz, the dev behind Border, TSC for Windows 96 and Faastify. I'm active in the community and on this wiki.&lt;br /&gt;
&lt;br /&gt;
== Repository ==&lt;br /&gt;
All my apps are available on [https://onofficiel.github.io/w96 this repository] (a guide on how to add it to your installation is present on the website). They are all open source so your contribution is welcomed!&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/kelbazz Github]&lt;br /&gt;
* [https://kelbazz.github.io Website]&lt;br /&gt;
* [https://codeberg.org/kelbaz Codeberg]&lt;/div&gt;</summary>
		<author><name>Kelbaz</name></author>
	</entry>
	<entry>
		<id>https://w96.wiki/w/index.php?title=File:Kelbaz_graph.png&amp;diff=735</id>
		<title>File:Kelbaz graph.png</title>
		<link rel="alternate" type="text/html" href="https://w96.wiki/w/index.php?title=File:Kelbaz_graph.png&amp;diff=735"/>
		<updated>2023-03-20T17:13:11Z</updated>

		<summary type="html">&lt;p&gt;Kelbaz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Kelbaz's logo&lt;/div&gt;</summary>
		<author><name>Kelbaz</name></author>
	</entry>
	<entry>
		<id>https://w96.wiki/w/index.php?title=Monaco&amp;diff=734</id>
		<title>Monaco</title>
		<link rel="alternate" type="text/html" href="https://w96.wiki/w/index.php?title=Monaco&amp;diff=734"/>
		<updated>2023-03-20T17:08:04Z</updated>

		<summary type="html">&lt;p&gt;Kelbaz: /* Additional informations: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Monaco.jpg|thumb|Monaco editing a CSS file.]]&lt;br /&gt;
Monaco is a Windows 96 code editor based on [[Microsoft]]'s similarly named editor. Monaco supports syntax highlight in JS, CSS, HTML and JSON. It also supports code completion, refactoring and formatting.&lt;br /&gt;
&lt;br /&gt;
== Customisation ==&lt;br /&gt;
Monaco can be customized by editing a configuration file stored at &amp;lt;code&amp;gt;C:/user/appdata/Monaco/config.json&amp;lt;/code&amp;gt;. Here is an example of configuration:&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;theme&amp;quot;: &amp;quot;vs-dark&amp;quot;,&lt;br /&gt;
    &amp;quot;enableMinimap&amp;quot;: true,&lt;br /&gt;
&lt;br /&gt;
    &amp;quot;fontFamily&amp;quot;: &amp;quot;JetBrains Mono&amp;quot;,&lt;br /&gt;
    &amp;quot;fontSize&amp;quot;: 13,&lt;br /&gt;
    &amp;quot;lineHeight&amp;quot;: 18&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Additional informations: ==&lt;br /&gt;
&lt;br /&gt;
* A command palette can be displayed by pressing &amp;lt;code&amp;gt;F1&amp;lt;/code&amp;gt;&lt;br /&gt;
* HTML files can be viewed in [[InternetE]] by clicking on ''&amp;quot;Tools &amp;gt; Preview in Browser&amp;quot;''&lt;br /&gt;
&lt;br /&gt;
[[Category:Apps]]&lt;/div&gt;</summary>
		<author><name>Kelbaz</name></author>
	</entry>
	<entry>
		<id>https://w96.wiki/w/index.php?title=Programs&amp;diff=732</id>
		<title>Programs</title>
		<link rel="alternate" type="text/html" href="https://w96.wiki/w/index.php?title=Programs&amp;diff=732"/>
		<updated>2023-03-20T14:03:48Z</updated>

		<summary type="html">&lt;p&gt;Kelbaz: Added links&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Windows 96 comes with a large set of programs preinstalled. They can be found under Start &amp;gt; Programs.&lt;br /&gt;
&lt;br /&gt;
== List of programs ==&lt;br /&gt;
Below is a list of all included programs. This list may not always be up to date.&lt;br /&gt;
&lt;br /&gt;
=== Accessories ===&lt;br /&gt;
* Editors&lt;br /&gt;
** [[Monaco]]&lt;br /&gt;
** [[Textpad]]&lt;br /&gt;
* Activate Windows&lt;br /&gt;
* [[Explorer]]&lt;br /&gt;
* Image View&lt;br /&gt;
* [[InternetE]]&lt;br /&gt;
* [[Media Player]]&lt;br /&gt;
* PDF Reader&lt;br /&gt;
=== Developer ===&lt;br /&gt;
* API Reference&lt;br /&gt;
* API Samples&lt;br /&gt;
* Developer Documentation&lt;br /&gt;
* JS REPL (GUI)&lt;br /&gt;
* Performance Counters&lt;br /&gt;
* System Flags&lt;br /&gt;
=== Entertainment ===&lt;br /&gt;
* Emulators&lt;br /&gt;
** DosBox&lt;br /&gt;
** NES&lt;br /&gt;
** [[Super Player]]&lt;br /&gt;
* BassonTracker&lt;br /&gt;
* Blocks&lt;br /&gt;
* [[Gameing]]&lt;br /&gt;
* Meme Man&lt;br /&gt;
* Pinball&lt;br /&gt;
* Pumkin World&lt;br /&gt;
* Troll&lt;br /&gt;
=== Network ===&lt;br /&gt;
* [[MsgRoom]]&lt;br /&gt;
* [[P3]]&lt;br /&gt;
* [[ShareBoard|Share Board]]&lt;br /&gt;
* [[SuperTerm]]&lt;br /&gt;
* Win96 Multiplayer&lt;br /&gt;
=== Other ===&lt;br /&gt;
* [[API:BSOD|BSOD]]&lt;br /&gt;
* Effects&lt;br /&gt;
* GL Test&lt;br /&gt;
* Matrix&lt;br /&gt;
* Tips&lt;br /&gt;
* [[Version Browser]]&lt;br /&gt;
* Wiki96&lt;br /&gt;
=== System ===&lt;br /&gt;
* Backup&lt;br /&gt;
* Device Manager&lt;br /&gt;
* Linux&lt;br /&gt;
* [[Package Manager]]&lt;br /&gt;
* [[System Configuration Manager|System Config Manager]]&lt;br /&gt;
* Task Manager&lt;br /&gt;
* Terminal&lt;br /&gt;
* Window Manager Settings&lt;br /&gt;
=== Utility ===&lt;br /&gt;
* Base64&lt;br /&gt;
* MDView&lt;br /&gt;
* PC Health Check&lt;br /&gt;
* [[Bug Report Tool|Report Bug]]&lt;br /&gt;
* [[Uploader]]&lt;br /&gt;
* Wasm Tools&lt;br /&gt;
* noTRON AV&lt;br /&gt;
=== WINE ===&lt;br /&gt;
* WINE&lt;br /&gt;
=== WTF ===&lt;br /&gt;
* [[YouAreAnIdiot]]&lt;/div&gt;</summary>
		<author><name>Kelbaz</name></author>
	</entry>
</feed>