Changeset 233 in xtideuniversalbios for trunk/XTIDE_Universal_BIOS/Inc
- Timestamp:
- Feb 4, 2012, 6:21:22 PM (13 years ago)
- google:author:
- gregli@hotmail.com
- Location:
- trunk/XTIDE_Universal_BIOS/Inc
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/XTIDE_Universal_BIOS/Inc/ATA_ID.inc
r3 r233 254 254 .wRMSN resw 1 ; 127F, Removable Media Status Notification feature set support 255 255 .wSecurity resw 1 ; 128FV, Security Status 256 resw 160-129 ; 129...159X 256 resw 159-129 ; 129...158X, Vendor Specific 257 .wVendor resw 1 ; 159X, Vendor Specific - picking one word for use by the Serial Port code 257 258 .wCFAPower resw 1 ; 160FV, CFA Power Mode 1 258 259 resw 176-161 ; 161...175R, Reserved for assignment by the CompactFlash Association -
trunk/XTIDE_Universal_BIOS/Inc/CustomDPT.inc
r232 r233 28 28 .dpt resb DPT_size 29 29 30 ; Block size is specified in sectors (1, 2, 4, 8, 16, 32, 64 or 128) 30 ; Block size is specified in sectors (1, 2, 4, 8, 16, 32 or 64). 31 ; 128 is not allowed to prevent offset overflow during data transfer. 31 32 .wSetAndMaxBlock: 32 33 .bSetBlock resb 1 ; Current block size (at least 1) … … 39 40 .dpt resb DPT_size 40 41 41 .bSerialPortAndBaud resb 1 ; Packed I/O port and baud rate for serial drives 42 resb 1 ; unused alignment 42 .wSerialPortAndBaud: 43 .bSerialPort resb 1 ; Serial connection I/O port address, divided by 4 44 .bSerialBaud resb 1 ; Serial connection baud rate divisor 43 45 endstruc 44 46 %endif -
trunk/XTIDE_Universal_BIOS/Inc/RamVars.inc
r218 r233 13 13 .bHDSwap resb 1 ; Hard Drive to swap to 80h and vice versa 14 14 .bXlatedDrv resb 1 ; Drive number after translation 15 %ifdef MODULE_SERIAL16 .bLastSerial resb 1 ; Packed Port and Baud for last serial drive detected17 ; (using space of an alignment byte,18 ; used during and after boot (int13/25h case))19 %else20 15 resb 1 ; alignment 21 %endif22 16 endstruc 23 17 -
trunk/XTIDE_Universal_BIOS/Inc/RomVars.inc
r227 r233 48 48 ; Controller specific variables 49 49 struc IDEVARS 50 ;;; Word 0 51 .wSerialPortAndBaud: ; Serial connection port (low, divided by 4) and baud rate divisor (high) 50 52 .wPort: ; IDE Base Port for Command Block (usual) Registers 51 .bSerial COMDigit resb 1 ; Serial Device COM Port digit52 .bSerial PackedPortAndBaud resb 1 ; Serial Device packed port and baud53 .bSerialPort resb 1 54 .bSerialBaud resb 1 53 55 54 .wPortCtrl: ; IDE Base Port for Control Block Registers 55 .wSerialPackedPrintBaud resb 2 ; Serial Device packed baud rate for printing 56 ;;; Word 1 57 .wPortCtrl: 58 .bSerialUnused resb 1 ; IDE Base Port for Control Block Registers 56 59 60 .wSerialCOMPortCharAndDevice: ; In DetectPrint, we grab the COM Port char and Device at the same time 61 .bSerialCOMPortChar resb 1 ; Serial connection COM port number/letter 62 63 ;;; Word 2 57 64 .bDevice resb 1 ; Device type 65 58 66 .bIRQ resb 1 ; Interrupt Request Number 67 68 ;;; And more... 59 69 .drvParamsMaster resb DRVPARAMS_size 60 70 .drvParamsSlave resb DRVPARAMS_size 61 71 endstruc 72 73 %if IDEVARS.bSerialCOMPortChar+1 != IDEVARS.bDevice 74 %erorr "IDEVARS.bSerialCOMPortChar needs to come immediately before IDEVARS.bDevice so that both bytes can be fetched at the same time inside DetectPrint.asm" 75 %endif 62 76 63 77 ; Default values for Port and PortCtrl, shared with the configurator … … 67 81 DEVICE_ATA_DEFAULT_PORT EQU 1F0h 68 82 DEVICE_ATA_DEFAULT_PORTCTRL EQU 3F0h 69 DEVICE_SERIAL_DEFAULT_COM EQU 0 ; COM170 DEVICE_SERIAL_DEFAULT_BAUD EQU 1 ; 960071 83 72 84 ; Device types for IDEVARS.bDevice … … 77 89 DEVICE_16BIT_ATA EQU (3<<1) 78 90 DEVICE_32BIT_ATA EQU (4<<1) 79 DEVICE_SERIAL_PORT EQU (5<<1) 91 DEVICE_SERIAL_PORT EQU (5<<1) ; must be last entry, or remove optimization in DetectPrint 80 92 81 93 … … 94 106 FLG_DRVPARAMS_BLOCKMODE EQU (1<<1) ; Enable Block mode transfers 95 107 FLG_DRVPARAMS_USERLBA EQU (1<<2) ; User specified LBA values 96 97 98 ; Defines for IDEVARS.bSerialPackedPortAndBaud (same format used by DPT.bSerialPortAndBaud)99 ;100 ; pppp ppbb101 ; i/o port address = p * 2 + 240h102 ; baud rate = b, where 00 = 2400, 01 = 9600, 10 = 38.4K, 11 = 115.2K103 ;104 ; 240h/2400baud corresponds to 0 for a PackedPortAndBaud value, which triggers auto detect code.105 ; Which means 240h is not usable, and is why ..._MINPORT is 248h. A value is reserved at the upper106 ; end of the spectrum in case it is needed (whcih is why it is 430h instead of 438h).107 ;108 DEVICE_SERIAL_PACKEDPORTANDBAUD_PORTMASK EQU 0fch109 DEVICE_SERIAL_PACKEDPORTANDBAUD_PORTBITS EQU 03fh110 DEVICE_SERIAL_PACKEDPORTANDBAUD_PORT_FIELD_POSITION EQU 2111 DEVICE_SERIAL_PACKEDPORTANDBAUD_STARTINGPORT EQU 240h112 DEVICE_SERIAL_PACKEDPORTANDBAUD_MINPORT EQU 248h ; minimum port value that the user can set113 DEVICE_SERIAL_PACKEDPORTANDBAUD_MAXPORT EQU 430h ; or ((..._PORTMASK-1) << 1) + ..._STARTINGPORT114 115 DEVICE_SERIAL_PACKEDPORTANDBAUD_BAUDMASK EQU 3h116 DEVICE_SERIAL_PACKEDPORTANDBAUD_BAUDBITS EQU 3h117 DEVICE_SERIAL_PACKEDPORTANDBAUD_BAUD_FIELD_POSITION EQU 0118 119 ; Defines for IDEVARS.wSerialPrintBaud120 ;121 ; pppp ppnn nnnn nnnn122 ; unsigned number to output = n123 ; postfix character = p + '0' (designed for '0' and 'K', although other values are possible)124 ;125 ; Note that the contents of this word is only used for printing by the BIOS when a drive is detected.126 ; It is not used for any other purpose, and so long as it conforms to the structure, any values can be used.127 ;128 DEVICE_SERIAL_PRINTBAUD_NUMBERMASK EQU 003ffh129 DEVICE_SERIAL_PRINTBAUD_POSTCHARMASK EQU 0fc00h130 DEVICE_SERIAL_PRINTBAUD_POSTCHARADD EQU '0'131 ;132 ; These are defined here (instead of in the configurator) for consistency since they could also be used133 ; in main.asm as a default for an IDEVARS structure.134 ;135 DEVICE_SERIAL_PRINTBAUD_2400 EQU ((('0'-DEVICE_SERIAL_PRINTBAUD_POSTCHARADD)<<10) | 240) ; Prints "2400"136 DEVICE_SERIAL_PRINTBAUD_9600 EQU ((('0'-DEVICE_SERIAL_PRINTBAUD_POSTCHARADD)<<10) | 960) ; Prints "9600"137 DEVICE_SERIAL_PRINTBAUD_38_4 EQU ((('K'-DEVICE_SERIAL_PRINTBAUD_POSTCHARADD)<<10) | 38) ; Prints "38K"138 DEVICE_SERIAL_PRINTBAUD_115_2 EQU ((('K'-DEVICE_SERIAL_PRINTBAUD_POSTCHARADD)<<10) | 115) ; Prints "115K"139 108 140 109 ;
Note:
See TracChangeset
for help on using the changeset viewer.