📄 utility.lst
字号:
006b e686 LDAB 6,SP
006d 160000 JSR tx_char0
372: i_data=(i_data<<4);
0070 ec80 LDD 0,SP
0072 59 ASLD
0073 59 ASLD
0074 59 ASLD
0075 59 ASLD
0076 6c80 STD 0,SP
373: i_data+=cdata;
0078 e68e LDAB 14,SP
007a 87 CLRA
007b e380 ADDD 0,SP
007d 6c80 STD 0,SP
007f e68b LDAB 11,SP
0081 04118f DBEQ B,*-110 ;abs = 0013
374: }
375: }
376: }
377: if(count!=0 && echo==CR)
0084 ec82 LDD 2,SP
0086 274e BEQ *+80 ;abs = 00d6
0088 e686 LDAB 6,SP
008a c10d CMPB #13
008c 2648 BNE *+74 ;abs = 00d6
378: {
379: for (i=0;i<count;i++)
008e c7 CLRB
008f 87 CLRA
0090 6c84 STD 4,SP
0092 2039 BRA *+59 ;abs = 00cd
380: {
381: i_data1 = ((i_data)>>((unsigned char)(4*i))&0xf);
0094 e685 LDAB 5,SP
0096 58 ASLB
0097 58 ASLB
0098 ed80 LDY 0,SP
009a 160000 JSR _ISHRU
009d c40f ANDB #15
009f 87 CLRA
00a0 6c8c STD 12,SP
382: i_data2=1;
00a2 02 INY
00a3 6d89 STY 9,SP
383: for(j=0;j<i;j++)
00a5 c7 CLRB
00a6 6c87 STD 7,SP
00a8 200d BRA *+15 ;abs = 00b7
384: i_data2 *= 10;
00aa c60a LDAB #10
00ac 87 CLRA
00ad ed89 LDY 9,SP
00af 13 EMUL
00b0 6c89 STD 9,SP
00b2 ee87 LDX 7,SP
00b4 08 INX
00b5 6e87 STX 7,SP
00b7 ec87 LDD 7,SP
00b9 ac84 CPD 4,SP
00bb 2ded BLT *-17 ;abs = 00aa
385: *i_ptr+= i_data1*i_data2;
00bd ec8c LDD 12,SP
00bf ed89 LDY 9,SP
00c1 13 EMUL
00c2 ee8f LDX 15,SP
00c4 e300 ADDD 0,X
00c6 6c00 STD 0,X
00c8 ee84 LDX 4,SP
00ca 08 INX
00cb 6e84 STX 4,SP
00cd ec84 LDD 4,SP
00cf ac82 CPD 2,SP
00d1 2dc1 BLT *-61 ;abs = 0094
386: }
387: return(OK);
00d3 c601 LDAB #1
00d5 21 SKIP1
388: }
389: else
390: return(NOTOK);
00d6 c7 CLRB
391: }
00d7 1bf011 LEAS 17,SP
00da 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\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 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
411:
412: while(loop == ENABLE)
000c 060000 JMP input_word:143
413: {
414: echo=rx_char0();
000f 160000 JSR rx_char0
0012 6b82 STAB 2,SP
415: if((echo==ESC)||(echo==DOT)||(echo==CR))
0014 c11b CMPB #27
0016 2708 BEQ *+10 ;abs = 0020
0018 c12e CMPB #46
001a 2704 BEQ *+6 ;abs = 0020
001c c10d CMPB #13
001e 2602 BNE *+4 ;abs = 0022
416: loop = DISABLE; //break the while loop
0020 6986 CLR 6,SP
417: if (echo==BS || echo==DEL)
0022 c108 CMPB #8
0024 2704 BEQ *+6 ;abs = 002a
0026 c17f CMPB #127
0028 2622 BNE *+36 ;abs = 004c
418: {
419: if(count>0) //del 4 bit data in buffer
002a ec83 LDD 3,SP
002c 2f1e BLE *+32 ;abs = 004c
420: {
421: count--;
002e 830001 SUBD #1
0031 6c83 STD 3,SP
422: *i_ptr=*i_ptr>>4;
0033 ee80 LDX 0,SP
0035 ec00 LDD 0,X
0037 49 LSRD
0038 49 LSRD
0039 49 LSRD
003a 49 LSRD
003b 6c00 STD 0,X
423: tx_char0(echo); //send bs the char on screen
003d e682 LDAB 2,SP
003f 160000 JSR tx_char0
424: tx_char0(' '); //send space to clear the char
0042 c620 LDAB #32
0044 160000 JSR tx_char0
425: tx_char0(echo); //send bs again to move back the cursor
0047 e682 LDAB 2,SP
0049 160000 JSR tx_char0
426: }
427: }
428: if (count<4) //update 4 bit data to buffer
004c ec83 LDD 3,SP
004e 8c0004 CPD #4
0051 2c3e BGE *+64 ;abs = 0091
429: {
430: if((echo<='f') && (echo>='0'))
0053 e682 LDAB 2,SP
0055 c166 CMPB #102
0057 2238 BHI *+58 ;abs = 0091
0059 c130 CMPB #48
005b 2534 BCS *+54 ;abs = 0091
431: {
432: if (echo>='a') echo-=(0x20); //covert upper case
005d c161 CMPB #97
005f 2504 BCS *+6 ;abs = 0065
0061 c020 SUBB #32
0063 6b82 STAB 2,SP
433: if ((echo>='0') && (echo<='9'))
0065 e682 LDAB 2,SP
0067 c130 CMPB #48
0069 2507 BCS *+9 ;abs = 0072
006b c139 CMPB #57
006d 2203 BHI *+5 ;abs = 0072
434: cdata=echo-0x30;
006f c030 SUBB #48
0071 8f SKIP2
435: else
436: cdata=echo-0x37;
0072 c037 SUBB #55
0074 6b85 STAB 5,SP
437: count++;
0076 ee83 LDX 3,SP
0078 08 INX
0079 6e83 STX 3,SP
438: tx_char0(echo); //send echo to screen
007b e682 LDAB 2,SP
007d 160000 JSR tx_char0
439: *i_ptr=(*i_ptr<<4);
0080 ee80 LDX 0,SP
0082 ec00 LDD 0,X
0084 59 ASLD
0085 59 ASLD
0086 59 ASLD
0087 59 ASLD
0088 6c00 STD 0,X
440: *i_ptr+=cdata;
008a e685 LDAB 5,SP
008c 87 CLRA
008d e300 ADDD 0,X
008f 6c00 STD 0,X
0091 e686 LDAB 6,SP
0093 041179 DBEQ B,*-132 ;abs = 000f
441: }
442: }
443: }
444:
445: if(count!=0 && echo==CR)
0096 ec83 LDD 3,SP
0098 2709 BEQ *+11 ;abs = 00a3
009a e682 LDAB 2,SP
009c c10d CMPB #13
009e 2603 BNE *+5 ;abs = 00a3
446: return(OK);
00a0 c601 LDAB #1
00a2 21 SKIP1
447: else
448: return(NOTOK);
00a3 c7 CLRB
449: }
00a4 1b87 LEAS 7,SP
00a6 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\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 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
468:
469: while(loop == ENABLE)
000c 207c BRA *+126 ;abs = 008a
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
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
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -