mirror of
https://github.com/pkimpel/retro-b5500.git
synced 2026-02-13 19:54:50 +00:00
1. Alter method of writing disk sectors to IndexedDB, to avoid dragging along the entire 16KB IO Unit buffer area and unintentionally inflating host disk usage by 30-60X (ouch). This was causing Quota Exceeded errors in recent versions of Firefox. 2. Add onabort traps in B5500DiskUnit to catch QuotaExceeded errors. 3. Modify delay-deviation adjustment mechanism in B5500SetCallback to avoid oscillating between positive and negative cumulative deviations. 4. Correct tape reel angular motion in B5500MagTapeDrive, especially during reverse tape movement. 5. Fix bug with reporting memory parity error during tape I/O, should that ever occur. 6. Reset CPA Algol Glyphs option in default system configuration template. 7. Allow tools/B5500LibMaintDecoder to examine an entire .bcd tape image file instead of just the first 64KB. 8. Add USE SAVEPBT to default options in tools/COLDSTART-XIII deck. 9. Eliminate extraneous "schema update successful" alert when altering a disk subsystem configuration. 10. Commit minor corrections to source/B65ESPOL/SOURCE.alg_m from Richard Fehlinger.
118 lines
5.9 KiB
JavaScript
118 lines
5.9 KiB
JavaScript
/***********************************************************************
|
|
* retro-b5500/emulator B5500SystemConfiguration.js
|
|
************************************************************************
|
|
* Copyright (c) 2012, 2014, Nigel Williams and Paul Kimpel.
|
|
* Licensed under the MIT License,
|
|
* see http://www.opensource.org/licenses/mit-license.php
|
|
************************************************************************
|
|
* B5500 System Configuration definition module.
|
|
*
|
|
* This class defines the system configuration properties for the B5500
|
|
* emulator. This is not used directly by the emulator, but serves as a
|
|
* central definition of the configuration properties and as a template
|
|
* from which actual configuration instances can be cloned.
|
|
************************************************************************
|
|
* 2012-06-30 P.Kimpel
|
|
* Original version, from thin air.
|
|
* 2014-08-27 P.Kimpel
|
|
* Revise and implement as a constructor with prototype to support the
|
|
* new dynamic configuration mechanism.
|
|
***********************************************************************/
|
|
"use strict";
|
|
|
|
/**************************************/
|
|
function B5500SystemConfiguration() {
|
|
/* Constructor for the global SystemConfiguration definition object */
|
|
// ...nothing to construct at present... everything's in the prototype.
|
|
}
|
|
|
|
/**************************************/
|
|
B5500SystemConfiguration.prototype.configLevel = 1; // configuration object version
|
|
B5500SystemConfiguration.prototype.sysDefaultConfigName = "Default";
|
|
B5500SystemConfiguration.prototype.sysDefaultStorageName = "B5500DiskUnit";
|
|
|
|
// Template for Datacom terminal unit (B487) definition object
|
|
B5500SystemConfiguration.prototype.sysDefaultTerminalUnit = {
|
|
enabled: true, // available in system
|
|
adapters: 1, // number of terminal interface adapters
|
|
buffers: 2, // number of 28-character buffers/adapter
|
|
pingPong: false // use ping-pong buffer management
|
|
};
|
|
|
|
// Template for the global system configuration definition object
|
|
B5500SystemConfiguration.prototype.systemConfig = {
|
|
configLevel: B5500SystemConfiguration.prototype.configLevel,
|
|
configName: B5500SystemConfiguration.prototype.sysDefaultConfigName,
|
|
|
|
PA: {enabled: true}, // Processor A available
|
|
PB: {enabled: false}, // Processor B available
|
|
|
|
PB1L: false, // PA is P1 (false) | PB is P1 (true)
|
|
|
|
IO1: {enabled: true}, // I/O Unit 1 available
|
|
IO2: {enabled: true}, // I/O Unit 2 available
|
|
IO3: {enabled: true}, // I/O Unit 3 available
|
|
IO4: {enabled: false}, // I/O Unit 4 available
|
|
|
|
memMod: [ {enabled: true}, // Memory module 0 available (4KW)
|
|
{enabled: true}, // Memory module 1 available (4KW)
|
|
{enabled: true}, // Memory module 2 available (4KW)
|
|
{enabled: true}, // Memory module 3 available (4KW)
|
|
{enabled: true}, // Memory module 4 available (4KW)
|
|
{enabled: true}, // Memory module 5 available (4KW)
|
|
{enabled: true}, // Memory module 6 available (4KW)
|
|
{enabled: true}], // Memory module 7 available (4KW)
|
|
|
|
units: {
|
|
SPO: {enabled: true, // SPO keyboard/printer
|
|
algolGlyphs: false},
|
|
|
|
DKA: {enabled: true, // Disk File Control A
|
|
DFX: true, FPM: false,
|
|
storageName: B5500SystemConfiguration.prototype.sysDefaultStorageName},
|
|
DKB: {enabled: false, // Disk File Control B
|
|
DFX: true, FPM: false,
|
|
storageName: B5500SystemConfiguration.prototype.sysDefaultStorageName},
|
|
|
|
CRA: {enabled: true}, // Card Reader A
|
|
CRB: {enabled: false}, // Card Reader B
|
|
CPA: {enabled: true, // Card Punch A
|
|
algolGlyphs: false},
|
|
|
|
LPA: {enabled: true, // Line Printer A
|
|
algolGlyphs: true},
|
|
LPB: {enabled: false, // Line Printer B
|
|
algolGlyphs: true},
|
|
|
|
PRA: {enabled: false}, // Paper Tape Reader A
|
|
PRB: {enabled: false}, // Paper Tape Reader B
|
|
PPA: {enabled: false}, // Paper Tape Punch A
|
|
PPB: {enabled: false}, // Paper Tape Punch A
|
|
|
|
DCA: {enabled: true, // Data Communications Control A
|
|
terminalUnits: {
|
|
TU1: B5500SystemConfiguration.prototype.sysDefaultTerminalUnit
|
|
}},
|
|
|
|
DRA: {enabled: false}, // Drum/Auxmem A
|
|
DRB: {enabled: false}, // Drum/Auxmem B
|
|
|
|
MTA: {enabled: true}, // Magnetic Tape Unit A
|
|
MTB: {enabled: false}, // Magnetic Tape Unit B
|
|
MTC: {enabled: false}, // Magnetic Tape Unit C
|
|
MTD: {enabled: false}, // Magnetic Tape Unit D
|
|
MTE: {enabled: false}, // Magnetic Tape Unit E
|
|
MTF: {enabled: false}, // Magnetic Tape Unit F
|
|
MTH: {enabled: false}, // Magnetic Tape Unit H
|
|
MTJ: {enabled: false}, // Magnetic Tape Unit J
|
|
MTK: {enabled: false}, // Magnetic Tape Unit K
|
|
MTL: {enabled: false}, // Magnetic Tape Unit L
|
|
MTM: {enabled: false}, // Magnetic Tape Unit M
|
|
MTN: {enabled: false}, // Magnetic Tape Unit N
|
|
MTP: {enabled: false}, // Magnetic Tape Unit P
|
|
MTR: {enabled: false}, // Magnetic Tape Unit R
|
|
MTS: {enabled: false}, // Magnetic Tape Unit S
|
|
MTT: {enabled: false} // Magnetic Tape Unit T
|
|
}
|
|
};
|