Advertisement
Guest User

Untitled

a guest
Dec 11th, 2019
114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.36 KB | None | 0 0
  1. CTCR EQU 0FFFF0000
  2. CTLR EQU 0FFFF0004
  3. CTBS EQU 0FFFF0008
  4. CTEND EQU 0FFFF000C
  5.  
  6. DMAIZV EQU 0FFFF1000
  7. DMAODR EQU 0FFFF1004
  8. DMASIZE EQU 0FFFF1008
  9. DMACR EQU 0FFFF100C
  10. DMASTART EQU 0FFFF1010
  11. DMABS EQU 0FFFF1014
  12.  
  13. BVJ EQU 0FFFFFFFC
  14.  
  15. ORG 0
  16. MOVE 10000, SP ;inicijaliziramo stog
  17. JP GLAVNI
  18.  
  19. ;dma dojavljuje prekidom NMI
  20. ORG 0C
  21.  
  22. PUSH R0
  23. PUSH R1
  24. MOVE SR, R1
  25. PUSH R1
  26.  
  27. STORE R0, (DMABS) ;prihvacen prekid
  28. LOAD R0, (BLOKOVI)
  29. ADD R0, 1, R0 ;blokovi su mi zapravo brojac i povecam
  30. STORE R0, (BLOKOVI)
  31.  
  32. LOAD R0, (BLOK)
  33. ADD R0, %D 36, R0
  34. MOVE -1, R1
  35. STORE R1, (R0)
  36. ADD R0, 4, R0
  37. STORE R0, (BLOK)
  38.  
  39. MOVE 1, R0
  40. STORE R0, (EXIT) ;s ovim cu provjeravati da li dma jos
  41. ;kopira il je gotova. ako je 1 onda
  42. ;dozvoljavamo, ak je 0 onda jos kopira
  43. POP R1
  44. MOVE R1, SR
  45. POP R1
  46. POP R0
  47. RETN
  48.  
  49. ;glavni program
  50. GLAVNI MOVE %B 10000, SR
  51. MOVE %D 1000, R3 ;10 000 000 * 100*10^-6 = 1000
  52. STORE R3, (CTLR) ;upis u ct, tolko je brojanje
  53. MOVE 1, R3
  54. STORE R3, (CTCR) ;omogucujem brojanje
  55.  
  56. ;moramo programski ispitati je li ct spremna
  57. PETLJA1 LOAD R0, (CTBS)
  58. OR R0, R0, R0
  59. JR_Z PETLJA1
  60. ;kad postane spremna onda krece inicijalizacija dma
  61.  
  62. ;sad cu ispitivati da li je dma zavrsila i moze dalje
  63. PETLJA2 LOAD R0, (EXIT)
  64. OR R0, R0, R0
  65. JR_Z PETLJA2
  66.  
  67. LOAD R0, (BLOKOVI)
  68. CMP R0, %D 5 ;moram jos provjerit jel brojac doso do 5
  69. JR_EQ KRAJ
  70.  
  71. STORE R0, (CTBS) ;brisem bistabil od ct
  72. MOVE BVJ, R0
  73. STORE R0, (DMAIZV) ;izvor za dma
  74. LOAD R0, (BLOK)
  75. STORE R0, (DMAODR) ;odrediste za dma
  76. MOVE %D 9, R0
  77. STORE R0, (DMASIZE) ;posto prenosi 9 podataka
  78. MOVE %B 0111, R0
  79. STORE R0, (DMACR) ;upravljacka rijec
  80. STORE R0, (DMASTART) ;pokrecemo dma
  81.  
  82. MOVE 0, R0
  83. STORE R0, (EXIT) ;dma sad radi jos
  84. STORE R0, (CTEND) ;kraj posluzivanja ct-a
  85. JP PETLJA1
  86.  
  87. KRAJ MOVE 0, R0 ;ovdje zaustavljamo rad svih jedinica
  88. STORE R0, (CTCR)
  89. STORE R0, (DMACR)
  90. HALT
  91.  
  92. EXIT DW 1
  93. BLOKOVI DW 0
  94. BLOK DW 1000
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement