PORTB equ $1004 BAUD equ $102B *Baudrate selector SCCR1 equ $102C *SCI control register 1 SCCR2 equ $102D *SCI control register 2 SCSR equ $2E *SCI status register SPCR equ $28 SCDR equ $102F DDRA equ $1001 PORTA equ $1000 TFLG2 equ $25 TMSK2 equ $24 TIM1 equ $00D0 *1er vecteur interruption TIMER TIM2 equ $00D1 *1er vecteur interruption TIMER IRQ1 equ $00EE *2eme vecteur interruption IRQ IRQ2 equ $00EF *2eme vecteur interruption IRQ SCI1 equ $00C4 *2eme vecteur interruption SCI SCI2 equ $00C5 *2eme vecteur interruption SCI org $FE00 lds #$0120 * pile ldx #$1000 ldaa #$00 * port A setup for input staa DDRA * | ldaa #$7E * opcode de JMP staa SCI1 * interrupt vector-1=JMP opcode <- SCI staa TIM1 * interrupt vector-1=JMP opcode <-timer overflow staa IRQ1 * interrupt vector-1=JMP opcode <- IRQ ldx #intrs232 stx SCI2 * interrupt vector ldx #ovltimr stx TIM2 * interrupt vector ldx #irq stx IRQ2 * interrupt vector ldx #$1000 cli * enable interrupts ** initalisation SCI *** bset SPCR,x,#$20 * serial port setup clr SCCR1 ldd #$332C * set baudrate, enable recv, tsmit & int staa BAUD stab SCCR2 bclr TFLG2,x,#$7F * clear overflow (if any) bset TMSK2,x,#$83 * enable interrupt and prescaler=16 lsla * logic shift left A ldaa #$00 * timer related interrupt staa $0101 ** pgm principal *** ici ldaa $0100 staa PORTB inca bra delai wai *mise e nwait du pgm jusqu'a la prochaine interruption !! bra ici delai ldy #$FFFF wait dey bne wait rts ** Pgm interruption overflow timer*** ovltimr ldaa #$80 staa TFLG2,x * clear overflow flag ldaa $0100 inca *staa PORTB staa $0100 rti ** pgm interruption du SCI*** *>> affiche la code de la touche appuyé sur le port B intrs232 brclr SCSR,x,#$20,intrs232 ldaa SCDR staa $0100 rti ** pgm interruption de IRQ*** *>> remet a zero la port B irq ldaa #$00 * staa $0100 rti end