Improved design, new profiles

This commit is contained in:
Fabian 2020-12-31 19:14:34 -06:00
parent e27faaee75
commit 10addd4756
5 changed files with 462 additions and 695 deletions

View file

@ -38,13 +38,12 @@
<input type="button" value="Linux 2.6 (Buildroot)" id="start_linux26">
<input type="button" value="Linux 3.18 (Buildroot)" id="start_linux3">
<input type="button" value="Linux 4.16 (Buildroot)" id="start_linux4">
<input type="button" value="Linux 5.6 (Buildroot)" id="start_buildroot">
<input type="button" value="Tiny Core" id="start_tinycore">
<input type="button" value="OpenWRT" id="start_openwrt">
<br>
<input type="button" value="Arch Linux" id="start_archlinux">
<input type="button" value="Arch Linux (boot)" id="start_archlinux-9p-cool">
<input type="button" value="Debian" id="start_debian">
<input type="button" value="Alpine" id="start_alpine">
<input type="button" value="Damn Small Linux" id="start_dsl">
<br>
@ -55,8 +54,10 @@
<br>
<input type="button" value="Haiku" id="start_haiku">
<input type="button" value="Haiku (boot)" id="start_haiku-boot">
<input type="button" value="Minix" id="start_minix">
<input type="button" value="SerenityOS" id="start_serenity">
<input type="button" value="QNX" id="start_qnx">
<input type="button" value="9front" id="start_9front">
<input type="button" value="Plan 9" id="start_plan9">
<br>
@ -79,64 +80,76 @@
<table>
<tr>
<td width="250">CD image</td>
<td width="350"><label for="cd_image">CD image</label></td>
<td>
<!--
<select>
<option>None</option>
<option>Local file</option>
<option>External Server</option>
</select>-->
<input type="file" id="cd_image">
</td>
</tr>
<tr>
<td>Floppy disk image</td>
<td><label for="floppy_image">Floppy disk image</label></td>
<td> <input type="file" id="floppy_image"><br></td>
</tr>
<tr>
<td>Hard drive disk image</td>
<td><label for="hd_image">Hard drive disk image</label></td>
<td><input type="file" id="hd_image"><br></td>
</tr>
<tr>
<td>Multiboot kernel image</td>
<td><label for="multiboot_image">Multiboot kernel image (experimental)</label></td>
<td><input type="file" id="multiboot_image"><br></td>
</tr>
<tr>
<td colspan="2"><hr></td>
<td colspan="2"><small>Disk images are not uploaded to the server</small><hr></td>
</tr>
<tr>
<td>Memory size</td>
<td><label for="memory_size">Memory size</label></td>
<td>
<input id="memory_size" type="number" value="128" min="16" max="2048" step="16"> MB<br>
</td>
</tr>
<tr>
<td>Video Memory size</td>
<td><label for="video_memory_size">Video Memory size</label></td>
<td>
<input id="video_memory_size" type="number" value="8" min="1" max="128" step="1"> MB<br>
</td>
</tr>
<tr>
<td><label for="networking_proxy">Networking proxy (leave blank to disable)</label></td>
<td>
<input id="networking_proxy" type="text" value="wss://relay.widgetry.org/">
</td>
</tr>
<tr>
<td colspan="2"><hr></td>
</tr>
<!--
<tr>
<td>Execution Cap </td>
<td> <input type="number" value="100" min="5" max="100" step="5"> %<br> </td>
<td><label for="disable_audio">Disable audio</label></td>
<td>
<input id="disable_audio" type="checkbox"><br>
</td>
</tr>
-->
<tr>
<td>Boot order</td>
<td><label for="enable_acpi">Enable ACPI (experimental)</label></td>
<td>
<input id="enable_acpi" type="checkbox"><br>
</td>
</tr>
<tr>
<td colspan="2"><hr></td>
</tr>
<tr>
<td><label for="boot_order">Boot order</label></td>
<td>
<select id="boot_order">
<option value="213">CD / Floppy / Hard Disk</option>
@ -152,15 +165,6 @@
<br>
<button id="start_emulation">Start Emulation</button>
<!--
<br>
<div id="setup_error">Error: Video size must be at least over 9000</div>
-->
<!--
<br>
<br>
Link to this configuration: <a href="" id="config_link">http://copy.sh/v86/?a=b&amp;c=d</a>
-->
<br>
<br>
</div>
@ -185,7 +189,7 @@
<input type="button" value="Get cdrom image" id="get_cdrom_image">
<input type="button" value="Save State" id="save_state">
<input type="button" value="Load State" id="load_state"> <input type="file" style="display: none" id="load_state_input">
<input type="button" value="Memory Dump (raw)" id="memory_dump">
<input type="button" value="Memory Dump" id="memory_dump">
<input type="button" value="Disable mouse" id="toggle_mouse">
<input type="button" value="Lock mouse" id="lock_mouse">
<input type="button" value="Go fullscreen" id="fullscreen">
@ -210,10 +214,7 @@
</div>
<pre style="margin: 0" id="log_levels"></pre>
<pre style="margin: 3px 0px 0px 0px" id="debug_infos"></pre>
<pre style="display: none" id="loading"></pre>
<br>
</div>
@ -226,6 +227,7 @@
</div>
</div>
<div id="runtime_infos" style="display: none">
Running: <span id="running_time">0s</span> <br>
Speed: <span id="speed">0</span> mIPS<br>
@ -260,7 +262,6 @@
BPP: <span id="info_bpp">-</span><br>
<br>
Mouse: <span id="info_mouse_enabled">No</span><br>
<!-- Keyboard: <span id="info_keyboard_enabled">-</span><br> -->
</div>
<div id="filesystem_panel" style="display: none">
@ -278,11 +279,11 @@
<div id="debug_panel" style="display: none">
</div>
<br style="clear:both"><br>
<br style="clear: both"><br>
<textarea readonly id="log" style="display:none"></textarea>
<textarea readonly id="log" style="display: none"></textarea>
<textarea spellcheck="false" cols="40" rows="12" id="serial" style="display:none">
<textarea spellcheck="false" cols="40" rows="12" id="serial" style="display: none">
</textarea>
<div id="terminal"></div>

View file

@ -3,97 +3,133 @@
<title>Virtual x86</title>
<meta name="viewport" content="width=device-width,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no">
<meta name="description" content="Run KolibriOS, Linux or Windows 98 in your browser">
<script src="build/v86_all.js"></script>
<link rel="stylesheet" href="v86.css">
<div>
<div id="boot_options">
<h4>Quickstart</h4>
<input type="button" value="ReactOS (32 MB)" id="start_reactos">
- Restored from snapshot<br>
<input type="button" value="Windows 95 (6.7 MB)" id="start_windows95">
- Restored from snapshot<br>
<input type="button" value="FreeBSD 10.2 (13.0 MB)" id="start_freebsd">
- Restored from snapshot<br>
<input type="button" value="Oberon (16.0 MB)" id="start_oberon">
- Native Oberon 2.3.6<br>
<input type="button" value="Windows 98 (12.0 MB)" id="start_windows98">
- Including Minesweeper, additional sectors are loaded as needed<br>
<input type="button" value="Arch Linux (10.1 MB)" id="start_archlinux">
- A complete Arch Linux restored from a snapshot, additional files are loaded as needed<br>
<input type="button" value="KolibriOS (1.4 MB)" id="start_kolibrios">
- Graphical OS, takes about 60 seconds to boot<br>
<input type="button" value="Linux 2.6 (5.4 MB)" id="start_linux26">
- With busybox, Lua interpreter and test cases, takes about 20 seconds to boot<br>
<input type="button" value="Linux 3.18 (8.3 MB)" id="start_linux3">
- With internet access, telnet, ping, wget and links. Takes about 60 seconds to boot. Run <code>udhcpc</code> for networking. Exchange files through <code>/mnt/</code>.<br>
<input type="button" value="Windows 1.01 (1.4 MB)" id="start_windows1">
- Takes 1 second to boot<br>
<input type="button" value="MS-DOS 6.22 (3.4 MB)" id="start_msdos">
- Takes 10 seconds to boot. With Enhanced Tools, QBasic and everything from the FreeDOS image<br>
<input type="button" value="FreeDOS (0.7 MB)" id="start_freedos">
- With nasm, vim, debug.com, some games and demos, takes 1 second to boot<br>
<input type="button" value="OpenBSD (1.4 MB)" id="start_openbsd">
- Random boot floppy, takes about 60 seconds<br>
<input type="button" value="Solar OS (1.4 MB)" id="start_solos">
- Simple graphical OS<br>
<input type="button" value="Bootchess (0.2 MB)" id="start_bootchess">
- A tiny chess program written in the boot sector
<h4>Select profile</h4>
<table id="oses">
<tr id="start_archlinux"><td><a href="?profile=archlinux">Arch Linux</a> <small>12 MB</small></td><td>
A complete Arch Linux restored from a snapshot, additional files are loaded as needed</td></tr>
<tr id="start_dsl"><td><a href="?profile=dsl">Damn Small Linux</a> <small>50 MB</small></td><td>
Graphical Linux with 2.4 kernel, Firefox 2.0 and more. Takes 1 minute to boot.</td></tr>
<tr id="start_buildroot"><td><a href="?profile=buildroot">Buildroot Linux</a> <small>5.0 MB</small></td><td>
Minimal Linux with busybox, Lua, tests, internet access, ping, telnet and curl. Exchange files through <code>/mnt/</code>.</td></tr>
<tr id="start_reactos"><td><a href="?profile=reactos">ReactOS</a> <small>18 MB</small></td><td>
Windows-compatible OS. Restored from snapshot</td></tr>
<tr id="start_windows98"><td><a href="?profile=windows98">Windows 98</a> <small>9.7 MB</small></td><td>
Including Minesweeper and Internet Explorer with internet access. Additional sectors are loaded as needed.</td></tr>
<tr id="start_windows95"><td><a href="?profile=windows95">Windows 95</a> <small>4.6 MB</small></td><td>
Restored from snapshot</td></tr>
<tr id="start_windows1"><td><a href="?profile=windows1">Windows 1.01</a> <small>0.6 MB</small></td><td>
Takes 1 second to boot</td></tr>
<tr id="start_msdos"><td><a href="?profile=msdos">MS-DOS 6.22</a> <small>4.4 MB</small></td><td>
With Enhanced Tools, QBasic, vim, games and demos.</td></tr>
<tr id="start_freedos"><td><a href="?profile=freedos">FreeDOS</a> <small>0.5 MB</small></td><td>
With nasm, vim, debug.com, Rogue, some games and demos.</td></tr>
<tr id="start_freebsd"><td><a href="?profile=freebsd">FreeBSD</a> <small>17 MB</small></td><td>
FreeBSD 12.0 base install. Restored from snapshot.</td></tr>
<tr id="start_openbsd"><td><a href="?profile=openbsd">OpenBSD</a> <small>12 MB</small></td><td>
OpenBSD 6.6 base install. Restored from snapshot.</td></tr>
<tr id="start_9front"><td><a href="?profile=9front">9front</a> <small>4.4 MB</small></td><td>
A Plan 9 fork.</td></tr>
<tr id="start_haiku"><td><a href="?profile=haiku">Haiku</a> <small>46 MB</small></td><td>
Restored from snapshot. Includes network support.</td></tr>
<tr id="start_oberon"><td><a href="?profile=oberon">Oberon</a> <small>1.2 MB</small></td><td>
Native Oberon 2.3.6</td></tr>
<tr id="start_kolibrios"><td><a href="?profile=kolibrios">KolibriOS</a> <small>1.4 MB</small></td><td>
Fast graphical OS written in Assembly</td></tr>
<tr id="start_qnx"><td><a href="?profile=qnx">QNX</a> <small>1.3 MB</small></td><td>
QNX 4.05 Demo disk (no networking)</td></tr>
<tr id="start_solos"><td><a href="?profile=solos">Solar OS</a> <small>0.3 MB</small></td><td>
Simple graphical OS</td></tr>
<tr id="start_bootchess"><td><a href="?profile=bootchess">Bootchess</a> <small>0.1 MB</small></td><td>
A tiny chess program written in the boot sector</td></tr>
</table>
<br>
<hr>
<h4>Setup</h4>
<table>
<tr>
<td width="350">CD image</td>
<td width="350"><label for="cd_image">CD image</label></td>
<td>
<input type="file" id="cd_image">
</td>
</tr>
<tr>
<td>Floppy disk image</td>
<td><label for="floppy_image">Floppy disk image</label></td>
<td> <input type="file" id="floppy_image"><br></td>
</tr>
<tr>
<td>Hard drive disk image</td>
<td><label for="hd_image">Hard drive disk image</label></td>
<td><input type="file" id="hd_image"><br></td>
</tr>
<!--
<tr>
<td>Multiboot kernel image (experimental)</td>
<td><label for="multiboot_image">Multiboot kernel image (experimental)</td>
<td><input type="file" id="multiboot_image"><br></td>
</tr>
-->
<tr>
<td colspan="2"><small><small>Disk images are not uploaded to the server</small></small><hr></td>
<td colspan="2"><small>Disk images are not uploaded to the server</small><hr></td>
</tr>
<tr>
<td>Memory size</td>
<td><label for="memory_size">Memory size</label></td>
<td>
<input id="memory_size" type="number" value="128" min="16" max="2048" step="16"> MB<br>
</td>
</tr>
<tr>
<td>Video Memory size</td>
<td><label for="video_memory_size">Video Memory size</label></td>
<td>
<input id="video_memory_size" type="number" value="8" min="1" max="128" step="1"> MB<br>
</td>
</tr>
<tr>
<td><label for="networking_proxy">Networking proxy (leave blank to disable)</label></td>
<td>
<input id="networking_proxy" type="text" value="wss://relay.widgetry.org/">
</td>
</tr>
<tr>
<td colspan="2"><hr></td>
</tr>
<tr>
<td>Boot order</td>
<td><label for="disable_audio">Disable audio</label></td>
<td>
<input id="disable_audio" type="checkbox"><br>
</td>
</tr>
<tr>
<td><label for="enable_acpi">Enable ACPI (experimental)</label></td>
<td>
<input id="enable_acpi" type="checkbox"><br>
</td>
</tr>
<tr>
<td colspan="2"><hr></td>
</tr>
<tr>
<td><label for="boot_order">Boot order</label></td>
<td>
<select id="boot_order">
<option value="213">CD / Floppy / Hard Disk</option>
@ -152,7 +188,6 @@
<pre style="display: none" id="loading"></pre>
</div>
<div id="screen_container" style="display: none">
<div id="screen"></div>
<canvas id="vga"></canvas>
@ -196,13 +231,12 @@
BPP: <span id="info_bpp">-</span><br>
<br>
Mouse: <span id="info_mouse_enabled">No</span><br>
<!-- Keyboard: <span id="info_keyboard_enabled">-</span><br> -->
<div id="description" style="display: none"></div>
<div id="description" style="display: none"><br></div>
</div>
<div id="filesystem_panel" style="display: none">
<label title="Files will appear in / of the 9p filesystem">
<label>
Send files to emulator<br>
<input type="file" id="filesystem_send_file" multiple>
</label>
@ -213,16 +247,11 @@
</label>
</div>
<br style="clear:both"><br>
<textarea cols="40" rows="12" id="serial" style="display: none">This is the serial console. Whatever you type or paste here will be sent to COM1.
In Linux it can be accessed with `cat /dev/ttyS0`
</textarea>
<br style="clear: both"><br>
<div id="terminal"></div>
<br style="clear:both">
<br style="clear: both">
<code>Version: <a href="https://github.com/copy/v86/commits/b40c8ad2">b40c8ad2</a> (Apr 23, 2020 01:04)</code>
<hr>
@ -233,7 +262,3 @@ In Linux it can be accessed with `cat /dev/ttyS0`
<a href="https://github.com/copy/v86">Project on Github</a>
&mdash;
<a href="https://github.com/copy/v86#compatibility">Compatibility</a>
&mdash;
<a href="./screenshots/">Screenshots</a>

