Link updates
This commit is contained in:
parent
a54d5564a7
commit
d29ef36ea1
30 changed files with 84 additions and 66 deletions
|
|
@ -11,7 +11,7 @@ are simple XML files that describe a piece of software (an application, an opera
|
|||
link to a PCjs machine configuration capable of running the software, along with a "ready-to-run" machine state file.
|
||||
Conversely, a PCjs machine XML file can refer back to the manifest, to obtain a list of disk images.
|
||||
|
||||
Here are some [demos](/apps/pc/) of "ready-to-run" apps on [PCjs](/docs/about/pcjs/).
|
||||
Here are some [Demos](/apps/pc/) of "ready-to-run" apps on [PCjs](/docs/about/).
|
||||
|
||||
There have been lots of server-side changes recently, including API improvements that make it easy (well, *easier*)
|
||||
to dynamically create diskette images from a list of files, or even an entire folder (including all subfolders),
|
||||
|
|
|
|||
|
|
@ -55,8 +55,8 @@ There's still no support for [LOADALL](/pubs/pc/reference/intel/80286/loadall/)
|
|||
call gates or task gates, nor for conforming code segments or expand-down data segments. 80286-specific cycle
|
||||
counts haven't been incorporated yet, either. The list of remaining 80286 features is long.
|
||||
|
||||
And there's plenty of hardware support left to do: I haven't looked at the AT hard disk controller yet (which
|
||||
I believe is significantly different from the XT hard disk controller), and the keyboard *barely* works; the 8042
|
||||
And there's plenty of hardware support left to do: I haven't looked at the AT hard drive controller yet (which
|
||||
I believe is significantly different from the XT hard drive controller), and the keyboard *barely* works; the 8042
|
||||
Keyboard Controller and AT keyboard had a number of features that older PC/XT keyboards did not (like LEDs and
|
||||
programmable repeat rate).
|
||||
|
||||
|
|
|
|||
|
|
@ -121,7 +121,7 @@ if (DEBUG) this.log('load("' + sFileURL + '")');
|
|||
```
|
||||
|
||||
There are a number of other important shared constants in [/modules/shared/lib/defines.js](/modules/shared/lib/defines.js)
|
||||
and PCjs-specific constants in [/modules/pcjs/lib/defines.js](/modules/pcjs/lib/defines.js); refer
|
||||
and PCjs-specific constants in [/modules/pcx86/lib/defines.js](/modules/pcx86/lib/defines.js); refer
|
||||
to those files for more information.
|
||||
|
||||
### Braces and Parentheses
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@ can boot and run in real-mode now, but there's still a lot of protected-mode wor
|
|||
this year is to boot OS/2 1.0.
|
||||
|
||||
There are also a lot of rough edges left to polish. Holes in EGA emulation remain to be filled (support for dynamically
|
||||
loaded fonts is one of the bigger ones). And the PC AT Keyboard, along with the 8042 and Hard Disk controllers, are all
|
||||
loaded fonts is one of the bigger ones). And the PC AT Keyboard, along with the 8042 and Hard Drive controllers, are all
|
||||
just limping along at the moment.
|
||||
|
||||
Longer term, I'm looking forward to building some new tools, including an "IBM PC Configurator" that will take some
|
||||
|
|
|
|||
|
|
@ -10,19 +10,19 @@ The [8Mhz IBM PC AT](/devices/pcx86/machine/5170/ega/1152kb/rev3/debugger/) mach
|
|||
[PCjs v1.15.5](https://github.com/jeffpar/pcjs/releases/tag/v1.15.5), which includes the following fixes:
|
||||
|
||||
+ The BIOS expects memory refresh to occur roughly every 16us, which I've resolved by tying the state
|
||||
of the refresh bit in port 0x61 to bit 6 of the CPU cycle count (see *in8042RWReg()* in [chipset.js](/modules/pcjs/lib/chipset.js));
|
||||
of the refresh bit in port 0x61 to bit 6 of the CPU cycle count (see *in8042RWReg()* in [chipset.js](/modules/pcx86/lib/chipset.js));
|
||||
the original AT BIOS was satisfied with a refresh bit that merely alternated, whereas the new AT BIOS
|
||||
is much more particular about the rate at which that bit changes, since many hard-coded delay-loops have
|
||||
now been replaced with code that waits for a specific number of refresh cycles.
|
||||
|
||||
+ The 8042 Keyboard Controller emulation needed a few more tweaks, mainly with respect to what happens
|
||||
when the keyboard's "clock" line is toggled (see *set8042CmdData()* in [chipset.js](/modules/pcjs/lib/chipset.js)).
|
||||
when the keyboard's "clock" line is toggled (see *set8042CmdData()* in [chipset.js](/modules/pcx86/lib/chipset.js)).
|
||||
|
||||
+ The Floppy Disk Controller needed to add support for the "READ ID" command, in order for the BIOS
|
||||
+ The Floppy Drive Controller needed to add support for the "READ ID" command, in order for the BIOS
|
||||
"double-stepping" test to work (double-stepping is required on an 80-track drive when attempting to read
|
||||
a 40-track diskette).
|
||||
|
||||
+ The BIOS Diskette Reset function does something odd after resetting the Floppy Disk Controller: it
|
||||
+ The BIOS Diskette Reset function does something odd after resetting the Floppy Drive Controller: it
|
||||
issues not one but *four* "SENSE INTERRUPT STATUS" commands to the FDC, and expects each response to
|
||||
return an incrementally larger drive number. I found this a bit mystifying, considering that IBM's
|
||||
own FDC/HDC "combo card" supports a maximum of *two* diskette drives. But, there's no point arguing
|
||||
|
|
@ -32,7 +32,7 @@ with a BIOS that's almost 30 years old.
|
|||
to run SETUP after installing a second hard drive. So, when the CMOS reports only one hard drive installed,
|
||||
the BIOS probes for a second hard drive anyway, and it does so by simply writing the drive number to the ATC's
|
||||
"DRVHD" register and then immediately reading the "STATUS" register, without issuing any intervening command.
|
||||
It was an easy fix to *outATCDrvHd()* in [hdc.js](/modules/pcjs/lib/hdc.js), but I was surprised
|
||||
It was an easy fix to *outATCDrvHd()* in [hdc.js](/modules/pcx86/lib/hdc.js), but I was surprised
|
||||
to discover that the ATC had this behavior, and now I'm wondering if there are any other I/O operations
|
||||
that must immediately update the "STATUS" register.
|
||||
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ permalink: /blog/2014/10/23/
|
|||
---
|
||||
|
||||
[PCjs v1.15.6](https://github.com/jeffpar/pcjs/releases/tag/v1.15.6) is a fairly minor update that fixes a few
|
||||
Floppy Disk Controller (FDC) issues and one CPU emulation bug that prevented [PC-DOS 7.00](/disks/pcx86/dos/ibm/7.00/)
|
||||
Floppy Drive Controller (FDC) issues and one CPU emulation bug that prevented [PC-DOS 7.00](/disks/pcx86/dos/ibm/7.00/)
|
||||
from working properly.
|
||||
|
||||
There are also some Debugger improvements; for example, if you turn on "fdc" and "int" messages in the
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ machines:
|
|||
|
||||
PCx86 can now boot the [COMPAQ DeskPro 386/16 ROM BIOS](/devices/pcx86/rom/compaq/deskpro386/).
|
||||
|
||||
There's still a problem with the hard disk controller, which I haven't looked into yet,
|
||||
There's still a problem with the Hard Drive Controller, which I haven't looked into yet,
|
||||
but booting from a floppy works.
|
||||
|
||||
While working through issues with this ROM BIOS, I created some lightly-annotated
|
||||
|
|
|
|||
Loading…
Reference in a new issue