📄 utility.lst
字号:
475: {
476: if(count>0) //del 4 bit data in buffer
0029 ec83 LDD 3,SP
002b 2f1e BLE *+32 ;abs = 004b
477: {
478: count--;
002d 830001 SUBD #1
0030 6c83 STD 3,SP
479: *c_ptr=*c_ptr>>4;
0032 ee80 LDX 0,SP
0034 e600 LDAB 0,X
0036 54 LSRB
0037 54 LSRB
0038 54 LSRB
0039 54 LSRB
003a 6b00 STAB 0,X
480: tx_char0(echo); //send bs the char on screen
003c e682 LDAB 2,SP
003e 160000 JSR tx_char0
481: tx_char0(' '); //send space to clear the char
0041 c620 LDAB #32
0043 160000 JSR tx_char0
482: tx_char0(echo); //send bs again to move back the cursor
0046 e682 LDAB 2,SP
0048 160000 JSR tx_char0
483: }
484: }
485: if (count<2) //update 4 bit data to buffer
004b ec83 LDD 3,SP
004d 8c0002 CPD #2
0050 2c39 BGE *+59 ;abs = 008b
486: {
487: if((echo<='f') && (echo>='0'))
0052 e682 LDAB 2,SP
0054 c030 SUBB #48
0056 c136 CMPB #54
0058 2231 BHI *+51 ;abs = 008b
488: {
489: 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
490: if ((echo>='0') && (echo<='9'))
0064 e682 LDAB 2,SP
0066 c030 SUBB #48
0068 c109 CMPB #9
006a 2202 BHI *+4 ;abs = 006e
491: cdata=echo-0x30;
006c 2004 BRA *+6 ;abs = 0072
492: else
493: cdata=echo-0x37;
006e e682 LDAB 2,SP
0070 c037 SUBB #55
0072 6b85 STAB 5,SP
494: count++;
0074 ee83 LDX 3,SP
0076 08 INX
0077 6e83 STX 3,SP
495: tx_char0(echo); //send echo to screen
0079 e682 LDAB 2,SP
007b 160000 JSR tx_char0
496: *c_ptr=(*c_ptr<<4);
007e ee80 LDX 0,SP
0080 e600 LDAB 0,X
0082 8610 LDAA #16
0084 12 MUL
0085 6b00 STAB 0,X
497: *c_ptr+=cdata;
0087 eb85 ADDB 5,SP
0089 6b00 STAB 0,X
008b e686 LDAB 6,SP
008d 04117e DBEQ B,*-127 ;abs = 000e
498: }
499: }
500: }
501:
502: if (echo==DOT||echo ==ESC){
0090 e682 LDAB 2,SP
0092 c12e CMPB #46
0094 2704 BEQ *+6 ;abs = 009a
0096 c11b CMPB #27
0098 2606 BNE *+8 ;abs = 00a0
503: *c_ptr=echo;
009a ee80 LDX 0,SP
009c 6b00 STAB 0,X
504: return(OK);
009e 200a BRA *+12 ;abs = 00aa
505: }
506:
507: if(count!=0 && echo==CR)
00a0 ec83 LDD 3,SP
00a2 2709 BEQ *+11 ;abs = 00ad
00a4 e682 LDAB 2,SP
00a6 c10d CMPB #13
00a8 2603 BNE *+5 ;abs = 00ad
508: return(OK);
00aa c601 LDAB #1
00ac 21 SKIP1
509: else
510: return(NOTOK);
00ad c7 CLRB
511: }
00ae 1b87 LEAS 7,SP
00b0 3d RTS
512:
513: /*******************************************************************
514: * Input String (ASCII) subroutine
515: * Description : Get the data(byte) from user
516: * :
517: * :
518: * Example : N/A
519: * Input : N/A
520: * Output : *c_ptr
521: * Modify : N/A
522: * Return : status [OK for ('0'-'z') or NOTOK for others chars]
523: *********************************************************************/
524: byte input_string(byte *c_ptr, byte *n)
525: {
Function: input_string
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 6cab STD 5,-SP
526: byte echo,loop=ENABLE;
0002 c601 LDAB #1
0004 6b84 STAB 4,SP
527: byte count=0;
0006 6982 CLR 2,SP
528:
529: while(loop == ENABLE)
530: {
531: echo=rx_char0();
0008 160000 JSR rx_char0
000b 6b83 STAB 3,SP
532: if((echo==ESC)||(echo==DOT)||(echo==CR))
000d c11b CMPB #27
000f 2708 BEQ *+10 ;abs = 0019
0011 c12e CMPB #46
0013 2704 BEQ *+6 ;abs = 0019
0015 c10d CMPB #13
0017 2602 BNE *+4 ;abs = 001b
533: loop = DISABLE; //break the while loop
0019 6984 CLR 4,SP
534: if (echo==BS || echo==DEL)
001b c108 CMPB #8
001d 2704 BEQ *+6 ;abs = 0023
001f c17f CMPB #127
0021 261a BNE *+28 ;abs = 003d
535: {
536: if(count>0) //del 4 bit data in buffer
0023 e682 LDAB 2,SP
0025 2716 BEQ *+24 ;abs = 003d
537: {
538: count--;
0027 6382 DEC 2,SP
539: *c_ptr--;
0029 ee87 LDX 7,SP
002b 09 DEX
002c 6e87 STX 7,SP
540: tx_char0(echo); //send bs the char on screen
002e e683 LDAB 3,SP
0030 160000 JSR tx_char0
541: tx_char0(' '); //send space to clear the char
0033 c620 LDAB #32
0035 160000 JSR tx_char0
542: tx_char0(echo); //send bs again to move back the cursor
0038 e683 LDAB 3,SP
003a 160000 JSR tx_char0
543: }
544: }
545: if ((count<0x80)&&(echo!=DEL)&&(echo!=BS)) //update 4 bit data to buffer
003d e682 LDAB 2,SP
003f c180 CMPB #128
0041 2417 BCC *+25 ;abs = 005a
0043 e683 LDAB 3,SP
0045 c17f CMPB #127
0047 2711 BEQ *+19 ;abs = 005a
0049 c108 CMPB #8
004b 270d BEQ *+15 ;abs = 005a
546: {
547: count++;
004d 6282 INC 2,SP
548: tx_char0(echo); //send echo to screen
004f 160000 JSR tx_char0
549: *c_ptr++=echo;
0052 ee87 LDX 7,SP
0054 e683 LDAB 3,SP
0056 6b30 STAB 1,X+
0058 6e87 STX 7,SP
005a e684 LDAB 4,SP
005c 0411a9 DBEQ B,*-84 ;abs = 0008
550: }
551: }
552:
553: if (echo==DOT||echo ==ESC){
005f e683 LDAB 3,SP
0061 c12e CMPB #46
0063 2704 BEQ *+6 ;abs = 0069
0065 c11b CMPB #27
0067 2606 BNE *+8 ;abs = 006f
554: *c_ptr++=echo;
0069 ee87 LDX 7,SP
006b 6b30 STAB 1,X+
555: *c_ptr='\r';
556: *n=count;
557: return(OK);
006d 2011 BRA *+19 ;abs = 0080
558: }
559:
560: if(count!=0 && echo==CR)
006f e682 LDAB 2,SP
0071 271a BEQ *+28 ;abs = 008d
0073 e683 LDAB 3,SP
0075 c10d CMPB #13
0077 2614 BNE *+22 ;abs = 008d
561: {
562: tx_char0('\n'); //send echo to screen
0079 c60a LDAB #10
007b 160000 JSR tx_char0
563: *c_ptr='\r';
007e ee87 LDX 7,SP
0080 c60d LDAB #13
0082 6b00 STAB 0,X
564: *n=count;
0084 ee80 LDX 0,SP
0086 a682 LDAA 2,SP
0088 6a00 STAA 0,X
565: return(OK);
008a c601 LDAB #1
008c 21 SKIP1
566: }
567: else
568: return(NOTOK);
008d c7 CLRB
569: }
008e 1b85 LEAS 5,SP
0090 3d RTS
570:
571: /*******************************************************************
572: * Input byte (dec) subroutine
573: * Description : Get the data(byte) from user
574: * :
575: * :
576: * Example : N/A
577: * Input : N/A
578: * Output : *c_ptr
579: * Modify : N/A
580: * Return : status [OK for ('0'-'z') or NOTOK for others chars]
581: *********************************************************************/
582: byte input_dec(byte *c_ptr)
583: {
Function: input_dec
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 1b92 LEAS -14,SP
0002 3b PSHD
584: byte echo,cdata,loop=ENABLE;
0003 c601 LDAB #1
0005 6b8d STAB 13,SP
585: int count=0,i_data,i_data1,i_data2,i,j;
0007 c7 CLRB
0008 87 CLRA
0009 6c84 STD 4,SP
586:
587: i_data=0;
000b 6c82 STD 2,SP
588: *c_ptr=0;
000d ee80 LDX 0,SP
000f 6b00 STAB 0,X
589: while(loop == ENABLE)
590: {
591: echo=rx_char0();
0011 160000 JSR rx_char0
0014 6b86 STAB 6,SP
592: if((echo==ESC)||(echo==DOT)||(echo==CR))
0016 c11b CMPB #27
0018 2708 BEQ *+10 ;abs = 0022
001a c12e CMPB #46
001c 2704 BEQ *+6 ;abs = 0022
001e c10d CMPB #13
0020 2602 BNE *+4 ;abs = 0024
593: loop = DISABLE; //break the while loop
0022 698d CLR 13,SP
594: if (echo==BS || echo==DEL)
0024 c108 CMPB #8
0026 2704 BEQ *+6 ;abs = 002c
0028 c17f CMPB #127
002a 2621 BNE *+35 ;abs = 004d
595: {
596: if(count>0) //del 4 bit data in buffer
002c ec84 LDD 4,SP
002e 2f1d BLE *+31 ;abs = 004d
597: {
598: count--;
0030 830001 SUBD #1
0033 6c84 STD 4,SP
599: i_data=i_data>>4;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -