Changeset 143 in xtideuniversalbios


Ignore:
Timestamp:
Mar 14, 2011, 5:24:48 PM (13 years ago)
Author:
aitotat
google:author:
aitotat
Message:

Changes to XTIDE Universal BIOS:

  • Removed "Boot sector found!" string.
  • Added option to specify display mode for boot menu.
Location:
trunk/XTIDE_Universal_BIOS
Files:
8 edited

Legend:

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

    r137 r143  
    1616
    1717    .wFlags         resb    2   ; Word for ROM flags
     18    .wDisplayMode   resb    2   ; Display mode for boot menu
    1819    .wBootTimeout   resb    2   ; Boot Menu selection timeout in system timer ticks
    1920    .bIdeCnt        resb    1   ; Number of available IDE controllers
     
    3132FLG_ROMVARS_FULLMODE    EQU (1<<0)  ; Full operating mode (steals base RAM, supports EBIOS etc.)
    3233FLG_ROMVARS_DRVXLAT     EQU (1<<2)  ; Enable drive number translation
     34
     35; Boot Menu Display Modes (see Assembly Library Display.inc for standard modes)
     36DEFAULT_TEXT_MODE       EQU 4
    3337
    3438
  • trunk/XTIDE_Universal_BIOS/Src/Boot/BootPrint.asm

    r130 r143  
    3737
    3838;--------------------------------------------------------------------
    39 ; BootPrint_BootSectorResultStringFromAX
    40 ;   Parameters:
    41 ;       CS:AX:  Ptr to "found" or "not found"
    42 ;   Returns:
    43 ;       Nothing
    44 ;   Corrupts registers:
    45 ;       AX, CX, SI, DI
    46 ;--------------------------------------------------------------------
    47 ALIGN JUMP_ALIGN
    48 BootPrint_BootSectorResultStringFromAX:
    49     push    bp
    50     mov     bp, sp
    51     ePUSH_T cx, g_szBootSector
    52     push    ax          ; "found" or "not found"
    53     mov     si, g_szSectRead
    54     jmp     BootMenuPrint_FormatCSSIfromParamsInSSBP
    55 
    56 
    57 ;--------------------------------------------------------------------
    5839; BootPrint_FailedToLoadFirstSector
    5940;   Parameters:
  • trunk/XTIDE_Universal_BIOS/Src/Boot/BootSector.asm

    r130 r143  
    1515;               Cleared if failed to load boot sector
    1616;   Corrupts registers:
    17 ;       AX, CX, DH, DI, (DL if failed to read boot sector)
     17;       AX, CX, DH, SI, DI, (DL if failed to read boot sector)
    1818;--------------------------------------------------------------------
    1919ALIGN JUMP_ALIGN
     
    2828    jne     SHORT .FirstHardDiskSectorNotBootable
    2929.AlwaysBootFromFloppyDriveForBooterGames:
    30     mov     ax, g_szFound
    31     call    BootPrint_BootSectorResultStringFromAX
    3230    stc
    3331    ret
     
    3735    ret
    3836.FirstHardDiskSectorNotBootable:
    39     mov     ax, g_szNotFound
    40     call    BootPrint_BootSectorResultStringFromAX
     37    mov     si, g_szBootSectorNotFound
     38    call    BootMenuPrint_NullTerminatedStringFromCSSIandSetCF
    4139    clc
    4240    ret
  • trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h/AHDh_HReset.asm

    r116 r143  
    9090    call    HDrvSel_OutputDeviceControlByte
    9191    mov     ax, 5                       ; Delay at least 5us
    92     call    Delay_MicrosecondsFromAX
     92    call    HTimer_MicrosecondsFromAX
    9393
    9494    ; HSR1: Clear_wait
     
    9696    out     dx, al                      ; End Reset
    9797    mov     ax, 2000                    ; Delay at least 2ms
    98     call    Delay_MicrosecondsFromAX
     98    call    HTimer_MicrosecondsFromAX
    9999
    100100    ; HSR2: Check_status
  • trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h/Common/HTimer.asm

    r140 r143  
    4545; RTC resolution is 977 microsecs.
    4646;
    47 ; Delay_MicrosecondsFromAX
     47; HTimer_MicrosecondsFromAX
    4848;   Parameters:
    4949;       AX:     Number of microsecs to wait
     
    5353;       AX
    5454;--------------------------------------------------------------------
    55 Delay_MicrosecondsFromAX:
     55HTimer_MicrosecondsFromAX:
    5656%ifndef USE_AT
    5757    mov     ax, 1
     
    7070    pop     dx
    7171    mov     ax, 1                           ; Prepare to wait 1 timer tick
    72     jc      SHORT Delay_TimerTicksFromAX    ; Event Wait was unsupported or busy
     72    jc      SHORT HTimer_TimerTicksFromAX   ; Event Wait was unsupported or busy
    7373    ret
    7474%endif
     
    7979; will occur at 54.9 ms intervals.
    8080;
    81 ; Delay_TimerTicksFromAX
     81; HTimer_TimerTicksFromAX
    8282;   Parameters:
    8383;       AX:     Number of timer ticks to wait
     
    8787;       AX
    8888;--------------------------------------------------------------------
    89 Delay_TimerTicksFromAX:
     89HTimer_TimerTicksFromAX:
    9090    sti                             ; Make sure that interrupts are enabled
    9191    call    ReadTimeFromBdaToCX
  • trunk/XTIDE_Universal_BIOS/Src/Handlers/Int19hMenu.asm

    r130 r143  
    2020    STORE_POST_STACK_POINTER
    2121    SWITCH_TO_BOOT_MENU_STACK
     22    call    RamVars_GetSegmentToDS
     23    ; Fall to .InitializeDisplayForBootMenu
     24
     25;--------------------------------------------------------------------
     26; .InitializeDisplayForBootMenu
     27;   Parameters:
     28;       Nothing
     29;   Returns:
     30;       Nothing
     31;   Corrupts registers:
     32;       AX, DI
     33;--------------------------------------------------------------------
     34.InitializeDisplayForBootMenu:
     35    ; Change display mode if necessary
     36    mov     ax, [cs:ROMVARS.wDisplayMode]   ; AH 00h = Set Video Mode
     37    cmp     al, DEFAULT_TEXT_MODE
     38    je      SHORT .InitializeDisplayLibrary
     39    int     BIOS_VIDEO_INTERRUPT_10h
     40.InitializeDisplayLibrary: 
    2241    call    BootMenuPrint_InitializeDisplayContext
    23     call    RamVars_GetSegmentToDS
    2442    ; Fall to .ProcessMenuSelectionsUntilBootable
    2543
  • trunk/XTIDE_Universal_BIOS/Src/Main.asm

    r140 r143  
    5353%ifdef USE_AT
    5454    at  ROMVARS.wFlags,         dw  FLG_ROMVARS_FULLMODE | FLG_ROMVARS_DRVXLAT
     55    at  ROMVARS.wDisplayMode,   dw  DEFAULT_TEXT_MODE
    5556    at  ROMVARS.wBootTimeout,   dw  30 * TICKS_PER_SECOND   ; Boot Menu selection timeout
    5657    at  ROMVARS.bIdeCnt,        db  3                       ; Number of supported controllers
     
    7980    at  ROMVARS.ideVars2+IDEVARS.drvParamsMaster+DRVPARAMS.wFlags,  db  FLG_DRVPARAMS_BLOCKMODE
    8081    at  ROMVARS.ideVars2+IDEVARS.drvParamsSlave+DRVPARAMS.wFlags,   db  FLG_DRVPARAMS_BLOCKMODE
     82
     83    at  ROMVARS.ideVars3+IDEVARS.wPort,         dw  168h            ; Controller Command Block base port
     84    at  ROMVARS.ideVars3+IDEVARS.wPortCtrl,     dw  368h            ; Controller Control Block base port
     85    at  ROMVARS.ideVars3+IDEVARS.bBusType,      db  BUS_TYPE_16     ; Bus type
     86    at  ROMVARS.ideVars3+IDEVARS.bIRQ,          db  0               ; IRQ
     87    at  ROMVARS.ideVars3+IDEVARS.drvParamsMaster+DRVPARAMS.wFlags,  db  FLG_DRVPARAMS_BLOCKMODE
     88    at  ROMVARS.ideVars3+IDEVARS.drvParamsSlave+DRVPARAMS.wFlags,   db  FLG_DRVPARAMS_BLOCKMODE
    8189%else
    8290;-----------------------------------;
     
    8492;-----------------------------------;
    8593    at  ROMVARS.wFlags,         dw  FLG_ROMVARS_DRVXLAT
     94    at  ROMVARS.wDisplayMode,   dw  DEFAULT_TEXT_MODE
    8695    at  ROMVARS.wBootTimeout,   dw  30 * TICKS_PER_SECOND   ; Boot Menu selection timeout
    8796    at  ROMVARS.bIdeCnt,        db  1                       ; Number of supported controllers
     
    96105    at  ROMVARS.ideVars0+IDEVARS.drvParamsMaster+DRVPARAMS.wFlags,  db  FLG_DRVPARAMS_BLOCKMODE
    97106    at  ROMVARS.ideVars0+IDEVARS.drvParamsSlave+DRVPARAMS.wFlags,   db  FLG_DRVPARAMS_BLOCKMODE
     107
     108    at  ROMVARS.ideVars1+IDEVARS.drvParamsMaster+DRVPARAMS.wFlags,  db  FLG_DRVPARAMS_BLOCKMODE
     109    at  ROMVARS.ideVars1+IDEVARS.drvParamsSlave+DRVPARAMS.wFlags,   db  FLG_DRVPARAMS_BLOCKMODE
     110
     111    at  ROMVARS.ideVars2+IDEVARS.drvParamsMaster+DRVPARAMS.wFlags,  db  FLG_DRVPARAMS_BLOCKMODE
     112    at  ROMVARS.ideVars2+IDEVARS.drvParamsSlave+DRVPARAMS.wFlags,   db  FLG_DRVPARAMS_BLOCKMODE
     113
     114    at  ROMVARS.ideVars3+IDEVARS.drvParamsMaster+DRVPARAMS.wFlags,  db  FLG_DRVPARAMS_BLOCKMODE
     115    at  ROMVARS.ideVars3+IDEVARS.drvParamsSlave+DRVPARAMS.wFlags,   db  FLG_DRVPARAMS_BLOCKMODE
    98116%endif
    99117iend
  • trunk/XTIDE_Universal_BIOS/Src/Strings.asm

    r135 r143  
    1010g_szSlave:      db  "Slave ",NULL
    1111g_szDetect:     db  "IDE %s at %x: ",NULL           ; IDE Master at 1F0h:
    12 g_szNotFound:   db  "not found",LF,CR,NULL
     12
    1313
    1414; Boot loader strings
    15 g_szTryToBoot:  db  "Booting from %s %x",ANGLE_QUOTE_RIGHT,"%x",LF,CR,NULL
    16 g_szBootSector: db  "Boot sector",NULL
    17 g_szFound:      db  "found",NULL
    18 g_szSectRead:   db  "%s %s!",LF,CR,NULL
    19 g_szReadError:  db  "Error %x!",LF,CR,NULL
     15g_szTryToBoot:          db  "Booting from %s %x",ANGLE_QUOTE_RIGHT,"%x",LF,CR,NULL
     16g_szBootSectorNotFound: db  "Boot sector "
     17g_szNotFound:           db  "not found",LF,CR,NULL
     18g_szReadError:          db  "Error %x!",LF,CR,NULL
    2019
    2120; Boot menu bottom of screen strings
Note: See TracChangeset for help on using the changeset viewer.