Changeset 594 in xtideuniversalbios for trunk


Ignore:
Timestamp:
Jul 4, 2018, 6:40:02 PM (6 years ago)
Author:
aitotat
Message:

Previosly committed flash fix for configurator was incomplete. Now fixed properly.
Added MODULE_MFM_COMPATIBILITY.

Location:
trunk
Files:
1 added
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/XTIDE_Universal_BIOS/Inc/RamVars.inc

    r593 r594  
    6969    .rgbTopOfStack:                     ; 256 bytes of stack
    7070    .fpInt13hEntryStack     resb    4
     71%endif
     72%ifdef MODULE_MFM_COMPATIBILITY
     73    .fpMFMint13h            resb    4
    7174%endif
    7275    .fpOldI13h              resb    4   ; Far pointer to old INT 13h handler
  • trunk/XTIDE_Universal_BIOS/Src/Initialization/DetectDrives.asm

    r593 r594  
    115115        test    al, al
    116116        jnz     SHORT .ContinueInitialization   ; CMOS byte 12h is ready for Windows 95
    117         call    CMOS_Verify10hTo2Dh
     117        call    CMOS_Verify10hTo2Dh             ; Can we modify CMOS?
    118118        jnz     SHORT .ClearBdaDriveCount       ; Unsupported BIOS, use plan B
    119119   
     
    123123        call    CMOS_WriteALtoIndexInDL
    124124        call    CMOS_StoreNewChecksumFor10hto2Dh
    125     %endif
     125.ClearBdaDriveCount:
     126    %endif  ; MODULE_WIN95_CMOS_HACK
    126127
    127128    test    BYTE [cs:ROMVARS.wFlags], FLG_ROMVARS_IGNORE_MOTHERBOARD_DRIVES
    128129    jz      SHORT .ContinueInitialization
    129 .ClearBdaDriveCount:
    130130    mov     BYTE [es:BDA.bHDCount], 0   ; Set hard disk count to zero
    131131.ContinueInitialization:
  • trunk/XTIDE_Universal_BIOS/Src/Initialization/Interrupts.asm

    r592 r594  
    5959;--------------------------------------------------------------------
    6060.InitializeInt13hAnd40h:
     61%ifdef MODULE_MFM_COMPATIBILITY
     62    mov     ax, [es:BIOS_DISK_INTERRUPT_13h*4+2]; Load old INT 13h segment
     63    mov     [RAMVARS.fpMFMint13h+2], ax         ; Store old INT 13h segment
     64    xchg    dx, ax
     65    mov     ax, [es:BIOS_DISK_INTERRUPT_13h*4]  ; Load old INT 13h offset
     66    mov     [RAMVARS.fpMFMint13h], ax           ; Store old INT 13h offset
     67   
     68    mov     [RAMVARS.fpOldI13h+2], cs
     69    mov     WORD [RAMVARS.fpOldI13h], Int13hMFMcompatibilityHandler
     70%else
    6171    mov     ax, [es:BIOS_DISK_INTERRUPT_13h*4+2]; Load old INT 13h segment
    6272    mov     [RAMVARS.fpOldI13h+2], ax           ; Store old INT 13h segment
     
    6474    mov     ax, [es:BIOS_DISK_INTERRUPT_13h*4]  ; Load old INT 13h offset
    6575    mov     [RAMVARS.fpOldI13h], ax             ; Store old INT 13h offset
     76%endif
    6677
    6778    ; Only store INT 13h handler to 40h if 40h is not already installed.
  • trunk/XTIDE_Universal_BIOS/Src/Main.asm

    r593 r594  
    280280
    281281    ; INT 13h Hard Disk BIOS functions
     282%ifdef MODULE_MFM_COMPATIBILITY
     283    %include "Int13hMFMcompatibility.asm"
     284%endif
    282285    %include "Int13h.asm"           ; For Int 13h, Disk functions
    283286    %include "AH0h_HReset.asm"
  • trunk/XTIDE_Universal_BIOS/makefile

    r593 r594  
    3030# MODULE_POWER_MANAGEMENT     Power Management support                                             #
    3131# MODULE_WIN95_CMOS_HACK      Hack for Windows 95 compatibility                                    #
     32# MODULE_MFM_COMPATIBILITY    Restores BDA drive count for MFM controllers that expect to be the   #
     33#                             only hard drive controller on the system                             #
    3234#                                                                                                  #
    3335# Not modules but these affect the assembly:                                                       #
     
    121123
    122124DEFINES_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_TABLES
    123 DEFINES_ALL_FEATURES += ELIMINATE_CGA_SNOW RELOCATE_INT13H_STACK RESERVE_DIAGNOSTIC_CYLINDER MODULE_WIN95_CMOS_HACK
     125DEFINES_ALL_FEATURES += ELIMINATE_CGA_SNOW RELOCATE_INT13H_STACK RESERVE_DIAGNOSTIC_CYLINDER MODULE_WIN95_CMOS_HACK MODULE_MFM_COMPATIBILITY
    124126
    125127
  • trunk/XTIDE_Universal_BIOS_Configurator_v2/Src/Buffers.asm

    r592 r594  
    188188
    189189    eMOVZX  di, [cs:g_cfgVars+CFGVARS.bEepromType]
    190 ;%if g_rgwEepromTypeToSizeInWords = 0   ; *FIXME* It really is but NASM won't accept this.
    191     mov     cx, [cs:di]
    192 ;%else
    193 ;   mov     cx, [cs:di+g_rgwEepromTypeToSizeInWords]
    194 ;%endif
     190    mov     cx, [cs:di+g_rgwEepromTypeToSizeInWords]
    195191    sub     cx, [cs:g_cfgVars+CFGVARS.wImageSizeInWords]    ; CX = WORDs to append
    196192    jbe     SHORT .NoNeedToAppendZeroes
Note: See TracChangeset for help on using the changeset viewer.