Merge branch 'master' into gh-pages
This commit is contained in:
commit
9681038ed8
28 changed files with 125 additions and 45 deletions
14
README.md
14
README.md
|
|
@ -36,16 +36,20 @@ Some pre-configured machines are shown below, ready to run BASIC, DOS, Windows,
|
||||||
|
|
||||||

|

|
||||||

|

|
||||||

|

|
||||||

|

|
||||||

|

|
||||||
|

|
||||||

|

|
||||||

|

|
||||||

|

|
||||||

|

|
||||||

|

|
||||||

|

|
||||||

|

|
||||||
|

|
||||||
|

|
||||||
|

|
||||||
|
|
||||||
There are many more [PCx86 Demos](/devices/pcx86/machine/#ready-to-run-app-demos), including an
|
There are many more [PCx86 Demos](/devices/pcx86/machine/#ready-to-run-app-demos), including an
|
||||||
[IBM PC with Dual Displays](/devices/pcx86/machine/5150/dual/64kb/) demonstrating early multi-monitor support,
|
[IBM PC with Dual Displays](/devices/pcx86/machine/5150/dual/64kb/) demonstrating early multi-monitor support,
|
||||||
|
|
|
||||||
BIN
apps/pcx86/1982/esuite/thumbnail.jpg
Normal file
BIN
apps/pcx86/1982/esuite/thumbnail.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 24 KiB |
BIN
apps/pcx86/1983/adventmath/thumbnail.jpg
Normal file
BIN
apps/pcx86/1983/adventmath/thumbnail.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 34 KiB |
BIN
apps/pcx86/1985/rogue/thumbnail.jpg
Normal file
BIN
apps/pcx86/1985/rogue/thumbnail.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 34 KiB |
|
|
@ -7,7 +7,7 @@
|
||||||
<rom id="romBASIC" addr="0xf6000" size="0x8000" file="/devices/pcx86/rom/5150/basic/BASIC100.json"/>
|
<rom id="romBASIC" addr="0xf6000" size="0x8000" file="/devices/pcx86/rom/5150/basic/BASIC100.json"/>
|
||||||
<rom id="romBIOS" addr="0xfe000" size="0x2000" file="/devices/pcx86/rom/5150/1981-04-24/PCBIOS-REV1.json"/>
|
<rom id="romBIOS" addr="0xfe000" size="0x2000" file="/devices/pcx86/rom/5150/1981-04-24/PCBIOS-REV1.json"/>
|
||||||
<video ref="/devices/pcx86/video/ibm/cga/ibm-cga.xml"/>
|
<video ref="/devices/pcx86/video/ibm/cga/ibm-cga.xml"/>
|
||||||
<fdc ref="/disks/pcx86/compiled/samples.xml"/>
|
<fdc ref="/disks/pcx86/compiled/library.xml"/>
|
||||||
<cpu id="cpu8088" model="8088" autostart="true"/>
|
<cpu id="cpu8088" model="8088" autostart="true"/>
|
||||||
<keyboard ref="/devices/pcx86/keyboard/us83-buttons-minimal.xml"/>
|
<keyboard ref="/devices/pcx86/keyboard/us83-buttons-minimal.xml"/>
|
||||||
<debugger id="debugger"/>
|
<debugger id="debugger"/>
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@
|
||||||
<rom id="romBASIC" addr="0xf6000" size="0x8000" file="/devices/pcx86/rom/5150/basic/BASIC100.json"/>
|
<rom id="romBASIC" addr="0xf6000" size="0x8000" file="/devices/pcx86/rom/5150/basic/BASIC100.json"/>
|
||||||
<rom id="romBIOS" addr="0xfe000" size="0x2000" file="/devices/pcx86/rom/5150/1981-04-24/PCBIOS-REV1.json"/>
|
<rom id="romBIOS" addr="0xfe000" size="0x2000" file="/devices/pcx86/rom/5150/1981-04-24/PCBIOS-REV1.json"/>
|
||||||
<video ref="/devices/pcx86/video/ibm/cga/ibm-cga.xml"/>
|
<video ref="/devices/pcx86/video/ibm/cga/ibm-cga.xml"/>
|
||||||
<fdc ref="/disks/pcx86/compiled/samples.xml"/>
|
<fdc ref="/disks/pcx86/compiled/library.xml"/>
|
||||||
<cpu id="cpu8088" model="8088" autoStart="true" pos="left" padLeft="8px" padBottom="8px">
|
<cpu id="cpu8088" model="8088" autoStart="true" pos="left" padLeft="8px" padBottom="8px">
|
||||||
<control type="button" binding="run">Run</control>
|
<control type="button" binding="run">Run</control>
|
||||||
<control type="button" binding="reset">Reset</control>
|
<control type="button" binding="reset">Reset</control>
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@
|
||||||
<rom id="romBASIC" addr="0xf6000" size="0x8000" file="/devices/pcx86/rom/5150/basic/BASIC100.json"/>
|
<rom id="romBASIC" addr="0xf6000" size="0x8000" file="/devices/pcx86/rom/5150/basic/BASIC100.json"/>
|
||||||
<rom id="romBIOS" addr="0xfe000" size="0x2000" file="/devices/pcx86/rom/5150/1981-04-24/PCBIOS-REV1.json"/>
|
<rom id="romBIOS" addr="0xfe000" size="0x2000" file="/devices/pcx86/rom/5150/1981-04-24/PCBIOS-REV1.json"/>
|
||||||
<video ref="/devices/pcx86/video/ibm/cga/ibm-cga.xml"/>
|
<video ref="/devices/pcx86/video/ibm/cga/ibm-cga.xml"/>
|
||||||
<fdc ref="/disks/pcx86/compiled/samples.xml"/>
|
<fdc ref="/disks/pcx86/compiled/library.xml"/>
|
||||||
<keyboard ref="/devices/pcx86/keyboard/us83-softkeys.xml"/>
|
<keyboard ref="/devices/pcx86/keyboard/us83-softkeys.xml"/>
|
||||||
<debugger id="debugger"/>
|
<debugger id="debugger"/>
|
||||||
<panel ref="/devices/pcx86/panel/wide.xml"/>
|
<panel ref="/devices/pcx86/panel/wide.xml"/>
|
||||||
|
|
|
||||||
32
devices/pcx86/machine/5150/dual/64kb/README.md
Normal file
32
devices/pcx86/machine/5150/dual/64kb/README.md
Normal file
|
|
@ -0,0 +1,32 @@
|
||||||
|
---
|
||||||
|
layout: page
|
||||||
|
title: IBM PC (Model 5150, 64Kb) with Dual Displays
|
||||||
|
permalink: /devices/pcx86/machine/5150/dual/64kb/
|
||||||
|
machines:
|
||||||
|
- id: ibm5150
|
||||||
|
type: pcx86
|
||||||
|
autoMount:
|
||||||
|
A:
|
||||||
|
name: PC-DOS 3.00 (Disk 1)
|
||||||
|
---
|
||||||
|
|
||||||
|
IBM PC (Model 5150, 64Kb) with Dual Displays
|
||||||
|
--------------------------------------------
|
||||||
|
|
||||||
|
The original IBM PC supported multiple display adapters. This page demonstrates a PCjs hardware configuration with
|
||||||
|
both a Monochrome Display connected to an MDA (Monochrome Display Adapter) and a Color Display connected to a CGA
|
||||||
|
(Color Display Adapter).
|
||||||
|
|
||||||
|
At any given time, only one display was considered "active", and the initial active display was determined by switches
|
||||||
|
on the motherboard. After booting DOS, you could use **MODE** commands to change the active display:
|
||||||
|
|
||||||
|
- *mode co40* selects the Color Display and sets it to 40-column mode
|
||||||
|
- *mode co80* selects the Color Display and sets it to 80-column mode
|
||||||
|
- *mode mono* selects the Monochrome Display, which supports only 80-column mode
|
||||||
|
|
||||||
|
The initial active display for the machine below is the Monochrome Display. Third-party software with dual-display
|
||||||
|
support could write to both displays simultaneously, but most text-based applications only wrote to the active display.
|
||||||
|
Programs that used color graphics, on the other hand, might use the Color Display whether or not it was currently
|
||||||
|
active.
|
||||||
|
|
||||||
|
{% include machine.html id="ibm5150" %}
|
||||||
|
|
@ -1,11 +0,0 @@
|
||||||
---
|
|
||||||
layout: page
|
|
||||||
title: IBM PC (Model 5150, 64Kb) with Dual Displays
|
|
||||||
permalink: /devices/pcx86/machine/5150/dual/64kb/
|
|
||||||
machines:
|
|
||||||
- id: ibm5150
|
|
||||||
type: pcx86
|
|
||||||
resume: 1
|
|
||||||
---
|
|
||||||
|
|
||||||
{% include machine.html id="ibm5150" %}
|
|
||||||
|
|
@ -8,7 +8,7 @@
|
||||||
<rom id="romBIOS" addr="0xfe000" size="0x2000" file="/devices/pcx86/rom/5150/1981-04-24/PCBIOS-REV1.json"/>
|
<rom id="romBIOS" addr="0xfe000" size="0x2000" file="/devices/pcx86/rom/5150/1981-04-24/PCBIOS-REV1.json"/>
|
||||||
<video ref="/devices/pcx86/video/ibm/mda/ibm-mda-dual.xml"/>
|
<video ref="/devices/pcx86/video/ibm/mda/ibm-mda-dual.xml"/>
|
||||||
<video ref="/devices/pcx86/video/ibm/cga/ibm-cga-dual.xml"/>
|
<video ref="/devices/pcx86/video/ibm/cga/ibm-cga-dual.xml"/>
|
||||||
<fdc ref="/disks/pcx86/compiled/samples.xml"/>
|
<fdc ref="/disks/pcx86/compiled/library.xml"/>
|
||||||
<cpu id="cpu8088" model="8088" autostart="true" pos="left" padLeft="8px" padBottom="8px">
|
<cpu id="cpu8088" model="8088" autostart="true" pos="left" padLeft="8px" padBottom="8px">
|
||||||
<control type="button" binding="run">Run</control>
|
<control type="button" binding="run">Run</control>
|
||||||
<control type="button" binding="reset">Reset</control>
|
<control type="button" binding="reset">Reset</control>
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@
|
||||||
<rom id="romBASIC" addr="0xf6000" size="0x8000" file="/devices/pcx86/rom/5150/basic/BASIC100.json"/>
|
<rom id="romBASIC" addr="0xf6000" size="0x8000" file="/devices/pcx86/rom/5150/basic/BASIC100.json"/>
|
||||||
<rom id="romBIOS" addr="0xfe000" size="0x2000" file="/devices/pcx86/rom/5150/1981-04-24/PCBIOS-REV1.json"/>
|
<rom id="romBIOS" addr="0xfe000" size="0x2000" file="/devices/pcx86/rom/5150/1981-04-24/PCBIOS-REV1.json"/>
|
||||||
<video ref="/devices/pcx86/video/ibm/mda/ibm-mda.xml"/>
|
<video ref="/devices/pcx86/video/ibm/mda/ibm-mda.xml"/>
|
||||||
<fdc ref="/disks/pcx86/compiled/samples.xml"/>
|
<fdc ref="/disks/pcx86/compiled/library.xml"/>
|
||||||
<cpu id="cpu8088" model="8088" autostart="true" pos="left" padLeft="8px" padBottom="8px">
|
<cpu id="cpu8088" model="8088" autostart="true" pos="left" padLeft="8px" padBottom="8px">
|
||||||
<control type="button" binding="run">Run</control>
|
<control type="button" binding="run">Run</control>
|
||||||
<control type="button" binding="reset">Reset</control>
|
<control type="button" binding="reset">Reset</control>
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@
|
||||||
<rom id="romBASIC" addr="0xf6000" size="0x8000" file="/devices/pcx86/rom/5150/basic/BASIC100.json"/>
|
<rom id="romBASIC" addr="0xf6000" size="0x8000" file="/devices/pcx86/rom/5150/basic/BASIC100.json"/>
|
||||||
<rom id="romBIOS" addr="0xfe000" size="0x2000" file="/devices/pcx86/rom/5150/1981-04-24/PCBIOS-REV1.json"/>
|
<rom id="romBIOS" addr="0xfe000" size="0x2000" file="/devices/pcx86/rom/5150/1981-04-24/PCBIOS-REV1.json"/>
|
||||||
<video ref="/devices/pcx86/video/ibm/mda/ibm-mda.xml"/>
|
<video ref="/devices/pcx86/video/ibm/mda/ibm-mda.xml"/>
|
||||||
<fdc ref="/disks/pcx86/compiled/samples.xml"/>
|
<fdc ref="/disks/pcx86/compiled/library.xml"/>
|
||||||
<keyboard ref="/devices/pcx86/keyboard/us83-softkeys.xml"/>
|
<keyboard ref="/devices/pcx86/keyboard/us83-softkeys.xml"/>
|
||||||
<debugger id="debugger"/>
|
<debugger id="debugger"/>
|
||||||
<panel ref="/devices/pcx86/panel/wide.xml"/>
|
<panel ref="/devices/pcx86/panel/wide.xml"/>
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@
|
||||||
<rom id="romBASIC" addr="0xf6000" size="0x8000" file="/devices/pcx86/rom/5160/basic/BASIC110.json"/>
|
<rom id="romBASIC" addr="0xf6000" size="0x8000" file="/devices/pcx86/rom/5160/basic/BASIC110.json"/>
|
||||||
<rom id="romBIOS" addr="0xfe000" size="0x2000" file="/devices/pcx86/rom/5160/1982-11-08/XTBIOS-REV1.json"/>
|
<rom id="romBIOS" addr="0xfe000" size="0x2000" file="/devices/pcx86/rom/5160/1982-11-08/XTBIOS-REV1.json"/>
|
||||||
<video ref="/devices/pcx86/video/ibm/cga/ibm-cga.xml"/>
|
<video ref="/devices/pcx86/video/ibm/cga/ibm-cga.xml"/>
|
||||||
<fdc ref="/disks/pcx86/compiled/samples.xml"/>
|
<fdc ref="/disks/pcx86/compiled/library.xml"/>
|
||||||
<cpu id="cpu8088" model="8088" autostart="true" pos="left" padLeft="8px">
|
<cpu id="cpu8088" model="8088" autostart="true" pos="left" padLeft="8px">
|
||||||
<control type="button" binding="run">Run</control>
|
<control type="button" binding="run">Run</control>
|
||||||
<control type="button" binding="reset">Reset</control>
|
<control type="button" binding="reset">Reset</control>
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@
|
||||||
<rom id="romBASIC" addr="0xf6000" size="0x8000" file="/devices/pcx86/rom/5160/basic/BASIC110.json"/>
|
<rom id="romBASIC" addr="0xf6000" size="0x8000" file="/devices/pcx86/rom/5160/basic/BASIC110.json"/>
|
||||||
<rom id="romBIOS" addr="0xfe000" size="0x2000" file="/devices/pcx86/rom/5160/1982-11-08/XTBIOS-REV1.json"/>
|
<rom id="romBIOS" addr="0xfe000" size="0x2000" file="/devices/pcx86/rom/5160/1982-11-08/XTBIOS-REV1.json"/>
|
||||||
<video ref="/devices/pcx86/video/ibm/cga/ibm-cga-lock.xml"/>
|
<video ref="/devices/pcx86/video/ibm/cga/ibm-cga-lock.xml"/>
|
||||||
<fdc ref="/disks/pcx86/compiled/samples.xml"/>
|
<fdc ref="/disks/pcx86/compiled/library.xml"/>
|
||||||
<cpu id="cpu8088" model="8088" autoStart="true"/>
|
<cpu id="cpu8088" model="8088" autoStart="true"/>
|
||||||
<keyboard ref="/devices/pcx86/keyboard/us83-buttons-functions.xml"/>
|
<keyboard ref="/devices/pcx86/keyboard/us83-buttons-functions.xml"/>
|
||||||
<debugger id="debugger"/>
|
<debugger id="debugger"/>
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@
|
||||||
<rom id="romBASIC" addr="0xf6000" size="0x8000" file="/devices/pcx86/rom/5160/basic/BASIC110.json"/>
|
<rom id="romBASIC" addr="0xf6000" size="0x8000" file="/devices/pcx86/rom/5160/basic/BASIC110.json"/>
|
||||||
<rom id="romBIOS" addr="0xfe000" size="0x2000" file="/devices/pcx86/rom/5160/1982-11-08/XTBIOS-REV1.json"/>
|
<rom id="romBIOS" addr="0xfe000" size="0x2000" file="/devices/pcx86/rom/5160/1982-11-08/XTBIOS-REV1.json"/>
|
||||||
<video ref="/devices/pcx86/video/ibm/cga/ibm-cga-lock.xml"/>
|
<video ref="/devices/pcx86/video/ibm/cga/ibm-cga-lock.xml"/>
|
||||||
<fdc ref="/disks/pcx86/compiled/samples.xml"/>
|
<fdc ref="/disks/pcx86/compiled/library.xml"/>
|
||||||
<cpu id="cpu8088" model="8088" autoStart="true" pos="left" padLeft="8px" padBottom="8px">
|
<cpu id="cpu8088" model="8088" autoStart="true" pos="left" padLeft="8px" padBottom="8px">
|
||||||
<control type="button" binding="run">Run</control>
|
<control type="button" binding="run">Run</control>
|
||||||
<control type="button" binding="reset">Reset</control>
|
<control type="button" binding="reset">Reset</control>
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@
|
||||||
<rom id="romBASIC" addr="0xf6000" size="0x8000" file="/devices/pcx86/rom/5160/basic/BASIC110.json"/>
|
<rom id="romBASIC" addr="0xf6000" size="0x8000" file="/devices/pcx86/rom/5160/basic/BASIC110.json"/>
|
||||||
<rom id="romBIOS" addr="0xfe000" size="0x2000" file="/devices/pcx86/rom/5160/1982-11-08/XTBIOS-REV1.json"/>
|
<rom id="romBIOS" addr="0xfe000" size="0x2000" file="/devices/pcx86/rom/5160/1982-11-08/XTBIOS-REV1.json"/>
|
||||||
<video ref="/devices/pcx86/video/ibm/cga/ibm-cga-lock.xml"/>
|
<video ref="/devices/pcx86/video/ibm/cga/ibm-cga-lock.xml"/>
|
||||||
<fdc ref="/disks/pcx86/compiled/samples.xml"/>
|
<fdc ref="/disks/pcx86/compiled/library.xml"/>
|
||||||
<keyboard ref="/devices/pcx86/keyboard/us83-softkeys.xml"/>
|
<keyboard ref="/devices/pcx86/keyboard/us83-softkeys.xml"/>
|
||||||
<debugger id="debugger"/>
|
<debugger id="debugger"/>
|
||||||
<panel ref="/devices/pcx86/panel/default.xml"/>
|
<panel ref="/devices/pcx86/panel/default.xml"/>
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,7 @@
|
||||||
<keyboard ref="/devices/pcx86/keyboard/us83-softkeys.xml"/>
|
<keyboard ref="/devices/pcx86/keyboard/us83-softkeys.xml"/>
|
||||||
<debugger id="debugger"/>
|
<debugger id="debugger"/>
|
||||||
<panel ref="/devices/pcx86/panel/default.xml"/>
|
<panel ref="/devices/pcx86/panel/default.xml"/>
|
||||||
<fdc ref="/disks/pcx86/compiled/samples.xml" width="280px"/>
|
<fdc ref="/disks/pcx86/compiled/library.xml" width="360px"/>
|
||||||
<chipset id="chipset" model="5160" sw1="01110001" pos="left" padLeft="8px" padBottom="8px">
|
<chipset id="chipset" model="5160" sw1="01110001" pos="left" padLeft="8px" padBottom="8px">
|
||||||
<control type="switches" label="SW1" binding="sw1" left="0px"/>
|
<control type="switches" label="SW1" binding="sw1" left="0px"/>
|
||||||
<control type="description" binding="swdesc" left="0px"/>
|
<control type="description" binding="swdesc" left="0px"/>
|
||||||
|
|
|
||||||
|
|
@ -5,8 +5,9 @@
|
||||||
<version>1.00</version>
|
<version>1.00</version>
|
||||||
<type>Game</type>
|
<type>Game</type>
|
||||||
<category>Text Adventure</category>
|
<category>Text Adventure</category>
|
||||||
<author>Microsoft</author>
|
<publisher>Microsoft</publisher>
|
||||||
<releaseDate/>
|
<releaseDate>1981</releaseDate>
|
||||||
|
<author>Gordon Letwin</author>
|
||||||
<machine href="/disks/pcx86/games/microsoft/adventure/machine.xml"/>
|
<machine href="/disks/pcx86/games/microsoft/adventure/machine.xml"/>
|
||||||
<disk id="disk01" href="/disks/pcx86/games/microsoft/adventure/ADVENTURE-1981.json" md5="88eed6b1cb7bafa1ab957fa9c6fc7105" md5json="c0b400918a442cd3a11315092a144c15">
|
<disk id="disk01" href="/disks/pcx86/games/microsoft/adventure/ADVENTURE-1981.json" md5="88eed6b1cb7bafa1ab957fa9c6fc7105" md5json="c0b400918a442cd3a11315092a144c15">
|
||||||
<name>Microsoft Adventure</name>
|
<name>Microsoft Adventure</name>
|
||||||
|
|
|
||||||
BIN
disks/pcx86/windows/1.00/thumbnail.jpg
Normal file
BIN
disks/pcx86/windows/1.00/thumbnail.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 25 KiB |
|
|
@ -22,6 +22,8 @@ Microsoft Windows 1.01, the first public version of Windows, was released on Nov
|
||||||
It is shown here running on an IBM PC XT (Model 5160) with an EGA Display. You can also run
|
It is shown here running on an IBM PC XT (Model 5160) with an EGA Display. You can also run
|
||||||
[Windows 1.01 with a CGA Display](cga/).
|
[Windows 1.01 with a CGA Display](cga/).
|
||||||
|
|
||||||
|
A demo of an earlier pre-release version, [Windows 1.0 ("Premiere Edition")](../1.00/), is also available.
|
||||||
|
|
||||||
{% include machine.html id="ibm5160-ega-win101" %}
|
{% include machine.html id="ibm5160-ega-win101" %}
|
||||||
|
|
||||||
Directory listings of the five 360Kb distribution diskettes are provided [below](#directory-listings).
|
Directory listings of the five 360Kb distribution diskettes are provided [below](#directory-listings).
|
||||||
|
|
|
||||||
|
|
@ -670,7 +670,8 @@ function Rv(a,b){var c=0,d,e=!0;b||(b=[0,0,Yv,Array(9),0,0,0,[]]);a.Va=b[c++];c+
|
||||||
p[v++];g.cb=null;g.sa||(g.ue="");var E=p[v++];102==E&&(E=!1);"boolean"==typeof E?(u=p[v++],p=p[v],E?(v=k.A[m],Wv(k,m,!0,!0),v.Oe=!0,m=new Yu(k,v,"preload"),k.nj(v,m,u,p,!0)):aw(k,m,u,p,!0)?g.sa&&p&&bw(k,u,p,g.sa):Lb(k,!1)):void 0!==E&&g.sa&&0>g.sa.restore(E)&&(h=!1);h&&g.sa&&void 0!==g.Ta&&(g.cb=g.sa.seek(g.Gb,g.Za,g.mb));h||(e=!1)}a.G=b[c++]||0;a.Zb=b[c]||cw;return e}
|
p[v++];g.cb=null;g.sa||(g.ue="");var E=p[v++];102==E&&(E=!1);"boolean"==typeof E?(u=p[v++],p=p[v],E?(v=k.A[m],Wv(k,m,!0,!0),v.Oe=!0,m=new Yu(k,v,"preload"),k.nj(v,m,u,p,!0)):aw(k,m,u,p,!0)?g.sa&&p&&bw(k,u,p,g.sa):Lb(k,!1)):void 0!==E&&g.sa&&0>g.sa.restore(E)&&(h=!1);h&&g.sa&&void 0!==g.Ta&&(g.cb=g.sa.seek(g.Gb,g.Za,g.mb));h||(e=!1)}a.G=b[c++]||0;a.Zb=b[c]||cw;return e}
|
||||||
function Xv(a){var b=0,c=[];c[b++]=a.Va;c[b++]=0;c[b++]=a.fa;c[b++]=a.F;c[b++]=a.D;c[b++]=a.B;c[b++]=a.I;for(var d=b++,e=0,f=[],g=0;g<a.A.length;g++){var h=e++,k=a.A[g],m=0,p=[];p[m++]=k.rb;p[m++]=[k.name,k.qb,k.kb,k.$a,k.Na,k.Pe,k.wg,k.Bf,k.Cf];p[m++]=k.Za;p[m++]=k.Td+100;p[m++]=k.Gb;p[m++]=k.mb;p[m++]=k.Ud;p[m++]=k.ub;p[m++]=k.Ta;p[m++]=k.Oe;p[m++]=k.al;p[m]=k.ue;f[h]=p}c[d]=f;d=b++;for(e=0;e<a.A.length;e++)f=a.A[e],f.sa&&dw(a,f.ue,f.sa);c[d]=a.C;c[b++]=a.G;c[b]=a.Zb;return c}
|
function Xv(a){var b=0,c=[];c[b++]=a.Va;c[b++]=0;c[b++]=a.fa;c[b++]=a.F;c[b++]=a.D;c[b++]=a.B;c[b++]=a.I;for(var d=b++,e=0,f=[],g=0;g<a.A.length;g++){var h=e++,k=a.A[g],m=0,p=[];p[m++]=k.rb;p[m++]=[k.name,k.qb,k.kb,k.$a,k.Na,k.Pe,k.wg,k.Bf,k.Cf];p[m++]=k.Za;p[m++]=k.Td+100;p[m++]=k.Gb;p[m++]=k.mb;p[m++]=k.Ud;p[m++]=k.ub;p[m++]=k.Ta;p[m++]=k.Oe;p[m++]=k.al;p[m]=k.ue;f[h]=p}c[d]=f;d=b++;for(e=0;e<a.A.length;e++)f=a.A[e],f.sa&&dw(a,f.ue,f.sa);c[d]=a.C;c[b++]=a.G;c[b]=a.Zb;return c}
|
||||||
l.jj=function(a){var b;a=this.A[a];if(void 0!==a){b={};for(var c in a)b[c]=a[c]}return b};l.bl=function(a,b,c){if(a.sa){var d=a.sa.info(),e=d[2],f=d[1]*e;if(b+c<=d[0]*f)return a.Gb=Math.floor(b/f),b%=f,a.Za=Math.floor(b/e),a.mb=b%e+1,a.ub=c*d[3],a.rb=ew,!0}return!1};
|
l.jj=function(a){var b;a=this.A[a];if(void 0!==a){b={};for(var c in a)b[c]=a[c]}return b};l.bl=function(a,b,c){if(a.sa){var d=a.sa.info(),e=d[2],f=d[1]*e;if(b+c<=d[0]*f)return a.Gb=Math.floor(b/f),b%=f,a.Za=Math.floor(b/e),a.mb=b%e+1,a.ub=c*d[3],a.rb=ew,!0}return!1};
|
||||||
function Vv(a,b){b||(a.K=0);for(var c in a.L){var d=a.L[c],e=d.path||"";if(e){var f=c.charCodeAt(0)-65;if(0<=f&&f<a.A.length){if(!(d=d.name))a:{if((d=a.na.listDisks)&&d.options)for(var g=0;g<d.options.length;g++){var h=d.options[g];if(h.value==e){d=h.text;break a}}d=ta(e,!0)}!aw(a,f,d||"Unknown",e,!0)&&b&&Lb(a,!1)}else a.Da("Incorrect auto-mount settings for drive "+c+" ("+JSON.stringify(d)+")")}}return!!a.K}
|
function Vv(a,b){b||(a.K=0);for(var c in a.L){var d=a.L[c],e;if(!(e=d.path))a:{if(e=d.name){var f=a.na.listDisks;if(f&&f.options)for(var g=0;g<f.options.length;g++){var h=f.options[g];if(h.text==e){e=h.value;break a}}}e=""}if(e)if(f=c.charCodeAt(0)-65,0<=f&&f<a.A.length){if(!(d=d.name))a:{if((d=a.na.listDisks)&&d.options)for(g=0;g<d.options.length;g++)if(h=d.options[g],h.value==e){d=h.text;break a}d=ta(e,!0)}!aw(a,f,d||"Unknown",e,!0)&&b&&Lb(a,!1)}else a.Da("Incorrect auto-mount settings for drive "+
|
||||||
|
c+" ("+JSON.stringify(d)+")")}return!!a.K}
|
||||||
function Qv(a,b,c,d){var e,f=a.na.listDrives;if(f&&!isNaN(e=oa(f.value,10))&&0<=e&&e<a.A.length)if(c)if("?"==c)a.Da('Use "Choose File" and "Mount" to select and load a local disk.');else{if("??"==c){c=window.prompt("Enter the URL of a remote disk image.","")||"";if(!c)return;b=ta(c)}for(;0>aw(a,e,b,c,!1,d)&&window.confirm("Click OK to reload the original disk.\n(WARNING: All disk changes will be discarded)");){var f=a,g=c,h;for(h=0;h<f.C.length;h++)if(f.C[h][1]==g){f.C.splice(h,1);break}Wv(a,e,!1,
|
function Qv(a,b,c,d){var e,f=a.na.listDrives;if(f&&!isNaN(e=oa(f.value,10))&&0<=e&&e<a.A.length)if(c)if("?"==c)a.Da('Use "Choose File" and "Mount" to select and load a local disk.');else{if("??"==c){c=window.prompt("Enter the URL of a remote disk image.","")||"";if(!c)return;b=ta(c)}for(;0>aw(a,e,b,c,!1,d)&&window.confirm("Click OK to reload the original disk.\n(WARNING: All disk changes will be discarded)");){var f=a,g=c,h;for(h=0;h<f.C.length;h++)if(f.C[h][1]==g){f.C.splice(h,1);break}Wv(a,e,!1,
|
||||||
!0)}}else Wv(a,e);else a.Da("Unable to load the selected drive")}function aw(a,b,c,d,e,f){var g=a.A[b];if(d&&(d=d.replace("/disks/pc/","/disks/pcx86/"),g.ue.toLowerCase()!=d.toLowerCase())){Wv(a,b,e,!0);if(g.Me)return a.Da("Drive "+b+" busy"),0;g.Me=!0;e&&(g.le=!0,a.K++,t(a)&&Ob(a,"loading diskette '"+c+"'"));g.Oe=!!f;return(new Yu(a,g,"preload")).load(c,d,f,a.nj)?1:0}return-1}
|
!0)}}else Wv(a,e);else a.Da("Unable to load the selected drive")}function aw(a,b,c,d,e,f){var g=a.A[b];if(d&&(d=d.replace("/disks/pc/","/disks/pcx86/"),g.ue.toLowerCase()!=d.toLowerCase())){Wv(a,b,e,!0);if(g.Me)return a.Da("Drive "+b+" busy"),0;g.Me=!0;e&&(g.le=!0,a.K++,t(a)&&Ob(a,"loading diskette '"+c+"'"));g.Oe=!!f;return(new Yu(a,g,"preload")).load(c,d,f,a.nj)?1:0}return-1}
|
||||||
l.nj=function(a,b,c,d,e){var f;a.Me=!1;b&&(f=b.info(),b&&f[0]>a.qb||f[1]>a.kb)&&(this.Da('Diskette "'+c+'" too large for drive '+String.fromCharCode(65+a.Va)),b=null);b?(a.sa=b,a.al=c,a.ue=d,bw(this,c,d,b),f=b.info(),this.G|=fw,this.Da('Mounted diskette "'+c+'" in drive '+String.fromCharCode(65+a.Va),a.le||e),a.wg=f[0],a.Bf=f[1],a.Cf=f[2],this.pa&&this.pa.nd()):a.Oe=!1;a.le&&(a.le=!1,--this.K||Lb(this));Pv(this,a.Va)};
|
l.nj=function(a,b,c,d,e){var f;a.Me=!1;b&&(f=b.info(),b&&f[0]>a.qb||f[1]>a.kb)&&(this.Da('Diskette "'+c+'" too large for drive '+String.fromCharCode(65+a.Va)),b=null);b?(a.sa=b,a.al=c,a.ue=d,bw(this,c,d,b),f=b.info(),this.G|=fw,this.Da('Mounted diskette "'+c+'" in drive '+String.fromCharCode(65+a.Va),a.le||e),a.wg=f[0],a.Bf=f[1],a.Cf=f[2],this.pa&&this.pa.nd()):a.Oe=!1;a.le&&(a.le=!1,--this.K||Lb(this));Pv(this,a.Va)};
|
||||||
|
|
|
||||||
|
|
@ -616,7 +616,8 @@ function Cs(a,b){var c=0,d,e=!0;b||(b=[0,0,Js,Array(9),0,0,0,[]]);a.La=b[c++];c+
|
||||||
80;g.Za=9;break;case 1200:g.fb=80;g.Za=15;break;case 1440:g.fb=80,g.Za=18}}var l=a,m=d,q=f[d],y=0;h=!0;g.La=m;g.ke=g.me=!1;q||(q=[Ks,!0,0,2,0]);"boolean"==typeof q[1]&&(q[1]=[Ls,g.fb||40,g.gb||q[3],g.Za||9,g.lb||512,q[1],g.Nf,g.Re,g.Se]);g.hb=q[y++];var w=q[y++];g.name=w[0];g.fb=w[1];g.gb=w[2];g.Za=w[3];g.lb=w[4];g.ne=w[5];(g.Nf=w[6])?(g.Re=w[7],g.Se=w[8]):(g.Nf=g.fb,g.Re=g.gb,g.Se=g.Za);g.Sa=q[y++];g.sd=q[y++];g.ub=q[y++];g.sd=100<=g.sd?g.sd-100:g.sd-g.ub;g.kb=q[y++];g.td=q[y++];g.tb=q[y++];g.Pa=
|
80;g.Za=9;break;case 1200:g.fb=80;g.Za=15;break;case 1440:g.fb=80,g.Za=18}}var l=a,m=d,q=f[d],y=0;h=!0;g.La=m;g.ke=g.me=!1;q||(q=[Ks,!0,0,2,0]);"boolean"==typeof q[1]&&(q[1]=[Ls,g.fb||40,g.gb||q[3],g.Za||9,g.lb||512,q[1],g.Nf,g.Re,g.Se]);g.hb=q[y++];var w=q[y++];g.name=w[0];g.fb=w[1];g.gb=w[2];g.Za=w[3];g.lb=w[4];g.ne=w[5];(g.Nf=w[6])?(g.Re=w[7],g.Se=w[8]):(g.Nf=g.fb,g.Re=g.gb,g.Se=g.Za);g.Sa=q[y++];g.sd=q[y++];g.ub=q[y++];g.sd=100<=g.sd?g.sd-100:g.sd-g.ub;g.kb=q[y++];g.td=q[y++];g.tb=q[y++];g.Pa=
|
||||||
q[y++];g.Ra=null;g.sa||(g.Sd="");var z=q[y++];102==z&&(z=!1);"boolean"==typeof z?(w=q[y++],q=q[y],z?(y=l.A[m],Hs(l,m,!0,!0),y.me=!0,m=new fs(l,y,"preload"),l.li(y,m,w,q,!0)):Ms(l,m,w,q,!0)?g.sa&&q&&Ns(l,w,q,g.sa):pb(l,!1)):void 0!==z&&g.sa&&0>g.sa.restore(z)&&(h=!1);h&&g.sa&&void 0!==g.Pa&&(g.Ra=g.sa.seek(g.ub,g.Sa,g.kb));h||(e=!1)}a.H=b[c++]||0;a.F=b[c]||Os;return e}
|
q[y++];g.Ra=null;g.sa||(g.Sd="");var z=q[y++];102==z&&(z=!1);"boolean"==typeof z?(w=q[y++],q=q[y],z?(y=l.A[m],Hs(l,m,!0,!0),y.me=!0,m=new fs(l,y,"preload"),l.li(y,m,w,q,!0)):Ms(l,m,w,q,!0)?g.sa&&q&&Ns(l,w,q,g.sa):pb(l,!1)):void 0!==z&&g.sa&&0>g.sa.restore(z)&&(h=!1);h&&g.sa&&void 0!==g.Pa&&(g.Ra=g.sa.seek(g.ub,g.Sa,g.kb));h||(e=!1)}a.H=b[c++]||0;a.F=b[c]||Os;return e}
|
||||||
function Is(a){var b=0,c=[];c[b++]=a.La;c[b++]=0;c[b++]=a.Y;c[b++]=a.G;c[b++]=a.D;c[b++]=a.C;c[b++]=a.I;for(var d=b++,e=0,f=[],g=0;g<a.A.length;g++){var h=e++,l=a.A[g],m=0,q=[];q[m++]=l.hb;q[m++]=[l.name,l.fb,l.gb,l.Za,l.lb,l.ne,l.Nf,l.Re,l.Se];q[m++]=l.Sa;q[m++]=l.sd+100;q[m++]=l.ub;q[m++]=l.kb;q[m++]=l.td;q[m++]=l.tb;q[m++]=l.Pa;q[m++]=l.me;q[m++]=l.Sj;q[m]=l.Sd;f[h]=q}c[d]=f;d=b++;for(e=0;e<a.A.length;e++)f=a.A[e],f.sa&&Ps(a,f.Sd,f.sa);c[d]=a.B;c[b++]=a.H;c[b]=a.F;return c}
|
function Is(a){var b=0,c=[];c[b++]=a.La;c[b++]=0;c[b++]=a.Y;c[b++]=a.G;c[b++]=a.D;c[b++]=a.C;c[b++]=a.I;for(var d=b++,e=0,f=[],g=0;g<a.A.length;g++){var h=e++,l=a.A[g],m=0,q=[];q[m++]=l.hb;q[m++]=[l.name,l.fb,l.gb,l.Za,l.lb,l.ne,l.Nf,l.Re,l.Se];q[m++]=l.Sa;q[m++]=l.sd+100;q[m++]=l.ub;q[m++]=l.kb;q[m++]=l.td;q[m++]=l.tb;q[m++]=l.Pa;q[m++]=l.me;q[m++]=l.Sj;q[m]=l.Sd;f[h]=q}c[d]=f;d=b++;for(e=0;e<a.A.length;e++)f=a.A[e],f.sa&&Ps(a,f.Sd,f.sa);c[d]=a.B;c[b++]=a.H;c[b]=a.F;return c}
|
||||||
function Gs(a,b){b||(a.J=0);for(var c in a.L){var d=a.L[c],e=d.path||"";if(e){var f=c.charCodeAt(0)-65;if(0<=f&&f<a.A.length){if(!(d=d.name))a:{if((d=a.ia.listDisks)&&d.options)for(var g=0;g<d.options.length;g++){var h=d.options[g];if(h.value==e){d=h.text;break a}}d=pa(e,!0)}!Ms(a,f,d||"Unknown",e,!0)&&b&&pb(a,!1)}else a.wa("Incorrect auto-mount settings for drive "+c+" ("+JSON.stringify(d)+")")}}return!!a.J}
|
function Gs(a,b){b||(a.J=0);for(var c in a.L){var d=a.L[c],e;if(!(e=d.path))a:{if(e=d.name){var f=a.ia.listDisks;if(f&&f.options)for(var g=0;g<f.options.length;g++){var h=f.options[g];if(h.text==e){e=h.value;break a}}}e=""}if(e)if(f=c.charCodeAt(0)-65,0<=f&&f<a.A.length){if(!(d=d.name))a:{if((d=a.ia.listDisks)&&d.options)for(g=0;g<d.options.length;g++)if(h=d.options[g],h.value==e){d=h.text;break a}d=pa(e,!0)}!Ms(a,f,d||"Unknown",e,!0)&&b&&pb(a,!1)}else a.wa("Incorrect auto-mount settings for drive "+
|
||||||
|
c+" ("+JSON.stringify(d)+")")}return!!a.J}
|
||||||
function Bs(a,b,c,d){var e,f=a.ia.listDrives;if(f&&!isNaN(e=na(f.value,10))&&0<=e&&e<a.A.length)if(c)if("?"==c)a.wa('Use "Choose File" and "Mount" to select and load a local disk.');else{if("??"==c){c=window.prompt("Enter the URL of a remote disk image.","")||"";if(!c)return;b=pa(c)}for(;0>Ms(a,e,b,c,!1,d)&&window.confirm("Click OK to reload the original disk.\n(WARNING: All disk changes will be discarded)");){var f=a,g=c,h;for(h=0;h<f.B.length;h++)if(f.B[h][1]==g){f.B.splice(h,1);break}Hs(a,e,!1,
|
function Bs(a,b,c,d){var e,f=a.ia.listDrives;if(f&&!isNaN(e=na(f.value,10))&&0<=e&&e<a.A.length)if(c)if("?"==c)a.wa('Use "Choose File" and "Mount" to select and load a local disk.');else{if("??"==c){c=window.prompt("Enter the URL of a remote disk image.","")||"";if(!c)return;b=pa(c)}for(;0>Ms(a,e,b,c,!1,d)&&window.confirm("Click OK to reload the original disk.\n(WARNING: All disk changes will be discarded)");){var f=a,g=c,h;for(h=0;h<f.B.length;h++)if(f.B[h][1]==g){f.B.splice(h,1);break}Hs(a,e,!1,
|
||||||
!0)}}else Hs(a,e);else a.wa("Unable to load the selected drive")}function Ms(a,b,c,d,e,f){var g=a.A[b];if(d&&(d=d.replace("/disks/pc/","/disks/pcx86/"),g.Sd.toLowerCase()!=d.toLowerCase())){Hs(a,b,e,!0);if(g.ke)return a.wa("Drive "+b+" busy"),0;g.ke=!0;e&&(g.Gd=!0,a.J++);g.me=!!f;return(new fs(a,g,"preload")).load(c,d,f,a.li)?1:0}return-1}
|
!0)}}else Hs(a,e);else a.wa("Unable to load the selected drive")}function Ms(a,b,c,d,e,f){var g=a.A[b];if(d&&(d=d.replace("/disks/pc/","/disks/pcx86/"),g.Sd.toLowerCase()!=d.toLowerCase())){Hs(a,b,e,!0);if(g.ke)return a.wa("Drive "+b+" busy"),0;g.ke=!0;e&&(g.Gd=!0,a.J++);g.me=!!f;return(new fs(a,g,"preload")).load(c,d,f,a.li)?1:0}return-1}
|
||||||
k.li=function(a,b,c,d,e){var f;a.ke=!1;b&&(f=b.info(),b&&f[0]>a.fb||f[1]>a.gb)&&(this.wa('Diskette "'+c+'" too large for drive '+String.fromCharCode(65+a.La)),b=null);b?(a.sa=b,a.Sj=c,a.Sd=d,Ns(this,c,d,b),f=b.info(),this.H|=Qs,this.wa('Mounted diskette "'+c+'" in drive '+String.fromCharCode(65+a.La),a.Gd||e),a.Nf=f[0],a.Re=f[1],a.Se=f[2],this.oa&&bd(this.oa)):a.me=!1;a.Gd&&(a.Gd=!1,--this.J||pb(this));As(this,a.La)};
|
k.li=function(a,b,c,d,e){var f;a.ke=!1;b&&(f=b.info(),b&&f[0]>a.fb||f[1]>a.gb)&&(this.wa('Diskette "'+c+'" too large for drive '+String.fromCharCode(65+a.La)),b=null);b?(a.sa=b,a.Sj=c,a.Sd=d,Ns(this,c,d,b),f=b.info(),this.H|=Qs,this.wa('Mounted diskette "'+c+'" in drive '+String.fromCharCode(65+a.La),a.Gd||e),a.Nf=f[0],a.Re=f[1],a.Se=f[2],this.oa&&bd(this.oa)):a.me=!1;a.Gd&&(a.Gd=!1,--this.J||pb(this));As(this,a.La)};
|
||||||
|
|
|
||||||
|
|
@ -1084,7 +1084,7 @@ class FDC extends Component {
|
||||||
if (!fRemount) this.cAutoMount = 0;
|
if (!fRemount) this.cAutoMount = 0;
|
||||||
for (var sDrive in this.configMount) {
|
for (var sDrive in this.configMount) {
|
||||||
var configDrive = this.configMount[sDrive];
|
var configDrive = this.configMount[sDrive];
|
||||||
var sDiskettePath = configDrive['path'] || "";
|
var sDiskettePath = configDrive['path'] || this.findDisketteByName(configDrive['name']);
|
||||||
if (sDiskettePath) {
|
if (sDiskettePath) {
|
||||||
/*
|
/*
|
||||||
* WARNING: This conversion of drive letter to drive number, starting with A:, is very simplistic
|
* WARNING: This conversion of drive letter to drive number, starting with A:, is very simplistic
|
||||||
|
|
@ -1092,7 +1092,7 @@ class FDC extends Component {
|
||||||
*/
|
*/
|
||||||
var iDrive = sDrive.charCodeAt(0) - 0x41;
|
var iDrive = sDrive.charCodeAt(0) - 0x41;
|
||||||
if (iDrive >= 0 && iDrive < this.aDrives.length) {
|
if (iDrive >= 0 && iDrive < this.aDrives.length) {
|
||||||
var sDisketteName = configDrive['name'] || this.findDiskette(sDiskettePath) || "Unknown";
|
var sDisketteName = configDrive['name'] || this.findDisketteByPath(sDiskettePath) || "Unknown";
|
||||||
if (!this.loadDrive(iDrive, sDisketteName, sDiskettePath, true) && fRemount) {
|
if (!this.loadDrive(iDrive, sDisketteName, sDiskettePath, true) && fRemount) {
|
||||||
this.setReady(false);
|
this.setReady(false);
|
||||||
}
|
}
|
||||||
|
|
@ -1361,7 +1361,7 @@ class FDC extends Component {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* findDiskette(sPath)
|
* findDisketteByPath(sPath)
|
||||||
*
|
*
|
||||||
* This is used to deal with mount requests (eg, autoMount) that supply a path without a name;
|
* This is used to deal with mount requests (eg, autoMount) that supply a path without a name;
|
||||||
* if we can find the path in the "listDisks" control, then we return the associated disk name.
|
* if we can find the path in the "listDisks" control, then we return the associated disk name.
|
||||||
|
|
@ -1370,7 +1370,7 @@ class FDC extends Component {
|
||||||
* @param {string} sPath
|
* @param {string} sPath
|
||||||
* @return {string|null}
|
* @return {string|null}
|
||||||
*/
|
*/
|
||||||
findDiskette(sPath)
|
findDisketteByPath(sPath)
|
||||||
{
|
{
|
||||||
var controlDisks = this.bindings["listDisks"];
|
var controlDisks = this.bindings["listDisks"];
|
||||||
if (controlDisks && controlDisks.options) {
|
if (controlDisks && controlDisks.options) {
|
||||||
|
|
@ -1382,6 +1382,30 @@ class FDC extends Component {
|
||||||
return Str.getBaseName(sPath, true);
|
return Str.getBaseName(sPath, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* findDisketteByName(sName)
|
||||||
|
*
|
||||||
|
* This is used to deal with mount requests (eg, autoMount) that supply a name without a path;
|
||||||
|
* if we can find the name in the "listDisks" control, then we return the associated disk path.
|
||||||
|
*
|
||||||
|
* @this {FDC}
|
||||||
|
* @param {string|undefined} sName
|
||||||
|
* @return {string}
|
||||||
|
*/
|
||||||
|
findDisketteByName(sName)
|
||||||
|
{
|
||||||
|
if (sName) {
|
||||||
|
var controlDisks = this.bindings["listDisks"];
|
||||||
|
if (controlDisks && controlDisks.options) {
|
||||||
|
for (var i = 0; i < controlDisks.options.length; i++) {
|
||||||
|
var control = controlDisks.options[i];
|
||||||
|
if (control.text == sName) return control.value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* displayDiskette(iDrive, fUpdateDrive)
|
* displayDiskette(iDrive, fUpdateDrive)
|
||||||
*
|
*
|
||||||
|
|
|
||||||
|
|
@ -670,7 +670,8 @@ function Rv(a,b){var c=0,d,e=!0;b||(b=[0,0,Yv,Array(9),0,0,0,[]]);a.Va=b[c++];c+
|
||||||
p[v++];g.cb=null;g.sa||(g.ue="");var E=p[v++];102==E&&(E=!1);"boolean"==typeof E?(u=p[v++],p=p[v],E?(v=k.A[m],Wv(k,m,!0,!0),v.Oe=!0,m=new Yu(k,v,"preload"),k.nj(v,m,u,p,!0)):aw(k,m,u,p,!0)?g.sa&&p&&bw(k,u,p,g.sa):Lb(k,!1)):void 0!==E&&g.sa&&0>g.sa.restore(E)&&(h=!1);h&&g.sa&&void 0!==g.Ta&&(g.cb=g.sa.seek(g.Gb,g.Za,g.mb));h||(e=!1)}a.G=b[c++]||0;a.Zb=b[c]||cw;return e}
|
p[v++];g.cb=null;g.sa||(g.ue="");var E=p[v++];102==E&&(E=!1);"boolean"==typeof E?(u=p[v++],p=p[v],E?(v=k.A[m],Wv(k,m,!0,!0),v.Oe=!0,m=new Yu(k,v,"preload"),k.nj(v,m,u,p,!0)):aw(k,m,u,p,!0)?g.sa&&p&&bw(k,u,p,g.sa):Lb(k,!1)):void 0!==E&&g.sa&&0>g.sa.restore(E)&&(h=!1);h&&g.sa&&void 0!==g.Ta&&(g.cb=g.sa.seek(g.Gb,g.Za,g.mb));h||(e=!1)}a.G=b[c++]||0;a.Zb=b[c]||cw;return e}
|
||||||
function Xv(a){var b=0,c=[];c[b++]=a.Va;c[b++]=0;c[b++]=a.fa;c[b++]=a.F;c[b++]=a.D;c[b++]=a.B;c[b++]=a.I;for(var d=b++,e=0,f=[],g=0;g<a.A.length;g++){var h=e++,k=a.A[g],m=0,p=[];p[m++]=k.rb;p[m++]=[k.name,k.qb,k.kb,k.$a,k.Na,k.Pe,k.wg,k.Bf,k.Cf];p[m++]=k.Za;p[m++]=k.Td+100;p[m++]=k.Gb;p[m++]=k.mb;p[m++]=k.Ud;p[m++]=k.ub;p[m++]=k.Ta;p[m++]=k.Oe;p[m++]=k.al;p[m]=k.ue;f[h]=p}c[d]=f;d=b++;for(e=0;e<a.A.length;e++)f=a.A[e],f.sa&&dw(a,f.ue,f.sa);c[d]=a.C;c[b++]=a.G;c[b]=a.Zb;return c}
|
function Xv(a){var b=0,c=[];c[b++]=a.Va;c[b++]=0;c[b++]=a.fa;c[b++]=a.F;c[b++]=a.D;c[b++]=a.B;c[b++]=a.I;for(var d=b++,e=0,f=[],g=0;g<a.A.length;g++){var h=e++,k=a.A[g],m=0,p=[];p[m++]=k.rb;p[m++]=[k.name,k.qb,k.kb,k.$a,k.Na,k.Pe,k.wg,k.Bf,k.Cf];p[m++]=k.Za;p[m++]=k.Td+100;p[m++]=k.Gb;p[m++]=k.mb;p[m++]=k.Ud;p[m++]=k.ub;p[m++]=k.Ta;p[m++]=k.Oe;p[m++]=k.al;p[m]=k.ue;f[h]=p}c[d]=f;d=b++;for(e=0;e<a.A.length;e++)f=a.A[e],f.sa&&dw(a,f.ue,f.sa);c[d]=a.C;c[b++]=a.G;c[b]=a.Zb;return c}
|
||||||
l.jj=function(a){var b;a=this.A[a];if(void 0!==a){b={};for(var c in a)b[c]=a[c]}return b};l.bl=function(a,b,c){if(a.sa){var d=a.sa.info(),e=d[2],f=d[1]*e;if(b+c<=d[0]*f)return a.Gb=Math.floor(b/f),b%=f,a.Za=Math.floor(b/e),a.mb=b%e+1,a.ub=c*d[3],a.rb=ew,!0}return!1};
|
l.jj=function(a){var b;a=this.A[a];if(void 0!==a){b={};for(var c in a)b[c]=a[c]}return b};l.bl=function(a,b,c){if(a.sa){var d=a.sa.info(),e=d[2],f=d[1]*e;if(b+c<=d[0]*f)return a.Gb=Math.floor(b/f),b%=f,a.Za=Math.floor(b/e),a.mb=b%e+1,a.ub=c*d[3],a.rb=ew,!0}return!1};
|
||||||
function Vv(a,b){b||(a.K=0);for(var c in a.L){var d=a.L[c],e=d.path||"";if(e){var f=c.charCodeAt(0)-65;if(0<=f&&f<a.A.length){if(!(d=d.name))a:{if((d=a.na.listDisks)&&d.options)for(var g=0;g<d.options.length;g++){var h=d.options[g];if(h.value==e){d=h.text;break a}}d=ta(e,!0)}!aw(a,f,d||"Unknown",e,!0)&&b&&Lb(a,!1)}else a.Da("Incorrect auto-mount settings for drive "+c+" ("+JSON.stringify(d)+")")}}return!!a.K}
|
function Vv(a,b){b||(a.K=0);for(var c in a.L){var d=a.L[c],e;if(!(e=d.path))a:{if(e=d.name){var f=a.na.listDisks;if(f&&f.options)for(var g=0;g<f.options.length;g++){var h=f.options[g];if(h.text==e){e=h.value;break a}}}e=""}if(e)if(f=c.charCodeAt(0)-65,0<=f&&f<a.A.length){if(!(d=d.name))a:{if((d=a.na.listDisks)&&d.options)for(g=0;g<d.options.length;g++)if(h=d.options[g],h.value==e){d=h.text;break a}d=ta(e,!0)}!aw(a,f,d||"Unknown",e,!0)&&b&&Lb(a,!1)}else a.Da("Incorrect auto-mount settings for drive "+
|
||||||
|
c+" ("+JSON.stringify(d)+")")}return!!a.K}
|
||||||
function Qv(a,b,c,d){var e,f=a.na.listDrives;if(f&&!isNaN(e=oa(f.value,10))&&0<=e&&e<a.A.length)if(c)if("?"==c)a.Da('Use "Choose File" and "Mount" to select and load a local disk.');else{if("??"==c){c=window.prompt("Enter the URL of a remote disk image.","")||"";if(!c)return;b=ta(c)}for(;0>aw(a,e,b,c,!1,d)&&window.confirm("Click OK to reload the original disk.\n(WARNING: All disk changes will be discarded)");){var f=a,g=c,h;for(h=0;h<f.C.length;h++)if(f.C[h][1]==g){f.C.splice(h,1);break}Wv(a,e,!1,
|
function Qv(a,b,c,d){var e,f=a.na.listDrives;if(f&&!isNaN(e=oa(f.value,10))&&0<=e&&e<a.A.length)if(c)if("?"==c)a.Da('Use "Choose File" and "Mount" to select and load a local disk.');else{if("??"==c){c=window.prompt("Enter the URL of a remote disk image.","")||"";if(!c)return;b=ta(c)}for(;0>aw(a,e,b,c,!1,d)&&window.confirm("Click OK to reload the original disk.\n(WARNING: All disk changes will be discarded)");){var f=a,g=c,h;for(h=0;h<f.C.length;h++)if(f.C[h][1]==g){f.C.splice(h,1);break}Wv(a,e,!1,
|
||||||
!0)}}else Wv(a,e);else a.Da("Unable to load the selected drive")}function aw(a,b,c,d,e,f){var g=a.A[b];if(d&&(d=d.replace("/disks/pc/","/disks/pcx86/"),g.ue.toLowerCase()!=d.toLowerCase())){Wv(a,b,e,!0);if(g.Me)return a.Da("Drive "+b+" busy"),0;g.Me=!0;e&&(g.le=!0,a.K++,t(a)&&Ob(a,"loading diskette '"+c+"'"));g.Oe=!!f;return(new Yu(a,g,"preload")).load(c,d,f,a.nj)?1:0}return-1}
|
!0)}}else Wv(a,e);else a.Da("Unable to load the selected drive")}function aw(a,b,c,d,e,f){var g=a.A[b];if(d&&(d=d.replace("/disks/pc/","/disks/pcx86/"),g.ue.toLowerCase()!=d.toLowerCase())){Wv(a,b,e,!0);if(g.Me)return a.Da("Drive "+b+" busy"),0;g.Me=!0;e&&(g.le=!0,a.K++,t(a)&&Ob(a,"loading diskette '"+c+"'"));g.Oe=!!f;return(new Yu(a,g,"preload")).load(c,d,f,a.nj)?1:0}return-1}
|
||||||
l.nj=function(a,b,c,d,e){var f;a.Me=!1;b&&(f=b.info(),b&&f[0]>a.qb||f[1]>a.kb)&&(this.Da('Diskette "'+c+'" too large for drive '+String.fromCharCode(65+a.Va)),b=null);b?(a.sa=b,a.al=c,a.ue=d,bw(this,c,d,b),f=b.info(),this.G|=fw,this.Da('Mounted diskette "'+c+'" in drive '+String.fromCharCode(65+a.Va),a.le||e),a.wg=f[0],a.Bf=f[1],a.Cf=f[2],this.pa&&this.pa.nd()):a.Oe=!1;a.le&&(a.le=!1,--this.K||Lb(this));Pv(this,a.Va)};
|
l.nj=function(a,b,c,d,e){var f;a.Me=!1;b&&(f=b.info(),b&&f[0]>a.qb||f[1]>a.kb)&&(this.Da('Diskette "'+c+'" too large for drive '+String.fromCharCode(65+a.Va)),b=null);b?(a.sa=b,a.al=c,a.ue=d,bw(this,c,d,b),f=b.info(),this.G|=fw,this.Da('Mounted diskette "'+c+'" in drive '+String.fromCharCode(65+a.Va),a.le||e),a.wg=f[0],a.Bf=f[1],a.Cf=f[2],this.pa&&this.pa.nd()):a.Oe=!1;a.le&&(a.le=!1,--this.K||Lb(this));Pv(this,a.Va)};
|
||||||
|
|
|
||||||
File diff suppressed because one or more lines are too long
|
|
@ -60004,7 +60004,7 @@ class FDC extends Component {
|
||||||
if (!fRemount) this.cAutoMount = 0;
|
if (!fRemount) this.cAutoMount = 0;
|
||||||
for (var sDrive in this.configMount) {
|
for (var sDrive in this.configMount) {
|
||||||
var configDrive = this.configMount[sDrive];
|
var configDrive = this.configMount[sDrive];
|
||||||
var sDiskettePath = configDrive['path'] || "";
|
var sDiskettePath = configDrive['path'] || this.findDisketteByName(configDrive['name']);
|
||||||
if (sDiskettePath) {
|
if (sDiskettePath) {
|
||||||
/*
|
/*
|
||||||
* WARNING: This conversion of drive letter to drive number, starting with A:, is very simplistic
|
* WARNING: This conversion of drive letter to drive number, starting with A:, is very simplistic
|
||||||
|
|
@ -60012,7 +60012,7 @@ class FDC extends Component {
|
||||||
*/
|
*/
|
||||||
var iDrive = sDrive.charCodeAt(0) - 0x41;
|
var iDrive = sDrive.charCodeAt(0) - 0x41;
|
||||||
if (iDrive >= 0 && iDrive < this.aDrives.length) {
|
if (iDrive >= 0 && iDrive < this.aDrives.length) {
|
||||||
var sDisketteName = configDrive['name'] || this.findDiskette(sDiskettePath) || "Unknown";
|
var sDisketteName = configDrive['name'] || this.findDisketteByPath(sDiskettePath) || "Unknown";
|
||||||
if (!this.loadDrive(iDrive, sDisketteName, sDiskettePath, true) && fRemount) {
|
if (!this.loadDrive(iDrive, sDisketteName, sDiskettePath, true) && fRemount) {
|
||||||
this.setReady(false);
|
this.setReady(false);
|
||||||
}
|
}
|
||||||
|
|
@ -60281,7 +60281,7 @@ class FDC extends Component {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* findDiskette(sPath)
|
* findDisketteByPath(sPath)
|
||||||
*
|
*
|
||||||
* This is used to deal with mount requests (eg, autoMount) that supply a path without a name;
|
* This is used to deal with mount requests (eg, autoMount) that supply a path without a name;
|
||||||
* if we can find the path in the "listDisks" control, then we return the associated disk name.
|
* if we can find the path in the "listDisks" control, then we return the associated disk name.
|
||||||
|
|
@ -60290,7 +60290,7 @@ class FDC extends Component {
|
||||||
* @param {string} sPath
|
* @param {string} sPath
|
||||||
* @return {string|null}
|
* @return {string|null}
|
||||||
*/
|
*/
|
||||||
findDiskette(sPath)
|
findDisketteByPath(sPath)
|
||||||
{
|
{
|
||||||
var controlDisks = this.bindings["listDisks"];
|
var controlDisks = this.bindings["listDisks"];
|
||||||
if (controlDisks && controlDisks.options) {
|
if (controlDisks && controlDisks.options) {
|
||||||
|
|
@ -60302,6 +60302,30 @@ class FDC extends Component {
|
||||||
return Str.getBaseName(sPath, true);
|
return Str.getBaseName(sPath, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* findDisketteByName(sName)
|
||||||
|
*
|
||||||
|
* This is used to deal with mount requests (eg, autoMount) that supply a name without a path;
|
||||||
|
* if we can find the name in the "listDisks" control, then we return the associated disk path.
|
||||||
|
*
|
||||||
|
* @this {FDC}
|
||||||
|
* @param {string|undefined} sName
|
||||||
|
* @return {string}
|
||||||
|
*/
|
||||||
|
findDisketteByName(sName)
|
||||||
|
{
|
||||||
|
if (sName) {
|
||||||
|
var controlDisks = this.bindings["listDisks"];
|
||||||
|
if (controlDisks && controlDisks.options) {
|
||||||
|
for (var i = 0; i < controlDisks.options.length; i++) {
|
||||||
|
var control = controlDisks.options[i];
|
||||||
|
if (control.text == sName) return control.value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* displayDiskette(iDrive, fUpdateDrive)
|
* displayDiskette(iDrive, fUpdateDrive)
|
||||||
*
|
*
|
||||||
|
|
|
||||||
|
|
@ -616,7 +616,8 @@ function Cs(a,b){var c=0,d,e=!0;b||(b=[0,0,Js,Array(9),0,0,0,[]]);a.La=b[c++];c+
|
||||||
80;g.Za=9;break;case 1200:g.fb=80;g.Za=15;break;case 1440:g.fb=80,g.Za=18}}var l=a,m=d,q=f[d],y=0;h=!0;g.La=m;g.ke=g.me=!1;q||(q=[Ks,!0,0,2,0]);"boolean"==typeof q[1]&&(q[1]=[Ls,g.fb||40,g.gb||q[3],g.Za||9,g.lb||512,q[1],g.Nf,g.Re,g.Se]);g.hb=q[y++];var w=q[y++];g.name=w[0];g.fb=w[1];g.gb=w[2];g.Za=w[3];g.lb=w[4];g.ne=w[5];(g.Nf=w[6])?(g.Re=w[7],g.Se=w[8]):(g.Nf=g.fb,g.Re=g.gb,g.Se=g.Za);g.Sa=q[y++];g.sd=q[y++];g.ub=q[y++];g.sd=100<=g.sd?g.sd-100:g.sd-g.ub;g.kb=q[y++];g.td=q[y++];g.tb=q[y++];g.Pa=
|
80;g.Za=9;break;case 1200:g.fb=80;g.Za=15;break;case 1440:g.fb=80,g.Za=18}}var l=a,m=d,q=f[d],y=0;h=!0;g.La=m;g.ke=g.me=!1;q||(q=[Ks,!0,0,2,0]);"boolean"==typeof q[1]&&(q[1]=[Ls,g.fb||40,g.gb||q[3],g.Za||9,g.lb||512,q[1],g.Nf,g.Re,g.Se]);g.hb=q[y++];var w=q[y++];g.name=w[0];g.fb=w[1];g.gb=w[2];g.Za=w[3];g.lb=w[4];g.ne=w[5];(g.Nf=w[6])?(g.Re=w[7],g.Se=w[8]):(g.Nf=g.fb,g.Re=g.gb,g.Se=g.Za);g.Sa=q[y++];g.sd=q[y++];g.ub=q[y++];g.sd=100<=g.sd?g.sd-100:g.sd-g.ub;g.kb=q[y++];g.td=q[y++];g.tb=q[y++];g.Pa=
|
||||||
q[y++];g.Ra=null;g.sa||(g.Sd="");var z=q[y++];102==z&&(z=!1);"boolean"==typeof z?(w=q[y++],q=q[y],z?(y=l.A[m],Hs(l,m,!0,!0),y.me=!0,m=new fs(l,y,"preload"),l.li(y,m,w,q,!0)):Ms(l,m,w,q,!0)?g.sa&&q&&Ns(l,w,q,g.sa):pb(l,!1)):void 0!==z&&g.sa&&0>g.sa.restore(z)&&(h=!1);h&&g.sa&&void 0!==g.Pa&&(g.Ra=g.sa.seek(g.ub,g.Sa,g.kb));h||(e=!1)}a.H=b[c++]||0;a.F=b[c]||Os;return e}
|
q[y++];g.Ra=null;g.sa||(g.Sd="");var z=q[y++];102==z&&(z=!1);"boolean"==typeof z?(w=q[y++],q=q[y],z?(y=l.A[m],Hs(l,m,!0,!0),y.me=!0,m=new fs(l,y,"preload"),l.li(y,m,w,q,!0)):Ms(l,m,w,q,!0)?g.sa&&q&&Ns(l,w,q,g.sa):pb(l,!1)):void 0!==z&&g.sa&&0>g.sa.restore(z)&&(h=!1);h&&g.sa&&void 0!==g.Pa&&(g.Ra=g.sa.seek(g.ub,g.Sa,g.kb));h||(e=!1)}a.H=b[c++]||0;a.F=b[c]||Os;return e}
|
||||||
function Is(a){var b=0,c=[];c[b++]=a.La;c[b++]=0;c[b++]=a.Y;c[b++]=a.G;c[b++]=a.D;c[b++]=a.C;c[b++]=a.I;for(var d=b++,e=0,f=[],g=0;g<a.A.length;g++){var h=e++,l=a.A[g],m=0,q=[];q[m++]=l.hb;q[m++]=[l.name,l.fb,l.gb,l.Za,l.lb,l.ne,l.Nf,l.Re,l.Se];q[m++]=l.Sa;q[m++]=l.sd+100;q[m++]=l.ub;q[m++]=l.kb;q[m++]=l.td;q[m++]=l.tb;q[m++]=l.Pa;q[m++]=l.me;q[m++]=l.Sj;q[m]=l.Sd;f[h]=q}c[d]=f;d=b++;for(e=0;e<a.A.length;e++)f=a.A[e],f.sa&&Ps(a,f.Sd,f.sa);c[d]=a.B;c[b++]=a.H;c[b]=a.F;return c}
|
function Is(a){var b=0,c=[];c[b++]=a.La;c[b++]=0;c[b++]=a.Y;c[b++]=a.G;c[b++]=a.D;c[b++]=a.C;c[b++]=a.I;for(var d=b++,e=0,f=[],g=0;g<a.A.length;g++){var h=e++,l=a.A[g],m=0,q=[];q[m++]=l.hb;q[m++]=[l.name,l.fb,l.gb,l.Za,l.lb,l.ne,l.Nf,l.Re,l.Se];q[m++]=l.Sa;q[m++]=l.sd+100;q[m++]=l.ub;q[m++]=l.kb;q[m++]=l.td;q[m++]=l.tb;q[m++]=l.Pa;q[m++]=l.me;q[m++]=l.Sj;q[m]=l.Sd;f[h]=q}c[d]=f;d=b++;for(e=0;e<a.A.length;e++)f=a.A[e],f.sa&&Ps(a,f.Sd,f.sa);c[d]=a.B;c[b++]=a.H;c[b]=a.F;return c}
|
||||||
function Gs(a,b){b||(a.J=0);for(var c in a.L){var d=a.L[c],e=d.path||"";if(e){var f=c.charCodeAt(0)-65;if(0<=f&&f<a.A.length){if(!(d=d.name))a:{if((d=a.ia.listDisks)&&d.options)for(var g=0;g<d.options.length;g++){var h=d.options[g];if(h.value==e){d=h.text;break a}}d=pa(e,!0)}!Ms(a,f,d||"Unknown",e,!0)&&b&&pb(a,!1)}else a.wa("Incorrect auto-mount settings for drive "+c+" ("+JSON.stringify(d)+")")}}return!!a.J}
|
function Gs(a,b){b||(a.J=0);for(var c in a.L){var d=a.L[c],e;if(!(e=d.path))a:{if(e=d.name){var f=a.ia.listDisks;if(f&&f.options)for(var g=0;g<f.options.length;g++){var h=f.options[g];if(h.text==e){e=h.value;break a}}}e=""}if(e)if(f=c.charCodeAt(0)-65,0<=f&&f<a.A.length){if(!(d=d.name))a:{if((d=a.ia.listDisks)&&d.options)for(g=0;g<d.options.length;g++)if(h=d.options[g],h.value==e){d=h.text;break a}d=pa(e,!0)}!Ms(a,f,d||"Unknown",e,!0)&&b&&pb(a,!1)}else a.wa("Incorrect auto-mount settings for drive "+
|
||||||
|
c+" ("+JSON.stringify(d)+")")}return!!a.J}
|
||||||
function Bs(a,b,c,d){var e,f=a.ia.listDrives;if(f&&!isNaN(e=na(f.value,10))&&0<=e&&e<a.A.length)if(c)if("?"==c)a.wa('Use "Choose File" and "Mount" to select and load a local disk.');else{if("??"==c){c=window.prompt("Enter the URL of a remote disk image.","")||"";if(!c)return;b=pa(c)}for(;0>Ms(a,e,b,c,!1,d)&&window.confirm("Click OK to reload the original disk.\n(WARNING: All disk changes will be discarded)");){var f=a,g=c,h;for(h=0;h<f.B.length;h++)if(f.B[h][1]==g){f.B.splice(h,1);break}Hs(a,e,!1,
|
function Bs(a,b,c,d){var e,f=a.ia.listDrives;if(f&&!isNaN(e=na(f.value,10))&&0<=e&&e<a.A.length)if(c)if("?"==c)a.wa('Use "Choose File" and "Mount" to select and load a local disk.');else{if("??"==c){c=window.prompt("Enter the URL of a remote disk image.","")||"";if(!c)return;b=pa(c)}for(;0>Ms(a,e,b,c,!1,d)&&window.confirm("Click OK to reload the original disk.\n(WARNING: All disk changes will be discarded)");){var f=a,g=c,h;for(h=0;h<f.B.length;h++)if(f.B[h][1]==g){f.B.splice(h,1);break}Hs(a,e,!1,
|
||||||
!0)}}else Hs(a,e);else a.wa("Unable to load the selected drive")}function Ms(a,b,c,d,e,f){var g=a.A[b];if(d&&(d=d.replace("/disks/pc/","/disks/pcx86/"),g.Sd.toLowerCase()!=d.toLowerCase())){Hs(a,b,e,!0);if(g.ke)return a.wa("Drive "+b+" busy"),0;g.ke=!0;e&&(g.Gd=!0,a.J++);g.me=!!f;return(new fs(a,g,"preload")).load(c,d,f,a.li)?1:0}return-1}
|
!0)}}else Hs(a,e);else a.wa("Unable to load the selected drive")}function Ms(a,b,c,d,e,f){var g=a.A[b];if(d&&(d=d.replace("/disks/pc/","/disks/pcx86/"),g.Sd.toLowerCase()!=d.toLowerCase())){Hs(a,b,e,!0);if(g.ke)return a.wa("Drive "+b+" busy"),0;g.ke=!0;e&&(g.Gd=!0,a.J++);g.me=!!f;return(new fs(a,g,"preload")).load(c,d,f,a.li)?1:0}return-1}
|
||||||
k.li=function(a,b,c,d,e){var f;a.ke=!1;b&&(f=b.info(),b&&f[0]>a.fb||f[1]>a.gb)&&(this.wa('Diskette "'+c+'" too large for drive '+String.fromCharCode(65+a.La)),b=null);b?(a.sa=b,a.Sj=c,a.Sd=d,Ns(this,c,d,b),f=b.info(),this.H|=Qs,this.wa('Mounted diskette "'+c+'" in drive '+String.fromCharCode(65+a.La),a.Gd||e),a.Nf=f[0],a.Re=f[1],a.Se=f[2],this.oa&&bd(this.oa)):a.me=!1;a.Gd&&(a.Gd=!1,--this.J||pb(this));As(this,a.La)};
|
k.li=function(a,b,c,d,e){var f;a.ke=!1;b&&(f=b.info(),b&&f[0]>a.fb||f[1]>a.gb)&&(this.wa('Diskette "'+c+'" too large for drive '+String.fromCharCode(65+a.La)),b=null);b?(a.sa=b,a.Sj=c,a.Sd=d,Ns(this,c,d,b),f=b.info(),this.H|=Qs,this.wa('Mounted diskette "'+c+'" in drive '+String.fromCharCode(65+a.La),a.Gd||e),a.Nf=f[0],a.Re=f[1],a.Se=f[2],this.oa&&bd(this.oa)):a.me=!1;a.Gd&&(a.Gd=!1,--this.J||pb(this));As(this,a.La)};
|
||||||
|
|
|
||||||
File diff suppressed because one or more lines are too long
Loading…
Reference in a new issue