Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- JMP Start
- DB 26
- Start:
- MOV AL,0
- OUT 01
- OUT 02
- INC AL
- OUT 02
- MOV BL,3
- MOV CL,0
- ; CALL 31
- MOV AL,DA
- MOV AL,[AL]
- OUT 01
- STI
- Loop:
- JMP Loop
- Return_to_loop:
- POPF
- JMP Loop
- ; timer interrupt
- ORG 26
- CLI
- CALL 31
- CALL 6F
- CALL DF
- JMP Return_to_loop
- ;==================
- ; counter
- ORG DF
- MOV DL,0
- CMP BL,DL
- JZ Final_countdown
- CMP CL,DL
- JZ Next_step
- Final_countdown:
- CMP CL,DL
- JZ Reset_timer
- DEC CL
- JMP Turn_back
- Next_step:
- DEC BL
- MOV CL,9
- JMP Turn_back
- Reset_timer:
- MOV BL,3
- Turn_back:
- RET
- ;==================
- ; 7-segment display
- ORG 31
- MOV DL,1
- PUSH AL
- MOV AL,C0
- Compare_first_digit:
- CMP BL,DL
- JZ Display_digit
- JS Blank_display
- INC AL
- INC DL
- JMP Compare_first_digit
- Blank_display:
- MOV AL,0
- OUT 02
- JMP Check_next_digit
- Display_digit:
- INC AL
- MOV AL,[AL]
- OUT 02
- Check_next_digit:
- MOV DL,0
- MOV AL,C0
- Compare_second_digit:
- CMP CL,DL
- JZ Display_last_digit
- INC AL
- INC DL
- JMP Compare_second_digit
- Display_last_digit:
- MOV AL,[AL]
- INC AL
- OUT 02
- POP AL
- RET
- ;==================
- ; traffic lights
- ORG 6F
- CMP BL,1
- JNS Do_not_change_lights
- CMP CL,3
- JZ Change_lights
- CMP CL,1
- JNS Do_not_change_lights
- Change_lights:
- CMP AL,[DC]
- JS Change_differently
- JZ Prepare_cycle_to_reset
- MOV AL,DA
- MOV AL,[AL]
- JMP Send_lights
- Prepare_cycle_to_reset:
- MOV AL,DD
- MOV AL,[AL]
- JMP Send_lights
- Change_differently:
- CMP AL,[DB]
- JZ Next_cycle
- MOV AL,DB
- MOV AL,[AL]
- JMP Send_lights
- Next_cycle:
- MOV AL,DC
- MOV AL,[AL]
- Send_lights:
- OUT 01
- Do_not_change_lights:
- RET
- ;==================
- ; digits
- ORG C0
- DB FA ; 0
- DB A ; 1
- DB B6 ; 2
- DB 9E ; 3
- DB 4E ; 4
- DB DC ; 5
- DB FC ; 6
- DB 8A ; 7
- DB FE ; 8
- DB DE ; 9
- ; colours
- ORG DA
- DB 84 ; Red & Green
- DB C8 ; Red+Amber & Amber
- DB 30 ; Green & Red
- DB 58 ; Amber & Red+Amber
- ;===================
- END
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement