Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- CTCR EQU 0FFFF0000
- CTLR EQU 0FFFF0004
- CTBS EQU 0FFFF0008
- CTEND EQU 0FFFF000C
- DMAIZV EQU 0FFFF1000
- DMAODR EQU 0FFFF1004
- DMASIZE EQU 0FFFF1008
- DMACR EQU 0FFFF100C
- DMASTART EQU 0FFFF1010
- DMABS EQU 0FFFF1014
- BVJ EQU 0FFFFFFFC
- ORG 0
- MOVE 10000, SP ;inicijaliziramo stog
- JP GLAVNI
- ;dma dojavljuje prekidom NMI
- ORG 0C
- PUSH R0
- PUSH R1
- MOVE SR, R1
- PUSH R1
- STORE R0, (DMABS) ;prihvacen prekid
- LOAD R0, (BLOKOVI)
- ADD R0, 1, R0 ;blokovi su mi zapravo brojac i povecam
- STORE R0, (BLOKOVI)
- LOAD R0, (BLOK)
- ADD R0, %D 36, R0
- MOVE -1, R1
- STORE R1, (R0)
- ADD R0, 4, R0
- STORE R0, (BLOK)
- MOVE 1, R0
- STORE R0, (EXIT) ;s ovim cu provjeravati da li dma jos
- ;kopira il je gotova. ako je 1 onda
- ;dozvoljavamo, ak je 0 onda jos kopira
- POP R1
- MOVE R1, SR
- POP R1
- POP R0
- RETN
- ;glavni program
- GLAVNI MOVE %B 10000, SR
- MOVE %D 1000, R3 ;10 000 000 * 100*10^-6 = 1000
- STORE R3, (CTLR) ;upis u ct, tolko je brojanje
- MOVE 1, R3
- STORE R3, (CTCR) ;omogucujem brojanje
- ;moramo programski ispitati je li ct spremna
- PETLJA1 LOAD R0, (CTBS)
- OR R0, R0, R0
- JR_Z PETLJA1
- ;kad postane spremna onda krece inicijalizacija dma
- ;sad cu ispitivati da li je dma zavrsila i moze dalje
- PETLJA2 LOAD R0, (EXIT)
- OR R0, R0, R0
- JR_Z PETLJA2
- LOAD R0, (BLOKOVI)
- CMP R0, %D 5 ;moram jos provjerit jel brojac doso do 5
- JR_EQ KRAJ
- STORE R0, (CTBS) ;brisem bistabil od ct
- MOVE BVJ, R0
- STORE R0, (DMAIZV) ;izvor za dma
- LOAD R0, (BLOK)
- STORE R0, (DMAODR) ;odrediste za dma
- MOVE %D 9, R0
- STORE R0, (DMASIZE) ;posto prenosi 9 podataka
- MOVE %B 0111, R0
- STORE R0, (DMACR) ;upravljacka rijec
- STORE R0, (DMASTART) ;pokrecemo dma
- MOVE 0, R0
- STORE R0, (EXIT) ;dma sad radi jos
- STORE R0, (CTEND) ;kraj posluzivanja ct-a
- JP PETLJA1
- KRAJ MOVE 0, R0 ;ovdje zaustavljamo rad svih jedinica
- STORE R0, (CTCR)
- STORE R0, (DMACR)
- HALT
- EXIT DW 1
- BLOKOVI DW 0
- BLOK DW 1000
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement