📄 utility.lst
字号:
004b ec84 LDD 4,SP
004d 8c0004 CPD #4
0050 2c21 BGE *+35 ;abs = 0073
365: {
366: if((echo<='9') && (echo>='0'))
0052 e688 LDAB 8,SP
0054 c030 SUBB #48
0056 c109 CMPB #9
0058 2219 BHI *+27 ;abs = 0073
367: {
368: if ((echo>='0') && (echo<='9'))
369: cdata=echo-0x30;
370: count++;
005a ee84 LDX 4,SP
005c 08 INX
005d 6e84 STX 4,SP
371: tx_char0(echo); //send echo to screen
005f 37 PSHB
0060 e689 LDAB 9,SP
0062 160000 JSR tx_char0
372: i_data=(i_data<<4);
0065 ec83 LDD 3,SP
0067 59 ASLD
0068 59 ASLD
0069 59 ASLD
006a 59 ASLD
006b 6c83 STD 3,SP
373: i_data+=cdata;
006d 33 PULB
006e 87 CLRA
006f e382 ADDD 2,SP
0071 6c82 STD 2,SP
0073 e68d LDAB 13,SP
0075 041199 DBEQ B,*-100 ;abs = 0011
374: }
375: }
376: }
377: if(count!=0 && echo==CR)
0078 ec84 LDD 4,SP
007a 274e BEQ *+80 ;abs = 00ca
007c e688 LDAB 8,SP
007e c10d CMPB #13
0080 2648 BNE *+74 ;abs = 00ca
378: {
379: for (i=0;i<count;i++)
0082 c7 CLRB
0083 87 CLRA
0084 6c86 STD 6,SP
0086 2039 BRA *+59 ;abs = 00c1
380: {
381: i_data1 = ((i_data)>>((unsigned char)(4*i))&0xf);
0088 e687 LDAB 7,SP
008a 58 ASLB
008b 58 ASLB
008c ed82 LDY 2,SP
008e 160000 JSR _ISHRU
0091 c40f ANDB #15
0093 87 CLRA
0094 6c8e STD 14,SP
382: i_data2=1;
0096 02 INY
0097 6d8b STY 11,SP
383: for(j=0;j<i;j++)
0099 c7 CLRB
009a 6c89 STD 9,SP
009c 200d BRA *+15 ;abs = 00ab
384: i_data2 *= 10;
009e c60a LDAB #10
00a0 87 CLRA
00a1 ed8b LDY 11,SP
00a3 13 EMUL
00a4 6c8b STD 11,SP
00a6 ee89 LDX 9,SP
00a8 08 INX
00a9 6e89 STX 9,SP
00ab ec89 LDD 9,SP
00ad ac86 CPD 6,SP
00af 2ded BLT *-17 ;abs = 009e
385: *i_ptr+= i_data1*i_data2;
00b1 ec8e LDD 14,SP
00b3 ed8b LDY 11,SP
00b5 13 EMUL
00b6 ee80 LDX 0,SP
00b8 e300 ADDD 0,X
00ba 6c00 STD 0,X
00bc ee86 LDX 6,SP
00be 08 INX
00bf 6e86 STX 6,SP
00c1 ec86 LDD 6,SP
00c3 ac84 CPD 4,SP
00c5 2dc1 BLT *-61 ;abs = 0088
386: }
387: return(OK);
00c7 c601 LDAB #1
00c9 21 SKIP1
388: }
389: else
390: return(NOTOK);
00ca c7 CLRB
391: }
00cb 1bf010 LEAS 16,SP
00ce 3d RTS
392:
393:
394: /*******************************************************************
395: * Input word (hex) subroutine
396: * Description : Get the data(word) from user
397: * :
398: * :
399: * Example : N/A
400: * Input : N/A
401: * Output : *i_ptr
402: * Modify : N/A
403: * Return : status [OK for ('0'-'z') or NOTOK for others chars]
404: *********************************************************************/
405: byte input_word(unsigned int *i_ptr) //3046
406: {
Function: input_word
Source : D:\Code S12\Utility\S12DP256\S12 Ex4 Portb ICD\sources\utility.c
Options : -Env"GENPATH=D:\Code S12\Utility\S12DP256\S12 Ex4 Portb ICD;D:\Code S12\Utility\S12DP256\S12 Ex4 Portb ICD\bin;D:\Code S12\Utility\S12DP256\S12 Ex4 Portb ICD\cmd;D:\Code S12\Utility\S12DP256\S12 Ex4 Portb ICD\prm;D:\Code S12\Utility\S12DP256\S12 Ex4 Portb ICD\sources;D:\Metrowerks\CodeWarrior CW12_V2.0\lib\HC12c\LIB;D:\Metrowerks\CodeWarrior CW12_V2.0\lib\HC12c\SRC;D:\Metrowerks\CodeWarrior CW12_V2.0\lib\HC12c\INCLUDE" -Env"LIBPATH=D:\Metrowerks\CodeWarrior CW12_V2.0\lib\HC12c\INCLUDE" -Env"OBJPATH=D:\Code S12\Utility\S12DP256\S12 Ex4 Portb ICD\bin" -Env"TEXTPATH=D:\Code S12\Utility\S12DP256\S12 Ex4 Portb ICD\bin" -Lasm=%n.lst -ObjN="D:\Code S12\Utility\S12DP256\S12 Ex4 Portb ICD\S12_Ex4_Portb_ICD_Data\Flash_Application\ObjectCode\utility.c.o" -Ol0
0000 6ca9 STD 7,-SP
407: byte echo,cdata,loop=ENABLE;
0002 c601 LDAB #1
0004 6b86 STAB 6,SP
408: int count=0;
0006 c7 CLRB
0007 87 CLRA
0008 6c83 STD 3,SP
409:
410: *i_ptr=0;
000a ee80 LDX 0,SP
000c 6c00 STD 0,X
411:
412: while(loop == ENABLE)
413: {
414: echo=rx_char0();
000e 160000 JSR rx_char0
0011 6b82 STAB 2,SP
415: if((echo==ESC)||(echo==DOT)||(echo==CR))
0013 c11b CMPB #27
0015 2708 BEQ *+10 ;abs = 001f
0017 c12e CMPB #46
0019 2704 BEQ *+6 ;abs = 001f
001b c10d CMPB #13
001d 2602 BNE *+4 ;abs = 0021
416: loop = DISABLE; //break the while loop
001f 6986 CLR 6,SP
417: if (echo==BS || echo==DEL)
0021 c108 CMPB #8
0023 2704 BEQ *+6 ;abs = 0029
0025 c17f CMPB #127
0027 2622 BNE *+36 ;abs = 004b
418: {
419: if(count>0) //del 4 bit data in buffer
0029 ec83 LDD 3,SP
002b 2f1e BLE *+32 ;abs = 004b
420: {
421: count--;
002d 830001 SUBD #1
0030 6c83 STD 3,SP
422: *i_ptr=*i_ptr>>4;
0032 ee80 LDX 0,SP
0034 ec00 LDD 0,X
0036 49 LSRD
0037 49 LSRD
0038 49 LSRD
0039 49 LSRD
003a 6c00 STD 0,X
423: tx_char0(echo); //send bs the char on screen
003c e682 LDAB 2,SP
003e 160000 JSR tx_char0
424: tx_char0(' '); //send space to clear the char
0041 c620 LDAB #32
0043 160000 JSR tx_char0
425: tx_char0(echo); //send bs again to move back the cursor
0046 e682 LDAB 2,SP
0048 160000 JSR tx_char0
426: }
427: }
428: if (count<4) //update 4 bit data to buffer
004b ec83 LDD 3,SP
004d 8c0004 CPD #4
0050 2c3d BGE *+63 ;abs = 008f
429: {
430: if((echo<='f') && (echo>='0'))
0052 e682 LDAB 2,SP
0054 c030 SUBB #48
0056 c136 CMPB #54
0058 2235 BHI *+55 ;abs = 008f
431: {
432: if (echo>='a') echo-=(0x20); //covert upper case
005a e682 LDAB 2,SP
005c c161 CMPB #97
005e 2504 BCS *+6 ;abs = 0064
0060 c020 SUBB #32
0062 6b82 STAB 2,SP
433: if ((echo>='0') && (echo<='9'))
0064 e682 LDAB 2,SP
0066 c030 SUBB #48
0068 c109 CMPB #9
006a 2202 BHI *+4 ;abs = 006e
434: cdata=echo-0x30;
006c 2004 BRA *+6 ;abs = 0072
435: else
436: cdata=echo-0x37;
006e e682 LDAB 2,SP
0070 c037 SUBB #55
0072 6b85 STAB 5,SP
437: count++;
0074 ee83 LDX 3,SP
0076 08 INX
0077 6e83 STX 3,SP
438: tx_char0(echo); //send echo to screen
0079 e682 LDAB 2,SP
007b 160000 JSR tx_char0
439: *i_ptr=(*i_ptr<<4);
007e ee80 LDX 0,SP
0080 ec00 LDD 0,X
0082 59 ASLD
0083 59 ASLD
0084 59 ASLD
0085 59 ASLD
0086 6c00 STD 0,X
440: *i_ptr+=cdata;
0088 e685 LDAB 5,SP
008a 87 CLRA
008b e300 ADDD 0,X
008d 6c00 STD 0,X
008f e686 LDAB 6,SP
0091 04117a DBEQ B,*-131 ;abs = 000e
441: }
442: }
443: }
444:
445: if(count!=0 && echo==CR)
0094 ec83 LDD 3,SP
0096 2709 BEQ *+11 ;abs = 00a1
0098 e682 LDAB 2,SP
009a c10d CMPB #13
009c 2603 BNE *+5 ;abs = 00a1
446: return(OK);
009e c601 LDAB #1
00a0 21 SKIP1
447: else
448: return(NOTOK);
00a1 c7 CLRB
449: }
00a2 1b87 LEAS 7,SP
00a4 3d RTS
450:
451: /*******************************************************************
452: * Input byte (hex) subroutine
453: * Description : Get the data(byte) from user
454: * :
455: * :
456: * Example : N/A
457: * Input : N/A
458: * Output : *c_ptr
459: * Modify : N/A
460: * Return : status [OK for ('0'-'z') or NOTOK for others chars]
461: *********************************************************************/
462: byte input_byte(byte *c_ptr)
463: {
Function: input_byte
Source : D:\Code S12\Utility\S12DP256\S12 Ex4 Portb ICD\sources\utility.c
Options : -Env"GENPATH=D:\Code S12\Utility\S12DP256\S12 Ex4 Portb ICD;D:\Code S12\Utility\S12DP256\S12 Ex4 Portb ICD\bin;D:\Code S12\Utility\S12DP256\S12 Ex4 Portb ICD\cmd;D:\Code S12\Utility\S12DP256\S12 Ex4 Portb ICD\prm;D:\Code S12\Utility\S12DP256\S12 Ex4 Portb ICD\sources;D:\Metrowerks\CodeWarrior CW12_V2.0\lib\HC12c\LIB;D:\Metrowerks\CodeWarrior CW12_V2.0\lib\HC12c\SRC;D:\Metrowerks\CodeWarrior CW12_V2.0\lib\HC12c\INCLUDE" -Env"LIBPATH=D:\Metrowerks\CodeWarrior CW12_V2.0\lib\HC12c\INCLUDE" -Env"OBJPATH=D:\Code S12\Utility\S12DP256\S12 Ex4 Portb ICD\bin" -Env"TEXTPATH=D:\Code S12\Utility\S12DP256\S12 Ex4 Portb ICD\bin" -Lasm=%n.lst -ObjN="D:\Code S12\Utility\S12DP256\S12 Ex4 Portb ICD\S12_Ex4_Portb_ICD_Data\Flash_Application\ObjectCode\utility.c.o" -Ol0
0000 6ca9 STD 7,-SP
464: byte echo,cdata,loop=ENABLE;
0002 c601 LDAB #1
0004 6b86 STAB 6,SP
465: int count=0;
0006 c7 CLRB
0007 87 CLRA
0008 6c83 STD 3,SP
466:
467: *c_ptr=0;
000a ee80 LDX 0,SP
000c 6b00 STAB 0,X
468:
469: while(loop == ENABLE)
470: {
471: echo=rx_char0();
000e 160000 JSR rx_char0
0011 6b82 STAB 2,SP
472: if((echo==ESC)||(echo==DOT)||(echo==CR))
0013 c11b CMPB #27
0015 2708 BEQ *+10 ;abs = 001f
0017 c12e CMPB #46
0019 2704 BEQ *+6 ;abs = 001f
001b c10d CMPB #13
001d 2602 BNE *+4 ;abs = 0021
473: loop = DISABLE; //break the while loop
001f 6986 CLR 6,SP
474: if (echo==BS || echo==DEL)
0021 c108 CMPB #8
0023 2704 BEQ *+6 ;abs = 0029
0025 c17f CMPB #127
0027 2622 BNE *+36 ;abs = 004b
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -