Advertisement
Guest User

Filip to ogórek

a guest
Dec 3rd, 2018
180
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. SEG_ON EQU P1.6
  2.  
  3. F_CSDS EQU 0FF30H ;bufor wyboru wskaźnika
  4. F_CSDB EQU 0FF38H ;bufor danych wskaźnika
  5.  
  6. KEY_COD_LEFT EQU 100000B
  7. KEY_COD_RIGHT EQU 000100B
  8.  
  9. M EQU 00110111B
  10. I EQU 00000110B
  11. CC EQU 00111001B
  12. H EQU 01110110B
  13. AA EQU 01110111B
  14. L EQU 00111000B
  15. BB EQU 01111100B
  16. E EQU 01111001B
  17. R EQU 01010000B
  18. S EQU 01101101B
  19. K EQU 01110100B
  20. SPC EQU 00000000B
  21.     LJMP START
  22.     ORG 100H
  23.  
  24. SET_LEFT:
  25.     MOV A, #0100000B
  26.     MOVX @R0, A
  27.     JB P3.5, SHIFT_LEFT
  28.     LJMP WM
  29.  
  30. SET_RIGHT:
  31.     MOV A, #0000100B
  32.     MOVX @R0, A
  33.     JB P3.5, SHIFT_RIGHT
  34.     LJMP WM
  35.  
  36. SHIFT_RIGHT:
  37.     INC R2
  38.     LJMP LOOP2
  39.  
  40. SHIFT_LEFT:
  41.     DEC R2
  42.    
  43. LOOP2:
  44.     JNB P3.5, WM
  45.     LJMP LOOP2
  46.  
  47. START:
  48.     MOV R0, #CSDS
  49.     MOV R1, #CSDB
  50.     MOV R2, #0                          ;R2 PAMIETA PRZESUNIECIE
  51.  
  52. LOOP:
  53.     MOV R4, #00100000B                  ;R4 PAMIETA AKTUALNY WSKAZNIK
  54.  
  55.     MOV A, R5
  56.     CPL A
  57.     MOV R5, A
  58.     CJNE A, #0, SET_RIGHT
  59.     LJMP SET_LEFT
  60.  
  61. WM:
  62.     MOV A, R2
  63.     MOV R3, A
  64.  
  65.     JZ WM_DO
  66.     DEC R3
  67.     LJMP WI
  68. WM_DO:
  69.     MOV A, #M
  70.     MOVX @R1, A
  71.     MOV A, R4
  72.     MOVX @R0, A
  73.  
  74.     LCALL SHOW
  75.     CALL NEXT_LETTER
  76.    
  77. WI:
  78.     MOV A, R3
  79.     JZ WI_DO
  80.     DEC R3
  81.     LJMP WC
  82. WI_DO:
  83.     MOV A, #I
  84.     MOVX @R1, A
  85.     MOV A, R4
  86.     MOVX @R0, A
  87.  
  88.     LCALL SHOW
  89.     LCALL NEXT_LETTER
  90.  
  91. WC:
  92.     MOV A, R3
  93.     JZ WC_DO
  94.     DEC R3
  95.     LJMP WH
  96. WC_DO:
  97.     MOV A, #CC
  98.     MOVX @R1, A
  99.     MOV A, R4
  100.     MOVX @R0, A
  101.  
  102.     LCALL SHOW
  103.     LCALL NEXT_LETTER
  104. WH:
  105.     MOV A, R3
  106.     JZ WH_DO
  107.     DEC R3
  108.     LJMP WA
  109. WH_DO:
  110.     MOV A, #H
  111.     MOVX @R1, A
  112.     MOV A, R4
  113.     MOVX @R0, A
  114.  
  115.     LCALL SHOW
  116.     LCALL NEXT_LETTER
  117. WA:
  118.     MOV A, R3
  119.     JZ WA_DO
  120.     DEC R3
  121.     LJMP WL
  122. WA_DO:
  123.     MOV A, #AA
  124.     MOVX @R1, A
  125.     MOV A, R4
  126.     MOVX @R0, A
  127.  
  128.     LCALL SHOW
  129.     LCALL NEXT_LETTER
  130. WL:
  131.     MOV A, R3
  132.     JZ WL_DO
  133.     DEC R3
  134.     LJMP WSPC
  135. WL_DO:
  136.     MOV A, #L
  137.     MOVX @R1, A
  138.     MOV A, R4
  139.     MOVX @R0, A
  140.  
  141.     LCALL SHOW
  142.     LCALL NEXT_LETTER
  143. WSPC:
  144.     MOV A, R3
  145.     JZ WSPC_DO
  146.     DEC R3
  147.     LJMP WB
  148. WSPC_DO:
  149.     MOV A, #SPC
  150.     MOVX @R1, A
  151.     MOV A, R4
  152.     MOVX @R0, A
  153.  
  154.     LCALL SHOW
  155.     LCALL NEXT_LETTER
  156. WB:
  157.     MOV A, R3
  158.     JZ WB_DO
  159.     DEC R3
  160.     LJMP WA2
  161. WB_DO:
  162.     MOV A, #BB
  163.     MOVX @R1, A
  164.     MOV A, R4
  165.     MOVX @R0, A
  166.     LCALL SHOW
  167.     LCALL NEXT_LETTER
  168.  
  169. WA2:
  170.     MOV A, R3
  171.     JZ WA2_DO
  172.     DEC R3
  173.     LJMP WL2
  174. WA2_DO:
  175.     MOV A, #AA
  176.     MOVX @R1, A
  177.     MOV A, R4
  178.     MOVX @R0, A
  179.     LCALL SHOW
  180.     LCALL NEXT_LETTER
  181. WL2:
  182.     MOV A, R3
  183.     JZ WL2_DO
  184.     DEC R3
  185.     LJMP WC2
  186. WL2_DO:
  187.     MOV A, #L
  188.     MOVX @R1, A
  189.     MOV A, R4
  190.     MOVX @R0, A
  191.     LCALL SHOW
  192.     LCALL NEXT_LETTER
  193. WC2:
  194.     MOV A, R3
  195.     JZ WC2_DO
  196.     DEC R3
  197.     LJMP WE
  198. WC2_DO:
  199.     MOV A, #CC
  200.     MOVX @R1, A
  201.     MOV A, R4
  202.     MOVX @R0, A
  203.     LCALL SHOW
  204.     LCALL NEXT_LETTER
  205.  
  206. WE:
  207.     MOV A, R3
  208.     JZ WE_DO
  209.     DEC R3
  210.     LJMP WRR
  211. WE_DO:
  212.     MOV A, #E
  213.     MOVX @R1, A
  214.     MOV A, R4
  215.     MOVX @R0, A
  216.     LCALL SHOW
  217.     LCALL NEXT_LETTER
  218. WRR:
  219.     MOV A, R3
  220.     JZ WR_DO
  221.     DEC R3
  222.     LJMP WS
  223. WR_DO:
  224.     MOV A, #R
  225.     MOVX @R1, A
  226.     MOV A, R4
  227.     MOVX @R0, A
  228.     LCALL SHOW
  229.     LCALL NEXT_LETTER
  230. WS:
  231.     MOV A, R3
  232.     JZ WS_DO
  233.     DEC R3
  234.     LJMP WK
  235. WS_DO:
  236.     MOV A, #S
  237.     MOVX @R1, A
  238.     MOV A, R4
  239.     MOVX @R0, A
  240.     LCALL SHOW
  241.     LCALL NEXT_LETTER
  242. WK:
  243.     MOV A, R3
  244.     JZ WK_DO
  245.     DEC R3
  246.     LJMP WI2
  247. WK_DO:
  248.     MOV A, #K
  249.     MOVX @R1, A
  250.     MOV A, R4
  251.     MOVX @R0, A
  252.     LCALL SHOW
  253.     LCALL NEXT_LETTER
  254. WI2:
  255.     MOV A, R3
  256.     JZ WI2_DO
  257.     DEC R3
  258.     LJMP END
  259. WI2_DO:
  260.     MOV A, #I
  261.     MOVX @R1, A
  262.     MOV A, R4
  263.     MOVX @R0, A
  264.     LCALL SHOW
  265.     LCALL NEXT_LETTER
  266. END:
  267.     LJMP LOOP
  268.  
  269. SHOW:
  270.     CLR SEG_ON
  271.     SETB SEG_ON
  272.  
  273.     RET
  274.  
  275. NEXT_LETTER:
  276.     MOV A, R4
  277.     MOV B, #2
  278.     DIV AB
  279.     MOV R4, A
  280.     RET
  281.  
  282.     NOP
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement