Added line controller to RAM
This commit is contained in:
parent
44cdd9c219
commit
1a61c1d43b
@ -50,10 +50,10 @@
|
|||||||
<span id="TEXT_OUT" style="border: 1px solid black; min-width: 48em; min-height: 2.2em; display: inline-block;"></span>
|
<span id="TEXT_OUT" style="border: 1px solid black; min-width: 48em; min-height: 2.2em; display: inline-block;"></span>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<span>RAM : [<span id="Address_BUS"></span>]</span><br /><span id="RAM"></brspan>
|
<span>RAM : [<span id="Address_BUS"></span>] <span>Lines: </span><input id="ramlines" type="number" value="4" size="4" min="1" max="1024" /></span><br /><span id="RAM"></span>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<span>RAM (STACK): </span><br /><span id="STACK-RAM"></brspan>
|
<span>RAM (STACK): </span><br /><span id="STACK-RAM"></span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script src="js/cpu.js"></script>
|
<script src="js/cpu.js"></script>
|
||||||
|
11
js/cpu.js
11
js/cpu.js
@ -70,6 +70,7 @@ const OECONTROL_RO = 0b11111 // RAM to DATABUS Enable
|
|||||||
|
|
||||||
let intval = null;
|
let intval = null;
|
||||||
let breakpt = null;
|
let breakpt = null;
|
||||||
|
let ramlines = {value: 1};
|
||||||
|
|
||||||
function stringToRAM(rstring,ram,address) {
|
function stringToRAM(rstring,ram,address) {
|
||||||
for (let a = 0; a < rstring.length; a++) {
|
for (let a = 0; a < rstring.length; a++) {
|
||||||
@ -182,15 +183,15 @@ function printTextOut(ram,startaddr,endaddr) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function printRAM(ram,lines = 4) {
|
function printRAM(ram) {
|
||||||
let addrSpan = lines;
|
let addrSpan = parseInt(ramlines.value);
|
||||||
let startADDR = (cpu.ADDRBUS & 0xfff0) - ((addrSpan*16)/2);
|
let startADDR = (cpu.ADDRBUS & 0xfff0) - ((Math.ceil(addrSpan/2)*16));
|
||||||
if (startADDR < 0) startADDR = 0;
|
if (startADDR < 0) startADDR = 0;
|
||||||
if (startADDR > 0xFEFF) startADDR = (0xFF00 + (addrSpan*16));
|
if (startADDR > 0xFEFF) startADDR = (0xFF00 + (addrSpan*16));
|
||||||
let sp_ram = document.getElementById("RAM");
|
let sp_ram = document.getElementById("RAM");
|
||||||
let ramtext = "ADDR : 0 1 2 3 4 5 6 7 8 9 A B C D E F<br />";
|
let ramtext = "ADDR : 0 1 2 3 4 5 6 7 8 9 A B C D E F<br />";
|
||||||
for (let a = startADDR; a < (startADDR+(addrSpan*16)); a+=16) {
|
for (let a = startADDR; a < (startADDR+(addrSpan*16)); a+=16) {
|
||||||
ramtext += "0x" + formatHex(a,4) + ": ";
|
ramtext += "0x" + formatHex(a,6) + ": ";
|
||||||
for (let b = 0; b < 16; b++) {
|
for (let b = 0; b < 16; b++) {
|
||||||
if (cpu.ADDRBUS === (a)+b) {
|
if (cpu.ADDRBUS === (a)+b) {
|
||||||
let bgcolor = "#ffff55";
|
let bgcolor = "#ffff55";
|
||||||
|
@ -51,6 +51,7 @@ let btn_runtil = document.getElementById("btn_runtil");
|
|||||||
let brkpt = document.getElementById("addrbrk");
|
let brkpt = document.getElementById("addrbrk");
|
||||||
let clkinterval = document.getElementById("clkinterval");
|
let clkinterval = document.getElementById("clkinterval");
|
||||||
let clkcycles = document.getElementById("clkcycles");
|
let clkcycles = document.getElementById("clkcycles");
|
||||||
|
ramlines = document.getElementById("ramlines");
|
||||||
let btn_rst = document.getElementById("btn_rst");
|
let btn_rst = document.getElementById("btn_rst");
|
||||||
let clk_counter = document.getElementById("clk_counter");
|
let clk_counter = document.getElementById("clk_counter");
|
||||||
let clk_count = 0;
|
let clk_count = 0;
|
||||||
@ -65,6 +66,7 @@ btn_clk.addEventListener('mouseup', function(evt) {
|
|||||||
cpu.CLOCK(false);
|
cpu.CLOCK(false);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
btn_runtil.addEventListener('click', function(evt) {
|
btn_runtil.addEventListener('click', function(evt) {
|
||||||
let addr = parseInt("0x" + brkpt.value);
|
let addr = parseInt("0x" + brkpt.value);
|
||||||
let cpi = parseInt(clkcycles.value);
|
let cpi = parseInt(clkcycles.value);
|
||||||
|
Loading…
Reference in New Issue
Block a user