📄 bit1611b5_v023.asm
字号:
OSD3_HL_ATTR EQU 041h ; Palette 1
OSD3_BAR_ATTR EQU 042h ; Palette 2
OSD3_DIGIT_ATTR EQU 040h ; Palette 1
; ------------------------------------------------------------------------------
; BCHS Range
; ------------------------------------------------------------------------------
; BRIGHTNESS 0x106
; Y = X + 106, X = 0..63, Default X = 32, Y = 138
BRIGHTNESS_MAX EQU 169
BRIGHTNESS_DEFAULT EQU 138
BRIGHTNESS_MIN EQU 106
BRIGHTNESS_STEP_INC EQU 001h ; +1
BRIGHTNESS_STEP_DEC EQU 0FFh ; -1
; CONTRAST 0x107
; Y = X + 75, X = 0..63, Default X = 32, Y = 107
CONTRAST_MAX_1 EQU 139 ; MAX+1
CONTRAST_MAX EQU 138
CONTRAST_DEFAULT EQU 107
CONTRAST_MIN EQU 75
CONTRAST_STEP_INC EQU 001h ; +1
CONTRAST_STEP_DEC EQU 0FFh ; -1
; HUE 0x10A
; Y = X - 32, X = 0..63, Default X = 32, Y = 0
HUE_MAX_1 EQU 64 ; MAX+1
HUE_MAX EQU 63
HUE_DEFAULT EQU 32
HUE_MIN EQU 0
HUE_OFFSET EQU 32 ; -OFFSET
HUE_STEP_INC EQU 001h ; +1
HUE_STEP_DEC EQU 0FFh ; -1
; SATURATION 0x109
; Y = X + 6, X = 0..63, Default X = 32, Y = 38
SATURATION_MAX_1 EQU 70
SATURATION_MAX EQU 69
SATURATION_DEFAULT EQU 38
SATURATION_MIN EQU 6
SATURATION_STEP_INC EQU 001h ; +1
SATURATION_STEP_DEC EQU 0FFh ; -1
; VCOM PWM: PWM2
; Y = X + 137, X = 0..63, Default X = 32, Y = 169
PWM_MAX EQU 63
PWM_DEFAULT EQU 32 ; R0E8
PWM_DEFAULT_N EQU 32 ; R0E8
PWM_DEFAULT_P EQU 32 ; R0E8
PWM_MIN EQU 0
PWM_OFFSET EQU 137 ; +OFFSET
PWM_STEP_INC EQU 001h ; +1
PWM_STEP_DEC EQU 0FFh ; -1
; ------------------------------------------------------------------------------
; Interrupt Vectors
; ------------------------------------------------------------------------------
ORG 0000h
DW ISR_0_SIGIN
DW ISR_1_NOSIG
DW ISR_2_MODECHG
DW ISR_3_VSYNC
DW ISR_4_TIMER0
DW ISR_5_TIMER1
DW ISR_6_IR
DW ISR_7_KEYIN
; ------------------------------------------------------------------------------
; POR - Power On Reset
; ------------------------------------------------------------------------------
ORG 0010h
POR:
; Default FREE-RUN MODE Background Pattern is enabled !
; To turn off BACKLIGHT
MOV R[ VP_009_GPO_TYPE ], BL_OFF_WP_ON
POR_000000_START:
; Speed Up
CALL SPEEDUP
POR_000010_PWM_INIT:
MOV R[ VP_0DE0E1_SYNC_DELAY ], E[ PWM12_0DE_0EA ], PWM12_0DE_0EA_END - PWM12_0DE_0EA - 1
POR_000030_VP_INIT:
MOV R[ VP_00B_SRST_ATTR1 ], E[ VP_00B_08B ], VP_00B_08B_END - VP_00B_08B - 1
MOV R[ VP_0A4_PLL_VND ], E[ VP_0A4_0A7 ], VP_0A4_0A7_END - VP_0A4_0A7 - 1
POR_000040_VD_INIT:
MOV R[ VP_101_AFE_ATTR ], E[ VD_101_137 ], VD_101_137_END - VD_101_137 - 1
POR_000050_GAMMA_INIT:
; MOV R[ VP_0200_02FF_GAMMA_LUT_R ], E[ GAMMA_200_2FF ], 0FFh
; MOV R[VP_0A2_GAMMA_ATTR], 005h
POR_000060_PORT_INIT:
MOV R[ VP_003_INT_MASK ], E[ PORT_003_00A ], PORT_003_00A_END - PORT_003_00A - 1
POR_000070_KEY_INIT:
;CALL KEY_RESTART
POR_000080_SOURCE:
; Recall Video Source
MOV A, E[ USER_SOURCE ]
MOV R[ RAM_SOURCE ], A
CALL SVS_SetupVideoSource
; TCON Mode
MOV R[ RAM_TCON ], TCON_ID_RU
POR_000090_OSD_INIT:
MOV R[ VP_13813A_OSD1_H_POSITION ], E[ OSD1_SETUP ], OSD1_SETUP_END - OSD1_SETUP - 1
MOV R[ VP_146151_OSD2_H_POSITION ], E[ OSD2_SETUP ], OSD2_SETUP_END - OSD2_SETUP - 1
MOV R[ VP_154156_OSD3_H_POSITION ], E[ OSD3_SETUP ], OSD3_SETUP_END - OSD3_SETUP - 1
POR_000100_OSD_CODE:
MOV R[ VP_SHOW_OSD2 ], E[ TITLE ], TITLE_END - TITLE - 1
FILL R[ VP_SHOW_OSD3 ], FONT_20_BLANK, OSD3_AREA_1
POR_000110_OSD_ATTR:
FILL R[ VP_ATTR_OSD1 ], OSD1_NM_ATTR, OSD1_AREA_1
FILL R[ VP_ATTR_OSD2 ], OSD2_NM_ATTR, OSD2_AREA_1
FILL R[ VP_ATTR_OSD3 ], OSD3_NM_ATTR, OSD3_AREA_1
FILL R[ VP_ATTR_BAR ], OSD3_BAR_ATTR, OSD3_BAR_1
POR_000120_OSD_PALETTE:
MOV R[ VP_0600_063F_PALETTE ], E[ OSD_PALETTE ], OSD_PALETTE_END - OSD_PALETTE - 1
POR_000130_IR:
MOV R[ VP_0F9_IR_UDCC_BAR ], IR_UDCC_BAR
MOV R[ VP_0FA_IR_UDCC ], IR_UDCC
MOV R[ VP_0FB_IR_ATTR ], IR_ATTR
MOV R[ VP_0FC_IR_ATTR2 ], IR_ATTR2
POR_000990_BCHS:
; =====================================
; Recall BRIGHTNESS
MOV A, E[ USER_BRIGHTNESS ]
MOV B, BRIGHTNESS_MIN
COMP
NOTC
JC B_NORMAL ; Jump if EEPROM >= Min.
B_EXCEPTION:
MOV A, BRIGHTNESS_DEFAULT
B_NORMAL:
MOV R[ RAM_BRIGHTNESS ], A
MOV B, 080h
XOR
MOV R[ VP_106_DVP_BRIGHTNESS ], A
; =====================================
; Recall CONTRAST
MOV A, E[ USER_CONTRAST ]
MOV B, CONTRAST_MIN
COMP
NOTC
JC C_NORMAL ; Jump if EEPROM >= Min.
C_EXCEPTION:
MOV A, CONTRAST_DEFAULT
C_NORMAL:
MOV R[ RAM_CONTRAST ], A
MOV R[ VP_107_DVP_CONTRAST ], A
; =====================================
; Recall HUE
MOV A, E[ USER_HUE ]
MOV B, HUE_MAX_1
COMP
JC H_NORMAL ; Jump if EEPROM < Max. + 1
H_EXCEPTION:
MOV A, HUE_DEFAULT
H_NORMAL:
MOV R[ RAM_HUE ], A
MOV B, HUE_OFFSET
SUB
MOV R[ VP_10A_DVP_HUE ], A
; =====================================
; Recall SATURATION
MOV A, E[ USER_SATURATION ]
MOV B, SATURATION_MIN
COMP
NOTC
JC S_NORMAL ; Jump if EEPROM >= Min.
S_EXCEPTION:
MOV A, SATURATION_DEFAULT
S_NORMAL:
MOV R[ RAM_SATURATION ], A
MOV R[ VP_109_DVP_SATURATION ], A
; =====================================
; STATE PWM
MOV R[ RAM_SYSTEM_STATE ], STATE_NORMAL
; Disable Free-Run mode Background Pattern
MOV R[ VP_040_TESTPATTERN_ATTR ], 000h
MOV R[ RAM_MENU_CURSOR ], MENU_ID_STANDBY
; =====================================
PWM_SETUP:
MOV A, R[ VP_18C_DET_MODE ]
JB POR_NTSC, 0
POR_PAL:
MOV R[ VP_12A_ACLAMP_LEVEL ], ACLAMP_LEVEL_PAL
MOV A, E[ DEFAULT_PWM_P ]
JMP POR_HALT
POR_NTSC:
MOV R[ VP_12A_ACLAMP_LEVEL ], ACLAMP_LEVEL_NTSC
MOV A, E[ DEFAULT_PWM_N ]
POR_HALT:
MOV B, PWM_OFFSET
ADD
MOV R[ VP_0E80E9_PWM2_DUTY ], A ; PWM2 duty
; To turn on BACKLIGHT
MOV R[ VP_009_GPO_TYPE ], BL_ON_WP_ON
; Speed Down
CALL SPEEDDOWN
; OSD Clock OFF
MOV R[ VP_00B_SRST_ATTR1 ], OSD_CLK_OFF
POR_000900_KEY_INIT:
CALL KEY_RESTART
MOV R[ VP_0C0_DB ], 0E0h
HALT
; ..............................................................................
; ------------------------------------------------------------------------------
; EEPROM Area for Backup Values
; ------------------------------------------------------------------------------
USER_BRIGHTNESS: ; 0x106
DB BRIGHTNESS_DEFAULT
USER_CONTRAST: ; 0x107
DB CONTRAST_DEFAULT
USER_HUE: ; 0x10A
DB HUE_DEFAULT
USER_SATURATION: ; 0x109
DB SATURATION_DEFAULT
USER_SOURCE:
DB SOURCE_DEFAULT
; =====================================
DEFAULT_BRIGHTNESS: ; 0x106
DB BRIGHTNESS_DEFAULT
DEFAULT_CONTRAST: ; 0x107
DB CONTRAST_DEFAULT
DEFAULT_HUE: ; 0x10A
DB HUE_DEFAULT
DEFAULT_SATURATION: ; 0x109
DB SATURATION_DEFAULT
DEFAULT_PWM:
DEFAULT_PWM_N:
DB PWM_DEFAULT_N
DEFAULT_PWM_P:
DB PWM_DEFAULT_P
DEFAULT_SOURCE:
DB SOURCE_DEFAULT
; ..............................................................................
; ------------------------------------------------------------------------------
; Interrupt Service Routine
; ISR 0: Signal Ready
; ISR 1: No Signal
; ------------------------------------------------------------------------------
ISR_0_SIGIN:
ISR_1_NOSIG:
HALT
; ..............................................................................
; ------------------------------------------------------------------------------
; Interrupt Service Routine
; ISR 2: Mode Change
; ------------------------------------------------------------------------------
ISR_2_MODECHG:
; Disable VS interrupt
MOV R[ VP_004_INT_ACK ], INT_ACK_VS_OFF ; Disable VS interrupt
MODECHG_START:
; Speed Up
CALL SPEEDUP
MOV A, R[ VP_18C_DET_MODE ]
JB MODECHG_000020_NTSC, 0 ; Jump if NTSC
MODECHG_000010_PAL:
MOV A, BRIGHTNESS_P
MOV R[ VP_07C_BRIGHTNESS_R ], A
MOV R[ VP_07D_BRIGHTNESS_R ], A
MOV R[ VP_07E_BRIGHTNESS_R ], A
MOV A, CONTRAST_P
MOV R[ VP_07F_CONTRAST_R ], A
MOV R[ VP_080_CONTRAST_R ], A
MOV R[ VP_081_CONTRAST_R ], A
MOV R[ VP_0E00E1_PWM1_FREQ ], PWM1_FREQ_PAL
MOV R[ VP_12A_ACLAMP_LEVEL ], ACLAMP_LEVEL_PAL
MOV A, E[ DEFAULT_PWM_P ]
JMP MODECHG_000030
MODECHG_000020_NTSC:
MOV A, BRIGHTNESS_N
MOV R[ VP_07C_BRIGHTNESS_R ], A
MOV R[ VP_07D_BRIGHTNESS_R ], A
MOV R[ VP_07E_BRIGHTNESS_R ], A
MOV A, CONTRAST_N
MOV R[ VP_07F_CONTRAST_R ], A
MOV R[ VP_080_CONTRAST_R ], A
MOV R[ VP_081_CONTRAST_R ], A
MOV R[ VP_0E00E1_PWM1_FREQ ], PWM1_FREQ_NTSC
MOV R[ VP_12A_ACLAMP_LEVEL ], ACLAMP_LEVEL_NTSC
MOV A, E[ DEFAULT_PWM_N ]
MODECHG_000030:
MOV B, PWM_OFFSET
ADD
MOV R[ VP_0E80E9_PWM2_DUTY ], A
MOV R[ VP_004_INT_ACK ], INT_ACK_VS_ON ; Enable VS interrupt
HALT
; ..............................................................................
; ------------------------------------------------------------------------------
; Interrupt Service Routine
; ISR 3: VSYNC
; ------------------------------------------------------------------------------
ISR_3_VSYNC:
MOV A, R[ RAM_SYSTEM_STATE ]
JB OSD_AUTO, STATE_BIT_PWM ; Jump if the PWM fuction is running
MOV A, R[ RAM_VS_CNT ]
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -