📄 av_06s.asm
字号:
;==========================================================
;DEFINE
;INCLUDE <EMC456.INC>
;================================================
#define iport5 0x04
#define iport6 0x0f
A EQU 0X00
M EQU 0X01
TCC EQU 0X01
;--------------------------------- --
PC EQU 0X02
;-------------STATUS----------------
STATUS EQU 0X03
C EQU 0X00
DC EQU 0X01
Z EQU 0X02
;-----------PORT5------------------
PORT5 EQU 0X05
SCL EQU 0X00
SDA EQU 0X01
KEY1 EQU 0X02 ;BASS+
; KEY5 EQU 0X03 ;STANDBY
;-----------PORT6-------------------
PORT6 EQU 0X06
IR EQU 0X00
KEY2 EQU 0X01 ;BASS-
KEY3 EQU 0X02 ;MAS-
KEY4 EQU 0X03 ;MAS+
SCN_LED EQU 0X04
STB_LED EQU 0X05
POW_LED EQU 0X07
; VUP_LED EQU 0X06
;----------------------------------------
WAKE_UP EQU 0X20
IRQM EQU 0X21
IRQF EQU 0X22
;---------DEFINE ------------------
;==================================
BUF_LED EQU 0X07
REMBUFF EQU 0X08
R0 EQU 0X10
R1 EQU 0X11
R2 EQU 0X12
R3 EQU 0X13
R4 EQU 0X14
R5 EQU 0X15
R6 EQU 0X16
COUNT1 EQU 0X17
KEYBYTE EQU 0X18
BUFFER EQU 0X19
A_BUF EQU 0X1A
R3_BUF EQU 0X1B
; 0X1C
; 0X1D
MVOLG EQU 0X1E
FVOLG EQU 0X1F
SVOLG EQU 0X28
WVOLG EQU 0X29
CVOLG EQU 0X2A
DAT_REM EQU 0X2B
REMBYTE EQU 0X2C
TIMES EQU 0X2D
;------------0X28------------------
REMBYTE1 EQU 0X2E
COUNT2 EQU 0X2F
;----------------------------
FLAG_LED EQU 0X0E
;----------------
LED1 EQU 0X00
LED2 EQU 0X01
LED3 EQU 0X02
LED4 EQU 0X03
LED5 EQU 0X04
LED6 EQU 0X05
;==========BIT DEFIND==========
FLAG EQU 0X0F
KEYED EQU 0X00
KEY_DOWN EQU 0X01
POWER EQU 0X02
MUTE EQU 0X03
R_OVER EQU 0X04
AK47 EQU 0X05
REMED EQU 0X06
KEY_BIT EQU 0X07
;=========================================================
ORG 0X3FF
LGOTO START
ORG 0X3FE
LGOTO BREAK
ORG 0X00
;---------------------------------------------------------
BREAK: RETI
;;-------------INIT BACK--------------------
IRKEY: CLRM REMBYTE
ADDAM PC,M
RETLA 0X00
RETLA 0X00
RETLA 0X11
RETLA 0X01
RETLA 0X1F
RETLA 0X0F
RETLA 0X41
RETLA 0X45
RETLA 0X06
RETLA 0X5E
;===============================================
TAB_YAOKON01: BTMSS FLAG,POWER
LGOTO LOOP
LGOTO TAB_YAOKON02
TABLE_YAOKON: BSM FLAG,AK47
MOVM REMBYTE,A
XORAM 0X01,A
BTMSS STATUS,Z
LGOTO TAB_YAOKON01
TAB_YAOKON02: MOVM REMBYTE,A
CLRM REMBYTE
ADDAM PC,M
LGOTO LOOP
LGOTO P_MUTE
LGOTO P_INSW
LGOTO P_DESW
LGOTO P_INC
LGOTO P_DEC
LGOTO P_INSUR
LGOTO P_DESUR
LGOTO P_INMVOL
LGOTO P_DEMVOL
LGOTO P_STANDBY
;--------------------------------
TABLE_01: BTMSS FLAG,POWER
LGOTO LOOP
LGOTO TABLE_02
TABLE: MOVM KEYBYTE,A
XORLA 0X01
BTMSS STATUS,Z
LGOTO TABLE_01
TABLE_02: MOVM KEYBYTE,A
CLRM KEYBYTE
BSM FLAG,KEY_DOWN
ADDAM PC,M
LGOTO LOOP
LGOTO P_STANDBY
LGOTO P_MUTE
LGOTO P_DEMVOL
LGOTO P_INMVOL
LGOTO LOOP
;;-===========================================
;&&&&&&&&&&&&&&&& START ASM &&&&&&&&&&&&&&&&&&
START: MOVLA 0X01 ;??????????
SELECT
MOVLA iport5
IODIR PORT5
MOVLA iport6
IODIR PORT6
MOVLA 0X61
MOVAM WAKE_UP
MOVLA 0X00
MOVAM IRQM
MOVLA 0XF0
MOVAM PORT6
LCALL DELAY20MS
LCALL DELAY20MS
LCALL DELAY20MS
BCM FLAG,MUTE ;;;;;;;;;;;
BSM FLAG,POWER ;;;;;;;;;;
BCM FLAG,REMED
LCALL PT225801
MOVLA .30
MOVAM MVOLG
MOVLA .15
MOVAM FVOLG
MOVAM SVOLG
MOVAM CVOLG
MOVLA 08
MOVAM WVOLG
LCALL FVOL
LCALL SVOL
LCALL CVOL
LCALL WVOL
LCALL DISVOL_LED
LGOTO LOOP
;************************************************
;************************************************
LOOP_REM: LCALL REMOTE
MOVM REMBYTE,A
BTMSC STATUS,Z
LGOTO LOOP1
CLRM COUNT1
MOVLA .250
MOVAM COUNT2
LGOTO TABLE_YAOKON
LOOPK: NOP
LOOP: BTMSS PORT6,IR
LGOTO LOOP_REM
LOOP1: lcall scan_key
BTMSS FLAG,KEYED
LGOTO LOOPK
Btmsc FLAG,KEY_DOWN
LGOTO LOOP
LCALL DELAY20MS
BCM FLAG,KEYED
CLRM COUNT1
MOVLA .253
MOVAM COUNT2
LGOTO TABLE
LGOTO LOOP
;*************************************************
scan_key:
bsm flag,keyed
btmsc port5,key1
lgoto scan_key01
lcall key_delay
btmsc port5,key1
lgoto scan_key01
movla 0x04
movam keybyte
ret
scan_key01:
btmsc port6,key2
lgoto scan_key02
call key_delay
btmsc port6,key2
lgoto scan_key02
movla 0x03
movam keybyte
ret
scan_key02:
btmsc port6,key3
lgoto scan_key03
call key_delay
btmsc port6,key3
lgoto scan_key03
movla 0x02
movam keybyte
ret
scan_key03:
btmsc port6,key4
lgoto scan_key04
call key_delay
btmsc port6,key4
lgoto scan_key04
movla 0x01
movam keybyte
ret
scan_key04:
bcm flag,keyed
bcm flag,key_down
ret
;---------------------------------
;=================================
;---------------------------------------------
;---------------------------------*/
KEY_DELAY: MOVLA 030
MOVAM R0
UP_KEY_DELAY: DECMSZ R0
LGOTO UP_KEY_DELAY
RET
;=================================
;========BCMD TO 10 DIGITAL=========================
CONVERT: CLRM R1
CLRM R2
CON_01: MOVAM R2
BCM STATUS,C
MOVLA .10
SUBAM R2,A
BTMSS STATUS,C
LGOTO CON_02
INCM R1
LGOTO CON_01
CON_02: RET
;================================================
PLAY_MUTE: LCALL ON24
MOVLA 0X88
MOVAM R4
LCALL WBYTE
BTMSC FLAG,MUTE
LGOTO MUT_P
LGOTO PLY_P
PLY_P: MOVLA 0XF8
LGOTO M_P_01
MUT_P: MOVLA 0XF9
M_P_01: MOVAM R4
LCALL WBYTE
LCALL OFF24
RET
;;;;;;;;;;INIT PT2258;;;;;;;;;;;;;;;;
PT225801: LCALL ON24
MOVLA 0X88
MOVAM R4
LCALL WBYTE
MOVLA 0XC7
MOVAM R4
LCALL WBYTE
MOVM MVOLG,A
LCALL CONVERT
MOVLA 0XD0
ADDAM R4,M
LCALL WBYTE
MOVLA 0XE0
ADDAM R4,M
LCALL WBYTE
LCALL OFF24
RET
FVOL: LCALL ON24
MOVLA 0X88
MOVAM R4
LCALL WBYTE
MOVLA 0XC7
MOVAM R4
LCALL WBYTE
MOVM FVOLG,A
SUBAM MVOLG,A
LCALL CONVERT
MOVM R1,A
MOVAM R5
MOVM R2,A
MOVAM R6
MOVLA 0X60
ADDAM R1,A
MOVAM R4
LCALL WBYTE
MOVLA 0X70
ADDAM R2,A
MOVAM R4
LCALL WBYTE
MOVLA 0X80
ADDAM R5,A
MOVAM R4
LCALL WBYTE
MOVLA 0X90
ADDAM R6,A
MOVAM R4
LCALL WBYTE
LCALL OFF24
RET
SVOL: LCALL ON24
MOVLA 0X88
MOVAM R4
LCALL WBYTE
MOVM SVOLG,A
SUBAM MVOLG,A
LCALL CONVERT
MOVM R1,A
MOVAM R5
MOVM R2,A
MOVAM R6
MOVLA 0X00
ADDAM R1,A
MOVAM R4
LCALL WBYTE
MOVLA 0X10
ADDAM R2,A
MOVAM R4
LCALL WBYTE
MOVLA 0X20
ADDAM R5,A
MOVAM R4
LCALL WBYTE
CLRM R4
MOVLA 0X30
ADDAM R6,A
MOVAM R4
LCALL WBYTE
LCALL OFF24
NOP
RET
CVOL: LCALL ON24
MOVLA 0X88
MOVAM R4
LCALL WBYTE
MOVM CVOLG,A
SUBAM MVOLG,A
LCALL CONVERT
MOVLA 0X40
ADDAM R1,A
MOVAM R4
LCALL WBYTE
MOVLA 0X50
ADDAM R2,A
MOVAM R4
LCALL WBYTE
LCALL OFF24
NOP
RET
WVOL: LCALL ON24
MOVLA 0X88
MOVAM R4
LCALL WBYTE
MOVM WVOLG,A
SUBAM MVOLG,A
LCALL CONVERT
MOVLA 0XA0
ADDAM R1,A
MOVAM R4
LCALL WBYTE
MOVLA 0XB0
ADDAM R2,A
MOVAM R4
LCALL WBYTE
LCALL OFF24
NOP
RET
;=================================
WBYTE: MOVLA .8
MOVAM R3
WBY0: BCM PORT5,SCL
NOP
NOP
NOP
NOP
RLM R4,M
BCM PORT5,SDA
NOP
NOP
NOP
BTMSS STATUS,C
LGOTO WBY1
BSM PORT5,SDA
WBY1: NOP
NOP
NOP
NOP
BSM PORT5,SCL
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -