mirror of
https://github.com/pkimpel/retro-b5500.git
synced 2026-02-11 19:05:01 +00:00
1. Move project from Google Code to GitHub (https://github.com/pkimpel/retro-b5500/). Update links and help pages; convert wiki pages to GitHub's MarkDown format. 2. Implement emulator-hosted memory dump to a tape image that can be saved and input into the B5500 DUMP/ANALYZE utility for analysis. Activated by clicking the NOT READY button on the Console. 3. Fix bad assignments to Processor X register in arithmetic ops (affected only SyllableDebugger script). 4. Remove IndexedDB.openDatabase() version parameter so the B5500ColdLoader and tools/ scripts will work in non-Firefox browsers. 5. Add a "?db" query string parameter to the tools/scripts so these scripts can open disk subsystems other than B5500DiskUnit. 6. Correct pre-allocated file locations and ESU card in tools/COLDSTART-XIII.card. 7. Implement new double-click mechanism to copy and clear the contents of card punch, datacom terminal, and line-printer output areas to a temporary window for subsequent copying or saving. 8. Correct handling of Ctrl-B (break), Ctrl-D (disconnect request), Ctrl-E (WRU), Ctrl-L (clear input buffer), and Ctrl-Q (alternate end-of-message) in B5500DatacomUnit. 9. Implement reporting of Model IB (slow, bulk) disk in B5500DiskUnit readInterrogate. 10. Implement detection of browser IndexedDB quota-exceeded errors in B5500DiskUnit (primarily to handle the fixed 2GB limit for off-line storage in Firefox). 11. Correct problem when line printer exhausted paper and FORM FEED triple-click did not clear the condition. 12. Eliminate BOT marker sensed in result for tape drive Write Interrogate operation -- Mark XIII and XV MCPs treat this as an error and will not purge blank tapes because of it. 13. Fix double-click of SPO INPUT REQUEST button either sending a duplicate interrupt to the system or the second click moving focus from the SPO input box. 14. Further tuning of delay-deviation adjustment mechanism in B5500SetCallback.js. 15. Reinstate ability of SPO to wrap long outputs to additional lines (apparently lost with new SPO input mechanism in 1.00). 16. Commit preliminary COOLSTART-XIII.card and MCPTAPEDISK-XIII.card decks.
83 lines
2.3 KiB
HTML
83 lines
2.3 KiB
HTML
<!DOCTYPE html>
|
|
<head>
|
|
<title>B5500 Emulator Fix StorageNames</title>
|
|
<meta name="Author" content="Nigel Williams & Paul Kimpel">
|
|
<!--
|
|
2014-08-30 Original version
|
|
2015-04-17 Add "db=" URL parameter
|
|
-->
|
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
|
<meta http-equiv="Content-Script-Type" content="text/javascript">
|
|
<meta http-equiv="Content-Style-Type" content="text/css">
|
|
|
|
<script>
|
|
var configName = "retro-B5500-Config";
|
|
var storageName = "B5500DiskUnit";
|
|
|
|
window.addEventListener("load", function(ev) {
|
|
var req;
|
|
|
|
/**************************************/
|
|
function getDBName(defaultName) {
|
|
/* Parses the URL query string for a "db=name" parameter. If "db" is
|
|
found, returns the corresponding name; if not found, returns "defaultName" */
|
|
var args;
|
|
var i;
|
|
var name;
|
|
var search = location.search.substring(1); // drop the "?"
|
|
var value = defaultName;
|
|
var x;
|
|
|
|
args = search.split("&");
|
|
for (x=args.length-1; x>=0; --x) {
|
|
i = args[x].indexOf("=");
|
|
if (i > 0 ) {
|
|
name = decodeURIComponent(args[x].substring(0, i));
|
|
if (name.toLowerCase() == "db") {
|
|
value = decodeURIComponent(args[x].substring(i+1));
|
|
break; // out of for loop
|
|
}
|
|
}
|
|
}
|
|
|
|
return value;
|
|
}
|
|
|
|
/***************************************/
|
|
|
|
storageName = getDBName(storageName);
|
|
|
|
req = window.indexedDB.open(configName);
|
|
|
|
req.onerror = function(ev) {
|
|
alert("Cannot open \"" + configName + "\" database:\n" + ev.target.error);
|
|
};
|
|
|
|
req.onblocked = function(ev) {
|
|
alert("Database open is BLOCKED");
|
|
};
|
|
|
|
req.onsuccess = function(ev) {
|
|
var db = ev.target.result;
|
|
var req;
|
|
var txn = db.transaction("StorageNames", "readwrite");
|
|
|
|
db.onerror = function(ev) {
|
|
alert("Database error: " + ev.target.error);
|
|
};
|
|
|
|
req = txn.objectStore("StorageNames").put(storageName);
|
|
|
|
txn.oncomplete = function(ev) {
|
|
alert("Disk Storage name \"" + storageName + "\"\n successfully added.");
|
|
};
|
|
};
|
|
});
|
|
</script>
|
|
</head>
|
|
|
|
<body>
|
|
<h2>Fix System Config StorageNames Store!</h2>
|
|
|
|
</body>
|
|
</html> |