Changeset 26 for trunk/AIR-BOOT/SOURCE/REGULAR/DRIVEIO.ASM
- Timestamp:
- Mar 12, 2003, 8:51:14 AM (22 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/AIR-BOOT/SOURCE/REGULAR/DRIVEIO.ASM
r23 r26 118 118 ; ============================================================================= 119 119 ; The following routines are used for harddisc/floppy access. 120 ; The access is done via BIOS INT 13h or BIOS/Extensions.121 ; Access will be done prefered by INT 13h , because it's (I wonder!) much120 ; The access is done via INT 13h/CHS or INT 13h/LBA. 121 ; Access will be done prefered by INT 13h/CHS, because it's (I wonder!) much 122 122 ; faster, than the LBA-method. I don't know, why LBA is so slow. Perhaps BIOS. 123 123 ; 124 ; Internal access (to AiR-BOOT) is always done via INT 13h .124 ; Internal access (to AiR-BOOT) is always done via INT 13h/CHS. 125 125 126 126 Comment *ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ … … 133 133 ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ* 134 134 DriveIO_LoadPartition Proc Near Uses ds si 135 int 3 135 136 mov wptr cs:[CurPartition_Location+0], ax 136 137 mov wptr cs:[CurPartition_Location+2], bx … … 139 140 push ExecBaseSeg 140 141 pop ds 141 mov si, ExecBasePtr ; DS:SI - ExecBase142 mov si, ExecBasePtr ; DS:SI - ExecBase 142 143 call DriveIO_LoadSector 143 144 clc 144 145 cmp word ptr ds:[si+LocBR_Magic], 0AA55h 145 146 je DIOLP_Success 146 stc 147 ; We check, if we are scanning partitions. In that case, if CHS is not 0/0/1 148 ; we will display a "bad partition table" message and halt the system. 149 cmp cx, 0001h 150 jne DIOLP_Failed 151 or dh, dh 152 jnz DIOLP_Failed 153 stc ; Set carry, so no partition table 147 154 DIOLP_Success: 148 155 ret 156 DIOLP_Failed: 157 jmp DriveIO_GotLoadError 149 158 DriveIO_LoadPartition EndP 150 159 … … 193 202 DriveIO_DAP_Absolute dd 0 ; Absolute Sector 194 203 dd 0 ; Second Part of QWORD 204 205 ; Special error message instead of "LOAD ERROR" during partition scanning, 206 ; so users will notice that something is bad with their partition table(s) 207 DriveIO_GotLoadError Proc Near 208 test cs:CurIO_Scanning, 1 ; Must be CS:, cause DS!=CS here 209 jnz InScanMode 210 jmp MBR_LoadError 211 InScanMode: 212 mov si, offset TXT_BrokenPartitionTable 213 push cs 214 pop ds 215 call MBR_Teletype 216 jmp MBRLE_Halt 217 DriveIO_GotLoadError EndP 195 218 196 219 Comment *ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ … … 223 246 dec di 224 247 jnz DIOLS_ErrorLoop 225 call MBR_LoadError 248 ; Sector load failed... 249 jmp DriveIO_GotLoadError 226 250 227 251 DIOLS_UseExtension: … … 240 264 pop cx 241 265 jnc DIOLS_Success 242 call MBR_LoadError 266 ; Sector load failed... 267 jmp DriveIO_GotLoadError 243 268 244 269 DIOLS_Success:
Note:
See TracChangeset
for help on using the changeset viewer.