- Timestamp:
- Mar 14, 2011, 5:24:48 PM (14 years ago)
- google:author:
- aitotat
- Location:
- trunk/XTIDE_Universal_BIOS
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/XTIDE_Universal_BIOS/Inc/RomVars.inc
r137 r143 16 16 17 17 .wFlags resb 2 ; Word for ROM flags 18 .wDisplayMode resb 2 ; Display mode for boot menu 18 19 .wBootTimeout resb 2 ; Boot Menu selection timeout in system timer ticks 19 20 .bIdeCnt resb 1 ; Number of available IDE controllers … … 31 32 FLG_ROMVARS_FULLMODE EQU (1<<0) ; Full operating mode (steals base RAM, supports EBIOS etc.) 32 33 FLG_ROMVARS_DRVXLAT EQU (1<<2) ; Enable drive number translation 34 35 ; Boot Menu Display Modes (see Assembly Library Display.inc for standard modes) 36 DEFAULT_TEXT_MODE EQU 4 33 37 34 38 -
trunk/XTIDE_Universal_BIOS/Src/Boot/BootPrint.asm
r130 r143 37 37 38 38 ;-------------------------------------------------------------------- 39 ; BootPrint_BootSectorResultStringFromAX40 ; Parameters:41 ; CS:AX: Ptr to "found" or "not found"42 ; Returns:43 ; Nothing44 ; Corrupts registers:45 ; AX, CX, SI, DI46 ;--------------------------------------------------------------------47 ALIGN JUMP_ALIGN48 BootPrint_BootSectorResultStringFromAX:49 push bp50 mov bp, sp51 ePUSH_T cx, g_szBootSector52 push ax ; "found" or "not found"53 mov si, g_szSectRead54 jmp BootMenuPrint_FormatCSSIfromParamsInSSBP55 56 57 ;--------------------------------------------------------------------58 39 ; BootPrint_FailedToLoadFirstSector 59 40 ; Parameters: -
trunk/XTIDE_Universal_BIOS/Src/Boot/BootSector.asm
r130 r143 15 15 ; Cleared if failed to load boot sector 16 16 ; 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) 18 18 ;-------------------------------------------------------------------- 19 19 ALIGN JUMP_ALIGN … … 28 28 jne SHORT .FirstHardDiskSectorNotBootable 29 29 .AlwaysBootFromFloppyDriveForBooterGames: 30 mov ax, g_szFound31 call BootPrint_BootSectorResultStringFromAX32 30 stc 33 31 ret … … 37 35 ret 38 36 .FirstHardDiskSectorNotBootable: 39 mov ax, g_szNotFound40 call Boot Print_BootSectorResultStringFromAX37 mov si, g_szBootSectorNotFound 38 call BootMenuPrint_NullTerminatedStringFromCSSIandSetCF 41 39 clc 42 40 ret -
trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h/AHDh_HReset.asm
r116 r143 90 90 call HDrvSel_OutputDeviceControlByte 91 91 mov ax, 5 ; Delay at least 5us 92 call Delay_MicrosecondsFromAX92 call HTimer_MicrosecondsFromAX 93 93 94 94 ; HSR1: Clear_wait … … 96 96 out dx, al ; End Reset 97 97 mov ax, 2000 ; Delay at least 2ms 98 call Delay_MicrosecondsFromAX98 call HTimer_MicrosecondsFromAX 99 99 100 100 ; HSR2: Check_status -
trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h/Common/HTimer.asm
r140 r143 45 45 ; RTC resolution is 977 microsecs. 46 46 ; 47 ; Delay_MicrosecondsFromAX47 ; HTimer_MicrosecondsFromAX 48 48 ; Parameters: 49 49 ; AX: Number of microsecs to wait … … 53 53 ; AX 54 54 ;-------------------------------------------------------------------- 55 Delay_MicrosecondsFromAX:55 HTimer_MicrosecondsFromAX: 56 56 %ifndef USE_AT 57 57 mov ax, 1 … … 70 70 pop dx 71 71 mov ax, 1 ; Prepare to wait 1 timer tick 72 jc SHORT Delay_TimerTicksFromAX ; Event Wait was unsupported or busy72 jc SHORT HTimer_TimerTicksFromAX ; Event Wait was unsupported or busy 73 73 ret 74 74 %endif … … 79 79 ; will occur at 54.9 ms intervals. 80 80 ; 81 ; Delay_TimerTicksFromAX81 ; HTimer_TimerTicksFromAX 82 82 ; Parameters: 83 83 ; AX: Number of timer ticks to wait … … 87 87 ; AX 88 88 ;-------------------------------------------------------------------- 89 Delay_TimerTicksFromAX:89 HTimer_TimerTicksFromAX: 90 90 sti ; Make sure that interrupts are enabled 91 91 call ReadTimeFromBdaToCX -
trunk/XTIDE_Universal_BIOS/Src/Handlers/Int19hMenu.asm
r130 r143 20 20 STORE_POST_STACK_POINTER 21 21 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: 22 41 call BootMenuPrint_InitializeDisplayContext 23 call RamVars_GetSegmentToDS24 42 ; Fall to .ProcessMenuSelectionsUntilBootable 25 43 -
trunk/XTIDE_Universal_BIOS/Src/Main.asm
r140 r143 53 53 %ifdef USE_AT 54 54 at ROMVARS.wFlags, dw FLG_ROMVARS_FULLMODE | FLG_ROMVARS_DRVXLAT 55 at ROMVARS.wDisplayMode, dw DEFAULT_TEXT_MODE 55 56 at ROMVARS.wBootTimeout, dw 30 * TICKS_PER_SECOND ; Boot Menu selection timeout 56 57 at ROMVARS.bIdeCnt, db 3 ; Number of supported controllers … … 79 80 at ROMVARS.ideVars2+IDEVARS.drvParamsMaster+DRVPARAMS.wFlags, db FLG_DRVPARAMS_BLOCKMODE 80 81 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 81 89 %else 82 90 ;-----------------------------------; … … 84 92 ;-----------------------------------; 85 93 at ROMVARS.wFlags, dw FLG_ROMVARS_DRVXLAT 94 at ROMVARS.wDisplayMode, dw DEFAULT_TEXT_MODE 86 95 at ROMVARS.wBootTimeout, dw 30 * TICKS_PER_SECOND ; Boot Menu selection timeout 87 96 at ROMVARS.bIdeCnt, db 1 ; Number of supported controllers … … 96 105 at ROMVARS.ideVars0+IDEVARS.drvParamsMaster+DRVPARAMS.wFlags, db FLG_DRVPARAMS_BLOCKMODE 97 106 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 98 116 %endif 99 117 iend -
trunk/XTIDE_Universal_BIOS/Src/Strings.asm
r135 r143 10 10 g_szSlave: db "Slave ",NULL 11 11 g_szDetect: db "IDE %s at %x: ",NULL ; IDE Master at 1F0h: 12 g_szNotFound: db "not found",LF,CR,NULL 12 13 13 14 14 ; 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 15 g_szTryToBoot: db "Booting from %s %x",ANGLE_QUOTE_RIGHT,"%x",LF,CR,NULL 16 g_szBootSectorNotFound: db "Boot sector " 17 g_szNotFound: db "not found",LF,CR,NULL 18 g_szReadError: db "Error %x!",LF,CR,NULL 20 19 21 20 ; Boot menu bottom of screen strings
Note:
See TracChangeset
for help on using the changeset viewer.