?? hou.asm
字號:
CLR WDT
SDZ ACC
JMP BLANK_DELAY_03
SDZ RAMD
JMP BLANK_DELAY_02
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
; ***** 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
CLR AJNUMA ; when music,have anjian,cong fa end jishu 30S music
CLR AJNUMB
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
; ==== 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
ADD A,0CEH ; 01CCH
MOV TBLP,A ; TABLE LOW 8BIT ADR
TABRDC 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
; ***** Up is rem ok,Down is Tv Call rem ****
; ===== === TV CALL REMOTE === ======
REMCALL:
SET PA1
CLR RAMB ; YSJS
REMCALLD:
MOV A,140D
REMCALLP:
CLR CALLNUM ; Qichu
CLR WDT
; SNZ PB0
JMP STASONG ; PB0=0 TV CALL
; SDZ ACC ; 7X8.79X128=8MS
; JMP REMCALLP
; CLR PA ; ANJIAN MUST <CLR PA>
; CLR WDT
; MOV A,PB
; OR A,11000001B ; PB7\PB6(NO)PB0(CALL IN),NO ANJIAN=FF
; SET PA1
; SIZA ACC ; FF+1=0 NO ANJIAN
; JMP YWAKEMID ; <>FFH,YOU ANJIAN,CALL TIME YOU ANJIAN
; CLR WDT ; 10X255X255X8.79US = 6.0 S
; SDZ RAMB
; JMP REMCALLD
; JMP YWAKE
STASONG:
CLR WDT
SZ RAMR ; RAMR=0,NEW SONGS
JMP LOOPMC ; GO ON up songs
CLR CALLNUM ; TV NO CALL TIME(NUM)
MOV A,MUSICTIM ; Which music
SUB A,010D ; MUSIC NUM=9
SZ STA_C ; C-FLAG=0 A<2H
CLR MUSICTIM ; C=1 A>=001H,EXIT TO 0 MUSIC
MOV A,0F2H ; 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
JMP LOOPMC ; TO 200H ADR(CAN USE TABRDC THIS PAGE)
; ****One Music end come here ,check anjian 30 TIMES to delay ***
RESTA:
MOV A,RAMS ; CxH OR C5H
SZ TBLH
JMP NOADR
ADRCHANGE: ; 00E5H GO TO 03E5H, TBLH=00H
MOV RAMR,A ; ADR:00E5H ,E5-->RAMR
SET RAMWA.4 ; 03E5! TABRDL(NOT TABRDC)
JMP LOOPMC
NOADR:
AND A,0FH ; LOW 4 BITS
RL ACC
RL ACC
MOV RAMA,A
JMP YSCHECKA
YWAKEAB: ; 80H COME HERE,MUSIC IS OVER!
CLR SPK ; STOP SPK=PA0
CLR CALLNUM
CLR WDT
SZ RAMS.6
JMP RESTA ; C5H
YSCHECK:
CLR RAMR ; NOT go on songs
YSCHECKA: ; bi kai CxH de qingkuang
CLR RAMC ; is 80H or CxH
CLR RAMWB
POLLINGA:
CLR WDT ; CHECK ANJIAN,MUST <CLR PA>
CLR PA ; CLR SPK ,NO call vcc(pa1)
MOV A,PB ; Read on column value to PBVALUE
OR A,11000001B ; PB7\PB6(NO)PB0(CALL IN),NO ANJIAN=FF
SIZA ACC ; FF+1=0 NO ANJIAN
JMP YWAKEMID ; <>FFH,YOU ANJIAN
INC RAMWB ; NO ANJIAN
SIZ RAMWB ;
JMP POLLINGA ; 13X255X8.79=30MS X 90 = 2.7 S
INC RAMC
MOV A,070D
SZ RAMS.6 ; 80H IS OVER,CX IS XIUZHI 0
MOV A,RAMA
XOR A,RAMC
SNZ STA_Z
JMP POLLINGA ; <>60H
SET PA1 ; Have call Vcc
SZ RAMS.6 ; STOP TIME ARRIVE
JMP MUSICON
INC MUSICTIM ; NEXT SONGS
JMP REMCALL ; PB0 hai=1
YWAKEMID: ; When call,have anjian
SET AJBIT
CLR AJNUMA ; JIS DELAY
CLR AJNUMB
JMP YWAKE ; GO anjian
SPACE:
SZ RAMS.7 ; RAMS<>0 ? STOP ? YS1S (65MS)
JMP YWAKEAB ; Songs over! --->CLR SPK(ANJIAN +CALL=22MS+43MS=65MS)
; SNZ PB0
CLR CALLNUM
MOV A,TBLH ; TBLH=00+HIGH DAT6 FRE/2
MOV RAMT,A ; FRE/2
MOV A,RAMS
MOV RAMLS,A ; YS USED
MOV RAMD,A ; (TBLH X TBLH)X[9+3(RAMT-1)]X8.79US=0.5S(Jipai)
SPKON:
MOV A,00000001B
XORM A,PA ; /PA0 PA1-PA7 NOT CHANGE SPK ; [8+(RAMT-1)X3]X8.79
MOV A,RAMT
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -