Move pretty-printed "Running at..." header to logging.js + re-arrange logging.js exports

This commit is contained in:
n loewen 2023-08-02 14:05:59 +01:00
parent 16cc806a3c
commit f05a85cd0d
2 changed files with 27 additions and 19 deletions

View File

@ -1,4 +1,4 @@
exports.logMemory = (x) => {
const logMemory = (x) => {
console.log(`┌────────┬────────┬────────┐`);
console.log(`│ addr │ op │ arg │`);
console.log(`├────────┼────────┼────────┤`);
@ -11,6 +11,20 @@ exports.logMemory = (x) => {
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,
}

View File

@ -1,4 +1,5 @@
const { INITIAL_IP_ADDRESS, CYCLE_LIMIT } = require('./machine.config');
const { logRunningHeader, num2hex } = require('./logging.js');
const display = require('./display.js');
// STATE
@ -76,7 +77,14 @@ const Instructions = {
sub_lit: (lit) => { // TODO: carry flag
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;
},
@ -192,18 +200,4 @@ function logCPUState() {
console.log();
console.log( `IP: ${CPU.IP} Acc: ${CPU.Acc} CF: ${CPU.CF}  ${CPU.running ? "running" : "halted" }` );
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( `└─────────────────────┘`);
}
};