📄 ct0hslcd1.src
字号:
; Application : TW Cordless Phone CT0 Handset
; Model No. : TWCT0
; Prepared by : Wizard
; Start date : 13/OCT/2000
; Manday used : 3
; Last modified : 18/OCT/2000
; Microcontroller : KS57C21132P 32KB ROM 3KNibble RAM 4MHz Crystal
; MODIFICATION HISTORY FROM S250 MODEL: BY ISAAC CHAN
; - ENABLE GROUP LISTENING KEY TEMPORARILY IN STANDBY MODE FOR TESTING DTAM
; - ENABLE CALLER ID RECEPTION IF THE CID HEAD IS SENT USING UID
; - MUTE RX PATH WHEN CALLER ID IS RECEIVED IN HANDSET REMOTE MODE
; - CALLER ID SCREEN TOGGLE BETWEEN PAGE 1 AND 2 AUTOMATICALLY
; - DISPLAY "EFFACE" WHEN DELETING 1 MESSAGE IN HANDSET REMOTE MODE
; - TURN ON IN-USE ICON WHEN ANSWERED CALLER ID IS RECEIVED IN HANDSET REMOTE MODE
; - USE FLASH/OK KEY TO ENTER DTAM REMOTE MODE
; - USE MENU KEY TO QUIT DTAM REMOTE MODE AND RETURN TO STANDY BY MODE
; - ENABLE H/S CALL SCREENING BY PRESSING GROUP LISTENING KEY DURING H/S REMOTE MODE
; - TURN OFF GROUP LISTENING ICON WHEN USER PRESS TALK KEY DURING DTAM REMOTE MODE
; - IMPLEMENT THE MMI TO ERASE ALL CALLER ID MESSAGES IN DTAM
; - CHANGE MODE WHEN MESSAGE PLAYBACK FINISH IN DTAM REMOTE MODE
; - DISABLE GROUP-LISTENING KEY DURING INTERCOM MODE
; - IMPLEMENT THE MMI TO TURN ON/OFF DAY/TIME STAMP
; - SET DEFAULT VOLUME TO LEVEL 3
; - CHANGE CALLER ID COMMAND CODE TO AVOID COLLISION OF COMMAND CODE
; - CHANGE COMMAND CODE TO DIFFERENTIATE AMONG S350 B/U AND OTHER MODELS DURING REGISTRATION
; - CHANGE CALLER ID TYPE II RECEPTION TO SINGLE-HANDSET MODE
; - USE "FLASH" AND "GROUP LIS" KEY TO ENTER DTAM REMOTE MODE FOR S350 ANS S300 BASE RESPECTIVELY
; - USE "MENU" AND "GROUP LIS" KEY TO QUIT DTAM REMOTE MODE FOR S350 AND S300 BASE RESPECTIVELY
; - MOVE MENU ITEM "MEMORISER" AND "MEM MODIFIER" TO MAIN MENU
; - DISABLE "REPONDEUR" MENU ITEM FOR S200, S300 AND S250 BASE UNITS
; - CHANGE MESSAGE TABLE ITEM "BASE APPEL" TO "BASE APPELLE"
; - CHANGE MESSAGE TABLE ITEM "MEM MODIFIER" TO "MODIFIER MEM"
; - SHOW PHONE NUMBER IF CALLER ID MATCHING PHONE BOOK RECORD WITHOUT NAME IS RECEIVED
; - FIX BUG WHEN REDIAL KEY IS PRESSED IN TALK MODE AND THERE ARE MORE THAN 40 DIGITS
; - TURN OFF DTAM ICON IF CID IS STORED WITH NO VOICE MESSAGE
; - MUTE HANDSET WHEN SENDING STOP-PLAY-MESSAGE COMMAND TO BASE FOR 1 SECOND
; - USE "FLASH" KEY TO QUIT CALL SCREENING MODE
; - ENABLE CALLER ID CALL BACK IN DTAM REMOTE MODE
; - USE "CANCEL" KEY TO DELETE A SINGLE MESSAGE AND DISABLE PRINTING MESSAGE FOR S300 B/U
; - SHOW DIGITS IN PRE-DIAL BUFFER DURING CALLER ID CALL BACK IN DTAM REMOTE MODE
; - LOCK ON THE CURRENT CHANNEL TEMPORARILY IF ICON_ON/OFF/FLASH OR HS_ATTN COMMAND IS RECEIVED
; - FIG BUG--ENVELOP ICON STOP FLASHING IN CALLER ID BROWSE MODE WHEN REGISTERED TO S250 B/U
; - FIX BUG--KEYLOCK ENABLED AFTER LONG PRESS "EFF" FOLLOWED BY "OK" KEY IN KEYLOCK PROG. MODE
; - QUIT TALK MODE IF H/S IS OUT-OF-RANGE MORE THAN 45 SECONDS
; - MODIFY VIP RING TONE
; - CLEAR PAGE-BASE MODE IF HS_ATTN (CALLER ID) OR RING IS RECEIVED
; - DISABLE SHOWING CALL TIMER IF LCD IS DISPLAYING CALLER ID
; - EXTEND VALID DATA WAITING TIME FROM 35ms TO 80ms IN "SCAN_CHAN" SUBROUTINE
; - MODIFY VALID DATA WAITING TIME FROM 80ms TO 60ms FOR TESTING
; - QUIT CALLER ID BROWSING MODE AUTOMATICALLY AFTER 10s IF NO RECORD IN CALLER ID LOG
; - QUIT PRE-DIALING MODE IF VISUAL INDICATOR OR CALLER ID IS RECEIVED
; - CLEAR ALL MODES AND SHOW "APPEL DE X" IF TRANSFER RING IS RECEIVED
; - FIX BUG--H/S RING AFTER TRANSFER RING TIME-OUT EVEN IF RING-OFF ICON IS ON
; - CLEAR SCREEN AND DISPLAY DTAM ICON IF CID_FAIL COMMAND IS RECEIVED IN H/S REMOTE MODE
; - REFRESH SCREEN IF NO. OF NEW/TOTAL MESSAGES IS RECEIVED FROM B/U
; - DISABLE CANCEL AND LCANCEL IN H/S REMOTE MODE IF NO MESSAGE IN DTAM
; - FIX BUG--H/S DISPLAY NUMBER INSTEAD OF NAME WHEN RECEIVE CALLER ID IF NAME IS 10 CHARACTERS
; - FIX BUG--SKIP DELETING THE 18TH DIGIT IN MEMORY PROGRAMMING MODE
; - FIX BUG--H/S DISPLAY NUMBER INSTEAD OF NAME WHEN RECEIVE CID-CW IF NAME IS 10 CHARACTERS
; - FIX BUG--H/S FAIL TO DISPLAY MESSAGE NUMBER IF THERE ARE 85 (55H) MESSAGES IN DTAM
; - FIX BUG--H/S FAIL TO REGISTER TO B/U WITH COMMON ID = XX55 OR 55XX
; - FIX BUG--H/S FAIL TO DISABLE RING WHEN RING OFF ICON IS ON (SI REPORT Y2K084 ITEM 1)
; - FIX BUG--RING-OFF ICON DO NOT TOGGLE IN TEST MODE WHEN ID IS RECEIVED
; - FIX BUG--H/S DISPLAY "APPEL_______" IF "FLASH" KEY PRESSED IMMEDIATELY AFTER "POP" SOUND IN H/S REMOTE MODE
; - FIX BUG--H/S DO NOT DISPLAY PHONE NO. IF CALL TIMER IS OFF AND TALK KEY PRESSED WHEN BROWSE CALLER ID
; SHOULD CLEAR ALL MODES IF:
; - INCOMING RING IS DETECTED
; - TRANSFER RING IS DETECTED
; - PAGE COMMAND IS DETECTED
; - TALK KEY IS PRESSED (KEEP END_DPTR IF ANY)
; - CHARGE MODE IS ENTERED
; DEF FILE LOCATION IN CHIP DIRECTIVE COULD BE CHANGED ACCORDING TO YOUR OWN PATH
; CHIP \SM2P\INCLUDE\DEF\57C21132.DEF
CHIP C:\OPENICE\INCLUDE\DEF\57C21132.DEF
; RESOURCE ALLOCATED
; TC0:
; USED FOR TONE GENERATION, NO EXCEPTION VECTOR IS NEEDED, OUTPUT SQUAREWAVE
; AT P3.0
; TC1:
; USED FOR SYSTEM INTERRUPT OF 250us INTERVAL, MUST BE KEEP RUNNING AFTER
; STARTUP OR SYSTEM TIME WILL BE STOPPED AND NO TX/RX DATA PACKET IS RESULT
; BSC:
; USED BY INTT1_ISR, FOR TX DATA OPREATION
;
; IN MAIN PROGRAM (WHICH IS CALLED 'FOREGROUND SOFTWARE'), THE FOLLOWING SETTING
; MUST BE KEPT:
; EMB=1, SMB=ANY (BUT KEPT SMB=0 WHEN CALLING ALL MY LIBRARY FUNCTIONS)
; ERB=1, SRB=1 (USE ONLY ONE SET OF REGISTER IN LOCATION 008h-00Fh)
;
; IN INTT1_ISR (WHICH IS CALLED 'BACKGROUND SOFTWARE'), THE FOLLOWING SETTING IS
; USED AND SHOULD NOT BE CHANGED:
; EMB=0, SMB=DON'T CARE (DIRECT ADDRESS = 000h~07Fh, F80h~FFFh)
; ERB=0, SRB=DON'T CARE (REGISTER BANK 0 IS SELECTED BY DEFAULT, 000h~007h)
;
; PAY ATTENTION TO THE STACK SIZE, RESERVE MORE RAM AREA FOR PROGRAM STACK 'COS
; ALL THE FUNCTIONS WILL PUSH THEIR USED REGISTERS INTO STACK IN ORDER NOT TO
; CHANGE THE CALLER'S REGISTER CONTENT.
; COMMUNICATION COMMANDS ======================================================
COMMREQ EQU 10000000B ; COMMUNICATION-REQUEST
MSGINFO EQU 10011000B ; DTAM-MESSAGE-INFO
LINEREQ EQU 00000101B ; LINE-REQUEST
LNREQACK EQU 10000101B ; LINE-REQUEST-ACK
LINESEZ EQU 00000001B ; LINE-SEIZE-REQUEST
LNSEACK EQU 10000001B ; LINE-SEIZE-ACK
INTCOMM EQU 00110000B ; INTERCOM-REQUEST
INTMACK EQU 10110000B ; INTERCOM-ACK
DTAMRMOT EQU 00010100B ; DTAM-REMOTE-REQUEST
DTAMRACK EQU 10010100B ; DTAM-REMOTE-ACK
DTAMMONACK EQU 10110100B ; DTAM-MONITOR-ACK
RINGON EQU 00000100B ; RING-ON
RINGOFF EQU 00000010B ; RING-OFF
HOLDSTART EQU 10000100B ; HOLD-LINE-START
HOLDSTOP EQU 10000010B ; HOLD-LINE-STOP
PAGEREQ EQU 00001101B ; PAGE-REQUEST
RETSTBY EQU 00001100B ; RETURN-TO-STANDBY
OFFGRPL EQU 00001111B ; GROUP LISTENING OFF
ONGRPL EQU 00000011B ; GROUP LISTENING ON
TRANSFER EQU 00001000B ; CALL-TRANSFER-ALL
TRANSFER1 EQU 00001001B ; CALL-TRANSFER-1
TRANSFER2 EQU 00001010B ; CALL-TRANSFER-2
TRANSFER3 EQU 00001011B ; CALL-TRANSFER-3
TRANSACK EQU 10001000B ; CALL-TRANSFER-ALL-ACK
TRANS1ACK EQU 10001001B ; CALL-TRANSFER-1-ACK
TRANS2ACK EQU 10001010B ; CALL-TRANSFER-2-ACK
TRANS3ACK EQU 10001011B ; CALL-TRANSFER-3-ACK
TRANSFAIL EQU 00010000B ; TRANSFER-FAILURE
RINGFROM1 EQU 00010001B ; RING-FROM-1
RINGFROM2 EQU 00010010B ; RING-FROM-2
RINGFROM3 EQU 00010011B ; RING-FROM-3
RINFOREQ EQU 00000110B ; REGISTRATION-INFO-REQUEST
SYSSTATUS2 EQU 00011000B ; 200SYSTEM-STATUS, +1,+2,+4
SYSSTATUS3 EQU 10101000B ; 300SYSTEM-STATUS, +1,+2,+4
;===================================================================
SYSSTATUS25 EQU 00100000B ; 250SYSTEM_STATUS, +1,+2,+4
SYSSTATUS35 EQU 00111000B ; 350SYSTEM_STATUS, +1,+2,+4
;===================================================================
REGISTX2 EQU 00101000B ; REGISTER-AS-200HANDSET-x, +1,+2,+4
REGISTX3 EQU 00011000B ; REGISTER-AS-300HANDSET-x, +1,+2,+4
;===================================================================
REGISTX25 EQU 10101000B ; REGISTER-AS-250HANDSET-x, +1,+2,+4
REGISTX35 EQU 00100000B ; REGISTER-AS-350HANDSET-x, +1,+2,+4
;===================================================================
REGIOKAY EQU 00101000B ; REGISTER-OKAY
UNREGREQ EQU 00111000B ; UNREGISTRATION-REQUEST
ANSWERME EQU 00001110B ; ANSWER-ME
YESHERE EQU 10001110B ; YES-HERE
;HS_ATTN EQU 00011111B ; WAIT-UP HANDSET TO RECEIVE CID
;HS_DEFCH EQU 00101010B ; SWITCH TO DEFAULT CHANNEL
;CID_HEAD EQU 00010101B ; CID DATA FOLLOWS
;CID_FAIL EQU 00011001B ; CID DECODE FAILED
;TM_PRES EQU 10000011B ; TOP-MESSAGE-PRESENT
;TM_ABSE EQU 10001111B ; TOP-MESSAGE-ABSENT
DTINFOREQ EQU 10110111B ; DAY/TIME STAMP ON/OFF INFO REQUEST
ONSTAMP EQU 10000011B ; TURN ON DAY/TIME STAMP OF BASE UNIT
OFFSTAMP EQU 10001111B ; TURN OFF DAY/TIME STAMP OF BASE UNIT
; BIT6=1 MEANS DIGIT COMMAND
; BIT5=E MEANS EVEN PARITY
;===============================================
HS_ATTN EQU 11011111B ; WAKE-UP HANDSET TO RECEIVE CID
;HS_DEFCH EQU 11100110B ; SWITCH TO DEFAULT CHANNEL
CID_HEAD EQU 01010101B ; CID DATA FOLLOWS
CID_FAIL EQU 11011001B ; CID DECODE FAILED
TM_PRES EQU 11100011B ; TOP-MESSAGE-PRESENT
TM_ABSE EQU 01001111B ; TOP-MESSAGE-ABSENT
HS_ORGCH EQU 11101010B ; SWITCH TO ORIGINAL CHANNEL
ICON_ON EQU 01001010B
ICON_OFF EQU 01001100B
ICON_FLASH EQU 01000110B
PLAYFINISH EQU 01111111B ; PLAY FINISHED IN HANDSET REMOTE MODE
ANSSET EQU 10000111B ; ANSWERER SETTING REQUEST
ANSSACK EQU 11000111B ; ANSWERER SETTING ACKNOWLEDGE
STAMPON EQU 11000010B ; DAY/TIME STAMP IS CURRENTLY ON
STAMPOFF EQU 11000001B ; DAY/TIME STAMP IS CURRENTLY OFF
; KEY CODE CONSTANTS ==========================================================
KEY1 EQU 00H ; KEY 1
KEY2 EQU 01H ; KEY 2
KEY3 EQU 02H ; KEY 3
KEY4 EQU 03H ; KEY 4
KEY5 EQU 04H ; KEY 5
KEY6 EQU 05H ; KEY 6
KEY7 EQU 06H ; KEY 7
KEY8 EQU 07H ; KEY 8
KEY9 EQU 08H ; KEY 9
KEY0 EQU 09H ; KEY 0
KEYSTAR EQU 0AH ; KEY *
KEYHASH EQU 0BH ; KEY #
PAUSE EQU 0CH ; PAUSE / redial/pause
TONE EQU 0DH ; TONE
FLASH EQU 0EH ; FLASH / flash/new
TALK EQU 10H ; TALK / talk
;MEM EQU 11H ; MEM / not used
MUTE EQU 12H ; MUTE / edit/mute/save
CHANL EQU 13H ; CHANNEL / channel/quit
;;REDL EQU 14H ; REDIAL / not used
;GROUPL EQU 15H ; GROUP LISTEN / not used
;HOLD EQU 16H ; HOLD/MUTE / not used
MENU EQU 18H ; MENU / menu/okay
BKWARD EQU 19H ; BACKWARD / <</vol-
FRWARD EQU 1AH ; FORWARD / >>/vol+
;VOLUP EQU 1BH ; VOLUME UP / not used
;VOLDN EQU 1CH ; VOLUME DOWN / not used
DELETE EQU 1DH ; CANCEL / clear/delete
;SOS EQU 1EH ; SOS / not used
LDELETE EQU 2FH ; 2sec CANCEL / Lclear/Ldelete
;LSOS EQU 30H ; 2sec SOS / not used
; KEYPAD MATRIX CONFIGURATION =================================================
; +------+------+------+------+------+------+------+
; | P8.0 | P8.1 | P8.2 | P8.3 | P9.0 | P9.1 | P9.2 |
; |KYOUT1|KYOUT2|KYOUT3|KYOUT4|KYOUT5|KYOUT6|KYOUT7|
; +------------+------+------+------+------+------+------+------+
; | P6.0/KYIN1 | 1 | 5 | 9 |REDIAL|CHANL | SOS | VOL+ |
; +------------+------+------+------+------+------+------+------+
; | P6.1/KYIN2 | 2 | 6 | * | |FLASH | MEM | VOL- |
; +------------+------+------+------+------+------+------+------+
; | P6.2/KYIN3 | 3 | 7 | 0 |GROUPL| TALK | << |CANCEL|
; +------------+------+------+------+------+------+------+------+
; | P6.3/KYIN4 | 4 | 8 | # | HOLD | MENU | >> | |
; +------------+------+------+------+------+------+------+------+
; +------+------+------+--------------+---------+------------+
; | P8.0 | P8.1 | P8.2 | P8.3 | P9.0 | P9.1 |
; |KYOUT1|KYOUT2|KYOUT3|KYOUT4 |KYOUT5 |KYOUT6 |
; +------------+------+------+------+--------------+---------+------------+
; | P6.0/KYIN1 | 1 | 5 | 9 |Redial/Pause |<< /Vol.-|Channel/Quit|
; +------------+------+------+------+--------------+---------+------------+
; | P6.1/KYIN2 | 2 | 6 |*/Tone|Clear/Delete |>> /Vol.+| |
; +------------+------+------+------+--------------+---------+------------+
; | P6.2/KYIN3 | 3 | 7 | 0 |Flash/New |Talk | |
; +------------+------+------+------+--------------+---------+------------+
; | P6.3/KYIN4 | 4 | 8 | # |Edit/Mute/Save|Menu/Okay| |
; +------------+------+------+------+--------------+---------+------------+
;
; PROGRAM CONSTANTS ===========================================================
TN2049 EQU 60 ; 2049Hz TONE VALUE
TN1984 EQU 62 ; 1984Hz TONE VALUE
TN1894 EQU 65 ; 1894Hz TONE VALUE
TN1760 EQU 70 ; 1760Hz TONE VALUE
TN1506 EQU 82 ; 1506Hz TONE VALUE
TN1302 EQU 95 ; 1302Hz TONE VALUE
TN1087 EQU 114 ; 1087Hz TONE VALUE
TN905 EQU 137 ; 905Hz TONE VALUE
TN744 EQU 167 ; 744Hz TONE VALUE
TN694 EQU 179 ; 694Hz TONE VALUE
TN641 EQU 194 ; 641Hz TONE VALUE
RTN1OFF EQU 0000B ; RING TONE 1 OFF
RTN1LOW EQU 0100B ; RING TONE 1 LOW
RTN1MID EQU 1000B ; RING TONE 1 MID
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -