inb.s 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. #include "mem.h"
  2. #define BDNZ BC 16,0,
  3. #define BDNE BC 0,2,
  4. TEXT inb(SB), $0
  5. OR $IOMEM, R3
  6. MOVBZ (R3), R3
  7. RETURN
  8. TEXT insb(SB), $0
  9. MOVW v+4(FP), R4
  10. MOVW n+8(FP), R5
  11. MOVW R5, CTR
  12. OR $IOMEM, R3
  13. SUB $1, R4
  14. insb1:
  15. MOVBZ (R3), R7
  16. MOVBU R7, 1(R4)
  17. BDNZ insb1
  18. RETURN
  19. TEXT outb(SB), $0
  20. MOVW v+4(FP), R4
  21. OR $IOMEM, R3
  22. EIEIO
  23. MOVB R4, (R3)
  24. RETURN
  25. TEXT outsb(SB), $0
  26. MOVW v+4(FP), R4
  27. MOVW n+8(FP), R5
  28. MOVW R5, CTR
  29. OR $IOMEM, R3
  30. SUB $1, R4
  31. outsb1:
  32. EIEIO
  33. MOVBZU 1(R4), R7
  34. MOVB R7, (R3)
  35. BDNZ outsb1
  36. RETURN
  37. TEXT ins(SB), $0
  38. OR $IOMEM, R3
  39. EIEIO
  40. MOVHBR (R3), R3
  41. RETURN
  42. TEXT inss(SB), $0
  43. MOVW v+4(FP), R4
  44. MOVW n+8(FP), R5
  45. MOVW R5, CTR
  46. OR $IOMEM, R3
  47. SUB $2, R4
  48. inss1:
  49. EIEIO
  50. MOVHZ (R3), R7
  51. MOVHU R7, 2(R4)
  52. BDNZ inss1
  53. RETURN
  54. TEXT outs(SB), $0
  55. MOVW v+4(FP), R4
  56. OR $IOMEM, R3
  57. EIEIO
  58. MOVHBR R4, (R3)
  59. RETURN
  60. TEXT outss(SB), $0
  61. MOVW v+4(FP), R4
  62. MOVW n+8(FP), R5
  63. MOVW R5, CTR
  64. OR $IOMEM, R3
  65. SUB $2, R4
  66. outss1:
  67. EIEIO
  68. MOVHZU 2(R4), R7
  69. MOVH R7, (R3)
  70. BDNZ outss1
  71. RETURN
  72. TEXT inl(SB), $0
  73. OR $IOMEM, R3
  74. EIEIO
  75. MOVWBR (R3), R3
  76. RETURN
  77. TEXT insl(SB), $0
  78. MOVW v+4(FP), R4
  79. MOVW n+8(FP), R5
  80. MOVW R5, CTR
  81. OR $IOMEM, R3
  82. SUB $4, R4
  83. insl1:
  84. EIEIO
  85. MOVW (R3), R7
  86. MOVWU R7, 4(R4)
  87. BDNZ insl1
  88. RETURN
  89. TEXT outl(SB), $0
  90. MOVW v+4(FP), R4
  91. OR $IOMEM, R3
  92. EIEIO
  93. MOVWBR R4, (R3)
  94. RETURN
  95. TEXT outsl(SB), $0
  96. MOVW v+4(FP), R4
  97. MOVW n+8(FP), R5
  98. MOVW R5, CTR
  99. OR $IOMEM, R3
  100. SUB $4, R4
  101. outsl1:
  102. EIEIO
  103. MOVWU 4(R4), R7
  104. MOVW R7, (R3)
  105. BDNZ outsl1
  106. RETURN