📄 sed1565drive.lst
字号:
HI-TECH Software PICC Macro Assembler V8.05PL2
Serial number: HCPIC-88888 Mon Mar 17 10:44:29 2008
Licensed to: ONE TWO
1 processor 16F877A
2 opt pw 79
3 psect __Z88888RS_,global,delta=1
4 psect text3,local,class=CODE,delta=2
5 psect text4,local,class=CODE,delta=2
6 psect text6,local,class=CODE,delta=2
7 psect text8,local,class=CODE,delta=2
8 psect strings,global,class=STRING,delta=2
9 psect const1,local,class=CONST,delta=2
10 psect const2,local,class=CONST,delta=2
11 psect const3,local,class=CONST,delta=2
12 psect const4,local,class=CONST,delta=2
13 psect text11,local,class=CODE,delta=2
14 psect temp,global,ovrld,class=BANK0,space=1,de
+ lta=1
15 0000
16 0000
17 0000
18 0000
19 0000
20 0000
21 0000
22 0000
23 0000
24 0000
25
26 psect __Z88888RS_
27 0190
28 0190
29
30 psect text3
31 ;SED1565DRIVE.c: 63: void ClearScreen()
32 ;SED1565DRIVE.c: 64: {
33 06FC _ClearScreen
34 ; _j assigned to ?a_ClearScreen+0
35 0000 _ClearScreen$j set ?a_ClearScreen
36 ; _i assigned to ?a_ClearScreen+1
37 0000 _ClearScreen$i set ?a_ClearScreen+1
38 ;SED1565DRIVE.c: 65: unsigned char i,j;
39 06FC 0183 clrf 3 ;select bank 0
40 06FD 01A1 clrf ?a_ClearScreen+1
41 06FE l10
42 ;SED1565DRIVE.c: 67: {
43 ;SED1565DRIVE.c: 68: WriteCommand(0xb0+i);
44 06FE 0821 movf ?a_ClearScreen+1,w
45 06FF 3EB0 addlw -80
46 0700 120A 118A 273F fcall _WriteCommand
47 ;SED1565DRIVE.c: 69: WriteCommand(0x10);
48 0703 3010 movlw 16
49 0704 120A 118A 273F fcall _WriteCommand
50 ;SED1565DRIVE.c: 70: WriteCommand(0x0);
51 0707 3000 movlw 0
52 0708 120A 118A 273F fcall _WriteCommand
53 ;SED1565DRIVE.c: 71: for(j=0;j<132;j++)
54 070B 01A0 clrf ?a_ClearScreen
55 070C l13
56 ;SED1565DRIVE.c: 72: {
57 ;SED1565DRIVE.c: 73: WriteData(0x00);
58 070C 3000 movlw 0
59 070D 120A 118A 2738 fcall _WriteData
+ 120A 118A
60 ;SED1565DRIVE.c: 74: }
61 0712 0AA0 incf ?a_ClearScreen
62 0713 3084 movlw -124
63 0714 0220 subwf ?a_ClearScreen,w
64 0715 1C03 btfss 3,0
65 0716 2F0C goto l13
66 ;SED1565DRIVE.c: 75: }
67 0717 0AA1 incf ?a_ClearScreen+1
68 0718 3008 movlw 8
69 0719 0221 subwf ?a_ClearScreen+1,w
70 071A 1803 btfsc 3,0
71 071B 0008 return
72 071C 2EFE goto l10
73
74 psect text4
75 ;SED1565DRIVE.c: 82: void SetLine(unsigned char
+ line)
76 ;SED1565DRIVE.c: 83: {
77 071D _SetLine
78 ; _line assigned to ?a_SetLine+0
79 0000 _SetLine$line set ?a_SetLine
80 ;_line stored from w
81 071D 0183 clrf 3 ;select bank 0
82 071E 00AA movwf ?a_SetLine
83 ;SED1565DRIVE.c: 84: line=line&0x07;
84 071F 3007 movlw 7
85 0720 05AA andwf ?a_SetLine
86 ;SED1565DRIVE.c: 85: line=line|0xb0;
87 0721 30B0 movlw -80
88 0722 04AA iorwf ?a_SetLine
89 ;SED1565DRIVE.c: 86: WriteCommand(line);
90 0723 082A movf ?a_SetLine,w
91 0724 2F3F ljmp _WriteCommand
92 0725 _SerialInputByte
93 ; _dat assigned to ?a_SerialInputByte+0
94 0000 _SerialInputByte$dat set ?a_SerialInputByte
95 ; _i assigned to ?a_SerialInputByte+1
96 0000 _SerialInputByte$i set ?a_SerialInputByte+1
97 ;_dat stored from w
98 0725 0183 clrf 3 ;select bank 0
99 0726 00AE movwf ?a_SerialInputByte
100 ;SED1565DRIVE.c: 23: unsigned char i;
101 0727 01AF clrf ?a_SerialInputByte+1
102 0728 l2
103 ;SED1565DRIVE.c: 25: {
104 ;SED1565DRIVE.c: 26: if(dat&0x80)RB0=1;
105 0728 1FAE btfss ?a_SerialInputByte,7
106 0729 2F2C goto l5
107 072A 1406 bsf 6,0
108 ;SED1565DRIVE.c: 27: else RB0=0;
109 072B 2F2D goto l6
110 072C l5
111 072C 1006 bcf 6,0
112 072D l6
113 ;SED1565DRIVE.c: 28: RB1=0;
114 072D 1086 bcf 6,1
115 ;SED1565DRIVE.c: 29: asm("nop");
116 072E 0000 nop ;#
117 ;SED1565DRIVE.c: 30: RB1=1;
118 072F 1486 bsf 6,1
119 ;SED1565DRIVE.c: 31: dat=dat<<1;
120 0730 1003 bcf 3,0
121 0731 0DAE rlf ?a_SerialInputByte
122 ;SED1565DRIVE.c: 32: }
123 0732 0AAF incf ?a_SerialInputByte+1
124 0733 3008 movlw 8
125 0734 022F subwf ?a_SerialInputByte+1,w
126 0735 1803 btfsc 3,0
127 0736 0008 return
128 0737 2F28 goto l2
129 ;SED1565DRIVE.c: 39: void WriteData(unsigned ch
+ ar dat)
130 ;SED1565DRIVE.c: 40: {
131 0738 _WriteData
132 ; _dat assigned to ?a_WriteData+0
133 0000 _WriteData$dat set ?a_WriteData
134 ;_dat stored from w
135 0738 0183 clrf 3 ;select bank 0
136 0739 00AA movwf ?a_WriteData
137 ;SED1565DRIVE.c: 41: RB3=0;
138 073A 1186 bcf 6,3
139 ;SED1565DRIVE.c: 42: RB2=1;
140 073B 1506 bsf 6,2
141 ;SED1565DRIVE.c: 43: SerialInputByte(dat);
142 073C 2725 fcall _SerialInputByte
143 ;SED1565DRIVE.c: 44: RB3=1;
144 073D 1586 bsf 6,3
145 ;SED1565DRIVE.c: 45: }
146 073E 0008 return
147 ;SED1565DRIVE.c: 51: void WriteCommand(unsigned
+ char cmd)
148 ;SED1565DRIVE.c: 52: {
149 073F _WriteCommand
150 ; _cmd assigned to ?a_WriteCommand+0
151 0000 _WriteCommand$cmd set ?a_WriteCommand
152 ;_cmd stored from w
153 073F 0183 clrf 3 ;select bank 0
154 0740 00AD movwf ?a_WriteCommand
155 ;SED1565DRIVE.c: 53: RB3=0;
156 0741 1186 bcf 6,3
157 ;SED1565DRIVE.c: 54: RB2=0;
158 0742 1106 bcf 6,2
159 ;SED1565DRIVE.c: 55: SerialInputByte(cmd);
160 0743 2725 fcall _SerialInputByte
161 ;SED1565DRIVE.c: 56: RB3=1;
162 0744 1586 bsf 6,3
163 ;SED1565DRIVE.c: 57: }
164 0745 0008 return
165 ;SED1565DRIVE.c: 93: void SetColumn(unsigned ch
+ ar column)
166 ;SED1565DRIVE.c: 94: {
167 0746 _SetColumn
168 ; _column_l assigned to ?a_SetColumn+0
169 0000 _SetColumn$column_l set ?a_SetColumn
170 ; _column assigned to ?a_SetColumn+1
171 0000 _SetColumn$column set ?a_SetColumn+1
172 ; _column_h assigned to ?a_SetColumn+2
173 0000 _SetColumn$column_h set ?a_SetColumn+2
174 ;_column stored from w
175 0746 0183 clrf 3 ;select bank 0
176 0747 00AB movwf ?a_SetColumn+1
177 ;SED1565DRIVE.c: 95: unsigned char column_h,col
+ umn_l;
178 0748 13AB bcf ?a_SetColumn+1,7
179 ;SED1565DRIVE.c: 97: column_h=column&0x0f0;
180 0749 082B movf ?a_SetColumn+1,w
181 074A 39F0 andlw -16
182 074B 00AC movwf ?a_SetColumn+2
183 ;SED1565DRIVE.c: 98: column_h=column>>4;
184 074C 0E2B swapf ?a_SetColumn+1,w
185 074D 390F andlw 15
186 074E 00AC movwf ?a_SetColumn+2
187 ;SED1565DRIVE.c: 99: column_l=column&0x0f;
188 074F 082B movf ?a_SetColumn+1,w
189 0750 390F andlw 15
190 0751 00AA movwf ?a_SetColumn
191 ;SED1565DRIVE.c: 100: column_h=column_h|0x10;
192 0752 162C bsf ?a_SetColumn+2,4
193 ;SED1565DRIVE.c: 101: column_l=column_l|0x00;
194 ;SED1565DRIVE.c: 102: WriteCommand(column_h);
195 0753 082C movf ?a_SetColumn+2,w
196 0754 273F 120A 118A fcall _WriteCommand
197 ;SED1565DRIVE.c: 103: WriteCommand(column_l);
198 0757 082A movf ?a_SetColumn,w
199 0758 2F3F ljmp _WriteCommand
200 0759 _Show16X16
201 ; _column_temp assigned to ?a_Show16X16+0
202 0000 _Show16X16$column_temp set ?a_Show16X16
203 ; _line assigned to ?a_Show16X16+1
204 0000 _Show16X16$line set ?a_Show16X16+1
205 ; _i assigned to ?a_Show16X16+2
206 0000 _Show16X16$i set ?a_Show16X16+2
207 ;_line stored from w
208 0759 0183 clrf 3 ;select bank 0
209 075A 00A8 movwf ?a_Show16X16+1
210 ;SED1565DRIVE.c: 125: unsigned char i,column_te
+ mp;
211 075B 30A1 movlw -95
212 075C 273F 120A 118A fcall _WriteCommand
213 ;SED1565DRIVE.c: 127: column_temp=column;
214 075F 0824 movf ?_Show16X16,w
215 0760 00A7 movwf ?a_Show16X16
216 ;SED1565DRIVE.c: 128: SetColumn(column);
217 0761 0824 movf ?_Show16X16,w
218 0762 2746 120A 118A fcall _SetColumn
219 ;SED1565DRIVE.c: 129: SetLine(line);
220 0765 0828 movf ?a_Show16X16+1,w
221 0766 271D fcall _SetLine
222 ;SED1565DRIVE.c: 130: for(i=0;i<16;i++)
223 0767 01A9 clrf ?a_Show16X16+2
224 0768 l20
225 ;SED1565DRIVE.c: 131: {
226 ;SED1565DRIVE.c: 132: WriteData(*pt);
227 0768 0826 movf ?_Show16X16+2,w
228 0769 00B1 movwf code_ptr+1
229 076A 0825 movf ?_Show16X16+1,w
230 076B 120A 118A 2008 fcall string_table
+ 120A 118A
231 0770 2738 120A 118A fcall _WriteData
232 ;SED1565DRIVE.c: 133: *pt++;
233 0773 0AA5 incf ?_Show16X16+1
234 0774 1903 btfsc 3,2
235 0775 0AA6 incf ?_Show16X16+2
236 ;SED1565DRIVE.c: 134: column++;
237 0776 0AA4 incf ?_Show16X16
238 ;SED1565DRIVE.c: 135: }
239 0777 0AA9 incf ?a_Show16X16+2
240 0778 3010 movlw 16
241 0779 0229 subwf ?a_Show16X16+2,w
242 077A 1C03 btfss 3,0
243 077B 2F68 goto l20
244 ;SED1565DRIVE.c: 136: SetLine(line+1);
245 077C 0A28 incf ?a_Show16X16+1,w
246 077D 271D 120A 118A fcall _SetLine
247 ;SED1565DRIVE.c: 137: column=column_temp;
248 0780 0827 movf ?a_Show16X16,w
249 0781 00A4 movwf ?_Show16X16
250 ;SED1565DRIVE.c: 138: SetColumn(column);
251 0782 2746 fcall _SetColumn
252 ;SED1565DRIVE.c: 139: for(i=0;i<16;i++)
253 0783 01A9 clrf ?a_Show16X16+2
254 0784 l23
255 ;SED1565DRIVE.c: 140: {
256 ;SED1565DRIVE.c: 141: WriteData(*pt);
257 0784 0826 movf ?_Show16X16+2,w
258 0785 00B1 movwf code_ptr+1
259 0786 0825 movf ?_Show16X16+1,w
260 0787 120A 118A 2008 fcall string_table
+ 120A 118A
261 078C 2738 120A 118A fcall _WriteData
262 ;SED1565DRIVE.c: 142: *pt++;
263 078F 0AA5 incf ?_Show16X16+1
264 0790 1903 btfsc 3,2
265 0791 0AA6 incf ?_Show16X16+2
266 ;SED1565DRIVE.c: 143: column++;
267 0792 0AA4 incf ?_Show16X16
268 ;SED1565DRIVE.c: 144: }
269 0793 0AA9 incf ?a_Show16X16+2
270 0794 3010 movlw 16
271 0795 0229 subwf ?a_Show16X16+2,w
272 0796 1803 btfsc 3,0
273 0797 0008 return
274 0798 2F84 goto l23
275 ;SED1565DRIVE.c: 172: void test()
276 ;SED1565DRIVE.c: 173: {
277 0799 _test
278 ; _set assigned to ?a_test+0
279 0000 _test$set set ?a_test
280 ; _column assigned to ?a_test+1
281 0000 _test$column set ?a_test+1
282 ; _i assigned to ?a_test+2
283 0000 _test$i set ?a_test+2
284 ;SED1565DRIVE.c: 174: int i;
285 0799 0183 clrf 3 ;select bank 0
286 079A 01A0 clrf ?a_test
287 ;SED1565DRIVE.c: 176: unsigned char column=32;
288 079B 3020 movlw 32
289 079C 00A1 movwf ?a_test+1
290 079D l29
291 ;SED1565DRIVE.c: 177: while(1)
292 ;SED1565DRIVE.c: 178: {
293 079D 0821 movf ?a_test+1,w
294 079E 00A4 movwf ?_Show16X16
295 079F 3040 movlw low _huan
296 07A0 00A5 movwf ?_Show16X16+1
297 07A1 3000 movlw high _huan
298 07A2 00A6 movwf ?_Show16X16+2
299 07A3 3003 movlw 3
300 07A4 2759 fcall _Show16X16
301 ;SED1565DRIVE.c: 180: Show16X16(3,column+16,yin
+ g);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -