Changeset 555 in xtideuniversalbios for trunk/XTIDE_Universal_BIOS/Src/Handlers
- Timestamp:
- Jun 15, 2013, 1:39:33 PM (12 years ago)
- google:author:
- aitotat@gmail.com
- Location:
- trunk/XTIDE_Universal_BIOS/Src/Handlers
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h.asm
r542 r555 79 79 80 80 ;-------------------------------------------------------------------- 81 ; Int 13h software interrupt handler. 82 ; Jumps to specific function defined in AH. 83 ; 84 ; Note to developers: Do not make recursive INT 13h calls! 85 ; 86 ; Int13h_DiskFunctionsHandler 81 ; Int 13h (Hard Drive) to Int 40h (Floppy Drive) 82 ; We must not call previous INT 13h for floppy drives since it 83 ; does not work on Windows 98 (when using HSFLOP.PDR driver) for some reason. 84 ; 85 ; DirectCallToFloppyHandler40h 87 86 ; Parameters: 88 87 ; AH: Bios function … … 92 91 ; Depends on function 93 92 ;-------------------------------------------------------------------- 93 DirectCallToFloppyHandler40h: 94 ; With serial floppy support, we handle all traffic for function 08h, 95 ; as we need to wrap both hard disk and floppy drive counts. 96 %ifdef MODULE_SERIAL_FLOPPY 97 cmp ah, GET_DRIVE_PARAMETERS ; 08h 98 je SHORT WeHandleTheFloppyFunction 99 %endif 100 101 int BIOS_DISKETTE_INTERRUPT_40h 102 retf 2 ; Skip FLAGS from stack 103 104 105 ;-------------------------------------------------------------------- 106 ; Int 13h software interrupt handler. 107 ; Jumps to specific function defined in AH. 108 ; 109 ; Note to developers: Do not make recursive INT 13h calls! 110 ; 111 ; Int13h_DiskFunctionsHandler 112 ; Parameters: 113 ; AH: Bios function 114 ; DL: Drive number 115 ; Other: Depends on function 116 ; Returns: 117 ; Depends on function 118 ;-------------------------------------------------------------------- 94 119 ALIGN JUMP_ALIGN 95 120 Int13h_DiskFunctionsHandler: 121 test dl, dl ; Floppy Drive? 122 jns SHORT DirectCallToFloppyHandler40h 123 WeHandleTheFloppyFunction: 124 96 125 %ifndef RELOCATE_INT13H_STACK 97 126 sti ; Enable interrupts 98 %endif 127 %endif 99 128 cld ; String instructions to increment pointers 100 129 CREATE_FRAME_INTPACK_TO_SSBP SIZE_OF_IDEPACK_WITHOUT_INTPACK … … 138 167 jz SHORT .OurFunction ; We handle all function 0h requests (resets) 139 168 140 %ifndef MODULE_SERIAL_FLOPPY 141 ; Without floppy support, we handle only hard disk traffic for function 08h. 142 test dl, dl 143 jns SHORT Int13h_DirectCallToAnotherBios 144 %endif 145 ; With floppy support, we handle all traffic for function 08h, as we need to wrap both hard disk and floppy drive counts. 146 cmp ah, 8 169 ; We handle all traffic for function 08h, as we need to wrap both hard disk and floppy drive counts. 170 cmp ah, GET_DRIVE_PARAMETERS ; 08h 147 171 je SHORT .OurFunction 148 172 ; Fall to Int13h_DirectCallToAnotherBios -
trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h/AH0h_HReset.asm
r526 r555 97 97 98 98 99 100 ; This defines what is called when resetting our drives at the end of drive detection.101 AH0h_ResetAllOurHardDisksAtTheEndOfDriveInitialization equ ResetHardDisksHandledByOurBIOS.ErrorCodeNotUsed102 103 99 ;-------------------------------------------------------------------- 104 100 ; ResetHardDisksHandledByOurBIOS -
trunk/XTIDE_Universal_BIOS/Src/Handlers/Int19h.asm
r553 r555 79 79 ; DS: RAMVARS segment 80 80 ;-------------------------------------------------------------------- 81 .InitializeBiosAndDetectDrives: 81 82 %ifdef MODULE_HOTKEYS 82 83 call TimerTicks_ReadFromBdaToAX … … 97 98 jb SHORT .WaitUntilTimeToCloseHotkeyBar 98 99 %endif 100 ; Fall to .ResetAllDrives 101 102 103 ;-------------------------------------------------------------------- 104 ; .ResetAllDrives 105 ; Parameters: 106 ; DS: RAMVARS segment 107 ; ES: BDA and interrupt vector segment (zero) 108 ; Returns: 109 ; Nothing 110 ;-------------------------------------------------------------------- 111 .ResetAllDrives: 112 ; Reset all drives in the system, not just our drives. 113 xor ax, ax ; Disk Controller Reset 114 mov dl, 80h ; Reset all hard drives and floppy drives 115 int BIOS_DISK_INTERRUPT_13h 116 ;call ResetHardDisksHandledByOurBIOS.ErrorCodeNotUsed ; Our drives only 99 117 ; Fall to SelectDriveToBootFrom 100 118
Note:
See TracChangeset
for help on using the changeset viewer.