| 131 | } |
| 132 | |
| 133 | BYTE __stdcall BreakpointCard::IOWrite(WORD pc, WORD addr, BYTE bWrite, BYTE value, ULONG nExecutedCycles) |
| 134 | { |
| 135 | const UINT slot = ((addr & 0xff) >> 4) - 8; |
| 136 | BreakpointCard* pCard = (BreakpointCard*)MemGetSlotParameters(slot); |
| 137 | |
| 138 | CpuIrqDeassert(IS_BREAKPOINTCARD); |
| 139 | |
| 140 | pCard->m_BPSet[pCard->m_BPSetIdx++] = value; |
| 141 | |
| 142 | if (pCard->m_BPSetIdx == kNumParams) |
| 143 | { |
| 144 | pCard->m_BPSetIdx = 0; |
| 145 | |
| 146 | if (!(pCard->m_status & kFull)) |
| 147 | { |
| 148 | INTERCEPTBREAKPOINT bpSet; |
| 149 | bpSet.type = pCard->m_BPSet[0]; |
| 150 | bpSet.addrStart = (pCard->m_BPSet[2] << 8) | pCard->m_BPSet[1]; |
| 151 | bpSet.addrEnd = (pCard->m_BPSet[4] << 8) | pCard->m_BPSet[3]; |
| 152 | bpSet.access = pCard->m_BPSet[5]; |
| 153 | |
| 154 | pCard->m_BP_FIFO.push(bpSet); |
| 155 | } |
| 156 | |
| 157 | if (pCard->m_BP_FIFO.size() == kFIFO_SIZE) |
| 158 | pCard->m_status |= kFull; |
| 159 | } |
| 160 | |
| 161 | return 0; |
| 162 | } |
| 163 | |
| 164 | void BreakpointCard::CbFunction(uint8_t slot, INTERCEPTBREAKPOINT interceptBreakpoint) |
| 165 | { |
nothing calls this directly
no test coverage detected