| 26 | Sio2::~Sio2() = default; |
| 27 | |
| 28 | bool Sio2::Initialize() |
| 29 | { |
| 30 | this->SoftReset(); |
| 31 | |
| 32 | for (size_t i = 0; i < CmdQueue.size(); i++) |
| 33 | { |
| 34 | CmdQueue[i] = 0; |
| 35 | } |
| 36 | |
| 37 | for (size_t i = 0; i < PortCtrl0.size(); i++) |
| 38 | { |
| 39 | PortCtrl0[i] = 0; |
| 40 | PortCtrl1[i] = 0; |
| 41 | } |
| 42 | |
| 43 | dataIn = 0; |
| 44 | dataOut = 0; |
| 45 | SetCtrl(Sio2Ctrl::SIO2MAN_RESET); |
| 46 | SetCmdStat(CmdStat::DISCONNECTED); |
| 47 | PortStat = PortStat::DEFAULT; |
| 48 | FifoStat = FifoStat::DEFAULT; |
| 49 | FifoTxPos = 0; |
| 50 | FifoRxPos = 0; |
| 51 | iStat = 0; |
| 52 | |
| 53 | port = 0; |
| 54 | |
| 55 | while (!g_Sio2FifoOut.empty()) |
| 56 | { |
| 57 | g_Sio2FifoOut.pop_front(); |
| 58 | } |
| 59 | |
| 60 | for (int i = 0; i < 2; i++) |
| 61 | { |
| 62 | for (int j = 0; j < 4; j++) |
| 63 | { |
| 64 | mcds[i][j].term = 0x55; |
| 65 | mcds[i][j].port = i; |
| 66 | mcds[i][j].slot = j; |
| 67 | mcds[i][j].FLAG = 0x08; |
| 68 | mcds[i][j].autoEjectTicks = 0; |
| 69 | } |
| 70 | } |
| 71 | |
| 72 | mcd = &mcds[0][0]; |
| 73 | return true; |
| 74 | } |
| 75 | |
| 76 | bool Sio2::Shutdown() |
| 77 | { |
no test coverage detected