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;