80386 CPU detection fix
This commit is contained in:
parent
32675aea39
commit
75d8e1e193
24 changed files with 123 additions and 60 deletions
|
|
@ -7,17 +7,17 @@ root = true
|
||||||
end_of_line = lf
|
end_of_line = lf
|
||||||
insert_final_newline = true
|
insert_final_newline = true
|
||||||
|
|
||||||
[*.BAS,*.bas]
|
[*.{BAS,bas}]
|
||||||
indent_style = space
|
indent_style = space
|
||||||
indent_size = 8
|
indent_size = 8
|
||||||
trim_trailing_whitespace = true
|
trim_trailing_whitespace = true
|
||||||
|
|
||||||
[{*.ASM,*.INC,*.asm,*.inc,*.nasm,*.lst}]
|
[*.{ASM,INC,asm,inc,nasm,lst}]
|
||||||
indent_style = tab
|
indent_style = tab
|
||||||
indent_size = 8
|
indent_size = 8
|
||||||
trim_trailing_whitespace = true
|
trim_trailing_whitespace = true
|
||||||
|
|
||||||
[{*.C,*.H,*.c,*.h}]
|
[*.{C,H,c,h,xml,xsl}]
|
||||||
indent_style = tab
|
indent_style = tab
|
||||||
indent_size = 4
|
indent_size = 4
|
||||||
trim_trailing_whitespace = true
|
trim_trailing_whitespace = true
|
||||||
|
|
@ -27,26 +27,21 @@ indent_style = space
|
||||||
indent_size = 4
|
indent_size = 4
|
||||||
trim_trailing_whitespace = true
|
trim_trailing_whitespace = true
|
||||||
|
|
||||||
[*.json]
|
|
||||||
indent_style = space
|
|
||||||
indent_size = 2
|
|
||||||
trim_trailing_whitespace = true
|
|
||||||
|
|
||||||
[*.map]
|
[*.map]
|
||||||
indent_style = space
|
indent_style = space
|
||||||
indent_size = 4
|
indent_size = 4
|
||||||
trim_trailing_whitespace = true
|
trim_trailing_whitespace = true
|
||||||
|
|
||||||
|
[*.json]
|
||||||
|
indent_style = space
|
||||||
|
indent_size = 2
|
||||||
|
trim_trailing_whitespace = true
|
||||||
|
|
||||||
[*.md]
|
[*.md]
|
||||||
indent_style = tab
|
indent_style = tab
|
||||||
indent_size = 4
|
indent_size = 4
|
||||||
trim_trailing_whitespace = false
|
trim_trailing_whitespace = false
|
||||||
|
|
||||||
[*.xml]
|
|
||||||
indent_style = tab
|
|
||||||
indent_size = 4
|
|
||||||
trim_trailing_whitespace = true
|
|
||||||
|
|
||||||
[{package.json,.travis.yml}]
|
[{package.json,.travis.yml}]
|
||||||
indent_style = space
|
indent_style = space
|
||||||
indent_size = 2
|
indent_size = 2
|
||||||
|
|
|
||||||
1
.gitignore
vendored
1
.gitignore
vendored
|
|
@ -15,6 +15,7 @@ static
|
||||||
tmp
|
tmp
|
||||||
/books
|
/books
|
||||||
/notes
|
/notes
|
||||||
|
/src
|
||||||
/states
|
/states
|
||||||
/videos
|
/videos
|
||||||
/web
|
/web
|
||||||
|
|
|
||||||
|
|
@ -9,10 +9,10 @@
|
||||||
<releaseDate/>
|
<releaseDate/>
|
||||||
<machine href="/devices/pc/machine/5170/ega/1152kb/rev3/machine.xml"/>
|
<machine href="/devices/pc/machine/5170/ega/1152kb/rev3/machine.xml"/>
|
||||||
<disk id="disk01" size="368640" chs="40:2:9" img="static/COMPAQ-DOS310-DISK1.img" href="/disks/pc/dos/compaq/3.10/COMPAQ-DOS310-DISK1.json" md5="a2a329b9d06e5bd425050a10e14e2f92" md5json="c212bb6bcd6a4c5853be2c390df66536">
|
<disk id="disk01" size="368640" chs="40:2:9" img="static/COMPAQ-DOS310-DISK1.img" href="/disks/pc/dos/compaq/3.10/COMPAQ-DOS310-DISK1.json" md5="a2a329b9d06e5bd425050a10e14e2f92" md5json="c212bb6bcd6a4c5853be2c390df66536">
|
||||||
<name>COMPAQ DOS 3.10 (1)</name>
|
<name>COMPAQ DOS 3.10 (Disk 1)</name>
|
||||||
</disk>
|
</disk>
|
||||||
<disk id="disk02" size="368640" chs="40:2:9" img="static/COMPAQ-DOS310-DISK2.img" href="/disks/pc/dos/compaq/3.10/COMPAQ-DOS310-DISK2.json" md5="4f6e5ec142fbffc36ea600c262677580" md5json="0770c611514970520b6905223c246ee9">
|
<disk id="disk02" size="368640" chs="40:2:9" img="static/COMPAQ-DOS310-DISK2.img" href="/disks/pc/dos/compaq/3.10/COMPAQ-DOS310-DISK2.json" md5="4f6e5ec142fbffc36ea600c262677580" md5json="0770c611514970520b6905223c246ee9">
|
||||||
<name>COMPAQ DOS 3.10 (2)</name>
|
<name>COMPAQ DOS 3.10 (Disk 2)</name>
|
||||||
</disk>
|
</disk>
|
||||||
<disk id="disk03" size="1228800" chs="80:2:15" img="static/COMPAQ-DOS310-PERSONAL.img" href="/disks/pc/dos/compaq/3.10/COMPAQ-DOS310-PERSONAL.json" md5="df312165dc2303aab9417677a50df477" md5json="50ed5b7489569d11a9391287259eeda1">
|
<disk id="disk03" size="1228800" chs="80:2:15" img="static/COMPAQ-DOS310-PERSONAL.img" href="/disks/pc/dos/compaq/3.10/COMPAQ-DOS310-PERSONAL.json" md5="df312165dc2303aab9417677a50df477" md5json="50ed5b7489569d11a9391287259eeda1">
|
||||||
<name>COMPAQ DOS 3.10 (Personal)</name>
|
<name>COMPAQ DOS 3.10 (Personal)</name>
|
||||||
|
|
|
||||||
|
|
@ -9,21 +9,21 @@
|
||||||
<releaseDate/>
|
<releaseDate/>
|
||||||
<machine href="/devices/pc/machine/5170/ega/1152kb/rev3/machine.xml"/>
|
<machine href="/devices/pc/machine/5170/ega/1152kb/rev3/machine.xml"/>
|
||||||
<disk id="disk01" size="737280" chs="80:2:9" img="static/COMPAQ-DOS331-DISK1.img" href="/disks/pc/dos/compaq/3.31/COMPAQ-DOS331-DISK1.json" md5="a2e8c19e0c712b7865d71b4b85b15f7b" md5json="56928a71999a13d3bcdff895ff222ef6">
|
<disk id="disk01" size="737280" chs="80:2:9" img="static/COMPAQ-DOS331-DISK1.img" href="/disks/pc/dos/compaq/3.31/COMPAQ-DOS331-DISK1.json" md5="a2e8c19e0c712b7865d71b4b85b15f7b" md5json="56928a71999a13d3bcdff895ff222ef6">
|
||||||
<name>COMPAQ DOS 3.31 (1)</name>
|
<name>COMPAQ DOS 3.31 (Disk 1)</name>
|
||||||
</disk>
|
</disk>
|
||||||
<disk id="disk02" size="737280" chs="80:2:9" img="static/COMPAQ-DOS331-DISK2.img" href="/disks/pc/dos/compaq/3.31/COMPAQ-DOS331-DISK2.json" md5="e7a92e5d49cfcbce27c76a76e41cef38" md5json="2e11bbeb4b83922789c8117d2d772c05">
|
<disk id="disk02" size="737280" chs="80:2:9" img="static/COMPAQ-DOS331-DISK2.img" href="/disks/pc/dos/compaq/3.31/COMPAQ-DOS331-DISK2.json" md5="e7a92e5d49cfcbce27c76a76e41cef38" md5json="2e11bbeb4b83922789c8117d2d772c05">
|
||||||
<name>COMPAQ DOS 3.31 (2)</name>
|
<name>COMPAQ DOS 3.31 (Disk 2)</name>
|
||||||
</disk>
|
</disk>
|
||||||
<disk id="disk03" size="737280" chs="80:2:9" img="static/COMPAQ-DOS331-DISK3.img" href="/disks/pc/dos/compaq/3.31/COMPAQ-DOS331-DISK3.json" md5="bfa7bb36ff3b3dbd43769d0938bcd33c" md5json="63ca40a545c2ab97e5f29bb4e7f93cc7">
|
<disk id="disk03" size="737280" chs="80:2:9" img="static/COMPAQ-DOS331-DISK3.img" href="/disks/pc/dos/compaq/3.31/COMPAQ-DOS331-DISK3.json" md5="bfa7bb36ff3b3dbd43769d0938bcd33c" md5json="63ca40a545c2ab97e5f29bb4e7f93cc7">
|
||||||
<name>COMPAQ DOS 3.31 (3)</name>
|
<name>COMPAQ DOS 3.31 (Disk 3)</name>
|
||||||
</disk>
|
</disk>
|
||||||
<disk id="disk04" size="737280" chs="80:2:9" img="static/COMPAQ-DOS331-DISK4.img" href="/disks/pc/dos/compaq/3.31/COMPAQ-DOS331-DISK4.json" md5="92c26885c372db846ce990fb5e16c745" md5json="525acd75acd621e70743e5315be33dbf">
|
<disk id="disk04" size="737280" chs="80:2:9" img="static/COMPAQ-DOS331-DISK4.img" href="/disks/pc/dos/compaq/3.31/COMPAQ-DOS331-DISK4.json" md5="92c26885c372db846ce990fb5e16c745" md5json="525acd75acd621e70743e5315be33dbf">
|
||||||
<name>COMPAQ DOS 3.31 (4)</name>
|
<name>COMPAQ DOS 3.31 (Disk 4)</name>
|
||||||
</disk>
|
</disk>
|
||||||
<disk id="disk05" size="737280" chs="80:2:9" img="static/COMPAQ-DOS331-DISK5.img" href="/disks/pc/dos/compaq/3.31/COMPAQ-DOS331-DISK5.json" md5="931554c9bdec9c26ca3e7c301b7df10f" md5json="6d58d8f3a88f7621c8ca39af118cd504">
|
<disk id="disk05" size="737280" chs="80:2:9" img="static/COMPAQ-DOS331-DISK5.img" href="/disks/pc/dos/compaq/3.31/COMPAQ-DOS331-DISK5.json" md5="931554c9bdec9c26ca3e7c301b7df10f" md5json="6d58d8f3a88f7621c8ca39af118cd504">
|
||||||
<name>COMPAQ DOS 3.31 (5)</name>
|
<name>COMPAQ DOS 3.31 (Disk 5)</name>
|
||||||
</disk>
|
</disk>
|
||||||
<disk id="disk06" size="368640" chs="40:2:9" img="static/COMPAQ-DOS331-DIAG.img" href="/disks/pc/dos/compaq/3.31/COMPAQ-DOS331-DIAG.json" md5="6fc3678180e8d8c2ff5e1c3d99f14d08" md5json="a5e0a418db4fe09c13cfd86635753a05">
|
<disk id="disk06" size="368640" chs="40:2:9" img="static/COMPAQ-DOS331-DIAG.img" href="/disks/pc/dos/compaq/3.31/COMPAQ-DOS331-DIAG.json" md5="6fc3678180e8d8c2ff5e1c3d99f14d08" md5json="a5e0a418db4fe09c13cfd86635753a05">
|
||||||
<name>COMPAQ DOS 3.31 (DIAG)</name>
|
<name>COMPAQ DOS 3.31 (Diagnostic)</name>
|
||||||
</disk>
|
</disk>
|
||||||
</manifest>
|
</manifest>
|
||||||
|
|
|
||||||
|
|
@ -22,9 +22,9 @@
|
||||||
<name>PC-DOS 7.00 (SETUP Disk 5)</name>
|
<name>PC-DOS 7.00 (SETUP Disk 5)</name>
|
||||||
</disk>
|
</disk>
|
||||||
<disk id="disk06" size="1228800" chs="80:2:15" img="static/PCDOS700-1200.img" href="/disks/pc/dos/ibm/7.00/PCDOS700-1200.json" md5="ea7df13867ae2d7838c0f620281aa295" md5json="039a2b79ad43d69bc9b82ba18ad6c10b">
|
<disk id="disk06" size="1228800" chs="80:2:15" img="static/PCDOS700-1200.img" href="/disks/pc/dos/ibm/7.00/PCDOS700-1200.json" md5="ea7df13867ae2d7838c0f620281aa295" md5json="039a2b79ad43d69bc9b82ba18ad6c10b">
|
||||||
<name>PC-DOS 7.00 (1.2Mb Disk)</name>
|
<name>PC-DOS 7.00 (1.2M Disk)</name>
|
||||||
</disk>
|
</disk>
|
||||||
<disk id="disk07" size="1474560" chs="80:2:18" img="static/PCDOS700-1440.img" href="/disks/pc/dos/ibm/7.00/PCDOS700-1440.json" md5="72f453733c6d4a102fdad4366a7daf1f" md5json="fcbc9523367a18ee0efa0dccace722c2">
|
<disk id="disk07" size="1474560" chs="80:2:18" img="static/PCDOS700-1440.img" href="/disks/pc/dos/ibm/7.00/PCDOS700-1440.json" md5="72f453733c6d4a102fdad4366a7daf1f" md5json="fcbc9523367a18ee0efa0dccace722c2">
|
||||||
<name>PC-DOS 7.00 (1.44Mb Disk)</name>
|
<name>PC-DOS 7.00 (1.44M Disk)</name>
|
||||||
</disk>
|
</disk>
|
||||||
</manifest>
|
</manifest>
|
||||||
|
|
|
||||||
1
disks/pc/dos/microsoft/5.00/360K/MSDOS500-DISK01.json
Normal file
1
disks/pc/dos/microsoft/5.00/360K/MSDOS500-DISK01.json
Normal file
File diff suppressed because one or more lines are too long
1
disks/pc/dos/microsoft/5.00/360K/MSDOS500-DISK02.json
Normal file
1
disks/pc/dos/microsoft/5.00/360K/MSDOS500-DISK02.json
Normal file
File diff suppressed because one or more lines are too long
1
disks/pc/dos/microsoft/5.00/360K/MSDOS500-DISK03.json
Normal file
1
disks/pc/dos/microsoft/5.00/360K/MSDOS500-DISK03.json
Normal file
File diff suppressed because one or more lines are too long
1
disks/pc/dos/microsoft/5.00/360K/MSDOS500-DISK04.json
Normal file
1
disks/pc/dos/microsoft/5.00/360K/MSDOS500-DISK04.json
Normal file
File diff suppressed because one or more lines are too long
1
disks/pc/dos/microsoft/5.00/360K/MSDOS500-DISK05.json
Normal file
1
disks/pc/dos/microsoft/5.00/360K/MSDOS500-DISK05.json
Normal file
File diff suppressed because one or more lines are too long
1
disks/pc/dos/microsoft/5.00/720K/MSDOS500-DISK01.json
Normal file
1
disks/pc/dos/microsoft/5.00/720K/MSDOS500-DISK01.json
Normal file
File diff suppressed because one or more lines are too long
1
disks/pc/dos/microsoft/5.00/720K/MSDOS500-DISK02.json
Normal file
1
disks/pc/dos/microsoft/5.00/720K/MSDOS500-DISK02.json
Normal file
File diff suppressed because one or more lines are too long
1
disks/pc/dos/microsoft/5.00/720K/MSDOS500-DISK03.json
Normal file
1
disks/pc/dos/microsoft/5.00/720K/MSDOS500-DISK03.json
Normal file
File diff suppressed because one or more lines are too long
34
disks/pc/dos/microsoft/5.00/manifest.xml
Normal file
34
disks/pc/dos/microsoft/5.00/manifest.xml
Normal file
|
|
@ -0,0 +1,34 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<?xml-stylesheet type="text/xsl" href="/versions/pcjs/1.18.4/manifest.xsl"?>
|
||||||
|
<manifest type="software">
|
||||||
|
<title>MS-DOS</title>
|
||||||
|
<version>5.00</version>
|
||||||
|
<type>DOS</type>
|
||||||
|
<category>Operating System</category>
|
||||||
|
<author>Microsoft</author>
|
||||||
|
<releaseDate/>
|
||||||
|
<disk id="disk01" size="368640" chs="40:2:9" img="static/360K/MSDOS500-DISK01.img" href="/disks/pc/dos/microsoft/5.00/360K/MSDOS500-DISK01.json" md5="7e9745c5f029d3b6d212ea807af63fef" md5json="0cec25b697c02062df948eb2a54c7cd0">
|
||||||
|
<name>MS-DOS 5.00 (360K Disk 1)</name>
|
||||||
|
</disk>
|
||||||
|
<disk id="disk02" size="368640" chs="40:2:9" img="static/360K/MSDOS500-DISK02.img" href="/disks/pc/dos/microsoft/5.00/360K/MSDOS500-DISK02.json" md5="3dc6fa07e08b09b1559955cb7c91cbde" md5json="477635397d1ce6de3dcf2b6f58f032cf">
|
||||||
|
<name>MS-DOS 5.00 (360K Disk 2)</name>
|
||||||
|
</disk>
|
||||||
|
<disk id="disk03" size="368640" chs="40:2:9" img="static/360K/MSDOS500-DISK03.img" href="/disks/pc/dos/microsoft/5.00/360K/MSDOS500-DISK03.json" md5="adcfcbcf89f3f11f3b98040f702ff42b" md5json="d6c6000cc3723045a314a35aa47ff17d">
|
||||||
|
<name>MS-DOS 5.00 (360K Disk 3)</name>
|
||||||
|
</disk>
|
||||||
|
<disk id="disk04" size="368640" chs="40:2:9" img="static/360K/MSDOS500-DISK04.img" href="/disks/pc/dos/microsoft/5.00/360K/MSDOS500-DISK04.json" md5="424a3f240db1e6f5123702e2e418b4c3" md5json="2179d909243e8c102c0b6275b9d7c003">
|
||||||
|
<name>MS-DOS 5.00 (360K Disk 4)</name>
|
||||||
|
</disk>
|
||||||
|
<disk id="disk05" size="368640" chs="40:2:9" img="static/360K/MSDOS500-DISK05.img" href="/disks/pc/dos/microsoft/5.00/360K/MSDOS500-DISK05.json" md5="1cab22f71e27374c5d23cae01930a01e" md5json="9203b7234a7262fad8207e0dc4052a82">
|
||||||
|
<name>MS-DOS 5.00 (360K Disk 5)</name>
|
||||||
|
</disk>
|
||||||
|
<disk id="disk06" size="737280" chs="80:2:9" img="static/720K/MSDOS500-DISK01.img" href="/disks/pc/dos/microsoft/5.00/720K/MSDOS500-DISK01.json" md5="637b4c237b2932eb2ba5661ef6758162" md5json="a2e79fb22adc034ed5fe638301120608">
|
||||||
|
<name>MS-DOS 5.00 (720K Disk 1)</name>
|
||||||
|
</disk>
|
||||||
|
<disk id="disk07" size="737280" chs="80:2:9" img="static/720K/MSDOS500-DISK02.img" href="/disks/pc/dos/microsoft/5.00/720K/MSDOS500-DISK02.json" md5="03ee29d66e84650165dfd97c304b9f3a" md5json="f0ac77b0fce97c1635f99c9f443a6b7b">
|
||||||
|
<name>MS-DOS 5.00 (720K Disk 2)</name>
|
||||||
|
</disk>
|
||||||
|
<disk id="disk08" size="737280" chs="80:2:9" img="static/720K/MSDOS500-DISK03.img" href="/disks/pc/dos/microsoft/5.00/720K/MSDOS500-DISK03.json" md5="6864241d46bbf1f92383f0840f432f62" md5json="b0f3292650a2e82066af42583d0bb297">
|
||||||
|
<name>MS-DOS 5.00 (720K Disk 3)</name>
|
||||||
|
</disk>
|
||||||
|
</manifest>
|
||||||
|
|
@ -12,7 +12,7 @@
|
||||||
<keyboard ref="/devices/pc/keyboard/keyboard-minimal-functions.xml"/>
|
<keyboard ref="/devices/pc/keyboard/keyboard-minimal-functions.xml"/>
|
||||||
<debugger id="debugger" messages="fault" commands=""/>
|
<debugger id="debugger" messages="fault" commands=""/>
|
||||||
<panel ref="/devices/pc/panel/wide.xml"/>
|
<panel ref="/devices/pc/panel/wide.xml"/>
|
||||||
<fdc ref="/disks/pc/library.xml" width="320px" automount='{A:{name:"OS/2 1.0 (1.44Mb Install)",path:"/disks/pc/os2/ibm/1.0/OS210-INSTALL.json"}}'/>
|
<fdc ref="/disks/pc/library.xml" width="320px" automount='{A:{name:"OS/2 1.0 (1.44M Install)",path:"/disks/pc/os2/ibm/1.0/OS210-INSTALL.json"}}'/>
|
||||||
<hdc id="hdcAT" type="at" drives='[{name:"20Mb Hard Disk",type:2}]'/>
|
<hdc id="hdcAT" type="at" drives='[{name:"20Mb Hard Disk",type:2}]'/>
|
||||||
<chipset id="chipset" model="5170" floppies="[1440,1200]"/>
|
<chipset id="chipset" model="5170" floppies="[1440,1200]"/>
|
||||||
<serial id="com1" adapter="1"/>
|
<serial id="com1" adapter="1"/>
|
||||||
|
|
|
||||||
|
|
@ -4,15 +4,15 @@
|
||||||
<title>IBM OS/2 1.0</title>
|
<title>IBM OS/2 1.0</title>
|
||||||
<machine href="/disks/pc/os2/ibm/1.0/machine.xml"/>
|
<machine href="/disks/pc/os2/ibm/1.0/machine.xml"/>
|
||||||
<disk id="disk00" size="1474560" chs="80:2:18" img="static/OS210-INSTALL.img" href="/disks/pc/os2/ibm/1.0/OS210-INSTALL.json" md5="b0410a7cd0d8bf188028729d1634bf75" md5json="4e690e5d55de300077c442762c7b7f97">
|
<disk id="disk00" size="1474560" chs="80:2:18" img="static/OS210-INSTALL.img" href="/disks/pc/os2/ibm/1.0/OS210-INSTALL.json" md5="b0410a7cd0d8bf188028729d1634bf75" md5json="4e690e5d55de300077c442762c7b7f97">
|
||||||
<name>OS/2 1.0 (1.44Mb Install)</name>
|
<name>OS/2 1.0 (1.44M Install)</name>
|
||||||
</disk>
|
</disk>
|
||||||
<disk id="disk01" size="1474560" chs="80:2:18" img="static/OS210-DISK1.img" href="/disks/pc/os2/ibm/1.0/OS210-DISK1.json" md5="11efee476f78824cab1201a2dd3fb8f5" md5json="29fd631c5a5ca00cf6598fb8288b7c35">
|
<disk id="disk01" size="1474560" chs="80:2:18" img="static/OS210-DISK1.img" href="/disks/pc/os2/ibm/1.0/OS210-DISK1.json" md5="11efee476f78824cab1201a2dd3fb8f5" md5json="29fd631c5a5ca00cf6598fb8288b7c35">
|
||||||
<name>OS/2 1.0 (1.44Mb Disk 1)</name>
|
<name>OS/2 1.0 (1.44M Disk 1)</name>
|
||||||
</disk>
|
</disk>
|
||||||
<disk id="disk02" size="1474560" chs="80:2:18" img="static/OS210-DISK2.img" href="/disks/pc/os2/ibm/1.0/OS210-DISK2.json" md5="d5c03e696497729fdd89dce0e18ad7ff" md5json="d50dfed5f7d55408d9af75b382afde89">
|
<disk id="disk02" size="1474560" chs="80:2:18" img="static/OS210-DISK2.img" href="/disks/pc/os2/ibm/1.0/OS210-DISK2.json" md5="d5c03e696497729fdd89dce0e18ad7ff" md5json="d50dfed5f7d55408d9af75b382afde89">
|
||||||
<name>OS/2 1.0 (1.44Mb Disk 2)</name>
|
<name>OS/2 1.0 (1.44M Disk 2)</name>
|
||||||
</disk>
|
</disk>
|
||||||
<disk id="disk03" size="1474560" chs="80:2:18" img="static/OS210-DISK3.img" href="/disks/pc/os2/ibm/1.0/OS210-DISK3.json" md5="fd80ec4dc815bcdacf7879c50b7aa44a" md5json="7d10df7177f4a80da285d8b7b586740d">
|
<disk id="disk03" size="1474560" chs="80:2:18" img="static/OS210-DISK3.img" href="/disks/pc/os2/ibm/1.0/OS210-DISK3.json" md5="fd80ec4dc815bcdacf7879c50b7aa44a" md5json="7d10df7177f4a80da285d8b7b586740d">
|
||||||
<name>OS/2 1.0 (1.44Mb Disk 3)</name>
|
<name>OS/2 1.0 (1.44M Disk 3)</name>
|
||||||
</disk>
|
</disk>
|
||||||
</manifest>
|
</manifest>
|
||||||
|
|
|
||||||
|
|
@ -3,24 +3,24 @@
|
||||||
<manifest type="software">
|
<manifest type="software">
|
||||||
<title>IBM OS/2 1.1</title>
|
<title>IBM OS/2 1.1</title>
|
||||||
<disk id="disk00" size="1474560" chs="80:2:18" img="static/OS211-INSTALLATION.img" href="/disks/pc/os2/ibm/1.1/OS211-INSTALLATION.json" md5="64b1a50f35385f326e7b59b17b417769" md5json="6510aede5a434ae794a3ee9e8d09d6c9">
|
<disk id="disk00" size="1474560" chs="80:2:18" img="static/OS211-INSTALLATION.img" href="/disks/pc/os2/ibm/1.1/OS211-INSTALLATION.json" md5="64b1a50f35385f326e7b59b17b417769" md5json="6510aede5a434ae794a3ee9e8d09d6c9">
|
||||||
<name>OS/2 1.1 (1.44Mb Install Disk)</name>
|
<name>OS/2 1.1 (1.44M Install Disk)</name>
|
||||||
</disk>
|
</disk>
|
||||||
<disk id="disk01" size="1474560" chs="80:2:18" img="static/OS211-DISK01.img" href="/disks/pc/os2/ibm/1.1/OS211-DISK01.json" md5="5b0526049c097e7afa54073f13cf87d1" md5json="f74cb91702c9a502418139601269280d">
|
<disk id="disk01" size="1474560" chs="80:2:18" img="static/OS211-DISK01.img" href="/disks/pc/os2/ibm/1.1/OS211-DISK01.json" md5="5b0526049c097e7afa54073f13cf87d1" md5json="f74cb91702c9a502418139601269280d">
|
||||||
<name>OS/2 1.1 (1.44Mb Disk 1)</name>
|
<name>OS/2 1.1 (1.44M Disk 1)</name>
|
||||||
</disk>
|
</disk>
|
||||||
<disk id="disk02" size="1474560" chs="80:2:18" img="static/OS211-DISK02.img" href="/disks/pc/os2/ibm/1.1/OS211-DISK02.json" md5="ebd9cc64c9c24f79b63836fcce58b0f0" md5json="63f462d7abb7367145d35789a547f913">
|
<disk id="disk02" size="1474560" chs="80:2:18" img="static/OS211-DISK02.img" href="/disks/pc/os2/ibm/1.1/OS211-DISK02.json" md5="ebd9cc64c9c24f79b63836fcce58b0f0" md5json="63f462d7abb7367145d35789a547f913">
|
||||||
<name>OS/2 1.1 (1.44Mb Disk 2)</name>
|
<name>OS/2 1.1 (1.44M Disk 2)</name>
|
||||||
</disk>
|
</disk>
|
||||||
<disk id="disk03" size="1474560" chs="80:2:18" img="static/OS211-DISK03.img" href="/disks/pc/os2/ibm/1.1/OS211-DISK03.json" md5="f4b85ca988d76f876c2f0a00cf4b57e8" md5json="f07266e75f25f5f5a5ce4e299d9dcff6">
|
<disk id="disk03" size="1474560" chs="80:2:18" img="static/OS211-DISK03.img" href="/disks/pc/os2/ibm/1.1/OS211-DISK03.json" md5="f4b85ca988d76f876c2f0a00cf4b57e8" md5json="f07266e75f25f5f5a5ce4e299d9dcff6">
|
||||||
<name>OS/2 1.1 (1.44Mb Disk 3)</name>
|
<name>OS/2 1.1 (1.44M Disk 3)</name>
|
||||||
</disk>
|
</disk>
|
||||||
<disk id="disk04" size="1474560" chs="80:2:18" img="static/OS211-DISK04.img" href="/disks/pc/os2/ibm/1.1/OS211-DISK04.json" md5="67eb167bca6cf7b169011fdaedf4d358" md5json="e821febc52f1736ee2714bbe6aaf6c83">
|
<disk id="disk04" size="1474560" chs="80:2:18" img="static/OS211-DISK04.img" href="/disks/pc/os2/ibm/1.1/OS211-DISK04.json" md5="67eb167bca6cf7b169011fdaedf4d358" md5json="e821febc52f1736ee2714bbe6aaf6c83">
|
||||||
<name>OS/2 1.1 (1.44Mb Disk 4)</name>
|
<name>OS/2 1.1 (1.44M Disk 4)</name>
|
||||||
</disk>
|
</disk>
|
||||||
<disk id="disk05" size="1474560" chs="80:2:18" img="static/OS211-DEVICES.img" href="/disks/pc/os2/ibm/1.1/OS211-DEVICES.json" md5="9d3dfde0206b562beae90cab21f9eba5" md5json="2cb39da33b61e762b87259b59bf5ccf5">
|
<disk id="disk05" size="1474560" chs="80:2:18" img="static/OS211-DEVICES.img" href="/disks/pc/os2/ibm/1.1/OS211-DEVICES.json" md5="9d3dfde0206b562beae90cab21f9eba5" md5json="2cb39da33b61e762b87259b59bf5ccf5">
|
||||||
<name>OS/2 1.1 (1.44Mb Devices Disk)</name>
|
<name>OS/2 1.1 (1.44M Devices Disk)</name>
|
||||||
</disk>
|
</disk>
|
||||||
<disk id="disk06" size="1474560" chs="80:2:18" img="static/OS211-PRINTERS.img" href="/disks/pc/os2/ibm/1.1/OS211-PRINTERS.json" md5="36cd9ea1e7184872548598dae4b60cb8" md5json="3ddd4aa8468a17a42aa247cf7b447a65">
|
<disk id="disk06" size="1474560" chs="80:2:18" img="static/OS211-PRINTERS.img" href="/disks/pc/os2/ibm/1.1/OS211-PRINTERS.json" md5="36cd9ea1e7184872548598dae4b60cb8" md5json="3ddd4aa8468a17a42aa247cf7b447a65">
|
||||||
<name>OS/2 1.1 (1.44Mb Printers Disk)</name>
|
<name>OS/2 1.1 (1.44M Printers Disk)</name>
|
||||||
</disk>
|
</disk>
|
||||||
</manifest>
|
</manifest>
|
||||||
|
|
|
||||||
|
|
@ -3,33 +3,33 @@
|
||||||
<manifest type="software">
|
<manifest type="software">
|
||||||
<title>IBM OS/2 1.3</title>
|
<title>IBM OS/2 1.3</title>
|
||||||
<disk id="disk01" size="1474560" chs="80:2:18" img="static/OS213-DISK01.img" href="/disks/pc/os2/ibm/1.3/OS213-DISK01.json" md5="b393291dc9d96255b7ea9d9d614ecf23" md5json="a3af9c440d774c4084862a4caa5e17e2">
|
<disk id="disk01" size="1474560" chs="80:2:18" img="static/OS213-DISK01.img" href="/disks/pc/os2/ibm/1.3/OS213-DISK01.json" md5="b393291dc9d96255b7ea9d9d614ecf23" md5json="a3af9c440d774c4084862a4caa5e17e2">
|
||||||
<name>OS/2 1.3 (1.44Mb Disk 1)</name>
|
<name>OS/2 1.3 (1.44M Disk 1)</name>
|
||||||
</disk>
|
</disk>
|
||||||
<disk id="disk02" size="1474560" chs="80:2:18" img="static/OS213-DISK02.img" href="/disks/pc/os2/ibm/1.3/OS213-DISK02.json" md5="6b3bf3f03c914c9718a9fe603a4a62b2" md5json="65322381b4ffbd62266c28c2ec0c027f">
|
<disk id="disk02" size="1474560" chs="80:2:18" img="static/OS213-DISK02.img" href="/disks/pc/os2/ibm/1.3/OS213-DISK02.json" md5="6b3bf3f03c914c9718a9fe603a4a62b2" md5json="65322381b4ffbd62266c28c2ec0c027f">
|
||||||
<name>OS/2 1.3 (1.44Mb Disk 2)</name>
|
<name>OS/2 1.3 (1.44M Disk 2)</name>
|
||||||
</disk>
|
</disk>
|
||||||
<disk id="disk03" size="1474560" chs="80:2:18" img="static/OS213-DISK03.img" href="/disks/pc/os2/ibm/1.3/OS213-DISK03.json" md5="207c6196d09dc1ef11a16e34e731c7d9" md5json="dea620df5b4f6a41deec101bd6dc3ef8">
|
<disk id="disk03" size="1474560" chs="80:2:18" img="static/OS213-DISK03.img" href="/disks/pc/os2/ibm/1.3/OS213-DISK03.json" md5="207c6196d09dc1ef11a16e34e731c7d9" md5json="dea620df5b4f6a41deec101bd6dc3ef8">
|
||||||
<name>OS/2 1.3 (1.44Mb Disk 3)</name>
|
<name>OS/2 1.3 (1.44M Disk 3)</name>
|
||||||
</disk>
|
</disk>
|
||||||
<disk id="disk04" size="1474560" chs="80:2:18" img="static/OS213-DISK04.img" href="/disks/pc/os2/ibm/1.3/OS213-DISK04.json" md5="8175fa3257fc60b3b281fbf25b50adcc" md5json="5d7aaf6609dd58b614554b5f26600a2b">
|
<disk id="disk04" size="1474560" chs="80:2:18" img="static/OS213-DISK04.img" href="/disks/pc/os2/ibm/1.3/OS213-DISK04.json" md5="8175fa3257fc60b3b281fbf25b50adcc" md5json="5d7aaf6609dd58b614554b5f26600a2b">
|
||||||
<name>OS/2 1.3 (1.44Mb Disk 4)</name>
|
<name>OS/2 1.3 (1.44M Disk 4)</name>
|
||||||
</disk>
|
</disk>
|
||||||
<disk id="disk05" size="1474560" chs="80:2:18" img="static/OS213-DISK05.img" href="/disks/pc/os2/ibm/1.3/OS213-DISK05.json" md5="8175fa3257fc60b3b281fbf25b50adcc" md5json="5d7aaf6609dd58b614554b5f26600a2b">
|
<disk id="disk05" size="1474560" chs="80:2:18" img="static/OS213-DISK05.img" href="/disks/pc/os2/ibm/1.3/OS213-DISK05.json" md5="8175fa3257fc60b3b281fbf25b50adcc" md5json="5d7aaf6609dd58b614554b5f26600a2b">
|
||||||
<name>OS/2 1.3 (1.44Mb Disk 5)</name>
|
<name>OS/2 1.3 (1.44M Disk 5)</name>
|
||||||
</disk>
|
</disk>
|
||||||
<disk id="disk06" size="1474560" chs="80:2:18" img="static/OS213-DISK06.img" href="/disks/pc/os2/ibm/1.3/OS213-DISK06.json" md5="3f61008d56453a40c4444a397260b39c" md5json="a25d13bd6beacb002acfd4b6cacdbea3">
|
<disk id="disk06" size="1474560" chs="80:2:18" img="static/OS213-DISK06.img" href="/disks/pc/os2/ibm/1.3/OS213-DISK06.json" md5="3f61008d56453a40c4444a397260b39c" md5json="a25d13bd6beacb002acfd4b6cacdbea3">
|
||||||
<name>OS/2 1.3 (1.44Mb Disk 6)</name>
|
<name>OS/2 1.3 (1.44M Disk 6)</name>
|
||||||
</disk>
|
</disk>
|
||||||
<disk id="disk07" size="1474560" chs="80:2:18" img="static/OS213-DISK07.img" href="/disks/pc/os2/ibm/1.3/OS213-DISK07.json" md5="0de3327c227f1fe00e211b558ea2e23a" md5json="d33aaa2d626b5f3c42b354a21d4bfe67">
|
<disk id="disk07" size="1474560" chs="80:2:18" img="static/OS213-DISK07.img" href="/disks/pc/os2/ibm/1.3/OS213-DISK07.json" md5="0de3327c227f1fe00e211b558ea2e23a" md5json="d33aaa2d626b5f3c42b354a21d4bfe67">
|
||||||
<name>OS/2 1.3 (1.44Mb Disk 7)</name>
|
<name>OS/2 1.3 (1.44M Disk 7)</name>
|
||||||
</disk>
|
</disk>
|
||||||
<disk id="disk08" size="1474560" chs="80:2:18" img="static/OS213-DISK08.img" href="/disks/pc/os2/ibm/1.3/OS213-DISK08.json" md5="821a6873437610f77167e8884c4bd977" md5json="93bb507a019409004716c48f5c002a5d">
|
<disk id="disk08" size="1474560" chs="80:2:18" img="static/OS213-DISK08.img" href="/disks/pc/os2/ibm/1.3/OS213-DISK08.json" md5="821a6873437610f77167e8884c4bd977" md5json="93bb507a019409004716c48f5c002a5d">
|
||||||
<name>OS/2 1.3 (1.44Mb Disk 8)</name>
|
<name>OS/2 1.3 (1.44M Disk 8)</name>
|
||||||
</disk>
|
</disk>
|
||||||
<disk id="disk09" size="1474560" chs="80:2:18" img="static/OS213-DISK09.img" href="/disks/pc/os2/ibm/1.3/OS213-DISK09.json" md5="fce2113a6d1a286afa1653bdc77214e0" md5json="3282cd0642a19f97a1c8758f3a4debdc">
|
<disk id="disk09" size="1474560" chs="80:2:18" img="static/OS213-DISK09.img" href="/disks/pc/os2/ibm/1.3/OS213-DISK09.json" md5="fce2113a6d1a286afa1653bdc77214e0" md5json="3282cd0642a19f97a1c8758f3a4debdc">
|
||||||
<name>OS/2 1.3 (1.44Mb Disk 9)</name>
|
<name>OS/2 1.3 (1.44M Disk 9)</name>
|
||||||
</disk>
|
</disk>
|
||||||
<disk id="disk10" size="1474560" chs="80:2:18" img="static/OS213-DISK10.img" href="/disks/pc/os2/ibm/1.3/OS213-DISK10.json" md5="58e1156eba5600bc600d17be93f5e8e0" md5json="e8567c55839410508911dc96b260ee57">
|
<disk id="disk10" size="1474560" chs="80:2:18" img="static/OS213-DISK10.img" href="/disks/pc/os2/ibm/1.3/OS213-DISK10.json" md5="58e1156eba5600bc600d17be93f5e8e0" md5json="e8567c55839410508911dc96b260ee57">
|
||||||
<name>OS/2 1.3 (1.44Mb Disk 10)</name>
|
<name>OS/2 1.3 (1.44M Disk 10)</name>
|
||||||
</disk>
|
</disk>
|
||||||
</manifest>
|
</manifest>
|
||||||
|
|
|
||||||
|
|
@ -2279,7 +2279,7 @@ if (DEBUGGER) {
|
||||||
/*
|
/*
|
||||||
* For purposes of display only, rewind addr to the address of the responsible "INT n" instruction; we
|
* For purposes of display only, rewind addr to the address of the responsible "INT n" instruction; we
|
||||||
* know it's the two-byte "INT n" instruction because that's the only opcode handler that calls checkIntNotify()
|
* know it's the two-byte "INT n" instruction because that's the only opcode handler that calls checkIntNotify()
|
||||||
* at the moment. If that changes, then this will have to change as well.
|
* at the moment.
|
||||||
*/
|
*/
|
||||||
addr -= 2;
|
addr -= 2;
|
||||||
this.message("INT " + str.toHexByte(nInt) + ": AH=" + str.toHexByte(AH) + " @" + this.hexOffset(addr - this.cpu.segCS.base, this.cpu.getCS()) + sFunc);
|
this.message("INT " + str.toHexByte(nInt) + ": AH=" + str.toHexByte(AH) + " @" + this.hexOffset(addr - this.cpu.segCS.base, this.cpu.getCS()) + sFunc);
|
||||||
|
|
|
||||||
|
|
@ -400,7 +400,7 @@ CompaqController.readByte = function readCompaqControllerByte(off, addr)
|
||||||
b = (off & 0x1)? (this.controller.wRAMSetup >> 8) : (this.controller.wRAMSetup & 0xff);
|
b = (off & 0x1)? (this.controller.wRAMSetup >> 8) : (this.controller.wRAMSetup & 0xff);
|
||||||
}
|
}
|
||||||
if (DEBUG) {
|
if (DEBUG) {
|
||||||
this.controller.ram.printMessage("CompaqController.readByte(" + str.toHexWord(off) + ") returned " + str.toHexByte(b), true, true);
|
this.controller.ram.printMessage("CompaqController.readByte(" + str.toHexWord(off) + ") returned " + str.toHexByte(b), 0, true);
|
||||||
if (MAXDEBUG && DEBUGGER && off >= 0x2) this.dbg.stopCPU();
|
if (MAXDEBUG && DEBUGGER && off >= 0x2) this.dbg.stopCPU();
|
||||||
}
|
}
|
||||||
return b;
|
return b;
|
||||||
|
|
@ -459,7 +459,7 @@ CompaqController.writeByte = function writeCompaqControllerByte(off, b, addr)
|
||||||
* All bits in 0x80C00001 and 0x80C00003 are reserved, so we can simply ignore those writes.
|
* All bits in 0x80C00001 and 0x80C00003 are reserved, so we can simply ignore those writes.
|
||||||
*/
|
*/
|
||||||
if (DEBUG) {
|
if (DEBUG) {
|
||||||
this.controller.ram.printMessage("CompaqController.writeByte(" + str.toHexWord(off) + "," + str.toHexByte(b) + ")", true, true);
|
this.controller.ram.printMessage("CompaqController.writeByte(" + str.toHexWord(off) + "," + str.toHexByte(b) + ")", 0, true);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1285,8 +1285,8 @@ Card.ATC = {
|
||||||
INDX: 0x10, // ATC Mode Control Register
|
INDX: 0x10, // ATC Mode Control Register
|
||||||
GRAPHICS: 0x01, // bit 0: set for graphics mode, clear for alphanumeric mode
|
GRAPHICS: 0x01, // bit 0: set for graphics mode, clear for alphanumeric mode
|
||||||
MONOEM: 0x02, // bit 1: set for monochrome emulation mode, clear for color emulation
|
MONOEM: 0x02, // bit 1: set for monochrome emulation mode, clear for color emulation
|
||||||
TEXTGRCC: 0x04, // bit 2: set for line graphics in character codes 0xC0-0xDF, clear otherwise
|
TEXT_9DOT: 0x04, // bit 2: set for 9-dot replication in character codes 0xC0-0xDF
|
||||||
TEXTBLINK: 0x08, // bit 3: set for text blink attribute, clear for background intensity attribute
|
BLINK_ENABLE: 0x08, // bit 3: set for text/graphics blink, clear for background intensity
|
||||||
RESERVED: 0x10, // bit 4: reserved
|
RESERVED: 0x10, // bit 4: reserved
|
||||||
PANCOMPAT: 0x20, // bit 5: set for pixel-panning compatibility
|
PANCOMPAT: 0x20, // bit 5: set for pixel-panning compatibility
|
||||||
PELWIDTH: 0x40, // bit 6: set for 256-color modes, clear for all other modes
|
PELWIDTH: 0x40, // bit 6: set for 256-color modes, clear for all other modes
|
||||||
|
|
@ -3904,6 +3904,9 @@ Video.prototype.createFontColor = function(font, iColor, rgbColor, nDouble, offD
|
||||||
* This "bit" of logic takes care of those characters (0xC0-0xDF) whose 9th bit must mirror the 8th bit;
|
* This "bit" of logic takes care of those characters (0xC0-0xDF) whose 9th bit must mirror the 8th bit;
|
||||||
* in all other cases, any bit past the 8th bit is automatically zero. It also takes care of embedding a solid
|
* in all other cases, any bit past the 8th bit is automatically zero. It also takes care of embedding a solid
|
||||||
* row of bits whenever fUnderline is true.
|
* row of bits whenever fUnderline is true.
|
||||||
|
*
|
||||||
|
* TODO: For EGA/VGA, replication of the 9th dot needs to be based on the TEXT_9DOT bit of the ATC.MODE
|
||||||
|
* register, which is particularly important for user-defined fonts that do not want that bit replicated.
|
||||||
*/
|
*/
|
||||||
var bit = (fUnderline? 1 : (b & (0x80 >> (x >= 8 && iChar >= 0xC0 && iChar <= 0xDF? 7 : x))));
|
var bit = (fUnderline? 1 : (b & (0x80 >> (x >= 8 && iChar >= 0xC0 && iChar <= 0xDF? 7 : x))));
|
||||||
var xDst = (x << nDouble);
|
var xDst = (x << nDouble);
|
||||||
|
|
@ -5100,7 +5103,13 @@ Video.prototype.updateScreenText = function(addrScreen, addrScreenLimit, iCell,
|
||||||
var dataBlink = 0;
|
var dataBlink = 0;
|
||||||
var dataDraw = (Video.ATTRS.DRAW_FGND << 8);
|
var dataDraw = (Video.ATTRS.DRAW_FGND << 8);
|
||||||
var dataMask = 0xfffff;
|
var dataMask = 0xfffff;
|
||||||
if (this.cardActive.regMode & Card.MDA.MODE.BLINK_ENABLE) {
|
|
||||||
|
var fBlinkEnable = (this.cardActive.regMode & Card.MDA.MODE.BLINK_ENABLE);
|
||||||
|
if (this.nCard >= Video.CARD.EGA) {
|
||||||
|
fBlinkEnable = (this.cardActive.regATCData[Card.ATC.MODE.INDX] & Card.ATC.MODE.BLINK_ENABLE);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (fBlinkEnable) {
|
||||||
dataBlink = (Video.ATTRS.BGND_BLINK << 8);
|
dataBlink = (Video.ATTRS.BGND_BLINK << 8);
|
||||||
dataMask &= ~dataBlink;
|
dataMask &= ~dataBlink;
|
||||||
if (!(this.cBlinks & 0x2)) dataMask &= ~dataDraw;
|
if (!(this.cBlinks & 0x2)) dataMask &= ~dataDraw;
|
||||||
|
|
@ -5223,6 +5232,8 @@ Video.prototype.updateScreenGraphicsCGA = function(addrScreen, addrScreenLimit)
|
||||||
/**
|
/**
|
||||||
* updateScreenGraphicsEGA(addrScreen, addrScreenLimit)
|
* updateScreenGraphicsEGA(addrScreen, addrScreenLimit)
|
||||||
*
|
*
|
||||||
|
* TODO: Add support for blinking graphics (ATC.MODE.BLINK_ENABLE)
|
||||||
|
*
|
||||||
* @param addrScreen
|
* @param addrScreen
|
||||||
* @param addrScreenLimit
|
* @param addrScreenLimit
|
||||||
*/
|
*/
|
||||||
|
|
@ -5346,6 +5357,8 @@ Video.prototype.updateScreenGraphicsEGA = function(addrScreen, addrScreenLimit)
|
||||||
* (320x200x256), where each pixel's bits are contained within a single plane. This is essentially all 256-color
|
* (320x200x256), where each pixel's bits are contained within a single plane. This is essentially all 256-color
|
||||||
* modes (CHAIN4, "Mode X", etc), hence the hard-coded call to getCardColors(8).
|
* modes (CHAIN4, "Mode X", etc), hence the hard-coded call to getCardColors(8).
|
||||||
*
|
*
|
||||||
|
* TODO: Add support for blinking graphics (ATC.MODE.BLINK_ENABLE)
|
||||||
|
*
|
||||||
* @param addrScreen
|
* @param addrScreen
|
||||||
* @param addrScreenLimit
|
* @param addrScreenLimit
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
|
|
@ -431,7 +431,8 @@ X86.BACKTRACK = {
|
||||||
/*
|
/*
|
||||||
* These PS flags are always stored directly in regPS for the 8086/8088, hence the
|
* These PS flags are always stored directly in regPS for the 8086/8088, hence the
|
||||||
* "direct" designation; other processors must adjust these bits accordingly. The final
|
* "direct" designation; other processors must adjust these bits accordingly. The final
|
||||||
* adjusted value is stored in PS_DIRECT.
|
* adjusted value is stored in PS_DIRECT (ie, 80286 and up also include PS.IOPL.MASK and
|
||||||
|
* PS.NT in PS_DIRECT).
|
||||||
*/
|
*/
|
||||||
X86.PS_DIRECT_8086 = (X86.PS.TF | X86.PS.IF | X86.PS.DF);
|
X86.PS_DIRECT_8086 = (X86.PS.TF | X86.PS.IF | X86.PS.DF);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1014,6 +1014,7 @@ X86CPU.prototype.initProcessor = function()
|
||||||
{
|
{
|
||||||
this.PS_SET = X86.PS_SET_8086;
|
this.PS_SET = X86.PS_SET_8086;
|
||||||
this.PS_DIRECT = X86.PS_DIRECT_8086;
|
this.PS_DIRECT = X86.PS_DIRECT_8086;
|
||||||
|
this.PS_CLEAR_RM = X86.PS.IOPL.MASK | X86.PS.NT;
|
||||||
|
|
||||||
this.OPFLAG_NOINTR_8086 = X86.OPFLAG.NOINTR;
|
this.OPFLAG_NOINTR_8086 = X86.OPFLAG.NOINTR;
|
||||||
this.nShiftCountMask = 0xff; // on an 8086/8088, all shift counts are used as-is
|
this.nShiftCountMask = 0xff; // on an 8086/8088, all shift counts are used as-is
|
||||||
|
|
@ -1080,6 +1081,13 @@ X86CPU.prototype.initProcessor = function()
|
||||||
|
|
||||||
if (I386 && this.model >= X86.MODEL_80386) {
|
if (I386 && this.model >= X86.MODEL_80386) {
|
||||||
var bOpcode;
|
var bOpcode;
|
||||||
|
/*
|
||||||
|
* TODO: Determine if the Nested Task (PS.NT) flag should really be cleared in real-mode on an 80386
|
||||||
|
* (we already know based on the OS/2 CPU test discussed in setPS() that it can't be set in real-mode
|
||||||
|
* on an 80286); for now, we assume that it should remain clear on all CPUs, to avoid any unexpected
|
||||||
|
* nested-task weirdness in real-mode.
|
||||||
|
*/
|
||||||
|
this.PS_CLEAR_RM = X86.PS.NT;
|
||||||
this.aOps[X86.OPCODE.FS] = X86.opFS; // 0x64
|
this.aOps[X86.OPCODE.FS] = X86.opFS; // 0x64
|
||||||
this.aOps[X86.OPCODE.GS] = X86.opGS; // 0x65
|
this.aOps[X86.OPCODE.GS] = X86.opGS; // 0x65
|
||||||
this.aOps[X86.OPCODE.OS] = X86.opOS; // 0x66
|
this.aOps[X86.OPCODE.OS] = X86.opOS; // 0x66
|
||||||
|
|
@ -2680,14 +2688,17 @@ X86CPU.prototype.setPS = function(regPS, cpl)
|
||||||
/*
|
/*
|
||||||
* OS/2 1.0 discriminates between an 80286 and an 80386 based on whether an IRET in real-mode that
|
* OS/2 1.0 discriminates between an 80286 and an 80386 based on whether an IRET in real-mode that
|
||||||
* pops 0xF000 into the flags is able to set *any* of flag bits 12-15: if it can, then OS/2 declares
|
* pops 0xF000 into the flags is able to set *any* of flag bits 12-15: if it can, then OS/2 declares
|
||||||
* the CPU an 80386. Therefore, in real-mode, we must zero all incoming bits 12-15.
|
* the CPU an 80386.
|
||||||
*
|
*
|
||||||
* This has the added benefit of relieving us from zeroing the effective IOPL (this.nIOPL) whenever
|
* So, if the CPU is an 80286, we zero incoming bits 12-14 in real-mode (bit 15 is never allowed to
|
||||||
* we're in real-mode, since we're zeroing the incoming IOPL bits up front now.
|
* be modified, so there's no need to mask it). And if the CPU is an 80386, we zero only bit 14 (PS.NT),
|
||||||
|
* allowing the IOPL bits to change; however, that should not affect any real-mode operations, since
|
||||||
|
* segCS.cpl will always be zero, making the IOPL setting irrelevant.
|
||||||
|
*
|
||||||
|
* It's still an open question whether an 80386 should also clear the Nested Task (PS.NT) flag in
|
||||||
|
* real-mode; if not, then initProcessor() should set PS_CLEAR_RM to zero.
|
||||||
*/
|
*/
|
||||||
if (!(this.regCR0 & X86.CR0.MSW.PE)) {
|
if (!(this.regCR0 & X86.CR0.MSW.PE)) regPS &= ~this.PS_CLEAR_RM;
|
||||||
regPS &= ~(X86.PS.IOPL.MASK | X86.PS.NT | X86.PS.BIT15);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* There are some cases (eg, an IRET returning to a less privileged code segment) where the CPL
|
* There are some cases (eg, an IRET returning to a less privileged code segment) where the CPL
|
||||||
|
|
|
||||||
|
|
@ -78,7 +78,7 @@ if (typeof module !== 'undefined') {
|
||||||
* @param {string} type
|
* @param {string} type
|
||||||
* @param {Object} [parms]
|
* @param {Object} [parms]
|
||||||
* @param {Object} [constructor]
|
* @param {Object} [constructor]
|
||||||
* @param {number} [bitsMessage]
|
* @param {number} [bitsMessage] selects message(s) that the component wants to enable (default is 0)
|
||||||
*/
|
*/
|
||||||
function Component(type, parms, constructor, bitsMessage)
|
function Component(type, parms, constructor, bitsMessage)
|
||||||
{
|
{
|
||||||
|
|
@ -123,7 +123,7 @@ function Component(type, parms, constructor, bitsMessage)
|
||||||
this.clearError();
|
this.clearError();
|
||||||
this.bindings = {};
|
this.bindings = {};
|
||||||
this.dbg = null; // by default, no connection to a Debugger
|
this.dbg = null; // by default, no connection to a Debugger
|
||||||
this.bitsMessage = bitsMessage || -1;
|
this.bitsMessage = bitsMessage || 0;
|
||||||
|
|
||||||
Component.add(this);
|
Component.add(this);
|
||||||
}
|
}
|
||||||
|
|
@ -946,7 +946,7 @@ Component.prototype = {
|
||||||
bitsMessage = bitsMessage || this.bitsMessage;
|
bitsMessage = bitsMessage || this.bitsMessage;
|
||||||
}
|
}
|
||||||
var bitsEnabled = this.dbg.bitsMessage & bitsMessage;
|
var bitsEnabled = this.dbg.bitsMessage & bitsMessage;
|
||||||
return (bitsEnabled === bitsMessage || !!(bitsEnabled & this.dbg.bitsWarning));
|
return (!!bitsMessage && bitsEnabled === bitsMessage || !!(bitsEnabled & this.dbg.bitsWarning));
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
},
|
},
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue