Changeset 601 in xtideuniversalbios for trunk/XTIDE_Universal_BIOS/Inc/IDE_8bit.inc
- Timestamp:
- Feb 14, 2019, 7:38:08 PM (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/XTIDE_Universal_BIOS/Inc/IDE_8bit.inc
r589 r601 31 31 ; ES:DI: Ptr to destination buffer 32 32 ; Returns: 33 ; ES:DI: Incremented/decremented for next word33 ; DI: Incremented/Decremented for next word 34 34 ; Corrupts registers: 35 35 ; AL, FLAGS … … 61 61 ; DS:SI: Ptr to source buffer 62 62 ; Returns: 63 ; SI: Incremented/ decremented for next word63 ; SI: Incremented/Decremented for next word 64 64 ; Corrupts registers: 65 65 ; AX, FLAGS … … 92 92 ; DS:SI: Ptr to source buffer 93 93 ; Returns: 94 ; SI: Incremented/ decremented for next word94 ; SI: Incremented/Decremented for next word 95 95 ; Corrupts registers: 96 96 ; AX, FLAGS … … 115 115 116 116 117 ;-------------------------------------------------------------------- 118 ; Emulates INSW for modified XTIDE for use on Olivetti M24 and derivatives. 119 ; 120 ; XTIDE_MOD_OLIVETTI_INSW 121 ; Parameters: 122 ; DX: XTIDE Data Low Register address 123 ; ES:DI: Ptr to destination buffer 124 ; Returns: 125 ; DI: Incremented/Decremented for next word 126 ; Corrupts registers: 127 ; AL, FLAGS 128 ;-------------------------------------------------------------------- 129 %macro XTIDE_MOD_OLIVETTI_INSW 0 130 %ifdef USE_186 ; INS instruction available 131 insb ; Load low byte from port DX to [ES:DI] 132 inc dx ; IDE Data Reg to XTIDE Data High Reg 133 insb ; Load high byte from port DX to [ES:DI] 134 dec dx ; Restore to IDE Data Register 135 %else ; If 8088/8086 136 in al, dx ; Load low byte from port 137 inc dx ; IDE Data Reg to XTIDE Data High Reg 138 stosb ; Store byte to [ES:DI] 139 in al, dx ; Load high byte from port 140 dec dx ; Restore to IDE Data Register 141 stosb ; Store byte to [ES:DI] 142 %endif 143 %endmacro 144 145 117 146 %endif ; IDE_8BIT_INC
Note: See TracChangeset
for help on using the changeset viewer.