$regfile = "m8def.dat"
$crystal = 8000000

Config Timer0 = Timer , Prescale = 1024                     'időzítő beállítás - előosztás 1024
Config Int0 = Change                                        '0. megszakítás minden állapotváltozásra figyeljen
Config Int1 = Change                                        '1. megszakítás minden állapotváltozásra figyeljen
Config Pinb.0 = Input
Config Pinb.1 = Input
Config Portc.0 = Output

On Int0 Gomb1                                               '0. megszakítás rutin neve 'Gomb1'
On Int1 Gomb2                                               '1. megszakítás rutin neve 'Gomb2'
On Timer0 Letelt

Enable Interrupts                                           'minden megszakítás engedélyezése
Enable Int0                                                 '0. megszakítás engedélyezése
Enable Int1                                                 '1. megszakítás engedélyezése
Enable Timer0                                               'időzítő megszakítás engedélyezése


Dim A As Bit
Dim B As Bit
Dim C As Bit
Dim Ok As Bit
Dim Cnt As Byte

A = 1
B = 1
C = 0

Do
   If A = 0 Or B = 0 And C = 0 Then                         'ha bármelyik gombot megnyomtad
   Start Timer0                                             'időzítő indítása
   If Cnt = 6 Then                                          'ha a számláló elérte a 6-ot (azaz eltelt kb. 200ms), akkor
   Stop Timer0                                              'időzítő leállítása
   Cnt = 0                                                  'számláló változó alaphelyzetbe állítása a következő számláláshoz
      Do                                                    'belép a belső ciklusba
         If A = 0 And B = 0 And C = 0 Then                  'ha mindkét gomb megnyomódott a 200ms-alatt
            C = 1                                           'a változót '1-be
            Ok = 1                                          'OK változót '1'-be
            Set Portc.0                                     'kimenetet (LEDet) bekapcsolni
         End If
         If A = 1 Or B = 1 Then Ok = 0                      'ha bármelyik gombot elengetdjük (vagy megsem nyomtuk) OK =0
         C = 1                                              ' 'a' változó értéka mindenképpen 1-re
      Loop Until Ok = 0                                     'ha OK=0 (azaz valamelyik gombot elengedtük) kilépés a belső ciklusból
   End If
   End If

   If A = 1 And B = 1 Then C = 0                            'ha mindkét gombot elengedjük az 'a' segédváltozó legyen ismét 0
   Reset Portc.0                                            'kikapcsoljuk a kimenetet
Loop

'Időzítő megszakítás rutin
Letelt:
   Incr Cnt                                                 'CNT segédváltozó növelése (INCRementálás) 1-el
Return

'0. megszakítás rutin - Gomb1
Gomb1:
   Toggle A                                                 'A segédváltozó bit állapotának megfordítása (0->1 vagy 1->0)
Return

'1. megszakítás rutin - Gomb2
Gomb2:
   Toggle B                                                 'B segédváltozó bit állapotának megfordítása (0->1 vagy 1->0)
Return
