ok ok it compiles. commented a lot too so check that out
This commit is contained in:
@@ -34,7 +34,7 @@ namespace spider {
|
|||||||
|
|
||||||
void Runtime::run() {}
|
void Runtime::run() {}
|
||||||
|
|
||||||
void Runtime::run(u64 n) {}
|
//void Runtime::run(u64 n) {}
|
||||||
|
|
||||||
// Misc //
|
// Misc //
|
||||||
|
|
||||||
@@ -45,9 +45,10 @@ namespace spider {
|
|||||||
/**
|
/**
|
||||||
* Non-owning reel setup.
|
* Non-owning reel setup.
|
||||||
*/
|
*/
|
||||||
void Runtime::hookReel(InstrReel* reel, bool own) {
|
void Runtime::hookReel(InstrReel* newReel, bool own) {
|
||||||
cpu.hookInstrReel(reel);
|
delete this->reel;
|
||||||
if(own) this->reel = reel;
|
cpu.hookInstrReel(newReel);
|
||||||
|
if(own) this->reel = newReel;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -75,7 +75,7 @@ namespace spider {
|
|||||||
/**
|
/**
|
||||||
* Non-owning reel setup.
|
* Non-owning reel setup.
|
||||||
*/
|
*/
|
||||||
void hookReel(InstrReel* reel, bool own = false);
|
void hookReel(InstrReel* newReel, bool own = false);
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -68,17 +68,20 @@ namespace spider {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void CPU::COM() {
|
void CPU::COM() {
|
||||||
// TODO: Implement COM
|
|
||||||
fetchOperDst();
|
fetchOperDst();
|
||||||
switch(_size){
|
switch(_size){
|
||||||
case 0b00: //byte
|
case 0b00: //byte
|
||||||
_dst->_u8 = ~_dst->_u8;
|
_dst->_u8 = ~_dst->_u8;
|
||||||
|
break;
|
||||||
case 0b01: //short
|
case 0b01: //short
|
||||||
_dst->_u16 = ~_dst->_u16;
|
_dst->_u16 = ~_dst->_u16;
|
||||||
|
break;
|
||||||
case 0b10: //int
|
case 0b10: //int
|
||||||
_dst->_u32 = ~_dst->_u32;
|
_dst->_u32 = ~_dst->_u32;
|
||||||
|
break;
|
||||||
case 0b11: //long
|
case 0b11: //long
|
||||||
_dst->_u64 = ~_dst->_u64;
|
_dst->_u64 = ~_dst->_u64;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
(this->*_post)();
|
(this->*_post)();
|
||||||
}
|
}
|
||||||
@@ -89,28 +92,36 @@ namespace spider {
|
|||||||
switch(_size){
|
switch(_size){
|
||||||
case 0b00: //byte
|
case 0b00: //byte
|
||||||
_dst->_u8 = 1 + ~_dst->_u8;
|
_dst->_u8 = 1 + ~_dst->_u8;
|
||||||
|
break;
|
||||||
case 0b01: //short
|
case 0b01: //short
|
||||||
_dst->_u16 = 1+ ~_dst->_u16;
|
_dst->_u16 = 1+ ~_dst->_u16;
|
||||||
|
break;
|
||||||
case 0b10: //int
|
case 0b10: //int
|
||||||
_dst->_u32 = 1 + ~_dst->_u32;
|
_dst->_u32 = 1 + ~_dst->_u32;
|
||||||
|
break;
|
||||||
case 0b11: //long
|
case 0b11: //long
|
||||||
_dst->_u64 = 1 + ~_dst->_u64;
|
_dst->_u64 = 1 + ~_dst->_u64;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
(this->*_post)();
|
(this->*_post)();
|
||||||
}
|
}
|
||||||
|
|
||||||
void CPU::EXS() {
|
void CPU::EXS() { // THIS IS INCORRECT!!!
|
||||||
// TODO: Implement EXS
|
// TODO: Implement EXS
|
||||||
fetchOperDst();
|
fetchOperDst();
|
||||||
switch(_size){
|
switch(_size){
|
||||||
case 0b00: //byte
|
case 0b00: //byte
|
||||||
_dst->_u32 = _dst->_u8 & 1;
|
_dst->_u32 = _dst->_u8 & 1;
|
||||||
|
break;
|
||||||
case 0b01: //short
|
case 0b01: //short
|
||||||
_dst->_u32 = _dst->_u16 & 1;
|
_dst->_u32 = _dst->_u16 & 1;
|
||||||
|
break;
|
||||||
case 0b10: //int
|
case 0b10: //int
|
||||||
_dst->_u32 = _dst->_u32 & 1;
|
_dst->_u32 = _dst->_u32 & 1;
|
||||||
|
break;
|
||||||
case 0b11: //long
|
case 0b11: //long
|
||||||
_dst->_u32 = _dst->_u64 & 1;
|
_dst->_u32 = _dst->_u64 & 1;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
_dst->_u32 = _dst->_u8;
|
_dst->_u32 = _dst->_u8;
|
||||||
(this->*_post)();
|
(this->*_post)();
|
||||||
|
|||||||
@@ -5,6 +5,7 @@
|
|||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
#include <cstring>
|
#include <cstring>
|
||||||
|
|
||||||
|
/*
|
||||||
namespace spider {
|
namespace spider {
|
||||||
|
|
||||||
template<typename T>
|
template<typename T>
|
||||||
@@ -101,3 +102,4 @@ namespace spider {
|
|||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
#include <spider/runtime/common.hpp>
|
#include <spider/runtime/common.hpp>
|
||||||
|
|
||||||
|
/*
|
||||||
namespace spider {
|
namespace spider {
|
||||||
|
|
||||||
template<typename T>
|
template<typename T>
|
||||||
@@ -27,3 +28,4 @@ namespace spider {
|
|||||||
f64 matrix_det(Matrix<f64> mat);
|
f64 matrix_det(Matrix<f64> mat);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
#include <iostream>
|
#include <iostream>
|
||||||
|
|
||||||
|
/*
|
||||||
template<typename T, int Rows, int Cols>
|
template<typename T, int Rows, int Cols>
|
||||||
struct Matrix {
|
struct Matrix {
|
||||||
T data[Rows][Cols];
|
T data[Rows][Cols];
|
||||||
@@ -106,3 +106,4 @@ Matrix<T, M, P> mat_multiply(Matrix<T, M, N> A, Matrix<T, N, P> B) {
|
|||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
@@ -30,17 +30,17 @@ namespace spider {
|
|||||||
return quat_mul_gnrl<f32>(q1, q2);
|
return quat_mul_gnrl<f32>(q1, q2);
|
||||||
}
|
}
|
||||||
|
|
||||||
void quat_mat(Quat<f32> quat, f32* mat) {
|
//void quat_mat(Quat<f32> quat, f32* mat) {
|
||||||
// TODO
|
// // TODO
|
||||||
}
|
//}
|
||||||
|
|
||||||
Quat<f64> quat_mul(Quat<f64> q1, Quat<f64> q2) {
|
Quat<f64> quat_mul(Quat<f64> q1, Quat<f64> q2) {
|
||||||
return quat_mul_gnrl<f64>(q1, q2);
|
return quat_mul_gnrl<f64>(q1, q2);
|
||||||
}
|
}
|
||||||
|
|
||||||
void quat_mat(Quat<f64> q1, f64* mat) {
|
//void quat_mat(Quat<f64> q1, f64* mat) {
|
||||||
// TODO
|
// // TODO
|
||||||
}
|
//}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
int quatMain() {
|
int quatMain() {
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ namespace spider {
|
|||||||
growTo((length >> 8) + ((length & 255) != 0));
|
growTo((length >> 8) + ((length & 255) != 0));
|
||||||
}
|
}
|
||||||
|
|
||||||
InstrReelDyn::InstrReelDyn(const u8* data, u64 length) {}
|
//InstrReelDyn::InstrReelDyn(const u8* data, u64 length) {}
|
||||||
|
|
||||||
InstrReelDyn::InstrReelDyn(const InstrReelDyn& copy)
|
InstrReelDyn::InstrReelDyn(const InstrReelDyn& copy)
|
||||||
: _blocks(copy._blocks), _size(copy._size) {
|
: _blocks(copy._blocks), _size(copy._size) {
|
||||||
@@ -89,7 +89,7 @@ namespace spider {
|
|||||||
dat = 0;
|
dat = 0;
|
||||||
for (isize i = 0; i < sizeof(dat); i++) {
|
for (isize i = 0; i < sizeof(dat); i++) {
|
||||||
auto& b = _blocks[(b_index + s_index) >> 8];
|
auto& b = _blocks[(b_index + s_index) >> 8];
|
||||||
dat |= u16(b.data[s_index++ & 0xFF]) << (i * 8);
|
dat |= u16(b.data[s_index++ & 0xFF] << (i * 8));
|
||||||
}
|
}
|
||||||
return dat;
|
return dat;
|
||||||
}
|
}
|
||||||
@@ -196,17 +196,14 @@ namespace spider {
|
|||||||
|
|
||||||
// TODO!
|
// TODO!
|
||||||
|
|
||||||
void InstrReelDyn::writeU8(u64 ip, u8 dat) {}
|
//void InstrReelDyn::writeU8(u64 ip, u8 dat) {}
|
||||||
|
//void InstrReelDyn::writeU16(u64 ip, u16 dat) {}
|
||||||
void InstrReelDyn::writeU16(u64 ip, u16 dat) {}
|
//void InstrReelDyn::writeU32(u64 ip, u32 dat) {}
|
||||||
|
//void InstrReelDyn::writeU64(u64 ip, u64 dat) {}
|
||||||
void InstrReelDyn::writeU32(u64 ip, u32 dat) {}
|
|
||||||
|
|
||||||
void InstrReelDyn::writeU64(u64 ip, u64 dat) {}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Appends instruction at the end.
|
* Appends instruction at the end.
|
||||||
*/
|
*/
|
||||||
void InstrReelDyn::append(u16 bc) {}
|
//void InstrReelDyn::append(u16 bc) {}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -148,7 +148,7 @@ namespace spider {
|
|||||||
|
|
||||||
// 4. Overlay the title if provided
|
// 4. Overlay the title if provided
|
||||||
if (!title.empty()) {
|
if (!title.empty()) {
|
||||||
move(startRow, startCol + (width - title.size() - 2) / 2);
|
move(startRow, startCol + (width - i32(title.size()) - 2) / 2);
|
||||||
std::cout << " " << title << " ";
|
std::cout << " " << title << " ";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user