Changeset 86 in xtideuniversalbios for trunk/XTIDE_Universal_BIOS/Src/Handlers
- Timestamp:
- Jan 25, 2011, 9:13:56 PM (14 years ago)
- google:author:
- krille_n_@hotmail.com
- Location:
- trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h/Common
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h/Common/HError.asm
r35 r86 1 ; File name : HError.asm2 1 ; Project name : IDE BIOS 3 ; Created date : 30.11.20074 ; Last update : 24.8.20105 ; Author : Tomi Tilli6 2 ; Description : Error checking functions for BIOS Hard disk functions. 7 3 … … 34 30 ALIGN JUMP_ALIGN 35 31 HError_ProcessErrorsAfterPollingBSY: 32 %ifndef USE_186 36 33 call HError_GetStatusAndErrorRegistersToAXandStoreThemToBDA 37 34 jmp SHORT GetBiosErrorCodeToAHfromStatusAndErrorRegistersInAX 35 %else 36 push GetBiosErrorCodeToAHfromStatusAndErrorRegistersInAX 37 ; Fall through to HError_GetStatusAndErrorRegistersToAXandStoreThemToBDA 38 %endif 38 39 39 40 -
trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h/Common/HIRQ.asm
r35 r86 1 ; File name : HIRQ.asm2 1 ; Project name : IDE BIOS 3 ; Created date : 11.12.20094 ; Last update : 24.8.20105 ; Author : Tomi Tilli6 2 ; Description : Interrupt handling related functions. 7 3 … … 41 37 LOAD_BDA_SEGMENT_TO ds, ax ; Zero AX 42 38 cli ; Disable interrupts 43 cmp al, [ ds:BDA.bHDTaskFlg] ; Task flag already set?39 cmp al, [BDA.bHDTaskFlg] ; Task flag already set? 44 40 jc SHORT .ReturnFromWaitNotify ; If so, skip OS notification 45 41 -
trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h/Common/HPIO.asm
r28 r86 1 ; File name : HPIO.asm2 1 ; Project name : IDE BIOS 3 ; Created date : 14.12.20074 ; Last update : 1.8.20105 ; Author : Tomi Tilli6 2 ; Description : PIO transfer functions. 7 3 8 4 ; Structure containing variables for PIO transfer functions 9 struc PIOVARS 5 struc PIOVARS, -6 10 6 .fnXfer resb 2 ; Offset to transfer function 11 7 .wBlockSize resb 2 ; Block size in WORDs … … 63 59 ; Create PIOVARS to stack 64 60 eENTER PIOVARS_size, 0 65 sub bp, BYTE PIOVARS_size ; SS:BP now points to PIOVARS 61 66 62 push si 67 63 mov si, g_rgfnPioRead ; Offset to read function lookup … … 75 71 76 72 ; Destroy stack frame 77 rcl al, 1 ; CF to AL bit 078 add bp, BYTE PIOVARS_size79 73 eLEAVE 80 rcr al, 1 ; Restore CF81 74 mov di, bx ; Restore DI 82 75 pop es … … 158 151 .BlockLoop: 159 152 call HStatus_WaitIrqOrDrq ; Wait until ready to transfer 160 jc SHORT .RetError; Return if error (code in AH)153 jc SHORT HPIO_WriteToDrive.RetError ; Return if error (code in AH) 161 154 mov cx, [bp+PIOVARS.wBlockSize] ; Load block size 162 155 sub [bp+PIOVARS.wWordsLeft], cx ; Transferring last (possibly partial) block? … … 169 162 call [bp+PIOVARS.fnXfer] ; Transfer possibly partial block 170 163 jmp HStatus_WaitBsyDefTime ; Check for errors 171 .RetError:172 ret173 164 174 165 … … 195 186 ; Create PIOVARS to stack 196 187 eENTER PIOVARS_size, 0 197 sub bp, BYTE PIOVARS_size ; SS:BP now points to PIOVARS 188 198 189 mov si, g_rgfnPioWrite ; Offset to write function lookup 199 190 call HPIO_InitializePIOVARS ; Store word count and block size … … 205 196 206 197 ; Destroy stack frame 207 rcl al, 1 ; CF to AL bit 0208 add bp, BYTE PIOVARS_size209 198 eLEAVE 210 rcr al, 1 ; Restore CF 199 211 200 pop si 212 201 pop es 213 202 ret 203 214 204 215 205 ;-------------------------------------------------------------------- … … 243 233 jnc SHORT .BlockLoop ; If no error, loop while blocks left 244 234 .RetError: 245 ret 235 ret ; This ret is shared with HPIO_ReadFromDrive 246 236 ALIGN JUMP_ALIGN 247 237 .XferLastBlock:
Note:
See TracChangeset
for help on using the changeset viewer.