📄 ct0bu05.src
字号:
CID_MINUTE_AREA_H EQU 0D7H ;
CID_NUM_LEN EQU 0D8H ; CID number length
CID_NUM_LEN_H EQU 0D9H ;
;CID_TIMER_8MS EQU 0DAH ; CID timer (4 unit of 2ms)
;CID_TIMER_8MS_H EQU 0DBH ;
;F_PRERING EQU CID_STATUS_FLAG.0 ; Preliminary ring comes
SMMR_VALID EQU CID_STATUS_FLAG.1 ; Validity of SMMR rec.
FSK_DATA_READY EQU CID_STATUS_FLAG.2 ; FSK data ready in CPTR
CID_TEST_NEG EQU CID_STATUS_FLAG.3 ; General test result
CID_STORED EQU CID_STATUS_FLAG1.0 ; CID number is stored
F_SDMF EQU CID_STATUS_FLAG1.1 ; SDMF DATE/TIME/CID MSG TYPE <<< MARCO 001023 >>>
F_SMSG EQU CID_STATUS_FLAG1.2 ; SDMF MESSAGE WAITING MSG TYPE <<< MARCO 001023 >>>
F_SDMF_NOCID EQU CID_STATUS_FLAG1.3 ; SDMF DATE/TIME/NO CID MSG TYPE <<< MARCO 001024 >>>
;CID_SUCCESSFUL EQU CID_STATUS_FLAG1.3 ; CID received successfully
CID_ZEROLEN_ID EQU CID_ERRLIST.0 ; zero-length ID
CID_ZERO_TOTALEN EQU CID_ERRLIST.1 ; zero total length
CID_CHECKSUM_ERR EQU CID_ERRLIST.2 ; Checksum error
CID_SMSG_ERRLEN EQU CID_ERRLIST.3 ; <<< MARCO 001023 SMSG LENGTH ERROR !=3 >>>
CID_DATE_MSB EQU CID_DATE_AREA_H.0
CID_HOUR_MSB EQU CID_HOUR_AREA_H.0
; EXCEPTION VECTORS ===========================================================
ORG 0000H
VENT0 1,1,RESET ; RESET VECTOR, MEMORY BANK=SMB, REGISTER BANK=1
VENT1 1,1,UNUSED ; INTB/INT4 VECTOR
VENT2 1,1,UNUSED ; INT0 VECTOR
VENT3 1,1,UNUSED ; INT1 VECTOR
VENT4 1,1,UNUSED ; RESERVED
VENT5 1,1,UNUSED ; INTT0 VECTOR
VENT6 0,0,INTT1_ISR ; INTT1 VECTOR, MEMORY BANK=000H~07FH, F80H~FFFH, REGISTER BANK=0
VENT7 1,1,UNUSED ; RESERVED
ORG 0020H
SEL_0 SMB 0
SEL_1 SMB 1
SEL_2 SMB 2
SEL_15 SMB 15
PUSHSB PUSH SB
POPSB POP SB
ZERO2EA LD EA,#00H
INCSEA ADS EA,#01H
DECSEA DECS EA
EA2T_MUTE LD T_MUTE,EA
T_MUTE2EA LD EA,T_MUTE
EA2TX_CMD LD TX_CMD,EA
SKEAEQHL CPSE EA,HL
SET1TX TCALL ST1TX
SET5TX TCALL ST5TX
SET10TX TCALL ST10TX
SET15TX TCALL ST15TX
SETCTX TCALL STCTX
STOP_TX TCALL STP_TX
STOP_RING TCALL RING_STOP
OFFLED TCALL LEDOFF
ONLED TCALL LEDON
FLHPHONE TCALL FH_PHONE
TIMRDEC TCALL TMRSDEC
ACTI_MODE TCALL MODE_ACTIVE
RT_RF_MODE TCALL MODE_RT_RF
R_RF_MODE TCALL MODE_R_RF
CLKDATA TCALL SPI
LODCODE TCALL LCODE
KEYTONE TCALL G_KEYTN
CHK_RING TCALL DETECTRING
EEP_BUFTOEA LD EA,EEP_BUFFER
EEP_BUFP2TOEA LD EA,EEP_BUFFER+2
EEPREAD TCALL EEP_READ
WAITTXOVER TCALL WAITXOVR
ORG 0080H ; NOT RELOCATABLE !!!
;REFREG: DB 1784*4,(1784*4)/256 ; FRENCH REF. @6250Hz w/11.15MHz
REFREG: DB 2048*4,(2048*4)/256 ; USA REF. @5000Hz w/10.24MHz
; HANDSET PLL TABLE (SAME AS THAT IN MOTOROLA MC13109 DATA BOOK)
; PLL TABLE CAN BE CHANGED IN ORDER TO REARRANGE THE CHANNEL SEQUENCE
PLLTXRX: DB 9322,9322/256,7795,7795/256 ; CH1 46.610
DB 9326,9326/256,7830,7830/256 ; CH2 46.630
DB 9334,9334/256,7833,7833/256 ; CH3 46.670
DB 9342,9342/256,7815,7815/256 ; CH4 46.710
DB 9346,9346/256,7836,7836/256 ; CH5 46.730
DB 9354,9354/256,7827,7827/256 ; CH6 46.770
DB 9366,9366/256,7839,7839/256 ; CH7 46.830
DB 9374,9374/256,7847,7847/256 ; CH8 46.870
DB 9386,9386/256,7859,7859/256 ; CH9 46.930
DB 9394,9394/256,7855,7855/256 ; CH10 46.970
TN_OFR: DB 9EH,19H ; 60ms ON, 50ms OFF
DB 9EH,00H ; 60ms ON
TN_KEY: DB 94H,00H ; 40ms ON
TN_SUCC: DB 0FFH,0FFH ; 1000ms ON
DB 0FFH,0F7H,00H
TN_PAGE: DB 0FFH,97H,4BH ; 300ms ON, 150ms OFF
DB 0FFH,97H,4BH ; 300ms ON, 150ms OFF
DB 0FFH,97H,00H ; 300ms ON
KCODE: DB KEY1 ; KEY 1
DB KEY2 ; KEY 2
DB KEY3 ; KEY 3
DB KEY4 ; KEY 4
DB KEY5 ; KEY 5
DB KEY6 ; KEY 6
DB KEY7 ; KEY 7
DB KEY8 ; KEY 8
DB KEY9 ; KEY 9
DB KEYSTAR ; KEY *
DB KEY0 ; KEY 0
DB KEYHASH ; KEY #
DB PAUSE ; PAUSE/REDIAL
DB TONE ; TONE
DB GROUPL ; GROUP LISTEN
DB HOLD ; HOLD/INTERCOM
DB CHANL ; CHANNEL
DB FLASH ; FLASH/PLAY
DB TALK ; TALK
DB MEM ; MEM
DB SOS ; SOS
DB MENU ; MENU
DB BKWARD ; BACKWARD
DB FRWARD ; FORWARD
DB VOLUP ; VOL UP
DB VOLDN ; VOL DOWN
DB CANCEL ; CANCEL
DB TONE ; TONE
LCODE: LDC EA,@EA
RET
; ENTER CHARGE DETECTION ROUTINE ==============================================
; CHGENTDET: CHARGE MODE ENTERING DETECTION (DEBOUNCED)
; RETURN IF CHARGE MODE IS ENTERED
; RETURN SKIP IF CHARGE MODE IS NOT DETECTED
; TMRSDEC ROUTINE MUST BE CALLED IN ALL LOOPS IN ORDER TO KEEP CHGENTDET WORKS
; e.g.
; CALL CHGENTDET
; JPS CHG_MODE
; GO ON NEXT PROCESS
; :
;
; INPUT : NONE
; OUTPUT: NONE
; A IS CHANGED AT RETURN
;CHGENTDET: LD A,CHGCNT
; ADS A,#0BH ; ENTER CHARGE MODE WHEN CHGCNT=5
; SRET
; RET
; QUIT CHARGE DETECTION ROUTINE ===============================================
; CHGQUIDET: CHARGE MODE QUITING DETECTION (DEBOUNCED)
; RETURN SKIP IF CHARGE MODE IS QUITED
; RETURN IF CHARGE MODE IS NOT QUITED
; TMRSDEC ROUTINE MUST BE CALLED IN ALL LOOPS IN ORDER TO KEEP CHGQUIDET WORKS
; e.g.
; CALL CHGQUIDET
; JPS CHG_QUIT
; GO ON NEXT PROCESS
; :
;
; INPUT : NONE
; OUTPUT: NONE
; A IS CHANGED AT RETURN
;CHGQUIDET: LD A,CHGCNT
; DECS A ; QUIT CHARGE MODE WHEN CHGCNT=0
; RET
; SRET
; SETUP TRANSMISSION DATA PARAMETERS ==========================================
; ST_1TX: ISSUE COMMAND TO TRANSMIT 1 DATA PACKET ONLY, e.g. "REF SET1TX"
; ST_5TX: ISSUE COMMAND TO TRANSMIT 5 DATA PACKETS, e.g. "REF SET5TX"
; ST_10TX: ISSUE COMMAND TO TRANSMIT 10 DATA PACKETS, e.g. "REF SET10TX"
; ST_15TX: ISSUE COMMAND TO TRANSMIT 15 DATA PACKETS, e.g. "REF SET15TX"
; ST_CTX: ISSUE COMMAND TO TRANSMIT DATA PACKET CONTINUOUSLY, e.g. "REF SETCTX"
; INPUT : NONE
; OUTPUT: F_TXREP,F_START1,F_TXIDNOW,F_TXMODE,F_ENDTX,TX_CNT
; NO REGISTER IS CHANGED AT RETURN
STCTX: PUSH EA
BITS F_TXREP ; SETUP TX PACKET REPEATLY
LD A,#0FH
JR SETCCTX
ST15TX: PUSH EA
LD A,#1H ; SETUP TX 15 PACKETS
JR SETTX
ST10TX: PUSH EA
LD A,#6H ; SETUP TX 10 PACKETS
JR SETTX
ST5TX: PUSH EA
LD A,#0BH ; SETUP TX 5 PACKETS
JR SETTX
ST1TX: PUSH EA
LD A,#0FH ; SETUP TX 1 PACKET
SETTX: BITR F_TXREP
SETCCTX: LD TX_CNT,A ; LOAD PACKET COUNTER
;##############################################################################
REF ZERO2EA
LD CID_PTR,EA ; NO TBUF_H/TBUF_L UPDATED BY TMRSDEC IS NECESSARY
;##############################################################################
BTSF F_TKMODE
CALLS MUTETX ; MUTE TX AUDIO IF IN TALK MODE
BITS F_START1 ; SEND DUMMY BITS FIRST
BITS F_TXIDNOW ; SEND I.D. BEFORE COMMAND
BITS F_TXMODE ; TRANSMISSION IN PROGRESS NOW!
BITR F_ENDTX
POP EA
RET
; STOP DATA TRANSMISSION ======================================================
; STP_TX: STOP TX DATA PACKET JOB IMMEDIATELY BY RESETING ALL CONTROL PARAMETERS
; e.g.
; REF STOP_TX
; INPUT : NONE
; OUTPUT: F_TXMODE,F_ENDTX,T_MUTE,F_RELMUTE
; NO REGISTER IS CHANGED AT RETURN
STP_TX: PUSH EA
BITR F_TXMODE ; DATA PORT WILL BE RESUME NORMINAL
BITR F_ENDTX ; CLEAR END OF TRANSMISSION FLAG
BITR F_NOTXSYNC ; ENABLE SYNC BIT
BITS F_RELMUTE ; SET MUTE RELEASE FLAG
LD EA,#7
BTSF F_TKMODE
REF EA2T_MUTE ; EXTEND 42ms MUTE TIME AFTER TX DATA
LD EA,TID_H ; RELOAD I.D. TO BSC
;################################################################################
LD TBUF_H,EA ; TBUF_H REPLACE TID_H IN TX DATA ROUTINE
;################################################################################
REF SEL_15
LD BSC2,EA
REF SEL_0
LD EA,TID_L
;################################################################################
LD TBUF_L,EA ; TBUF_L REPLACE TID_L IN TX DATA ROUTINE
;################################################################################
REF SEL_15
LD BSC0,EA
REF SEL_0
POP EA
RET
LOD_CID: REF PUSHSB
PUSH EA
REF SEL_0
LD EA,CID_H ; BSC0,1,2,3 <-- CID
LD TID_H,EA
REF SEL_15
LD BSC2,EA
REF SEL_0
LD EA,CID_L
LD TID_L,EA
REF SEL_15
LD BSC0,EA
;POP EA
;REF POPSB
;RET
JPS LOD_RET
LOD_UID1: REF PUSHSB
PUSH EA
REF SEL_0
LD EA,UID1_H ; BSC0,1,2,3 <-- UID1
LD TID_H,EA
REF SEL_15
LD BSC2,EA
REF SEL_0
LD EA,UID1_L
LD TID_L,EA
REF SEL_15
LD BSC0,EA
;POP EA
;REF POPSB
;RET
JPS LOD_RET
LOD_UID2: REF PUSHSB ; <<< MARCO 001019 >>>
PUSH EA
REF SEL_0
LD EA,UID2_H ; BSC0,1,2,3 <-- UID2
LD TID_H,EA
REF SEL_15
LD BSC2,EA
REF SEL_0
LD EA,UID2_L
LD TID_L,EA
REF SEL_15
LD BSC0,EA
;POP EA
;REF POPSB
;RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -