        GLOBL my_c_hdl          ; external 'C'-Subhandler
        GLOBL send_rs232        ; external


        GLOBL my_rwabs          ; new RWABS-vector
        GLOBL my_asm_hdl        ; main-Interrupthandler

        GLOBL my_xbra1          
        GLOBL my_xbra2

;***************************************************************************

my_xbra1:    
         ASCII         "XBRA"    
         ASCII         "KB14"     
xb1_oldvec:                   
         DS.L          1        
        
         TEXT

my_asm_hdl:
        movem.l        d0-d7/a0-a7,-(sp)   ; save registers
        lea            $0,a5               ; process_it expects it
        jsr            my_c_hdl            
        movem.l        (sp)+,d0-d7/a0-a7   ; restore registers
        move.l         xb1_oldvec,-(sp)   
        rts                                ; branch to next handler

;***************************************************************************

my_xbra2:    
        ASCII          "XBRA"      
        ASCII          "KB14"    
xb2_oldvec:                     
        DS.L           1          
        
        LED_ON      equ     $13
        LED_OFF     equ     $11
        WAIT_LED    equ     $81
        
my_rwabs:
        movem.l        d0-d1,-(sp)      ; save dataregisters
        move.b         #LED_ON,d0      
        move.b         #WAIT_LED,d1    
        jsr            send_rs232       ; send_rs232 (LED_ON, WAIT_LED)
        movem.l        (sp)+,d0-d1      ; restore dataregisters
        move.l         (sp)+,return     ; save caller
        pea            lamp_off         ; push new return-address 
quit:   move.l         xb2_oldvec,-(sp) 
        rts                             ; branch to real RWABS 

return: ds.l           1
        
lamp_off:
        movem.l        d0-d1,-(sp)      ; save dataregisters
        move.b         #LED_OFF,d0      
        move.b         #WAIT_LED,d1        
        jsr            send_rs232       ; send_rs232 (LED_OFF, WAIT_LED)  
        movem.l        (sp)+,d0-d1      ; restore dataregisters
        move.l         return,-(sp)
        rts                             ; branch to caller
