Vaja 30

 

Napiši program, ki bo sprejel 4 znake v prekinitvenem nacinu delovanja SCI in jih shranil v spremenljivko 'buff', ki naj se nahaja na lokaciji $D0FF. Stevec sprejetih znakov postavi na lokacijo $D000. Znake za sprejem vpiši v vhod SCI in jih pošiljaj postopno. Naslednji znak pošlji šele, ko je bil sprejet prejšnji znak. Ob napacno sprejetem znaku povecaj števec napacnega formata (StFram) ali števec prekritih znakov (StOverr) in nadaljuj s povratkom iz podprograma. Delovanje programa ob napacnem formatu preizkusi tako, da nastaviš hitrost oddaje zunanje naprave drugacno od hitrosti delovanja SCI vmesnika. Prekritje znaka pa povzrociš tako, da pri pocasnem delovanju simulatorja pošlješ nov znak preden je sprejet prejšnji (RDRF=1). Nastavi prekinitveni tocki v vrstici, kjer povecuješ števca napak, da preveriš, pri kakšnih zaporedjih vhodnih podatkov pride do napak. Na spletni strani simulatorja MC6803 preberi o uporabi 'Trace' okna, nastavi sledenje, tocko proženja (trigger) daj na naslov, kjer se poveca števec napak StFram, doloci naslove, ki naj se izpisujejo pri sledenju (opredelitev – Qualifier) in analiziraj izpis.

Odgovor:

V tocki prozenja nastavimo, kje naj se sledenje zacne, v tocki Qualifier pa za katere naslove naj naredi izpis.

Ukaz za povecanje števca napak StFram je v mojem programu na lokciji $a033 (trigger), Qualifier sem dolocil za naslove $a03x ter dodal še možnosti R/W.

V tocki Trace se nato natancno zapise, kaj se dogaja, ko CPE izvrši ukaze. Napisano je za vsako lokacijo posebej, operacijske kode in operandi pa so zapisani v 16-iškem št. sistemu in opredeljeni z Read ali Write.

program