⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 utility.lst

📁 基于摩托罗拉S12标准源程序 包括:SCIO,Timer
💻 LST
📖 第 1 页 / 共 5 页
字号:
  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 + -