Changeset 558 in xtideuniversalbios for trunk/XTIDE_Universal_BIOS/Src/VariablesAndDPTs
- Timestamp:
- Jun 23, 2013, 3:52:31 PM (12 years ago)
- google:author:
- krille_n_@hotmail.com
- Location:
- trunk/XTIDE_Universal_BIOS/Src/VariablesAndDPTs
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/XTIDE_Universal_BIOS/Src/VariablesAndDPTs/CompatibleDPT.asm
r550 r558 139 139 140 140 mov al, [si+DPT.bLchsSectorsPerTrack] 141 %ifdef USE_186 141 %ifndef USE_186 142 call StoswALandChecksumFromDL ; Bytes 14 (Logical sectors per track) and 15 (Checksum) 143 jmp SHORT FillStandardDPTtoESDIfromDPTinDSSI.RestoreOffsetsAndReturn 144 %else 142 145 push FillStandardDPTtoESDIfromDPTinDSSI.RestoreOffsetsAndReturn 143 jmp StoswALandChecksumFromDL ; Bytes 14 (Logical sectors per track) and 15 (Checksum) 144 %else 145 call StoswALandChecksumFromDL 146 jmp SHORT FillStandardDPTtoESDIfromDPTinDSSI.RestoreOffsetsAndReturn 147 %endif 146 ; Fall to StoswALandChecksumFromDL 147 %endif 148 149 150 ;-------------------------------------------------------------------- 151 ; StoswALandChecksumFromDL 152 ; Parameters: 153 ; AL: Last byte to store before checksum byte 154 ; DL: Sum of bytes so far 155 ; ES:DI: Ptr to where to store AL and Checksum byte 156 ; Returns: 157 ; DL: Sum of bytes so far 158 ; DI: Incremented by 2 159 ; Corrupts registers: 160 ; Nothing 161 ;-------------------------------------------------------------------- 162 StoswALandChecksumFromDL: 163 mov ah, al 164 add ah, dl 165 neg ah 166 stosw 167 ret 148 168 149 169 … … 226 246 %ifdef MODULE_ADVANCED_ATA 227 247 or ah, [si+DPT_ADVANCED_ATA.bPioMode] 228 jz SHORT . NoDotSetFastPioFlag248 jz SHORT .DoNotSetFastPioFlag 229 249 cmp WORD [si+DPT_ADVANCED_ATA.wControllerID], BYTE 0 230 je SHORT . NoDotSetFastPioFlag250 je SHORT .DoNotSetFastPioFlag 231 251 inc cx ; FLG_FAST_PIO_ENABLED 232 . NoDotSetFastPioFlag:252 .DoNotSetFastPioFlag: 233 253 %endif 234 254 call StoswThenAddALandAHtoDL ; Bytes 8 and 9 … … 276 296 ret 277 297 278 279 ;--------------------------------------------------------------------280 ; StoswALandChecksumFromDL281 ; Parameters:282 ; AL: Last byte to store before checksum byte283 ; DL: Sum of bytes so far284 ; ES:DI: Ptr to where to store AL and Checksum byte285 ; Returns:286 ; DL: Sum of bytes so far287 ; DI: Incremented by 2288 ; Corrupts registers:289 ; Nothing290 ;--------------------------------------------------------------------291 StoswALandChecksumFromDL:292 mov ah, al293 add ah, dl294 neg ah295 stosw296 ret -
trunk/XTIDE_Universal_BIOS/Src/VariablesAndDPTs/CreateDPT.asm
r550 r558 34 34 ; ES: BDA Segment 35 35 ; Returns: 36 ; DS:DI: Ptr to Disk Parameter Table (if successful) 37 ; CF: Cleared if DPT created successfully 38 ; Set if any error 36 ; DS:DI: Ptr to Disk Parameter Table 37 ; CF: Cleared 39 38 ; Corrupts registers: 40 39 ; AX, BX, CX, DX … … 167 166 xor bx, bx 168 167 jmp SHORT .StoreTotalSectorsFromBXDXAX 169 ; Fall to .StoreNumberOfLbaSectors 168 170 169 171 170 ;-------------------------------------------------------------------- … … 209 208 ; Update drive counts (hard and floppy) 210 209 ;---------------------------------------------------------------------- 211 210 %ifdef MODULE_SERIAL 211 ; Device_FinalizeDPT returns with CF set only when a floppy was found which can't happen without MODULE_SERIAL 212 212 %ifdef MODULE_SERIAL_FLOPPY 213 213 ; … … 224 224 adc byte [RAMVARS.xlateVars+XLATEVARS.bFlopCreateCnt], 0 225 225 jnz .AllDone 226 %else 226 %else ; ~MODULE_SERIAL_FLOPPY 227 227 ; 228 228 ; Even without floppy support enabled, we shouldn't try to mount a floppy image as a hard disk, which … … 231 231 ; 232 232 jc .AllDone 233 %endif 233 %endif ; MODULE_SERIAL_FLOPPY 234 %endif ; MODULE_SERIAL 234 235 235 236 inc BYTE [RAMVARS.bDrvCnt] ; Increment drive count to RAMVARS 236 237 238 %ifdef MODULE_SERIAL 237 239 .AllDone: 238 240 clc 241 %endif 242 239 243 ret 240 244
Note:
See TracChangeset
for help on using the changeset viewer.