📄 device.src
字号:
.CPU 300
.IMPORT $MULI$3
.IMPORT $sp_regsv$3
.IMPORT $spregld2$3
.IMPORT _strstr
.IMPORT _OSMboxCreate
.IMPORT _OSMboxPend
.IMPORT _OSMboxPost
.IMPORT _COM1_Write
.IMPORT _COM1_Read
.IMPORT _COM1_open
.IMPORT _COM1_Init
.IMPORT _COM1_DeInit
.IMPORT _COM1_Close
.IMPORT _COM1_IO_Control
.IMPORT _COM1_Poweron
.IMPORT _COM1_PowerOff
.EXPORT _CreateFile
.EXPORT _ReadFile
.EXPORT _WriteFile
.EXPORT _g_device_map
.EXPORT _g_Control_Table
.SECTION P,CODE,ALIGN=2
.LINE "E:\Study\ucOS-II\ucOS-II\API\Device.c",10
_CreateFile: ; function: CreateFile
.STACK _CreateFile=20
JSR @$sp_regsv$3:16
.LINE 18
MOV.W R0,R4
.LINE 20
MOV.W #-1,R5
.LINE 21
SUB.W R6,R6
.LINE 21
L322:
.LINE 22
.LINE 23
MOV.W R6,R0
MOV.W #30,R1
JSR @$MULI$3:16
MOV.W #_g_device_map+1,R1
ADD.W R1,R0
MOV.W R4,R1
JSR @_strstr:16
MOV.W R0,R0
BEQ L323
.LINE 24
.LINE 25
MOV.W R6,R5
BSET.B #0,R5H
.LINE 26
BRA L324
L323:
.LINE 21
ADDS.W #1,R6
.LINE 21
MOV.W R6,R6
BEQ L322
L324:
.LINE 29
MOV.W R5,R0
CMP.B #-1,R0L
SUBX.B #-1,R0H
BEQ L325
.LINE 30
.LINE 31
MOV.W R6,R0
MOV.W #30,R1
JSR @$MULI$3:16
MOV.W R0,R3
SUB.W R0,R0
MOV.W @(_g_device_map+12:16,R3),R2
JSR @R2
MOV.W R0,R0
BNE L325
.LINE 32
.LINE 33
MOV.W R6,R0
MOV.W #14,R1
JSR @$MULI$3:16
MOV.W #_g_Control_Table,R4
ADD.W R0,R4
MOV.W #1,R0
JSR @_OSMboxCreate:16
MOV.W R0,@(6:16,R4)
.LINE 34
BEQ L325
.LINE 35
.LINE 36
MOV.W R6,R0
MOV.W #14,R1
JSR @$MULI$3:16
MOV.W #_g_Control_Table,R4
ADD.W R0,R4
MOV.W R6,@(2:16,R4)
SUB.W R0,R0
MOV.W R0,@R4
.LINE 37
MOV.W R6,R0
MOV.W #30,R1
JSR @$MULI$3:16
MOV.W #_g_device_map,R3
ADD.W R0,R3
MOV.B @R3,R0L
MOV.B R0L,@(4:16,R4)
.LINE 38
MOV.W R3,@(12:16,R4)
L325:
.LINE 45
MOV.W R5,R0
.LINE 46
JMP @$spregld2$3:16
.LINE 48
_ReadFile: ; function: ReadFile
.STACK _ReadFile=18
JSR @$sp_regsv$3:16
SUBS.W #2,SP
.LINE 54
MOV.W R1,R4
.LINE 57
MOV.W R0,R2
CMP.B #-1,R2L
SUBX.B #-1,R2H
BEQ L329
.LINE 58
.LINE 59
.LINE 60
MOV.B R0L,R0L
BNE L329
.LINE 61
.LINE 62
MOV.W SP,R2
PUSH.W R2
MOV.B R0L,R5L
MOV.B #14,R5H
MULXU.B R5H,R5
ADD.B #LOW _g_Control_Table,R5L
ADDX.B #HIGH _g_Control_Table,R5H
SUB.W R1,R1
MOV.W @(6:16,R5),R0
JSR @_OSMboxPend:16
ADDS.W #2,SP
.LINE 63
MOV.W @(12:16,R5),R2
MOV.W @(14:16,SP),R0
PUSH.W R0
MOV.W R4,R1
SUB.W R0,R0
MOV.W @(22:16,R2),R2
JSR @R2
ADDS.W #2,SP
MOV.W @(16:16,SP),R1
MOV.W R0,@R1
.LINE 64
MOV.W @(6:16,R5),R0
MOV.W #1,R1
JSR @_OSMboxPost:16
.LINE 65
MOV.B #1,R0L
BRA L331
L329:
.LINE 69
SUB.B R0L,R0L
.LINE 71
L331:
ADDS.W #2,SP
JMP @$spregld2$3:16
.LINE 73
_WriteFile: ; function: WriteFile
.STACK _WriteFile=18
JSR @$sp_regsv$3:16
SUBS.W #2,SP
.LINE 79
MOV.W R1,R4
.LINE 83
MOV.W R0,R2
CMP.B #-1,R2L
SUBX.B #-1,R2H
BEQ L332
.LINE 84
.LINE 85
.LINE 86
MOV.B R0L,R0L
BNE L332
.LINE 87
.LINE 88
MOV.W SP,R2
PUSH.W R2
MOV.B R0L,R5L
MOV.B #14,R5H
MULXU.B R5H,R5
ADD.B #LOW _g_Control_Table,R5L
ADDX.B #HIGH _g_Control_Table,R5H
SUB.W R1,R1
MOV.W @(6:16,R5),R0
JSR @_OSMboxPend:16
ADDS.W #2,SP
.LINE 89
MOV.W @(12:16,R5),R2
MOV.W @(14:16,SP),R0
PUSH.W R0
MOV.W R4,R1
SUB.W R0,R0
MOV.W @(20:16,R2),R2
JSR @R2
ADDS.W #2,SP
MOV.W @(16:16,SP),R1
MOV.W R0,@R1
.LINE 90
MOV.W @(6:16,R5),R0
MOV.W #1,R1
JSR @_OSMboxPost:16
.LINE 91
MOV.B #1,R0L
BRA L334
L332:
.LINE 95
SUB.B R0L,R0L
.LINE 98
L334:
ADDS.W #2,SP
JMP @$spregld2$3:16
.SECTION C,DATA,ALIGN=2
_g_device_map: ; static: g_device_map
.DATA.B H'01
.SDATAZ "COM1"
.DATAB.B 5,0
.DATAB.B 1,0
.DATA.W _COM1_Init
.DATA.W _COM1_DeInit
.DATA.W _COM1_open
.DATA.W _COM1_Close
.DATA.W _COM1_Write
.DATA.W _COM1_Read
.DATA.W _COM1_IO_Control
.DATA.W _COM1_Poweron
.DATA.W _COM1_PowerOff
.SECTION B,DATA,ALIGN=2
_g_Control_Table: ; static: g_Control_Table
.RES.W 7
.END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -