Update to v1.80.
This commit is contained in:
parent
5e46d2f24b
commit
6d1bb7f102
@ -2,9 +2,33 @@
|
||||
|
||||
## Changes and updates
|
||||
|
||||
### v1.8.0
|
||||
|
||||
- Fixed DOSee incorrectly interpreting backslashes as new commands,
|
||||
even though they're common DOS program arguments, ie, `EXAMPLE.EXE /?`.
|
||||
- DOSee (`dosee:run:filename`) can handle chained DOS and DOSBox commands, these are separated by a Bash-style `&&` (AND) separator.
|
||||
For example, `@ECHO Hello&&PAUSE&&CLS` would print Hello, prompt for any key press to continue and then clear the screen.
|
||||
- Added a Update DOSee and the service worker button on the `index.html` running example.
|
||||
Clicking this removes all stored DOSee files in the browser cache.
|
||||
- Added apple-touch-icon meta link to examples.
|
||||
- Renamed the internal drive letters to make their purpose clearer.
|
||||
- Updated the content of the Utilities `U:` drive.
|
||||
- - Renamed `ALIASES` dir to `ALIAS`
|
||||
- - Renamed `TOOLS` dir to `FILEHACK`
|
||||
- - Renamed `REPAIR` to `FIX`
|
||||
- - Renamed `DF2DOS` to `UTIL`
|
||||
- - Moved `FIX\TP-FIX` into `FILEHACK`
|
||||
- - Added the dependency `CWSDPMI.EXE` to `UTIL`
|
||||
- - Added an ANSI `WELCOME` help screen.
|
||||
- - Removed the DOSzip commander tool `DZ.EXE` as it ran too slow.
|
||||
- - Removed the unused `DRIVER` directory.
|
||||
- - Replaced Open Cubic Player with the performant XTC-PLAY v0.47.
|
||||
- - Replaced Acidview with Insane View v2.01b.
|
||||
|
||||
### v1.71
|
||||
- Fixed yarn/npm build error caused by an invalid type used in `workbox-config.js`.
|
||||
<br>`[InjectManifest.maximumFileSizeToCacheInBytes] 'maximumFileSizeToCacheInBytes' property type must be number.`
|
||||
|
||||
- Fixed yarn/npm build error caused by an invalid type used in `workbox-config.js`.
|
||||
<br>`[InjectManifest.maximumFileSizeToCacheInBytes] 'maximumFileSizeToCacheInBytes' property type must be number.`
|
||||
|
||||
### v1.70
|
||||
|
||||
|
@ -60,6 +60,7 @@ cd DOSee
|
||||
# run the container (tap Ctrl-C to exit)
|
||||
docker compose up
|
||||
```
|
||||
|
||||
Point a web browser to http://localhost:8086
|
||||
|
||||
```bash
|
||||
@ -85,7 +86,7 @@ If you edit the source files in `src/` you will need to rebuild the application.
|
||||
cd DOSee
|
||||
|
||||
# re-build DOSee using your edits
|
||||
yarn # npm run install
|
||||
yarn run install # npm run install
|
||||
|
||||
# serve the modified DOSee over port 8086
|
||||
yarn run serve # npm run serve
|
||||
@ -93,16 +94,7 @@ yarn run serve # npm run serve
|
||||
|
||||
Point a web browser to http://localhost:8086
|
||||
|
||||
Due to a PWA offline caching feature, web browsers must clear the application storage and unregister the service workers to reflect changes to the application code.
|
||||
|
||||
- In Chrome/Edge bring up the browser Dev Tools in using <kbd>Ctrl</kbd> <kbd>Shift</kbd> <kbd>J</kbd>.<br>
|
||||
Select the Application and Storage tab.<br>
|
||||
Check the Application Unregister service workers checkbox.<br>
|
||||
Press the Clear site data button.
|
||||
|
||||
- In Firefox bring up the browser Developer Tools in using <kbd>Ctrl</kbd> <kbd>Shift</kbd> <kbd>I</kbd>.<br>
|
||||
Select the Application and Service Workers tab.<br>
|
||||
Press the Unregister button.
|
||||
Due to the PWA offline feature, web browsers need to unregister the service workers to reflect any changes to the application code. There is a red _Update DOSee and the service worker_ button on the index.html example that will do this and then reload the browser window. The eventListener code for this button can be found in the `src/js/dosee-sw.js` file.
|
||||
|
||||
### License
|
||||
|
||||
|
@ -47,10 +47,12 @@ The meta _content_ attribute must be a relative path from the webroot and must p
|
||||
|
||||
### `<meta name="dosee:run:filename">`
|
||||
|
||||
The filename of the MS-DOS program DOSee should launch. The program file needs to exist in the ZIP archive provided to _dosee:zip:path_.
|
||||
The filenames of the MS-DOS programs or DOSBox commands DOSee should launch. Any programs need to exist in the ZIP archive provided to _dosee:zip:path_.
|
||||
|
||||
DOS usually uses the following file extensions to identify a program: `.exe` `.com` `.bat`. Other than these, there is no standard file naming convention to identify which file should launch a piece of DOS software.
|
||||
|
||||
Multiple programs and commands can be chained together using an `&&` separator.
|
||||
|
||||
If the content is left blank or the filename doesn't exist in the archive, DOSee will launch into a DOS `C:` prompt.
|
||||
|
||||
✓
|
||||
@ -59,6 +61,12 @@ If the content is left blank or the filename doesn't exist in the archive, DOSee
|
||||
<meta name="dosee:run:filename" content="game.exe" />
|
||||
```
|
||||
|
||||
✓
|
||||
|
||||
```html
|
||||
<meta name="dosee:run:filename" content="CLS&&@ECHO Loading game&&game.exe" />
|
||||
```
|
||||
|
||||
## Optional
|
||||
|
||||
### `<meta name="dosee:capture:filename">`
|
||||
@ -157,7 +165,7 @@ The default and initial selection for the **Graphic adapter** hardware. Possible
|
||||
|
||||
The default and initial selection for the **Audio addon** hardware. Possible values are:
|
||||
|
||||
- `gus`<br>**Gravis Ultrasound** offers high quality 14 channel, 16-bit, 44 KHz digital playback.
|
||||
- `gus`<br>**Gravis UltraSound** offers high quality 14 channel, 16-bit, 44 KHz digital playback.
|
||||
- `covox`<br>**Covox** Covox Speech Accelerator is an external audio device and speaker with mono digital playback.
|
||||
- `sb16`<br>**Sound Blaster 16** Creative Labs Sound Blaster 16 offers stereo, 16-bit, 44 KHz digital playback.
|
||||
- `sb1`<br>**Sound Blaster 1.0** Creative Labs Sound Blaster v1.0 offers mono, 8-bit, 22 KHz digital playback.
|
||||
@ -173,7 +181,7 @@ The default and initial selection for the **Audio addon** hardware. Possible val
|
||||
|
||||
#### `<meta name="dosee:audio:gus">`
|
||||
|
||||
When set to `true`, it tells DOSee to mount a collection of Gravis Ultrasound audio drivers and tools accessible from the `G:` drive. These drivers are always loaded by DOSee whenever the Gravis Ultrasound audio option is selected. So this should still be left to `false`.
|
||||
When set to `true`, it tells DOSee to mount a collection of Gravis UltraSound audio drivers and tools accessible from the `G:` drive. These drivers are always loaded by DOSee whenever the Gravis UltraSound audio option is selected. So this should still be left to `false`.
|
||||
|
||||
#### Sample programs
|
||||
|
||||
|
@ -23,8 +23,8 @@
|
||||
},
|
||||
"homepage": "https://github.com/bengarrett/DOSee",
|
||||
"funding": {
|
||||
"type" : "individual",
|
||||
"url" : "https://www.buymeacoffee.com/4rtEGvUIY"
|
||||
"type": "individual",
|
||||
"url": "https://www.buymeacoffee.com/4rtEGvUIY"
|
||||
},
|
||||
"license": "GPL-3.0-or-later",
|
||||
"name": "dosee",
|
||||
@ -39,5 +39,6 @@
|
||||
"serve": "npx http-server build -p 8086",
|
||||
"test": "echo \"Error: no test specified\" && exit 1"
|
||||
},
|
||||
"version": "1.7.0"
|
||||
"version": "1.8.0",
|
||||
"packageManager": "yarn@3.2.0"
|
||||
}
|
||||
|
Binary file not shown.
Binary file not shown.
@ -11,9 +11,10 @@
|
||||
<!-- PWA configuration -->
|
||||
<meta name="theme-color" content="#1524eb" />
|
||||
<link rel="manifest" href="/manifest.json" />
|
||||
<link rel="apple-touch-icon" href="/images/dosee-icon-192x192.png">
|
||||
|
||||
<!-- DOSee initialisation options -->
|
||||
<meta name="dosee:zip:path" content="dos_programs/program_0/agi_demo_pack_1.zip" />
|
||||
<meta name="dosee:zip:path" content="dos_programs/program_0/agi_demo_pack_1.zip" />
|
||||
<meta name="dosee:run:filename" content="sierra.com" />
|
||||
<meta name="dosee:capture:filename" content="screenshot.png" />
|
||||
<meta name="dosee:utilities" content="false" />
|
||||
@ -54,12 +55,13 @@
|
||||
<div>
|
||||
<h2>
|
||||
DOSee
|
||||
<small><a href="#doseeTabs" id="doseeInstall" class="hidden">+Install</a></small>
|
||||
<small><em>A DOS era, PC emulator for the web</em>
|
||||
<a href="#doseeTabs" id="doseeInstall" class="hidden">+Install</a>
|
||||
</small>
|
||||
</h2>
|
||||
<hr />
|
||||
<h2>
|
||||
<small>Emulating<span id="doseeOffline" class="hidden"> offline</span> …
|
||||
<span id="doseeH2">Something</span></small>
|
||||
<small>Emulating<span id="doseeOffline" class="hidden"> offline</span> <span id="doseeH2">something</span></small>
|
||||
</h2>
|
||||
<div class="row" id="doseeCrashed">
|
||||
<div class="card fluid error">
|
||||
@ -136,7 +138,7 @@
|
||||
<legend>Audio addon</legend>
|
||||
<label>
|
||||
<input type="radio" name="dosaudio" id="dosaudio1" value="gus" />
|
||||
Gravis Ultrasound
|
||||
Gravis UltraSound
|
||||
</label>
|
||||
<label>
|
||||
<input type="radio" name="dosaudio" id="dosaudio4" value="covox" />
|
||||
@ -227,19 +229,30 @@
|
||||
<p>Released: 1987</p>
|
||||
<p>Uses 16 color Tandy or EGA graphics and enhanced, 3 channel Tandy audio</p>
|
||||
<p>
|
||||
<a href="?dosspeed=386&dosmachine=tandy&dosaudio=none">Reset to recommended hardware</a>
|
||||
<a href="?dosspeed=auto&dosmachine=tandy&dosaudio=none">Reset to recommended hardware</a>
|
||||
</p>
|
||||
</div>
|
||||
<div id="helpTabNA">
|
||||
<p>No help available</p>
|
||||
</div>
|
||||
</form>
|
||||
<hr>
|
||||
<p>
|
||||
Example programs: <a href="/">Tandy 1000</a> - <a href="/index_1.html">EGA plus AdLib</a> - <a href="/index_2.html">Gravis Ultrasound</a> - <a href="/index_3.html">VGA plus AdLib</a>
|
||||
</p>
|
||||
<div class="row">
|
||||
<div class="col-sm-12">
|
||||
<div class="card fluid">
|
||||
<h5>Switch the example machines and programs,</h5>
|
||||
<p> ✱ <a href="/">1987, Tandy 1000</a> ✱ <a href="/index_1.html">1990, EGA+AdLib</a> ✱ <a
|
||||
href="/index_2.html">1994, Gravis
|
||||
UltraSound</a> ✱ <a href="/index_3.html">1996, VGA+AdLib</a></p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-12">
|
||||
<div class="card fluid">
|
||||
<input type="button" id="updateDOSeeSW" class="small secondary" value="Update DOSee and the service worker" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<footer>
|
||||
© 2021 - Ben Garrett |
|
||||
© 2022 - Ben Garrett |
|
||||
<a href="//github.com/bengarrett/DOSee" target="_blank" rel="noopener">GitHub</a> |
|
||||
<a href="https://dosee.link" target="_blank" rel="nopener">DOSee online</a>
|
||||
<p>
|
||||
|
@ -11,9 +11,10 @@
|
||||
<!-- PWA configuration -->
|
||||
<meta name="theme-color" content="#1524eb" />
|
||||
<link rel="manifest" href="/manifest.json" />
|
||||
<link rel="apple-touch-icon" href="/images/dosee-icon-192x192.png">
|
||||
|
||||
<!-- DOSee initialisation options -->
|
||||
<meta name="dosee:zip:path" content="dos_programs/program_1/loom.zip" />
|
||||
<meta name="dosee:zip:path" content="dos_programs/program_1/loom.zip" />
|
||||
<meta name="dosee:run:filename" content="SAMPLER.EXE" />
|
||||
<meta name="dosee:capture:filename" content="screenshot.png" />
|
||||
<meta name="dosee:utilities" content="false" />
|
||||
@ -54,12 +55,13 @@
|
||||
<div>
|
||||
<h2>
|
||||
DOSee
|
||||
<small><a href="#doseeTabs" id="doseeInstall" class="hidden">+Install</a></small>
|
||||
<small><em>A DOS era, PC emulator for the web</em>
|
||||
<a href="#doseeTabs" id="doseeInstall" class="hidden">+Install</a>
|
||||
</small>
|
||||
</h2>
|
||||
<hr />
|
||||
<h2>
|
||||
<small>Emulating<span id="doseeOffline" class="hidden"> offline</span> …
|
||||
<span id="doseeH2">Something</span></small>
|
||||
<small>Emulating<span id="doseeOffline" class="hidden"> offline</span> <span id="doseeH2">something</span></small>
|
||||
</h2>
|
||||
<div class="row" id="doseeCrashed">
|
||||
<div class="card fluid error">
|
||||
@ -136,7 +138,7 @@
|
||||
<legend>Audio addon</legend>
|
||||
<label>
|
||||
<input type="radio" name="dosaudio" id="dosaudio1" value="gus" />
|
||||
Gravis Ultrasound
|
||||
Gravis UltraSound
|
||||
</label>
|
||||
<label>
|
||||
<input type="radio" name="dosaudio" id="dosaudio4" value="covox" />
|
||||
@ -234,12 +236,19 @@
|
||||
<p>No help available</p>
|
||||
</div>
|
||||
</form>
|
||||
<hr>
|
||||
<p>
|
||||
Example programs: <a href="/">Tandy 1000</a> - <a href="/index_1.html">EGA plus AdLib</a> - <a href="/index_2.html">Gravis Ultrasound</a> - <a href="/index_3.html">VGA plus AdLib</a>
|
||||
</p>
|
||||
<div class="row">
|
||||
<div class="col-sm-12">
|
||||
<div class="card fluid">
|
||||
<h5>Switch the example machines and programs,</h5>
|
||||
<p> ✱ <a href="/">1987, Tandy 1000</a> ✱ <a href="/index_1.html">1990, EGA+AdLib</a> ✱ <a
|
||||
href="/index_2.html">1994,
|
||||
Gravis
|
||||
UltraSound</a> ✱ <a href="/index_3.html">1996, VGA+AdLib</a></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<footer>
|
||||
© 2021 - Ben Garrett |
|
||||
© 2022 - Ben Garrett |
|
||||
<a href="//github.com/bengarrett/DOSee" target="_blank" rel="noopener">GitHub</a> |
|
||||
<a href="https://dosee.link" target="_blank" rel="nopener">DOSee online</a>
|
||||
<p>
|
||||
|
@ -3,7 +3,7 @@
|
||||
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<title>DOSee Gravis Ultrasound running example</title>
|
||||
<title>DOSee Gravis UltraSound running example</title>
|
||||
<meta name="description" content="Verses by Electromotive Force running in DOSee" />
|
||||
<meta name="author" content="Ben Garrett" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
@ -11,9 +11,10 @@
|
||||
<!-- PWA configuration -->
|
||||
<meta name="theme-color" content="#1524eb" />
|
||||
<link rel="manifest" href="/manifest.json" />
|
||||
<link rel="apple-touch-icon" href="/images/dosee-icon-192x192.png">
|
||||
|
||||
<!-- DOSee initialisation options -->
|
||||
<meta name="dosee:zip:path" content="dos_programs/program_2/emf_vrs2.zip" />
|
||||
<meta name="dosee:zip:path" content="dos_programs/program_2/emf_vrs2.zip" />
|
||||
<meta name="dosee:run:filename" content="VERSES.EXE" />
|
||||
<meta name="dosee:capture:filename" content="screenshot.png" />
|
||||
<meta name="dosee:utilities" content="false" />
|
||||
@ -54,12 +55,13 @@
|
||||
<div>
|
||||
<h2>
|
||||
DOSee
|
||||
<small><a href="#doseeTabs" id="doseeInstall" class="hidden">+Install</a></small>
|
||||
<small><em>A DOS era, PC emulator for the web</em>
|
||||
<a href="#doseeTabs" id="doseeInstall" class="hidden">+Install</a>
|
||||
</small>
|
||||
</h2>
|
||||
<hr />
|
||||
<h2>
|
||||
<small>Emulating<span id="doseeOffline" class="hidden"> offline</span> …
|
||||
<span id="doseeH2">Something</span></small>
|
||||
<small>Emulating<span id="doseeOffline" class="hidden"> offline</span> <span id="doseeH2">something</span></small>
|
||||
</h2>
|
||||
<div class="row" id="doseeCrashed">
|
||||
<div class="card fluid error">
|
||||
@ -136,7 +138,7 @@
|
||||
<legend>Audio addon</legend>
|
||||
<label>
|
||||
<input type="radio" name="dosaudio" id="dosaudio1" value="gus" />
|
||||
Gravis Ultrasound
|
||||
Gravis UltraSound
|
||||
</label>
|
||||
<label>
|
||||
<input type="radio" name="dosaudio" id="dosaudio4" value="covox" />
|
||||
@ -225,7 +227,7 @@
|
||||
<div id="helpProgram_2" class="hide">
|
||||
<h4>Verses by Electromotive Force</h4>
|
||||
<p>Released: 1994</p>
|
||||
<p>Uses Gravis Ultrasound and 256 color VGA graphics</p>
|
||||
<p>Uses Gravis UltraSound and 256 color VGA graphics</p>
|
||||
<p>
|
||||
<a href="?dosspeed=max&dosmachine=vga&dosaudio=gus">Reset to recommended hardware</a>
|
||||
</p>
|
||||
@ -234,12 +236,19 @@
|
||||
<p>No help available</p>
|
||||
</div>
|
||||
</form>
|
||||
<hr>
|
||||
<p>
|
||||
Example programs: <a href="/">Tandy 1000</a> - <a href="/index_1.html">EGA plus AdLib</a> - <a href="/index_2.html">Gravis Ultrasound</a> - <a href="/index_3.html">VGA plus AdLib</a>
|
||||
</p>
|
||||
<div class="row">
|
||||
<div class="col-sm-12">
|
||||
<div class="card fluid">
|
||||
<h5>Switch the example machines and programs,</h5>
|
||||
<p> ✱ <a href="/">1987, Tandy 1000</a> ✱ <a href="/index_1.html">1990, EGA+AdLib</a> ✱ <a
|
||||
href="/index_2.html">1994,
|
||||
Gravis
|
||||
UltraSound</a> ✱ <a href="/index_3.html">1996, VGA+AdLib</a></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<footer>
|
||||
© 2021 - Ben Garrett |
|
||||
© 2022 - Ben Garrett |
|
||||
<a href="//github.com/bengarrett/DOSee" target="_blank" rel="noopener">GitHub</a> |
|
||||
<a href="https://dosee.link" target="_blank" rel="nopener">DOSee online</a>
|
||||
<p>
|
||||
|
@ -11,9 +11,10 @@
|
||||
<!-- PWA configuration -->
|
||||
<meta name="theme-color" content="#1524eb" />
|
||||
<link rel="manifest" href="/manifest.json" />
|
||||
<link rel="apple-touch-icon" href="/images/dosee-icon-192x192.png">
|
||||
|
||||
<!-- DOSee initialisation options -->
|
||||
<meta name="dosee:zip:path" content="dos_programs/program_3/hyb605.zip" />
|
||||
<meta name="dosee:zip:path" content="dos_programs/program_3/hyb605.zip" />
|
||||
<meta name="dosee:run:filename" content="hyb605.exe" />
|
||||
<meta name="dosee:capture:filename" content="screenshot.png" />
|
||||
<meta name="dosee:utilities" content="false" />
|
||||
@ -54,12 +55,13 @@
|
||||
<div>
|
||||
<h2>
|
||||
DOSee
|
||||
<small><a href="#doseeTabs" id="doseeInstall" class="hidden">+Install</a></small>
|
||||
<small><em>A DOS era, PC emulator for the web</em>
|
||||
<a href="#doseeTabs" id="doseeInstall" class="hidden">+Install</a>
|
||||
</small>
|
||||
</h2>
|
||||
<hr />
|
||||
<h2>
|
||||
<small>Emulating<span id="doseeOffline" class="hidden"> offline</span> …
|
||||
<span id="doseeH2">Something</span></small>
|
||||
<small>Emulating<span id="doseeOffline" class="hidden"> offline</span> <span id="doseeH2">something</span></small>
|
||||
</h2>
|
||||
<div class="row" id="doseeCrashed">
|
||||
<div class="card fluid error">
|
||||
@ -136,7 +138,7 @@
|
||||
<legend>Audio addon</legend>
|
||||
<label>
|
||||
<input type="radio" name="dosaudio" id="dosaudio1" value="gus" />
|
||||
Gravis Ultrasound
|
||||
Gravis UltraSound
|
||||
</label>
|
||||
<label>
|
||||
<input type="radio" name="dosaudio" id="dosaudio4" value="covox" />
|
||||
@ -234,12 +236,19 @@
|
||||
<p>No help available</p>
|
||||
</div>
|
||||
</form>
|
||||
<hr>
|
||||
<p>
|
||||
Example programs: <a href="/">Tandy 1000</a> - <a href="/index_1.html">EGA plus AdLib</a> - <a href="/index_2.html">Gravis Ultrasound</a> - <a href="/index_3.html">VGA plus AdLib</a>
|
||||
</p>
|
||||
<div class="row">
|
||||
<div class="col-sm-12">
|
||||
<div class="card fluid">
|
||||
<h5>Switch the example machines and programs,</h5>
|
||||
<p> ✱ <a href="/">1987, Tandy 1000</a> ✱ <a href="/index_1.html">1990, EGA+AdLib</a> ✱ <a
|
||||
href="/index_2.html">1994,
|
||||
Gravis
|
||||
UltraSound</a> ✱ <a href="/index_3.html">1996, VGA+AdLib</a></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<footer>
|
||||
© 2021 - Ben Garrett |
|
||||
© 2022 - Ben Garrett |
|
||||
<a href="//github.com/bengarrett/DOSee" target="_blank" rel="noopener">GitHub</a> |
|
||||
<a href="https://dosee.link" target="_blank" rel="nopener">DOSee online</a>
|
||||
<p>
|
||||
|
@ -6,9 +6,9 @@
|
||||
"use strict";
|
||||
// Relative file paths to DOSee emulation dependencies
|
||||
const paths = new Map()
|
||||
.set(`driveG`, `/disk_drives/g_drive.zip`)
|
||||
.set(`driveS`, `/disk_drives/s_drive.zip`)
|
||||
.set(`driveU`, `/disk_drives/u_drive.zip`)
|
||||
.set(`driveGUS`, `/disk_drives/g_drive.zip`)
|
||||
.set(`driveConfigs`, `/disk_drives/s_drive.zip`)
|
||||
.set(`driveUtils`, `/disk_drives/u_drive.zip`)
|
||||
.set(`sync`, `/emulator/dosbox-sync.js`)
|
||||
.set(`mem`, `/emulator/dosbox-sync.mem`)
|
||||
.set(`core`, `/emulator/dosbox.js`)
|
||||
@ -43,7 +43,7 @@
|
||||
// Handle URL params special cases that need additional files to be loaded by DOSee
|
||||
const specialCaseURLs = () => {
|
||||
const urlParams = DOSee.newQueryString();
|
||||
// Gravis Ultrasound Audio drivers (dosaudio=gus)
|
||||
// Gravis UltraSound Audio drivers (dosaudio=gus)
|
||||
const audio = urlParams.get(`dosaudio`);
|
||||
if (
|
||||
audio === `gus` ||
|
||||
@ -66,8 +66,8 @@
|
||||
return DoseeLoader.mountZip(
|
||||
`g`,
|
||||
DoseeLoader.fetchFile(
|
||||
`gravis ultrasound drivers`,
|
||||
`${paths.get(`driveG`)}`
|
||||
`Gravis UltraSound (GUS) drivers`,
|
||||
`${paths.get(`driveGUS`)}`
|
||||
)
|
||||
);
|
||||
};
|
||||
@ -98,9 +98,10 @@
|
||||
// Load additional DOS tools and utilities
|
||||
const utilities = (load) => {
|
||||
if (load !== `true`) return null;
|
||||
const driveLetter = `u`;
|
||||
return DoseeLoader.mountZip(
|
||||
`u`,
|
||||
DoseeLoader.fetchFile(`dos utilities`, `${paths.get(`driveU`)}`)
|
||||
driveLetter,
|
||||
DoseeLoader.fetchFile(`DOSee utilities`, `${paths.get(`driveUtils`)}`)
|
||||
);
|
||||
};
|
||||
|
||||
@ -168,7 +169,7 @@
|
||||
const wantsWASM = `WebAssembly` in window;
|
||||
|
||||
const driveC = `c`,
|
||||
driveS = `s`,
|
||||
driveConfigs = `s`,
|
||||
init = new DoseeLoader(
|
||||
DoseeLoader.emulatorJS(`${paths.get(wantsWASM ? `core` : `sync`)}`),
|
||||
DoseeLoader.emulatorWASM(`${paths.get(`wasm`)}`),
|
||||
@ -185,8 +186,11 @@
|
||||
)
|
||||
),
|
||||
DoseeLoader.mountZip(
|
||||
driveS,
|
||||
DoseeLoader.fetchFile(`DOSee configurations`, `${paths.get(`driveS`)}`)
|
||||
driveConfigs,
|
||||
DoseeLoader.fetchFile(
|
||||
`DOSee configurations`,
|
||||
`${paths.get(`driveConfigs`)}`
|
||||
)
|
||||
),
|
||||
gravisDriver(config.get(`gus`)),
|
||||
utilities(config.get(`utils`)),
|
||||
|
@ -18,8 +18,8 @@ window.Module = null;
|
||||
((Promise) => {
|
||||
"use strict";
|
||||
const version = new Map()
|
||||
.set(`date`, new Date(`18,Jun,2021`))
|
||||
.set(`minor`, `7`)
|
||||
.set(`date`, new Date(`5,Jul,2022`))
|
||||
.set(`minor`, `8`)
|
||||
.set(`major`, `1`)
|
||||
.set(`display`, ``);
|
||||
|
||||
@ -252,7 +252,7 @@ window.Module = null;
|
||||
document.getElementById(`dosaudio2`).checked = true;
|
||||
break;
|
||||
case `gus`:
|
||||
this.verbose += ` Gravis Ultrasound audio.`;
|
||||
this.verbose += ` Gravis UltraSound audio.`;
|
||||
this.commandLine.push(loadConfig, `/dos/g/gus.con`);
|
||||
document.getElementById(`dosaudio1`).checked = true;
|
||||
break;
|
||||
@ -366,11 +366,11 @@ window.Module = null;
|
||||
_automaticExecution(loadConfig = ``, urlParams = URLSearchParams) {
|
||||
if (loadConfig === ``)
|
||||
throw Error(`automaticExecution loadConfig argument cannot be empty`);
|
||||
|
||||
// to split backslash and forward slash use: .split(/\\|\//)
|
||||
const backslash = /\\/,
|
||||
path = this.executableFilename.split(backslash);
|
||||
const runCommand = `-c`,
|
||||
diskDriveC = `C:`,
|
||||
path = this.executableFilename.split(/\\|\//);
|
||||
|
||||
diskDriveC = `C:`;
|
||||
// dosbox mount points (dos drive letters)
|
||||
for (const file of this.filesToMount) {
|
||||
if (`drive` in file)
|
||||
@ -379,11 +379,6 @@ window.Module = null;
|
||||
`mount ${file.drive} /dos${file.mountpoint}`
|
||||
);
|
||||
}
|
||||
// dosbox default drive letter
|
||||
this.commandLine.push(
|
||||
runCommand,
|
||||
/^[a-zA-Z]:$/.test(path[0]) ? path.shift() : diskDriveC
|
||||
);
|
||||
// Load any operating system drivers that are not natively supplied by DOSBox.
|
||||
// These must be loaded after the emulated drives are mounted.
|
||||
// And after the environment PATH to the drivers have been set in the
|
||||
@ -397,23 +392,45 @@ window.Module = null;
|
||||
if (urlParams.get(`dosutils`) === `true`)
|
||||
this.commandLine.push(loadConfig, `/dos/s/utils.con`);
|
||||
// some programs don't run correctly unless the current active directory is root
|
||||
// pop() removes the last element from path.
|
||||
let executable = path.pop();
|
||||
if (path && path.length) {
|
||||
const newPath = path.toString().replace(`,`, `\\`);
|
||||
console.log(`Execute path "${newPath}"`);
|
||||
this.commandLine.push(runCommand, `CD ${newPath}`);
|
||||
const suffix = -1;
|
||||
let newPath = path.toString().replace(`,`, `\\`);
|
||||
newPath = newPath.split(`\\`).slice(0, suffix).join(`\\`);
|
||||
if (newPath !== ``) {
|
||||
console.log(`Execute path "${newPath}"`);
|
||||
this.commandLine.push(runCommand, `CD ${newPath}`);
|
||||
}
|
||||
}
|
||||
// dosbox default drive letter
|
||||
this.commandLine.push(
|
||||
runCommand,
|
||||
/^[a-zA-Z]:$/.test(path[0]) ? path.shift() : diskDriveC
|
||||
);
|
||||
// do not automatically run the program executable
|
||||
if (
|
||||
urlParams.get(`dosautorun`) === `false` ||
|
||||
this.executableFilename === ``
|
||||
) {
|
||||
this.commandLine.push(runCommand, `U:\\ALIAS\\WELCOME.BAT`);
|
||||
return;
|
||||
}
|
||||
// handle multiple commands (chained) using && separators
|
||||
let command = path.pop();
|
||||
const chainCmds = command.split(`&&`);
|
||||
if (chainCmds.length > 1) {
|
||||
for (const cmd of chainCmds) {
|
||||
this.commandLine.push(runCommand, cmd);
|
||||
}
|
||||
return;
|
||||
}
|
||||
// automatically run the program executable
|
||||
if (urlParams.get(`dosautorun`) === `false`) return;
|
||||
// hack to implement program options
|
||||
executable = executable.replace(` :`, ` /`);
|
||||
this.verbose = `Will execute \`${executable}\` ${this.verbose}`;
|
||||
this.commandLine.push(runCommand, executable);
|
||||
if (executable.trim().length) {
|
||||
command = command.replace(` :`, ` /`);
|
||||
this.verbose = `Will execute \`${command}\` ${this.verbose}`;
|
||||
this.commandLine.push(runCommand, command);
|
||||
if (command.trim().length) {
|
||||
// an exit comment to display after executable program is complete
|
||||
const print = `@echo `,
|
||||
exitComment = `${print}${executable} has finished.`;
|
||||
exitComment = `${print}${command} has finished.`;
|
||||
this.commandLine.push(runCommand, exitComment);
|
||||
}
|
||||
}
|
||||
@ -1094,6 +1111,8 @@ window.Module = null;
|
||||
img.classList.add(`dosee-crisp-render`);
|
||||
img.setAttribute(`id`, `doseeSplashImg`);
|
||||
img.setAttribute(`alt`, `DOSee logo`);
|
||||
img.setAttribute(`width`, `180`);
|
||||
img.setAttribute(`height`, `180`);
|
||||
splash.splashElt.append(img);
|
||||
};
|
||||
const title = () => {
|
||||
|
@ -11,6 +11,33 @@ if (`serviceWorker` in navigator) {
|
||||
.register(`/sw.js`)
|
||||
.then((registration) => {
|
||||
console.log(`DOSee service worker registered: ${registration.scope}`);
|
||||
// optional, reload the service worker to destroy the browser cache
|
||||
const update = document.getElementById(`updateDOSeeSW`);
|
||||
if (update !== null) {
|
||||
update.addEventListener(
|
||||
`click`,
|
||||
() => {
|
||||
console.info(
|
||||
`DOSee remove and reregister service worker`,
|
||||
registration
|
||||
);
|
||||
registration
|
||||
.unregister()
|
||||
.then(() => {
|
||||
const oneSec = 500;
|
||||
setTimeout(() => {
|
||||
location.reload();
|
||||
}, oneSec);
|
||||
})
|
||||
.catch(function (error) {
|
||||
console.log(
|
||||
`DOSee could not unregister, the host server maybe offline?\n${error}`
|
||||
);
|
||||
});
|
||||
},
|
||||
false
|
||||
);
|
||||
}
|
||||
})
|
||||
.catch((err) => {
|
||||
console.log(`DOSee service worker registration failed: ${err}`);
|
||||
|
@ -4,14 +4,13 @@ importScripts(`/js/workbox-sw.js`);
|
||||
if (!workbox) {
|
||||
console.warn(`Failed to load Workbox service worker library`);
|
||||
} else {
|
||||
console.log(`Loaded Workbox v5 service worker library`);
|
||||
|
||||
console.log(`Loaded Workbox v6 service worker library`);
|
||||
workbox.precaching.precacheAndRoute(self.__WB_MANIFEST);
|
||||
|
||||
workbox.routing.registerRoute(/(.*)article(.*)\.html/, (args) => {
|
||||
const notFound = 404;
|
||||
return articleHandler.handle(args).then((response) => {
|
||||
if (!response) return caches.match(`offline.html`);
|
||||
if (response.status === 404) return caches.match(`404.html`);
|
||||
if (response.status === notFound) return caches.match(`404.html`);
|
||||
return response;
|
||||
});
|
||||
});
|
||||
|
Loading…
x
Reference in New Issue
Block a user