📄 drv_key.ps
字号:
.def SetGc, val 56, scl 8, type 0x91, endef
.def EnableClipping, val 60, scl 8, type 0x91, endef
.def DisableClipping, val 64, scl 8, type 0x91, endef
.def SetClipping, val 68, scl 8, type 0x94, endef
.def GetClipping, val 72, scl 8, type 0x94, endef
.def GetBgColor, val 76, scl 8, type 0x94, endef
.def SetBgColor, val 80, scl 8, type 0x94, endef
.def GetFgColor, val 84, scl 8, type 0x94, endef
.def SetFgColor, val 88, scl 8, type 0x94, endef
.def MapColor, val 92, scl 8, type 0x9e, endef
.def UnmapPixel, val 96, scl 8, type 0x94, endef
.def PackColors, val 100, scl 8, type 0x94, endef
.def UnpackPixels, val 104, scl 8, type 0x94, endef
.def GetPalette, val 108, scl 8, type 0x94, endef
.def SetPalette, val 112, scl 8, type 0x94, endef
.def SetColorFulPalette, val 116, scl 8, type 0x94, endef
.def BoxSize, val 120, scl 8, type 0x9e, endef
.def FillBox, val 124, scl 8, type 0x94, endef
.def PutBox, val 128, scl 8, type 0x94, endef
.def GetBox, val 132, scl 8, type 0x94, endef
.def PutBoxMask, val 136, scl 8, type 0x94, endef
.def ScaleBox, val 140, scl 8, type 0x94, endef
.def CopyBox, val 144, scl 8, type 0x94, endef
.def CrossBlit, val 148, scl 8, type 0x94, endef
.def DrawHLine, val 152, scl 8, type 0x94, endef
.def PutHLine, val 156, scl 8, type 0x94, endef
.def GetHLine, val 160, scl 8, type 0x94, endef
.def DrawVLine, val 164, scl 8, type 0x94, endef
.def PutVLine, val 168, scl 8, type 0x94, endef
.def GetVLine, val 172, scl 8, type 0x94, endef
.def DrawPixel, val 176, scl 8, type 0x94, endef
.def GetPixel, val 180, scl 8, type 0x94, endef
.def circle, val 184, scl 8, type 0x94, endef
.def line, val 188, scl 8, type 0x94, endef
.def rectangle, val 192, scl 8, type 0x94, endef
.def ellipse, val 196, scl 8, type 0x94, endef
.def ellipsearc, val 200, scl 8, type 0x94, endef
.def fillellipsearc, val 204, scl 8, type 0x94, endef
.def arc, val 208, scl 8, type 0x94, endef
.def T_GAL_Output, val 212, scl 102, tag T_GAL_Output, size 212, endef
.def T_GAL_Output, scl 13, tag T_GAL_Output, size 212, type 0x8, endef
.def T_GAL_ScreenDevice, scl 10, type 0x8, size 84, endef
.def xRes, val 0, scl 8, type 0x4, endef
.def yRes, val 4, scl 8, type 0x4, endef
.def bpp, val 8, scl 8, type 0x4, endef
.def planes, val 12, scl 8, type 0x4, endef
.def InitScrDev, val 16, scl 8, type 0x191, endef
.def SetPalette, val 20, scl 8, type 0x91, endef
.def GetPalette, val 24, scl 8, type 0x91, endef
.def DrawPixel, val 28, scl 8, type 0x91, endef
.def ReadPixel, val 32, scl 8, type 0x9e, endef
.def DrawHLine, val 36, scl 8, type 0x91, endef
.def PutHLine, val 40, scl 8, type 0x91, endef
.def GetHLine, val 44, scl 8, type 0x91, endef
.def DrawVLine, val 48, scl 8, type 0x91, endef
.def PutVLine, val 52, scl 8, type 0x91, endef
.def GetVLine, val 56, scl 8, type 0x91, endef
.def Blit, val 60, scl 8, type 0x91, endef
.def PutBox, val 64, scl 8, type 0x91, endef
.def GetBox, val 68, scl 8, type 0x91, endef
.def PutBoxMask, val 72, scl 8, type 0x91, endef
.def CopyBox, val 76, scl 8, type 0x91, endef
.def MapColor, val 80, scl 8, type 0x9e, endef
.def T_GAL_ScreenDevice, val 84, scl 102, tag T_GAL_ScreenDevice, size 84, endef
.def T_GAL_ScreenDevice, scl 13, tag T_GAL_ScreenDevice, size 84, type 0x8, endef
.def T_IAL_Input, scl 10, type 0x8, size 56, endef
.def UpdateMouse, val 0, scl 8, type 0x94, endef
.def GetMouseX, val 4, scl 8, type 0x94, endef
.def GetMouseY, val 8, scl 8, type 0x94, endef
.def SetMouseXY, val 12, scl 8, type 0x91, endef
.def GetMouseButton, val 16, scl 8, type 0x94, endef
.def SetMouseRange, val 20, scl 8, type 0x91, endef
.def SuspendMouse, val 24, scl 8, type 0x91, endef
.def ResumeMouse, val 28, scl 8, type 0x91, endef
.def UpdateKeyboard, val 32, scl 8, type 0x94, endef
.def GetKeyboardState, val 36, scl 8, type 0x192, endef
.def SuspendKeyboard, val 40, scl 8, type 0x91, endef
.def ResumeKeyboard, val 44, scl 8, type 0x91, endef
.def SetLeds, val 48, scl 8, type 0x91, endef
.def WaitEvent, val 52, scl 8, type 0x94, endef
.def T_IAL_Input, val 56, scl 102, tag T_IAL_Input, size 56, endef
.def T_IAL_Input, scl 13, tag T_IAL_Input, size 56, type 0x8, endef
.align 1
.def init_key, val init_key, scl 2, type 0x21, endef
.global init_key
.loc 26
.def ent, scl 101, type 0x0, endef
init_key:
; .frame %sp,4,$31 # vars= 0, regs= 1/0, args= 0, extra= 0
; .mask 0x80000000,-4
; .fmask 0x00000000,0
.loc 29
xld.w %r11,0x000402dc ; 262876
;.set volatile
xld.ub %r10,[%r11]
;.set novolatile
xand %r10,%r10,0x000000e0
;.set volatile
xld.b [%r11],%r10
;.set novolatile
.loc 30
xld.w %r11,0x000402de ; 262878
;.set volatile
xld.ub %r10,[%r11]
;.set novolatile
xoor %r10,%r10,0x0000001f
;.set volatile
xld.b [%r11],%r10
;.set novolatile
.loc 31
xld.w %r11,0x000402dd ; 262877
;.set volatile
xld.ub %r10,[%r11]
;.set novolatile
xand %r10,%r10,0x000000e0
;.set volatile
xld.b [%r11],%r10
;.set novolatile
.loc 34
xld.w %r10,0x000402c0 ; 262848
ld.w %r12,0x0
;.set volatile
xld.b [%r10],%r12
;.set novolatile
.loc 37
xld.w %r11,0x000402ca ; 262858
;.set volatile
xld.ub %r10,[%r11]
;.set novolatile
xand %r10,%r10,0x000000fc
;.set volatile
xld.b [%r11],%r10
;.set novolatile
.loc 38
;.set volatile
xld.ub %r10,[%r11]
;.set novolatile
;.set volatile
xld.b [%r11],%r10
;.set novolatile
.loc 41
xld.w %r11,0x000402cc ; 262860
;.set volatile
xld.ub %r10,[%r11]
;.set novolatile
xoor %r10,%r10,0x0000001f
;.set volatile
xld.b [%r11],%r10
;.set novolatile
.loc 44
xld.w %r11,0x000402ce ; 262862
;.set volatile
xld.ub %r10,[%r11]
;.set novolatile
xoor %r10,%r10,0x0000001f
;.set volatile
xld.b [%r11],%r10
;.set novolatile
.loc 47
xld.w %r11,0x00040262 ; 262754
;.set volatile
xld.ub %r10,[%r11]
;.set novolatile
xand %r10,%r10,0x000000f0
;.set volatile
xld.b [%r11],%r10
;.set novolatile
.loc 48
;.set volatile
xld.ub %r10,[%r11]
;.set novolatile
xoor %r10,%r10,0x00000003
;.set volatile
xld.b [%r11],%r10
;.set novolatile
.loc 51
xld.w %r11,0x00040270 ; 262768
xbset [%r11],0x4
.loc 53
ret
.def end, scl 111, type 0x0, endef
.align 1
.def enable_key, val enable_key, scl 2, type 0x21, endef
.global enable_key
.loc 56
.def ent, scl 101, type 0x0, endef
enable_key:
; .frame %sp,4,$31 # vars= 0, regs= 1/0, args= 0, extra= 0
; .mask 0x80000000,-4
; .fmask 0x00000000,0
.loc 58
xld.w %r11,0x00040280 ; 262784
xbset [%r11],0x4
.loc 59
xld.w %r11,0x00040270 ; 262768
xbset [%r11],0x4
.loc 60
ret
.def end, scl 111, type 0x0, endef
.align 1
.def int_key0, val int_key0, scl 2, type 0x21, endef
.global int_key0
.loc 63
.def ent, scl 101, type 0x0, endef
int_key0:
; .frame %sp,4,$31 # vars= 0, regs= 1/0, args= 0, extra= 0
; .mask 0x80000000,-4
; .fmask 0x00000000,0
.loc 67
; APP
pushn %r15
; NO_APP
.loc 70
xld.w %r10,0x00040280 ; 262784
xbset [%r10],0x4
.loc 72
xld.uh %r10,[bKeyStatus]
cmp %r10,0x0
xjreq __L4
.loc 75
xld.w %r11,0x000402cc ; 262860
;.set volatile
xld.ub %r10,[%r11]
;.set novolatile
xoor %r10,%r10,0x0000001f
;.set volatile
xld.b [%r11],%r10
;.set novolatile
.loc 77
xld.w %r11,0x000402ce ; 262862
;.set volatile
xld.ub %r10,[%r11]
;.set novolatile
xoor %r10,%r10,0x0000001f
;.set volatile
xld.b [%r11],%r10
;.set novolatile
.loc 80
ld.w %r14,0x0
xld.h [bKeyStatus],%r14
.loc 81
xld.w %r12,0x00000001 ; 1
xld.w %r13,0x00000010 ; 16
xcall iset_flg
.loc 82
xld.w %r11,0x00040270 ; 262768
xbset [%r11],0x4
.loc 83
; APP
popn %r15
; NO_APP
.loc 84
; APP
reti
; NO_APP
__L4:
.loc 89
xld.w %r11,0x00040270 ; 262768
xbclr [%r11],0x4
.loc 91
; APP
ld.w %r9,%psr
; NO_APP
.loc 92
; APP
or %r9,0x10
; NO_APP
.loc 93
; APP
ld.w %psr,%r9
; NO_APP
.loc 97
xld.w %r11,0x000402dd ; 262877
;.set volatile
xld.ub %r10,[%r11]
;.set novolatile
xand %r10,%r10,0x0000003e
;.set volatile
xld.b [%r11],%r10
;.set novolatile
.loc 98
;.set volatile
xld.ub %r10,[%r11]
;.set novolatile
xoor %r10,%r10,0x0000001e
;.set volatile
xld.b [%r11],%r10
;.set novolatile
.loc 101
xld.w %r12,0x000402c1 ; 262849
__L5:
.loc 102
;.set volatile
xld.ub %r10,[%r12]
;.set novolatile
xld.b [keytemp],%r10
.loc 103
; APP
nop
; NO_APP
.loc 105
xld.ub %r11,[keytemp]
;.set volatile
xld.ub %r10,[%r12]
;.set novolatile
ld.ub %r10,%r10
cmp %r11,%r10
xjrne __L5
.loc 107
xld.ub %r10,[keytemp]
xand %r10,%r10,0x0000000f
xld.b [keytemp],%r10
.loc 108
xld.ub %r10,[keytemp]
xcmp %r10,11
xjreq __L13
xjrgt __L17
xcmp %r10,7
xjreq __L14
xjp __L9
__L17:
xcmp %r10,13
xjreq __L12
xcmp %r10,14
xjrne __L9
.loc 113
xld.w %r10,0x0000000e ; 14
.loc 118
xjp __L52
__L12:
.loc 123
xld.w %r10,0x0000001b ; 27
.loc 128
xjp __L53
__L13:
.loc 133
xld.w %r10,0x0000001a ; 26
.loc 138
xjp __L54
__L14:
.loc 143
xld.w %r10,0x0000001d ; 29
.loc 148
xjp __L55
__L9:
.loc 153
xld.w %r11,0x000402dd ; 262877
;.set volatile
xld.ub %r10,[%r11]
;.set novolatile
xand %r10,%r10,0x0000003d
;.set volatile
xld.b [%r11],%r10
;.set novolatile
.loc 154
;.set volatile
xld.ub %r10,[%r11]
;.set novolatile
xoor %r10,%r10,0x0000001d
;.set volatile
xld.b [%r11],%r10
;.set novolatile
.loc 155
xld.w %r10,0x000402c1 ; 262849
;.set volatile
xld.ub %r10,[%r10]
;.set novolatile
.loc 156
xand %r10,%r10,0x0000001f
xld.b [keytemp],%r10
.loc 157
xld.ub %r10,[keytemp]
xsub %r10,%r10,15
xcmp %r10,15
xjrugt __L18
xsll %r10,2
xld.w %r10,[%r10+__L24]
jp %r10
.code
.align 2
__L24:
.word __L23
.word __L18
.word __L18
.word __L18
.word __L18
.word __L18
.word __L18
.word __L18
.word __L22
.word __L18
.word __L18
.word __L18
.word __L21
.word __L18
.word __L20
.word __L19
.code
__L19:
.loc 162
xld.w %r10,0x00000012 ; 18
.loc 168
xjp __L52
__L20:
.loc 173
xld.w %r10,0x00000003 ; 3
.loc 178
xjp __L53
__L21:
.loc 183
xld.w %r10,0x00000006 ; 6
.loc 189
xjp __L54
__L22:
.loc 194
xld.w %r10,0x00000009 ; 9
.loc 199
xjp __L55
__L23:
.loc 204
xld.w %r10,0x0000000b ; 11
.loc 209
xjp __L56
__L18:
.loc 216
xld.w %r11,0x000402dd ; 262877
;.set volatile
xld.ub %r10,[%r11]
;.set novolatile
xand %r10,%r10,0x0000003b
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -