Changeset 561 in xtideuniversalbios for trunk/XTIDE_Universal_BIOS/Src


Ignore:
Timestamp:
Jul 9, 2013, 6:00:38 PM (11 years ago)
Author:
aitotat@…
google:author:
aitotat@gmail.com
Message:

Changes to XTIDE Universal BIOS:

  • MODULE_VERY_LATE_INITIALIZATION is not included on AT builds by default.
  • Very late initialization now uses 32h instead of 20h for temporary vector (untested but 20h might cause problems with ROM DOS).
Location:
trunk/XTIDE_Universal_BIOS/Src
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h.asm

    r558 r561  
    176176    ; Simulate INT by pushing flags and return address
    177177    push    WORD [bp+IDEPACK.intpack+INTPACK.flags]
     178%if 0
     179    ; No standard INT 13h function uses FLAGS as parameters so no need to restore them
    178180    popf
    179     pushf                               ; Simulate INT by pushing flags
     181    pushf
     182%endif
    180183    push    cs
    181184    ePUSH_T di, .ReturnFromAnotherBios  ; Can not corrupt flags
  • trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13hBiosInit.asm

    r560 r561  
    2222SECTION .text
    2323
    24 TEMPORARY_VECTOR_FOR_SYSTEM_INT13h      EQU     20h ; MS-DOS so BIOSes most likely do not use this
     24TEMPORARY_VECTOR_FOR_SYSTEM_INT13h      EQU     32h ; Unused by BIOS
    2525
    2626
  • trunk/XTIDE_Universal_BIOS/Src/Handlers/Int19h.asm

    r560 r561  
    3131    sti                                         ; Enable interrupts
    3232    cld                                         ; String instructions to increment pointers
     33%ifdef MODULE_VERY_LATE_INITIALIZATION
     34    LOAD_BDA_SEGMENT_TO ds, ax                  ; Load BDA segment (zero) to DS
     35    les     ax, [TEMPORARY_VECTOR_FOR_SYSTEM_INT13h*4]
     36    mov     [BIOS_DISK_INTERRUPT_13h*4], ax
     37    mov     [BIOS_DISK_INTERRUPT_13h*4+2], es
     38    push    ds                                  ; BDA segment (zero)...
     39    pop     es                                  ; ...to ES
     40%else
    3341    LOAD_BDA_SEGMENT_TO es, ax                  ; Load BDA segment (zero) to ES
    34 %ifdef MODULE_VERY_LATE_INITIALIZATION
    35     lds     ax, [es:TEMPORARY_VECTOR_FOR_SYSTEM_INT13h*4]
    36     mov     [es:BIOS_DISK_INTERRUPT_13h*4], ax
    37     mov     [es:BIOS_DISK_INTERRUPT_13h*4+2], ds
    3842%endif
    3943    ; Fall to .PrepareBootLoaderStack
  • trunk/XTIDE_Universal_BIOS/Src/Initialization/Initialize.asm

    r560 r561  
    5252    ; when our INT 19h is not called
    5353    les     ax, [BIOS_DISK_INTERRUPT_13h*4] ; Load system INT 13h handler
     54    mov     WORD [BIOS_DISK_INTERRUPT_13h*4], Int13hBiosInit_Handler
     55    mov     [BIOS_DISK_INTERRUPT_13h*4+2], cs
    5456    mov     [TEMPORARY_VECTOR_FOR_SYSTEM_INT13h*4], ax
    5557    mov     [TEMPORARY_VECTOR_FOR_SYSTEM_INT13h*4+2], es
    56     mov     WORD [BIOS_DISK_INTERRUPT_13h*4], Int13hBiosInit_Handler
    57     mov     [BIOS_DISK_INTERRUPT_13h*4+2], cs
    5858    pop     es
    5959%endif
Note: See TracChangeset for help on using the changeset viewer.