153 lines
85 KiB
HTML
153 lines
85 KiB
HTML
|
<!DOCTYPE html>
|
||
|
<!-- saved from url=(0027)http://bellard.org/jslinux/ -->
|
||
|
<html><script>(function main() {
|
||
|
// Create enabled event
|
||
|
function fireEnabledEvent() {
|
||
|
// If gli exists, then we are already present and shouldn't do anything
|
||
|
if (!window.gli) {
|
||
|
setTimeout(function () {
|
||
|
var enabledEvent = document.createEvent("Event");
|
||
|
enabledEvent.initEvent("WebGLEnabledEvent", true, true);
|
||
|
document.dispatchEvent(enabledEvent);
|
||
|
}, 0);
|
||
|
} else {
|
||
|
//console.log("WebGL Inspector already embedded on the page - disabling extension");
|
||
|
}
|
||
|
};
|
||
|
|
||
|
// Grab the path root from the extension
|
||
|
document.addEventListener("WebGLInspectorReadyEvent", function (e) {
|
||
|
var pathElement = document.getElementById("__webglpathroot");
|
||
|
if (window["gliloader"]) {
|
||
|
gliloader.pathRoot = pathElement.innerText;
|
||
|
} else {
|
||
|
// TODO: more?
|
||
|
window.gliCssUrl = pathElement.innerText + "gli.all.css";
|
||
|
}
|
||
|
}, false);
|
||
|
|
||
|
// Rewrite getContext to snoop for webgl
|
||
|
var originalGetContext = HTMLCanvasElement.prototype.getContext;
|
||
|
if (!HTMLCanvasElement.prototype.getContextRaw) {
|
||
|
HTMLCanvasElement.prototype.getContextRaw = originalGetContext;
|
||
|
}
|
||
|
HTMLCanvasElement.prototype.getContext = function () {
|
||
|
var ignoreCanvas = this.internalInspectorSurface;
|
||
|
if (ignoreCanvas) {
|
||
|
return originalGetContext.apply(this, arguments);
|
||
|
}
|
||
|
|
||
|
var result = originalGetContext.apply(this, arguments);
|
||
|
if (result == null) {
|
||
|
return null;
|
||
|
}
|
||
|
|
||
|
var contextNames = ["moz-webgl", "webkit-3d", "experimental-webgl", "webgl", "3d"];
|
||
|
var requestingWebGL = contextNames.indexOf(arguments[0]) != -1;
|
||
|
if (requestingWebGL) {
|
||
|
// Page is requesting a WebGL context!
|
||
|
fireEnabledEvent(this);
|
||
|
|
||
|
// If we are injected, inspect this context
|
||
|
if (window.gli) {
|
||
|
if (gli.host.inspectContext) {
|
||
|
// TODO: pull options from extension
|
||
|
result = gli.host.inspectContext(this, result);
|
||
|
var hostUI = new gli.host.HostUI(result);
|
||
|
result.hostUI = hostUI; // just so we can access it later for debugging
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
return result;
|
||
|
};
|
||
|
})();</script><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||
|
<title>Javascript PC Emulator</title>
|
||
|
<style>
|
||
|
.term {
|
||
|
font-family: courier,fixed,swiss,monospace,sans-serif;
|
||
|
font-size: 14px;
|
||
|
color: #f0f0f0;
|
||
|
background: #000000;
|
||
|
}
|
||
|
|
||
|
.termReverse {
|
||
|
color: #000000;
|
||
|
background: #00ff00;
|
||
|
}
|
||
|
#note {
|
||
|
font-size: 12px;
|
||
|
}
|
||
|
#copyright {
|
||
|
font-size: 10px;
|
||
|
}
|
||
|
#clipboard {
|
||
|
font-size: 12px;
|
||
|
}
|
||
|
</style>
|
||
|
</head>
|
||
|
<body onload="start()">
|
||
|
<table border="0">
|
||
|
<tbody><tr valign="top"><td>
|
||
|
<script type="text/javascript" src="./jslinux_files/term.js"></script>
|
||
|
<script type="text/javascript">
|
||
|
<!--
|
||
|
function include(filename)
|
||
|
{
|
||
|
document.write('<script type="text/javascript" src="' + filename +
|
||
|
'"><' + '/script>');
|
||
|
}
|
||
|
function test_typed_arrays()
|
||
|
{
|
||
|
return (window.Uint8Array &&
|
||
|
window.Uint16Array &&
|
||
|
window.Int32Array &&
|
||
|
window.ArrayBuffer);
|
||
|
}
|
||
|
if (test_typed_arrays()) {
|
||
|
include("cpux86-ta.js");
|
||
|
} else {
|
||
|
include("cpux86.js");
|
||
|
document.write('<canvas id="dummy_canvas" width="1" height="1"></canvas>');
|
||
|
}
|
||
|
-->
|
||
|
</script><script type="text/javascript" src="./jslinux_files/cpux86-ta.js"></script>
|
||
|
<script type="text/javascript" src="./jslinux_files/jslinux.js"></script><table border="0" cellspacing="0" cellpadding="0">
|
||
|
<tbody><tr><td class="term" id="tline0">TCP bind hash table entries: 512 (order: -1, 2048 bytes) </td></tr>
|
||
|
<tr><td class="term" id="tline1">TCP: Hash tables configured (established 1024 bind 512) </td></tr>
|
||
|
<tr><td class="term" id="tline2">TCP reno registered </td></tr>
|
||
|
<tr><td class="term" id="tline3">checking if image is initramfs...it isn't (bad gzip magic numbers); looks like a</td></tr>
|
||
|
<tr><td class="term" id="tline4">n initrd </td></tr>
|
||
|
<tr><td class="term" id="tline5">Freeing initrd memory: 2048k freed </td></tr>
|
||
|
<tr><td class="term" id="tline6">Total HugeTLB memory allocated, 0 </td></tr>
|
||
|
<tr><td class="term" id="tline7">io scheduler noop registered </td></tr>
|
||
|
<tr><td class="term" id="tline8">io scheduler anticipatory registered </td></tr>
|
||
|
<tr><td class="term" id="tline9">io scheduler deadline registered </td></tr>
|
||
|
<tr><td class="term" id="tline10">io scheduler cfq registered (default) </td></tr>
|
||
|
<tr><td class="term" id="tline11">Real Time Clock Driver v1.12ac </td></tr>
|
||
|
<tr><td class="term" id="tline12">JS clipboard: I/O at 0x03c0 </td></tr>
|
||
|
<tr><td class="term" id="tline13">Serial: 8250/16550 driver $Revision: 1.90 $ 4 ports, IRQ sharing disabled </td></tr>
|
||
|
<tr><td class="term" id="tline14">serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16450 </td></tr>
|
||
|
<tr><td class="term" id="tline15">RAMDISK driver initialized: 16 RAM disks of 4096K size 1024 blocksize </td></tr>
|
||
|
<tr><td class="term" id="tline16">loop: loaded (max 8 devices) </td></tr>
|
||
|
<tr><td class="term" id="tline17">TCP cubic registered </td></tr>
|
||
|
<tr><td class="term" id="tline18">NET: Registered protocol family 1 </td></tr>
|
||
|
<tr><td class="term" id="tline19">NET: Registered protocol family 17 </td></tr>
|
||
|
<tr><td class="term" id="tline20">Using IPI Shortcut mode </td></tr>
|
||
|
<tr><td class="term" id="tline21">Time: pit clocksource has been installed. </td></tr>
|
||
|
<tr><td class="term" id="tline22">RAMDISK: ext2 filesystem found at block 0 </td></tr>
|
||
|
<tr><td class="term" id="tline23">RAMDISK: Loading 2048KiB [1 disk] into ram disk... done. </td></tr>
|
||
|
<tr><td class="term" id="tline24">EXT2-fs warning: maximal mount count reached, running e2fsck is recommended </td></tr>
|
||
|
<tr><td class="term" id="tline25">VFS: Mounted root (ext2 filesystem). </td></tr>
|
||
|
<tr><td class="term" id="tline26">Freeing unused kernel memory: 124k freed </td></tr>
|
||
|
<tr><td class="term" id="tline27">Booted in 7.363 s </td></tr>
|
||
|
<tr><td class="term" id="tline28">Welcome to JS/Linux </td></tr>
|
||
|
<tr><td class="term" id="tline29">~ # <span class="termReverse"> </span> </td></tr>
|
||
|
</tbody></table>
|
||
|
|
||
|
<div id="copyright">© 2011 Fabrice Bellard - <a href="http://bellard.org/jslinux/news.html">News</a> - <a href="http://bellard.org/jslinux/faq.html">FAQ</a> - <a href="http://bellard.org/jslinux/tech.html">Technical notes</a></div>
|
||
|
</td><td><input type="button" value="Clear clipboard" onclick="clear_clipboard();"><br><textarea row="4" cols="16" id="text_clipboard"></textarea>
|
||
|
</td></tr></tbody></table>
|
||
|
|
||
|
|
||
|
</body><style type="text/css" style="display: none !important; ">/*This block of style rules is inserted by AdBlock*/#FFN_Banner_Holder,#FFN_imBox_Container,#RadAd_Skyscraper,#ab_pointer,#adxLeaderboard,#bbccom_leaderboard,#center_banner,#dir_ads_site,#flashad,#footer_adcode,#hbBHeaderSpon,#hiddenHeaderSpon,#navbar_adcode,#p360-format-box,#rightAds,#rightcolumn_adcode,#rm_container,#tads table[align="center"][width="100%"],#tooltipbox[class^="itxt"],#top-advertising,#topMPU,#tracker_advertorial,#ve_threesixty_swf[name="ve_threesixty_swf"],.ad-now,.ad_marquee,.dfpad,.kLink span[id^="preLoadWrap"].preLoadWrap,.prWrap,[id^="ad_block"],[id^="adbrite"],[id^="dclkAds"],[id^="ew"][id$="_bannerDiv"],[id^="konaLayer"],[src*="sixsigmatraffic.com"],a[href^="http://ad."][href*=".doubleclick.net/"],a[href^="http://adserver.adpredictive.com"],div[class^="dms_ad_IDS"],div[id^="adKontekst_"],div[id^="google_ads_div"],div[id^="kona_"][id$="_wrapper"],div[id^="sponsorads"],div[id^="y5_direct"],embed[flashvars*="AdID"],iframe[id^="dapIfM"],iframe[id^="etarget"][id$="banner"],iframe[name^="AdBrite"],iframe[name^="google_ads_"],img[src^="http://cdn.adnxs.com"],script[src="//pagead2.googleadservices.com/pagead/show_ads.js"] + ins > ins > iframe,script[src="http://pagead2.googlesyndication.com/pagead/show_ads.js"] + ins > ins > iframe,table[cellpadding="0"][width="100%"] > * > * > * > div[id^="tpa"],#A9AdsMiddleBoxTop,#A9AdsOutOfStockWidgetTop,#A9AdsServicesWidgetTop,#ADNETwallBanner1,#ADNETwallBanner2,#ADSLOT_1,#ADSLOT_2,#ADSLOT_3,#ADSLOT_4,#ADSLOT_SKYSCRAPER,#ADVERTISE_HERE_ROW,#AD_CONTROL_22,#AD_CONTROL_28,#AD_CONTROL_29,#AD_CONTROL_8,#AD_ROW,#AD_Top,#AD_newsblock,#ADgoogle_newsblock,#ADsmallWrapper,#Ad160x600,#Ad300x250,#Ad3Left,#Ad3Right,#Ad3TextAd,#AdArea,#AdBanner_F1,#AdBar,#AdBar1,#AdBox2,#AdContainer,#AdContainerTop,#AdContentModule_F,#AdDetails_GoogleLinksBottom,#AdDetails_InsureWith,#AdFrame4,#AdHeader,#AdLeaderboardBottom,#AdLeaderboardTop,#AdMiddle,#AdMobileLink,#AdPopUp,#AdRectangle,#AdSenseDiv,#AdSenseResults1_adSenseSponsorDiv,#AdServer,#AdShowcase_F1,#AdSky23,#AdSkyscraper,#AdSpacing,#AdSponsor_SF,#AdSubsectionShowcase_F1,#AdTargetControl1_iframe,#AdTop,#AdTopLeader,#Ad_BelowContent,#Ad_Block,#Ad_Center1,#Ad_Right1,#Ad_RightBottom,#Ad_RightTop,#Ad_Top,#Adbanner,#Adrectangle,#AdsContent,#AdsRight,#AdsWrap,#Ads_BA_CAD,#Ads_BA_CAD2,#Ads_BA_CAD_box,#Ads_BA_SKY,#Ads_CAD,#Ads_OV_BS,#Ads_Special,#AdvertMPU23b,#AdvertPanel,#AdvertiseFrame,#Advertisement,#Advertisements,#Advertorial,#Advertorials,#AdvertsBottom,#AdvertsBottomR,#BANNER_160x600,#BANNER_300x250,#BANNER_728x90,#BannerAd,#BannerAdvert,#BigBoxAd,#BodyAd,#BotAd,#Bottom468x60AD,#ButtonAd,#ClickPop_LayerPop_Container,#CompanyDetailsNarrowGoogleAdsPresentationControl,#CompanyDetailsWideGoogleAdsPresentationControl,#ContentAd,#ContentAd1,#ContentAd2,#ContentAdPlaceHolder1,#ContentAdPlaceHolder2,#ContentAdXXL,#ContentPolepositionAds_Result,#CornerAd,#DartAd300x250,#DivAdEggHeadCafeTopBanner,#FIN_videoplayer_300x250ad,#FooterAd,#FooterAdContainer,#GOOGLE_ADS_47,#GoogleAd1,#GoogleAd2,#GoogleAd3,#GoogleAdsPlaceHolder,#GoogleAdsPresentationControl,#GoogleAdsense,#Google_Adsense_Main,#HEADERAD,#HOME_TOP_RIGHT_BOXAD,#HeaderAD,#HeaderAdsBlock,#HeaderAdsBlockFront,#HeaderBannerAdSpacer,#HeaderTextAd,#HeroAd,#HomeAd1,#HouseAd,#ID_Ad_Sky,#JobsearchResultsAds,#Journal_Ad_125,#Journal_Ad_300,#JuxtapozAds,#KH-contentAd,#LargeRectangleAd,#LeftAd,#LeftAd1,#LeftAdF1,#LeftAdF2,#LftAd,#LoungeAdsDiv,#LowerContentAd,#MPUAdSpace,#MainSponsoredLinks,#Meebo\:AdElement\.Root,#Nightly_adContainer,#NormalAdModule,#OpenXAds,#OverrideAdArea,#PREFOOTER_LEFT_BOXAD,#PREFOOTER_RIGHT_BOXAD,#PageLeaderAd,#PreRollAd,#RelevantAds,#RgtAd1,#RightAd,#RightBottom300x250AD,#RightNavTopAdSpot,#RightSponsoredAd,#SectionAd300-250,#SectionSponsorAd,#SideAdMpu,#SidebarAdContainer,#SkyAd,#SpecialAds,#SponsoredAd,#SponsoredLinks,#TL_footer_advertisement,#TOP_ADROW,#TOP_RIGHT_BOXAD,#Tadspacefoot,#Tadspacehead,#Tadspacemrec,#TextLinkAds,#ThreadAd,#Top468x60AD,#TopAd,#TopAdBox,#TopAdContainer,#TopAdDiv,#TopAdPos,#TopBannerAd,#VM-
|