📄 utility.lst
字号:
483: }
484: }
485: if (count<2) //update 4 bit data to buffer
004b ec83 LDD 3,SP
004d 8c0002 CPD #2
0050 2c3a BGE *+60 ;abs = 008c
486: {
487: if((echo<='f') && (echo>='0'))
0052 e682 LDAB 2,SP
0054 c166 CMPB #102
0056 2234 BHI *+54 ;abs = 008c
0058 c130 CMPB #48
005a 2530 BCS *+50 ;abs = 008c
488: {
489: if (echo>='a') echo-=(0x20); //covert upper case
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 c130 CMPB #48
0068 2507 BCS *+9 ;abs = 0071
006a c139 CMPB #57
006c 2203 BHI *+5 ;abs = 0071
491: cdata=echo-0x30;
006e c030 SUBB #48
0070 8f SKIP2
492: else
493: cdata=echo-0x37;
0071 c037 SUBB #55
0073 6b85 STAB 5,SP
494: count++;
0075 ee83 LDX 3,SP
0077 08 INX
0078 6e83 STX 3,SP
495: tx_char0(echo); //send echo to screen
007a e682 LDAB 2,SP
007c 160000 JSR tx_char0
496: *c_ptr=(*c_ptr<<4);
007f ee80 LDX 0,SP
0081 e600 LDAB 0,X
0083 8610 LDAA #16
0085 12 MUL
0086 6b00 STAB 0,X
497: *c_ptr+=cdata;
0088 eb85 ADDB 5,SP
008a 6b00 STAB 0,X
008c e686 LDAB 6,SP
008e 04117d DBEQ B,*-128 ;abs = 000e
498: }
499: }
500: }
501:
502: if (echo==DOT||echo ==ESC){
0091 e682 LDAB 2,SP
0093 c12e CMPB #46
0095 2704 BEQ *+6 ;abs = 009b
0097 c11b CMPB #27
0099 2606 BNE *+8 ;abs = 00a1
503: *c_ptr=echo;
009b ee80 LDX 0,SP
009d 6b00 STAB 0,X
504: return(OK);
009f 200a BRA *+12 ;abs = 00ab
505: }
506:
507: if(count!=0 && echo==CR)
00a1 ec83 LDD 3,SP
00a3 2709 BEQ *+11 ;abs = 00ae
00a5 e682 LDAB 2,SP
00a7 c10d CMPB #13
00a9 2603 BNE *+5 ;abs = 00ae
508: return(OK);
00ab c601 LDAB #1
00ad 21 SKIP1
509: else
510: return(NOTOK);
00ae c7 CLRB
511: }
00af 1b87 LEAS 7,SP
00b1 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\S12 Ex5 EEPROM ICD\sources\utility.c
Options : -Env"GENPATH=D:\Code S12\Utility\S12 Ex5 EEPROM ICD;D:\Code S12\Utility\S12 Ex5 EEPROM ICD\bin;D:\Code S12\Utility\S12 Ex5 EEPROM ICD\cmd;D:\Code S12\Utility\S12 Ex5 EEPROM ICD\prm;D:\Code S12\Utility\S12 Ex5 EEPROM ICD\sources;D:\Metrowerks\CodeWarrior MOT_V1.2\lib\HC12c\LIB;D:\Metrowerks\CodeWarrior MOT_V1.2\lib\HC12c\SRC;D:\Metrowerks\CodeWarrior MOT_V1.2\lib\HC12c\INCLUDE" -Env"LIBPATH=D:\Metrowerks\CodeWarrior MOT_V1.2\lib\HC12c\INCLUDE" -Env"OBJPATH=D:\Code S12\Utility\S12 Ex5 EEPROM ICD\bin" -Env"TEXTPATH=D:\Code S12\Utility\S12 Ex5 EEPROM ICD\bin" -Lasm=%n.lst -ObjN="D:\Code S12\Utility\S12 Ex5 EEPROM ICD\S12_Ex5_EEPROM_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\S12 Ex5 EEPROM ICD\sources\utility.c
Options : -Env"GENPATH=D:\Code S12\Utility\S12 Ex5 EEPROM ICD;D:\Code S12\Utility\S12 Ex5 EEPROM ICD\bin;D:\Code S12\Utility\S12 Ex5 EEPROM ICD\cmd;D:\Code S12\Utility\S12 Ex5 EEPROM ICD\prm;D:\Code S12\Utility\S12 Ex5 EEPROM ICD\sources;D:\Metrowerks\CodeWarrior MOT_V1.2\lib\HC12c\LIB;D:\Metrowerks\CodeWarrior MOT_V1.2\lib\HC12c\SRC;D:\Metrowerks\CodeWarrior MOT_V1.2\lib\HC12c\INCLUDE" -Env"LIBPATH=D:\Metrowerks\CodeWarrior MOT_V1.2\lib\HC12c\INCLUDE" -Env"OBJPATH=D:\Code S12\Utility\S12 Ex5 EEPROM ICD\bin" -Env"TEXTPATH=D:\Code S12\Utility\S12 Ex5 EEPROM ICD\bin" -Lasm=%n.lst -ObjN="D:\Code S12\Utility\S12 Ex5 EEPROM ICD\S12_Ex5_EEPROM_ICD_Data\Flash_Application\ObjectCode\utility.c.o" -Ol0
0000 1b91 LEAS -15,SP
0002 3b PSHD
584: byte echo,cdata,loop=ENABLE;
0003 c601 LDAB #1
0005 6b8c STAB 12,SP
585: int count=0,i_data,i_data1,i_data2,i,j;
0007 c7 CLRB
0008 87 CLRA
0009 6c83 STD 3,SP
586:
587: i_data=0;
000b 6c8f STD 15,SP
588: *c_ptr=0;
000d ee80 LDX 0,SP
000f 6b00 STAB 0,X
589: while(loop == ENABLE)
0011 206e BRA *+112 ;abs = 0081
590: {
591: echo=rx_char0();
0013 160000 JSR rx_char0
0016 6b85 STAB 5,SP
592: if((echo==ESC)||(echo==DOT)||(echo==CR))
0018 c11b CMPB #27
001a 2708 BEQ *+10 ;abs = 0024
001c c12e CMPB #46
001e 2704 BEQ *+6 ;abs = 0024
0020 c10d CMPB #13
0022 2602 BNE *+4 ;abs = 0026
593: loop = DISABLE; //break the while loop
0024 698c CLR 12,SP
594: if (echo==BS || echo==DEL)
0026 c108 CMPB #8
0028 2704 BEQ *+6 ;abs = 002e
002a c17f CMPB #127
002c 2621 BNE *+35 ;abs = 004f
595: {
596: if(count>0) //del 4 bit data in buffer
002e ec83 LDD 3,SP
0030 2f1d BLE *+31 ;abs = 004f
597: {
598: count--;
0032 830001 SUBD #1
0035 6c83 STD 3,SP
599: i_data=i_data>>4;
0037 ed8f LDY 15,SP
0039 c604 LDAB #4
003b 160000 JSR _ISHRS
003e 6c8f STD 15,SP
600: tx_char0(echo); //send bs the char on screen
0040 e685 LDAB 5,SP
0042 160000 JSR tx_char0
601: tx_char0(' '); //send space to clear the char
0045 c620 LDAB #32
0047 160000 JSR tx_char0
602: tx_char0(echo); //send bs again to move back the cursor
004a e685 LDAB 5,SP
004c 160000 JSR tx_char0
603: }
604: }
605: if (count<3) //update 4 bit data to buffer
004f ec83 LDD 3,SP
0051 8c0003 CPD #3
0054 2c2b BGE *+45 ;abs = 0081
606: {
607: if((echo<='9') && (echo>='0'))
0056 e685 LDAB 5,SP
0058 c139 CMPB #57
005a 2225 BHI *+39 ;abs = 0081
005c c130 CMPB #48
005e 2521 BCS *+35 ;abs = 0081
608: {
609: if ((echo>='0') && (echo<='9'))
0060 c139 CMPB #57
0062 2204 BHI *+6 ;abs = 0068
610: cdata=echo-0x30;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -