Changeset 285 in xtideuniversalbios for trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h
- Timestamp:
- Feb 29, 2012, 7:20:36 PM (13 years ago)
- google:author:
- aitotat@gmail.com
- Location:
- trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h/AH15h_HSize.asm
r283 r285 77 77 ConvertAH08hReturnValuesToSectorCount: 78 78 call Address_ExtractLCHSparametersFromOldInt13hAddress 79 80 mov al, bl ; Get sector value 81 mul bh ; Multiply by heads-1 (since bh is zero based, and could be 255 and overflow) 82 xor bh, bh ; Clear upper byte for following addition... 83 add ax, bx ; Add in one more sector value, since heads was off by one 84 inc cx ; Max cylinder number to cylinder count (again, zero based) 85 mul cx ; Multiply in cylinders 86 xor bx, bx ; Zero upper 16-bits, sector count will not be that large 87 79 mov al, bh ; AL = Max head number 80 inc cx ; Max cylinder number to cylinder count 81 inc ax ; Max head number to head count (AH=8h returns max 254 so no overflow to AH) 82 mul bl ; AX = Head count * Sectors per track 83 mul cx ; DX:AX = Total sector count for AH=0xh transfer functions 84 xor bx, bx 88 85 ret -
trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h/AH8h_HParams.asm
r262 r285 18 18 ; CL: Bits 7...6: Cylinder number bits 9...8 19 19 ; Bits 5...0: Maximum sector number (1...63) 20 ; DH: Maximum head number (0...25 5)20 ; DH: Maximum head number (0...254) 21 21 ; DL: Number of drives 22 22 ; ES:DI: Floppy DPT (for floppies only) … … 79 79 ; CL: Bits 7...6: Cylinder number bits 9...8 80 80 ; Bits 5...0: Maximum sector number (1...63) 81 ; DH: Maximum head number (0...25 5)81 ; DH: Maximum head number (0...254) 82 82 ; Corrupts registers: 83 83 ; AX, BX … … 93 93 ; Parameters: 94 94 ; AX: Number of L-CHS cylinders available (1...1024) 95 ; BL: Number of L-CHS heads (1...25 6)95 ; BL: Number of L-CHS heads (1...255) 96 96 ; BH: Number of L-CHS sectors per track (1...63) 97 97 ; DS: RAMVARS segment … … 100 100 ; CL: Bits 7...6: Cylinder number bits 9...8 101 101 ; Bits 5...0: Maximum sector number (1...63) 102 ; DH: Maximum head number (0...25 5)102 ; DH: Maximum head number (0...254) 103 103 ; Corrupts registers: 104 104 ; AX, BX … … 112 112 or cl, bh ; CL bits 0...5 = Sectors per track 113 113 mov dh, bl ; DH = Maximum head number 114 114 115 115 %ifdef MODULE_SERIAL_FLOPPY 116 116 mov bl,[di+DPT.bFlagsHigh]
Note:
See TracChangeset
for help on using the changeset viewer.