📄 ex3_utility.lst
字号:
170: * :
171: * Example : 0x32 <=> 50
172: * Input : 0x32 (cdata)
173: * Output : 5 0 (ascii)
174: * Modify : N/A
175: * Return : void
176: ********************************************************************/
177: void hex_clk_dec(unsigned char data)
178: {
Function: hex_clk_dec
Source : D:\Profiles\r63492.FSL\My Documents\Training document\培训教材\HCS12\S12 Ex5 EEPROM ICD CW31\sources\ex3_utility.c
Options : -DNON_BANK -Env"GENPATH=D:\Profiles\r63492.FSL\My Documents\Training document\培训教材\HCS12\S12 Ex5 EEPROM ICD CW31;D:\Profiles\r63492.FSL\My Documents\Training document\培训教材\HCS12\S12 Ex5 EEPROM ICD CW31\bin;D:\Profiles\r63492.FSL\My Documents\Training document\培训教材\HCS12\S12 Ex5 EEPROM ICD CW31\cmd;D:\Profiles\r63492.FSL\My Documents\Training document\培训教材\HCS12\S12 Ex5 EEPROM ICD CW31\prm;D:\Profiles\r63492.FSL\My Documents\Training document\培训教材\HCS12\S12 Ex5 EEPROM ICD CW31\sources;C:\Program Files\Metrowerks\CodeWarrior CW12_V3.1\lib\HC12c\LIB;C:\Program Files\Metrowerks\CodeWarrior CW12_V3.1\lib\HC12c\SRC;C:\Program Files\Metrowerks\CodeWarrior CW12_V3.1\lib\HC12c\INCLUDE" -Env"LIBPATH=C:\Program Files\Metrowerks\CodeWarrior CW12_V3.1\lib\HC12c\INCLUDE" -Env"OBJPATH=D:\Profiles\r63492.FSL\My Documents\Training document\培训教材\HCS12\S12 Ex5 EEPROM ICD CW31\bin" -Env"TEXTPATH=D:\Profiles\r63492.FSL\My Documents\Training document\培训教材\HCS12\S12 Ex5 EEPROM ICD CW31\bin" -Lasm=%n.lst -ObjN="D:\Profiles\r63492.FSL\My Documents\Training document\培训教材\HCS12\S12 Ex5 EEPROM ICD CW31\S12_Ex5_EEPROM_ICD_CW31_Data\FCS\ObjectCode\ex3_utility.c.o" -Ol0
0000 37 PSHB
179: div_t static digit;
180:
181: digit=int_div((int)data,10);
0001 cc0000 LDD #digit
0004 3b PSHD
0005 e682 LDAB 2,SP
0007 87 CLRA
0008 3b PSHD
0009 c60a LDAB #10
000b 0700 BSR int_div
000d 1b84 LEAS 4,SP
182: tx_char0(digit.quot+'0');
000f f60000 LDAB digit:1
0012 cb30 ADDB #48
0014 0700 BSR tx_char0
183: tx_char0(digit.rem+'0');
0016 f60000 LDAB digit:3
0019 cb30 ADDB #48
001b 0700 BSR tx_char0
184: }
001d 32 PULA
001e 3d RTS
185:
186:
187: /*******************************************************************
188: * Wait for receiving char subroutine
189: * Description : Waiting for rx char
190: * :
191: * Example : N/A
192: * Input : N/A
193: * Output : N/A
194: * Modify : N/A
195: * Return : char
196: ********************************************************************/
197: byte rx_char0()
198: {
Function: rx_char0
Source : D:\Profiles\r63492.FSL\My Documents\Training document\培训教材\HCS12\S12 Ex5 EEPROM ICD CW31\sources\ex3_utility.c
Options : -DNON_BANK -Env"GENPATH=D:\Profiles\r63492.FSL\My Documents\Training document\培训教材\HCS12\S12 Ex5 EEPROM ICD CW31;D:\Profiles\r63492.FSL\My Documents\Training document\培训教材\HCS12\S12 Ex5 EEPROM ICD CW31\bin;D:\Profiles\r63492.FSL\My Documents\Training document\培训教材\HCS12\S12 Ex5 EEPROM ICD CW31\cmd;D:\Profiles\r63492.FSL\My Documents\Training document\培训教材\HCS12\S12 Ex5 EEPROM ICD CW31\prm;D:\Profiles\r63492.FSL\My Documents\Training document\培训教材\HCS12\S12 Ex5 EEPROM ICD CW31\sources;C:\Program Files\Metrowerks\CodeWarrior CW12_V3.1\lib\HC12c\LIB;C:\Program Files\Metrowerks\CodeWarrior CW12_V3.1\lib\HC12c\SRC;C:\Program Files\Metrowerks\CodeWarrior CW12_V3.1\lib\HC12c\INCLUDE" -Env"LIBPATH=C:\Program Files\Metrowerks\CodeWarrior CW12_V3.1\lib\HC12c\INCLUDE" -Env"OBJPATH=D:\Profiles\r63492.FSL\My Documents\Training document\培训教材\HCS12\S12 Ex5 EEPROM ICD CW31\bin" -Env"TEXTPATH=D:\Profiles\r63492.FSL\My Documents\Training document\培训教材\HCS12\S12 Ex5 EEPROM ICD CW31\bin" -Lasm=%n.lst -ObjN="D:\Profiles\r63492.FSL\My Documents\Training document\培训教材\HCS12\S12 Ex5 EEPROM ICD CW31\S12_Ex5_EEPROM_ICD_CW31_Data\FCS\ObjectCode\ex3_utility.c.o" -Ol0
199: char data;
200:
201: while( (SC0SR1 & 0x20)==0);
0000 4fcc20fc BRCLR 204,#32,*+0 ;abs = 0000
202: data = SC0SR1;
0004 d6cc LDAB 204
203: return(SC0DRL);
0006 d6cf LDAB 207
204: }
0008 3d RTS
205:
206: /*******************************************************************
207: * Wait for receiving char subroutine
208: * Description : Waiting for rx char and display page information
209: * :
210: * Example : N/A
211: * Input : menu_page
212: * Output : N/A
213: * Modify : N/A
214: * Return : char
215: ********************************************************************/
216: byte menurx_char0(char menu_page)
217: {
Function: menurx_char0
Source : D:\Profiles\r63492.FSL\My Documents\Training document\培训教材\HCS12\S12 Ex5 EEPROM ICD CW31\sources\ex3_utility.c
Options : -DNON_BANK -Env"GENPATH=D:\Profiles\r63492.FSL\My Documents\Training document\培训教材\HCS12\S12 Ex5 EEPROM ICD CW31;D:\Profiles\r63492.FSL\My Documents\Training document\培训教材\HCS12\S12 Ex5 EEPROM ICD CW31\bin;D:\Profiles\r63492.FSL\My Documents\Training document\培训教材\HCS12\S12 Ex5 EEPROM ICD CW31\cmd;D:\Profiles\r63492.FSL\My Documents\Training document\培训教材\HCS12\S12 Ex5 EEPROM ICD CW31\prm;D:\Profiles\r63492.FSL\My Documents\Training document\培训教材\HCS12\S12 Ex5 EEPROM ICD CW31\sources;C:\Program Files\Metrowerks\CodeWarrior CW12_V3.1\lib\HC12c\LIB;C:\Program Files\Metrowerks\CodeWarrior CW12_V3.1\lib\HC12c\SRC;C:\Program Files\Metrowerks\CodeWarrior CW12_V3.1\lib\HC12c\INCLUDE" -Env"LIBPATH=C:\Program Files\Metrowerks\CodeWarrior CW12_V3.1\lib\HC12c\INCLUDE" -Env"OBJPATH=D:\Profiles\r63492.FSL\My Documents\Training document\培训教材\HCS12\S12 Ex5 EEPROM ICD CW31\bin" -Env"TEXTPATH=D:\Profiles\r63492.FSL\My Documents\Training document\培训教材\HCS12\S12 Ex5 EEPROM ICD CW31\bin" -Lasm=%n.lst -ObjN="D:\Profiles\r63492.FSL\My Documents\Training document\培训教材\HCS12\S12 Ex5 EEPROM ICD CW31\S12_Ex5_EEPROM_ICD_CW31_Data\FCS\ObjectCode\ex3_utility.c.o" -Ol0
0000 37 PSHB
218: char data;
219:
220: while( (SC0SR1 & 0x20)==0)
0001 2007 BRA *+9 ;abs = 000a
221: {
222: delay1();
0003 0700 BSR delay1
223: disp_info(menu_page); //display corresponding menu info
0005 e680 LDAB 0,SP
0007 160000 JSR disp_info
000a 4fcc20f5 BRCLR 204,#32,*-7 ;abs = 0003
224: }
225: data = SC0SR1;
000e d6cc LDAB 204
226: return(SC0DRL);
0010 d6cf LDAB 207
227: }
0012 32 PULA
0013 3d RTS
228:
229: /*******************************************************************
230: * Check user abort data display subroutine
231: * Description : Checking whether user abort or not
232: * :
233: * Example : N/A
234: * Input : SC0SR1 empty?
235: * Output : 3 2 (ascii)
236: * Modify : N/A
237: * Return : status [OK for (DOT or ESC) or NOTOK for others chars]
238: ********************************************************************/
239: byte check_user_abort()
240: {
Function: check_user_abort
Source : D:\Profiles\r63492.FSL\My Documents\Training document\培训教材\HCS12\S12 Ex5 EEPROM ICD CW31\sources\ex3_utility.c
Options : -DNON_BANK -Env"GENPATH=D:\Profiles\r63492.FSL\My Documents\Training document\培训教材\HCS12\S12 Ex5 EEPROM ICD CW31;D:\Profiles\r63492.FSL\My Documents\Training document\培训教材\HCS12\S12 Ex5 EEPROM ICD CW31\bin;D:\Profiles\r63492.FSL\My Documents\Training document\培训教材\HCS12\S12 Ex5 EEPROM ICD CW31\cmd;D:\Profiles\r63492.FSL\My Documents\Training document\培训教材\HCS12\S12 Ex5 EEPROM ICD CW31\prm;D:\Profiles\r63492.FSL\My Documents\Training document\培训教材\HCS12\S12 Ex5 EEPROM ICD CW31\sources;C:\Program Files\Metrowerks\CodeWarrior CW12_V3.1\lib\HC12c\LIB;C:\Program Files\Metrowerks\CodeWarrior CW12_V3.1\lib\HC12c\SRC;C:\Program Files\Metrowerks\CodeWarrior CW12_V3.1\lib\HC12c\INCLUDE" -Env"LIBPATH=C:\Program Files\Metrowerks\CodeWarrior CW12_V3.1\lib\HC12c\INCLUDE" -Env"OBJPATH=D:\Profiles\r63492.FSL\My Documents\Training document\培训教材\HCS12\S12 Ex5 EEPROM ICD CW31\bin" -Env"TEXTPATH=D:\Profiles\r63492.FSL\My Documents\Training document\培训教材\HCS12\S12 Ex5 EEPROM ICD CW31\bin" -Lasm=%n.lst -ObjN="D:\Profiles\r63492.FSL\My Documents\Training document\培训教材\HCS12\S12 Ex5 EEPROM ICD CW31\S12_Ex5_EEPROM_ICD_CW31_Data\FCS\ObjectCode\ex3_utility.c.o" -Ol0
241: char data;
242:
243: if((SC0SR1 & 0x20)!=0)
0000 4fcc200d BRCLR 204,#32,*+17 ;abs = 0011
244: {
245: data=SC0DRL;
0004 d6cf LDAB 207
246: if(data==DOT||data==ESC)
0006 c12e CMPB #46
0008 2704 BEQ *+6 ;abs = 000e
000a c11b CMPB #27
000c 2603 BNE *+5 ;abs = 0011
247: return(OK);
000e c601 LDAB #1
0010 3d RTS
248: else
249: return(NOTOK);
250: }
251: else
252: return(NOTOK);
0011 c7 CLRB
253: }
0012 3d RTS
254:
255: /*******************************************************************
256: * Transmit out 1 char (ASCII) subroutine
257: * Description : Transmit out upper and lower 4 bit of char as ascii
258: * : via RS232
259: * :
260: * Example : 0x32
261: * Input : 0x32 (cdata)
262: * Output : 3 2 (ascii)
263: * Modify : N/A
264: * Return : void
265: ********************************************************************/
266: void send_asc(byte cdata)
267: {
Function: send_asc
Source : D:\Profiles\r63492.FSL\My Documents\Training document\培训教材\HCS12\S12 Ex5 EEPROM ICD CW31\sources\ex3_utility.c
Options : -DNON_BANK -Env"GENPATH=D:\Profiles\r63492.FSL\My Documents\Training document\培训教材\HCS12\S12 Ex5 EEPROM ICD CW31;D:\Profiles\r63492.FSL\My Documents\Training document\培训教材\HCS12\S12 Ex5 EEPROM ICD CW31\bin;D:\Profiles\r63492.FSL\My Documents\Training document\培训教材\HCS12\S12 Ex5 EEPROM ICD CW31\cmd;D:\Profiles\r63492.FSL\My Documents\Training document\培训教材\HCS12\S12 Ex5 EEPROM ICD CW31\prm;D:\Profiles\r63492.FSL\My Documents\Training document\培训教材\HCS12\S12 Ex5 EEPROM ICD CW31\sources;C:\Program Files\Metrowerks\CodeWarrior CW12_V3.1\lib\HC12c\LIB;C:\Program Files\Metrowerks\CodeWarrior CW12_V3.1\lib\HC12c\SRC;C:\Program Files\Metrowerks\CodeWarrior CW12_V3.1\lib\HC12c\INCLUDE" -Env"LIBPATH=C:\Program Files\Metrowerks\CodeWarrior CW12_V3.1\lib\HC12c\INCLUDE" -Env"OBJPATH=D:\Profiles\r63492.FSL\My Documents\Training document\培训教材\HCS12\S12 Ex5 EEPROM ICD CW31\bin" -Env"TEXTPATH=D:\Profiles\r63492.FSL\My Documents\Training document\培训教材\HCS12\S12 Ex5 EEPROM ICD CW31\bin" -Lasm=%n.lst -ObjN="D:\Profiles\r63492.FSL\My Documents\Training document\培训教材\HCS12\S12 Ex5 EEPROM ICD CW31\S12_Ex5_EEPROM_ICD_CW31_Data\FCS\ObjectCode\ex3_utility.c.o" -Ol0
268: if(cdata>9)
0000 c109 CMPB #9
0002 2303 BLS *+5 ;abs = 0007
269: tx_char0(cdata+'0'+7);
0004 cb37 ADDB #55
0006 8f SKIP2
270: else
271: tx_char0(cdata+'0');
0007 cb30 ADDB #48
0009 060000 JMP tx_char0
272: }
273:
274: /*******************************************************************
275: * Convert HEX to ASCII subroutine
276: * Description : Convert hex to ascii and send out via RS232
277: * :
278: * Example : 0x32
279: * Input : 0x32 (cdata)
280: * Output : 3 2 (ascii)
281: * Modify : N/A
282: * Return : void
283: ********************************************************************/
284: void hex_asc(byte cdata)
285: {
Function: hex_asc
Source : D:\Profiles\r63492.FSL\My Documents\Training document\培训教材\HCS12\S12 Ex5 EEPROM ICD CW31\sources\ex3_utility.c
Options : -DNON_BANK -Env"GENPATH=D:\Profiles\r63492.FSL\My Documents\Training document\培训教材\HCS12\S12 Ex5 EEPROM ICD CW31;D:\Profiles\r63492.FSL\My Documents\Training document\培训教材\HCS12\S12 Ex5 EEPROM ICD CW31\bin;D:\Profiles\r63492.FSL\My Documents\Training document\培训教材\HCS12\S12 Ex5 EEPROM ICD CW31\cmd;D:\Profiles\r63492.FSL\My Documents\Training document\培训教材\HCS12\S12 Ex5 EEPROM ICD CW31\prm;D:\Profiles\r63492.FSL\My Documents\Training document\培训教材\HCS12\S12 Ex5 EEPROM ICD CW31\sources;C:\Program Files\Metrowerks\CodeWarrior CW12_V3.1\lib\HC12c\LIB;C:\Program Files\Metrowerks\CodeWarrior CW12_V3.1\lib\HC12c\SRC;C:\Program Files\Metrowerks\CodeWarrior CW12_V3.1\lib\HC12c\INCLUDE" -Env"LIBPATH=C:\Program Files\Metrowerks\CodeWarrior CW12_V3.1\lib\HC12c\INCLUDE" -Env"OBJPATH=D:\Profiles\r63492.FSL\My Documents\Training document\培训教材\HCS12\S12 Ex5 EEPROM ICD CW31\bin" -Env"TEXTPATH=D:\Profiles\r63492.FSL\My Documents\Training document\培训教材\HCS12\S12 Ex5 EEPROM ICD CW31\bin" -Lasm=%n.lst -ObjN="D:\Profiles\r63492.FSL\My Documents\Training document\培训教材\HCS12\S12 Ex5 EEPROM ICD CW31\S12_Ex5_EEPROM_ICD_CW31_Data\FCS\ObjectCode\ex3_utility.c.o" -Ol0
0000 37 PSHB
286: send_asc((cdata>>4)&0x0f);
0001 54 LSRB
0002 54 LSRB
0003 54 LSRB
0004 54 LSRB
0005 0700 BSR send_asc
287: send_asc((cdata)&0x0f);
0007 e680 LDAB 0,SP
0009 c40f ANDB #15
000b 0700 BSR send_asc
288: }
000d 32 PULA
000e 3d RTS
289:
290: /*******************************************************************
291: * Convert HEX to ASCII with additional spaces subroutine
292: * Description : Convert hex to ascii and send out spaces followed
293: * : via RS232
294: * :
295: * Example : 0x32
296: * Input : 0x32 (cdata), 3(space)
297: * Output : 3 2 _ _ _ (ascii)
298: * Modify : N/A
299: * Return : void
300: ********************************************************************/
301: void hex_asc_sp(byte cdata, byte space)
302: {
Function: hex_asc_sp
Source : D:\Profiles\r63492.FSL\My Documents\Training document\培训教材\HCS12\S12 Ex5 EEPROM ICD CW31\sources\ex3_utility.c
Options : -DNON_BANK -Env"GENPATH=D:\Profiles\r63492.FSL\My Documents\Training document\培训教材\HCS12\S12 Ex5 EEPROM ICD CW31;D:\Profiles\r63492.FSL\My Documents\Training document\培训教材\HCS12\S12 Ex5 EEPROM ICD CW31\bin;D:\Profiles\r63492.FSL\My Documents\Training document\培训教材\HCS12\S12 Ex5 EEPROM ICD CW31\cmd;D:\Profiles\r63492.FSL\My Documents\Training document\培训教材\HCS12\S12 Ex5 EEPROM ICD CW31\prm;D:\Profiles\r63492.FSL\My Documents\Training document\培训教材\HCS12\S12 Ex5 EEPROM ICD CW31\sources;C:\Program Files\Metrowerks\CodeWarrior CW12_V3.1\lib\HC12c\LIB;C:\Program Files\Metrowerks\CodeWarrior CW12_V3.1\lib\HC12c\SRC;C:\Program Files\Metrowerks\CodeWarrior CW12_V3.1\lib\HC12c\INCLUDE" -Env"LIBPATH=C:\Program Files\Metrowerks\CodeWarrior CW12_V3.1\lib\HC12c\INCLUDE" -Env"OBJPATH=D:\Profiles\r63492.FSL\My Documents\Training document\培训教材\HCS12\S12 Ex5 EEPROM ICD CW31\bin" -Env"TEXTPATH=D:\Profiles\r63492.FSL\My Documents\Training document\培训教材\HCS12\S12 Ex5 EEPROM ICD CW31\bin" -Lasm=%n.lst -ObjN="D:\Profiles\r63492.FSL\My Documents\Training document\培训教材\HCS12\S12 Ex5 EEPROM ICD CW31\S12_Ex5_EEPROM_ICD_CW31_Data\FCS\ObjectCode\ex3_utility.c.o" -Ol0
0000 6bad STAB 3,-SP
303: int i;
304:
305: hex_asc(cdata);
0002 e685 LDAB 5,SP
0004 0700 BSR hex_asc
306: for (i=0;i<space;i++)
0006 c7 CLRB
0007 87 CLRA
0008 6c81 STD 1,SP
000a 200a BRA *+12 ;abs = 0016
307: tx_char0(' ');
000c c620 LDAB #32
000e 160000 JSR tx_char0
0011 ee81 LDX 1,SP
0013 08 INX
0014 6e81 STX 1,SP
0016 e680 LDAB 0,SP
0018 87 CLRA
0019 ac81 CPD 1,SP
001b 2eef BGT *-15 ;abs = 000c
308: }
001d 1b83 LEAS 3,SP
001f 3d RTS
309:
310: /*******************************************************************
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -