Changeset 294 in xtideuniversalbios for trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h.asm
- Timestamp:
- Mar 4, 2012, 1:35:10 AM (13 years ago)
- google:author:
- krille_n_@hotmail.com
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h.asm
r277 r294 26 26 27 27 call RamVars_GetSegmentToDS 28 28 29 29 call DriveXlate_ToOrBack 30 30 mov [RAMVARS.xlateVars+XLATEVARS.bXlatedDrv], dl 31 31 32 32 call FindDPT_ForDriveNumberInDL ; DS:DI points to our DPT, or NULL if not our drive 33 33 jnc SHORT .OurFunction ; DPT found, this is one of our drives, and thus our function 34 34 35 cmp ah, 036 jz short.OurFunction ; we handle all function 0h requests (resets)35 test ah, ah 36 jz SHORT .OurFunction ; we handle all function 0h requests (resets) 37 37 cmp ah, 8 38 jn zSHORT Int13h_DirectCallToAnotherBios ; non-8h function, handled by foreign bios38 jne SHORT Int13h_DirectCallToAnotherBios ; non-8h function, handled by foreign bios 39 39 40 40 %ifndef MODULE_SERIAL_FLOPPY 41 ; With floppy support, we handle all traffic for function 08h, as we need to wrap both hard disk and 42 ; floppy drive counts. Without floppy support, we handle only hard disk traffic for function 08h, 41 ; With floppy support, we handle all traffic for function 08h, as we need to wrap both hard disk and 42 ; floppy drive counts. Without floppy support, we handle only hard disk traffic for function 08h, 43 43 ; and thus need the check below. 44 44 ; 45 test dl, dl 45 test dl, dl 46 46 jns SHORT Int13h_DirectCallToAnotherBios 47 %endif 48 49 .OurFunction: 47 %endif 48 49 .OurFunction: 50 50 ; Jump to correct BIOS function 51 51 eMOVZX bx, ah … … 141 141 test dl, dl 142 142 js short Int13h_UnsupportedFunction 143 mov ah, 0143 xor ah, ah 144 144 jmp short Int13h_ReturnFromHandlerAfterStoringErrorCodeFromAH 145 145 %endif … … 172 172 %ifdef MODULE_SERIAL_FLOPPY 173 173 mov al, [bp+IDEPACK.intpack+INTPACK.dl] 174 Int13h_ReturnFromHandlerAfterStoringErrorCodeFromAH_ALHasDriveNumber: 174 Int13h_ReturnFromHandlerAfterStoringErrorCodeFromAH_ALHasDriveNumber: 175 175 call Int13h_SetErrorCodeToBdaAndToIntpackInSSBPfromAH_ALHasDriveNumber 176 176 %else … … 191 191 ; Returns: 192 192 ; Depends on function 193 ; NOTE: ES:DI needs to be returned from the previous interrupt 193 ; NOTE: ES:DI needs to be returned from the previous interrupt 194 194 ; handler, for floppy DPT in function 08h 195 195 ; Corrupts registers: … … 251 251 .HardDisk: 252 252 LOAD_BDA_SEGMENT_TO ds, di 253 mov [bx], ah 253 mov [bx], ah 254 254 %else 255 255 Int13h_SetErrorCodeToBdaAndToIntpackInSSBPfromAH: 256 256 ; Store error code to BDA 257 LOAD_BDA_SEGMENT_TO ds, di 257 LOAD_BDA_SEGMENT_TO ds, di 258 258 mov [BDA.bHDLastSt], ah 259 259 %endif
Note:
See TracChangeset
for help on using the changeset viewer.