SYMBOL INDEX (243 symbols across 35 files) FILE: forge.config.js constant FLAGS (line 9) | const FLAGS = { FILE: src/cache.ts function clearCaches (line 3) | async function clearCaches() { function clearCache (line 8) | async function clearCache() { function clearStorageData (line 14) | async function clearStorageData() { FILE: src/constants.ts constant IMAGES_PATH (line 3) | const IMAGES_PATH = path.join(__dirname, "../../images"); constant CONSTANTS (line 5) | const CONSTANTS = { constant IPC_COMMANDS (line 12) | const IPC_COMMANDS = { FILE: src/main/about-panel.ts function setupAboutPanel (line 8) | function setupAboutPanel(): void { FILE: src/main/fileserver/encoding.ts function encode (line 1) | function encode(text: string) { function getEncoding (line 13) | function getEncoding() { FILE: src/main/fileserver/fileserver.ts type FileEntry (line 8) | interface FileEntry { constant APP_INTERCEPT (line 14) | const APP_INTERCEPT = 'http://windows95/'; constant MY_COMPUTER_INTERCEPT (line 15) | const MY_COMPUTER_INTERCEPT = 'http://my-computer/'; function setupFileServer (line 22) | function setupFileServer() { function getFilePath (line 107) | function getFilePath(url: string) { function serveFile (line 126) | async function serveFile(fullPath: string): Promise { FILE: src/main/fileserver/hide-files.ts constant FILES_TO_HIDE_ON_DARWIN (line 5) | const FILES_TO_HIDE_ON_DARWIN: string[] = [ constant FILES_TO_HIDE_ON_WINDOWS (line 19) | const FILES_TO_HIDE_ON_WINDOWS: string[] = [ constant FILES_TO_HIDE_ON_LINUX (line 27) | const FILES_TO_HIDE_ON_LINUX: string[] = []; function shouldHideFile (line 29) | function shouldHideFile(file: FileEntry) { function isHiddenFile (line 41) | function isHiddenFile(file: FileEntry) { function isSystemHiddenFile (line 49) | function isSystemHiddenFile(file: FileEntry) { function getFilesToHide (line 55) | function getFilesToHide() { FILE: src/main/fileserver/page-directory-listing.ts function generateDirectoryListing (line 10) | function generateDirectoryListing(currentPath: string, files: string[]):... function getParentFolderLinkHtml (line 61) | function getParentFolderLinkHtml(parentPath: string) { function getDesktopLinkHtml (line 70) | function getDesktopLinkHtml() { function getDownloadsLinkHtml (line 81) | function getDownloadsLinkHtml() { function getIconHtml (line 92) | function getIconHtml(icon: string) { function getFileLiHtml (line 96) | function getFileLiHtml(entry: FileEntry) { function getDisplayName (line 110) | function getDisplayName(entry: FileEntry) { function formatFileSize (line 114) | function formatFileSize(bytes: number): string { FILE: src/main/fileserver/page-error.ts function generateErrorPage (line 4) | function generateErrorPage(errorMessage: string, requestedPath: string):... FILE: src/main/ipc.ts function setupIpcListeners (line 6) | function setupIpcListeners() { FILE: src/main/logging.ts function log (line 1) | function log(message: string, ...args: unknown[]) { FILE: src/main/main.ts function onReady (line 17) | async function onReady() { function onBeforeQuit (line 34) | function onBeforeQuit() { function onWindowsAllClosed (line 42) | function onWindowsAllClosed() { function main (line 56) | function main() { FILE: src/main/menu.ts constant LINKS (line 8) | const LINKS = { function setupMenu (line 15) | async function setupMenu() { function send (line 26) | function send(cmd: string) { function createMenu (line 37) | async function createMenu({ isRunning } = { isRunning: false }) { FILE: src/main/session.ts function setupSession (line 3) | function setupSession() { FILE: src/main/settings.ts type Settings (line 5) | interface Settings { constant DEFAULT_SETTINGS (line 11) | const DEFAULT_SETTINGS: Settings = { class SettingsManager (line 17) | class SettingsManager { method constructor (line 21) | constructor() { method load (line 26) | private load(): Settings { method save (line 44) | private save(): void { method get (line 52) | get(key: keyof Settings): any { method set (line 56) | set(key: keyof Settings, value: any): void { method delete (line 61) | delete(key: keyof Settings): void { method clear (line 66) | clear(): void { FILE: src/main/squirrel.ts function shouldQuit (line 1) | function shouldQuit() { FILE: src/main/update.ts function setupUpdates (line 3) | function setupUpdates() { FILE: src/main/windows.ts function getOrCreateWindow (line 5) | function getOrCreateWindow(): BrowserWindow { function handleNavigation (line 35) | function handleNavigation(event: Electron.Event, url: string) { FILE: src/renderer/app.tsx type Win95Window (line 1) | interface Win95Window extends Window { class App (line 16) | class App { method setup (line 21) | public async setup(): Promise { FILE: src/renderer/card-settings.tsx type CardSettingsProps (line 5) | interface CardSettingsProps { type CardSettingsState (line 13) | interface CardSettingsState { class CardSettings (line 17) | class CardSettings extends React.Component< method constructor (line 21) | constructor(props: CardSettingsProps) { method render (line 33) | public render() { method renderCdrom (line 55) | public renderCdrom() { method renderFloppy (line 93) | public renderFloppy() { method renderState (line 140) | public renderState() { method onChangeFloppy (line 180) | private onChangeFloppy(event: React.ChangeEvent) { method onChangeCdrom (line 198) | private onChangeCdrom(event: React.ChangeEvent) { method onResetState (line 214) | private async onResetState() { FILE: src/renderer/card-start.tsx type CardStartProps (line 3) | interface CardStartProps { class CardStart (line 7) | class CardStart extends React.Component { method render (line 8) | public render() { FILE: src/renderer/emulator-info.tsx type EmulatorInfoProps (line 3) | interface EmulatorInfoProps { type EmulatorInfoState (line 8) | interface EmulatorInfoState { class EmulatorInfo (line 15) | class EmulatorInfo extends React.Component< method constructor (line 21) | constructor(props: EmulatorInfoProps) { method render (line 36) | public render() { method componentWillUnmount (line 49) | public componentWillUnmount() { method componentDidUpdate (line 59) | public componentDidUpdate(prevProps: EmulatorInfoProps) { method installListeners (line 72) | private installListeners() { method uninstallListeners (line 102) | private uninstallListeners() { method onIDEReadStart (line 129) | private onIDEReadStart() { method onIDEReadWriteEnd (line 136) | private onIDEReadWriteEnd() { method requestIdle (line 145) | private requestIdle(fn: () => void) { method cpuCount (line 152) | private cpuCount() { FILE: src/renderer/emulator.tsx type EmulatorState (line 18) | interface EmulatorState { class Emulator (line 30) | class Emulator extends React.Component<{}, EmulatorState> { method constructor (line 34) | constructor(props: {}) { method setupInputListeners (line 62) | public setupInputListeners() { method setupUnloadListeners (line 93) | public setupUnloadListeners() { method setupIpcListeners (line 123) | public setupIpcListeners() { method renderUI (line 183) | public renderUI() { method render (line 219) | public render() { method renderInfo (line 235) | public renderInfo() { method bootFromScratch (line 253) | public bootFromScratch() { method showDiskImage (line 261) | public showDiskImage() { method startEmulator (line 271) | private async startEmulator() { method restartEmulator (line 346) | private restartEmulator() { method stopEmulator (line 358) | private async stopEmulator() { method resetEmulator (line 380) | private async resetEmulator() { method saveState (line 393) | private async saveState(): Promise { method restoreState (line 415) | private async restoreState() { method getState (line 446) | private async getState(): Promise { method unlockMouse (line 461) | private unlockMouse() { method lockMouse (line 473) | private lockMouse() { method setScale (line 492) | private setScale(target: number) { method sendKeys (line 507) | private sendKeys(codes: Array) { method resetCanvas (line 523) | private resetCanvas() { FILE: src/renderer/lib/libv86.js function aa (line 1) | function aa(a,b){function c(y){y=y.toString(16);return"#"+"0".repeat(6-y... function ca (line 17) | function ca(a,b,c){this.fs=a;this.bus=c;this.configspace_tagname=[104,11... function C (line 42) | function C(a){this.ports=[];this.cpu=a;for(var b=0;65536>b;b++)this.port... function f (line 45) | function f(){return c.call(this)|d.call(this)<<8} function h (line 45) | function h(){return e.call(this)|g.call(this)<<8} function l (line 45) | function l(){return c.call(this)|d.call(this)<<8|e.call(this)<<16|g.call... function f (line 46) | function f(m){c.call(this,m&255);d.call(this,m>>8&255)} function h (line 46) | function h(m){e.call(this,m&255);g.call(this,m>>8&255)} function l (line 46) | function l(m){c.call(this,m&255);d.call(this,m>>8&255);e.call(this,m>>16... function D (line 53) | function D(a,b){this.stopping=this.running=!1;this.idle=!0;this.tick_cou... function a (line 55) | function a(){let b;globalThis.onmessage=function(c){const d=c.data.t;b=b... function B (line 58) | function B(a,b){a=a?a.toString(16):"";return"0x"+k.pad0(a.toUpperCase(),... function la (line 61) | function la(a){var b=new Uint8Array(a),c,d;this.length=0;this.push=funct... function oa (line 61) | function oa(a){this.size=a;this.data=new Float32Array(a);this.length=thi... function qa (line 65) | function qa(a,b,c){function d(){const l=c||0;setTimeout(()=>{qa(a,b,l+1)... function pa (line 68) | function pa(a,b){const c=require("fs");b.range?c.open(a,"r",(d,e)=>{if(d... function a (line 69) | function a(f){this.buffer=f;this.byteLength=f.byteLength;this.onprogress... function b (line 69) | function b(f,h,l){this.filename=f;this.byteLength=h;this.block_cache=new... function c (line 69) | function c(f,h,l,m,n){const p=f.match(/\.[^\.]+(\.zst)?$/);this.extensio... function d (line 70) | function d(f){this.file=f;this.byteLength=f.size;1073741824r)throw new Ha("Invalid length: "... function c (line 337) | function c(p){p=(new TextDecoder).decode(p);return JSON.parse(p)} function Na (line 340) | function Na(a,b,c){a[0]===b[0]&&a[1]===b[1]&&a[2]===b[2]&&a[3]===b[3]&&a... function Pa (line 342) | function Pa(a){return[a[0].toString(16).padStart(2,"0"),a[1].toString(16... function Qa (line 343) | function Qa(a,b,c,d,e){this.cpu=a;this.pci=a.devices.pci;this.id=e||0;th... function O (line 362) | function O(a,b){this.cpu=a;this.bus=b;this.write_buffer=new la(64);this.... function U (line 382) | function U(a,b,c){c||(c=O.prototype.dsp_default_handler);for(var d=0;dc;c++)b.push(a+c);return b} function $a (line 394) | function $a(a,b){b||(b=O.prototype.mixer_default_read);Ta[a]=b} function ab (line 394) | function ab(a,b){b||(b=O.prototype.mixer_default_write);Ua[a]=b} function bb (line 394) | function bb(a,b,c){Va[a]=1;Ta[a]=function(){return this.mixer_registers[... function cb (line 395) | function cb(a,b,c){Ta[a]=O.prototype.mixer_default_read;Ua[a]=function(d... function db (line 399) | function db(a,b){b||(b=O.prototype.fm_default_write);for(var c=0;cc)*c+(b<=a&&a<=c)*a} function da (line 406) | function da(a,b){this.cpu=a;this.pci=a.devices.pci;this.device_id=b.devi... function V (line 425) | function V(a,b,c){this.cpu=a;this.virtio=b;this.size_supported=this.size... function lb (line 434) | function lb(a,b){this.cpu=a.cpu;this.virtio=a.virtio;this.head_idx=b;thi... function mb (line 437) | function mb(a,b){this.bus=b;this.rows=25;this.cols=80;this.ports=4;b=[{s... function nb (line 443) | function nb(a,b,c){this.bus=b;this.id=a.devices.net?1:0;this.status=this... function pb (line 449) | function pb(a,b){this.bus=b;this.zeroed=this.fp_cmd=this.actual=this.num... function rb (line 454) | function rb(){this.listeners={};this.pair=void 0} function ta (line 455) | function ta(){} function ua (line 455) | function ua(){} function E (line 455) | function E(a,b,c){this.stop_idling=c;this.wm=b;this.wasm_patch();this.cr... function g (line 484) | function g(l){return new Uint8Array(Int32Array.of(l).buffer)} function f (line 484) | function f(l){return l>>8|l<<8&65280} function h (line 484) | function h(l){return l<<24|l<<8&16711680|l>>8&65280|l>>>24} function p (line 496) | function p(q){B(n);B(q,2);q?this.device_raise_irq(n): function Kb (line 505) | function Kb(a){return a.map(function(b){var c=Object.keys(b);console.ass... function Cb (line 506) | function Cb(a,b){const c={};let d=0;for(const e of b)b=e.get.call(a,d,!0... function Eb (line 506) | function Eb(a,b,c){const d=[];let e=0;for(var g=0;ga[b].toString(16)).map(b=>1===... function rc (line 593) | function rc(a){return a[0]<<24|a[1]<<16|a[2]<<8|a[3]} class sc (line 594) | class sc{constructor(a,b){a=Math.min(a,16);this.maximum_capacity=b?Math.... method constructor (line 594) | constructor(a,b){a=Math.min(a,16);this.maximum_capacity=b?Math.max(b,a... method write (line 594) | write(a){const b=a.length;var c=this.length+b;let d=this.buffer.length... method peek (line 595) | peek(a){const b=Math.min(this.length,a.length);if(b){const e=this.buff... method remove (line 595) | remove(a){a>this.length&&(a=this.length);a&&(this.tail=(this.tail+a)%t... function tc (line 596) | function tc(){const a=new Uint8Array(1518),b=a.buffer,c=a.byteOffset;ret... function uc (line 596) | function uc(a,b,c,d){d.eth_frame.set(b,c.byteOffset+a);return b.length} function vc (line 597) | function vc(a,b,c,d){const e=c.byteOffset+(a&-2);d=d.eth_frame;for(c=c.b... function wc (line 598) | function wc(a,b){a.eth_frame.fill(0);var c=a.eth_frame,d=c.subarray,e=a.... function xc (line 605) | function xc(a,b){fetch(`https://${b.doh_server||"cloudflare-dns.com"}/dn... function yc (line 606) | function yc(a,b){let c={};c.eth={ethertype:2048,src:b.router_mac,dest:a.... function zc (line 608) | function zc(a,b){let c={};var d=(new DataView(a.buffer,a.byteOffset,a.by... function Ac (line 618) | function Ac(a,b){function c(){let m=[],n;do n=d.getUint8(h),m.push((new ... function Bc (line 620) | function Bc(a,b){const c=b.vm_ip.join("."),d=b.router_ip.join("."),e=163... function Cc (line 621) | function Cc(){this.state="closed";this.net=null;this.send_buffer=new sc(... function ec (line 631) | function ec(a,b,c){this.register_ws(a);this.last_stream=1;this.connectio... function cc (line 640) | function cc(a,b){b=b||{};this.bus=a;this.id=b.id||0;this.router_mac=new ... function Dc (line 643) | async function Dc(a){this.read=this.read||"";if((this.read+=(new TextDec... function gc (line 654) | function gc(){this.filedata=new Map} function hc (line 654) | function hc(a,b){b.endsWith("/")||(b+="/");this.storage=a;this.baseurl=b} function Z (line 655) | function Z(a,b){this.inodes=[];this.events=[];this.storage=a;this.qidcou... function Fc (line 663) | function Fc(a){this.direntries=new Map;this.minor=this.major=this.mtime=... function Ic (line 696) | function Ic(a){this.fs=a;this.backtrack=new Map} function Gc (line 700) | function Gc(){this.type=2;this.start=0;this.length=Infinity;this.proc_id... FILE: src/renderer/start-menu.tsx type StartMenuProps (line 3) | interface StartMenuProps { class StartMenu (line 7) | class StartMenu extends React.Component { method constructor (line 8) | constructor(props: StartMenuProps) { method render (line 14) | public render() { method navigate (line 36) | private navigate(event: React.SyntheticEvent) { FILE: src/renderer/utils/get-state-path.ts function getStatePath (line 6) | async function getStatePath(): Promise { FILE: src/renderer/utils/reset-state.ts function resetState (line 4) | async function resetState() { FILE: src/utils/devmode.ts function isDevMode (line 6) | function isDevMode() { FILE: src/utils/disk-image-size.ts function getDiskImageSize (line 10) | async function getDiskImageSize(path: string) { FILE: tools/check-links.js constant LINK_RGX (line 5) | const LINK_RGX = /(http|ftp|https):\/\/([\w_-]+(?:(?:\.[\w_-]+)+))([\w.,... function main (line 7) | async function main() { FILE: tools/parcel-build.js function copyLib (line 7) | async function copyLib() { function compileParcel (line 31) | async function compileParcel (options = {}) { FILE: tools/parcel-watch.js function watchParcel (line 3) | async function watchParcel () { FILE: tools/resedit.js function main (line 10) | async function main() { FILE: tools/run-bin.js function run (line 6) | async function run (name, bin, args = []) { FILE: tools/tsc.js function compileTypeScript (line 5) | async function compileTypeScript () {