📄 sio.asm
字号:
EXTS.L ER0
SHLL.L ER0
MOV.L #_peerr_c,ER1
ADD.L ER0,ER1
MOV.W @ER1,R0
INC.W #H'0001,R0
MOV.W R0,@ER1
??ENDBLOCK(491)
?00026:
??ENDBLOCK(492)
??CLINE 492
_rxerr_job_end:
POP.L ER6
RTS
segment TEXT ATR_CODE
public _IntTXI0
_IntTXI0:
STM.L ER0-ER3,@-SP
STM.L ER4-ER6,@-SP
??FUNCDEF(???IntTXI0) ??VOID
??FUNCEND
??BEGINBLOCK(509)
??CLINE 510
XOR.W R0,R0
PUSH.W R0
JSR @_inttx_job
ADDS.L #H'00000002,ER7
??ENDBLOCK(511)
??CLINE 511
_IntTXI0_end:
LDM.L @SP+,ER4-ER6
LDM.L @SP+,ER0-ER3
RTE
segment TEXT ATR_CODE
public _IntTXI1
_IntTXI1:
STM.L ER0-ER3,@-SP
STM.L ER4-ER6,@-SP
??FUNCDEF(???IntTXI1) ??VOID
??FUNCEND
??BEGINBLOCK(524)
??CLINE 525
MOV.W #H'0001,R0
PUSH.W R0
JSR @_inttx_job
ADDS.L #H'00000002,ER7
??ENDBLOCK(526)
??CLINE 526
_IntTXI1_end:
LDM.L @SP+,ER4-ER6
LDM.L @SP+,ER0-ER3
RTE
segment TEXT ATR_CODE
public _IntTXI2
_IntTXI2:
STM.L ER0-ER3,@-SP
STM.L ER4-ER6,@-SP
??FUNCDEF(???IntTXI2) ??VOID
??FUNCEND
??BEGINBLOCK(539)
??CLINE 540
MOV.W #H'0002,R0
PUSH.W R0
JSR @_inttx_job
ADDS.L #H'00000002,ER7
??ENDBLOCK(541)
??CLINE 541
_IntTXI2_end:
LDM.L @SP+,ER4-ER6
LDM.L @SP+,ER0-ER3
RTE
segment TEXT ATR_CODE
public _inttx_job
_inttx_job:
PUSH.L ER6
MOV.L ER7,ER6
SUBS #2,ER7
??FUNCDEF(???inttx_job) ??VOID
??VAR ??SINT ??SYMBOL(???ch) ??OFFSET(8)
??FUNCEND
??BEGINBLOCK(554)
??VAR ??UCHAR ??SYMBOL(???ichr) ??OFFSET(-1)
??CLINE 557
MOV.W @(+8,ER6),R0
EXTS.L ER0
SHLL.L ER0
MOV.L #_rs_send_c,ER1
ADD.L ER0,ER1
MOV.W @ER1,R0
CMP.W #H'0400,R0
BNE ?00027:8
??BEGINBLOCK(558)
??CLINE 559
XOR.W R0,R0
PUSH.W R0
MOV.W @(+8,ER6),R1
PUSH.W R1
JSR @_rs_inttx
ADDS.L #H'00000004,ER7
??ENDBLOCK(560)
?00027:
??CLINE 562
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'0080,R0
OR.W R0,R0
BEQ ?00028
MOV.W @(+8,ER6),R0
EXTS.L ER0
SHLL.L ER0
MOV.L #_rs_send_c,ER1
ADD.L ER0,ER1
MOV.W @ER1,R0
CMP.W #H'0400,R0
BCC ?00028
??BEGINBLOCK(563)
??CLINE 564
MOV.W @(+8,ER6),R0
EXTS.L ER0
MOV.L ER0,ER1
SHLL.L ER1
MOV.L #_rs_send_rp,ER2
ADD.L ER1,ER2
MOV.W @ER2,R1
EXTU.L ER1
MOV.L ER0,ER2
MOV.L #H'00000400,ER3
PUSH.L ER2
PUSH.L ER3
JSR @__l_mul
ADDS.L #H'00000004,ER7
POP.L ER2
MOV.L #_rs_send_buf,ER4
ADD.L ER2,ER4
ADD.L ER1,ER4
MOV.B @ER4,R1L
SHLL.L #H'00000002,ER0
MOV.L #_tdr,ER2
ADD.L ER0,ER2
MOV.L @ER2,ER0
MOV.B R1L,@ER0
??CLINE 565
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'7F,R1L
MOV.B R1L,@ER0
??CLINE 566
MOV.W @(+8,ER6),R0
EXTS.L ER0
SHLL.L ER0
MOV.L #_rs_send_rp,ER1
ADD.L ER0,ER1
MOV.W @ER1,R0
INC.W #H'0001,R0
MOV.W R0,@ER1
??CLINE 567
MOV.W @(+8,ER6),R0
EXTS.L ER0
SHLL.L ER0
MOV.L #_rs_send_rp,ER1
ADD.L ER0,ER1
MOV.W @ER1,R0
AND.W #H'03FF,R0
MOV.W R0,@ER1
??CLINE 568
MOV.W @(+8,ER6),R0
EXTS.L ER0
SHLL.L ER0
MOV.L #_rs_send_c,ER1
ADD.L ER0,ER1
MOV.W @ER1,R0
INC.W #H'0001,R0
MOV.W R0,@ER1
??CLINE 570
MOV.W @(+8,ER6),R0
EXTS.L ER0
SHLL.L ER0
MOV.L #_rs_send_c,ER1
ADD.L ER0,ER1
MOV.W @ER1,R0
CMP.W #H'0400,R0
BNE ?00029:8
??BEGINBLOCK(571)
??CLINE 572
MOV.W @(+8,ER6),R0
OR.W R0,R0
BNE ?00030:8
??BEGINBLOCK(572)
??ENDBLOCK(574)
?00030:
??ENDBLOCK(575)
?00029:
??ENDBLOCK(578)
?00028:
??ENDBLOCK(579)
??CLINE 579
_inttx_job_end:
MOV.L ER6,ER7
POP.L ER6
RTS
segment TEXT ATR_CODE
public _tx_job
_tx_job:
PUSH.L ER6
MOV.L ER7,ER6
??FUNCDEF(???tx_job) ??VOID
??VAR ??SINT ??SYMBOL(???ch) ??OFFSET(8)
??FUNCEND
??BEGINBLOCK(592)
?00031:
??CLINE 593
??BEGINBLOCK(594)
??CLINE 596
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'0080,R0
OR.W R0,R0
BEQ ?00033
MOV.W @(+8,ER6),R0
EXTS.L ER0
SHLL.L ER0
MOV.L #_rs_send_c,ER1
ADD.L ER0,ER1
MOV.W @ER1,R0
CMP.W #H'0400,R0
BCC ?00033
??BEGINBLOCK(597)
??CLINE 598
MOV.W @(+8,ER6),R0
EXTS.L ER0
MOV.L ER0,ER1
SHLL.L ER1
MOV.L #_rs_send_rp,ER2
ADD.L ER1,ER2
MOV.W @ER2,R1
EXTU.L ER1
MOV.L ER0,ER2
MOV.L #H'00000400,ER3
PUSH.L ER2
PUSH.L ER3
JSR @__l_mul
ADDS.L #H'00000004,ER7
POP.L ER2
MOV.L #_rs_send_buf,ER4
ADD.L ER2,ER4
ADD.L ER1,ER4
MOV.B @ER4,R1L
SHLL.L #H'00000002,ER0
MOV.L #_tdr,ER2
ADD.L ER0,ER2
MOV.L @ER2,ER0
MOV.B R1L,@ER0
??CLINE 599
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'7F,R1L
MOV.B R1L,@ER0
??CLINE 600
MOV.W @(+8,ER6),R0
EXTS.L ER0
SHLL.L ER0
MOV.L #_rs_send_rp,ER1
ADD.L ER0,ER1
MOV.W @ER1,R0
INC.W #H'0001,R0
MOV.W R0,@ER1
??CLINE 601
MOV.W @(+8,ER6),R0
EXTS.L ER0
SHLL.L ER0
MOV.L #_rs_send_rp,ER1
ADD.L ER0,ER1
MOV.W @ER1,R0
AND.W #H'03FF,R0
MOV.W R0,@ER1
??CLINE 602
MOV.W @(+8,ER6),R0
EXTS.L ER0
SHLL.L ER0
MOV.L #_rs_send_c,ER1
ADD.L ER0,ER1
MOV.W @ER1,R0
INC.W #H'0001,R0
MOV.W R0,@ER1
??ENDBLOCK(603)
BRA ?00034:8
?00033:
??BEGINBLOCK(605)
??CLINE 606
BRA ?00032:8
??ENDBLOCK(607)
?00034:
??ENDBLOCK(608)
JMP @?00031
?00032:
??ENDBLOCK(609)
??CLINE 609
_tx_job_end:
POP.L ER6
RTS
segment TEXT ATR_CODE
public _rs_inttx
_rs_inttx:
PUSH.L ER6
MOV.L ER7,ER6
??FUNCDEF(???rs_inttx) ??VOID
??VAR ??SINT ??SYMBOL(???ch) ??OFFSET(8)
??VAR ??SINT ??SYMBOL(???on) ??OFFSET(10)
??FUNCEND
??BEGINBLOCK(621)
??CLINE 622
MOV.W @(+10,ER6),R0
CMP.W #H'0001,R0
BNE ?00035:8
??BEGINBLOCK(623)
??CLINE 624
MOV.W @(+8,ER6),R0
EXTS.L ER0
SHLL.L #H'00000002,ER0
MOV.L #_scr,ER1
ADD.L ER0,ER1
MOV.L @ER1,ER0
MOV.B @ER0,R1L
OR.B #H'80,R1L
MOV.B R1L,@ER0
??ENDBLOCK(625)
BRA ?00036:8
?00035:
??BEGINBLOCK(627)
??CLINE 628
MOV.W @(+8,ER6),R0
EXTS.L ER0
SHLL.L #H'00000002,ER0
MOV.L #_scr,ER1
ADD.L ER0,ER1
MOV.L @ER1,ER0
MOV.B @ER0,R1L
AND.B #H'7F,R1L
MOV.B R1L,@ER0
??ENDBLOCK(629)
?00036:
??ENDBLOCK(630)
??CLINE 630
_rs_inttx_end:
POP.L ER6
RTS
segment TEXT ATR_CODE
public _rs_txcont_job
_rs_txcont_job:
PUSH.L ER6
MOV.L ER7,ER6
??FUNCDEF(???rs_txcont_job) ??VOID
??VAR ??SINT ??SYMBOL(???ch) ??OFFSET(8)
??FUNCEND
??BEGINBLOCK(642)
??CLINE 643
MOV.W @(+8,ER6),R0
EXTS.L ER0
SHLL.L ER0
MOV.L #_rs_send_c,ER1
ADD.L ER0,ER1
MOV.W @ER1,R0
CMP.W #H'0400,R0
BCC ?00037:8
??BEGINBLOCK(644)
??CLINE 651
MOV.W #H'0001,R0
PUSH.W R0
MOV.W @(+8,ER6),R1
PUSH.W R1
JSR @_rs_inttx
ADDS.L #H'00000004,ER7
??ENDBLOCK(653)
?00037:
??ENDBLOCK(654)
??CLINE 654
_rs_txcont_job_end:
POP.L ER6
RTS
segment TEXT ATR_CODE
public _rs_putcheck
_rs_putcheck:
PUSH.L ER6
MOV.L ER7,ER6
??FUNCDEF(???rs_putcheck) ??UINT
??VAR ??SINT ??SYMBOL(???ch) ??OFFSET(8)
??FUNCEND
??BEGINBLOCK(666)
??CLINE 667
MOV.W @(+8,ER6),R0
EXTS.L ER0
SHLL.L ER0
MOV.L #_rs_send_c,ER1
ADD.L ER0,ER1
MOV.W @ER1,R0
??ENDBLOCK(668)
??CLINE 668
_rs_putcheck_end:
POP.L ER6
RTS
segment TEXT ATR_CODE
public _rs_txbufempty
_rs_txbufempty:
PUSH.L ER6
MOV.L ER7,ER6
??FUNCDEF(???rs_txbufempty) ??UINT
??VAR ??SINT ??SYMBOL(???ch) ??OFFSET(8)
??FUNCEND
??BEGINBLOCK(671)
??CLINE 672
MOV.W @(+8,ER6),R0
EXTS.L ER0
SHLL.L ER0
MOV.L #_rs_send_c,ER1
ADD.L ER0,ER1
MOV.W @ER1,R0
MOV.W #H'0400,R1
SUB.W R0,R1
MOV.W R1,R0
??ENDBLOCK(673)
??CLINE 673
_rs_txbufempty_end:
POP.L ER6
RTS
segment TEXT ATR_CODE
public _rs_putc
_rs_putc:
PUSH.L ER6
MOV.L ER7,ER6
??FUNCDEF(???rs_putc) ??SINT
??VAR ??SINT ??SYMBOL(???ch) ??OFFSET(8)
??VAR ??UCHAR ??SYMBOL(???data) ??OFFSET(11)
??FUNCEND
??BEGINBLOCK(684)
??CLINE 685
MOV.W #H'0001,R0
PUSH.W R0
MOV.L ER6,ER1
ADD.L #H'0000000B,ER1
PUSH.L ER1
MOV.W @(+8,ER6),R1
PUSH.W R1
JSR @_rs_putn
ADDS.L #H'00000004,ER7
ADDS.L #H'00000004,ER7
??ENDBLOCK(686)
??CLINE 686
_rs_putc_end:
POP.L ER6
RTS
segment TEXT ATR_CODE
public _rs_puts
_rs_puts:
PUSH.L ER6
MOV.L ER7,ER6
SUBS #4,ER7
??FUNCDEF(???rs_puts) ??SINT
??VAR ??SINT ??SYMBOL(???ch) ??OFFSET(8)
??VAR ??POINTER ??UCHAR ??SYMBOL(???data) ??OFFSET(10)
??FUNCEND
??BEGINBLOCK(699)
??VAR ??UINT ??SYMBOL(???c) ??OFFSET(-2)
??VAR ??UINT ??SYMBOL(???size) ??OFFSET(-4)
??CLINE 703
MOV.L @(+10,ER6),ER0
PUSH.L ER0
JSR @_strlen
ADDS.L #H'00000004,ER7
MOV.W R0,@(-4,ER6)
??CLINE 704
MOV.W @(+8,ER6),R1
EXTS.L ER1
SHLL.L ER1
MOV.L #_rs_send_c,ER2
ADD.L ER1,ER2
MOV.W @ER2,R1
MOV.W R0,R2
ADDS.L #H'00000001,ER2
CMP.W R1,R2
BHI ?00039:8
MOV.W @(-4,ER6),R0
OR.W R0,R0
BNE ?00038:8
?00039:
??BEGINBLOCK(705)
??CLINE 706
XOR.W R0,R0
JMP @_rs_puts_end
??ENDBLOCK(707)
?00038:
??CLINE 709
XOR.W R0,R0
MOV.W R0,@(-2,ER6)
BRA ?00041:8
?00040:
MOV.W @(-2,ER6),R0
INC.W #H'0001,R0
MOV.W R0,@(-2,ER6)
?00041:
MOV.W @(-2,ER6),R0
MOV.W @(-4,ER6),R1
CMP.W R1,R0
BCC ?00042
??BEGINBLOCK(710)
??CLINE 711
MOV.W @(+8,ER6),R0
EXTS.L ER0
MOV.L ER0,ER1
SHLL.L ER1
MOV.L #_rs_send_wp,ER2
ADD.L ER1,ER2
MOV.W @ER2,R1
EXTU.L ER1
MOV.L #H'00000400,ER2
PUSH.L ER0
PUSH.L ER2
JSR @__l_mul
ADDS.L #H'00000004,ER7
POP.L ER0
MOV.L #_rs_send_buf,ER3
ADD.L ER0,ER3
ADD.L ER1,ER3
MOV.L @(+10,ER6),ER0
MOV.B @ER0,R1L
MOV.B R1L,@ER3
??CLINE 712
MOV.L @(+10,ER6),ER0
INC.L #H'00000001,ER0
MOV.L ER0,@(+10,ER6)
??CLINE 713
MOV.W @(+8,ER6),R1
EXTS.L ER1
SHLL.L ER1
MOV.L #_rs_send_wp,ER3
ADD.L ER1,ER3
MOV.W @ER3,R1
INC.W #H'0001,R1
MOV.W R1,@ER3
??CLINE 714
MOV.W @(+8,ER6),R0
EXTS.L ER0
SHLL.L ER0
MOV.L #_rs_send_wp,ER1
ADD.L ER0,ER1
MOV.W @ER1,R0
AND.W #H'03FF,R0
MOV.W R0,@ER1
??CLINE 715
MOV.W @(+8,ER6),R0
EXTS.L ER0
SHLL.L ER0
MOV.L #_rs_send_c,ER1
ADD.L ER0,ER1
MOV.W @ER1,R0
DEC.W #H'0001,R0
MOV.W R0,@ER1
??ENDBLOCK(716)
JMP @?00040
?00042:
??CLINE 717
MOV.W @(+8,ER6),R0
EXTS.L ER0
MOV.L ER0,ER1
SHLL.L ER1
MOV.L #_rs_send_wp,ER2
ADD.L ER1,ER2
MOV.W @ER2,R1
EXTU.L ER1
MOV.L #H'00000400,ER2
PUSH.L ER0
PUSH.L ER2
JSR @__l_mul
ADDS.L #H'00000004,ER7
POP.L ER0
MOV.L #_rs_send_buf,ER3
ADD.L ER0,ER3
ADD.L ER1,ER3
MOV.B #H'0A,R0L
MOV.B R0L,@ER3
??CLINE 718
MOV.W @(+8,ER6),R1
EXTS.L ER1
SHLL.L ER1
MOV.L #_rs_send_wp,ER3
ADD.L ER1,ER3
MOV.W @ER3,R1
INC.W #H'0001,R1
MOV.W R1,@ER3
??CLINE 719
MOV.W @(+8,ER6),R1
EXTS.L ER1
SHLL.L ER1
MOV.L #_rs_send_wp,ER3
ADD.L ER1,ER3
MOV.W @ER3,R1
AND.W #H'03FF,R1
MOV.W R1,@ER3
??CLINE 720
MOV.W @(+8,ER6),R1
EXTS.L ER1
SHLL.L ER1
MOV.L #_rs_send_c,ER3
ADD.L ER1,ER3
MOV.W @ER3,R1
DEC.W #H'0001,R1
MOV.W R1,@ER3
??CLINE 722
MOV.W @(+8,ER6),R1
PUSH.W R1
JSR @_rs_txcont_job
ADDS.L #H'00000002,ER7
??CLINE 724
MOV.W #H'0001,R0
??ENDBLOCK(725)
??CLINE 725
_rs_puts_end:
MOV.L ER6,ER7
POP.L ER6
RTS
segment TEXT ATR_CODE
public _rs_putn
_rs_putn:
PUSH.L ER6
MOV.L ER7,ER6
SUBS #2,ER7
??FUNCDEF(???rs_putn) ??SINT
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -