js-dos 8.1.5 → 8.1.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/emulators/emulators.js +2 -0
- package/dist/emulators/emulators.js.map +1 -0
- package/dist/emulators/types/build.d.ts +28 -0
- package/dist/emulators/types/dos/bundle/dos-bundle.d.ts +20 -0
- package/dist/emulators/types/dos/dosbox/ts/direct.d.ts +3 -0
- package/dist/emulators/types/dos/dosbox/ts/worker.d.ts +3 -0
- package/dist/emulators/types/emulators.d.ts +76 -0
- package/dist/emulators/types/http.d.ts +9 -0
- package/dist/emulators/types/impl/ci-impl.d.ts +29 -0
- package/dist/emulators/types/impl/emulators-impl.d.ts +26 -0
- package/dist/emulators/types/impl/modules.d.ts +38 -0
- package/dist/emulators/types/libzip/libzip.d.ts +16 -0
- package/dist/emulators/types/protocol/messages-queue.d.ts +8 -0
- package/dist/emulators/types/protocol/protocol.d.ts +128 -0
- package/dist/emulators/wdosbox-x.js +55 -0
- package/dist/emulators/wdosbox-x.js.symbols +8760 -0
- package/dist/emulators/wdosbox-x.wasm +0 -0
- package/dist/emulators/wdosbox.js +55 -0
- package/dist/emulators/wdosbox.js.symbols +3001 -0
- package/dist/emulators/wdosbox.wasm +0 -0
- package/dist/emulators/wlibzip.js +21 -0
- package/dist/emulators/wlibzip.js.symbols +268 -0
- package/dist/emulators/wlibzip.wasm +0 -0
- package/dist/js-dos.css +1 -0
- package/dist/js-dos.js +22 -0
- package/dist/js-dos.js.map +1 -0
- package/package.json +1 -1
- package/release.zip +0 -0
- package/.eslintrc.json +0 -43
- package/.github/workflows/build.yml +0 -51
- package/.gitmodules +0 -4
- package/index.html +0 -110
- package/postcss.config.cjs +0 -8
- package/src/app.css +0 -14
- package/src/base.css +0 -10
- package/src/components/checkbox.tsx +0 -41
- package/src/components/close-button.tsx +0 -17
- package/src/components/components.css +0 -28
- package/src/components/dos-option-checkbox.tsx +0 -94
- package/src/components/dos-option-select.tsx +0 -108
- package/src/components/dos-option-slider.tsx +0 -35
- package/src/components/error.tsx +0 -16
- package/src/components/loading.tsx +0 -26
- package/src/components/lock.tsx +0 -10
- package/src/components/select.tsx +0 -33
- package/src/components/slider.tsx +0 -69
- package/src/download-file.ts +0 -18
- package/src/frame/account-frame.tsx +0 -156
- package/src/frame/editor/defaults.ts +0 -419
- package/src/frame/editor/editor-conf-frame.tsx +0 -227
- package/src/frame/editor/editor-frame.css +0 -55
- package/src/frame/editor/editor-fs-frame.tsx +0 -314
- package/src/frame/fat-drives-frame.tsx +0 -199
- package/src/frame/frame.css +0 -119
- package/src/frame/frame.tsx +0 -34
- package/src/frame/image-rendering-frame.tsx +0 -8
- package/src/frame/network-frame.tsx +0 -157
- package/src/frame/quick-save-frame.tsx +0 -98
- package/src/frame/settings-frame.tsx +0 -14
- package/src/frame/stats-frame.tsx +0 -87
- package/src/host/bundle-storage.ts +0 -91
- package/src/host/fullscreen.ts +0 -35
- package/src/host/lcache.ts +0 -203
- package/src/host/lstorage.ts +0 -156
- package/src/i18n.ts +0 -185
- package/src/index.css +0 -7
- package/src/load.ts +0 -132
- package/src/login/login.css +0 -9
- package/src/login/login.tsx +0 -77
- package/src/main.tsx +0 -197
- package/src/public/types.ts +0 -45
- package/src/sidebar/account-button.tsx +0 -33
- package/src/sidebar/cloud-save-button.tsx +0 -89
- package/src/sidebar/diskette-icon.tsx +0 -14
- package/src/sidebar/fullscreen-button.tsx +0 -44
- package/src/sidebar/network-button.tsx +0 -39
- package/src/sidebar/sidebar-button.tsx +0 -244
- package/src/sidebar/sidebar.css +0 -47
- package/src/sidebar/sidebar.tsx +0 -30
- package/src/sockdrive/LICENSE +0 -674
- package/src/sockdrive/README.md +0 -45
- package/src/sockdrive/include/sockdrive.h +0 -23
- package/src/sockdrive/js/.eslintrc.json +0 -43
- package/src/sockdrive/js/package.json +0 -29
- package/src/sockdrive/js/src/fatfs/chains.js +0 -318
- package/src/sockdrive/js/src/fatfs/dir.js +0 -385
- package/src/sockdrive/js/src/fatfs/helpers.js +0 -210
- package/src/sockdrive/js/src/fatfs/index.js +0 -606
- package/src/sockdrive/js/src/fatfs/structs.js +0 -255
- package/src/sockdrive/js/src/fatfs/vol.js +0 -166
- package/src/sockdrive/js/src/sockdrive/cache.ts +0 -56
- package/src/sockdrive/js/src/sockdrive/drive.ts +0 -471
- package/src/sockdrive/js/src/sockdrive/lru.ts +0 -221
- package/src/sockdrive/js/src/sockdrive/types.ts +0 -14
- package/src/sockdrive/js/src/sockdrive-fat.d.ts +0 -64
- package/src/sockdrive/js/src/sockdrive-fat.ts +0 -226
- package/src/sockdrive/js/src/sockdrive-native.ts +0 -100
- package/src/sockdrive/js/src/test/test.ts +0 -289
- package/src/sockdrive/js/tsconfig.json +0 -11
- package/src/sockdrive/js/webpack.config.js +0 -68
- package/src/sockdrive/js/yarn.lock +0 -1808
- package/src/store/auth.ts +0 -115
- package/src/store/dos.ts +0 -305
- package/src/store/editor.ts +0 -61
- package/src/store/init.ts +0 -48
- package/src/store/storage.ts +0 -32
- package/src/store/ui.ts +0 -191
- package/src/store.tsx +0 -116
- package/src/ui.tsx +0 -140
- package/src/v8/changes.ts +0 -56
- package/src/v8/config.ts +0 -20
- package/src/v8/subscriptions.ts +0 -62
- package/src/vite-env.d.ts +0 -5
- package/src/window/dos/controls/keyboard.ts +0 -32
- package/src/window/dos/controls/keys.ts +0 -331
- package/src/window/dos/controls/mouse/mount.ts +0 -99
- package/src/window/dos/controls/mouse/mouse-locked.ts +0 -51
- package/src/window/dos/controls/mouse/mouse-not-locked.ts +0 -84
- package/src/window/dos/controls/mouse/mouse-swipe.ts +0 -57
- package/src/window/dos/controls/mouse/pointer.ts +0 -85
- package/src/window/dos/controls/mouse.ts +0 -21
- package/src/window/dos/dos-dhry2.tsx +0 -191
- package/src/window/dos/dos-runtime.tsx +0 -216
- package/src/window/dos/dos-window.tsx +0 -91
- package/src/window/dos/render/canvas.ts +0 -65
- package/src/window/dos/render/resize.ts +0 -31
- package/src/window/dos/render/webgl.ts +0 -173
- package/src/window/dos/sound/audio-node.ts +0 -148
- package/src/window/error-window.tsx +0 -9
- package/src/window/loading-window.tsx +0 -54
- package/src/window/prerun-window.tsx +0 -121
- package/src/window/select-window.tsx +0 -118
- package/src/window/window.css +0 -78
- package/src/window/window.tsx +0 -49
- package/src/ws/ws-sockdrive.ts +0 -123
- package/src/ws/ws-transport-layer.ts +0 -468
- package/tailwind.config.cjs +0 -48
- package/tsconfig.json +0 -32
- package/tsconfig.node.json +0 -9
- package/vite.config.ts +0 -25
package/src/window/window.css
DELETED
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
.jsdos-rso {
|
|
2
|
-
.window {
|
|
3
|
-
@apply overflow-hidden;
|
|
4
|
-
|
|
5
|
-
.background-image {
|
|
6
|
-
@apply absolute left-12 right-0 h-full pointer-events-none;
|
|
7
|
-
background-position: center;
|
|
8
|
-
background-size: cover;
|
|
9
|
-
background-repeat: no-repeat;
|
|
10
|
-
&::after {
|
|
11
|
-
position: relative;
|
|
12
|
-
content: "";
|
|
13
|
-
display: block;
|
|
14
|
-
width: 100%;
|
|
15
|
-
height: 100%;
|
|
16
|
-
background-color: hsl(var(--b1)/var(--tw-bg-opacity));
|
|
17
|
-
opacity: 0.75;
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
.play-button {
|
|
22
|
-
&:hover {
|
|
23
|
-
color: hsl(var(--af));
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
.dhry2-window {
|
|
28
|
-
@apply absolute left-0 top-0 w-full h-full flex flex-col items-center justify-center;
|
|
29
|
-
@apply bg-black bg-opacity-80 text-2xl px-8 py-4 text-white;
|
|
30
|
-
|
|
31
|
-
.title {
|
|
32
|
-
@apply mb-4 text-center text-4xl;
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
.backend {
|
|
36
|
-
@apply mb-8 text-center;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
.results {
|
|
40
|
-
@apply grid grid-cols-2 gap-4;
|
|
41
|
-
|
|
42
|
-
div:nth-child(even) {
|
|
43
|
-
@apply text-green-300;
|
|
44
|
-
|
|
45
|
-
span {
|
|
46
|
-
@apply text-white;
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
div:nth-child(2),
|
|
51
|
-
div:last-child {
|
|
52
|
-
@apply text-yellow-300;
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
.pre-run-window {
|
|
59
|
-
@apply overflow-x-hidden overflow-y-auto flex-grow flex flex-col items-center justify-center px-8 m-auto;
|
|
60
|
-
|
|
61
|
-
.slider {
|
|
62
|
-
@apply justify-center w-80 max-w-none;
|
|
63
|
-
|
|
64
|
-
.label {
|
|
65
|
-
@apply flex-grow;
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
.touch {
|
|
69
|
-
@apply w-40 flex-grow-0;
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
.select-window {
|
|
75
|
-
@apply m-auto;
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
}
|
package/src/window/window.tsx
DELETED
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
import { useSelector } from "react-redux";
|
|
2
|
-
import { State } from "../store";
|
|
3
|
-
import { DosWindow } from "./dos/dos-window";
|
|
4
|
-
import { ErrorWindow } from "./error-window";
|
|
5
|
-
import { LoadingWindow } from "./loading-window";
|
|
6
|
-
import { PreRunWindow } from "./prerun-window";
|
|
7
|
-
import { SelectWindow } from "./select-window";
|
|
8
|
-
|
|
9
|
-
export function Window(props: {}) {
|
|
10
|
-
const frameOpened = useSelector((state: State) => state.ui.frame) !== "none";
|
|
11
|
-
const frameXs = useSelector((state: State) => state.ui.frameXs);
|
|
12
|
-
const window = useSelector((state: State) => state.ui.window);
|
|
13
|
-
const background = useSelector((state: State) => state.ui.background);
|
|
14
|
-
|
|
15
|
-
let windowComponent = <Loading />;
|
|
16
|
-
switch (window) {
|
|
17
|
-
case "error": {
|
|
18
|
-
windowComponent = <ErrorWindow />;
|
|
19
|
-
} break;
|
|
20
|
-
case "loading": {
|
|
21
|
-
windowComponent = <LoadingWindow />;
|
|
22
|
-
} break;
|
|
23
|
-
case "prerun": {
|
|
24
|
-
windowComponent = <PreRunWindow />;
|
|
25
|
-
} break;
|
|
26
|
-
case "run": {
|
|
27
|
-
windowComponent = <DosWindow />;
|
|
28
|
-
} break;
|
|
29
|
-
case "select": {
|
|
30
|
-
windowComponent = <SelectWindow />;
|
|
31
|
-
} break;
|
|
32
|
-
default: ;
|
|
33
|
-
};
|
|
34
|
-
|
|
35
|
-
return <div class="window absolute w-full h-full bg-base-100">
|
|
36
|
-
<div class="background-image"
|
|
37
|
-
style={{ backgroundImage: (background ? "url(" + background + ")" : undefined ) }} />
|
|
38
|
-
<div class="relative flex flex-row h-full w-full items-start justify-start overflow-auto">
|
|
39
|
-
<div class={(frameOpened ? (frameXs ? "w-24" : "w-96") : "w-12") + " flex-shrink-0"}></div>
|
|
40
|
-
{windowComponent}
|
|
41
|
-
</div>
|
|
42
|
-
</div>;
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
function Loading() {
|
|
46
|
-
return <div class="w-full h-full flex justify-center items-center">
|
|
47
|
-
<div class="radial-progress animate-spin" style="--value:70;"></div>
|
|
48
|
-
</div>;
|
|
49
|
-
}
|
package/src/ws/ws-sockdrive.ts
DELETED
|
@@ -1,123 +0,0 @@
|
|
|
1
|
-
import { Handle, Stats } from "../sockdrive/js/src/sockdrive/types";
|
|
2
|
-
import { Drive } from "../sockdrive/js/src/sockdrive/drive";
|
|
3
|
-
|
|
4
|
-
interface Template {
|
|
5
|
-
name: string,
|
|
6
|
-
size: number,
|
|
7
|
-
heads: number,
|
|
8
|
-
cylinders: number,
|
|
9
|
-
sectors: number,
|
|
10
|
-
sectorSize: number,
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
export interface ReadResponse {
|
|
14
|
-
buffer?: Uint8Array,
|
|
15
|
-
code: number,
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
export function createSockdrive(
|
|
19
|
-
onOpen: (drive: string, read: boolean, write: boolean, imageSize: number, preloadQueue: number[]) => void,
|
|
20
|
-
onError: (e: Error) => void,
|
|
21
|
-
onPreloadProgress: (drive: string, restBytes: number) => void,
|
|
22
|
-
) {
|
|
23
|
-
let seq = 0;
|
|
24
|
-
const mapping: { [handle: Handle]: Drive } = {};
|
|
25
|
-
const templates: { [handle: number]: Template } = {};
|
|
26
|
-
const memory: { [handle: number]: Uint8Array } = {};
|
|
27
|
-
const stats: Stats = {
|
|
28
|
-
read: 0,
|
|
29
|
-
write: 0,
|
|
30
|
-
readTotalTime: 0,
|
|
31
|
-
cacheHit: 0,
|
|
32
|
-
cacheMiss: 0,
|
|
33
|
-
cacheUsed: 0,
|
|
34
|
-
};
|
|
35
|
-
const sockdrive = {
|
|
36
|
-
stats,
|
|
37
|
-
open: async (url: string, owner: string, name: string, token: string): Promise<{
|
|
38
|
-
handle: Handle,
|
|
39
|
-
aheadRange: number,
|
|
40
|
-
}> => {
|
|
41
|
-
const response = await fetch(url.replace("wss://", "https://")
|
|
42
|
-
.replace("ws://", "http://") + "/template/" + owner + "/" + name);
|
|
43
|
-
const template = await response.json();
|
|
44
|
-
if (template.error) {
|
|
45
|
-
throw new Error(template.error);
|
|
46
|
-
}
|
|
47
|
-
seq++;
|
|
48
|
-
templates[seq] = {
|
|
49
|
-
name: template.name,
|
|
50
|
-
size: template.size ?? 0,
|
|
51
|
-
heads: template.heads ?? 1,
|
|
52
|
-
cylinders: template.cylinders ?? 520,
|
|
53
|
-
sectors: template.sectors ?? 63,
|
|
54
|
-
sectorSize: template.sector_size ?? 512,
|
|
55
|
-
};
|
|
56
|
-
|
|
57
|
-
const sectorSize = templates[seq].sectorSize;
|
|
58
|
-
const module = { HEAPU8: new Uint8Array(0) };
|
|
59
|
-
mapping[seq] = new Drive(url, owner, name, token, stats, module, true, true);
|
|
60
|
-
return new Promise<{ handle: Handle, aheadRange: number }>((resolve, reject) => {
|
|
61
|
-
const drive = owner + "/" + name;
|
|
62
|
-
mapping[seq].onOpen((read, write, imageSize, preloadQueue, aheadRange) => {
|
|
63
|
-
memory[seq] = new Uint8Array(sectorSize /* write */ + sectorSize * aheadRange);
|
|
64
|
-
module.HEAPU8 = memory[seq];
|
|
65
|
-
onOpen(drive, read, write, imageSize, preloadQueue);
|
|
66
|
-
resolve({
|
|
67
|
-
handle: seq,
|
|
68
|
-
aheadRange,
|
|
69
|
-
});
|
|
70
|
-
});
|
|
71
|
-
mapping[seq].onPreloadProgress((restBytes) => {
|
|
72
|
-
onPreloadProgress(drive, restBytes);
|
|
73
|
-
});
|
|
74
|
-
mapping[seq].onError((e) => {
|
|
75
|
-
onError(e);
|
|
76
|
-
reject(e);
|
|
77
|
-
});
|
|
78
|
-
});
|
|
79
|
-
},
|
|
80
|
-
read: async (handle: Handle, sector: number): Promise<ReadResponse> => {
|
|
81
|
-
if (mapping[handle]) {
|
|
82
|
-
const ptr = templates[seq].sectorSize;
|
|
83
|
-
let code = mapping[handle].read(sector, ptr, true) as number;
|
|
84
|
-
if (code = 255) {
|
|
85
|
-
code = await mapping[handle].read(sector, ptr, false);
|
|
86
|
-
}
|
|
87
|
-
return {
|
|
88
|
-
code,
|
|
89
|
-
buffer: memory[handle].slice(ptr),
|
|
90
|
-
};
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
console.error("ERROR! sockdrive handle", handle, "not found");
|
|
94
|
-
return Promise.resolve({ code: 1 });
|
|
95
|
-
},
|
|
96
|
-
write: (handle: Handle, sector: number, buffer: Uint8Array): number => {
|
|
97
|
-
if (buffer.byteLength != templates[handle].sectorSize) {
|
|
98
|
-
onError(new Error("sockdrive write buffer size " + buffer.byteLength +
|
|
99
|
-
" != sector size " + templates[handle].sectorSize));
|
|
100
|
-
return 1;
|
|
101
|
-
}
|
|
102
|
-
if (mapping[handle]) {
|
|
103
|
-
memory[handle].set(buffer, 0);
|
|
104
|
-
return mapping[handle].write(sector, 0);
|
|
105
|
-
}
|
|
106
|
-
console.error("ERROR! sockdrive handle", handle, "not found");
|
|
107
|
-
return 1;
|
|
108
|
-
},
|
|
109
|
-
close: (handle: Handle) => {
|
|
110
|
-
if (mapping[handle]) {
|
|
111
|
-
mapping[handle].close();
|
|
112
|
-
delete memory[handle];
|
|
113
|
-
delete templates[handle];
|
|
114
|
-
delete mapping[handle];
|
|
115
|
-
}
|
|
116
|
-
},
|
|
117
|
-
template: (handle: Handle) => {
|
|
118
|
-
return templates[handle];
|
|
119
|
-
},
|
|
120
|
-
};
|
|
121
|
-
|
|
122
|
-
return sockdrive;
|
|
123
|
-
}
|