Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- P5 EQU 0F8H
- P7 EQU 0DBH
- ORG 0
- START:
- MOV A, #7FH
- LCALL TEST_ROW
- JNC NO_KEY
- LCALL FIND
- MOV P1, A
- SJMP START1
- NO_KEY:
- MOV P1, #0
- SJMP START1
- START1:
- MOV A, #7FH
- LCALL TEST_ROW
- JNC NO_KEY1
- LCALL FIND
- MOV P1, A
- SJMP START2
- NO_KEY1:
- MOV P1, #0
- SJMP START2
- START2:
- MOV A, #7FH
- LCALL TEST_ROW
- JNC NO_KEY2
- LCALL FIND
- MOV P1, A
- SJMP START3
- NO_KEY2:
- MOV P1, #0
- SJMP START3
- START3:
- MOV A, #7FH
- LCALL TEST_ROW
- JNC NO_KEY3
- LCALL FIND
- MOV P1, A
- SJMP START
- NO_KEY3:
- MOV P1, #0
- SJMP START
- ;-------------------------------------------------
- ; SPRAWDZA CZY NACISNIETO KLAWISZ W DANYM WIERSZU A.7..4 - WIERSZ
- ;---------------------------------------------------
- TEST_ROW:
- ANL A, #0F0H
- MOV B, A
- ANL P5, #0FH
- ORL P5, A
- MOV A, P7
- CPL A
- ANL A, #0FH
- SETB C
- JNZ TEST_ROW_END
- CLR C
- TEST_ROW_END:
- RET
- ;-------------------------------------------------
- ; ZNAJDUJE PIERWSZA JEDYNKE W AKUMULATORZE ZWRACA NR BITU WYSTAPIENIA
- ;---------------------------------------------------
- FIND:
- MOV R7, #12
- MOV R6, #12
- JZ END_FIND
- LOOP_FIND:
- RRC A
- JC PRE
- INC R7
- SJMP LOOP_FIND
- PRE:
- MOV A, B
- SWAP A
- LOOP_FIND2:
- RRC A
- JC END_FIND
- INC R6
- SJMP LOOP_FIND2
- END_FIND:
- MOV A, R6
- SWAP A
- ADD A, R7
- RET
- END
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement