📄 ht8xxx.he1.ht83_
字号:
; PLAY_VOICE(INT TRK_H,INT TRK_L,BIT CH , BIT FILTER)
MOV A,_PLAY_VOICE0
MOV TRACKNUMBER02,A
MOV A,_PLAY_VOICE1
MOV TRACKNUMBER01,A
SZ _PLAY_VOICE2
RET
CLR _filter_
SZ _PLAY_VOICE3; _PLAY_VOICE2
SET _filter_
SET _FVOICEUP
CALL FUNCSPEECHINITIAL
SET _FVOICEUP
SET _FVOICEDOWN
CALL _DAC_RAMP_UP
SET TMR0C.4
SET INTC.2
SET EMI
RET
_STOP0:
_STOP:
JMP CM__MAD4MP6P8MSTOP1_i
_PLAY_VOICE_WITH_UP_DOWN:
; PLAY_VOICE_WITH_UP_DOWN(INT TRK_H,INT TRK_L,BOOL UP,BOOL DOWN)
MOV A,PLAY_VOICE_WITH_UP_DOWN0
MOV TRACKNUMBER02,A
MOV A,PLAY_VOICE_WITH_UP_DOWN1
MOV TRACKNUMBER01,A
CALL FUNCSPEECHINITIAL
SZ PLAY_VOICE_WITH_UP_DOWN2
SET _FVOICEDOWN
SZ PLAY_VOICE_WITH_UP_DOWN3
CALL _DAC_RAMP_UP
SET INTC.2
SET TMR0C.4
SET EMI
RET
_PLAY_VOICE_WITH_SR_UP_DOWN:
; PLAY_VOICE_WITH_SR_DOWN(INT TRK_H,INT TRK_L,INT SR_H,INT SR_L,BOOL UP,BOOL DOWN)
MOV A,PLAY_VOICE_WITH_SR_UP_DOWN0
MOV TRACKNUMBER02,A
MOV A,PLAY_VOICE_WITH_SR_UP_DOWN1
MOV TRACKNUMBER01,A
CALL FUNCSPEECHINITIAL
SZ PLAY_VOICE_WITH_SR_UP_DOWN4
SET _FVOICEDOWN
SZ PLAY_VOICE_WITH_SR_UP_DOWN5
CALL _DAC_RAMP_UP
MOV A,PLAY_VOICE_WITH_SR_UP_DOWN2
MOV TMR0,A
MOV A,PLAY_VOICE_WITH_SR_UP_DOWN3
MOV TMR0C,A
SET INTC.2
SET TMR0C.4
SET EMI
RET
__PLAY_SENTENCE: ; PLAY_SENTENCE(INT TRK_H,INT TRK_L,BIT CH,BIT FILTER)
MOV A,_PLAY_SENTENCE0
MOV DATACODE,A
MOV A,_PLAY_SENTENCE1
MOV _PLAY_SENTENCE0,A
MOV A,DATACODE
MOV _PLAY_SENTENCE1,A
SZ _PLAY_SENTENCE2
RET
CLR _filter_
SZ _PLAY_SENTENCE3;_PLAY_SENTENCE2
SET _filter_
SET _FVOICEDOWN
SET EMI
JMP _PLAY_SENTENCET
_STANDBY:
_CH0_PLAYING:
CLR ACC
SnZ _FSTANDBY0
SET ACC.0
RET
_CH0_WAITTING_FINISH:
CLR WDT
CLR WDT2
SNZ _FSTANDBY0
JMP _CH0_WAITTING_FINISH
RET
;------------------------------------------------------------------------------
; FUNCTION : VOLUMPUP
; INPUT : NONE
; OUTPUT : NONE
; REMARK :
; DESTROY :
;
;------------------------------------------------------------------------------
VOLUMEUP:
_VOLUMEUP:
MOV A,20H
ADDM A,VOLTMP
MOV A,VOLTMP
SZ CARRY
MOV A,0FFH
MOV VOL,A
MOV VOLTMP,A
RET
;------------------------------------------------------------------------------
; FUNCTION : VOLUMEDOWN
; INPUT : NONE
; OUTPUT : NONE
; REMARK :
; DESTROY :
;
;------------------------------------------------------------------------------
VOLUMEDOWN:
_VOLUMEDOWN:
MOV A,0E0H
ADDM A,VOLTMP
MOV A,VOLTMP
SNZ CARRY
MOV A,020H
MOV VOL,A
MOV VOLTMP,A
RET
_VOLUME:
mov a,VOLUME0
swap acc
RL ACC
AND A,0E0H
MOV VOLTMP,A
SZ DAC
MOV VOL,A
RET
ENDIF
;------------------------------------------------------------------------------
; FUNCTION : CLRRAM
; INPUT : NONE
; OUTPUT : NONE
; REMARK :
; DESTROY : ACC, MP0
;------------------------------------------------------------------------------
;_CLRRAM:
;CLRRAM:
_CLRRAM1:
CLRRAM1:
_CLRRAM:
CLRRAM:
MOV A,30H
MOV MP0,A
MOV A,80H-30H
CLR R0
INC MP0
SDZ ACC
JMP $-3
RET
_HT86_INITIALZIATION:
_HT83_INITIALZIATION:
CLR WDT
SET VROMC
CLR INTC.0
SET _FSTANDBY0
set _FVOICEUP
CLR DAC
CLR PWMC
SET VOL
SET voltmp
RET
;------------------------------------------------------------------------------
; FUNCTION : _DAC_RAMP_UP
; INPUT : NONE
; OUTPUT : NONE
; REMARK :
; DESTROY : ACC, TBLP, INTC, MP0, TMR0,TMR1,DAC,DAH,DAL,datacode
;------------------------------------------------------------------------------
voiceup2:
mov a,80h
xor a,PWMH
sz zero
jmp VoiceUpRet
snz PWMH.7
jmp PlusVoiceData
MinusVoiceData:
clr wdt
mov a,DELLOOPCNT ;5
sdz acc
jmp $-1
mov a,0f0h
addm a,PWML
mov a,0ffh
adcm a,PWMH
snz PWMH.7
jmp VoiceUpRet
jmp MinusVoiceData
Ch1VoiceUp:
_DAC_RAMP_UP:
_VOICEUP:
CLR _SPECIAL_JUMP_AT_RAMPUP
CLR _BACK_INTC_0
SZ INTC.0
SET _BACK_INTC_0
CLR INTC.0
_VOICEUP_DOWNIN_:
sz PWMC
jmp Ch1VoiceUp1
set vol
SZ PWMCR.3
jmp _VOICEUP1
clr PWML
mov a,80h
mov PWMH,a
mov A,05H
mov PWMCR,a
jmp Ch1VoiceUp1
_VOICEUP1:
clr PWML
clr PWMH
mov A,0DH
mov PWMCR,a
Ch1VoiceUp1:
mov a,voltmp
mov DataCode,a
mov a,vol
and a,0e0h
sz acc
jmp voiceup2
set vol
PlusVoiceData:
MOV A,VOL
MOV VOL,A
set PWMC
voiceup1:
clr wdt
mov a,DELLOOPCNT-1 ;4
sdz acc
jmp $-1
sz PWMH.7
jmp VoiceUpRet
mov a,10h
addm a,PWML
mov a,0
adcm a,PWMH
jmp VoiceUp1
VoiceUpRet:
clr PWML
mov a,80h
mov PWMH,a
mov a,Datacode
mov vol,a
clr _FVOICEUP
SZ _SPECIAL_JUMP_AT_RAMPUP
JMP _VOICEUP_DOWNIN_RET
SZ _BACK_INTC_0
SET INTC.0
ret
;------------------------------------------------------------------------------
; FUNCTION : _DAC_RAMP_DOWN
; INPUT : NONE
; OUTPUT : NONE
; REMARK :
; DESTROY : ACC, TBLP, INTC, MP0, TMR0,TMR1,DAC,DAH,DAL,datacode
;------------------------------------------------------------------------------
Pvoicedown:
Voicedown:
_DAC_RAMP_DOWN:
_VOICEDOWN:
CLR FSTOP
CLR TMR0C.4
CLR CONTROLCODE
MOV A,5BH;33H
ANDM A,INTC
SNZ PWMC
RET
CLR _BACK_INTC_0
SZ INTC.0
SET _BACK_INTC_0
CLR INTC.0
SET _SPECIAL_JUMP_AT_RAMPUP
voicedwn2:
mov a,80h
XOR a,PWMH
sz acc
JMP _VOICEUP_DOWNIN_ ;call Ch1VoiceUp
_VOICEUP_DOWNIN_RET:
clr datacode
set vol
SNZ PWMCR.3
JMP voicedwn3
voicedwn1:
clr wdt
mov a,DELLOOPCNT-1 ;4
sdz acc
jmp $-1
nop
mov a,0f0h
addm a,PWML
mov a,0ffh
adcm a,PWMH
sz PWMH
jmp voicedwn1
sz PWML
jmp voicedwn1
voicedwn3:
SZ _BACK_INTC_0
SET INTC.0
set _FSTANDBY0
clr PWMC
ret
SEC_FUNCCHECKSUM .section at 04c0h 'code'
#DEFINE _PAGE_TEMP [7FH]
_FUNCCHECKSUM:
;;;;; PROGRAM
CLR WDT
CLR WDT2
set VROMC
CLR LATCH0H
CLR LATCH0M
CLR LATCH0L
CLR TBLP
CLR _PAGE_TEMP
CLR PCM1addrCL ;; FOR CHECKSUM
CLR PCM1addrCM ;; FOR CHECKSUM
_FUNCCHECKSUM1:
CALL READ_PROGRAM
ADDM A,PCM1addrCL
MOV A,TBLH
ADCM A,PCM1addrCM
SIZ TBLP
JMP _FUNCCHECKSUM1
INC _PAGE_TEMP
SNZ _PAGE_TEMP.ROMSIZE
JMP _FUNCCHECKSUM1
;;;;;;; VROM
CHECKV:
MOV A,LATCHD
CALL INCADDRV
ADDM A,PCM1addrCL
MOV A,LATCHD
ADCM A,PCM1addrCM
siz Latch0L
JMP CHECKV
siz Latch0M
JMP CHECKV
inc Latch0H
MOV A,Latch0H
XOR A,VROMENDADDRESS>>16
SZ ACC
JMP CHECKV
MOV A,PCM1addrCL
OR A,PCM1addrCM
RET
INCADDRV:
siz Latch0L
RET
siz Latch0M
RET
inc Latch0H
RET
READ_PROGRAM:
MOV A,_PAGE_TEMP
ADDM A,PCL
JMP Checksum1
JMP Checksum2
JMP Checksum3
JMP Checksum4
JMP Checksum5
JMP Checksum6
JMP Checksum7
JMP Checksum8
;PROMCHECKSUM1 .section at 00FEH 'code'
;Checksum1:
; tabrdc acc
; ret
;;Free Rom Size here 100H ~ 1FDH
;
;
;
;PROMCHECKSUM2 .section at 01FEH 'code'
;Checksum2:
; tabrdc acc ; DON'T CHANGE ADDRESS
; ret ; DON'T CHANGE ADDRESS
;;Free Rom Size here 200H ~ 2FDH
;
;
;
;PROMCHECKSUM3 .section at 02FEH 'code'
;Checksum3:
; tabrdc acc ; DON'T CHANGE ADDRESS
; ret ; DON'T CHANGE ADDRESS
;;Free Rom Size here 300H ~ 3FDH
PROMCHECKSUM4 .section at 03FEH 'code'
Checksum4:
tabrdc acc ; DON'T CHANGE ADDRESS
ret ; DON'T CHANGE ADDRESS
;Free Rom Size here 400H ~ 4FDH
PROMCHECKSUM5 .section at 04FEH 'code'
Checksum5:
tabrdc acc ; DON'T CHANGE ADDRESS
ret ; DON'T CHANGE ADDRESS
;Free Rom Size here 500H ~ 5FDH
PROMCHECKSUM6 .section at 05FEH 'code'
Checksum6:
tabrdc acc ; DON'T CHANGE ADDRESS
ret ; DON'T CHANGE ADDRESS
;Free Rom Size here 600H ~ 6FDH
PROMCHECKSUM7 .section at 06FCH 'code'
Checksum7:
tabrdc acc ; DON'T CHANGE ADDRESS
ret ; DON'T CHANGE ADDRESS
Checksum8:
tabrdl acc ; DON'T CHANGE ADDRESS
ret ; DON'T CHANGE ADDRESS
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -