Changeset 596 in xtideuniversalbios for trunk/XTIDE_Universal_BIOS
- Timestamp:
- Jul 10, 2018, 1:20:11 AM (6 years ago)
- Location:
- trunk/XTIDE_Universal_BIOS
- Files:
-
- 14 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/XTIDE_Universal_BIOS/Inc/BootVars.inc
r595 r596 43 43 .wFddAndHddLetters: 44 44 .bFddLetter resb 1 ; Floppy Drive letter hotkey (upper case) 45 .wHddLetterAndFlags: 45 46 .bHddLetter resb 1 ; Hard Drive letter hotkey (upper case). Must be after .bFddLetter! 46 47 .bFlags resb 1 ; Must be just after .bHddLetter! (dependency in Hotkeybar.asm) -
trunk/XTIDE_Universal_BIOS/Src/Device/IDE/IdeCommand.asm
r592 r596 31 31 ; AL, BX, CX, DX 32 32 ;-------------------------------------------------------------------- 33 IdeCommand_ResetMasterAndSlaveController: 33 IdeCommand_ResetMasterAndSlaveController: ; Unused entrypoint OK 34 34 ; HSR0: Set_SRST 35 35 ; Used to be: … … 81 81 ; AL, BX, CX, DX, SI, DI, ES 82 82 ;-------------------------------------------------------------------- 83 IdeCommand_IdentifyDeviceToBufferInESSIwithDriveSelectByteInBH: 83 IdeCommand_IdentifyDeviceToBufferInESSIwithDriveSelectByteInBH: ; Unused entrypoint OK 84 84 ; Create fake DPT to be able to use Device.asm functions 85 85 call FindDPT_ForNewDriveToDSDI … … 145 145 ;-------------------------------------------------------------------- 146 146 ALIGN JUMP_ALIGN 147 IdeCommand_OutputWithParameters: 147 IdeCommand_OutputWithParameters: ; Unused entrypoint OK 148 148 push bx ; Store status register bits to poll 149 149 -
trunk/XTIDE_Universal_BIOS/Src/Device/IDE/IdeDPT.asm
r592 r596 32 32 ; AX, BX, CX, DX 33 33 ;-------------------------------------------------------------------- 34 IdeDPT_Finalize: 34 IdeDPT_Finalize: ; Unused entrypoint OK 35 35 36 36 %ifdef MODULE_POWER_MANAGEMENT -
trunk/XTIDE_Universal_BIOS/Src/Device/Idepack.asm
r542 r596 114 114 mov [bp+IDEPACK.wLbaMiddleAndHigh], cx 115 115 pop bx 116 ; Fall to GetDeviceControlByteToIdepackAndStartTransfer 116 117 117 118 GetDeviceControlByteToIdepackAndStartTransfer: -
trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h.asm
r592 r596 339 339 Int13h_CallPreviousInt13hHandler: 340 340 pushf ; Simulate INT by pushing flags 341 call far[RAMVARS.fpOldI13h]341 call FAR [RAMVARS.fpOldI13h] 342 342 ret 343 343 -
trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h/Tools/Prepare.asm
r568 r596 132 132 ret ; Continue with transfer 133 133 134 %ifdef MODULE_EBIOS 134 135 InvalidDAP: 136 Prepare_ReturnFromInt13hWithInvalidFunctionError: 137 %endif 135 138 InvalidNumberOfSectorsRequested: 136 Prepare_ReturnFromInt13hWithInvalidFunctionError:137 139 mov ah, RET_HD_INVALID 138 140 SKIP2B f 139 141 CannotAlignPointerProperly: 140 142 mov ah, RET_HD_BOUNDARY 143 %ifdef MODULE_EBIOS 141 144 ZeroSectorsRequestedSoNoErrors: 145 %endif 142 146 jmp Int13h_ReturnFromHandlerAfterStoringErrorCodeFromAH 143 147 … … 161 165 %endif 162 166 167 %ifdef MODULE_EBIOS 163 168 g_rgbVerifyCommandLookup: 164 169 db COMMAND_VERIFY_SECTORS 165 170 db COMMAND_VERIFY_SECTORS_EXT 166 171 db COMMAND_VERIFY_SECTORS 167 %ifdef MODULE_EBIOS168 172 db COMMAND_VERIFY_SECTORS_EXT 169 173 %endif -
trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13hMFMcompatibility.asm
r594 r596 1 1 ; Project name : XTIDE Universal BIOS 2 2 ; Description : Int 13h handler that is used by MODULE_MFM_COMPATIBILITY. 3 ; It is placed between X TUB Int 13h hander and system INT 13h hander4 ; to hide X TUB from MFM controllers whose BIOS assumes they handler3 ; It is placed between XUB Int 13h handler and system INT 13h handler 4 ; to hide XUB from MFM controllers whose BIOS assumes they handle 5 5 ; all hard drives on the system. 6 6 … … 28 28 ; Int 13h software interrupt handler for MFM compatibility. 29 29 ; 30 ; Some M DM controllers require that BDA drive count is what they have set.30 ; Some MFM controllers require that BDA drive count is what they have set. 31 31 ; The purpose for this handler is to restore BDA drive count to what MFM controller 32 32 ; expects and then call MFM controller INT 13h. … … 64 64 65 65 pushf ; Push flags to simulate INT 66 call far[bp-6]66 call FAR [bp-6] 67 67 68 68 ; Now we can restore BDA drive count -
trunk/XTIDE_Universal_BIOS/Src/Handlers/Int19h.asm
r595 r596 229 229 mov gs, ax 230 230 %endif 231 jnc SHORT . romboot231 jnc SHORT .RomBoot 232 232 233 233 ; jump to boot sector … … 237 237 238 238 ; Boot by calling INT 18h (ROM Basic of ROM DOS) 239 . romboot:239 .RomBoot: 240 240 int BIOS_BOOT_FAILURE_INTERRUPT_18h ; Never returns -
trunk/XTIDE_Universal_BIOS/Src/Initialization/AdvancedAta/AdvAtaInit.asm
r593 r596 37 37 AdvAtaInit_DetectControllerForIdeBaseInBX: 38 38 ; Detect if system has PCI bus. If it does, we can skip VLB detection. This is 39 ; good thing since detecting Vision QD6 850 is dangerous since Intel PIIX4 south bridge39 ; good thing since detecting Vision QD6580 is dangerous since Intel PIIX4 south bridge 40 40 ; mirrors Interrupt Controller registers from Axh to Bxh. This can lead to faulty 41 ; detection of QD6 850 that will eventually crash the system when ports are written.41 ; detection of QD6580 that will eventually crash the system when ports are written. 42 42 43 43 ; We should save the 32-bit registers but we don't since system BIOS has stored -
trunk/XTIDE_Universal_BIOS/Src/Initialization/AdvancedAta/Vision.asm
r593 r596 194 194 ; Calculate Recovery Time value for QD65xx IDE Timing Register 195 195 xchg ax, cx 196 eMOVZX cx, BYTE[cs:bx+.rgbToSubtractFromCycleTimeBasedOnPIOmode]197 sub ax, cx196 mov bl, [cs:bx+.rgbToSubtractFromCycleTimeBasedOnPIOmode] 197 sub ax, bx 198 198 mov bx, bp ; Active Time value now in BL 199 199 mov bp, QD65xx_MAX_RECOVERY_TIME_CLOCKS | (QD65xx_MIN_RECOVERY_TIME_CLOCKS << 8) -
trunk/XTIDE_Universal_BIOS/Src/Initialization/DetectDrives.asm
r594 r596 99 99 ; Primary reason is to support dynamic overlay feature in the future. Second reason 100 100 ; is a hack to get Windows 95 load proper IDE drivers. 101 ; 101 ; 102 102 ; The Windows hack has two parts. First part is to try to alter CMOS address 12h as that 103 103 ; is what Windows 95 driver reads to detect IDE drives. Altering is not possible on all 104 ; systems since CMOS has a checksum but it 's location is not standardized. We will first104 ; systems since CMOS has a checksum but its location is not standardized. We will first 105 105 ; try to detect valid checksum. If it succeeds, then it is safe to assume this system 106 106 ; has compatible CMOS and we can alter it. … … 117 117 call CMOS_Verify10hTo2Dh ; Can we modify CMOS? 118 118 jnz SHORT .ClearBdaDriveCount ; Unsupported BIOS, use plan B 119 119 120 120 ; Now we can alter CMOS location 12h 121 121 mov dl, HARD_DISK_TYPES -
trunk/XTIDE_Universal_BIOS/Src/Initialization/Interrupts.asm
r594 r596 65 65 mov ax, [es:BIOS_DISK_INTERRUPT_13h*4] ; Load old INT 13h offset 66 66 mov [RAMVARS.fpMFMint13h], ax ; Store old INT 13h offset 67 67 68 68 mov [RAMVARS.fpOldI13h+2], cs 69 mov WORD [RAMVARS.fpOldI13h], Int13hMFMcompatibilityHandler 69 mov WORD [RAMVARS.fpOldI13h], Int13hMFMcompatibilityHandler 70 70 %else 71 71 mov ax, [es:BIOS_DISK_INTERRUPT_13h*4+2]; Load old INT 13h segment … … 252 252 xchg cx, ax ; IRQ index to CL 253 253 in al, dx ; Read Interrupt Mask Register 254 %ifdef USE_NEC_V 255 eCLR1 al, cl ; Clear wanted bit 256 %else 254 257 mov ch, ~1 ; Load bit mask to be rotated 255 258 rol ch, cl ; Rotate mask to correct position for clearing 256 259 and al, ch ; Clear wanted bit 260 %endif 257 261 out dx, al ; Write modified Interrupt Mask Register 258 262 pop cx -
trunk/XTIDE_Universal_BIOS/Src/Menus/HotkeyBar.asm
r593 r596 78 78 ; Clear CH if floppy drive is selected for boot 79 79 mov ch, [es:BOOTVARS.hotkeyVars+HOTKEYVARS.bFlags] 80 ;and ch, FLG_HOTKEY_HD_FIRST ; Needed if more flags are added80 ; and ch, FLG_HOTKEY_HD_FIRST ; Needed if more flags are added 81 81 call FormatDriveHotkeyString 82 82 … … 96 96 call BootVars_GetLetterForFirstHardDriveToAX 97 97 mov ah, ANGLE_QUOTE_RIGHT 98 mov cx, [es:BOOTVARS.hotkeyVars+HOTKEYVARS. bHddLetter] ; Letter to CL, flags to CH99 ;and ch, FLG_HOTKEY_HD_FIRST ; Needed if more flags are added98 mov cx, [es:BOOTVARS.hotkeyVars+HOTKEYVARS.wHddLetterAndFlags] ; Letter to CL, flags to CH 99 ; and ch, FLG_HOTKEY_HD_FIRST ; Needed if more flags are added 100 100 xor ch, FLG_HOTKEY_HD_FIRST ; Clear CH if HD is selected for boot, set otherwise 101 101 mov di, g_szHDD … … 234 234 235 235 GetSelectedHotkeyDescriptionAttributeToDX: 236 mov si, ATTRIBUTE_CHARS.cH urryTimeout; Selected hotkey236 mov si, ATTRIBUTE_CHARS.cHighlightedItem ; Selected hotkey 237 237 je SHORT GetDescriptionAttributeToDX ; From compare with bScancode above and from FormatDriveHotkeyString 238 238 239 239 GetNonSelectedHotkeyDescriptionAttributeToDX: 240 mov si, ATTRIBUTE_CHARS.c HighlightedItem; Unselected hotkey240 mov si, ATTRIBUTE_CHARS.cItem ; Unselected hotkey 241 241 242 242 ; Display Library should not be called like this -
trunk/XTIDE_Universal_BIOS/makefile
r595 r596 122 122 DEFINES_386_LARGE = $(DEFINES_AT_LARGE) USE_386 MODULE_ADVANCED_ATA 123 123 124 DEFINES_ALL_FEATURES = MODULE_8BIT_IDE MODULE_8BIT_IDE_ADVANCED MODULE_ADVANCED_ATA MODULE_EBIOS MODULE_BOOT_MENU MODULE_HOTKEYS MODULE_IRQ MODULE_SERIAL MODULE_SERIAL_FLOPPY MODULE_STRINGS_COMPRESSED MODULE_POWER_MANAGEMENT MODULE_COMPATIBLE_TABLES125 DEFINES_ALL_FEATURES += ELIMINATE_CGA_SNOW RELOCATE_INT13H_STACK RESERVE_DIAGNOSTIC_CYLINDER MODULE_WIN95_CMOS_HACK MODULE_MFM_COMPATIBILITY126 127 124 128 125 ################### … … 146 143 DEFS_386 = $(DEFINES_386:%=-D%) -DBIOS_SIZE=$(BIOS_SIZE_SMALL) 147 144 DEFS_386_LARGE = $(DEFINES_386_LARGE:%=-D%) -DBIOS_SIZE=$(BIOS_SIZE_LARGE) 148 DEFS_ALL_FEATURES = $(DEFINES_ALL_FEATURES:%=-D%)149 145 150 146 # Add -I in front of all header directories … … 249 245 250 246 unused: 251 @echo " All Features"252 @$(AS) "$(SRC_ASM)" $(ASFLAGS) $(DEFS_ ALL_FEATURES) $(DEFS_XT) $(DEFS_XT_PLUS) $(DEFS_AT) $(DEFS_XT_LARGE) $(DEFS_XTPLUS_LARGE) $(DEFS_AT_LARGE) $(DEFS_XT_TINY) $(DEFS_386_8K) -o"$(TARGET)_unused.asm" -l"$(TARGET)_unused.lst"253 @$(AS) "$(SRC_ASM)" $(ASFLAGS) $(DEFS_ ALL_FEATURES) $(DEFS_XT) $(DEFS_XT_PLUS) $(DEFS_AT) $(DEFS_XT_LARGE) $(DEFS_XTPLUS_LARGE) $(DEFS_AT_LARGE) $(DEFS_XT_TINY) $(DEFS_386_8K) -o"$(TARGET)_unused.asm" -E -DCHECK_FOR_UNUSED_ENTRYPOINTS254 @perl ..\Tools\unused.pl $(TARGET)_unused .lst $(TARGET)_unused.asm247 @echo "XT Tiny" 248 @$(AS) "$(SRC_ASM)" $(ASFLAGS) $(DEFS_XT_TINY) -o"$(TARGET)_unused_tiny.asm" -l"$(TARGET)_unused_tiny.lst" 249 @$(AS) "$(SRC_ASM)" $(ASFLAGS) $(DEFS_XT_TINY) -o"$(TARGET)_unused_tiny.asm" -E -DCHECK_FOR_UNUSED_ENTRYPOINTS 250 @perl ..\Tools\unused.pl $(TARGET)_unused_tiny.lst $(TARGET)_unused_tiny.asm 255 251 @echo "XT Small" 256 252 @$(AS) "$(SRC_ASM)" $(ASFLAGS) $(DEFS_XT) -o"$(TARGET)_unused_xt.asm" -l"$(TARGET)_unused_xt.lst" … … 261 257 @$(AS) "$(SRC_ASM)" $(ASFLAGS) $(DEFS_XT_LARGE) -o"$(TARGET)_unused_xtl.asm" -E -DCHECK_FOR_UNUSED_ENTRYPOINTS 262 258 @perl ..\Tools\unused.pl $(TARGET)_unused_xtl.lst $(TARGET)_unused_xtl.asm 259 @echo "XT Plus Small" 260 @$(AS) "$(SRC_ASM)" $(ASFLAGS) $(DEFS_XTPLUS) -o"$(TARGET)_unused_xtp.asm" -l"$(TARGET)_unused_xtp.lst" 261 @$(AS) "$(SRC_ASM)" $(ASFLAGS) $(DEFS_XTPLUS) -o"$(TARGET)_unused_xtp.asm" -E -DCHECK_FOR_UNUSED_ENTRYPOINTS 262 @perl ..\Tools\unused.pl $(TARGET)_unused_xtp.lst $(TARGET)_unused_xtp.asm 263 @echo "XT Plus Large" 264 @$(AS) "$(SRC_ASM)" $(ASFLAGS) $(DEFS_XTPLUS_LARGE) -o"$(TARGET)_unused_xtpl.asm" -l"$(TARGET)_unused_xtpl.lst" 265 @$(AS) "$(SRC_ASM)" $(ASFLAGS) $(DEFS_XTPLUS_LARGE) -o"$(TARGET)_unused_xtpl.asm" -E -DCHECK_FOR_UNUSED_ENTRYPOINTS 266 @perl ..\Tools\unused.pl $(TARGET)_unused_xtpl.lst $(TARGET)_unused_xtpl.asm 263 267 @echo "AT Small" 264 268 @$(AS) "$(SRC_ASM)" $(ASFLAGS) $(DEFS_AT) -o"$(TARGET)_unused_at.asm" -l"$(TARGET)_unused_at.lst" … … 269 273 @$(AS) "$(SRC_ASM)" $(ASFLAGS) $(DEFS_AT_LARGE) -o"$(TARGET)_unused_atl.asm" -E -DCHECK_FOR_UNUSED_ENTRYPOINTS 270 274 @perl ..\Tools\unused.pl $(TARGET)_unused_atl.lst $(TARGET)_unused_atl.asm 271 272 275 @echo "386 Small" 276 @$(AS) "$(SRC_ASM)" $(ASFLAGS) $(DEFS_386) -o"$(TARGET)_unused_386.asm" -l"$(TARGET)_unused_386.lst" 277 @$(AS) "$(SRC_ASM)" $(ASFLAGS) $(DEFS_386) -o"$(TARGET)_unused_386.asm" -E -DCHECK_FOR_UNUSED_ENTRYPOINTS 278 @perl ..\Tools\unused.pl $(TARGET)_unused_386.lst $(TARGET)_unused_386.asm 279 @echo "386 Large" 280 @$(AS) "$(SRC_ASM)" $(ASFLAGS) $(DEFS_386_LARGE) -o"$(TARGET)_unused_386l.asm" -l"$(TARGET)_unused_386l.lst" 281 @$(AS) "$(SRC_ASM)" $(ASFLAGS) $(DEFS_386_LARGE) -o"$(TARGET)_unused_386l.asm" -E -DCHECK_FOR_UNUSED_ENTRYPOINTS 282 @perl ..\Tools\unused.pl $(TARGET)_unused_386l.lst $(TARGET)_unused_386l.asm 283
Note:
See TracChangeset
for help on using the changeset viewer.