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(`│ 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,
|
||||
}
|
||||
|
|
|
|||
26
simulator.js
26
simulator.js
|
|
@ -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( `└─────────────────────┘`);
|
||||
}
|
||||
};
|
||||
Loading…
Reference in New Issue