Move pretty-printed "Running at..." header to logging.js + re-arrange logging.js exports
This commit is contained in:
parent
16cc806a3c
commit
f05a85cd0d
20
logging.js
20
logging.js
|
|
@ -1,4 +1,4 @@
|
||||||
exports.logMemory = (x) => {
|
const logMemory = (x) => {
|
||||||
console.log(`┌────────┬────────┬────────┐`);
|
console.log(`┌────────┬────────┬────────┐`);
|
||||||
console.log(`│ addr │ op │ arg │`);
|
console.log(`│ addr │ op │ arg │`);
|
||||||
console.log(`├────────┼────────┼────────┤`);
|
console.log(`├────────┼────────┼────────┤`);
|
||||||
|
|
@ -11,6 +11,20 @@ exports.logMemory = (x) => {
|
||||||
console.log(`└────────┴────────┴────────┘`);
|
console.log(`└────────┴────────┴────────┘`);
|
||||||
}
|
}
|
||||||
|
|
||||||
const num2hex = (num) => num.toString(16).toUpperCase().padStart(2, "0");
|
const logRunningHeader = () => {
|
||||||
|
console.log();
|
||||||
|
let time = new Date();
|
||||||
|
console.log( `┌─────────────────────┐`);
|
||||||
|
console.log( `│ Running at ${time.toLocaleTimeString('en-GB')} │` );
|
||||||
|
console.log( `└─────────────────────┘`);
|
||||||
|
}
|
||||||
|
|
||||||
exports.num2hex = num2hex;
|
const num2hex = (num) => num.toString(16).toUpperCase().padStart(2, "0");
|
||||||
|
const hex2num = (hex) => parseInt(hex, 16);
|
||||||
|
|
||||||
|
module.exports = {
|
||||||
|
"logMemory": logMemory,
|
||||||
|
"logRunningHeader": logRunningHeader,
|
||||||
|
"num2hex": num2hex,
|
||||||
|
"hex2num": hex2num,
|
||||||
|
}
|
||||||
|
|
|
||||||
24
simulator.js
24
simulator.js
|
|
@ -1,4 +1,5 @@
|
||||||
const { INITIAL_IP_ADDRESS, CYCLE_LIMIT } = require('./machine.config');
|
const { INITIAL_IP_ADDRESS, CYCLE_LIMIT } = require('./machine.config');
|
||||||
|
const { logRunningHeader, num2hex } = require('./logging.js');
|
||||||
const display = require('./display.js');
|
const display = require('./display.js');
|
||||||
|
|
||||||
// STATE
|
// STATE
|
||||||
|
|
@ -76,7 +77,14 @@ const Instructions = {
|
||||||
|
|
||||||
sub_lit: (lit) => { // TODO: carry flag
|
sub_lit: (lit) => { // TODO: carry flag
|
||||||
console.log("SUB lit");
|
console.log("SUB lit");
|
||||||
CPU.Acc = CPU.Acc - lit;
|
let sum = CPU.Acc - lit;
|
||||||
|
if (sum < 0) {
|
||||||
|
CPU.CF = 1;
|
||||||
|
CPU.Acc = (sum % 15) + 1; // FIXME ???
|
||||||
|
} else {
|
||||||
|
CPU.CF = 0;
|
||||||
|
CPU.Acc = sum;
|
||||||
|
}
|
||||||
CPU.IP = CPU.IP += 2;
|
CPU.IP = CPU.IP += 2;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
@ -193,17 +201,3 @@ function logCPUState() {
|
||||||
console.log( `IP: ${CPU.IP} Acc: ${CPU.Acc} CF: ${CPU.CF} ${CPU.running ? "running" : "halted" }` );
|
console.log( `IP: ${CPU.IP} Acc: ${CPU.Acc} CF: ${CPU.CF} ${CPU.running ? "running" : "halted" }` );
|
||||||
console.log();
|
console.log();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
// FUNCTIONS FOR DISPLAYING DATA
|
|
||||||
|
|
||||||
function num2hex(num) { return num.toString(16) };
|
|
||||||
function hex2num(hex) { return parseInt(hex, 16) };
|
|
||||||
|
|
||||||
function logRunningHeader() {
|
|
||||||
console.log();
|
|
||||||
let time = new Date();
|
|
||||||
console.log( `┌─────────────────────┐`);
|
|
||||||
console.log( `│ Running at ${time.toLocaleTimeString('en-GB')} │` );
|
|
||||||
console.log( `└─────────────────────┘`);
|
|
||||||
}
|
|
||||||
Loading…
Reference in New Issue