1
0
mirror of https://github.com/pkimpel/retro-220.git synced 2026-05-05 07:24:55 +00:00

Commit emulator version 1.00.

1. Rework Processor internal timing and throttling mechanism during I/O.
2. Revise Console statistics display, add instruction counter.
3. Correct (again) CFA/CFR instruction when sign is included in field.
4. Correct B-register modification of words during Cardatron and
magnetic tape input.
5. Clear Processor alarms on Reset/Transfer.
6. Add links to wiki on index and home pages.
7. Eliminate B220Util CSS class functions in favor of DOM classList
methods.
8. Attempt to reproduce "Sundland Beige" color for the panels.
9. Correct formatting of tab stops for B220ConsolePrinter.
10. Reduce Whippet printer speed from 5000 to 1000 cps.
11. Reduce Console update frequency from every 50 to 100 ms; increase
lamp glow update factor from 0.25 to 0.75.
12. Allow click of white button below console register lamps in addition
to clicking the lamps themselves to toggle the lamp state.
13. Rework the way that white vertical bars are drawn on registers.
14. Allow B220PaperTapeReader to properly send sign-2 alphanumeric words
with trailing spaces if the tape image file has been space-trimmed on
the right.
15. Clear the paper tape reader view window when loading new tapes.
16. Revise yet again the setCallback() delay deviation adjustment
algorithm.
This commit is contained in:
Paul Kimpel
2018-07-17 06:57:01 -07:00
parent 653cbe98cb
commit 67958aa65a
21 changed files with 447 additions and 267 deletions

View File

@@ -45,6 +45,7 @@ function B220ConsolePrinter(mnemonic, unitIndex, config) {
// Create the printer window and onload event
this.doc = null;
this.window = null;
this.paper = null;
this.printerEOP = null;
this.printerLine = 0;
@@ -61,8 +62,8 @@ B220ConsolePrinter.onSwitchImage = "./resources/ToggleUp.png";
B220ConsolePrinter.ttySpeed = 10; // TTY printer speed, char/sec
B220ConsolePrinter.ttyNewLine = 200; // TTY carriage-return delay, ms
B220ConsolePrinter.whippetSpeed = 5000; // Whippet printer speed, char/sec
B220ConsolePrinter.whippetNewLine = 200;// Whippet carriage-return delay, ms
B220ConsolePrinter.whippetSpeed = 1000; // Whippet printer speed, char/sec
B220ConsolePrinter.whippetNewLine = 75; // Whippet carriage-return delay, ms
B220ConsolePrinter.formFeedPeriod = 500;// form-feed average delay, ms
B220ConsolePrinter.pageSize = 66; // lines/page for form-feed
@@ -166,8 +167,8 @@ B220ConsolePrinter.prototype.printChar = function printChar(code) {
/**************************************/
B220ConsolePrinter.prototype.printTab = function printTab() {
/* Simulates tabulation by outputting an appropriate number of spaces */
var tabCol; // tabulation column
var x; // scratch index
var tabCol = this.columns+1; // tabulation column (defaults to line overflow)
var x = 0; // scratch index
for (x=0; x<this.tabStop.length; ++x) {
if (this.tabStop[x] > this.printerCol) {
@@ -210,7 +211,7 @@ B220ConsolePrinter.prototype.copyPaper = function copyPaper(ev) {
var text = this.paper.textContent;
var title = "B220 " + this.mnemonic + " Text Snapshot";
B220Util.openPopup(this.window, "./B220FramePaper.html", this.mnemonic + "-Snapshot",
B220Util.openPopup(this.window, "./B220FramePaper.html", "",
"scrollbars,resizable,width=500,height=500",
this, function(ev) {
var doc = ev.target;
@@ -314,7 +315,7 @@ B220ConsolePrinter.prototype.text_OnChange = function text_OnChange(ev) {
/* Handler for text onchange events */
var prefs = this.config.getNode("ConsoleOutput.units", this.unitIndex);
var text = ev.target.value;
var v;
var v = null;
switch (ev.target.id) {
case "Columns":
@@ -329,7 +330,7 @@ B220ConsolePrinter.prototype.text_OnChange = function text_OnChange(ev) {
v = this.parseTabStops(prefs.tabs || "", this.window);
if (v !== null) {
this.tabStop = v;
ev.target.value = text = v.join(",");
ev.target.value = text = this.formatTabStops(v);
prefs.tabs = text;
}
break;
@@ -341,7 +342,21 @@ B220ConsolePrinter.prototype.text_OnChange = function text_OnChange(ev) {
};
/**************************************/
B220ConsolePrinter.prototype.parseTabStops = function parsetabStops(text, alertWin) {
B220ConsolePrinter.prototype.formatTabStops = function formatTabStops(tabStops) {
/* Formats the array "tabStops" of 0-relative tab stop positions as a comma-
delimited string of 1-relative numbers */
var s = (tabStops[0]+1).toString();
var x = 0;
for (x=1; x<tabStops.length; ++x) {
s += "," + (tabStops[x]+1).toString();
}
return s;
};
/**************************************/
B220ConsolePrinter.prototype.parseTabStops = function parseTabStops(text, alertWin) {
/* Parses a comma-delimited list of 1-relative tab stops. If the list is parsed
successfully, returns an array of 0-relative tab stop positions; otherwise
returns null. An alert is displayed on the window for the first parsing or
@@ -386,7 +401,7 @@ B220ConsolePrinter.prototype.printerOnLoad = function printerOnLoad(ev) {
var id;
var mask;
var prefs = this.config.getNode("ConsoleOutput.units", this.unitIndex);
var tabStop;
var tabStop = null;
var x;
this.doc = ev.target;
@@ -442,7 +457,7 @@ B220ConsolePrinter.prototype.printerOnLoad = function printerOnLoad(ev) {
tabStop = this.parseTabStops(prefs.tabs || "", this.window);
if (tabStop !== null) {
this.tabStop = tabStop;
this.$$("TabStops").value = tabStop.join(",");
this.$$("TabStops").value = this.formatTabStops(tabStop);
}
// Events