-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path8051.asm
200 lines (167 loc) · 2.37 KB
/
8051.asm
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
col1 equ p0.6
col2 equ p0.5
col3 equ p0.4
lin1 equ p0.3
lin2 equ p0.2
lin3 equ p0.1
lin4 equ p0.0
tecla equ 0h
x equ 01h
y equ 02h
mov x, #8
mov y, #48
lcall escCursor
ciclo:
lcall lerteclado
lcall movCursor
lcall escCursor
ljmp ciclo
escCursor:
mov A, y
add A, x
mov r0, A
mov A, #255
mov @r0, A
ret
apgCursor:
mov A, y
add A, x
mov r0, A
mov A, #00
mov @r0, A
ret
movCursor:
mc_if1:
mov A, tecla
subb A, #4
JNZ mc_end_if1
mov A, x
JZ mc_end_if1
lcall apgCursor
subb A, #1
mov x, A
lcall escCursor
lcall esperar
mc_end_if1:
mc_if2:
mov A, tecla
subb A, #6
JNZ mc_end_if2
mov A, x
subb A, #15
JZ mc_end_if2
lcall apgCursor
mov A, x
add A, #1
mov x, A
lcall escCursor
lcall esperar
mc_end_if2:
mc_if3:
mov A, tecla
subb A, #2
JNZ mc_end_if3
mov A, y
subb A, #16
JZ mc_end_if3
lcall apgCursor
mov A, y
subb A, #16
mov y, A
lcall escCursor
lcall esperar
mc_end_if3:
mc_if4:
mov A, tecla
subb A, #8
JNZ mc_end_if4
mov A, y
subb A, #96
JZ mc_end_if4
lcall apgCursor
mov A, y
add A, #16
mov y, A
lcall escCursor
lcall esperar
mc_end_if4:
ret
LERTECLADO:
clr col1
setb col2
setb col3
lt_if1:
JB lin1, lt_fim_if1
mov tecla, #1
lt_fim_if1:
lt_if2:
JB lin2, lt_fim_if2
mov tecla, #4
lt_fim_if2:
lt_if3:
JB lin3, lt_fim_if3
mov tecla, #7
lt_fim_if3:
lt_if4:
JB lin4, lt_fim_if4
mov tecla, #10
lt_fim_if4:
clr col2
setb col1
setb col3
lt_if5:
JB lin1, lt_fim_if5
mov tecla, #3
lt_fim_if5:
lt_if6:
JB lin2, lt_fim_if6
mov tecla, #5
lt_fim_if6:
lt_if7:
JB lin3, lt_fim_if7
mov tecla, #8
lt_fim_if7:
lt_if8:
JB lin4, lt_fim_if8
mov tecla, #0
lt_fim_if8:
clr col3
setb col1
setb col2
lt_if9:
JB lin1, lt_fim_if9
mov tecla, #2
lt_fim_if9:
lt_if10:
JB lin2, lt_fim_if10
mov tecla, #6
lt_fim_if10:
lt_if11:
JB lin3, lt_fim_if11
mov tecla, #9
lt_fim_if11:
lt_if12:
JB lin4, lt_fim_if12
mov tecla, #12
lt_fim_if12:
RET
ESPERAR:
clr col1
setb col2
setb col3
jnb lin1,ESPERAR
jnb lin2,ESPERAR
jnb lin3,ESPERAR
setb col1
clr col2
setb col3
jnb lin1,ESPERAR
jnb lin2,ESPERAR
jnb lin3,ESPERAR
setb col1
setb col2
clr col3
jnb lin1,ESPERAR
jnb lin2,ESPERAR
jnb lin3,ESPERAR
ret