📄 drv_lcd.ps
字号:
.half 171
.half 255
.half 254
.half 0
.half 0
.half 0
.half 0
.half 0
.half 0
.global pVRAM
.data
.align 2
pVRAM:
.word VRAM
.code
.align 1
.def halDelayUS, val halDelayUS, scl 2, type 0x21, endef
.global halDelayUS
.loc 30
.def ent, scl 101, type 0x0, endef
halDelayUS:
; .frame %sp,4,$31 # vars= 0, regs= 1/0, args= 0, extra= 0
; .mask 0x80000000,-4
; .fmask 0x00000000,0
.loc 31
.def begin, scl 100, type 0x0, endef
.def i, val 11, scl 4, type 0x4, endef
.def j, val 10, scl 4, type 0x4, endef
.loc 32
ld.w %r11,0x0
xld.w %r12,0x000000c7 ; 199
xld.w %r13,0x000000b3 ; 179
__L5:
.loc 34
ld.w %r10,0x0
__L9:
.loc 35
; APP
nop
; NO_APP
.loc 34
xadd %r10,%r10,1
cmp %r10,%r12
xjrle __L9
.loc 32
xadd %r11,%r11,1
cmp %r11,%r13
xjrle __L5
.loc 37
.def bend, scl 110, type 0x0, endef
ret
.def end, scl 111, type 0x0, endef
.align 1
.def init_dlcd_hardware, val init_dlcd_hardware, scl 2, type 0x21, endef
.global init_dlcd_hardware
.loc 40
.def ent, scl 101, type 0x0, endef
init_dlcd_hardware:
; .frame %sp,4,$31 # vars= 0, regs= 1/0, args= 0, extra= 0
; .mask 0x80000000,-4
; .fmask 0x00000000,0
.loc 41
.def begin, scl 100, type 0x0, endef
.loc 43
xld.w %r11,0x000402dc ; 262876
xbclr [%r11],0x5
.loc 44
xld.w %r11,0x000402de ; 262878
xbset [%r11],0x5
.loc 45
xld.w %r11,0x000402dd ; 262877
xbset [%r11],0x5
.loc 47
ld.w %r12,0x0
xcall halInitController
.loc 50
xld.w %r11,0x000402d4 ; 262868
xbclr [%r11],0x6
.loc 51
xld.w %r11,0x000402d6 ; 262870
xbset [%r11],0x6
.loc 52
xld.w %r11,0x000402d5 ; 262869
xbclr [%r11],0x6
.loc 53
xbset [%r11],0x6
.loc 55
ld.w %r12,0x0
xcall SetOutputPort
.loc 57
ld.w %r12,0x0
xcall SetPanelIfType
.loc 59
xld.w %r12,0x00000004 ; 4
xcall SetLcdPClkDivide
.loc 60
xld.w %r12,0x00000001 ; 1
xcall SetRGBPanelClkPol
.loc 61
xld.w %r12,0x00000012 ; 18
xcall SetRGBPanelDataWidth
.loc 62
ld.w %r12,0x0
xcall SetRGBPanelType
.loc 64
xld.w %r12,0x000000d0 ; 208
xld.w %r13,0x000000fa ; 250
xcall SetLcdHVTotal
.loc 65
ld.w %r12,0x0
xld.w %r13,0x000000b0 ; 176
xld.w %r14,0x000000f0 ; 240
xcall SetLcdHVDispPer
.loc 66
xld.w %r12,0x0000000e ; 14
xld.w %r13,0x00000001 ; 1
xcall SetLcdHVStartPos
.loc 67
ld.w %r12,0x0
xld.w %r13,0x0000000a ; 10
xld.w %r14,0x0000000e ; 14
xcall SetLcdFpline
.loc 68
ld.w %r12,0x0
xld.w %r13,0x00000001 ; 1
ld.w %r14,%r12
xcall SetLcdFPFrame
.loc 69
xld.w %r12,0x00000004 ; 4
xcall SetSerialLcdClkDivide
.loc 70
ld.w %r12,0x0
xld.w %r13,0x00000003 ; 3
xcall SetLcdSif
.loc 73
ld.w %r12,0x0
xld.w %r13,0x00000003 ; 3
xcall InitLut
.loc 75
ld.w %r12,0x0
xld.w %r13,0x00000001 ; 1
xcall SetLutBypassEnable
.loc 76
xld.w %r12,0x00000001 ; 1
ld.w %r13,%r12
xcall SetLutBypassEnable
.loc 78
ld.w %r12,0x0
xcall SelectDispMode
.loc 81
ld.w %r12,0x0
xld.w %r13,0x00000010 ; 16
xcall SetDisplayMode
.loc 84
xld.w %r12,0x00000001 ; 1
xcall SetOutputPort
.loc 86
xcall halDelayUS
.loc 89
xld.w %r12,0x000000c9 ; 201
xcall Write_lcd_com
.loc 90
xld.w %r12,0x000000f8 ; 248
xcall Write_lcd_param
.loc 91
ld.w %r12,0x0
xcall Write_lcd_param
.loc 92
xld.w %r12,0x000000f0 ; 240
xcall Write_lcd_param
.loc 93
ld.w %r12,0x0
xcall Write_lcd_param
.loc 94
xld.w %r12,0x00000002 ; 2
xcall Write_lcd_param
.loc 95
xcall halDelayUS
.loc 97
xld.w %r12,0x000000ca ; 202
xcall Write_lcd_com
.loc 98
xld.w %r12,0x000000cf ; 207
xcall Write_lcd_param
.loc 99
xld.w %r12,0x00000001 ; 1
xcall Write_lcd_param
.loc 100
xld.w %r12,0x00000006 ; 6
xcall Write_lcd_param
.loc 101
xld.w %r12,0x00000018 ; 24
xcall Write_lcd_param
.loc 102
xld.w %r12,0x00000004 ; 4
xcall Write_lcd_param
.loc 103
ld.w %r12,0x0
xcall Write_lcd_param
.loc 104
xcall halDelayUS
.loc 106
xld.w %r12,0x000000cb ; 203
xcall Write_lcd_com
.loc 107
xld.w %r12,0x00000020 ; 32
xld.w %r13,GCP64
xcall Write_lcd_param_loop
.loc 108
xcall halDelayUS
.loc 111
xld.w %r12,0x00000094 ; 148
xcall Write_lcd_com
.loc 112
xcall halDelayUS
.loc 114
xld.w %r12,0x000000af ; 175
xcall Write_lcd_com
.loc 115
xcall halDelayUS
.loc 120
xcall init_timer3_8bit
.loc 121
xld.w %r12,VRAM
xld.w %r13,0x0000ffff ; 65535
xld.w %r14,0x0000a500 ; 42240
xcall memset
.loc 122
xld.w %r12,VRAM
xcall init_hsdma3
.loc 124
.def bend, scl 110, type 0x0, endef
ret
.def end, scl 111, type 0x0, endef
.align 1
.def Dlcd_Show_Coordinate, val Dlcd_Show_Coordinate, scl 2, type 0x21, endef
.global Dlcd_Show_Coordinate
.loc 126
.def ent, scl 101, type 0x0, endef
Dlcd_Show_Coordinate:
; .frame %sp,4,$31 # vars= 0, regs= 1/0, args= 0, extra= 0
; .mask 0x80000000,-4
; .fmask 0x00000000,0
.def x, val 12, scl 17, type 0x5, endef
.def y, val 13, scl 17, type 0x5, endef
.def c, val 14, scl 17, type 0x3, endef
.loc 128
.def begin, scl 100, type 0x0, endef
.def Temp, val 11, scl 4, type 0x3, endef
.loc 129
ld.w %r11,0x0
xld.w %r4,VRAM-1760
xld.w %r15,0x000000b0 ; 176
__L17:
.loc 130
ld.h %r10,%r11
add %r10,%r13
mlt.w %r10,%r15
ld.w %r10,%alr
add %r10,%r12
xsll %r10,1
add %r10,%r4
xld.h [%r10],%r14
.loc 129
xadd %r11,%r11,1
ld.h %r10,%r11
xcmp %r10,9
xjrle __L17
.loc 131
ld.w %r11,0x0
xld.w %r15,VRAM-10
xld.w %r10,0x000000b0 ; 176
mlt.w %r13,%r10
ld.w %r13,%alr
__L22:
.loc 132
ld.h %r10,%r11
add %r10,%r12
ld.w %r5,%r13
add %r5,%r10
ld.w %r10,%r5
xsll %r10,1
add %r10,%r15
xld.h [%r10],%r14
.loc 131
xadd %r11,%r11,1
ld.h %r10,%r11
xcmp %r10,9
xjrle __L22
.loc 135
.def bend, scl 110, type 0x0, endef
ret
.def end, scl 111, type 0x0, endef
.def VRAM, val VRAM, scl 2, dim 42240, size 84480, type 0x33, endef
.comm VRAM 84480
.def DISCTL_DATA1, val DISCTL_DATA1, scl 2, dim 5, size 10, type 0x3d, endef
.def DISCTL_DATA2, val DISCTL_DATA2, scl 2, dim 6, size 12, type 0x3d, endef
.def GCP64, val GCP64, scl 2, dim 32, size 64, type 0x3d, endef
.def pVRAM, val pVRAM, scl 2, type 0x13, endef
.endfile
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -