//--------------------------------------------------------------------------- #include #pragma hdrstop #include #include "IRQThrd.h" #include "IRQSampc.h" #include "Win32IRQ.h" #include "ACCES32.h" #pragma package(smart_init) //--------------------------------------------------------------------------- __fastcall IRQThread::IRQThread(bool CreateSuspended) : TThread(CreateSuspended) { } //--------------------------------------------------------------------------- void __fastcall IRQThread::UpdateIRQCaption(void) { Form1->CountLabel->Caption = "IRQ Count: " + IntToStr(Form1->IRQ_Count); } //--------------------------------------------------------------------------- void __fastcall IRQThread::UpdateStatusCaption(void) { Form1->StatusLabel->Caption = "Waiting...Generate IRQs now"; } //--------------------------------------------------------------------------- void __fastcall IRQThread::Execute() { bool IRQOccurred; Synchronize(UpdateStatusCaption); do { IRQOccurred = DetectIRQ(); if (IRQOccurred) { Form1->IRQ_Count++; // send eoi SendEOI(); Synchronize(UpdateIRQCaption); } } while (!Terminated); } //---------------------------------------------------------------------------