Advertisement
Guest User

Untitled

a guest
Jan 24th, 2019
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.    
  2.                 ADDRESS 000
  3.                    
  4.                 CONSTANT LCD_DATA, 80
  5.                 CONSTANT LCD_COM, 81
  6.                 CONSTANT LED_PORT, 40
  7.                
  8.                 LOAD     s0,08
  9.                 OUTPUT s0, LED_PORT
  10.  
  11. loop:           LOAD s0, ROT_CENTER
  12.                 COMPARE s0, 0
  13.                 JUMP Z, loop
  14.                 LOAD s2, SW
  15. second:         LOAD s0, ROT_CENTER
  16.                 COMPARE s0, 0
  17.                 JUMP Z, second
  18.                 LOAD s3, SW
  19. operator        LOAD s4, BTN_NORTH
  20.                 COMPARE s4, 0
  21.                 JUMP NZ, mult
  22.                 LOAD s4, BTN_SOUTH
  23.                 COMPARE s4, 0
  24.                 JUMP NZ, addit
  25.                 LOAD s4, BTN_WEST
  26.                 COMPARE s4, 0
  27.                 JUMP NZ, subtr
  28.                 JUMP operator
  29.                
  30. mult:           LOAD s0, s2
  31.                 ADD s0, 30
  32.                 CALL LCD_WRITE
  33.                 LOAD s0, chr_mul
  34.                 CALL LCD_WRITE
  35.                 LOAD s0, s3
  36.                 ADD s0, 30
  37.                 CALL LCD_WRITE
  38.                 LOAD s0, chr_equals
  39.                 CALL LCD_WRITE
  40.                 SUB s2, 30
  41.                 SUB s3, 30
  42.                 LOAD s5, 0
  43.                 CMP s2, 0
  44.                 JMP Z, break
  45. PONOVI          ADD s5, s3
  46.                 SUB s2, 1
  47.                 JUMP Z, break
  48.                 JUMP PONOVI
  49.                
  50. break           ADD s5, 30
  51.                 LOAD s0, s5
  52.                 CALL LCD_WRITE
  53.  
  54. addit:          LOAD s0, s2
  55.                 ADD s0, 30
  56.                 CALL LCD_WRITE
  57.                 LOAD s0, chr_plus
  58.                 CALL LCD_WRITE
  59.                 LOAD s0, s3
  60.                 ADD s0, 30
  61.                 CALL LCD_WRITE
  62.                 LOAD s0, chr_equals
  63.                 CALL LCD_WRITE
  64.                 ADD s2, s3
  65.                 ADD s2, 30
  66.                 LOAD s0, s2
  67.                 CALL LCD_WRITE
  68.                 JUMP loop
  69.  
  70. subtr:          LOAD s0, s2
  71.                 ADD s0, 30
  72.                 CALL LCD_WRITE
  73.                 LOAD s0, chr_minus
  74.                 CALL LCD_WRITE
  75.                 LOAD s0, s3
  76.                 ADD s0, 30
  77.                 CALL LCD_WRITE
  78.                 LOAD s0, chr_equals
  79.                 CALL LCD_WRITE
  80.                 COMPARE s2, s3
  81.                 JUMP C, negativan
  82.                 SUB s2, s3
  83.                 LOAD s0, s2
  84.                 ADD s0, 30
  85.                 CALL LCD_WRITE 
  86.                 JUMP loop
  87. negativan:      LOAD s0, chr_minus
  88.                 CALL LCD_WRITE
  89.                 SUB s3, s2
  90.                 LOAD s0, s3
  91.                 ADD s0, 30
  92.                 CALL LCD_WRITE
  93.                 JUMP loop
  94.                
  95.  
  96. LCD_WRITE:
  97.                 INPUT  s1, LCD_DATA
  98.                 COMPARE s1,01
  99.                 JUMP Z,LCD_WRITE   
  100.                 OUTPUT s0, LCD_DATA
  101.                 RETURN
  102. LCD_COMMAND:
  103.                 INPUT  s1, LCD_DATA
  104.                 COMPARE s1,01
  105.                 JUMP Z,LCD_COMMAND 
  106.                 OUTPUT s0, LCD_COM
  107.                 RETURN
  108.  
  109.  
  110. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  111. ;
  112.                         ;ASCII table
  113.                         ;
  114.                         CONSTANT chr_a, 61
  115.                         CONSTANT chr_b, 62
  116.                         CONSTANT chr_c, 63
  117.                         CONSTANT chr_d, 64
  118.                         CONSTANT chr_e, 65
  119.                         CONSTANT chr_f, 66
  120.                         CONSTANT chr_g, 67
  121.                         CONSTANT chr_h, 68
  122.                         CONSTANT chr_i, 69
  123.                         CONSTANT chr_j, 6A
  124.                         CONSTANT chr_k, 6B
  125.                         CONSTANT chr_l, 6C
  126.                         CONSTANT chr_m, 6D
  127.                         CONSTANT chr_n, 6E
  128.                         CONSTANT chr_o, 6F
  129.                         CONSTANT chr_p, 70
  130.                         CONSTANT chr_q, 71
  131.                         CONSTANT chr_r, 72
  132.                         CONSTANT chr_s, 73
  133.                         CONSTANT chr_t, 74
  134.                         CONSTANT chr_u, 75
  135.                         CONSTANT chr_v, 76
  136.                         CONSTANT chr_w, 77
  137.                         CONSTANT chr_x, 78
  138.                         CONSTANT chr_y, 79
  139.                         CONSTANT chr_z, 7A
  140.                         CONSTANT chr_A, 41
  141.                         CONSTANT chr_B, 42
  142.                         CONSTANT chr_C, 43
  143.                         CONSTANT chr_D, 44
  144.                         CONSTANT chr_E, 45
  145.                         CONSTANT chr_F, 46
  146.                         CONSTANT chr_G, 47
  147.                         CONSTANT chr_H, 48
  148.                         CONSTANT chr_I, 49
  149.                         CONSTANT chr_J, 4A
  150.                         CONSTANT chr_K, 4B
  151.                         CONSTANT chr_L, 4C
  152.                         CONSTANT chr_M, 4D
  153.                         CONSTANT chr_N, 4E
  154.                         CONSTANT chr_O, 4F
  155.                         CONSTANT chr_P, 50
  156.                         CONSTANT chr_Q, 51
  157.                         CONSTANT chr_R, 52
  158.                         CONSTANT chr_S, 53
  159.                         CONSTANT chr_T, 54
  160.                         CONSTANT chr_U, 55
  161.                         CONSTANT chr_V, 56
  162.                         CONSTANT chr_W, 57
  163.                         CONSTANT chr_X, 58
  164.                         CONSTANT chr_Y, 59
  165.                         CONSTANT chr_Z, 5A
  166.                         CONSTANT chr_0, 30
  167.                         CONSTANT chr_1, 31
  168.                         CONSTANT chr_2, 32
  169.                         CONSTANT chr_3, 33
  170.                         CONSTANT chr_4, 34
  171.                         CONSTANT chr_5, 35
  172.                         CONSTANT chr_6, 36
  173.                         CONSTANT chr_7, 37
  174.                         CONSTANT chr_8, 38
  175.                         CONSTANT chr_9, 39
  176.                         CONSTANT chr_colon, 3A
  177.                         CONSTANT chr_semi_colon, 3B
  178.                         CONSTANT chr_less_than, 3C
  179.                         CONSTANT chr_greater_than, 3E
  180.                         CONSTANT chr_equals, 3D
  181.                         CONSTANT chr_space, 20
  182.                         CONSTANT chr_CR, 0D                ;carriage return
  183.                         CONSTANT chr_question, 3F          ;'?'
  184.                         CONSTANT chr_dollar, 24
  185.                         CONSTANT chr_BS, 08                ;Back Space command chr
  186.                         CONSTANT chr_plus, 2B ; znak za zbrajanje
  187.                         CONSTANT chr_minus, 2D ; znak za oduzimanje
  188.                         CONSTANT chr_mul, 2A ; znak za mnozenje
  189.                         CONSTANT clrdisp, 01 ; za slanje komande na LCD za ciscenje
  190.  
  191.                         ;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement