public void TriggerLightpen()
{
if (!lp_triggered)
{ // Lightpen triggers only once per frame
lp_triggered = true;
lpx = (byte)(raster_x >> 1); // Latch current coordinates
lpy = (byte)raster_y;
irq_flag |= 0x08; // Trigger IRQ
if ((irq_mask & 0x08) != 0)
{
irq_flag |= 0x80;
_cpu.TriggerVICIRQ();
}
}
}