The 5170 AT hard disk controller is limping along now, so I'm getting ready for a 1.15.4 release

Some other interesting bugs were fixed along the way:
the Video component incorrectly assumed that masking a negative number with 0x80000000 would yield 0x80000000 (it actually yields -0x80000000, thank you JavaScript);
the ChipSet component provides a new addCMOSMemory() interface that RAM objects can use to bump the CMOS total to match the actual total;
the CPU properly implements INSW and OUTSW instructions now (kind of important for the AT hard disk controller)
This commit is contained in:
Jeff Parsons 2014-10-08 16:15:12 -07:00 • committed by jeffpar
commit 0f06c3f039
115 changed files with 2803 additions and 1902 deletions

View file

@ -503,7 +503,7 @@ SerialPort.prototype.advanceRBR = function() {
*
* @this {SerialPort}
* @param {number} port (0x3F8 or 0x2F8)
* @param {number|undefined} addrFrom (not defined whenever the Debugger tries to read the specified port)
* @param {number} [addrFrom] (not defined whenever the Debugger tries to read the specified port)
* @return {number} simulated port value
*/
SerialPort.prototype.inRBR = function(port, addrFrom) {
@ -519,7 +519,7 @@ SerialPort.prototype.inRBR = function(port, addrFrom) {
*
* @this {SerialPort}
* @param {number} port (0x3F9 or 0x2F9)
* @param {number|undefined} addrFrom (not defined whenever the Debugger tries to read the specified port)
* @param {number} [addrFrom] (not defined whenever the Debugger tries to read the specified port)
* @return {number} simulated port value
*/
SerialPort.prototype.inIER = function(port, addrFrom) {
@ -533,7 +533,7 @@ SerialPort.prototype.inIER = function(port, addrFrom) {
*
* @this {SerialPort}
* @param {number} port (0x3FA or 0x2FA)
* @param {number|undefined} addrFrom (not defined whenever the Debugger tries to read the specified port)
* @param {number} [addrFrom] (not defined whenever the Debugger tries to read the specified port)
* @return {number} simulated port value
*/
SerialPort.prototype.inIIR = function(port, addrFrom) {
@ -547,7 +547,7 @@ SerialPort.prototype.inIIR = function(port, addrFrom) {
*
* @this {SerialPort}
* @param {number} port (0x3FB or 0x2FB)
* @param {number|undefined} addrFrom (not defined whenever the Debugger tries to read the specified port)
* @param {number} [addrFrom] (not defined whenever the Debugger tries to read the specified port)
* @return {number} simulated port value
*/
SerialPort.prototype.inLCR = function(port, addrFrom) {
@ -561,7 +561,7 @@ SerialPort.prototype.inLCR = function(port, addrFrom) {
*
* @this {SerialPort}
* @param {number} port (0x3FC or 0x2FC)
* @param {number|undefined} addrFrom (not defined whenever the Debugger tries to read the specified port)
* @param {number} [addrFrom] (not defined whenever the Debugger tries to read the specified port)
* @return {number} simulated port value
*/
SerialPort.prototype.inMCR = function(port, addrFrom) {
@ -575,7 +575,7 @@ SerialPort.prototype.inMCR = function(port, addrFrom) {
*
* @this {SerialPort}
* @param {number} port (0x3FD or 0x2FD)
* @param {number|undefined} addrFrom (not defined whenever the Debugger tries to read the specified port)
* @param {number} [addrFrom] (not defined whenever the Debugger tries to read the specified port)
* @return {number} simulated port value
*/
SerialPort.prototype.inLSR = function(port, addrFrom) {
@ -589,7 +589,7 @@ SerialPort.prototype.inLSR = function(port, addrFrom) {
*
* @this {SerialPort}
* @param {number} port (0x3FE or 0x2FE)
* @param {number|undefined} addrFrom (not defined whenever the Debugger tries to read the specified port)
* @param {number} [addrFrom] (not defined whenever the Debugger tries to read the specified port)
* @return {number} simulated port value
*/
SerialPort.prototype.inMSR = function(port, addrFrom) {
@ -604,7 +604,7 @@ SerialPort.prototype.inMSR = function(port, addrFrom) {
* @this {SerialPort}
* @param {number} port (0x3F8 or 0x2F8)
* @param {number} bOut
* @param {number|undefined} addrFrom (not defined whenever the Debugger tries to write the specified port)
* @param {number} [addrFrom] (not defined whenever the Debugger tries to write the specified port)
*/
SerialPort.prototype.outTHR = function(port, bOut, addrFrom) {
this.messagePort(port, bOut, addrFrom, (this.bLCR & SerialPort.LCR.DLAB) ? "DLL" : "THR");
@ -628,7 +628,7 @@ SerialPort.prototype.outTHR = function(port, bOut, addrFrom) {
* @this {SerialPort}
* @param {number} port (0x3F9 or 0x2F9)
* @param {number} bOut
* @param {number|undefined} addrFrom (not defined whenever the Debugger tries to write the specified port)
* @param {number} [addrFrom] (not defined whenever the Debugger tries to write the specified port)
*/
SerialPort.prototype.outIER = function(port, bOut, addrFrom) {
this.messagePort(port, bOut, addrFrom, (this.bLCR & SerialPort.LCR.DLAB) ? "DLM" : "IER");
@ -645,7 +645,7 @@ SerialPort.prototype.outIER = function(port, bOut, addrFrom) {
* @this {SerialPort}
* @param {number} port (0x3FB or 0x2FB)
* @param {number} bOut
* @param {number|undefined} addrFrom (not defined whenever the Debugger tries to write the specified port)
* @param {number} [addrFrom] (not defined whenever the Debugger tries to write the specified port)
*/
SerialPort.prototype.outLCR = function(port, bOut, addrFrom) {
this.messagePort(port, bOut, addrFrom, "LCR");
@ -658,7 +658,7 @@ SerialPort.prototype.outLCR = function(port, bOut, addrFrom) {
* @this {SerialPort}
* @param {number} port (0x3FC or 0x2FC)
* @param {number} bOut
* @param {number|undefined} addrFrom (not defined whenever the Debugger tries to write the specified port)
* @param {number} [addrFrom] (not defined whenever the Debugger tries to write the specified port)
*/
SerialPort.prototype.outMCR = function(port, bOut, addrFrom) {
var bPrev = this.bMCR;