Advertisement
Guest User

Untitled

a guest
Jun 16th, 2019
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.90 KB | None | 0 0
  1. JMP Start
  2. DB 26
  3.  
  4. Start:
  5. MOV AL,0
  6. OUT 01
  7. OUT 02
  8. INC AL
  9. OUT 02
  10. MOV BL,3
  11. MOV CL,0
  12. ; CALL 31
  13. MOV AL,DA
  14. MOV AL,[AL]
  15. OUT 01
  16.  
  17. STI
  18.  
  19. Loop:
  20. JMP Loop
  21. Return_to_loop:
  22. POPF
  23. JMP Loop
  24.  
  25. ; timer interrupt
  26. ORG 26
  27. CLI
  28. CALL 31
  29. CALL 6F
  30. CALL DF
  31. JMP Return_to_loop
  32.  
  33. ;==================
  34.  
  35. ; counter
  36. ORG DF
  37. MOV DL,0
  38. CMP BL,DL
  39. JZ Final_countdown
  40. CMP CL,DL
  41. JZ Next_step
  42. Final_countdown:
  43. CMP CL,DL
  44. JZ Reset_timer
  45. DEC CL
  46. JMP Turn_back
  47. Next_step:
  48. DEC BL
  49. MOV CL,9
  50. JMP Turn_back
  51. Reset_timer:
  52. MOV BL,3
  53. Turn_back:
  54. RET
  55. ;==================
  56.  
  57. ; 7-segment display
  58. ORG 31
  59. MOV DL,1
  60. PUSH AL
  61. MOV AL,C0
  62. Compare_first_digit:
  63. CMP BL,DL
  64. JZ Display_digit
  65. JS Blank_display
  66. INC AL
  67. INC DL
  68. JMP Compare_first_digit
  69. Blank_display:
  70. MOV AL,0
  71. OUT 02
  72. JMP Check_next_digit
  73. Display_digit:
  74. INC AL
  75. MOV AL,[AL]
  76. OUT 02
  77. Check_next_digit:
  78. MOV DL,0
  79. MOV AL,C0
  80. Compare_second_digit:
  81. CMP CL,DL
  82. JZ Display_last_digit
  83. INC AL
  84. INC DL
  85. JMP Compare_second_digit
  86. Display_last_digit:
  87. MOV AL,[AL]
  88. INC AL
  89. OUT 02
  90. POP AL
  91. RET
  92. ;==================
  93.  
  94. ; traffic lights
  95. ORG 6F
  96. CMP BL,1
  97. JNS Do_not_change_lights
  98. CMP CL,3
  99. JZ Change_lights
  100. CMP CL,1
  101. JNS Do_not_change_lights
  102. Change_lights:
  103. CMP AL,[DC]
  104. JS Change_differently
  105. JZ Prepare_cycle_to_reset
  106. MOV AL,DA
  107. MOV AL,[AL]
  108. JMP Send_lights
  109. Prepare_cycle_to_reset:
  110. MOV AL,DD
  111. MOV AL,[AL]
  112. JMP Send_lights
  113. Change_differently:
  114. CMP AL,[DB]
  115. JZ Next_cycle
  116. MOV AL,DB
  117. MOV AL,[AL]
  118. JMP Send_lights
  119. Next_cycle:
  120. MOV AL,DC
  121. MOV AL,[AL]
  122. Send_lights:
  123. OUT 01
  124. Do_not_change_lights:
  125. RET
  126. ;==================
  127.  
  128. ; digits
  129. ORG C0
  130. DB FA ; 0
  131. DB A ; 1
  132. DB B6 ; 2
  133. DB 9E ; 3
  134. DB 4E ; 4
  135. DB DC ; 5
  136. DB FC ; 6
  137. DB 8A ; 7
  138. DB FE ; 8
  139. DB DE ; 9
  140. ; colours
  141. ORG DA
  142. DB 84 ; Red & Green
  143. DB C8 ; Red+Amber & Amber
  144. DB 30 ; Green & Red
  145. DB 58 ; Amber & Red+Amber
  146. ;===================
  147.  
  148. END
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement