📄 ct0hslcd1.src
字号:
F_CID2MEM EQU FLAG22.1 ; FLAG FOR SAVING CID RECORD TO MEMORY
F_ENDOFLIST EQU FLAG22.2 ; FLAG FOR INDICATION END OF LIST IN IN CBR MODE
F_MBRMODE EQU FLAG22.3 ; CONSULTING MEMORY MODE STATUS INDICATOR
FLAG23 EQU 9DH
F_CMPENABLE EQU FLAG23.0 ; 1 = ENABLE FIRST CHAR COMPARISON WITH REF_CHAR
F_RX0CID_OLD EQU FLAG23.1
F_CIDOK EQU FLAG23.2 ; CID PACKET RECEIVED SUCCESSFULLY
F_CIDSCRN EQU FLAG23.3 ; 4.5 sec CID SCREEN CLEAR UP FLAG
T_RXCID EQU 9EH ; 1 NIB, 1.5sec TIMER FOR RECEIVING CID
FLAG24 EQU 9FH
F_CIDHEADOK EQU FLAG24.0 ; TELL MAIN PROG. CID HEADER IS RECEIVED
F_RXCID EQU FLAG24.1 ; CID HEAD RECEIVED,WAIT FOR F_CIDOK / T_RXCID TIMEOUT
F_TMPRES EQU FLAG24.2 ; 1=TOP MESSAGE PRESENT
F_ENVEFLASH EQU FLAG24.3 ; 1=FLASH ENVELOP ICON
T_CIDSCRN EQU 0A0H ; 2 NIB, 4.5sec CID SCREEN CLEAR UP TIMER
T_ENVEFLASH EQU 0A2H ; 1 NIB, TIMER FOR FLASHING ENVELOP ICON
FLAG25 EQU 0A3H
F_CIDMUTE EQU FLAG25.0 ; NOW CHANGED TO DEFAULT CHANNEL
;F_PBKMATCH EQU FLAG25.1 ; 1=PHONEBOOK MATCH DURING CID BRWSE MODE
F_ANSSMODE EQU FLAG25.1 ; ANSWERER SETTING MODE
F_CIDRECV EQU FLAG25.2 ; 1=CID DATA RECEIVED SUCCESSFULLY
F_NOMSG EQU FLAG25.3 ; 1=NO MESSAGE IN DSP
; RAM BANK 1 ALLOCATION =======================================================
DIAL_BUF EQU 00 ; DIAL BUFFER (40NIB, 100h~127h)
RDIAL_BUF EQU DIAL_BUF+BUFLEN ; REDIAL BUFFER (40NIB, 128h~14Fh)
NAMEMEM EQU RDIAL_BUF+BUFLEN ; NAME MEMORY (20NIB FOR NAME, 150h~163h)
NUMBMEM EQU NAMEMEM+20 ; NUMBER MEMORY (20NIB FOR DIGIT 164h~177h)
LCD_BUFFER EQU NUMBMEM+20 ; LCD BUFFER (32NIB, 178H~197H)
LCD_BUF2 EQU LCD_BUFFER+32 ; LCD BUFFER 2 (24NIB, 198H~1AFH)
CID_BUF EQU LCD_BUF2+24 ; CID BUFFER (28NIB, 1B0H~1CBH)
DIGIT_BUF EQU CID_BUF+8 ; DIGITS BUFFER (20NIB, 1B8H~1CBH)
CID_COUNT EQU CID_BUF+6 ; CALL COUNTER ( 2NIB, 1B6H~1B7H)
CID_BUF2 EQU CID_BUF+28 ; CID BUFFER 2 (28NIB, 1CCH~1E7H)
NAMEMEM2 EQU CID_BUF2 ; NAME MEMORY 2 (20NIB FOR NAME, 1CCH~1DFH)
CID_PHONE_IN EQU CID_BUF2 ; CID phone info area
CID_HOUR_IN EQU CID_PHONE_IN+20 ; CID time info area
CID_MONTH_IN EQU CID_PHONE_IN+21
CID_DATE_IN EQU CID_PHONE_IN+22
CID_MSB_IN EQU CID_PHONE_IN+23
CID_MINUTE_IN EQU CID_PHONE_IN+24
CID_STATUS_IN EQU CID_PHONE_IN+25
CID_CHKSUM_IN EQU CID_PHONE_IN+26
CID_CHKSUM1_IN EQU CID_PHONE_IN+27
CID_READ EQU CID_BUF2+28 ; READ LOG FLAG ( 1NIB, 1E8H )
CID_MONTH EQU CID_READ+1 ; MONTH ( 1NIB, 1E9H )
CID_DATE EQU CID_MONTH+1 ; DATE ( 2NIB, 1EAH~1EBH)
CID_HOUR EQU CID_DATE+2 ; HOUR ( 2NIB, 1ECH~1EDH)
CID_MINUTE EQU CID_HOUR+2 ; MINUTE ( 2NIB, 1EEH~1EFH)
MARK_BUF EQU CID_MINUTE+2 ; MARK BUFFER ( 8NIB, 1F0H~1F7H)
CID_STATUS EQU MARK_BUF+8 ; CID STATUS ( 1NIB, 1F8H~1F8H)
CID_STATUS2 EQU CID_STATUS+1 ; CID STATUS 2 ( 1NIB, 1F9H~1F9H)
CID_CURREC EQU CID_STATUS2+1 ; CUR. REC. NO. ( 2NIB, 1FAH~1FBH)
CID_STATUS1_IN EQU CID_CURREC+2 ; CID STAUTS1 ( 2NIB, 1FCH~1FDH)
CID_SWITCHTMR EQU CID_STATUS1_IN+2 ; CID SCREEN SWITCH TIME (2NIB, 1FEH~1FFH)
CID_ANSWERED_IN EQU CID_STATUS1_IN.0
CID_ENVEFLASH EQU CID_STATUS1_IN.1
CID_NOVOICE EQU CID_STATUS1_IN.2 ; 1 = NO VOICE MESSAGE ASSOCIATED WITH CALLER ID
CID_SUCCESS EQU CID_STATUS.0
CID_NUMBER_RCV EQU CID_STATUS.1
CID_NOTIFY EQU CID_STATUS.2
CID_ACT_DEACT EQU CID_STATUS.3
CID_ANSWERED EQU CID_STATUS2.0
; MEMORY ALLOCATION ===========================================================
; LCD BUFFER 32 NIBBLES BANK 1 [E0H-FFH]
; 12 CHARACTERS : 24 NIBBLES
; 8 DIGITS : 8 NIBBLES
; @ 32 NIBBLES
; LCD BUFFER MEMORY MAP (BANK 1)===============================================
; ADDR LCD SECT. | ADDR LCD SECT. | ADDR LCD SECT. | ADDR LCD SECT.
; 78H CHAR 0 LN | 82H CHAR 5 LN | 8CH CHAR 10 LN | 96H 7SEG 6
; 79H CHAR 0 HN | 83H CHAR 5 HN | 8DH CHAR 10 HN | 97H 7SEG 7
; 7AH CHAR 1 LN | 84H CHAR 6 LN | 8EH CHAR 11 LN |
; 7BH CHAR 1 HN | 85H CHAR 6 HN | 8FH CHAR 11 HN |
; 7CH CHAR 2 LN | 86H CHAR 7 LN | 90H 7SEG 0 | I.E.
; 7DH CHAR 2 HN | 87H CHAR 7 HN | 91H 7SEG 1 | LN - LOWER NIBBLE
; 7EH CHAR 3 LN | 88H CHAR 8 LN | 92H 7SEG 2 | HN - HIGHER NIBBLE
; 7FH CHAR 3 HN | 89H CHAR 8 HN | 93H 7SEG 3 |
; 80H CHAR 4 LN | 8AH CHAR 9 LN | 94H 7SEG 4 |
; 81H CHAR 4 HN | 8BH CHAR 9 HN | 95H 7SEG 5 |
; RAM BANK 14 ALLOCATION (LCD RAM)=============================================
LCDTR_LO EQU 0FEH
LCDTR0 EQU 0FEH.0
LCDTR1 EQU 0FEH.1
LCDTR2 EQU 0FEH.2
LCDTR3 EQU 0FEH.3
LCDTR_HI EQU 0FFH
LCDTR4 EQU 0FFH.0
LCDTR5 EQU 0FFH.1
LCDTR6 EQU 0FFH.2
LCDTR7 EQU 0FFH.3
; EEPROM MEMORY MAP (16384 BITS, 16BITS x 1024 ADDR, 000H-3FFH)================
; PHONEMEM_R0 000H~009H PHONEMEM_R10 064H~06DH PHONEMEM_R20 0C8H~0D1H
; PHONEMEM_R1 00AH~013H PHONEMEM_R11 06EH~077H PHONEMEM_R21 0D2H~0DBH
; PHONEMEM_R2 014H~01DH PHONEMEM_R12 078H~081H PHONEMEM_R22 0DCH~0E5H
; PHONEMEM_R3 01EH~027H PHONEMEM_R13 082H~08BH PHONEMEM_R23 0E6H~0EFH
; PHONEMEM_R4 028H~031H PHONEMEM_R14 08CH~095H PHONEMEM_R24 0F0H~0F9H
; PHONEMEM_R5 032H~03BH PHONEMEM_R15 096H~09FH PHONEMEM_R25 0FAH~103H
; PHONEMEM_R6 03CH~045H PHONEMEM_R16 0A0H~0A9H PHONEMEM_R26 104H~10DH
; PHONEMEM_R7 046H~04FH PHONEMEM_R17 0AAH~0B3H PHONEMEM_R27 10EH~117H
; PHONEMEM_R8 050H~059H PHONEMEM_R18 0B4H~0BDH PHONEMEM_R28 118H~121H
; PHONEMEM_R9 05AH~063H PHONEMEM_R19 0BEH~0C7H PHONEMEM_R29 122H~12BH
;
; SOS_NUMBER 1F8H~1FCH
; (CALLER ID LOG IN EEPROM)
; CID_R0 200H~206H CID_R17 277H~27DH
; CID_R1 207H~20DH CID_R18 27EH~284H
; CID_R2 20EH~214H CID_R19 285H~28BH
; CID_R3 215H~21BH CID_R20 28CH~292H
; CID_R4 21CH~222H CID_R21 293H~299H
; CID_R5 223H~219H CID_R22 29AH~2A0H
; CID_R6 22AH~230H CID_R23 2A1H~2A7H
; CID_R7 231H~237H CID_R24 2A8H~2AEH
; CID_R8 238H~23EH CID_R25 2AFH~2B5H
; CID_R9 23FH~245H CID_R26 2B6H~2BCH
; CID_R10 246H~24CH CID_R27 2BDH~2C3H
; CID_R11 24DH~253H CID_R28 2C4H~2CAH
; CID_R12 254H~25AH CID_R29 2CBH~2D1H
; CID_R13 25BH~261H
; CID_R14 262H~268H
; CID_R15 269H~26FH
; CID_R16 270H~276H
;
; HANDSET MODEL 3FDH
; HANDSET_ID 3FEH
; COMMON_ID 3FFH
;
; DATA FORMAT OF CID LOG =====================================================
; CID_BUF
; TIME & STATUS [NOTE1] : 6 NIBBLES
; CALLS TIME : 2 NIBBLES
; 20 DIGITS : 20 NIBBLES
; @ 28 NIBBLES
;
; [NOTE 1]
;
; FORMAT OF TIME: | HIGH NIB. | LOW NIB. |
; |B3 B2 B1 B0|B3 B2 B1 B0|
; +-----------+-----------+
; | R M3 M2 M1|M0 D4 D3 D2|<--ADDR OF TIME
; |D1 D0 h4 h3|h2 h1 h0 m5| ADDR OF TIME+2
; |m4 m3 m2 m1|m0 X X X| ADDR OF TIME+4
;
; A = 0 FOR UNANSWERED CALL, 1 FOR ANSWERED CALL
; M = MONTH
; D = DATE
; h = HOUR
; m = MINUTE
; X = RESERVED FOR FUTURE USE
;
; R = 0 FOR UNREAD LOG, 1 FOR READ LOG
; EEPSK_LV - CLOCK BITS TO EEPROM (SHIFT LSB)
; EEPSK_MV - CLOCK BITS TO EEPROM (SHIFT MSB)
; EEP_WEN - ISSUE EEPROM WRITE ENABLE COMMAND
; EEP_WDS - ISSUE EEPROM WRITE DISABLE COMMAND
; EEP_READ - READ 16BIT DATA FROM EEPROM
; EEP_WRITE - WRITE 16BIT DATA TO EEPROM
; INIT_EEPROM - INITIAL EEPROM
; ADDR_EEP - CALCULATE STARTING ADDR OF PHONEBOOK MEMORY IN EEPROM
; EEP2NUM - READ NUMBERS FROM EEPROM
; NUM2EEP - WRITE NUMBERS TO EEPROM
; EEP2NAME - READ NAME FROM EEPROM
; NAME2EEP - WRITE NAME TO EEPROM
; PHONEBK_EPY - FIND PHONEBOOK EMPTY LOCATION
; RAM_COPY - MOVE DATA BETWEEN TWO BANK
; SEL_BANK - SELECT MEMORY BANK ROUTINE
;
; TO_EVENTCHK - CHECKING & PROCESSING OF SUB-ROUTINE TIME OUT EVENT
; SHOW_PDIAL - SHOW DIAL BUFFER ON LCD
; PROCE_BEEP - BEEP TONE ON/OFF PROGRAMMING MODE
; CLEAR_BEEP - CLEAR BEEP TONE ON/OFF PROGRAMMING MODE
; PROCE_CT - CALL TIMER PROGRAMMING MODE
; CLEAR_CT - CLEAR CALL TIMER PROGRAMMING MODE
; PROCE_KEYL - KEY LOCK PROGRAMMING MODE
; CLEAR_KEYL - CLEAR KEYLOCK PROGRAMMING MODE
; PROCE_MP - PHONEBOOK MEMORY PROGRAMMING MODE
; CLEAR_MP - CLEAR PHONEBOOK MEMORY PROGRAMMING MODE
; PROCE_MBR - CONSULTING MEMORY MODE
; CLEAR_MBR - CLEAR CONSULTING MEMORY MODE
; EEP2SOS - READ SOS NUMBER FROM EEPROM
; SOS2EEP - WRITE SOS NUMBER TO EEPROM
; PROCE_SOS - PROGRAM THE SOS NUMBER
; CLEAR_SOS - CLEAR SOS NUMBER PROGRAMMING MODE
; PROCE_MELO - RINGER MELODY & LEVEL SETTING
; CLEAR_MELO - CLEAR CHANGE MELODY MODE
; CLR_NAMEBUF - CLEAR NAME BUFFER
; CLR_NUMBUF - CLEAR NUMBER BUFFER
; HEX2BCD - HEX TO BCD ROUTINE
; BCD2HEX - BCD TO HEX ROUTINE
; SHOW_EEPERR - EEPROM ERROR HANDLING ROUTINE
;
; CLR_LCDBUF - CLEAR LCD BUFFER
; SHLF_LCDBUF - SHIFT LEFT OF LCD BUFFER (CHARACTER SECTION)
; SHRG_LCDBUF - SHIFT RIGHT OF LCD BUFFER (CHARACTER SECTION)
; ON_LCD - TURN ON WHOLE LED SCREEN
; CLR_LCD - CLEAR WHOLE LCD SCREEN
; CLR_CHAR - CLEAR CHARACTER SECTION OF LCD
; CLR_7SEG - CLEAR 7-SEGMENT SECTION OF LCD
; UPDATE_LCD - UPDATE WHOLE LCD DISPLAY
; UPDATE_CH - UPDATE CHARACTER SECTION OF LCD
; UPDATE_7S - UPDATE 7-SEGMENT SECTION OF LCD
; DIS_CHAR - DISPLAY ONE CHARACTER ON LCD
; DIS_7SEG - DISPLAY ONE DIGIT ON LCD
; DIS_MESS - DISPLAY FIXED MESSAGE ON CHARACTER SECTION OF LCD
;
; ON_INUSE - TURN ON IN-USE ICON
; OFF_INUSE - TURN OFF IN-USE ICON
; ON_ENVE - TURN ON ENVELOP ICON
; OFF_ENVE - TURN OFF ENVELOP ICON
; ON_DTAM - TURN ON DTAM ICON
; OFF_DTAM - TURN OFF DTAM ICON
; ON_GRPL - TURN ON GROUP LISTING ICON
; OFF_GRPL - TURN OFF GROUP LISTING ICON
; ON_RINGOFF - TURN ON RINGER OFF ICON
; OFF_RINGOFF - TURN OFF RINGER OFF ICON
; ON_BATTLO - TURN ON BATTLO ICON
; OFF_BATTLO - TURN OFF BATTLO ICON
; ON_MENU - TURN ON MENU ICON
; OFF_MENU - TURN OFF MENU ICON
; ON_KEYLOCK - TURN ON KEYLOCK ICON
; OFF_KEYLOCK - TURN OFF KEYLOCK ICON
; ON_SLASH - TURN ON SLASH ICON
; OFF_SLASH - TURN OFF SLASH ICON
; ON_COL - TURN ON COL ICON
; OFF_COL - TURN OFF COL ICON
;
; MEMORY PAGE : 3B00H - 7-SEGMENT DATA
; - NAME KEYIN CHARACTER LOOKUP TABLE
; 3C00H - LCD FONTS DATA (FIRST SET)
; 3D00H - LCD FONTS DATA (SECOND SET)
; 3E00H - FIXED MESSAGE CODE (FIRST SET)
; 3F00H - FIXED MESSAGE CODE (SECOND SET)
; EXCEPTION VECTORS ===========================================================
ORG 0000H ; NOT RELOCATABLE !!!
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 ; INTS VECTOR
VENT5 1,1,OCCUPIED ; INTT0 VECTOR
VENT6 0,0,INTT1_ISR ; INTT1 VECTOR, MEMORY BANK=000H~07FH, F80H~FFFH, REGISTER BANK=0
VENT7 1,1,UNUSED ; INTK VECTOR
ORG 0010H
TN_PAGE: DB 0FFH,97H,4BH ; 300ms ON, 150ms OFF
DB 0FFH,97H,4BH ; 300ms ON, 150ms OFF
DB 0FFH,97H,00H ; 300ms ON
TN_OFR: DB 9EH,19H ; 60ms ON, 50ms OFF
DB 9EH,00H ; 60ms ON
TN_KEY: DB 92H,00H ; 36ms ON
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -