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

📄 691speechmodal.s14

📁 TI 691 的驱动部分
💻 S14
📖 第 1 页 / 共 5 页
字号:
       sta   np:Sp691_wordTemp1
       
       ldy   #0
       lda   np:PRMBN Spe691FMMusicPlay_Rom,y
       sta   np:Sp691_wordTemp
       
       iny
       lda   np:PRMBN Spe691FMMusicPlay_Rom,y
       sta   np:Sp691_wordTemp+1
       
       iny
       lda   np:PRMBN Spe691FMMusicPlay_Rom,y
       sta   np:Sp691_wordTemp+2
       
       iny
       lda   np:PRMBN Spe691FMMusicPlay_Rom,y
       sta   np:Sp691_wordTemp+3
       
       
             
       lda   #00000001b
       sta   _ChanCONx	     
       lda   np:Sp691_wordTemp+3
       sta   np:_CSx
       lda   np:Sp691_wordTemp+2
       sta   np:_ADDRHx
       lda   np:Sp691_wordTemp+1
       sta   np:_ADDRMx
       lda   np:Sp691_wordTemp	     
       sta   np:_ADDRLx
       lda   np:_INCRx		       
       ora   #01h
       sta   np:_INCRx
       lda   #00000001b
       and   #00000111b
       ora   #00100000b
       sta   _ChanCONx      
       
       lda np:Sp691_volume
       and #0fh
       cmp #00h
       bne Spe691FMMusicPlay_Rom_OK1
       jmp Spe691FMMusicPlay_Rom_End
Spe691FMMusicPlay_Rom_OK1:
       lda np:DictSysFlag+1               ;系统用
       and #02                            ;
       cmp #0	                          ;
       beq Spe691FMMusicPlay_Rom_OK       ;
       jmp Spe691FMMusicPlay_Rom_End      ;
Spe691FMMusicPlay_Rom_OK:  
       
       lda #0
       sta np:Sp691_VolumeFlag    
       jsr _Speech691_initial
       
       ;lda np:DictSysFlag+3
       ;and #0feh
       ;sta np:DictSysFlag+3 
       
       jsr Speech691Play_FM
       
Spe691FMMusicPlay_Rom_End:	 
       lda   np:_INCRx
       and   #0feh
       sta   np:_INCRx
       
       
       jsr DelayDlg
       jsr _Speech691_initial			;2005-5-22 04:59下午
       jsr _Speech691Sleep  			;2005-5-22 04:59下午
      
       jsr SysSpeEnableTouchPanel
       
       ;pla
       ;sta   np:_ADCCON1
       ;pla
       ;sta   np:_IER1	 ;EnableTouchPanel
       pla
       sta   _SOper1+1 
       pla	 
       sta   _SOper1
       pla
       tax
       pla	 
       
       jsr DelayDlg
       
        
       rts
;*----------------------------------------------------------------------
;*			      Speech691Play_FM
;*----------------------------------------------------------------------     
	    
Speech691Play_FM:
      lda #04
      jsr Speech691_sendData
      lda #04
      jsr Speech691_sendData
      
Speech691Play_FM_OutReady:
      jsr Speech691Play_FM_WaitOutReady
      cmp #0
      beq Speech691Play_FM_WaitOK
      jmp Speech691Play_FM_Return
Speech691Play_FM_WaitOK:
     
      jsr _Spe691_ReadRetValue
      lda np:Sp691_returnValue
      asl a
      asl a
      asl a 
      asl a  
      sta np:Speech691_len
      lda np:Sp691_returnValue+1
      and #0fh
      
      clc
      adc np:Speech691_len
      sta np:Speech691_len
Speech691Play_FM_InReady:
      jsr Speech691Play_FM_WaitInReady
      cmp #0	  
      beq Speech691Play_FM_InReadyOK
      jmp Speech691Play_FM_Return
Speech691Play_FM_InReadyOK:
      lda np:Speech691_len	
      bne Speech691Play_FM_GetData     
Speech691Play_FM_Wait1:
      lda np:_PI
      and #OUTRDYH
      bne Speech691Play_FM_Wait1 
      jsr _Spe691_ReadRetValue
      lda np:Sp691_returnValue
      and #0fh
      cmp #0
      beq Speech691Play_FM_checkReturn1
      jmp Speech691Play_FM_Return
Speech691Play_FM_checkReturn1:
      lda np:Sp691_returnValue+2
      and #0fh
      cmp #2
      beq Speech691Play_FM_checkReturn2
      jmp Speech691Play_FM_Return
Speech691Play_FM_checkReturn2:
      lda np:Sp691_returnValue+3
      and #0fh
      cmp #3
      beq Speech691Play_FM_checkReturn3
      jmp Speech691Play_FM_Return
Speech691Play_FM_checkReturn3:
      lda np:Sp691_returnValue+1
      and #0fh
      sta np:Speech691_len     
      lda #09
      jsr Speech691_sendData
      lda np:Speech691_len
      jsr Speech691_sendData      
Speech691Play_FM_GetData:
      lda np:Sp691_wordTemp1
      cmp #0
      beq Speech691Play_FM_GetData_Flash
Speech691Play_FM_GetData_Rom:
      lda _DATAx1                 
      
      jmp Speech691Play_FM_GetData_Process
Speech691Play_FM_GetData_Flash:
      ldy #0
      lda (_SOper1),y

Speech691Play_FM_GetData_Process:      
      tax  
      lsr a
      lsr a
      lsr a
      lsr a
      ora #10h
      jsr Speech691_sendData
      txa
      and #0fh
      ora #10h
      jsr Speech691_sendData

      sec
      lda np:Speech691_len
      sbc #1
      sta np:Speech691_len

      lda np:Sp691_wordTemp1
      cmp #1
      beq Speech691Play_FM_GetData_P1
      
      
      clc
      lda _SOper1
      adc #1
      sta _SOper1
      lda _SOper1+1
      adc #0
      sta _SOper1+1	 

Speech691Play_FM_GetData_P1:
      lda np:DictSysFlag+3
      and #01h
      cmp #0
      bne Speech691Play_FM_Return_N_Key
      
      
      lda np:DictSysFlag+1           
      and #02h                         ;      the system flag ;
      cmp #0                           ;
      bne Speech691Play_FM_Return_N      ;
      
      jmp Speech691Play_FM_InReady
Speech691Play_FM_Return:

      jsr DelayDlg		       ;MDF3:Add @17:07 for improve tone quanlity 
        
      jsr _Speech691_initial
      lda #3
      jsr _Speech691Sleep
      ;jsr SysIconAllRestore_691
      rts
Speech691Play_FM_Return_N:
      ;lda #05h                       ;MDF:nouse
      ;jsr Speech691_sendData
      ;lda #01h
      ;jsr Speech691_sendData
      ;
      ;
      ;jsr _Spe691_ReadRetValue
      ;
      ;lda np:Sp691_returnValue
      ;cmp #0
      ;bne Speech691Play_FM_Return_N
      ;
      ;lda np:Sp691_returnValue+1
      ;cmp #0
      ;bne Speech691Play_FM_Return_N
      ;
      ;lda np:Sp691_returnValue+2
      ;cmp #05h
      ;bne Speech691Play_FM_Return_N
      ;
      ;lda np:Sp691_returnValue+3
      ;cmp #05h
      ;bne Speech691Play_FM_Return_N
      
      jsr DelayDlg		       ;MDF3:Add @17:07 for improve tone quanlity ,MDF6@16:48          
      
      ;lda   np:DictSysFlag+1
      ;and   #0fdh
      ;sta   np:DictSysFlag+1  
      
      
      
      jsr _Speech691_initial
      lda #3
      jsr _Speech691Sleep
      ;jsr SysIconAllRestore_691
      rts
Speech691Play_FM_Return_N_Key:
      jsr DelayDlg		       ;MDF3:Add @17:07 for improve tone quanlity ,MDF6@16:48          
      
      ;jsr   SysGetKey 
      
      ;lda   np:DictSysFlag+1
      ;and   #0fdh
      ;sta   np:DictSysFlag+1  
      
      jsr _Speech691_initial
      lda #3
      jsr _Speech691Sleep
      ;jsr SysIconAllRestore_691
      rts
      
      
      
      
;*-------------------------------------------------------------------------
;*			 Speech691Play_FM_WaitOutReady
;*-------------------------------------------------------------------------

Speech691Play_FM_WaitOutReady:
	ldy	#0ffh
	sty	np:Sp691_wordTemp
	lda	#05h
	sta	np:Sp691_wordTemp+1
Speech691Play_FM_WaitOutReady0:
	lda	np:_PI
	and	#OUTRDYH
	bne	Speech691Play_FM_WaitOutReady01	
	lda	#0	
	rts
Speech691Play_FM_WaitOutReady01:	
	dey
	cpy	#0
	bne	Speech691Play_FM_WaitOutReady1
	
	ldy	np:Sp691_wordTemp
	dey
	sty	np:Sp691_wordTemp
	cpy	#0
	bne	Speech691Play_FM_WaitOutReady2
	ldy	np:Sp691_wordTemp+1
	dey
	sty	np:Sp691_wordTemp+1
	cpy	#0
	bne	Speech691Play_FM_WaitOutReady3
	
	lda	#1

	rts	
Speech691Play_FM_WaitOutReady3:
	lda	#0ffh
	sta	np:Sp691_wordTemp
	
Speech691Play_FM_WaitOutReady2:
	ldy	#0ffh
Speech691Play_FM_WaitOutReady1:
	lda	np:_PI
	and	#OUTRDYH
	bne	Speech691Play_FM_WaitOutReady11
	
	lda	#0
	
	rts
	
Speech691Play_FM_WaitOutReady11:
	lda	np:DictSysFlag+3
	and	#01h
	cmp	#0
	bne	Speech691Play_FM_OutReadyStop
	
	lda	np:DictSysFlag+1           
	and	#02h                          ;
	cmp	#0                            ;
	bne	Speech691Play_FM_OutReadyStop ;

	lda	np:_PI
	and	#OUTRDYH
	bne	Speech691Play_FM_WaitOutReady0
	
	lda	#0
	
	rts
Speech691Play_FM_OutReadyStop:
	lda	#1
	
	rts
	
;*-------------------------------------------------------------------------
;*			 Speech691Play_FM_WaitInReady
;*-------------------------------------------------------------------------
Speech691Play_FM_WaitInReady:
	ldy	#0ffh
	sty	np:Sp691_wordTemp
	lda	#3						
	sta	np:Sp691_wordTemp+1
Speech691Play_FM_WaitInReady0:
	dey
	cpy	#0
	bne	Speech691Play_FM_WaitInReady1
	
	ldy	np:Sp691_wordTemp
	dey
	sty	np:Sp691_wordTemp
	cpy	#0
	bne	Speech691Play_FM_WaitInReady2
	ldy	np:Sp691_wordTemp+1
	dey
	sty	np:Sp691_wordTemp+1
	cpy	#0
	bne	Speech691Play_FM_WaitInReady3
	
	lda	#1

	rts	
Speech691Play_FM_WaitInReady3:
	lda	#0ffh
	sta	np:Sp691_wordTemp
	
Speech691Play_FM_WaitInReady2:
	ldy	#0ffh
Speech691Play_FM_WaitInReady1:

	lda	np:DictSysFlag+3
	and	#01h
	cmp	#0
	bne	Speech691Play_FM_InReadyStop
	
	lda	np:DictSysFlag+1    
	and	#02h                           ;                                                  
	cmp	#0                             ;                                                  
	bne	Speech691Play_FM_InReadyStop   ;

	lda	np:_PI
	and	#INRDYH
	bne	Speech691Play_FM_WaitInReady0
	
	lda	#0
	
	rts
Speech691Play_FM_InReadyStop:
	lda	#1	
	rts
	     
;*************************************************************************
;*函数名:		    SysSpeEngSpell
;*说明:		    单词拼读函数
;*输入参数:   
;*	       U16	      Number	       单词序号
;*返回值:     void
;*修改历史:   
;*	   姓名		日期	     说明
;*	  -----		----	     ----
;************************************************************************* 
;*------------------------------------------------------------------------
;*			  SysSpeEngSpell
;*------------------------------------------------------------------------
SysSpeEngSpell:
       pha
       txa
       pha
       lda   _SOper1
       pha
       lda   _SOper1+1
       pha
       
       
      
       
       jsr SysSpeDisableTouchPanel 
       
       ldy   #0
       lda   np:PRMBN SysSpeEngSpell,y  ;Read the application programme variable	
       sta   np:Sp691_wordTemp

       iny
       lda   np:PRMBN SysSpeEngSpell,y
       sta   np:Sp691_wordTemp+1
       
       ;iny
       ;lda   np:PRMBN SysSpeEngSpell,y
       lda   #0
       sta   np:Sp691_wordTemp+2
       
       jsr   SysSpeEngPlayTemp3

       jsr   SpeEngPAddrWRx_Init
	   
       lda   #00000001b
       sta   _ChanCONx
       
       lda   np:CSxSpeDict   
       sta   np:_CSx
       
       clc			 
       lda   np:_ADDRLx		 
       adc   np:Sp691_wordTemp
       sta   np:_ADDRLx		 
				 
       lda   np:_ADDRMx		 
       adc   np:Sp691_wordTemp+1
       sta   np:_ADDRMx
				 
       lda   np:_ADDRHx
       adc   np:Sp691_wordTemp+2 
       sta   np:_ADDRHx
	      
       ora   #01h
       sta   np:_INCRx
       lda   #00000001b	
       and   #00000111b
       ora   #00100000b
       sta   _ChanCONx
       
       
       
       lda   _DATAx1
       sta   np:Sp691_wordTemp

       lda   _DATAx1
       sta   np:Sp691_wordTemp+1
              
       lda   _DATAx1
       tax	
       
       sec	
       lda   _DATAx1
       sbc   np:Sp691_wordTemp
       sta   np:Speech691_len
       sta   np:Speech691_lenResidue
       lda   _DATAx1
       sbc   np:Sp691_wordTemp+1
       sta   np:Speech691_len+1
       lda   _DATAx1
       
       
      
       lda   np:_INCRx
       and   #0feh
       sta   np:_INCRx	
       
       lda   #00000001b
       sta   _ChanCONx
       lda   np:CSxSpeDict      ;#0b2h
       sta   np:_CSx
       lda   np:ADDRHxSpeDict   ;#01h
       sta   np:_ADDRHx
       lda   np:ADDRMxSpeDict   ;#0beh
       sta   np:_ADDRMx
       lda   np:ADDRLxSpeDict   ;#049h	
       sta   np:_ADDRLx	     
       
       
       lda   np:_INCRx
       ora   #01h
       sta   np:_INCRx
       lda   #00000001b	
       and   #00000111b
       ora   #00100000b
       sta   _ChanCONx       
       
       lda   #00000001b
       sta   _ChanCONx
       lda   np:CSxSpeDict    ;#0b2h
       sta   np:_CSx
       
       lda   np:ADDRHxSpeDict ;#01h      
       sta   np:_ADDRHx
       lda   np:ADDRMxSpeDict ;#0beh     
       sta   np:_ADDRMx
       lda   np:ADDRLxSpeDict ;#049h     
       sta   np:_ADDRLx	      
       
       clc
       lda   np:_ADDRLx
       adc   np:Sp691_wordTemp
       sta   np:_ADDRLx
       
       lda   np:_ADDRMx	
      

⌨️ 快捷键说明

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