Fixed command-line interface

This commit is contained in:
Jeff Parsons 2014-11-02 01:22:39 -07:00 committed by jeffpar
commit 63b0d5829e
15 changed files with 99 additions and 60 deletions

View file

@ -245,12 +245,6 @@ function loadMachine(sFile)
}
console.log(obj['id'] + " object created");
if (fDebug) {
/*
* TODO: Determine why a simple "console.log(obj)" call fails on the Video object
*/
console.log(JSON.stringify(obj));
}
aComponents[i].objects.push(obj);
if (obj.type == "Debugger") {

View file

@ -38,6 +38,7 @@ if (typeof module !== 'undefined') {
var web = require("../../shared/lib/weblib");
var Component = require("../../shared/lib/component");
var State = require("./state");
var Debugger = require("./debugger");
}
/**

View file

@ -74,6 +74,7 @@ if (typeof module !== 'undefined') {
var Component = require("../../shared/lib/component");
var Bus = require("./bus");
var State = require("./state");
var Debugger = require("./debugger");
}
/**

View file

@ -36,6 +36,7 @@ if (typeof module !== 'undefined') {
var str = require("../../shared/lib/strlib");
var usr = require("../../shared/lib/usrlib");
var Component = require("../../shared/lib/component");
var Debugger = require("./debugger");
}
/**

View file

@ -164,6 +164,7 @@ if (typeof module !== 'undefined') {
var DiskAPI = require("../../shared/lib/diskapi");
var DumpAPI = require("../../shared/lib/dumpapi");
var Component = require("../../shared/lib/component");
var Debugger = require("./debugger");
}
/**

View file

@ -41,6 +41,7 @@ if (typeof module !== 'undefined') {
var Disk = require("./disk");
var Computer = require("./computer");
var State = require("./state");
var Debugger = require("./debugger");
}
/*

View file

@ -40,6 +40,7 @@ if (typeof module !== 'undefined') {
var ChipSet = require("./chipset");
var Disk = require("./disk");
var State = require("./state");
var Debugger = require("./debugger");
}
/**
@ -2430,22 +2431,26 @@ HDC.prototype.readByte = function(drive, done, fAutoInc)
*/
if (done) {
var hdc = this;
drive.disk.seek(drive.wCylinder, drive.bHead, drive.bSector + drive.bSectorBias, false, function(sector, fAsync) {
var b = -1;
if ((drive.sector = sector)) {
drive.ibSector = 0;
/*
* We "pre-advance" bSector et al now, instead of waiting to advance it right before the seek().
* This allows the initial call to readByte() to perform a seek without triggering an unwanted advance.
*/
hdc.advanceSector(drive);
b = drive.disk.read(drive.sector, drive.ibSector);
drive.ibSector += inc;
} else {
drive.errorCode = HDC.XTC.DATA.ERR.NO_SECTOR;
}
done(b, fAsync);
});
if (drive.disk) {
drive.disk.seek(drive.wCylinder, drive.bHead, drive.bSector + drive.bSectorBias, false, function(sector, fAsync) {
if ((drive.sector = sector)) {
drive.ibSector = 0;
/*
* We "pre-advance" bSector et al now, instead of waiting to advance it right before the seek().
* This allows the initial call to readByte() to perform a seek without triggering an unwanted advance.
*/
hdc.advanceSector(drive);
b = drive.disk.read(drive.sector, drive.ibSector);
drive.ibSector += inc;
} else {
drive.errorCode = HDC.XTC.DATA.ERR.NO_SECTOR;
}
done(b, fAsync);
});
return b;
}
drive.errorCode = HDC.XTC.DATA.ERR.NO_SECTOR;
done(b, false);
}
return b;
};
@ -2487,9 +2492,11 @@ HDC.prototype.writeByte = function(drive, b)
* hence the bSectorBias below. I could change how sector numbers are stored in the image,
* but it seems preferable to keep the image format consistent and controller-independent.
*/
drive.disk.seek(drive.wCylinder, drive.bHead, drive.bSector + drive.bSectorBias, true, function(sector, fAsync) {
drive.sector = sector;
});
if (drive.disk) {
drive.disk.seek(drive.wCylinder, drive.bHead, drive.bSector + drive.bSectorBias, true, function(sector, fAsync) {
drive.sector = sector;
});
}
if (!drive.sector) {
drive.errorCode = HDC.XTC.DATA.ERR.NO_SECTOR;
b = -1;

View file

@ -39,6 +39,7 @@ if (typeof module !== 'undefined') {
var ChipSet = require("./chipset");
var State = require("./state");
var CPU = require("./cpu");
var Debugger = require("./debugger");
}
/**

View file

@ -51,6 +51,7 @@
if (typeof module !== 'undefined') {
var str = require("../../shared/lib/strlib");
var Component = require("../../shared/lib/component");
var Debugger = require("./debugger");
}
/**
* @class DataView

View file

@ -38,6 +38,7 @@ if (typeof module !== 'undefined') {
var Component = require("../../shared/lib/component");
var SerialPort = require("./serial");
var State = require("./state");
var Debugger = require("./debugger");
}
/**

View file

@ -36,6 +36,7 @@ if (typeof module !== 'undefined') {
var web = require("../../shared/lib/weblib");
var Component = require("../../shared/lib/component");
var ChipSet = require("./chipset");
var Debugger = require("./debugger");
var State = require("./state");
}

View file

@ -102,6 +102,7 @@ if (typeof module !== 'undefined') {
var ChipSet = require("./chipset");
var Keyboard = require("./keyboard");
var State = require("./state");
var Debugger = require("./debugger");
}
/**

View file

@ -46,6 +46,7 @@ if (typeof module !== 'undefined') {
var X86Mods = require("./x86mods");
var X86OpXX = require("./x86opxx");
var X86Op0F = require("./x86op0f");
var Debugger = require("./debugger");
}
/**

View file

@ -67,7 +67,7 @@ function X86Seg(cpu, sName, fProt)
/**
* loadReal(sel, fSuppress)
*
* This is the default real-mode load() function.
* The default segment load() function for real-mode.
*
* @this {X86Seg}
* @param {number} sel
@ -77,7 +77,7 @@ function X86Seg(cpu, sName, fProt)
X86Seg.loadReal = function loadReal(sel, fSuppress)
{
this.sel = sel;
this.limit = 0xffff; // TODO: Consider NOT setting the limit field in real-mode (unless it's required for, say, LOADALL support?)
this.limit = 0xffff;
this.cpl = this.dpl = 0;
return this.base = sel << 4;
};
@ -85,8 +85,8 @@ X86Seg.loadReal = function loadReal(sel, fSuppress)
/**
* loadProt(sel, fSuppress)
*
* This replaces the segment's default load() function whenever the segment is notified (eg, by the CPU's setProtMode()
* function) the processor is now in protected-mode.
* This replaces the segment's default load() function whenever the segment is notified via updateAccess() by the
* CPU's setProtMode() that the processor is now in protected-mode.
*
* Segments in protected-mode are referenced by selectors, which are indexes into descriptor tables (GDT, LDT, IDT) whose
* descriptors are 4-word (8-byte) entries: