1
0
mirror of https://github.com/pkimpel/retro-b5500.git synced 2026-02-13 03:34:29 +00:00
Files
pkimpel.retro-b5500/emulator/B5500SystemConfiguration.js
Paul Kimpel 356fb5584e Commit release 1.03:
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.
2015-08-22 16:46:22 -07:00

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
}
};