?? rem.asm
字號:
RET
NEWK_D: ; KDTIME<>0 -> NO DELAY New Key No Time Offset Delay
CLR KDTIME
RET
; === Send Remote Code ===
SEND_REMOTE_CODE:
CLR WDT ; CHECK VALIDITY KEY
SZ SENDBIT
JMP READY_SEND
RET
; ==== M3010 PHILIPS.FORMAT (Remote 64KEY) OSC:429KHz CARRY:36KHz
; ** HT48RA0A 455K T1=4/455K=8.791US
; ** 4P30 432K(CAR=1/12Fosc=36K 25%ZKB) 1BIT=3X2(8)X1/432K=1.778MS
READY_SEND:
MOV A,NOWKEY ; READ KEY DATA
MOV TBLP,A ; TABLE LOW 8BIT ADR
TABRDL REM_DATCODE ; LAST PAGE 0300H; RL REM_DATCODE; RL REM_DATCODE
MOV A,TBLH ; UP:REM_DATCODE=6BIT DATA ,THIS IS READ 5BIT SYSTEM CODE
RL ACC
RL ACC
RL ACC
MOV REM_SYSCODE,A ; SAVE AS SYSCODE
; SZ REM_SYSCODE.0
; JMP REMOTECAR ; 4ge 500hz(3/4)&n(REM_DATCODE) ge 1khz(1/2)
SNZ RepeatBIT
INC CONBIT_DAT ; CONBIT_DAT.0= 1&0 REPEAT=0(NEW KEY)
RL REM_DATCODE
RL REM_DATCODE
; == Starting send M3010 Remote code ==
SEND_M3010: ; REPEAT=1 OR 0 110 00000 001101 --> 111 00000 001101
SIZA REM_DATCODE ; +1-> A CHECK NO KEY CODE 0FFH
JMP SAT_BIT1
RET
; ***** 4 ge 500hz(3low1high) rem_datcode ge 1k(1/2) total 6cycle
;REMOTECAR:
; MOV A,00AH
; SNZ REM_DATCODE.6 ; Ge 1Khz fa 4cycle
; JMP TOGETH ; =0 10 Cycle
; MOV A,008D ; 8 cycle
; TOGETH:
; MOV RAMD,A
; STACAR: CLR WDT
; SZ RepeatBIT
; JMP CAREND
; MOV A,REM_DATCODE
; MOV RAMB,A ; n ge 1kHz
; MOV A,004D ; 4 ge 500hz
; MOV RAMC,A
; FA500HZ:
; SET REM ; NO Fa
; MOV A,58D ; JISHOU 1.5MS HIGH
; YS150MS:
; SDZ ACC
; JMP YS150MS ; [3*(A-1)+2+2] * 4/455 =1500 fact=1485.7(56D)
; CLR WDT
; CLR REM ; YES FA WDT 2048X8.79US=18MS
; MOV A,16D
; YS500MS:
; SDZ ACC
; JMP YS500MS ; [3*(A-1)+2+5] * 4/455 =500 fact=509.9+8.79(18D)
; CLR WDT
; SDZ RAMC
; JMP FA500HZ
; FA1KHZ:
; SET REM ; NO FA
; MOV A,20D
; YS500A:
; SDZ ACC
; JMP YS500A ; [3*(A-1)+2+1] * 4/455 =500 fact=501.9(19D)
; CLR WDT
; CLR REM ; YES FA
; MOV A,16D
; YS500B:
; SDZ ACC
; JMP YS500B ; [3*(A-1)+2+5] * 4/455 =500 fact=509.9(16D)
; CLR WDT
; SDZ RAMB ; n ge 1kHz
; JMP FA1KHZ
; SDZ RAMD
; JMP STACAR ; 10/8 CYCLES
; CAREND:
; SET REM ; END CLOSE REM
; RET
; **** 4P30 SA3010 & PT2210 CODE FA
SAT_BIT1: ; START BITE 11B
SET REM
SAT_BIT1_PRO: ; 1.778/2=888us->101x4/455=888us cycle "LOW"
MOV A,033D ; [(3*32)+2+3]=101
SAT_BIT1P1:
SDZ ACC
JMP SAT_BIT1P1
CLR WDT
NOP
CLR REM ; 888us->102 cycle "HIGH"
MOV A,033D ; [(3*32)+2+3]=101
SAT_BIT1P2:
SDZ ACC
JMP SAT_BIT1P2
CLR WDT
NOP
SAT_BIT2: ; START BITE 11B
SET REM
SAT_BIT2_PRO: ; 888uS->102 cycle "LOW"
MOV A,033D ; [(3*32)+2+3]=101
SAT_BIT2P1:
SDZ ACC
JMP SAT_BIT2P1
CLR WDT
NOP
CLR REM ; 888uS->102 cycle "HIGH"
MOV A,032D ; [(3*31)+2+6]=101
SAT_BIT2P2:
SDZ ACC
JMP SAT_BIT2P2
CLR WDT
NOP
SEND_CRT: ; SEND CONTROL BIT 110 OR 111
SZ CONBIT_DAT.0
JMP CRT_BIT0_PRO
SET REM
JMP CRT_BIT1_PRO
CRT_BIT0_PRO:
CLR REM
CRT_BIT1_PRO: ; 888uS->102 cycle "LOW"
MOV A,033D ; [(3*31)+2+6]=101
CRT_BIT1P1:
SDZ ACC
JMP CRT_BIT1P1
CLR WDT
NOP
CPL PC ; /PC0
MOV A,031D ; 888uS->102 cycle "LOW"[(3*30)+2+8]=101
CRT_BIT1P2:
SDZ ACC
JMP CRT_BIT1P2
CLR WDT
; == Send 5BIT SYSTEM Code ==
MOV A,005D
MOV RAMD,A ; SAVE AS LSRAM
SYS_CODE_PRO:
RL REM_SYSCODE
SZ REM_SYSCODE.0 ; MSB --> LSB
JMP SYS_CP1
CLR REM
JMP SYS_CP2
SYS_CP1:
SET REM
SYS_CP2: ; 888uS->102 cycle "LOW"
MOV A,32D ; [(3*32)+2+3]=101
SYS_BIT1P1:
SDZ ACC
JMP SYS_BIT1P1
NOP
CLR WDT
CPL PC ; 888uS->102 cycle "LOW"
MOV A,29D ; [(3*28)+2+15]=101
SYS_BIT1P2:
SDZ ACC
JMP SYS_BIT1P2
CLR WDT
NOP
SDZ RAMD
JMP SYS_DELAY
JMP SEND_CMD
SYS_DELAY:
NOP2 ; NOP+NOP JMP $+1
JMP SYS_CODE_PRO
; == Send COMMAND Code ==
SEND_CMD:
MOV A,006D
MOV RAMD,A
CLR WDT
COM_CODE_PRO:
RL REM_DATCODE
SZ REM_DATCODE.0
JMP COM_CP1
CLR REM
JMP COM_CP2
COM_CP1:
SET REM
COM_CP2: ; 895uS->102 cycle "LOW"
MOV A,32D ; [(3*32)+2+3]=101
COM_BIT1P1:
SDZ ACC
JMP COM_BIT1P1
CLR WDT
NOP
CPL PC ; 895uS->102 cycle "LOW"
MOV A,30D ; [(3*29)+2+12]=101
COM_BIT1P2:
SDZ ACC
JMP COM_BIT1P2
CLR WDT
NOP2 ; NOP+NOP JMP $+1
SDZ RAMD
JMP COM_CODE_PRO
SET REM ; END CLOSE REM
; == Repeat Frame Delay Time Process TOTAL64-2-1-5-6= 50(X1.7777)=88.8888MS
MOV A,016D ; Repetition time=113.77777ms (12288 cycle)
MOV RAMD,A ; Scan Key = 2471 cycle=21.72MS ; Send Repeat Code = 2872 cycle
REP_DELAY_02: ; 12286-2471-2872=6945
MOV A,107D ; [(4*107)+5]*16=6928
MOV ACC,A
REP_DELAY_03:
CLR WDT
SDZ ACC
JMP REP_DELAY_03
CLR WDT
SDZ RAMD
JMP REP_DELAY_02
MOV A,130D ; origin: 004d
MOV ACC,A ; 129x4+3=15
REP_DELAY_04:
CLR WDT
SDZ ACC ; [m]
JMP REP_DELAY_04
CLR WDT
CODE31_END:
RET
; ***** Up is rem ok,Down is Tv Call rem ****
; ===== === TV CALL REMOTE === ======
REMCALL: ; IF NO,TO Anjian check ,ex-pb1=0 not wake
CLR RAMR ; Jishu
MOV A,PB
MOV RAMLS,A ; Ls Save
MOV A,030D
MOV RAMS,A ; Ys Ram 3MS/8.79US=341.25
YS3MS: ; 3ms Have 2-7 changes
MOV A,PB
XOR A,RAMLS ; Yihuo last time -> A
SZ ACC.0 ; = Is 0 ; <> Is 1
JMP BUTONG
NOP2 ; 12X(?-1)+11+10 = 342 --> Shiji=3.244MS
NOP2
CLR WDT ; WDT=2048X8.79US=18MS
OVERY:
SDZ RAMS ; = XIANGTONG [m]
JMP YS3MS
CALT: ; Lilun=3-6 changes Fast judge
MOV A,RAMR
SUB A,001D
SZ STA_C ; C-FLAG=0 A<2
JMP DAYD3 ; C=1 A>=2
JMP YWAKE
BUTONG:
INC RAMR ; Jishu+1
CPL RAMLS ; /RAMLS.5=PB.5(This time)
JMP OVERY
DAYD3: ; >=2 ok! <=6?
MOV A,RAMR
SUB A,010D
SZ STA_C ; C=0 A<8
JMP YWAKE ; C=1 A>=8
; === Fast judge ok,down is 37MS(2T=36MS) 57+/-4= 53---61
SET PA1 ; Tv Call Vcc Always
CLR WDT
CLR RAMR ; Jishu
MOV A,PB
MOV RAMLS,A ; Ls Save
MOV A,247D
MOV RAMS,A ; Ys Ram 37MS/8.79US=4209
YS37MS: ; 37ms Have 53-61 changes
MOV A,PB
XOR A,RAMLS ; Yihuo last time -> A
SZ ACC.0 ; = Is 0 ; <> Is 1
JMP BUTONGA
NOP2 ; 17X(?-1)+11+10 = 4209 --> Shiji=36.944MS
NOP2
NOP2
NOP2
NOP
CLR WDT ; WDT=2048X8.79US=18MS
OVERYA:
SDZ RAMS ; = XIANGTONG [m]
JMP YS37MS
CALTA: ; Lilun=3-6 changes Fast judge
MOV A,RAMR
SUB A,040D
SZ STA_C ; C-FLAG=0 A<51
JMP DAYD53 ; C=1 A>=51
JMP YWAKE
BUTONGA:
NOP2
NOP2
CLR WDT
INC RAMR ; Jishu+1
CPL RAMLS ; /RAMLS.5=PB.5(This time)
JMP OVERYA
DAYD53: ; >=51 ok! <=63?
MOV A,RAMR
SUB A,070D
SZ STA_C ; C=0 A<63
JMP YWAKE ; C=1 A>=63
; *** JieMa OK! Down is Music ***
STASONG:
CLR WDT
MOV A,MUSICTIM ; Which music
SUB A,002H ; MUSIC NUM=2
SZ STA_C ; C-FLAG=0 A<2H
CLR MUSICTIM ; C=1 A>=001H,EXIT TO 0 MUSIC
MOV A,0F0H ; OFSET IS at 02F0H
ADD A,MUSICTIM
MOV TBLP,A ; TABLE LOW 8BIT ADR THIS PAGE = 02XXH
TABRDC RAMR ; RAMS=LOW DAT8 == LOW ADR OFFSET
MOV A,TBLH
MOV RAMWA,A ; ZANCUN
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -