Changeset 588 in xtideuniversalbios for trunk/XTIDE_Universal_BIOS
- Timestamp:
- Jun 3, 2015, 12:30:54 PM (9 years ago)
- google:author:
- krille_n_@hotmail.com
- Location:
- trunk/XTIDE_Universal_BIOS
- Files:
-
- 12 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/XTIDE_Universal_BIOS/Inc/Controllers/AdvancedID.inc
r587 r588 24 24 ; Low byte is controller specific to be used in controller initialization and such 25 25 26 ID_NOT_ADVANCED_CONTROLLER EQU 026 ID_NOT_ADVANCED_CONTROLLER EQU 0 27 27 28 28 ; Promise … … 32 32 ; Vision 33 33 ; QDI Vision Controller Identification nibbles used by hardware so do not modify these 34 ID_QD6580_ALTERNATE EQU 0101b35 ID_QD6580 EQU 1010b36 ID_QD6500 EQU 1100b34 ID_QD6580_ALTERNATE EQU 5 35 ID_QD6580 EQU 10 36 ID_QD6500 EQU 12 37 37 38 38 -
trunk/XTIDE_Universal_BIOS/Inc/Controllers/XTCF.inc
r584 r588 54 54 ; 55 55 ; XT-CFv3 cannot be distinguished by software, so user must decide and set 56 ; the mode via a call to Int 13h function 1Eh accordingly (see AH1E _XTCF.asm).56 ; the mode via a call to Int 13h function 1Eh accordingly (see AH1Eh_XTCF.asm). 57 57 ; 58 XTCF_8BIT_PIO_MODE EQU ((DEVICE_8BIT_XTCF_PIO8 >> 1) - XTCF_DEVICE_OFFSET)59 XTCF_8BIT_PIO_MODE_WITH_BIU_OFFLOAD EQU (XTCF_8BIT_PIO_MODE + 1)60 XTCF_16BIT_PIO_WITH_BIU_OFFLOAD EQU (XTCF_8BIT_PIO_MODE + 2); Lo-tech 8-bit IDE Adapter61 XTCF_DMA_MODE EQU (XTCF_8BIT_PIO_MODE + 3)58 XTCF_8BIT_PIO_MODE EQU 0 ; XT-CF using 8-bit PIO mode 59 XTCF_8BIT_PIO_MODE_WITH_BIU_OFFLOAD EQU 1 ; XT-CF using 8-bit PIO mode, but with 16-bit instructions 60 XTCF_16BIT_PIO_WITH_BIU_OFFLOAD EQU 2 ; Lo-tech 8-bit IDE Adapter 61 XTCF_DMA_MODE EQU 3 ; XT-CFv3 using DMA 62 62 63 63 -
trunk/XTIDE_Universal_BIOS/Inc/RomVars.inc
r584 r588 158 158 DEVICE_8BIT_XTIDE_REV2 EQU ((COUNT_OF_STANDARD_IDE_DEVICES+2)<<1) ; Or rev 1 with swapped A0 and A3 159 159 ; IDE Register offsets are SHL 1 160 XTCF_DEVICE_OFFSET EQU 3 161 DEVICE_8BIT_XTCF_PIO8 EQU ((COUNT_OF_STANDARD_IDE_DEVICES+XTCF_DEVICE_OFFSET)<<1) ; XT-CF using 8-bit PIO mode 160 DEVICE_8BIT_XTCF_PIO8 EQU ((COUNT_OF_STANDARD_IDE_DEVICES+3)<<1) ; XT-CF using 8-bit PIO mode 162 161 DEVICE_8BIT_XTCF_PIO8_WITH_BIU_OFFLOAD EQU ((COUNT_OF_STANDARD_IDE_DEVICES+4)<<1) ; XT-CF using 8-bit PIO mode, but with 16-bit instructions 163 162 DEVICE_8BIT_XTCF_PIO16_WITH_BIU_OFFLOAD EQU ((COUNT_OF_STANDARD_IDE_DEVICES+5)<<1) ; Lo-tech 8-bit IDE Adapter … … 169 168 DEVICE_SERIAL_PORT EQU (COUNT_OF_ALL_IDE_DEVICES<<1) 170 169 171 170 FIRST_XTCF_DEVICE EQU DEVICE_8BIT_XTCF_PIO8 171 LAST_XTCF_DEVICE EQU DEVICE_8BIT_XTCF_DMA 172 XTCF_DEVICE_OFFSET EQU FIRST_XTCF_DEVICE ; Used for XT-CF device <--> mode conversion 172 173 173 174 ; Master/Slave drive specific parameters -
trunk/XTIDE_Universal_BIOS/Src/Device/IDE/IdeWait.asm
r567 r588 97 97 .PollLoop: 98 98 call IdeIO_InputStatusRegisterToAL 99 test al, FLG_STATUS_BSY ; Controller busy?100 j nzSHORT .UpdateTimeout ; If so, jump to timeout update99 test al, al ; Controller busy? (Check for FLG_STATUS_BSY) 100 js SHORT .UpdateTimeout ; If so, jump to timeout update 101 101 test al, ah ; Test secondary flag 102 102 jnz SHORT IdeError_GetBiosErrorCodeToAHfromPolledStatusRegisterInAL … … 126 126 .PollLoop: 127 127 call IdeIO_InputStatusRegisterToAL 128 test al, FLG_STATUS_BSY ; Controller busy?129 j zSHORT IdeError_GetBiosErrorCodeToAHfromPolledStatusRegisterInAL128 test al, al ; Controller busy? (Check for FLG_STATUS_BSY) 129 jns SHORT IdeError_GetBiosErrorCodeToAHfromPolledStatusRegisterInAL 130 130 call Timer_SetCFifTimeout ; Update timeout counter 131 131 jnc SHORT .PollLoop ; Loop if time left (sets CF on timeout) -
trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h/AH1Eh_XTCF.asm
r584 r588 65 65 ; IS_THIS_DRIVE_XTCF. We check this for all commands. 66 66 call AccessDPT_IsThisDeviceXTCF 67 j neSHORT .XTCFnotFound67 jc SHORT .XTCFnotFound 68 68 and ax, 0FFh ; Subcommand now in AX (clears AH and CF) 69 69 jz SHORT .XTCFfound ; Sub-function IS_THIS_DRIVE_XTCF (=0) … … 111 111 ; Selected transfer mode is stored in BIOS variable (DPT_ATA.bDevice). 112 112 113 ; Note that when selecting ' DEVICE_8BIT_XTCF_PIO8_WITH_BIU_OFFLOAD' mode,113 ; Note that when selecting 'XTCF_8BIT_PIO_MODE_WITH_BIU_OFFLOAD' mode, 114 114 ; the ATA device (i.e. CompactFlash card) will operate in 8-bit mode, but 115 115 ; data will be transferred from its data register using 16-bit CPU instructions … … 122 122 ; Also note that some machines, noteably the Olivetti M24 (also known as 123 123 ; the AT&T PC6300 and Xerox 6060), have hardware errors in the BIU logic, 124 ; resulting in reversed byte ordering. Therefore, mode DEVICE_8BIT_PIOis124 ; resulting in reversed byte ordering. Therefore, XTCF_8BIT_PIO_MODE is 125 125 ; the default transfer mode for best system compatibility. 126 126 127 128 ; Is requested mode valid? 129 cmp al, 3 ; Valid modes are 0...3 130 ja SHORT ProcessXTCFsubcommandFromAL.AH1Eh_LoadInvalidCommandToAHandSetCF 131 132 ; Convert mode to XT-CF device type (see RomVars.inc and XTCF.inc for full details) 133 eSHL_IM al, 1 ; Shift requested mode 134 add al, XTCF_DEVICE_OFFSET ; Add the device offset (already shifted) 135 mov [di+DPT_ATA.bDevice], al ; Set the new mode (or device actually) 136 137 cmp al, DEVICE_8BIT_XTCF_PIO16_WITH_BIU_OFFLOAD 138 je SHORT AH23h_Disable8bitPioMode 139 140 ; We always need to enable 8-bit mode since 16-bit mode is restored 141 ; when controller is reset (AH=00h or 0Dh) 142 143 cmp al, DEVICE_8BIT_XTCF_DMA 144 jne SHORT AH23h_Enable8bitPioMode 145 146 ; DMA transfers have limited block size 147 mov al, XTCF_DMA_MODE_MAX_BLOCK_SIZE 148 cmp [di+DPT_ATA.bBlockSize], al 149 jbe SHORT AH23h_Enable8bitPioMode ; No need to limit block size 150 call AH24h_SetBlockSize 151 jmp SHORT AH23h_Enable8bitPioMode 152 153 154 %if 0 127 155 ; We always need to enable 8-bit mode since 16-bit mode is restored 128 156 ; when controller is reset (AH=00h or 0Dh) … … 134 162 dec ax ; XTCF_8BIT_PIO_MODE_WITH_BIU_OFFLOAD = 1 135 163 jz SHORT .Set8bitPioModeWithBIUOffload 136 dec ax 164 dec ax ; XTCF_16BIT_PIO_WITH_BIU_OFFLOAD = 2 137 165 jz SHORT .Set16bitPioModeWithBIUOffload 138 166 139 ; XTCF_DMA_MODE = 2 (allow 3 as well for more optimized code)167 ; XTCF_DMA_MODE = 3 140 168 mov BYTE [di+DPT_ATA.bDevice], DEVICE_8BIT_XTCF_DMA 141 169 … … 161 189 mov [di+DPT_ATA.bDevice], al 162 190 ret 191 %endif ; 0 163 192 164 193 … … 168 197 ; DS:DI: Ptr to DPT (in RAMVARS segment) 169 198 ; Returns: 170 ; AX: XT-CF mode (XTCF_8BIT_PIO_MODE, XTCF_8BIT_PIO_MODE_WITH_BIU_OFFLOAD or XTCF_DMA_MODE)199 ; AX: XT-CF mode (XTCF_8BIT_PIO_MODE, XTCF_8BIT_PIO_MODE_WITH_BIU_OFFLOAD, XTCF_16BIT_PIO_WITH_BIU_OFFLOAD or XTCF_DMA_MODE) 171 200 ; CF: Clear 172 201 ; Corrupts registers: … … 174 203 ;-------------------------------------------------------------------- 175 204 AH1Eh_GetCurrentXTCFmodeToAX: 205 mov ax, -XTCF_DEVICE_OFFSET & 0FFh 206 add al, [di+DPT_ATA.bDevice] 207 shr al, 1 208 ret 209 210 %if 0 176 211 mov al, [di+DPT_ATA.bDevice] 177 212 shr al, 1 178 213 cbw 179 sub al, DEVICE_8BIT_XTCF_PIO8 >> 1 180 ret 214 sub al, XTCF_DEVICE_OFFSET >> 1 215 ret 216 %endif ; 0 -
trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h/AH24h_HSetBlocks.asm
r558 r588 68 68 ; must know what the actual block size is. 69 69 cmp BYTE [di+DPT_ATA.bDevice], DEVICE_8BIT_XTCF_DMA 70 je SHORT .DisableBlockMode70 je SHORT ProcessXTCFsubcommandFromAL.AH1Eh_LoadInvalidCommandToAHandSetCF 71 71 .NoNeedToLimitBlockSize: 72 72 %endif ; MODULE_8BIT_IDE_ADVANCED -
trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h/AH9h_HInit.asm
r567 r588 234 234 235 235 236 %ifdef MODULE_8BIT_IDE 237 ;-------------------------------------------------------------------- 238 ; AH9h_Enable8bitModeForDevice8bitAta 239 ; Parameters: 240 ; DS:DI: Ptr to DPT (in RAMVARS segment) 241 ; SS:BP: Ptr to IDEPACK 242 ; Returns: 243 ; AH: Int 13h return status 244 ; CF: Clear if successful or device is not DEVICE_8BIT_ATA 245 ; Set if failed to set 8-bit mode for DEVICE_8BIT_ATA 246 ; Corrupts registers: 247 ; AL, BX, CX, DX, SI 248 ;-------------------------------------------------------------------- 249 AH9h_Enable8bitModeForDevice8bitAta: 250 cmp BYTE [di+DPT_ATA.bDevice], DEVICE_8BIT_ATA 251 %ifdef MODULE_8BIT_IDE_ADVANCED 252 jne SHORT IgnoreInvalidCommandError 253 jmp AH23h_Enable8bitPioMode 254 %else ; ~MODULE_8BIT_IDE_ADVANCED 255 je AH23h_Enable8bitPioMode 256 ; Fall to IgnoreInvalidCommandError 257 %endif ; MODULE_8BIT_IDE_ADVANCED 258 %endif ; MODULE_8BIT_IDE 259 260 261 %ifdef MODULE_8BIT_IDE_ADVANCED 262 ;-------------------------------------------------------------------- 263 ; AH9h_SetModeFromALtoXTCF 264 ; Parameters: 265 ; AL: XT-CF Mode to set 266 ; DS:DI: Ptr to DPT (in RAMVARS segment) 267 ; SS:BP: Ptr to IDEPACK 268 ; Returns: 269 ; AH: Int 13h return status 270 ; CF: Clear if successful or device is not XT-CF 271 ; Set if failed to set mode for XT-CF 272 ; Corrupts registers: 273 ; AL, BX, CX, DX, SI 274 ;-------------------------------------------------------------------- 275 AH9h_SetModeFromALtoXTCF: 276 call AccessDPT_IsThisDeviceXTCF 277 jnc AH1Eh_ChangeXTCFmodeBasedOnModeInAL 278 ; Fall to IgnoreInvalidCommandError 279 %endif ; MODULE_8BIT_IDE_ADVANCED 280 281 236 282 ;-------------------------------------------------------------------- 237 283 ; SetErrorFlagFromALwithErrorCodeInAH … … 259 305 .NoErrorFlagToSet: 260 306 ret 261 262 263 %ifdef MODULE_8BIT_IDE_ADVANCED264 ;--------------------------------------------------------------------265 ; AH9h_SetModeFromALtoXTCF266 ; Parameters:267 ; AL: XT-CF Mode to set268 ; DS:DI: Ptr to DPT (in RAMVARS segment)269 ; SS:BP: Ptr to IDEPACK270 ; Returns:271 ; AH: Int 13h return status272 ; CF: Clear if successful or device is not XT-CF273 ; Set if failed to set mode for XT-CF274 ; Corrupts registers:275 ; AL, BX, CX, DX, SI276 ;--------------------------------------------------------------------277 AH9h_SetModeFromALtoXTCF:278 call AccessDPT_IsThisDeviceXTCF279 jne SHORT IgnoreInvalidCommandError280 jmp AH1Eh_ChangeXTCFmodeBasedOnModeInAL281 %endif ; MODULE_8BIT_IDE_ADVANCED282 283 284 %ifdef MODULE_8BIT_IDE285 ;--------------------------------------------------------------------286 ; AH9h_Enable8bitModeForDevice8bitAta287 ; Parameters:288 ; DS:DI: Ptr to DPT (in RAMVARS segment)289 ; SS:BP: Ptr to IDEPACK290 ; Returns:291 ; AH: Int 13h return status292 ; CF: Clear if successful or device is not DEVICE_8BIT_ATA293 ; Set if failed to set 8-bit mode for DEVICE_8BIT_ATA294 ; Corrupts registers:295 ; AL, BX, CX, DX, SI296 ;--------------------------------------------------------------------297 AH9h_Enable8bitModeForDevice8bitAta:298 cmp BYTE [di+DPT_ATA.bDevice], DEVICE_8BIT_ATA299 jne SHORT IgnoreInvalidCommandError300 jmp AH23h_Enable8bitPioMode301 %endif ; MODULE_8BIT_IDE -
trunk/XTIDE_Universal_BIOS/Src/Initialization/AdvancedAta/PDC20x30.asm
r587 r588 200 200 add dx, BYTE SECTOR_NUMBER_REGISTER 201 201 mov bh, ~MASK_PDCSCR_DEV1SPEED ; Assume slave 202 test cx,cx203 jnz.setSpeed202 inc cx 203 loop .setSpeed 204 204 eSHL_IM bl, POS_PDCSCR_DEV0SPEED 205 205 mov bh, ~MASK_PDCSCR_DEV0SPEED -
trunk/XTIDE_Universal_BIOS/Src/Main.asm
r587 r588 136 136 %ifdef MODULE_8BIT_IDE_ADVANCED 137 137 at ROMVARS.ideVars0+IDEVARS.wBasePort, dw DEVICE_XTIDE_DEFAULT_PORT ; Controller Command Block base port 138 at ROMVARS.ideVars0+IDEVARS.bDevice, db XTCF_8BIT_PIO_MODE_WITH_BIU_OFFLOAD138 at ROMVARS.ideVars0+IDEVARS.bDevice, db DEVICE_8BIT_XTCF_PIO8 139 139 %else 140 140 at ROMVARS.ideVars0+IDEVARS.wBasePort, dw DEVICE_XTIDE_DEFAULT_PORT ; Controller Command Block base port -
trunk/XTIDE_Universal_BIOS/Src/Strings.asm
r536 r588 135 135 136 136 g_szDeviceTypeValues: 137 g_szDeviceTypeValues_16bit: db " 16",NULL 138 g_szDeviceTypeValues_32bit: db " 32",NULL 139 g_szDeviceTypeValues_8bit: db " 8",NULL 140 g_szDeviceTypeValues_XTIDEr1: db "D8 ",NULL ; Dual 8-bit 141 g_szDeviceTypeValues_XTIDEr2: db "X8 ",NULL ; A0<->A3 swapped 8-bit 142 g_szDeviceTypeValues_XTCFpio8: db "T8 ",NULL ; True 8-bit 143 g_szDeviceTypeValues_XTCFdma: db "8MA",NULL ; DMA 8-bit 144 g_szDeviceTypeValues_XTCFmem: db "M8 ",NULL ; Memory Mapped 8-bit 145 g_szDeviceTypeValues_JrIde: db "M8 ",NULL 146 g_szDeviceTypeValues_ADP50L: db "M8 ",NULL 147 g_szDeviceTypeValues_Serial: db "SER",NULL 137 g_szDeviceTypeValues_16bit: db " 16",NULL 138 g_szDeviceTypeValues_32bit: db " 32",NULL 139 g_szDeviceTypeValues_8bit: db " 8",NULL 140 g_szDeviceTypeValues_XTIDEr1: db "D8 ",NULL ; Dual 8-bit 141 g_szDeviceTypeValues_XTIDEr2: db "X8 ",NULL ; A0<->A3 swapped 8-bit 142 g_szDeviceTypeValues_XTCFpio8: db "T8 ",NULL ; True 8-bit 143 g_szDeviceTypeValues_XTCFpio8BIU: db "T8B",NULL 144 g_szDeviceTypeValues_XTCFpio16BIU: db "16B",NULL 145 g_szDeviceTypeValues_XTCFdma: db "8MA",NULL ; DMA 8-bit 146 g_szDeviceTypeValues_JrIde: db "M8 ",NULL ; Memory Mapped 8-bit 147 g_szDeviceTypeValues_ADP50L: db "M8 ",NULL ; Memory Mapped 8-bit 148 g_szDeviceTypeValues_Serial: db "SER",NULL 148 149 149 150 g_szDeviceTypeValues_Displacement equ (g_szDeviceTypeValues_32bit - g_szDeviceTypeValues) … … 159 160 %endif 160 161 %if g_szDeviceTypeValues_8bit <> g_szDeviceTypeValues_32bit + g_szDeviceTypeValues_Displacement 161 %error "g_szDeviceTypeValues Displacement Incorrect 2"162 %error "g_szDeviceTypeValues Displacement Incorrect 3" 162 163 %endif 163 164 %if g_szDeviceTypeValues_XTIDEr1 <> g_szDeviceTypeValues_8bit + g_szDeviceTypeValues_Displacement 164 %error "g_szDeviceTypeValues Displacement Incorrect 3"165 %error "g_szDeviceTypeValues Displacement Incorrect 4" 165 166 %endif 166 167 %if g_szDeviceTypeValues_XTIDEr2 <> g_szDeviceTypeValues_XTIDEr1 + g_szDeviceTypeValues_Displacement 167 %error "g_szDeviceTypeValues Displacement Incorrect 4"168 %error "g_szDeviceTypeValues Displacement Incorrect 5" 168 169 %endif 169 170 %if g_szDeviceTypeValues_XTCFpio8 <> g_szDeviceTypeValues_XTIDEr2 + g_szDeviceTypeValues_Displacement 170 %error "g_szDeviceTypeValues Displacement Incorrect 5"171 %endif172 %if g_szDeviceTypeValues_XTCFdma <> g_szDeviceTypeValues_XTCFpio8 + g_szDeviceTypeValues_Displacement173 171 %error "g_szDeviceTypeValues Displacement Incorrect 6" 174 172 %endif 175 %if g_szDeviceTypeValues_XTCF mem <> g_szDeviceTypeValues_XTCFdma+ g_szDeviceTypeValues_Displacement173 %if g_szDeviceTypeValues_XTCFpio8BIU <> g_szDeviceTypeValues_XTCFpio8 + g_szDeviceTypeValues_Displacement 176 174 %error "g_szDeviceTypeValues Displacement Incorrect 7" 177 175 %endif 178 %if g_szDeviceTypeValues_ JrIde <> g_szDeviceTypeValues_XTCFmem+ g_szDeviceTypeValues_Displacement176 %if g_szDeviceTypeValues_XTCFpio16BIU <> g_szDeviceTypeValues_XTCFpio8BIU + g_szDeviceTypeValues_Displacement 179 177 %error "g_szDeviceTypeValues Displacement Incorrect 8" 180 178 %endif 179 %if g_szDeviceTypeValues_XTCFdma <> g_szDeviceTypeValues_XTCFpio16BIU + g_szDeviceTypeValues_Displacement 180 %error "g_szDeviceTypeValues Displacement Incorrect 9" 181 %endif 182 %if g_szDeviceTypeValues_JrIde <> g_szDeviceTypeValues_XTCFdma + g_szDeviceTypeValues_Displacement 183 %error "g_szDeviceTypeValues Displacement Incorrect 10" 184 %endif 181 185 %if g_szDeviceTypeValues_ADP50L <> g_szDeviceTypeValues_JrIde + g_szDeviceTypeValues_Displacement 182 %error "g_szDeviceTypeValues Displacement Incorrect 9"186 %error "g_szDeviceTypeValues Displacement Incorrect 11" 183 187 %endif 184 188 %if g_szDeviceTypeValues_Serial <> g_szDeviceTypeValues_ADP50L + g_szDeviceTypeValues_Displacement 185 %error "g_szDeviceTypeValues Displacement Incorrect 1 0"189 %error "g_szDeviceTypeValues Displacement Incorrect 12" 186 190 %endif 187 191 %endif -
trunk/XTIDE_Universal_BIOS/Src/StringsCompressed.asm
r568 r588 253 253 254 254 g_szDeviceTypeValues: 255 g_szDeviceTypeValues_16bit: ; db " 16",NULL 256 ; db 20h, 31h, 36h, 00h ; uncompressed 257 db 20h, 2bh, 0fh ; compressed 258 259 g_szDeviceTypeValues_32bit: ; db " 32",NULL 260 ; db 20h, 33h, 32h, 00h ; uncompressed 261 db 20h, 2dh, 0ch ; compressed 262 263 g_szDeviceTypeValues_8bit: ; db " 8",NULL 264 ; db 20h, 20h, 38h, 00h ; uncompressed 265 db 20h, 20h, 10h ; compressed 266 267 g_szDeviceTypeValues_XTIDEr1: ; db "D8 ",NULL ; Dual 8-bit 268 ; db 44h, 38h, 20h, 00h ; uncompressed 269 db 4ah, 30h, 00h ; compressed 270 271 g_szDeviceTypeValues_XTIDEr2: ; db "X8 ",NULL ; A0<->A3 swapped 8-bit 272 ; db 58h, 38h, 20h, 00h ; uncompressed 273 db 5eh, 30h, 00h ; compressed 274 275 g_szDeviceTypeValues_XTCFpio8: ; db "T8 ",NULL ; True 8-bit 276 ; db 54h, 38h, 20h, 00h ; uncompressed 277 db 5ah, 30h, 00h ; compressed 278 279 g_szDeviceTypeValues_XTCFdma: ; db "8MA",NULL ; DMA 8-bit 280 ; db 38h, 4dh, 41h, 00h ; uncompressed 281 db 30h, 53h, 87h ; compressed 282 283 g_szDeviceTypeValues_XTCFmem: ; db "M8 ",NULL ; Memory Mapped 8-bit 284 ; db 4dh, 38h, 20h, 00h ; uncompressed 285 db 53h, 30h, 00h ; compressed 286 287 g_szDeviceTypeValues_JrIde: ; db "M8 ",NULL 288 ; db 4dh, 38h, 20h, 00h ; uncompressed 289 db 53h, 30h, 00h ; compressed 290 291 g_szDeviceTypeValues_ADP50L: ; db "M8 ",NULL 292 ; db 4dh, 38h, 20h, 00h ; uncompressed 293 db 53h, 30h, 00h ; compressed 294 295 g_szDeviceTypeValues_Serial: ; db "SER",NULL 296 ; db 53h, 45h, 52h, 00h ; uncompressed 297 db 59h, 4bh, 98h ; compressed 255 g_szDeviceTypeValues_16bit: ; db " 16",NULL 256 ; db 20h, 31h, 36h, 00h ; uncompressed 257 db 20h, 2bh, 0fh ; compressed 258 259 g_szDeviceTypeValues_32bit: ; db " 32",NULL 260 ; db 20h, 33h, 32h, 00h ; uncompressed 261 db 20h, 2dh, 0ch ; compressed 262 263 g_szDeviceTypeValues_8bit: ; db " 8",NULL 264 ; db 20h, 20h, 38h, 00h ; uncompressed 265 db 20h, 20h, 10h ; compressed 266 267 g_szDeviceTypeValues_XTIDEr1: ; db "D8 ",NULL ; Dual 8-bit 268 ; db 44h, 38h, 20h, 00h ; uncompressed 269 db 4ah, 30h, 00h ; compressed 270 271 g_szDeviceTypeValues_XTIDEr2: ; db "X8 ",NULL ; A0<->A3 swapped 8-bit 272 ; db 58h, 38h, 20h, 00h ; uncompressed 273 db 5eh, 30h, 00h ; compressed 274 275 g_szDeviceTypeValues_XTCFpio8: ; db "T8 ",NULL ; True 8-bit 276 ; db 54h, 38h, 20h, 00h ; uncompressed 277 db 5ah, 30h, 00h ; compressed 278 279 g_szDeviceTypeValues_XTCFpio8BIU: ; db "T8B",NULL 280 ; db 54h, 38h, 42h, 00h ; uncompressed 281 db 5ah, 30h, 88h ; compressed 282 283 g_szDeviceTypeValues_XTCFpio16BIU: ; db "16B",NULL 284 ; db 31h, 36h, 42h, 00h ; uncompressed 285 db 2bh, 2fh, 88h ; compressed 286 287 g_szDeviceTypeValues_XTCFdma: ; db "8MA",NULL ; DMA 8-bit 288 ; db 38h, 4dh, 41h, 00h ; uncompressed 289 db 30h, 53h, 87h ; compressed 290 291 g_szDeviceTypeValues_JrIde: ; db "M8 ",NULL ; Memory Mapped 8-bit 292 ; db 4dh, 38h, 20h, 00h ; uncompressed 293 db 53h, 30h, 00h ; compressed 294 295 g_szDeviceTypeValues_ADP50L: ; db "M8 ",NULL ; Memory Mapped 8-bit 296 ; db 4dh, 38h, 20h, 00h ; uncompressed 297 db 53h, 30h, 00h ; compressed 298 299 g_szDeviceTypeValues_Serial: ; db "SER",NULL 300 ; db 53h, 45h, 52h, 00h ; uncompressed 301 db 59h, 4bh, 98h ; compressed 298 302 299 303 … … 310 314 %endif 311 315 %if g_szDeviceTypeValues_8bit <> g_szDeviceTypeValues_32bit + g_szDeviceTypeValues_Displacement 312 %error "g_szDeviceTypeValues Displacement Incorrect 2"316 %error "g_szDeviceTypeValues Displacement Incorrect 3" 313 317 %endif 314 318 %if g_szDeviceTypeValues_XTIDEr1 <> g_szDeviceTypeValues_8bit + g_szDeviceTypeValues_Displacement 315 %error "g_szDeviceTypeValues Displacement Incorrect 3"319 %error "g_szDeviceTypeValues Displacement Incorrect 4" 316 320 %endif 317 321 %if g_szDeviceTypeValues_XTIDEr2 <> g_szDeviceTypeValues_XTIDEr1 + g_szDeviceTypeValues_Displacement 318 %error "g_szDeviceTypeValues Displacement Incorrect 4"322 %error "g_szDeviceTypeValues Displacement Incorrect 5" 319 323 %endif 320 324 %if g_szDeviceTypeValues_XTCFpio8 <> g_szDeviceTypeValues_XTIDEr2 + g_szDeviceTypeValues_Displacement 321 %error "g_szDeviceTypeValues Displacement Incorrect 5"322 %endif323 %if g_szDeviceTypeValues_XTCFdma <> g_szDeviceTypeValues_XTCFpio8 + g_szDeviceTypeValues_Displacement324 325 %error "g_szDeviceTypeValues Displacement Incorrect 6" 325 326 %endif 326 %if g_szDeviceTypeValues_XTCF mem <> g_szDeviceTypeValues_XTCFdma+ g_szDeviceTypeValues_Displacement327 %if g_szDeviceTypeValues_XTCFpio8BIU <> g_szDeviceTypeValues_XTCFpio8 + g_szDeviceTypeValues_Displacement 327 328 %error "g_szDeviceTypeValues Displacement Incorrect 7" 328 329 %endif 329 %if g_szDeviceTypeValues_ JrIde <> g_szDeviceTypeValues_XTCFmem+ g_szDeviceTypeValues_Displacement330 %if g_szDeviceTypeValues_XTCFpio16BIU <> g_szDeviceTypeValues_XTCFpio8BIU + g_szDeviceTypeValues_Displacement 330 331 %error "g_szDeviceTypeValues Displacement Incorrect 8" 331 332 %endif 333 %if g_szDeviceTypeValues_XTCFdma <> g_szDeviceTypeValues_XTCFpio16BIU + g_szDeviceTypeValues_Displacement 334 %error "g_szDeviceTypeValues Displacement Incorrect 9" 335 %endif 336 %if g_szDeviceTypeValues_JrIde <> g_szDeviceTypeValues_XTCFdma + g_szDeviceTypeValues_Displacement 337 %error "g_szDeviceTypeValues Displacement Incorrect 10" 338 %endif 332 339 %if g_szDeviceTypeValues_ADP50L <> g_szDeviceTypeValues_JrIde + g_szDeviceTypeValues_Displacement 333 %error "g_szDeviceTypeValues Displacement Incorrect 9"340 %error "g_szDeviceTypeValues Displacement Incorrect 11" 334 341 %endif 335 342 %if g_szDeviceTypeValues_Serial <> g_szDeviceTypeValues_ADP50L + g_szDeviceTypeValues_Displacement 336 %error "g_szDeviceTypeValues Displacement Incorrect 1 0"343 %error "g_szDeviceTypeValues Displacement Incorrect 12" 337 344 %endif 338 345 %endif … … 560 567 561 568 ;; translated usage stats 562 ;; 54:1569 ;; 172:2 563 570 ;; 47:2 564 ;; 17 5:1565 ;; 4 9:1566 ;; 4 4:1567 ;; 50:2571 ;; 171:2 572 ;; 46:3 573 ;; 48:2 574 ;; 181:1 568 575 ;; 200:1 569 ;; 181:1 570 ;; 172:2 576 ;; 54:2 571 577 ;; 45:2 578 ;; 49:2 579 ;; 34:3 580 ;; 179:8 572 581 ;; 56:8 573 582 ;; 33:1 574 583 ;; 53:2 575 ;; 179:8 576 ;; 171:2 584 ;; 32:34 585 ;; 175:1 586 ;; 44:1 587 ;; 50:2 577 588 ;; 51:3 578 ;; 34:3579 ;; 48:2580 ;; 46:3581 ;; 32:35582 589 ;; total translated: 20 583 590 584 591 ;; format usage stats 592 ;; z:2 585 593 ;; nl:12 594 ;; u:6 595 ;; 5-x:1 596 ;; c:13 597 ;; A:4 598 ;; s:14 599 ;; 5-u:2 586 600 ;; x:5 587 ;; A:4588 ;; 5-x:1589 601 ;; 2-u:1 590 ;; z:2591 ;; 5-u:2592 ;; s:14593 602 ;; 2-I:1 594 ;; u:6595 ;; c:13596 603 ;; total format: 11 597 604 … … 605 612 ;; 64,@:1 606 613 ;; 65,A:5 607 ;; 66,B: 9614 ;; 66,B:11 608 615 ;; 67,C:3 609 616 ;; 68,D:11 … … 616 623 ;; 75,K:1 617 624 ;; 76,L:4 618 ;; 77,M: 8625 ;; 77,M:7 619 626 ;; 78,N:2 620 627 ;; 79,O:2 … … 623 630 ;; 82,R:7 624 631 ;; 83,S:3 625 ;; 84,T: 1632 ;; 84,T:2 626 633 ;; 85,U:2 627 634 ;; 86,V: -
trunk/XTIDE_Universal_BIOS/Src/VariablesAndDPTs/AccessDPT.asm
r568 r588 94 94 ; Returns: 95 95 ; AH: Device Type 96 ; ZF: Setif XTCF97 ; Clearedif some other device96 ; CF: Cleared if XTCF 97 ; Set if some other device 98 98 ; Corrupts registers: 99 99 ; Nothing … … 101 101 AccessDPT_IsThisDeviceXTCF: 102 102 mov ah, [di+DPT_ATA.bDevice] 103 cmp ah, DEVICE_8BIT_XTCF_PIO8 104 je SHORT .DeviceIsXTCF 105 cmp ah, DEVICE_8BIT_XTCF_PIO8_WITH_BIU_OFFLOAD 106 je SHORT .DeviceIsXTCF 107 cmp ah, DEVICE_8BIT_XTCF_DMA 108 .DeviceIsXTCF: 103 cmp ah, FIRST_XTCF_DEVICE 104 jb SHORT .DeviceIsNotXTCF 105 cmp ah, LAST_XTCF_DEVICE+1 106 cmc 107 .DeviceIsNotXTCF: 109 108 ret 110 109 %endif ; MODULE_8BIT_IDE_ADVANCED
Note:
See TracChangeset
for help on using the changeset viewer.