
Сообщение от
Alex_K
Скорее всего чего-то происходит при чтении регистра 177562, в то время когда в регистре 177560 не установлен бит готовности.
Код:
UINT16 FASTC CPU_RdW_DST0_DATA(void) { // Регистр данных приемника канала 0
CPU_DST0_STATE &= 0x7F; // Сбросить бит готовности регистра состояния приемника 0 CPU
PPU_SRC_STATE |= 0x08; // Установить бит готовности источника 0 регистра состояния источников PPU
GPU_SRC2_STATE |= 0x80; // Установить бит готовности источника-2 GPU (для КЦГД ДВК)
if (PPU_SRC_STATE & 0x1) // Если прерывание PPU по чтению данных каналом 0 разрешено
PPU_IRQ_MASK |= PPU_IRQM_TRN0; // Установить запрос прерывания PPU источником 0
if (KCGD_On) // Разрешен только при активном КЦГД
{
if (GPU_SRC2_STATE & 0x40) // Если разрешены прерывания источником-2 GPU,
GPU_IRQ_MASK |= GPU_IRQM_TRN2; // то установить запрос на прерывание
}
return(PPU_SRC0_DATA);
}