Changeset 621 in xtideuniversalbios for trunk/XTIDE_Universal_BIOS/Src
- Timestamp:
- Nov 21, 2021, 2:15:32 PM (3 years ago)
- Location:
- trunk/XTIDE_Universal_BIOS/Src
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/XTIDE_Universal_BIOS/Src/Device/Device.asm
r617 r621 52 52 jne IdeDPT_Finalize 53 53 jmp SerialDPT_Finalize 54 %else 54 %else ; ~USE_386 55 55 je SHORT .FinalizeDptForSerialPortDevice 56 56 jmp IdeDPT_Finalize … … 100 100 ; AL, BX, CX, DX, SI, DI, ES 101 101 ;-------------------------------------------------------------------- 102 %ifndef NO_ATAID_CORRECTION 102 103 Device_IdentifyToBufferInESSIwithDriveSelectByteInBH: 103 %ifndef NO_ATAID_CORRECTION104 104 cmp cx, XUB_INT13h_SIGNATURE 105 105 je SHORT .DoNotFixAtaInformation … … 108 108 ePUSH_T cx, AtaID_PopESSIandFixIllegalValuesFromESSI ; Here we modify ATA information if necessary 109 109 .DoNotFixAtaInformation: 110 %endif111 110 112 111 %ifdef MODULE_SERIAL ; IDE + Serial … … 115 114 jne IdeCommand_IdentifyDeviceToBufferInESSIwithDriveSelectByteInBH 116 115 jmp SerialCommand_IdentifyDeviceToBufferInESSIwithDriveSelectByteInBH 117 %else 116 %else ; ~USE_386 118 117 je SHORT .IdentifyDriveFromSerialPort 119 118 jmp IdeCommand_IdentifyDeviceToBufferInESSIwithDriveSelectByteInBH … … 126 125 %endif 127 126 127 %else ; NO_ATAID_CORRECTION 128 %ifdef MODULE_SERIAL ; IDE + Serial 129 cmp BYTE [cs:bp+IDEVARS.bDevice], DEVICE_SERIAL_PORT 130 %ifdef USE_386 131 jne IdeCommand_IdentifyDeviceToBufferInESSIwithDriveSelectByteInBH 132 jmp SerialCommand_IdentifyDeviceToBufferInESSIwithDriveSelectByteInBH 133 %else ; ~USE_386 134 je SHORT .IdentifyDriveFromSerialPort 135 jmp IdeCommand_IdentifyDeviceToBufferInESSIwithDriveSelectByteInBH 136 .IdentifyDriveFromSerialPort: 137 jmp SerialCommand_IdentifyDeviceToBufferInESSIwithDriveSelectByteInBH 138 %endif 139 140 %else ; IDE 141 Device_IdentifyToBufferInESSIwithDriveSelectByteInBH EQU IdeCommand_IdentifyDeviceToBufferInESSIwithDriveSelectByteInBH 142 %endif 143 %endif ; NO_ATAID_CORRECTION 144 128 145 129 146 ;-------------------------------------------------------------------- … … 149 166 jz IdeCommand_OutputWithParameters 150 167 jmp SerialCommand_OutputWithParameters 151 %else 168 %else ; ~USE_386 152 169 jnz SHORT .OutputCommandToSerialPort 153 170 jmp IdeCommand_OutputWithParameters … … 182 199 ; jz IdeCommand_ReadLBAlowRegisterToAL 183 200 ; jmp SerialCommand_ReadLBAlowRegisterToAL 184 ;%else 201 ;%else ; ~USE_386 185 202 ; jnz SHORT .ReadFromSerialPort 186 203 ; jmp IdeCommand_ReadLBAlowRegisterToAL … … 214 231 jnz SHORT ReturnSuccessForSerialPort 215 232 jmp IdeCommand_SelectDrive 216 %else 233 %else ; USE_386 217 234 jz IdeCommand_SelectDrive 218 235 ; Fall to ReturnSuccessForSerialPort … … 225 242 226 243 %ifdef MODULE_SERIAL 227 ALIGN JUMP_ALIGN228 244 ReturnSuccessForSerialPort: 229 245 xor ax, ax -
trunk/XTIDE_Universal_BIOS/Src/Device/Serial/SerialCommand.asm
r601 r621 154 154 155 155 push si 156 call FindDPT_ToDSDIforSerialDevice 156 call FindDPT_ToDSDIforSerialDevice ; Preserves AX 157 157 pop si 158 158 %ifdef MODULE_SERIAL_FLOPPY … … 162 162 ; So, if there was a previously found floppy disk, DI will point to that DPT and we use that value for the slave. 163 163 ; 164 cmp BYTE [RAMVARS.xlateVars+XLATEVARS.bFlopCntAndFirst], 0164 cmp [RAMVARS.xlateVars+XLATEVARS.bFlopCntAndFirst], al ; Zero? 165 165 je SHORT .notfounddpt 166 166 .founddpt: -
trunk/XTIDE_Universal_BIOS/Src/Initialization/Interrupts.asm
r599 r621 203 203 ;-------------------------------------------------------------------- 204 204 Interrupts_UnmaskInterruptControllerForDriveInDSDI: 205 eMOVZX bx, [di+DPT.bIdevarsOffset] 205 eMOVZX bx, [di+DPT.bIdevarsOffset] ; Clears CF on pre-386 CPUs 206 %ifndef USE_386 207 %ifdef USE_UNDOC_INTEL 208 salc 209 or al, [cs:bx+IDEVARS.bIRQ] 210 %else 206 211 mov al, [cs:bx+IDEVARS.bIRQ] 207 212 test al, al 213 %endif 214 %else ; USE_386 215 mov al, [cs:bx+IDEVARS.bIRQ] 216 test al, al 217 %endif 208 218 jz SHORT .Return ; Interrupts disabled 209 219 cmp al, 8 -
trunk/XTIDE_Universal_BIOS/Src/Main.asm
r605 r621 96 96 at ROMVARS.ideVars0+IDEVARS.wControlBlockPort, dw DEVICE_ATA_PRIMARY_PORTCTRL ; Controller Control Block base port 97 97 at ROMVARS.ideVars0+IDEVARS.bDevice, db DEVICE_16BIT_ATA 98 %ifdef MODULE_IRQ 98 99 at ROMVARS.ideVars0+IDEVARS.bIRQ, db 14 100 %endif 99 101 at ROMVARS.ideVars0+IDEVARS.drvParamsMaster+DRVPARAMS.wFlags, dw DISABLE_WRITE_CACHE | FLG_DRVPARAMS_BLOCKMODE | (TRANSLATEMODE_AUTO<<TRANSLATEMODE_FIELD_POSITION) 100 102 at ROMVARS.ideVars0+IDEVARS.drvParamsSlave+DRVPARAMS.wFlags, dw DISABLE_WRITE_CACHE | FLG_DRVPARAMS_BLOCKMODE | (TRANSLATEMODE_AUTO<<TRANSLATEMODE_FIELD_POSITION) … … 103 105 at ROMVARS.ideVars1+IDEVARS.wControlBlockPort, dw DEVICE_ATA_SECONDARY_PORTCTRL 104 106 at ROMVARS.ideVars1+IDEVARS.bDevice, db DEVICE_16BIT_ATA 107 %ifdef MODULE_IRQ 105 108 at ROMVARS.ideVars1+IDEVARS.bIRQ, db 15 109 %endif 106 110 at ROMVARS.ideVars1+IDEVARS.drvParamsMaster+DRVPARAMS.wFlags, dw DISABLE_WRITE_CACHE | FLG_DRVPARAMS_BLOCKMODE | (TRANSLATEMODE_AUTO<<TRANSLATEMODE_FIELD_POSITION) 107 111 at ROMVARS.ideVars1+IDEVARS.drvParamsSlave+DRVPARAMS.wFlags, dw DISABLE_WRITE_CACHE | FLG_DRVPARAMS_BLOCKMODE | (TRANSLATEMODE_AUTO<<TRANSLATEMODE_FIELD_POSITION) … … 110 114 at ROMVARS.ideVars2+IDEVARS.wControlBlockPort, dw DEVICE_ATA_TERTIARY_PORTCTRL 111 115 at ROMVARS.ideVars2+IDEVARS.bDevice, db DEVICE_16BIT_ATA 116 %ifdef MODULE_IRQ 112 117 at ROMVARS.ideVars2+IDEVARS.bIRQ, db 0 ; Should be 11 on the GSI Inc. Model 2C 118 %endif 113 119 at ROMVARS.ideVars2+IDEVARS.drvParamsMaster+DRVPARAMS.wFlags, dw DISABLE_WRITE_CACHE | FLG_DRVPARAMS_BLOCKMODE | (TRANSLATEMODE_AUTO<<TRANSLATEMODE_FIELD_POSITION) 114 120 at ROMVARS.ideVars2+IDEVARS.drvParamsSlave+DRVPARAMS.wFlags, dw DISABLE_WRITE_CACHE | FLG_DRVPARAMS_BLOCKMODE | (TRANSLATEMODE_AUTO<<TRANSLATEMODE_FIELD_POSITION) … … 117 123 at ROMVARS.ideVars3+IDEVARS.wControlBlockPort, dw DEVICE_ATA_QUATERNARY_PORTCTRL 118 124 at ROMVARS.ideVars3+IDEVARS.bDevice, db DEVICE_16BIT_ATA 125 %ifdef MODULE_IRQ 119 126 at ROMVARS.ideVars3+IDEVARS.bIRQ, db 0 ; Should be 10 on the GSI Inc. Model 2C 127 %endif 120 128 at ROMVARS.ideVars3+IDEVARS.drvParamsMaster+DRVPARAMS.wFlags, dw DISABLE_WRITE_CACHE | FLG_DRVPARAMS_BLOCKMODE | (TRANSLATEMODE_AUTO<<TRANSLATEMODE_FIELD_POSITION) 121 129 at ROMVARS.ideVars3+IDEVARS.drvParamsSlave+DRVPARAMS.wFlags, dw DISABLE_WRITE_CACHE | FLG_DRVPARAMS_BLOCKMODE | (TRANSLATEMODE_AUTO<<TRANSLATEMODE_FIELD_POSITION) -
trunk/XTIDE_Universal_BIOS/Src/Menus/BootMenu/BootMenuPrint.asm
r592 r621 123 123 .around: 124 124 125 mov ax, g_szFddSizeOr ; .PrintXTFloppyType125 mov ax, g_szFddSizeOr 126 126 test bl, bl ; Two possibilities? (FLOPPY_TYPE_525_OR_35_DD) 127 127 jz SHORT .PushAXAndOutput 128 128 129 mov al, (g_szFddUnknown - $$) & 0xff ; .PrintUnknownFloppyType129 mov al, (g_szFddUnknown - $$) & 0xff 130 130 cmp bl, FLOPPY_TYPE_35_ED 131 131 ja SHORT .PushAXAndOutput … … 218 218 219 219 .ConvertSectorCountInBXDXAXtoSizeAndPushForFormat: 220 call Size_ConvertSectorCountInBXDXAXtoKiB 220 221 ePUSH_T cx, g_szCapacityNum ; Push format substring 221 call Size_ConvertSectorCountInBXDXAXtoKiB222 222 mov cx, BYTE_MULTIPLES.kiB 223 223 call Size_GetSizeToAXAndCharToDLfromBXDXAXwithMagnitudeInCX -
trunk/XTIDE_Universal_BIOS/Src/VariablesAndDPTs/FindDPT.asm
r567 r621 137 137 ;-------------------------------------------------------------------- 138 138 ; Iteration routines for FindDPT_MasterOrSingleForIdevarsOffsetInDL and 139 ; FindDPT_SlaveForIdevarsOffsetInDL, for use with IterateAllDPTs139 ; FindDPT_SlaveForIdevarsOffsetInDL, for use with FindDPT_IterateAllDPTs 140 140 ; 141 141 ; Returns when DPT is found on the controller with Idevars offset in DL … … 152 152 IterateFindSecondDPTforIdevars: 153 153 call IterateFindFirstDPTforIdevars 154 jc SHORT .WrongController154 jc SHORT WrongController 155 155 mov si, IterateFindFirstDPTforIdevars 156 .WrongController:156 SetCFandReturn: 157 157 stc 158 WrongController: 158 159 ret 159 160 160 161 IterateFindFirstDPTforIdevars: 161 162 cmp dl, [di+DPT.bIdevarsOffset] ; Clears CF if matched 162 je .Done 163 stc ; Set CF for not found 164 .Done: 163 jne SHORT SetCFandReturn 165 164 ret 166 165 … … 221 220 ; Set if DPT not found, or no DPTs present 222 221 ; Corrupts registers: 223 ; SI222 ; BL, SI 224 223 ;-------------------------------------------------------------------- 225 224 %ifdef MODULE_SERIAL … … 315 314 loop .LoopWhileDPTsLeft 316 315 317 ALIGN JUMP_ALIGN318 316 .NotFound: 319 317 stc
Note:
See TracChangeset
for help on using the changeset viewer.