diff --git a/tools/B5500ColdLoader.html b/tools/B5500ColdLoader.html
index f4c16af..2efe17c 100644
--- a/tools/B5500ColdLoader.html
+++ b/tools/B5500ColdLoader.html
@@ -70,7 +70,9 @@ window.onload = function() {
var config = null; // copy of CONFIG store contents
var disk = null; // the IDB database object
var panel = document.getElementById("TextPanel");
- var tapeDir = [];
+ var tapeBlob = null; // blob read from .bcd file
+ var tapeData = null; // tape blob as a DataView
+ var tapeDir = []; // contents of tape directory from .bcd blob
var euSet = {EU0: euSize, EU1: euSize};
@@ -83,7 +85,7 @@ window.onload = function() {
blockCount: 0,
blockLength: 0};
- var BICtoANSI = [
+ var BICtoANSI = [ // Index by 6-bit BIC to get ANSI character
"0", "1", "2", "3", "4", "5", "6", "7",
"8", "9", "#", "@", "?", ":", ">", "}",
"+", "A", "B", "C", "D", "E", "F", "G",
@@ -93,7 +95,17 @@ window.onload = function() {
" ", "/", "S", "T", "U", "V", "W", "X",
"Y", "Z", ",", "%", "!", "=", "]", "\""];
- var pow2 = [ // powers of 2 from 0 to 52
+ var BICtoANSICode = [ // Index by 6-bit BIC to get 8-bit ANSI code
+ 0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37, // 00-07, @00-07
+ 0x38,0x39,0x23,0x40,0x3F,0x3A,0x3E,0x7D, // 08-1F, @10-17
+ 0x2B,0x41,0x42,0x43,0x44,0x45,0x46,0x47, // 10-17, @20-27
+ 0x48,0x49,0x2E,0x5B,0x26,0x28,0x3C,0x7E, // 18-1F, @30-37
+ 0x7C,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F,0x50, // 20-27, @40-47
+ 0x51,0x52,0x24,0x2A,0x2D,0x29,0x3B,0x7B, // 28-2F, @50-57
+ 0x20,0x2F,0x53,0x54,0x55,0x56,0x57,0x58, // 30-37, @60-67
+ 0x59,0x5A,0x2C,0x25,0x21,0x3D,0x5D,0x23]; // 38-3F, @70-77
+
+ var pow2 = [ // powers of 2 from 0 to 52
0x1, 0x2, 0x4, 0x8,
0x10, 0x20, 0x40, 0x80,
0x100, 0x200, 0x400, 0x800,
@@ -180,14 +192,15 @@ window.onload = function() {
}
function stringToANSI(text, bytes, bx) {
- /* Translates the characters in a string to ANSI byte-array format.
- "text" is the input string, "bytes" is the Uint8Array output buffer,
- and "bx" is the offset into that output buffer */
+ /* Translates the characters in a string to upper case, and then to ANSI
+ byte-array format. "text" is the input string, "bytes" is the Uint8Array
+ output buffer, and "bx" is the offset into that output buffer */
var len = text.length;
+ var utxt = text.toUpperCase();
var x;
for (x=0; x
+
+
@@ -984,14 +1081,27 @@ window.onload = function() {
retro-B5500 Coldstart Disk SubSystem Loader
-
+
-
+
+
+
+
+
+ | Nr
+ | Load
+ | as MCP
+ | File ID
+ |
+
+
+
+
diff --git a/tools/B5500LibMaintExtract.html b/tools/B5500LibMaintExtract.html
index 9516d23..efe24ce 100644
--- a/tools/B5500LibMaintExtract.html
+++ b/tools/B5500LibMaintExtract.html
@@ -46,9 +46,11 @@
"use strict";
window.onload = function() {
+ const tapeMark = 0x8F; // .bcd file tapemark (EOF) octet code
var panel = document.getElementById("TextPanel");
- var tapeMark = 0x8F;
- var tapeDir = [];
+ var tapeBlob = null; // blob read from .bcd file
+ var tapeData = null; // tape blob as a DataView
+ var tapeDir = []; // contents of tape directory from .bcd blob
var tapeCtl = {
data: null,
@@ -529,16 +531,16 @@ window.onload = function() {
function fileLoader_onLoad(ev) {
/* Handle the onload event for an ArrayBuffer FileReader */
- var buf = ev.target.result;
- var data = new DataView(buf); // use DataView() to avoid problems with littleendians.
- var tapeDir;
var text = "";
var x = 0;
+ tapeBlob = ev.target.result;
+ tapeData = new DataView(tapeBlob); // use DataView() to avoid problems with little-endians.
+
clearPanel();
- tapeCtl.data = data;
+ tapeCtl.data = tapeData;
tapeCtl.offset = 0;
- tapeCtl.dataLength = buf.byteLength;
+ tapeCtl.dataLength = tapeBlob.byteLength;
tapeCtl.eof = false;
tapeCtl.eot = false;
tapeCtl.blockCount = 0;