📄 window.src
字号:
.CPU 300
.IMPORT $sp_regsv$3
.IMPORT $spregld2$3
.IMPORT _memcpy
.IMPORT _memset
.IMPORT _OSCPUSaveSR
.IMPORT _OSCPURestoreSR
.IMPORT _OSMboxCreate
.IMPORT _OSMboxPend
.IMPORT _OSMboxPost
.EXPORT _MsgPool
.EXPORT _pCurrMsg
.EXPORT _pMsgTail
.EXPORT _FreeMsgRcd
.EXPORT _FreeWndRcd
.EXPORT _pTopWnd
.EXPORT _DesktopWnd
.EXPORT _WinPool
.EXPORT _g_hMessageEvent
.EXPORT _InitWindow
.EXPORT _CE_BGetMsg
.EXPORT _CE_GetMsg
.EXPORT _CE_PeekMsg
.EXPORT _CE_GlanceMsg
.EXPORT _CE_IsEmptyMsg
.EXPORT _CE_SearchMsg
.EXPORT _CE_DispatchMsg
.EXPORT _CE_PostMsg
.EXPORT _CE_SendMsg
.EXPORT _CE_RemoveMsg
.EXPORT _CE_CreateWnd
.EXPORT _CE_DestroyWnd
.EXPORT _CE_CloseWnd
.EXPORT _CE_GetParent
.EXPORT _CE_GetUserData
.EXPORT _CE_SetUserData
.EXPORT _SystemIdel
.SECTION P,CODE,ALIGN=2
.LINE "E:\Study\ucOS-II\ucOS-II\API\Window.c",24
_InitWindow: ; function: InitWindow
.STACK _InitWindow=6
PUSH.W R6
PUSH.W R5
.LINE 25
MOV.W #16,R5
.LINE 28
PUSH.W R5
SUB.W R1,R1
MOV.W #_MsgPool,R0
JSR @_memset:16
ADDS.W #2,SP
.LINE 29
MOV.B #1,R0L
MOV.B R0L,@_pMsgTail:16
MOV.B R0L,@_pCurrMsg:16
.LINE 30
MOV.B #2,R0L
MOV.B R0L,@_FreeMsgRcd:16
.LINE 32
MOV.W #2,R6
.LINE 32
BRA L384
L383:
.LINE 33
MOV.B R6L,R0L
ADD.B #1,R0L
MOV.W R6,R1
ADD.W R1,R1
ADD.W R1,R1
ADD.W R1,R1
MOV.B R0L,@(_MsgPool-8:16,R1)
.LINE 32
ADDS.W #1,R6
L384:
.LINE 32
MOV.W R6,R0
CMP.B #2,R0L
SUBX.B #0,R0H
BLO L383
.LINE 35
MOV.W #32,R0
PUSH.W R0
SUB.W R1,R1
MOV.W #_WinPool,R0
JSR @_memset:16
ADDS.W #2,SP
.LINE 36
MOV.B #1,R0L
MOV.B R0L,@_FreeWndRcd:16
.LINE 38
MOV.W #_WinPool,R0
ADD.W R5,R0
SUB.W R5,R0
MOV.W #2,R1
MOV.W R1,@(2:16,R0)
.LINE 39
SUB.W R0,R0
MOV.B R0L,@_pTopWnd:16
.LINE 40
JSR @_OSMboxCreate:16
MOV.W R0,@_g_hMessageEvent:16
.LINE 42
POP.W R5
POP.W R6
RTS
.LINE 43
_SystemIdel: ; function: SystemIdel
.STACK _SystemIdel=4
SUBS.W #2,SP
.LINE 44
.LINE 47
MOV.W SP,R0
PUSH.W R0
SUB.W R1,R1
MOV.W @_g_hMessageEvent:16,R0
JSR @_OSMboxPend:16
ADDS.W #2,SP
.LINE 49
ADDS.W #2,SP
RTS
.LINE 58
_CE_BGetMsg: ; function: CE_BGetMsg
.STACK _CE_BGetMsg=12
JSR @$sp_regsv$3:16
.LINE 59
MOV.W #_pCurrMsg,R6
MOV.W R0,R3
.LINE 72
BRA L386
L385:
.LINE 73
.LINE 74
BSR _SystemIdel
L386:
.LINE 72
MOV.B @R6,R0L
MOV.B @_pMsgTail:16,R0H
CMP.B R0H,R0L
BEQ L385
.LINE 79
JSR @_OSCPUSaveSR:16
MOV.B R0L,R5H
MOV.B @R6,R5L
.LINE 83
.LINE 84
MOV.B R5L,R1L
SUB.B R1H,R1H
ADD.W R1,R1
ADD.W R1,R1
ADD.W R1,R1
MOV.B @(_MsgPool-8:16,R1),R0L
MOV.B R0L,@R6
.LINE 86
MOV.W #8,R1
PUSH.W R1
MOV.B R0L,R1L
SUBS.W #1,R1
ADD.W R1,R1
ADD.W R1,R1
ADD.W R1,R1
ADD.B #LOW _MsgPool,R1L
ADDX.B #HIGH _MsgPool,R1H
MOV.W R3,R0
JSR @_memcpy:16
ADDS.W #2,SP
.LINE 87
MOV.W #8,R0
PUSH.W R0
MOV.B R5L,R3L
SUB.B R3H,R3H
MOV.W R3,R0
SUBS.W #1,R0
ADD.W R0,R0
ADD.W R0,R0
ADD.W R0,R0
SUB.W R1,R1
ADD.B #LOW _MsgPool,R0L
ADDX.B #HIGH _MsgPool,R0H
JSR @_memset:16
ADDS.W #2,SP
MOV.B @_FreeMsgRcd:16,R0L
.LINE 89
ADD.W R3,R3
ADD.W R3,R3
ADD.W R3,R3
MOV.B R0L,@(_MsgPool-8:16,R3)
.LINE 90
MOV.B R5L,@_FreeMsgRcd:16
.LINE 93
MOV.B R5H,R0L
JSR @_OSCPURestoreSR:16
.LINE 95
MOV.W #1,R0
.LINE 96
JMP @$spregld2$3:16
.LINE 105
_CE_GetMsg: ; function: CE_GetMsg
.STACK _CE_GetMsg=12
JSR @$sp_regsv$3:16
.LINE 106
MOV.W #_pCurrMsg,R6
MOV.W R0,R3
.LINE 119
BRA L389
L388:
.LINE 120
.LINE 121
JSR @_SystemIdel:16
L389:
.LINE 119
MOV.B @R6,R0L
MOV.B @_pMsgTail:16,R0H
CMP.B R0H,R0L
BEQ L388
.LINE 125
JSR @_OSCPUSaveSR:16
MOV.B R0L,R5H
MOV.B @R6,R5L
.LINE 129
.LINE 130
MOV.B R5L,R1L
SUB.B R1H,R1H
ADD.W R1,R1
ADD.W R1,R1
ADD.W R1,R1
MOV.B @(_MsgPool-8:16,R1),R0L
MOV.B R0L,@R6
.LINE 132
MOV.W #8,R1
PUSH.W R1
MOV.B R0L,R1L
SUBS.W #1,R1
ADD.W R1,R1
ADD.W R1,R1
ADD.W R1,R1
ADD.B #LOW _MsgPool,R1L
ADDX.B #HIGH _MsgPool,R1H
MOV.W R3,R0
JSR @_memcpy:16
ADDS.W #2,SP
.LINE 133
MOV.W #8,R0
PUSH.W R0
MOV.B R5L,R3L
SUB.B R3H,R3H
MOV.W R3,R0
SUBS.W #1,R0
ADD.W R0,R0
ADD.W R0,R0
ADD.W R0,R0
SUB.W R1,R1
ADD.B #LOW _MsgPool,R0L
ADDX.B #HIGH _MsgPool,R0H
JSR @_memset:16
ADDS.W #2,SP
MOV.B @_FreeMsgRcd:16,R0L
.LINE 135
ADD.W R3,R3
ADD.W R3,R3
ADD.W R3,R3
MOV.B R0L,@(_MsgPool-8:16,R3)
.LINE 136
MOV.B R5L,@_FreeMsgRcd:16
.LINE 139
MOV.B R5H,R0L
JSR @_OSCPURestoreSR:16
.LINE 141
MOV.W #1,R0
.LINE 142
JMP @$spregld2$3:16
.LINE 151
_CE_PeekMsg: ; function: CE_PeekMsg
.STACK _CE_PeekMsg=12
JSR @$sp_regsv$3:16
.LINE 152
MOV.W R0,R3
.LINE 164
MOV.W #_pCurrMsg,R5
MOV.B @R5,R1L
MOV.B @_pMsgTail:16,R1H
CMP.B R1H,R1L
BNE L391
.LINE 165
.LINE 167
SUB.W R0,R0
BRA L392
L391:
.LINE 172
JSR @_OSCPUSaveSR:16
MOV.B R0L,R4L
MOV.B @R5,R6L
.LINE 176
.LINE 177
MOV.B R6L,R1L
SUB.B R1H,R1H
ADD.W R1,R1
ADD.W R1,R1
ADD.W R1,R1
MOV.B @(_MsgPool-8:16,R1),R0L
MOV.B R0L,@R5
.LINE 179
MOV.W #8,R1
PUSH.W R1
MOV.B R0L,R1L
SUBS.W #1,R1
ADD.W R1,R1
ADD.W R1,R1
ADD.W R1,R1
ADD.B #LOW _MsgPool,R1L
ADDX.B #HIGH _MsgPool,R1H
MOV.W R3,R0
JSR @_memcpy:16
ADDS.W #2,SP
.LINE 180
MOV.W #8,R0
PUSH.W R0
MOV.B R6L,R5L
SUB.B R5H,R5H
MOV.W R5,R0
SUBS.W #1,R0
ADD.W R0,R0
ADD.W R0,R0
ADD.W R0,R0
SUB.W R1,R1
ADD.B #LOW _MsgPool,R0L
ADDX.B #HIGH _MsgPool,R0H
JSR @_memset:16
ADDS.W #2,SP
MOV.B @_FreeMsgRcd:16,R0L
.LINE 182
ADD.W R5,R5
ADD.W R5,R5
ADD.W R5,R5
MOV.B R0L,@(_MsgPool-8:16,R5)
.LINE 183
MOV.B R6L,@_FreeMsgRcd:16
.LINE 186
MOV.B R4L,R0L
JSR @_OSCPURestoreSR:16
.LINE 188
MOV.W #1,R0
.LINE 189
L392:
JMP @$spregld2$3:16
.LINE 197
_CE_GlanceMsg: ; function: CE_GlanceMsg
.STACK _CE_GlanceMsg=6
PUSH.W R6
PUSH.W R5
.LINE 198
MOV.W R0,R5
.LINE 219
MOV.B @_pCurrMsg:16,R1L
MOV.B @_pMsgTail:16,R1H
CMP.B R1H,R1L
BNE L393
.LINE 220
.LINE 221
SUB.W R0,R0
BRA L394
L393:
.LINE 226
JSR @_OSCPUSaveSR:16
MOV.B R0L,R6L
.LINE 239
MOV.W #8,R1
PUSH.W R1
MOV.B @_pCurrMsg:16,R1L
ADD.W R1,R1
ADD.W R1,R1
ADD.W R1,R1
MOV.B @(_MsgPool-8:16,R1),R1L
SUB.B R1H,R1H
SUBS.W #1,R1
ADD.W R1,R1
ADD.W R1,R1
ADD.W R1,R1
ADD.B #LOW _MsgPool,R1L
ADDX.B #HIGH _MsgPool,R1H
MOV.W R5,R0
JSR @_memcpy:16
ADDS.W #2,SP
.LINE 241
MOV.B R6L,R0L
JSR @_OSCPURestoreSR:16
.LINE 243
MOV.W #1,R0
.LINE 244
L394:
POP.W R5
POP.W R6
RTS
.LINE 246
_CE_IsEmptyMsg: ; function: CE_IsEmptyMsg
.STACK _CE_IsEmptyMsg=2
.LINE 247
.LINE 248
MOV.W @(2:16,R0),R1
BNE L395
MOV.W @(4:16,R0),R1
BNE L395
MOV.W @(6:16,R0),R1
BNE L395
MOV.B @R0,R1L
BNE L395
.LINE 249
MOV.B #1,R0L
RTS
L395:
.LINE 251
SUB.B R0L,R0L
.LINE 252
RTS
.LINE 255
_CE_SearchMsg: ; function: CE_SearchMsg
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -