Changeset 370 in xtideuniversalbios for trunk/XTIDE_Universal_BIOS/Inc
- Timestamp:
- Mar 29, 2012, 4:40:50 PM (13 years ago)
- google:author:
- krille_n_@hotmail.com
- Location:
- trunk/XTIDE_Universal_BIOS/Inc
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/XTIDE_Universal_BIOS/Inc/ATA_ID.inc
r364 r370 21 21 PIO_3_MIN_ADDRESS_VALID_NS EQU 30 22 22 PIO_4_MIN_ADDRESS_VALID_NS EQU 25 23 PIO_5_MIN_ADDRESS_VALID_NS EQU 25 ; Could not find info24 PIO_6_MIN_ADDRESS_VALID_NS EQU 25 ; Could not find info23 PIO_5_MIN_ADDRESS_VALID_NS EQU 15 24 PIO_6_MIN_ADDRESS_VALID_NS EQU 10 25 25 26 26 ; PIO Minimum Active Times (t2) … … 30 30 PIO_3_MIN_ACTIVE_TIME_NS EQU 80 31 31 PIO_4_MIN_ACTIVE_TIME_NS EQU 70 32 PIO_5_MIN_ACTIVE_TIME_NS EQU 70 ; Could not find info33 PIO_6_MIN_ACTIVE_TIME_NS EQU 70 ; Could not find info32 PIO_5_MIN_ACTIVE_TIME_NS EQU 65 33 PIO_6_MIN_ACTIVE_TIME_NS EQU 55 34 34 35 35 ; PIO Minimum Recovery Times or Inactive Times (t2i) can be calculated 36 ; from Minimum Cycle Time (t0) - Minimum Active Time (t2) - Address Valid Time (t1). 36 ; from Minimum Cycle Time (t0) - Minimum Active Time (t2) - Address Valid Time (t1). 37 37 ; I'm not sure about this calculation so correct me if I'm wrong! 38 38 ; Recovery time should be calculated at run time since Cycle Time t0 can be … … 54 54 .wBpTrck resw 1 ; 4F, Number of unformatted bytes per track 55 55 .wBpSect resw 1 ; 5F, Number of unformatted bytes per sector 56 .wSPT resw 1 ; 6F, Number of sectors per track 56 .wSPT resw 1 ; 6F, Number of sectors per track 57 57 resw 3 ; 7...9X 58 58 .strSerial resb 20 ; 10...19F, Serial number (20 ASCII characters, 0000h=not specified) … … 136 136 resw 1 ; 4X 137 137 resw 1 ; 5X 138 .wSPT resw 1 ; 6F, Number of logical sectors per track 138 .wSPT resw 1 ; 6F, Number of logical sectors per track 139 139 resw 3 ; 7...9X 140 140 .strSerial resb 20 ; 10...19F, Serial number (20 ASCII characters, 0000h=not specified) … … 166 166 .bBlockSel resb 1 ; 59[0-7]V, Current setting for number of sectors that 167 167 ; can be transferred per interrupt on R/W multiple command 168 .bBlockFlgs resb 1 ; 59[8-15]VR, bit 0 set if Multiple sector setting is valid 168 .bBlockFlgs resb 1 ; 59[8-15]VR, bit 0 set if Multiple sector setting is valid 169 169 .dwLBACnt resd 1 ; 60...61F, Total number of user addressable sectors (LBA mode only) 170 170 .bSDMASupp resb 1 ; 62[0-7]F, Single word DMA transfer modes supported … … 172 172 .bMDMASupp resb 1 ; 63[0-7]F, Multiword DMA transfer modes supported 173 173 .bMDMAAct resb 1 ; 63[8-15]V, Multiword DMA transfer mode active 174 174 175 175 ; Words 64-70 are valid only if bit1 is set in .wFields (ATA2+) 176 176 .bPIOSupp resb 1 ; 64[0-7]F, Advanced PIO Transfer Modes Supported … … 220 220 resw 1 ; 4X 221 221 resw 1 ; 5X 222 resw 1 ; 6X, Obsolete (Number of logical sectors per track) 222 resw 1 ; 6X, Obsolete (Number of logical sectors per track) 223 223 resw 2 ; 7...8V, Reserved for assignment by the CompactFlash Association 224 224 resw 1 ; 9X -
trunk/XTIDE_Universal_BIOS/Inc/CustomDPT.inc
r365 r370 91 91 struc DPT_SERIAL 92 92 .dpt resb DPT_size 93 94 93 .wSerialPortAndBaud: 95 94 .bSerialPort resb 1 ; Serial connection I/O port address, divided by 4 … … 126 125 jnz SHORT %%LoadMaxValueToAX 127 126 cmp ax, MAX_LCHS_CYLINDERS 128 jb eSHORT %%NoNeedToModify127 jb SHORT %%NoNeedToModify 129 128 %%LoadMaxValueToAX: 130 129 mov ax, MAX_LCHS_CYLINDERS -
trunk/XTIDE_Universal_BIOS/Inc/IDE_8bit.inc
r363 r370 30 30 ; XTIDE_INSW 31 31 ; Parameters: 32 ; B X: Bit mask for toggling XTIDE data low/high reg32 ; BL: Bit mask for toggling XTIDE data low/high reg 33 33 ; DX: XTIDE Data Low Register address 34 34 ; ES:DI: Ptr to destination buffer … … 41 41 %ifdef USE_186 ; INS instruction available 42 42 insb ; Load low byte from port DX to [ES:DI] 43 xor d x, bx; IDE Data Reg to XTIDE Data High Reg43 xor dl, bl ; IDE Data Reg to XTIDE Data High Reg 44 44 insb ; Load high byte from port DX to [ES:DI] 45 xor d x, bx; Restore to IDE Data Register45 xor dl, bl ; Restore to IDE Data Register 46 46 %else ; If 8088/8086 47 47 in al, dx ; Load low byte from port 48 xor d x, bx; IDE Data Reg to XTIDE Data High Reg48 xor dl, bl ; IDE Data Reg to XTIDE Data High Reg 49 49 stosb ; Store byte to [ES:DI] 50 50 in al, dx ; Load high byte from port 51 xor d x, bx; Restore to IDE Data Register51 xor dl, bl ; Restore to IDE Data Register 52 52 stosb ; Store byte to [ES:DI] 53 53 %endif … … 60 60 ; XTIDE_OUTSW 61 61 ; Parameters: 62 ; B X: Bit mask for toggling XTIDE data low/high reg62 ; BL: Bit mask for toggling XTIDE data low/high reg 63 63 ; DX: XTIDE Data Low Register address 64 64 ; DS:SI: Ptr to source buffer … … 71 71 %ifdef USE_186 ; OUTS instruction available 72 72 lodsb ; Load low byte from [DS:SI] to AL 73 xor d x, bx; IDE Data Reg to XTIDE Data High Reg73 xor dl, bl ; IDE Data Reg to XTIDE Data High Reg 74 74 outsb ; Output high byte from [DS:SI] 75 xor d x, bx; XTIDE Data High Reg to Data Low Reg75 xor dl, bl ; XTIDE Data High Reg to Data Low Reg 76 76 out dx, al ; Output low byte from AL 77 77 %else ; If 8088/8086 78 78 lodsw ; Load word from [DS:SI] 79 xor d x, bx; IDE Data Reg to XTIDE Data High Reg79 xor dl, bl ; IDE Data Reg to XTIDE Data High Reg 80 80 xchg al, ah ; => AL=high byte, AH=low byte 81 81 out dx, al ; Output high byte 82 xor d x, bx; XTIDE Data High Reg to Data Low Reg82 xor dl, bl ; XTIDE Data High Reg to Data Low Reg 83 83 mov al, ah ; Copy low byte to AL 84 84 out dx, al ; Output low byte
Note:
See TracChangeset
for help on using the changeset viewer.