File diff suppressed because it is too large Load diff

View file

@ -382,7 +382,7 @@ if(cluster.isMaster)
].join(" "),
filesystem: {
basefs: "images/fs.json",
baseurl: "images/arch/",
baseurl: "images/arch-nongz/",
},
expected_texts: [
"root@localhost",
@ -557,7 +557,7 @@ if(cluster.isMaster)
name: "Mobius",
skip_if_disk_image_missing: true,
timeout: 2 * 60,
fda: root_path + "/images/experimental/os/mobius-fd-release5.img",
fda: root_path + "/images/mobius-fd-release5.img",
expect_graphical_mode: true,
actions: [
{
@ -570,7 +570,7 @@ if(cluster.isMaster)
name: "Tiny Core 11 CD",
skip_if_disk_image_missing: 1,
timeout: 5 * 60,
cdrom: root_path + "/images/experimental/TinyCore-11.0.iso",
cdrom: root_path + "/images/TinyCore-11.0.iso",
expect_graphical_mode: true,
expect_mouse_registered: true,
actions: [{ on_text: " BIOS default device boot in", run: "\n", after: 5000 }],
@ -579,7 +579,7 @@ if(cluster.isMaster)
name: "Tiny Core 11 HD",
skip_if_disk_image_missing: 1,
timeout: 5 * 60,
cdrom: root_path + "/images/experimental/TinyCore-11.0.iso",
cdrom: root_path + "/images/TinyCore-11.0.iso",
expect_graphical_mode: true,
expect_mouse_registered: true,
actions: [{ on_text: " BIOS default device boot in", run: "\n", after: 5000 }],

37
v86.css
View file

@ -22,7 +22,7 @@
float: left;
}
#serial {
margin: 0px;
margin: 0;
}
#serial:focus {
outline: 1px solid rgb(229, 151, 0);
@ -52,6 +52,7 @@ body {
}
a {
color: wheat;
text-decoration: none;
}
.phone_keyboard {
width: 0;
@ -66,7 +67,7 @@ a {
overflow: hidden;
}
h4 {
margin: 0px 0px 20px 0px;
margin: 0 0 9px 0;
}
#start_emulation {
padding: 6px 18px;
@ -90,13 +91,37 @@ h4 {
margin-bottom: 10px;
outline: 1px solid #555;
}
a img {
margin: 10px;
}
.screenshots a {
#boot_options a {
text-decoration: none;
font-weight: bold;
font-size: 16px;
}
#boot_options td {
padding: 1px 7px;
}
#oses small {
font-size: 80%;
color: #ccc;
padding-left: 5px;
}
#oses tr {
cursor: pointer;
}
#oses {
border-spacing: 0;
}
#oses tr:hover {
background-color: #311;
}
#oses td:nth-child(1) {
white-space: pre;
vertical-align: top;
}
#terminal {
max-width: 1024px;
}
/* the code below was copied from xterm.css */
.xterm {
font-feature-settings: "liga" 0;