Factored PDP-11 drive controller logic into a device-independent superclass (drive.js) and a device-dependent subclass (rk11.js); the RL11 controller is ready to be factored next

This commit is contained in:
Jeff Parsons 2017-01-28 13:39:19 -08:00 committed by Jeff Parsons
commit 5edbdcdce2
33 changed files with 1754 additions and 1615 deletions

View file

@ -103,13 +103,13 @@ class DiskPDP11 extends Component {
* This means, for example, that all references to "track[iSector].data" must actually appear as
* "track[iSector]['data']".
*
* @param {RK11|RL11} controller
* @param {DriveController|RK11|RL11} controller
* @param {Object} drive
* @param {string} mode
*/
constructor(controller, drive, mode)
{
super("Disk", {'id': controller.idMachine + ".disk" + Str.toHex(++DiskPDP11.nDisks, 4)}, DiskPDP11, MessagesPDP11.DISK);
super("Disk", {'id': controller.idMachine + ".disk" + Str.toHex(++DiskPDP11.nDisks, 4)}, MessagesPDP11.DISK);
/*
* Route all non-Debugger messages (eg, notice() and println() calls) through
@ -371,6 +371,7 @@ class DiskPDP11 extends Component {
}
if (this.fnNotify) {
//noinspection JSUnresolvedFunction
this.fnNotify.call(this.controller, this.drive, disk, this.sDiskName, this.sDiskPath);
this.fnNotify = null;
}
@ -590,6 +591,7 @@ class DiskPDP11 extends Component {
}
if (this.fnNotify) {
//noinspection JSUnresolvedFunction
this.fnNotify.call(this.controllerNotify, this.drive, disk, this.sDiskName, this.sDiskPath);
this.fnNotify = null;
}