Prekinitve

Primer: - vklapljanje izhodov s prekinitvami -
Sestavimo program, ki omogoči na paralelnem vmesniku port1 MC6803 vklapljanje in izklapljanje poljubnih izhodov. Osem priključkov razdelimo tako, da so štirje pomembnejši biti izhodi, ostali štirje manj pomembni biti pa vhodi. Slika vhodov naj se prenese na izhode le v primeru prekinitve IRQ. Program naj se izvaja v neskončni zanki in se nahaja na naslovu $2000. Pazi na inicializacijo vmesnika (port1)!

R E Š I T V E
        org   $fffe
        fdb   start
        org   $fff8
        fdb   irq

        org   $1f00
irq     ldaa  $02
        anda  #$0f
        rola
        rola
        rola
        rola
        staa  $02
        rti

        org   $2000
start   lds   #$3000
        ldaa  #%11110000
        staa  $00
        cli
ponovi  bra   ponovi

        end

* nastavimo reset vektor
* z začetnim naslovom programa
* nastavimo irq vektor
* z začetnim naslovom psp

* nastavimo začetek psp
* poglej stanje v podatkovnem registru Port1
* odstrani stanje zgornjih štirih bitov
* pomakni
* za 4
* mesta
* v levo
* vrne v DR Port1
* konec psp

* nastavimo začetek programa
* nastavi kazalec sklada za odlaaganje podatkov
* definiraj zgornje 4 bite kot izhod
* in spravi v DDR Port1
* omogoči IRQ prekinitev
* in vrti se, vrti


Med delovanjem programa opazujemo v posebnem oknu stanja na izhodih in jih spreminjamo s klikom na tipko - kvadratek. Za spremembo stanja na izhodih je potrebno sprožiti prekinitev IRQ!

K O N E C     R E Š I T E V


Naloge za reševanje in utrjevanje:

1. naloga: Sestavi program, ki omogoči na paralelnem vmesniku port1 MC6803 izpisovanje binarnih števil, ki se avtomatsko povečujejo za eno v akumulatorju A. Najprej se izpiše 0, nato 1... (inkrement!). Program naj se izvaja v neskončni zanki in se nahaja na naslovu $3000. Izpis števila na port1 se naj izvrši le ob prekinitvi IRQ (PSP na $3500)! Pazi na inicializacijo vmesnika (port1) in sklada!

2. naloga: Sestavi program, ki omogoči na paralelnem vmesniku port1 MC6803 delovanje tekočih luči. S prekinitvijo IRQ se smer premikanja loči zamenja. Program naj se izvaja v neskončni zanki in se nahaja na naslovu $4000, PSP pa na naslovu $3000. Pazi na inicializacijo vmesnika (port1) in sklada!