-
Notifications
You must be signed in to change notification settings - Fork 2
/
streetz.a51
216 lines (188 loc) · 2.94 KB
/
streetz.a51
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
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
#include <at89C51ic2.h>
CSEG AT 0H
JMP READY
EXTRN CODE(CONFIG_RS232,ENVIAR_RS232,RECEBER_RS232)
SCROLL EQU P3.5
SETT EQU P3.3
DSS EQU P1
TABLE: DB 05H,0CH,0E5H,04H,15H,26H,0BCH,0CEH
JUMP_TABLE:
AJMP OP_ADD//0
AJMP OP_OR//2
AJMP OP_NOT//4
AJMP OP_XOR//6
AJMP OP_AND//8
AJMP OP_SUB
AJMP OP_ROTL
AJMP OP_ROTR
CSEG AT 50H
READY:
SETB P1.2
MOV DSS,#0CFH
LCALL CONFIG_RS232
L:
JNB SETT,LEITURA
JNB SCROLL,ANTERIOR
SJMP L
ANTERIOR:
JB SCROLL,$
JNB SCROLL,$
MOV A,R3
MOV R0,A
LCALL SEND
CLR A
JMP SELECT
LEITURA:
JB SETT,$
JNB SETT,$
MOV A,P2
MOV R3,A
LCALL SEND
MOV R0,P2
CLR cy
SJMP SELECT
SETUP:
MOV DPTR, #TABLE
MOVC A, @A+DPTR
MOV DSS,A
RET
SELECT:
MOV A,R2
CALL SETUP
INC R2
CJNE R2,#08H,BOTAO
MOV R2,#00H
SJMP SELECT
BOTAO:
JNB SETT, SETUP1
JNB SCROLL,L5
SJMP BOTAO
L5:
JB SCROLL,$
JNB SCROLL,$
JMP SELECT
OP_AND:
LCALL OP2
MOV A, R0
ANL A, R1
LJMP PROCESS
OP_OR:
LCALL OP2
MOV A, R0
ORL A, R1
LJMP PROCESS
OP_NOT:
MOV A, R0
CPL A
LJMP PROCESS
OP_XOR:
LCALL OP2
MOV A, R0
XRL A,R1
LJMP PROCESS
OP_ADD:
LCALL OP2
MOV A, R0
ADD A, R1
JB cy,OVERFLOW
LJMP PROCESS
OP_SUB:
LCALL OP2
MOV A, R0
SUBB A, R1
JB cy,OVERFLOW
LJMP PROCESS
OP_ROTL:
MOV A, R0
RL A
JB cy,OVERFLOW
LJMP PROCESS
OP_ROTR:
MOV A, R0
RR A
JB cy,OVERFLOW
LJMP PROCESS
OVERFLOW:
CLR P1.2
LJMP PROCESS
SETUP1:
JB SETT,$
JNB SETT,$
MOV DPTR, #JUMP_TABLE
CALL OP_SELECT
CLR cy
JMP @A+DPTR
OP_SELECT:
DEC R2
MOV A,R2
JZ L3
CLR A
L2:
ADD A,#02H
DJNZ R2,L2
RET
L3:
RET
OP2:
MOV DSS,#054H
JNB SETT,L8
SJMP OP2
L8:
JB SETT,$
JNB SETT,$
MOV A,P2
MOV R1,A
MOV R3,A
LCALL SEND
CLR A
RET
PROCESS:
MOV DSS,#046H
MOV R3,A
CALL SEND
L6:
JNB SETT,L7
SJMP L6
L7:
JB SETT,$
JNB SETT,$
LJMP READY
SEND:
MOV A,R3
ANL A,#0F0H
SWAP A
CALL HEX
LCALL ENVIAR_RS232
MOV A,R3
ANL A,#00FH
CALL HEX
LCALL ENVIAR_RS232
RET
HEX:
CJNE A,#00AH,H1
MOV A,#041H
RET
H1:
CJNE A,#00BH,H2
MOV A,#042H
RET
H2:
CJNE A,#00CH,H3
MOV A,#043H
RET
H3:
CJNE A,#00DH,H4
MOV A,#044H
RET
H4:
CJNE A,#00EH,H5
MOV A,#045H
RET
H5:
CJNE A,#00FH,H6
MOV A,#046H
RET
H6:
ADD A,#30H
RET
END