OpenCores
URL https://opencores.org/ocsvn/usb_nand_reader/usb_nand_reader/trunk

Subversion Repositories usb_nand_reader

[/] [usb_nand_reader/] [trunk/] [mini32/] [NandDataLine.asm] - Blame information for rev 7

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 7 pradd
_init_nand_data_line:
2
;NandDataLine.c,15 ::           void init_nand_data_line()
3
;NandDataLine.c,17 ::           TRISE = 0;
4
SW      R0, Offset(TRISE+0)(GP)
5
;NandDataLine.c,18 ::           TRISF = 0;
6
SW      R0, Offset(TRISF+0)(GP)
7
;NandDataLine.c,19 ::           TRISG = 0;
8
SW      R0, Offset(TRISG+0)(GP)
9
;NandDataLine.c,21 ::           LATE = 0;
10
SW      R0, Offset(LATE+0)(GP)
11
;NandDataLine.c,22 ::           LATF = 0;
12
SW      R0, Offset(LATF+0)(GP)
13
;NandDataLine.c,23 ::           LATG = 0;
14
SW      R0, Offset(LATG+0)(GP)
15
;NandDataLine.c,25 ::           nand_b0 = 0;
16
LUI     R2, BitMask(LATE2_bit+0)
17
ORI     R2, R2, BitMask(LATE2_bit+0)
18
_SX
19
;NandDataLine.c,26 ::           nand_b1 = 0;
20
LUI     R2, BitMask(LATE3_bit+0)
21
ORI     R2, R2, BitMask(LATE3_bit+0)
22
_SX
23
;NandDataLine.c,27 ::           nand_b2 = 0;
24
LUI     R2, BitMask(LATG7_bit+0)
25
ORI     R2, R2, BitMask(LATG7_bit+0)
26
_SX
27
;NandDataLine.c,28 ::           nand_b3 = 0;
28
LUI     R2, BitMask(LATG8_bit+0)
29
ORI     R2, R2, BitMask(LATG8_bit+0)
30
_SX
31
;NandDataLine.c,29 ::           nand_b4 = 0;
32
LUI     R2, BitMask(LATF5_bit+0)
33
ORI     R2, R2, BitMask(LATF5_bit+0)
34
_SX
35
;NandDataLine.c,30 ::           nand_b5 = 0;
36
LUI     R2, BitMask(LATF4_bit+0)
37
ORI     R2, R2, BitMask(LATF4_bit+0)
38
_SX
39
;NandDataLine.c,31 ::           nand_b6 = 0;
40
LUI     R2, BitMask(LATE4_bit+0)
41
ORI     R2, R2, BitMask(LATE4_bit+0)
42
_SX
43
;NandDataLine.c,32 ::           nand_b7 = 0;
44
LUI     R2, BitMask(LATE5_bit+0)
45
ORI     R2, R2, BitMask(LATE5_bit+0)
46
_SX
47
;NandDataLine.c,33 ::           }
48
L_end_init_nand_data_line:
49
JR      RA
50
NOP
51
; end of _init_nand_data_line
52
_data_line_write_byte:
53
;NandDataLine.c,38 ::           void data_line_write_byte(unsigned char b)
54
;NandDataLine.c,40 ::           if(data_line_last_op != NAND_LAST_OP_WRITE)
55
LH      R3, Offset(_data_line_last_op+0)(GP)
56
ORI     R2, R0, 1
57
BNE     R3, R2, L__data_line_write_byte5
58
NOP
59
J       L_data_line_write_byte0
60
NOP
61
L__data_line_write_byte5:
62
;NandDataLine.c,42 ::           TRISE2_bit = 0; TRISE3_bit = 0; TRISE4_bit = 0; TRISE5_bit = 0;
63
LUI     R2, BitMask(TRISE2_bit+0)
64
ORI     R2, R2, BitMask(TRISE2_bit+0)
65
_SX
66
LUI     R2, BitMask(TRISE3_bit+0)
67
ORI     R2, R2, BitMask(TRISE3_bit+0)
68
_SX
69
LUI     R2, BitMask(TRISE4_bit+0)
70
ORI     R2, R2, BitMask(TRISE4_bit+0)
71
_SX
72
LUI     R2, BitMask(TRISE5_bit+0)
73
ORI     R2, R2, BitMask(TRISE5_bit+0)
74
_SX
75
;NandDataLine.c,43 ::           TRISF4_bit = 0; TRISF5_bit = 0;
76
LUI     R2, BitMask(TRISF4_bit+0)
77
ORI     R2, R2, BitMask(TRISF4_bit+0)
78
_SX
79
LUI     R2, BitMask(TRISF5_bit+0)
80
ORI     R2, R2, BitMask(TRISF5_bit+0)
81
_SX
82
;NandDataLine.c,44 ::           TRISG7_bit = 0; TRISG8_bit = 0;
83
LUI     R2, BitMask(TRISG7_bit+0)
84
ORI     R2, R2, BitMask(TRISG7_bit+0)
85
_SX
86
LUI     R2, BitMask(TRISG8_bit+0)
87
ORI     R2, R2, BitMask(TRISG8_bit+0)
88
_SX
89
;NandDataLine.c,45 ::           data_line_last_op = NAND_LAST_OP_WRITE;
90
ORI     R2, R0, 1
91
SH      R2, Offset(_data_line_last_op+0)(GP)
92
;NandDataLine.c,46 ::           }
93
L_data_line_write_byte0:
94
;NandDataLine.c,47 ::           nand_b0 = (b) & 1;
95
ANDI    R3, R25, 1
96
_LX
97
INS     R2, R3, BitPos(LATE2_bit+0), 1
98
_SX
99
;NandDataLine.c,48 ::           nand_b1 = (b >> 1) & 1;
100
ANDI    R2, R25, 255
101
SRL     R2, R2, 1
102
ANDI    R3, R2, 1
103
_LX
104
INS     R2, R3, BitPos(LATE3_bit+0), 1
105
_SX
106
;NandDataLine.c,49 ::           nand_b2 = (b >> 2) & 1;
107
ANDI    R2, R25, 255
108
SRL     R2, R2, 2
109
ANDI    R3, R2, 1
110
_LX
111
INS     R2, R3, BitPos(LATG7_bit+0), 1
112
_SX
113
;NandDataLine.c,50 ::           nand_b3 = (b >> 3) & 1;
114
ANDI    R2, R25, 255
115
SRL     R2, R2, 3
116
ANDI    R3, R2, 1
117
_LX
118
INS     R2, R3, BitPos(LATG8_bit+0), 1
119
_SX
120
;NandDataLine.c,51 ::           nand_b4 = (b >> 4) & 1;
121
ANDI    R2, R25, 255
122
SRL     R2, R2, 4
123
ANDI    R3, R2, 1
124
_LX
125
INS     R2, R3, BitPos(LATF5_bit+0), 1
126
_SX
127
;NandDataLine.c,52 ::           nand_b5 = (b >> 5) & 1;
128
ANDI    R2, R25, 255
129
SRL     R2, R2, 5
130
ANDI    R3, R2, 1
131
_LX
132
INS     R2, R3, BitPos(LATF4_bit+0), 1
133
_SX
134
;NandDataLine.c,53 ::           nand_b6 = (b >> 6) & 1;
135
ANDI    R2, R25, 255
136
SRL     R2, R2, 6
137
ANDI    R3, R2, 1
138
_LX
139
INS     R2, R3, BitPos(LATE4_bit+0), 1
140
_SX
141
;NandDataLine.c,54 ::           nand_b7 = (b >> 7) & 1;
142
ANDI    R2, R25, 255
143
SRL     R2, R2, 7
144
ANDI    R3, R2, 1
145
_LX
146
INS     R2, R3, BitPos(LATE5_bit+0), 1
147
_SX
148
;NandDataLine.c,55 ::           asm NOP;
149
NOP
150
;NandDataLine.c,56 ::           asm NOP;
151
NOP
152
;NandDataLine.c,57 ::           asm NOP;
153
NOP
154
;NandDataLine.c,58 ::           }
155
L_end_data_line_write_byte:
156
JR      RA
157
NOP
158
; end of _data_line_write_byte
159
_data_line_read_byte:
160
;NandDataLine.c,61 ::           unsigned char data_line_read_byte()
161
;NandDataLine.c,63 ::           unsigned char d = 0;
162
; d start address is: 16 (R4)
163
MOVZ    R4, R0, R0
164
;NandDataLine.c,64 ::           if(data_line_last_op != NAND_LAST_OP_READ)
165
LH      R2, Offset(_data_line_last_op+0)(GP)
166
BNE     R2, R0, L__data_line_read_byte8
167
NOP
168
J       L_data_line_read_byte1
169
NOP
170
L__data_line_read_byte8:
171
;NandDataLine.c,66 ::           TRISE2_bit = 1; TRISE3_bit = 1; TRISE4_bit = 1; TRISE5_bit = 1;
172
LUI     R2, BitMask(TRISE2_bit+0)
173
ORI     R2, R2, BitMask(TRISE2_bit+0)
174
_SX
175
LUI     R2, BitMask(TRISE3_bit+0)
176
ORI     R2, R2, BitMask(TRISE3_bit+0)
177
_SX
178
LUI     R2, BitMask(TRISE4_bit+0)
179
ORI     R2, R2, BitMask(TRISE4_bit+0)
180
_SX
181
LUI     R2, BitMask(TRISE5_bit+0)
182
ORI     R2, R2, BitMask(TRISE5_bit+0)
183
_SX
184
;NandDataLine.c,67 ::           TRISF4_bit = 1; TRISF5_bit = 1;
185
LUI     R2, BitMask(TRISF4_bit+0)
186
ORI     R2, R2, BitMask(TRISF4_bit+0)
187
_SX
188
LUI     R2, BitMask(TRISF5_bit+0)
189
ORI     R2, R2, BitMask(TRISF5_bit+0)
190
_SX
191
;NandDataLine.c,68 ::           TRISG7_bit = 1; TRISG8_bit = 1;
192
LUI     R2, BitMask(TRISG7_bit+0)
193
ORI     R2, R2, BitMask(TRISG7_bit+0)
194
_SX
195
LUI     R2, BitMask(TRISG8_bit+0)
196
ORI     R2, R2, BitMask(TRISG8_bit+0)
197
_SX
198
;NandDataLine.c,69 ::           data_line_last_op = NAND_LAST_OP_READ;
199
SH      R0, Offset(_data_line_last_op+0)(GP)
200
;NandDataLine.c,70 ::           }
201
L_data_line_read_byte1:
202
;NandDataLine.c,71 ::           d |= (unsigned char)PORTE.B2;//nand_b0;
203
LBU     R2, Offset(PORTE+0)(GP)
204
EXT     R2, R2, 2, 1
205
OR      R3, R4, R2
206
; d end address is: 16 (R4)
207
;NandDataLine.c,72 ::           d |= ((unsigned char)PORTE.B3 << 1);//nand_b1 << 1);
208
LBU     R2, Offset(PORTE+0)(GP)
209
EXT     R2, R2, 3, 1
210
ANDI    R2, R2, 255
211
SLL     R2, R2, 1
212
OR      R3, R3, R2
213
;NandDataLine.c,73 ::           d |= ((unsigned char)PORTG.B7 << 2);//nand_b2 << 2);
214
LBU     R2, Offset(PORTG+0)(GP)
215
EXT     R2, R2, 7, 1
216
ANDI    R2, R2, 255
217
SLL     R2, R2, 2
218
OR      R3, R3, R2
219
;NandDataLine.c,74 ::           d |= ((unsigned char)PORTG.B8 << 3);//nand_b3 << 3);
220
LBU     R2, Offset(PORTG+1)(GP)
221
EXT     R2, R2, 0, 1
222
ANDI    R2, R2, 255
223
SLL     R2, R2, 3
224
OR      R3, R3, R2
225
;NandDataLine.c,75 ::           d |= ((unsigned char)PORTF.B5 << 4);//nand_b4 << 4);
226
LBU     R2, Offset(PORTF+0)(GP)
227
EXT     R2, R2, 5, 1
228
ANDI    R2, R2, 255
229
SLL     R2, R2, 4
230
OR      R3, R3, R2
231
;NandDataLine.c,76 ::           d |= ((unsigned char)PORTF.B4 << 5);//nand_b5 << 5);
232
LBU     R2, Offset(PORTF+0)(GP)
233
EXT     R2, R2, 4, 1
234
ANDI    R2, R2, 255
235
SLL     R2, R2, 5
236
OR      R3, R3, R2
237
;NandDataLine.c,77 ::           d |= ((unsigned char)PORTE.B4 << 6);//nand_b6 << 6);
238
LBU     R2, Offset(PORTE+0)(GP)
239
EXT     R2, R2, 4, 1
240
ANDI    R2, R2, 255
241
SLL     R2, R2, 6
242
OR      R3, R3, R2
243
;NandDataLine.c,78 ::           d |= ((unsigned char)PORTE.B5 << 7);//nand_b7 << 7);
244
LBU     R2, Offset(PORTE+0)(GP)
245
EXT     R2, R2, 5, 1
246
ANDI    R2, R2, 255
247
SLL     R2, R2, 7
248
OR      R2, R3, R2
249
;NandDataLine.c,79 ::           return d;
250
;NandDataLine.c,80 ::           }
251
L_end_data_line_read_byte:
252
JR      RA
253
NOP
254
; end of _data_line_read_byte

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.