Changeset 567 in xtideuniversalbios for trunk/XTIDE_Universal_BIOS/Src/Handlers
- Timestamp:
- May 26, 2014, 1:25:15 PM (10 years ago)
- google:author:
- krille_n_@hotmail.com
- Location:
- trunk/XTIDE_Universal_BIOS/Src/Handlers
- Files:
-
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h.asm
r561 r567 309 309 ; Returns: 310 310 ; Depends on function 311 ; 312 ; 311 ; NOTE: ES:DI needs to be returned from the previous interrupt 312 ; handler, for floppy DPT in function 08h 313 313 ; Corrupts registers: 314 314 ; None -
trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h/AH0h_HReset.asm
r555 r567 119 119 mov dl, ROMVARS.ideVars0 ; starting Idevars offset 120 120 121 122 121 ; Get count of ALL Idevars structures, not just the ones that are configured. This may seem odd, 122 ; but it catches the .ideVarsSerialAuto structure, which would not be scanned if the count from 123 123 ; RamVars_GetIdeControllerCountToCX was used. Unused controllers won't make a difference, since no DPT 124 124 ; will point to them. Performance isn't an issue, as this is a reset operation. 125 125 ; 126 126 mov cx, NUMBER_OF_IDEVARS 127 127 -
trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h/AH15h_HSize.asm
r547 r567 37 37 ; If successful: 38 38 ; AH: Hard Disk: 3 (Hard disk accessible) 39 ; 39 ; Floppy: 1 (Floppy disk, without change detection) 40 40 ; CX:DX: Total number of sectors 41 41 ; CF: 0 -
trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h/AH1Eh_XTCF.asm
r558 r567 19 19 ; Visit http://www.gnu.org/licenses/old-licenses/gpl-2.0.html 20 20 ; 21 22 ; Modified by JJP for XT-CFv3 support, Mar-1323 21 24 22 ; Section containing code -
trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h/AH8h_HParams.asm
r545 r567 31 31 ; SS:BP: Ptr to IDEPACK 32 32 ; Returns with INTPACK: 33 ; BL: Drive Type (forfloppies only)33 ; BL: Drive Type (for serial floppies only) 34 34 ; CH: Maximum cylinder number, bits 7...0 35 35 ; CL: Bits 7...6: Cylinder number bits 9...8 … … 37 37 ; DH: Maximum head number (0...254) 38 38 ; DL: Number of drives!!! 39 ; ES:DI: Floppy DPT (forfloppies only)39 ; ES:DI: Floppy DPT (for serial floppies only) 40 40 ; AH: Int 13h/40h floppy return status 41 41 ; CF: 0 if successful, 1 if error … … 57 57 call RamVars_GetCountOfKnownDrivesToAX ; assume hard disk for now, will discard if for floppies 58 58 59 test byte [bp+IDEPACK.intpack+INTPACK.dl], 080h59 test BYTE [bp+IDEPACK.intpack+INTPACK.dl], 80h 60 60 jnz SHORT .CalledForHardDrive 61 61 … … 93 93 ; DS:DI: Ptr to DPT (in RAMVARS segment) 94 94 ; Returns: 95 ; BL: Drive Type (for serial floppies only) 95 96 ; CH: Maximum cylinder number, bits 7...0 96 97 ; CL: Bits 7...6: Cylinder number bits 9...8 … … 98 99 ; DH: Maximum head number (0...254) 99 100 ; Corrupts registers: 100 ; AX, B X101 ; AX, BH 101 102 ;-------------------------------------------------------------------- 102 103 AH8h_GetDriveParameters: … … 115 116 ; DS: RAMVARS segment 116 117 ; Returns: 118 ; BL: Drive Type (for serial floppies only) 117 119 ; CH: Maximum cylinder number, bits 7...0 118 120 ; CL: Bits 7...6: Cylinder number bits 9...8 … … 120 122 ; DH: Maximum head number (0...254) 121 123 ; Corrupts registers: 122 ; AX, B X124 ; AX, BH 123 125 ;-------------------------------------------------------------------- 124 126 .PackReturnValues: … … 172 174 173 175 db 1h << 1 | 0 ; Offset 1: Typical values of 1 for head load time 174 ; 176 ; DMA used (although it actually is not, but is more restrictive) 175 177 db 25h ; Offset 2: Inactivity motor turn-off delay, 176 178 ; Typical value of 25h for 2 second delay -
trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h/AH9h_HInit.asm
r566 r567 194 194 195 195 196 %ifdef MODULE_ FEATURE_SETS196 %ifdef MODULE_POWER_MANAGEMENT 197 197 ;;; InitStandbyTimer 198 198 ; Initialize the standby timer (if supported) … … 206 206 STORE_ERROR_FLAG_TO_DPT FLG_INITERROR_FAILED_TO_INITIALIZE_STANDBY_TIMER 207 207 .NoPowerManagementSupport: 208 %endif ; MODULE_ FEATURE_SETS208 %endif ; MODULE_POWER_MANAGEMENT 209 209 210 210 -
trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h/EBIOS/AH41h_CheckIfExtensionsPresent.asm
r550 r567 39 39 AH41h_HandlerForCheckIfExtensionsPresent: 40 40 cmp WORD [bp+IDEPACK.intpack+INTPACK.bx], 55AAh 41 %ifdef USE_386 42 jne Int13h_DirectCallToAnotherBios 43 %else 41 44 jne SHORT .EbiosNotSupported 45 %endif 42 46 43 47 mov BYTE [bp+IDEPACK.intpack+INTPACK.ah], EBIOS_VERSION … … 53 57 and BYTE [bp+IDEPACK.intpack+INTPACK.flags], ~FLG_FLAGS_CF ; Return with CF cleared 54 58 jmp Int13h_ReturnFromHandlerWithoutStoringErrorCode 59 60 %ifndef USE_386 55 61 .EbiosNotSupported: 56 62 jmp Int13h_DirectCallToAnotherBios 63 %endif 57 64 58 65 -
trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h/Tools/Prepare.asm
r558 r567 113 113 ; Prepare_ByValidatingSectorsInALforOldInt13h 114 114 ; Parameters: 115 ; AL: Number of sectors to transfer 115 ; AL: Number of sectors to transfer (1...128 is valid) 116 116 ; Returns: 117 117 ; Exits INT 13h if invalid number of sectors in AL … … 120 120 ;-------------------------------------------------------------------- 121 121 Prepare_ByValidatingSectorsInALforOldInt13h: 122 test al, al 123 js SHORT .CheckZeroOffsetFor128Sectors ; 128 or more 124 jz SHORT InvalidNumberOfSectorsRequested ; Zero not allowed for old INT 13h 122 test al, al ; Check if 0 < AL < 128 (Clears OF) 123 jle SHORT .CheckIf128Sectors ; Jump if not 125 124 ret ; Continue with transfer 126 125 127 126 ALIGN JUMP_ALIGN 128 .Check ZeroOffsetFor128Sectors:127 .CheckIf128Sectors: 129 128 cmp al, 128 130 j aSHORT InvalidNumberOfSectorsRequested129 jne SHORT InvalidNumberOfSectorsRequested 131 130 test si, si ; Offset must be zero to xfer 128 sectors 132 131 jnz SHORT CannotAlignPointerProperly -
trunk/XTIDE_Universal_BIOS/Src/Handlers/Int19h.asm
r561 r567 31 31 sti ; Enable interrupts 32 32 cld ; String instructions to increment pointers 33 %ifdef MODULE_VERY_LATE_INIT IALIZATION33 %ifdef MODULE_VERY_LATE_INIT 34 34 LOAD_BDA_SEGMENT_TO ds, ax ; Load BDA segment (zero) to DS 35 35 les ax, [TEMPORARY_VECTOR_FOR_SYSTEM_INT13h*4] … … 214 214 ; Parameters: 215 215 ; DL: Drive to boot from (translated, 00h or 80h) 216 ; CF:Set for Boot Sector Boot217 ; 218 ; 216 ; CF: Set for Boot Sector Boot 217 ; Clear for ROM Boot 218 ; ES:BX: (if CF set) Ptr to boot sector 219 219 ; 220 220 ; Returns:
Note:
See TracChangeset
for help on using the changeset viewer.