120 lines
1.4 KiB
ArmAsm
120 lines
1.4 KiB
ArmAsm
|
#include "mem.h"
|
||
|
|
||
|
#define BDNZ BC 16,0,
|
||
|
#define BDNE BC 0,2,
|
||
|
|
||
|
TEXT inb(SB), $0
|
||
|
OR $IOMEM, R3
|
||
|
MOVBZ (R3), R3
|
||
|
RETURN
|
||
|
|
||
|
TEXT insb(SB), $0
|
||
|
MOVW v+4(FP), R4
|
||
|
MOVW n+8(FP), R5
|
||
|
MOVW R5, CTR
|
||
|
OR $IOMEM, R3
|
||
|
SUB $1, R4
|
||
|
insb1:
|
||
|
MOVBZ (R3), R7
|
||
|
MOVBU R7, 1(R4)
|
||
|
BDNZ insb1
|
||
|
RETURN
|
||
|
|
||
|
TEXT outb(SB), $0
|
||
|
MOVW v+4(FP), R4
|
||
|
OR $IOMEM, R3
|
||
|
EIEIO
|
||
|
MOVB R4, (R3)
|
||
|
RETURN
|
||
|
|
||
|
TEXT outsb(SB), $0
|
||
|
MOVW v+4(FP), R4
|
||
|
MOVW n+8(FP), R5
|
||
|
MOVW R5, CTR
|
||
|
OR $IOMEM, R3
|
||
|
SUB $1, R4
|
||
|
outsb1:
|
||
|
EIEIO
|
||
|
MOVBZU 1(R4), R7
|
||
|
MOVB R7, (R3)
|
||
|
BDNZ outsb1
|
||
|
RETURN
|
||
|
|
||
|
TEXT ins(SB), $0
|
||
|
OR $IOMEM, R3
|
||
|
EIEIO
|
||
|
MOVHBR (R3), R3
|
||
|
RETURN
|
||
|
|
||
|
TEXT inss(SB), $0
|
||
|
MOVW v+4(FP), R4
|
||
|
MOVW n+8(FP), R5
|
||
|
MOVW R5, CTR
|
||
|
OR $IOMEM, R3
|
||
|
SUB $2, R4
|
||
|
inss1:
|
||
|
EIEIO
|
||
|
MOVHZ (R3), R7
|
||
|
MOVHU R7, 2(R4)
|
||
|
BDNZ inss1
|
||
|
RETURN
|
||
|
|
||
|
TEXT outs(SB), $0
|
||
|
MOVW v+4(FP), R4
|
||
|
OR $IOMEM, R3
|
||
|
EIEIO
|
||
|
MOVHBR R4, (R3)
|
||
|
RETURN
|
||
|
|
||
|
TEXT outss(SB), $0
|
||
|
MOVW v+4(FP), R4
|
||
|
MOVW n+8(FP), R5
|
||
|
MOVW R5, CTR
|
||
|
OR $IOMEM, R3
|
||
|
SUB $2, R4
|
||
|
outss1:
|
||
|
EIEIO
|
||
|
MOVHZU 2(R4), R7
|
||
|
MOVH R7, (R3)
|
||
|
BDNZ outss1
|
||
|
RETURN
|
||
|
|
||
|
TEXT inl(SB), $0
|
||
|
OR $IOMEM, R3
|
||
|
EIEIO
|
||
|
MOVWBR (R3), R3
|
||
|
RETURN
|
||
|
|
||
|
TEXT insl(SB), $0
|
||
|
MOVW v+4(FP), R4
|
||
|
MOVW n+8(FP), R5
|
||
|
MOVW R5, CTR
|
||
|
OR $IOMEM, R3
|
||
|
SUB $4, R4
|
||
|
insl1:
|
||
|
EIEIO
|
||
|
MOVW (R3), R7
|
||
|
MOVWU R7, 4(R4)
|
||
|
BDNZ insl1
|
||
|
RETURN
|
||
|
|
||
|
TEXT outl(SB), $0
|
||
|
MOVW v+4(FP), R4
|
||
|
OR $IOMEM, R3
|
||
|
EIEIO
|
||
|
MOVWBR R4, (R3)
|
||
|
RETURN
|
||
|
|
||
|
TEXT outsl(SB), $0
|
||
|
MOVW v+4(FP), R4
|
||
|
MOVW n+8(FP), R5
|
||
|
MOVW R5, CTR
|
||
|
OR $IOMEM, R3
|
||
|
SUB $4, R4
|
||
|
outsl1:
|
||
|
EIEIO
|
||
|
MOVWU 4(R4), R7
|
||
|
MOVW R7, (R3)
|
||
|
BDNZ outsl1
|
||
|
RETURN
|