📄 sio.asm
字号:
??CFILE (C:\H8S\LTMeas\LTDriver\Sio.c)
??CFILE (H8S2144.h)
??CFILE (C:\H8S\LTMeas\LTDriver\Sio.c)
??CFILE (global.h)
??CFILE ($$string.h)
??CFILE ($$stddef.h)
??CFILE ($$string.h)
??CFILE (global.h)
??CFILE ($$stdio.h)
??CFILE ($$stdarg.h)
??CFILE ($$stdio.h)
??STRUCTDEF(???_iobuf,1,5,8)
??VAR ??UINT ??SYMBOL(???flag) ??OFFSET(0)
??VAR ??UINT ??SYMBOL(???fd) ??OFFSET(2)
??VAR ??SINT ??SYMBOL(???hold) ??OFFSET(4)
??VAR ??UCHAR ??SYMBOL(???use) ??OFFSET(6)
??VAR ??UCHAR ??SYMBOL(???state) ??OFFSET(7)
??STRUCTEND
??STRUCTDEF(???_iobtmp,2,2,10)
??VAR ??SCHAR ??SYMBOL(???use) ??OFFSET(0)
??VAR ??STRUCT(???_iobuf,1) ??SYMBOL(???file) ??OFFSET(2)
??STRUCTEND
??CFILE (global.h)
??CFILE ($$stdlib.h)
??STRUCTDEF(???div_t,3,2,4)
??VAR ??SINT ??SYMBOL(???quot) ??OFFSET(0)
??VAR ??SINT ??SYMBOL(???rem) ??OFFSET(2)
??STRUCTEND
??STRUCTDEF(???ldiv_t,4,2,8)
??VAR ??SLONG ??SYMBOL(???quot) ??OFFSET(0)
??VAR ??SLONG ??SYMBOL(???rem) ??OFFSET(4)
??STRUCTEND
??CFILE (global.h)
??CFILE ($$math.h)
??CFILE (global.h)
??CFILE (C:\H8S\LTMeas\LTDriver\Sio.c)
??CFILE (extern.h)
??CFILE (C:\H8S\LTMeas\LTDriver\Sio.c)
??CFILE (data.h)
??CFILE (C:\H8S\LTMeas\LTDriver\Sio.c)
segment TEXT ATR_CODE
public _sci_bps
_sci_bps:
PUSH.L ER6
MOV.L ER7,ER6
SUBS #2,ER7
??FUNCDEF(???sci_bps) ??VOID
??VAR ??SINT ??SYMBOL(???ch) ??OFFSET(8)
??VAR ??SLONG ??SYMBOL(???bps) ??OFFSET(10)
??FUNCEND
??BEGINBLOCK(171)
??VAR ??UCHAR ??SYMBOL(???br) ??OFFSET(-1)
??VAR ??UCHAR ??SYMBOL(???ck) ??OFFSET(-2)
??CLINE 175
MOV.L @(+10,ER6),ER0
MOV.W #9,R1
MOV.L #?00001,ER2
?00096:
OR.W R1,R1
BEQ ?00098:8
MOV.L @ER2+,ER3
CMP.L ER3,ER0
BNE ?00097:8
MOV.L @ER2,ER3
JMP @ER3
?00097:
ADDS #4,ER2
DEC.W #1,R1
BRA ?00096:8
?00098:
MOV.L @ER2,ER3
JMP @ER3
??BEGINBLOCK(176)
?00004:
??CLINE 178
MOV.B #H'7F,R0L
MOV.B R0L,@(-1,ER6)
??CLINE 179
MOV.B #H'02,R1L
MOV.B R1L,@(-2,ER6)
??CLINE 180
JMP @?00002
?00005:
??CLINE 182
MOV.B #H'7F,R0L
MOV.B R0L,@(-1,ER6)
??CLINE 183
MOV.B #H'01,R1L
MOV.B R1L,@(-2,ER6)
??CLINE 184
JMP @?00002
?00006:
??CLINE 186
MOV.B #H'FF,R0L
MOV.B R0L,@(-1,ER6)
??CLINE 187
XOR.B R1L,R1L
MOV.B R1L,@(-2,ER6)
??CLINE 188
JMP @?00002
?00007:
??CLINE 190
MOV.B #H'7F,R0L
MOV.B R0L,@(-1,ER6)
??CLINE 191
XOR.B R1L,R1L
MOV.B R1L,@(-2,ER6)
??CLINE 192
JMP @?00002
?00008:
??CLINE 194
MOV.B #H'3F,R0L
MOV.B R0L,@(-1,ER6)
??CLINE 195
XOR.B R1L,R1L
MOV.B R1L,@(-2,ER6)
??CLINE 196
JMP @?00002
?00009:
??CLINE 198
MOV.B #H'1F,R0L
MOV.B R0L,@(-1,ER6)
??CLINE 199
XOR.B R1L,R1L
MOV.B R1L,@(-2,ER6)
??CLINE 200
JMP @?00002
?00010:
??CLINE 202
MOV.B #H'0F,R0L
MOV.B R0L,@(-1,ER6)
??CLINE 203
XOR.B R1L,R1L
MOV.B R1L,@(-2,ER6)
??CLINE 204
BRA ?00002:8
?00011:
??CLINE 206
MOV.B #H'09,R0L
MOV.B R0L,@(-1,ER6)
??CLINE 207
XOR.B R1L,R1L
MOV.B R1L,@(-2,ER6)
??CLINE 208
BRA ?00002:8
?00012:
??CLINE 210
MOV.B #H'04,R0L
MOV.B R0L,@(-1,ER6)
??CLINE 211
XOR.B R1L,R1L
MOV.B R1L,@(-2,ER6)
??CLINE 212
BRA ?00002:8
?00003:
??CLINE 214
JMP @_sci_bps_end
??ENDBLOCK(215)
??CLINE 215
BRA ?00002:8
?00001:
DC.L H'0000012C,?00004
DC.L H'000004B0,?00005
DC.L H'00000960,?00006
DC.L H'000012C0,?00007
DC.L H'00002580,?00008
DC.L H'00004B00,?00009
DC.L H'00009600,?00010
DC.L H'0000E100,?00011
DC.L H'0001C200,?00012
DC.L ?00003
?00002:
??CLINE 217
MOV.B @(-2,ER6),R0L
EXTU.W R0
PUSH.W R0
MOV.B @(-1,ER6),R0L
EXTU.W R0
PUSH.W R0
MOV.W @(+8,ER6),R0
PUSH.W R0
JSR @_sci_init
ADDS.L #H'00000002,ER7
ADDS.L #H'00000004,ER7
??CLINE 218
MOV.W #H'0001,R0
PUSH.W R0
MOV.W @(+8,ER6),R1
PUSH.W R1
JSR @_rs_rs_cmd
ADDS.L #H'00000004,ER7
??CLINE 219
XOR.W R0,R0
PUSH.W R0
MOV.W @(+8,ER6),R1
PUSH.W R1
JSR @_rs_er_cmd
ADDS.L #H'00000004,ER7
??CLINE 220
MOV.W @(+8,ER6),R0
PUSH.W R0
JSR @_rs_pointer_init
ADDS.L #H'00000002,ER7
??ENDBLOCK(221)
??CLINE 221
_sci_bps_end:
MOV.L ER6,ER7
POP.L ER6
RTS
segment TEXT ATR_CODE
public _sci_init
_sci_init:
PUSH.L ER6
MOV.L ER7,ER6
SUBS #2,ER7
??FUNCDEF(???sci_init) ??VOID
??VAR ??SINT ??SYMBOL(???ch) ??OFFSET(8)
??VAR ??UCHAR ??SYMBOL(???br) ??OFFSET(11)
??VAR ??UCHAR ??SYMBOL(???cksel) ??OFFSET(13)
??FUNCEND
??BEGINBLOCK(242)
??VAR ??UCHAR ??SYMBOL(???wk) ??OFFSET(-1)
??CLINE 245
MOV.W @(+8,ER6),R0
OR.W R0,R0
BNE ?00013
??BEGINBLOCK(246)
??CLINE 250
MOV.B @H'00FFFFDD:8,R0L
MOV.B R0L,@(-1,ER6)
??CLINE 251
MOV.B R0L,@(-1,ER6)
??CLINE 252
MOV.B R0L,@(-1,ER6)
??CLINE 254
MOV.B @(+11,ER6),R1L
MOV.L #H'00FFFFD9,ER2
MOV.B R1L,@ER2
??CLINE 256
MOV.L #_str00000,ER0
PUSH.L ER0
JSR @_B8
ADDS.L #H'00000004,ER7
MOV.L #H'00FFFFD8,ER1
MOV.B R0L,@ER1
??CLINE 266
MOV.B @(+13,ER6),R0L
EXTU.W R0
MOV.B @H'00FFFFD8:8,R2L
EXTU.W R2
OR.W R0,R2
MOV.B R2L,@ER1
??CLINE 268
MOV.B @H'00FFFFDC:8,R0L
MOV.B R0L,@(-1,ER6)
??CLINE 269
MOV.L #_str00001,ER2
PUSH.L ER2
JSR @_B8
ADDS.L #H'00000004,ER7
MOV.L #H'00FFFFDC,ER1
MOV.B R0L,@ER1
??CLINE 281
MOV.L #_str00002,ER0
PUSH.L ER0
JSR @_B8
ADDS.L #H'00000004,ER7
MOV.L #H'00FFFFDA,ER1
MOV.B R0L,@ER1
??ENDBLOCK(294)
JMP @?00014
?00013:
??CLINE 295
MOV.W @(+8,ER6),R0
CMP.W #H'0001,R0
BNE ?00015
??BEGINBLOCK(296)
??CLINE 301
MOV.B @H'00FFFF8D:8,R0L
MOV.B R0L,@(-1,ER6)
??CLINE 302
MOV.B R0L,@(-1,ER6)
??CLINE 303
MOV.B R0L,@(-1,ER6)
??CLINE 305
MOV.B @(+11,ER6),R1L
MOV.L #H'00FFFF89,ER2
MOV.B R1L,@ER2
??CLINE 307
MOV.L #_str00003,ER0
PUSH.L ER0
JSR @_B8
ADDS.L #H'00000004,ER7
MOV.L #H'00FFFF88,ER1
MOV.B R0L,@ER1
??CLINE 317
MOV.B @(+13,ER6),R0L
EXTU.W R0
MOV.B @H'00FFFF88:8,R2L
EXTU.W R2
OR.W R0,R2
MOV.B R2L,@ER1
??CLINE 319
MOV.B @H'00FFFF8C:8,R0L
MOV.B R0L,@(-1,ER6)
??CLINE 320
MOV.L #_str00001,ER2
PUSH.L ER2
JSR @_B8
ADDS.L #H'00000004,ER7
MOV.L #H'00FFFF8C,ER1
MOV.B R0L,@ER1
??CLINE 331
MOV.L #_str00002,ER0
PUSH.L ER0
JSR @_B8
ADDS.L #H'00000004,ER7
MOV.L #H'00FFFF8A,ER1
MOV.B R0L,@ER1
??ENDBLOCK(341)
JMP @?00016
?00015:
??CLINE 342
MOV.W @(+8,ER6),R0
CMP.W #H'0002,R0
BNE ?00017
??BEGINBLOCK(343)
??CLINE 348
MOV.B @H'00FFFFA5:8,R0L
MOV.B R0L,@(-1,ER6)
??CLINE 349
MOV.B R0L,@(-1,ER6)
??CLINE 350
MOV.B R0L,@(-1,ER6)
??CLINE 352
MOV.B @(+11,ER6),R1L
MOV.L #H'00FFFFA1,ER2
MOV.B R1L,@ER2
??CLINE 354
MOV.L #_str00004,ER0
PUSH.L ER0
JSR @_B8
ADDS.L #H'00000004,ER7
MOV.L #H'00FFFFA0,ER1
MOV.B R0L,@ER1
??CLINE 364
MOV.B @(+13,ER6),R0L
EXTU.W R0
MOV.B @H'00FFFFA0:8,R2L
EXTU.W R2
OR.W R0,R2
MOV.B R2L,@ER1
??CLINE 366
MOV.B @H'00FFFFA4:8,R0L
MOV.B R0L,@(-1,ER6)
??CLINE 367
MOV.L #_str00001,ER2
PUSH.L ER2
JSR @_B8
ADDS.L #H'00000004,ER7
MOV.L #H'00FFFFA4,ER1
MOV.B R0L,@ER1
??CLINE 378
MOV.L #_str00005,ER0
PUSH.L ER0
JSR @_B8
ADDS.L #H'00000004,ER7
MOV.L #H'00FFFFA2,ER1
MOV.B R0L,@ER1
??ENDBLOCK(388)
?00017:
?00016:
?00014:
??ENDBLOCK(389)
??CLINE 389
_sci_init_end:
MOV.L ER6,ER7
POP.L ER6
RTS
segment TEXT ATR_CODE
public _rs_pointer_init
_rs_pointer_init:
PUSH.L ER6
MOV.L ER7,ER6
SUBS #2,ER7
??FUNCDEF(???rs_pointer_init) ??VOID
??VAR ??SINT ??SYMBOL(???ch) ??OFFSET(8)
??FUNCEND
??BEGINBLOCK(402)
??VAR ??UINT ??SYMBOL(???c) ??OFFSET(-2)
??CLINE 405
XOR.W R0,R0
MOV.W R0,@(-2,ER6)
BRA ?00019:8
?00018:
MOV.W @(-2,ER6),R0
INC.W #H'0001,R0
MOV.W R0,@(-2,ER6)
?00019:
MOV.W @(-2,ER6),R0
CMP.W #H'0400,R0
BCC ?00020:8
??BEGINBLOCK(406)
??CLINE 407
MOV.W @(+8,ER6),R0
EXTS.L ER0
MOV.L #H'00000400,ER1
PUSH.L ER0
PUSH.L ER1
JSR @__l_mul
ADDS.L #H'00000004,ER7
POP.L ER0
MOV.L #_rs_send_buf,ER2
ADD.L ER0,ER2
MOV.W @(-2,ER6),R0
EXTU.L ER0
ADD.L ER0,ER2
XOR.B R0L,R0L
MOV.B R0L,@ER2
??ENDBLOCK(408)
BRA ?00018:8
?00020:
??CLINE 410
XOR.W R0,R0
MOV.W R0,@(-2,ER6)
BRA ?00022:8
?00021:
MOV.W @(-2,ER6),R0
INC.W #H'0001,R0
MOV.W R0,@(-2,ER6)
?00022:
MOV.W @(-2,ER6),R0
CMP.W #H'0200,R0
BCC ?00023:8
??BEGINBLOCK(411)
??CLINE 412
MOV.W @(+8,ER6),R0
EXTS.L ER0
MOV.L #H'00000200,ER1
PUSH.L ER0
PUSH.L ER1
JSR @__l_mul
ADDS.L #H'00000004,ER7
POP.L ER0
MOV.L #_rs_recv_buf,ER2
ADD.L ER0,ER2
MOV.W @(-2,ER6),R0
EXTU.L ER0
ADD.L ER0,ER2
XOR.B R0L,R0L
MOV.B R0L,@ER2
??ENDBLOCK(413)
BRA ?00021:8
?00023:
??CLINE 415
MOV.W @(+8,ER6),R0
EXTS.L ER0
SHLL.L ER0
MOV.L #_rs_send_wp,ER1
ADD.L ER0,ER1
XOR.W R0,R0
MOV.W R0,@ER1
??CLINE 416
MOV.W @(+8,ER6),R1
EXTS.L ER1
SHLL.L ER1
MOV.L #_rs_send_rp,ER2
ADD.L ER1,ER2
MOV.W R0,@ER2
??CLINE 417
MOV.W @(+8,ER6),R1
EXTS.L ER1
SHLL.L ER1
MOV.L #_rs_send_c,ER2
ADD.L ER1,ER2
MOV.W #H'0400,R1
MOV.W R1,@ER2
??CLINE 419
MOV.W @(+8,ER6),R2
EXTS.L ER2
SHLL.L ER2
MOV.L #_rs_recv_wp,ER3
ADD.L ER2,ER3
MOV.W R0,@ER3
??CLINE 420
MOV.W @(+8,ER6),R2
EXTS.L ER2
SHLL.L ER2
MOV.L #_rs_recv_rp,ER3
ADD.L ER2,ER3
MOV.W R0,@ER3
??CLINE 421
MOV.W @(+8,ER6),R2
EXTS.L ER2
SHLL.L ER2
MOV.L #_rs_recv_c,ER3
ADD.L ER2,ER3
MOV.W #H'0200,R2
MOV.W R2,@ER3
??ENDBLOCK(422)
??CLINE 422
_rs_pointer_init_end:
MOV.L ER6,ER7
POP.L ER6
RTS
segment TEXT ATR_CODE
public _IntERI0
_IntERI0:
STM.L ER0-ER3,@-SP
STM.L ER4-ER6,@-SP
??FUNCDEF(???IntERI0) ??VOID
??FUNCEND
??BEGINBLOCK(434)
??CLINE 435
XOR.W R0,R0
PUSH.W R0
JSR @_rxerr_job
ADDS.L #H'00000002,ER7
??ENDBLOCK(436)
??CLINE 436
_IntERI0_end:
LDM.L @SP+,ER4-ER6
LDM.L @SP+,ER0-ER3
RTE
segment TEXT ATR_CODE
public _IntERI1
_IntERI1:
STM.L ER0-ER3,@-SP
STM.L ER4-ER6,@-SP
??FUNCDEF(???IntERI1) ??VOID
??FUNCEND
??BEGINBLOCK(448)
??CLINE 449
MOV.W #H'0001,R0
PUSH.W R0
JSR @_rxerr_job
ADDS.L #H'00000002,ER7
??ENDBLOCK(450)
??CLINE 450
_IntERI1_end:
LDM.L @SP+,ER4-ER6
LDM.L @SP+,ER0-ER3
RTE
segment TEXT ATR_CODE
public _IntERI2
_IntERI2:
STM.L ER0-ER3,@-SP
STM.L ER4-ER6,@-SP
??FUNCDEF(???IntERI2) ??VOID
??FUNCEND
??BEGINBLOCK(462)
??CLINE 463
MOV.W #H'0002,R0
PUSH.W R0
JSR @_rxerr_job
ADDS.L #H'00000002,ER7
??ENDBLOCK(464)
??CLINE 464
_IntERI2_end:
LDM.L @SP+,ER4-ER6
LDM.L @SP+,ER0-ER3
RTE
segment TEXT ATR_CODE
public _rxerr_job
_rxerr_job:
PUSH.L ER6
MOV.L ER7,ER6
??FUNCDEF(???rxerr_job) ??VOID
??VAR ??SINT ??SYMBOL(???ch) ??OFFSET(8)
??FUNCEND
??BEGINBLOCK(476)
??CLINE 477
MOV.W @(+8,ER6),R0
EXTS.L ER0
SHLL.L #H'00000002,ER0
MOV.L #_ssr,ER1
ADD.L ER0,ER1
MOV.L @ER1,ER0
MOV.B @ER0,R0L
EXTU.W R0
AND.W #H'0020,R0
OR.W R0,R0
BEQ ?00024:8
??BEGINBLOCK(478)
??CLINE 479
MOV.W @(+8,ER6),R0
EXTS.L ER0
SHLL.L #H'00000002,ER0
MOV.L #_ssr,ER1
ADD.L ER0,ER1
MOV.L @ER1,ER0
MOV.B @ER0,R1L
AND.B #H'DF,R1L
MOV.B R1L,@ER0
??CLINE 480
MOV.W @(+8,ER6),R0
EXTS.L ER0
SHLL.L ER0
MOV.L #_orerr_c,ER1
ADD.L ER0,ER1
MOV.W @ER1,R0
INC.W #H'0001,R0
MOV.W R0,@ER1
??ENDBLOCK(481)
?00024:
??CLINE 482
MOV.W @(+8,ER6),R0
EXTS.L ER0
SHLL.L #H'00000002,ER0
MOV.L #_ssr,ER1
ADD.L ER0,ER1
MOV.L @ER1,ER0
MOV.B @ER0,R0L
EXTU.W R0
AND.W #H'0010,R0
OR.W R0,R0
BEQ ?00025:8
??BEGINBLOCK(483)
??CLINE 484
MOV.W @(+8,ER6),R0
EXTS.L ER0
SHLL.L #H'00000002,ER0
MOV.L #_ssr,ER1
ADD.L ER0,ER1
MOV.L @ER1,ER0
MOV.B @ER0,R1L
AND.B #H'EF,R1L
MOV.B R1L,@ER0
??CLINE 485
MOV.W @(+8,ER6),R0
EXTS.L ER0
SHLL.L ER0
MOV.L #_frerr_c,ER1
ADD.L ER0,ER1
MOV.W @ER1,R0
INC.W #H'0001,R0
MOV.W R0,@ER1
??ENDBLOCK(486)
?00025:
??CLINE 487
MOV.W @(+8,ER6),R0
EXTS.L ER0
SHLL.L #H'00000002,ER0
MOV.L #_ssr,ER1
ADD.L ER0,ER1
MOV.L @ER1,ER0
MOV.B @ER0,R0L
EXTU.W R0
AND.W #H'0008,R0
OR.W R0,R0
BEQ ?00026:8
??BEGINBLOCK(488)
??CLINE 489
MOV.W @(+8,ER6),R0
EXTS.L ER0
SHLL.L #H'00000002,ER0
MOV.L #_ssr,ER1
ADD.L ER0,ER1
MOV.L @ER1,ER0
MOV.B @ER0,R1L
AND.B #H'F7,R1L
MOV.B R1L,@ER0
??CLINE 490
MOV.W @(+8,ER6),R0
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -