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

📄 utility.lst

📁 基于摩托罗拉S12标准源程序 包括:SCIO,Timer
💻 LST
📖 第 1 页 / 共 5 页
字号:
  0064 c030         SUBB  #48
  0066 6b82         STAB  2,SP
  611:  	      count++; 
  0068 ee83         LDX   3,SP
  006a 08           INX   
  006b 6e83         STX   3,SP
  612:  	      tx_char0(echo);			//send echo to screen
  006d e685         LDAB  5,SP
  006f 160000       JSR   tx_char0
  613:  	  	  i_data=(i_data<<4);
  0072 ec8f         LDD   15,SP
  0074 59           ASLD  
  0075 59           ASLD  
  0076 59           ASLD  
  0077 59           ASLD  
  0078 6c8f         STD   15,SP
  614:  	      i_data+=cdata;
  007a e682         LDAB  2,SP
  007c 87           CLRA  
  007d e38f         ADDD  15,SP
  007f 6c8f         STD   15,SP
  0081 e68c         LDAB  12,SP
  0083 04118d       DBEQ  B,*-112 ;abs = 0013
  615:  	    }	
  616:  	  }
  617:  	}  
  618:  	
  619:  	if (echo==DOT||echo ==ESC){
  0086 e685         LDAB  5,SP
  0088 c12e         CMPB  #46
  008a 2704         BEQ   *+6 ;abs = 0090
  008c c11b         CMPB  #27
  008e 2606         BNE   *+8 ;abs = 0096
  620:  	   *c_ptr=echo;
  0090 ee80         LDX   0,SP
  0092 6b00         STAB  0,X
  621:  	   return(OK);
  0094 204f         BRA   *+81 ;abs = 00e5
  622:  	   }
  623:  
  624:  	if(count!=0 && echo==CR)
  0096 ec83         LDD   3,SP
  0098 274e         BEQ   *+80 ;abs = 00e8
  009a e685         LDAB  5,SP
  009c c10d         CMPB  #13
  009e 2648         BNE   *+74 ;abs = 00e8
  625:  	{
  626:  	  for (i=0;i<count;i++)
  00a0 c7           CLRB  
  00a1 87           CLRA  
  00a2 6c86         STD   6,SP
  00a4 2039         BRA   *+59 ;abs = 00df
  627:  	  {
  628:  	     i_data1 = ((i_data)>>((unsigned char)(4*i))&0xf);
  00a6 e687         LDAB  7,SP
  00a8 58           ASLB  
  00a9 58           ASLB  
  00aa ed8f         LDY   15,SP
  00ac 160000       JSR   _ISHRS
  00af c40f         ANDB  #15
  00b1 87           CLRA  
  00b2 6c8d         STD   13,SP
  629:  	     i_data2=1;
  00b4 02           INY   
  00b5 6d8a         STY   10,SP
  630:  		 for(j=0;j<i;j++)
  00b7 c7           CLRB  
  00b8 6c88         STD   8,SP
  00ba 200d         BRA   *+15 ;abs = 00c9
  631:  		   i_data2 *= 10;
  00bc c60a         LDAB  #10
  00be 87           CLRA  
  00bf ed8a         LDY   10,SP
  00c1 13           EMUL  
  00c2 6c8a         STD   10,SP
  00c4 ee88         LDX   8,SP
  00c6 08           INX   
  00c7 6e88         STX   8,SP
  00c9 ec88         LDD   8,SP
  00cb ac86         CPD   6,SP
  00cd 2ded         BLT   *-17 ;abs = 00bc
  632:  	     *c_ptr+= i_data1*i_data2;
  00cf e68e         LDAB  14,SP
  00d1 a68b         LDAA  11,SP
  00d3 12           MUL   
  00d4 ee80         LDX   0,SP
  00d6 eb00         ADDB  0,X
  00d8 6b00         STAB  0,X
  00da ee86         LDX   6,SP
  00dc 08           INX   
  00dd 6e86         STX   6,SP
  00df ec86         LDD   6,SP
  00e1 ac83         CPD   3,SP
  00e3 2dc1         BLT   *-61 ;abs = 00a6
  633:  	  }
  634:  	  return(OK);
  00e5 c601         LDAB  #1
  00e7 21           SKIP1 
  635:  	}
  636:  	else 
  637:  	  return(NOTOK);
  00e8 c7           CLRB  
  638:  }
  00e9 1bf011       LEAS  17,SP
  00ec 3d           RTS   
  639:  
  640:  /*******************************************************************
  641:  * Display internal memory to screen subroutine
  642:  * Description : User inputs the internal memory start address 
  643:  *             : and end address  
  644:  *			  :
  645:  * Example     : start_add=0x1000; end_add=0x1200 
  646:  * Input 	  : start_add and end_add
  647:  * Output	  : N/A
  648:  * Modify      : register D 
  649:  * Return      : status (OK or NOTOK) 
  650:  *********************************************************************/ 
  651:  void data_display()
  652:  {

Function: data_display
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 1bf1ee       LEAS  -18,SP
  653:  	unsigned int	*word,temp,start_add,end_add,i,j;
  654:  	unsigned int	itemp;
  655:  	byte			*ptr,add_status,lf;
  656:  	
  657:  	word=&temp;
  0003 1a8c         LEAX  12,SP
  0005 6e8a         STX   10,SP
  658:  	
  659:  	printf0("\n\r");	
  0007 cc0000       LDD   #"\012\015"
  000a 160000       JSR   printf0
  660:  	printf0("	Start Address = \r");
  000d cc0000       LDD   #"\011Start Address = \015"
  0010 160000       JSR   data_display:233
  661:  	if(input_word(word)==OK)
  0013 260b         BNE   *+13 ;abs = 0020
  662:  	{
  663:  	  start_add = *word;
  0015 ee8a         LDX   10,SP
  0017 ec00         LDD   0,X
  0019 6c82         STD   2,SP
  664:  	  add_status = OK;
  001b c601         LDAB  #1
  001d 6b8f         STAB  15,SP
  665:  	}
  001f 8f           SKIP2 
  666:  	else
  667:  	  add_status = NOTOK;
  0020 698f         CLR   15,SP
  668:  	  
  669:  	printf0("\n\r");	
  0022 cc0000       LDD   #"\012\015"
  0025 160000       JSR   printf0
  670:  	printf0("	End Address = \r");
  0028 cc0000       LDD   #"\011End Address = \015"
  002b 160000       JSR   data_display:233
  671:  	if(input_word(word)==OK)
  002e 2606         BNE   *+8 ;abs = 0036
  672:  	  end_add = *word;
  0030 ee8a         LDX   10,SP
  0032 ec00         LDD   0,X
  0034 2005         BRA   *+7 ;abs = 003b
  673:  	else
  674:  	  end_add = start_add+0x100;  
  0036 ec82         LDD   2,SP
  0038 c30100       ADDD  #256
  003b 6c88         STD   8,SP
  675:  
  676:  	itemp=end_add-start_add;
  003d a382         SUBD  2,SP
  003f 6cf010       STD   16,SP
  677:  	if((itemp)>0)
  0042 1827009f     LBEQ  *+163 ;abs = 00e5
  678:  	{  
  679:  	  ptr=(byte *)start_add;		//point to start address
  0046 ec82         LDD   2,SP
  0048 6c80         STD   0,SP
  680:  	  j=16;
  004a c610         LDAB  #16
  004c 87           CLRA  
  004d 6c86         STD   6,SP
  681:  	  for (i=0; i<(end_add-start_add);i++)
  004f c7           CLRB  
  0050 6c84         STD   4,SP
  0052 060000       JMP   data_display:213
  682:  	  {
  683:  	    if (j>=16)
  0055 ec86         LDD   6,SP
  0057 8c0010       CPD   #16
  005a 251e         BCS   *+32 ;abs = 007a
  684:  	    {
  685:  	    	printf0("\n\r");
  005c cc0000       LDD   #"\012\015"
  005f 160000       JSR   printf0
  686:  	     	temp=(int)ptr;
  0062 ec80         LDD   0,SP
  0064 6c8c         STD   12,SP
  687:  			hex_asc((byte)(temp>>8));
  0066 e68c         LDAB  12,SP
  0068 160000       JSR   hex_asc
  688:  			hex_asc((byte)(temp));
  006b e68d         LDAB  13,SP
  006d 160000       JSR   hex_asc
  689:  		    printf0(" : \r");
  0070 cc0000       LDD   #" : \015"
  0073 160000       JSR   printf0
  690:  	    	j=0;
  0076 c7           CLRB  
  0077 87           CLRA  
  0078 6c86         STD   6,SP
  691:  	    }
  692:  	    hex_asc(*ptr++);
  007a ee80         LDX   0,SP
  007c e630         LDAB  1,X+
  007e 6e80         STX   0,SP
  0080 160000       JSR   hex_asc
  693:  	    tx_char0(' ');
  0083 c620         LDAB  #32
  0085 160000       JSR   tx_char0
  694:  	    j++;
  0088 ee86         LDX   6,SP
  008a 08           INX   
  008b 6e86         STX   6,SP
  695:  	    if(j>=16)
  008d 8e0010       CPX   #16
  0090 2532         BCS   *+52 ;abs = 00c4
  696:  	    {
  697:  	      ptr-=16;
  0092 ec80         LDD   0,SP
  0094 830010       SUBD  #16
  0097 6c80         STD   0,SP
  698:  	  	  for(lf=0;lf<16;lf++)
  0099 698e         CLR   14,SP
  699:  	  	  {
  700:  	  	    if((*ptr>='0')&&(*ptr<'z'))
  009b ee80         LDX   0,SP
  009d e600         LDAB  0,X
  009f c130         CMPB  #48
  00a1 2506         BCS   *+8 ;abs = 00a9
  00a3 c17a         CMPB  #122
  00a5 2402         BCC   *+4 ;abs = 00a9
  701:  	  	      tx_char0(*ptr);
  00a7 200b         BRA   *+13 ;abs = 00b4
  702:  	  	    else if (*ptr==' ')
  00a9 e600         LDAB  0,X
  00ab c120         CMPB  #32
  00ad 2603         BNE   *+5 ;abs = 00b2
  703:  	  	      tx_char0(' ');
  00af c620         LDAB  #32
  00b1 8f           SKIP2 
  704:  	  	    else
  705:  	  	      tx_char0('.');  
  00b2 c62e         LDAB  #46
  00b4 160000       JSR   tx_char0
  706:  	  	    *ptr++;
  00b7 ee80         LDX   0,SP
  00b9 08           INX   
  00ba 6e80         STX   0,SP
  00bc 628e         INC   14,SP
  00be e68e         LDAB  14,SP
  00c0 c110         CMPB  #16
  00c2 25d7         BCS   *-39 ;abs = 009b
  707:  	      }
  708:  	    }
  709:  		if(check_user_abort()==OK)
  00c4 160000       JSR   check_user_abort
  00c7 042106       DBNE  B,*+9 ;abs = 00d0
  710:  		  i=(end_add-start_add);
  00ca ec88         LDD   8,SP
  00cc a382         SUBD  2,SP
  00ce 6c84         STD   4,SP
  00d0 ee84         LDX   4,SP
  00d2 08           INX   
  00d3 6e84         STX   4,SP
  00d5 ec88         LDD   8,SP
  00d7 a382         SUBD  2,SP
  00d9 ac84         CPD   4,SP
  00db 1822ff76     LBHI  *-134 ;abs = 0055
  711:  	  }  
  712:     	  printf0("\n\r");	
  00df cc0000       LDD   #"\012\015"
  00e2 160000       JSR   printf0
  713:  	}
  714:  }
  00e5 1bf012       LEAS  18,SP
  00e8 3d           RTS   
  00e9 160000       JSR   printf0
  00ec ec8c         LDD   12,SP
  00ee 160000       JSR   input_word
  00f1 53           DECB  
  00f2 3d           RTS   
  715:  
  716:  /*******************************************************************
  717:  * init RAM subroutine
  718:  * Description : Display RAM /Flash data to terminal via RS232
  719:  *			  :
  720:  * Example     : N/A  
  721:  * Input 	  : Address
  722:  * Output	  : RAM / Flash content
  723:  * Modify      : N/A
  724:  * Return 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -