Changeset 26 for trunk/AIR-BOOT/SOURCE/REGULAR
- Timestamp:
- Mar 12, 2003, 8:51:14 AM (23 years ago)
- Location:
- trunk/AIR-BOOT/SOURCE/REGULAR
- Files:
-
- 2 edited
-
DRIVEIO.ASM (modified) (6 diffs)
-
PARTSCAN.ASM (modified) (4 diffs)
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: -
trunk/AIR-BOOT/SOURCE/REGULAR/PARTSCAN.ASM
r23 r26 20 20 ;--------------------------------------------------------------------------- 21 21 22 ; Note: This is complex code. Also some of th isfunctions have DS != CS, so22 ; Note: This is complex code. Also some of these functions have DS != CS, so 23 23 ; make sure that you know what you are doing in here. 24 24 … … 37 37 mov NewPartitions, al 38 38 39 mov CurIO_Scanning, 1 ; Set flag due scanning partitions 39 40 mov dl, 80h ; is first harddisc 40 41 PSSFP_HarddiscLoop: … … 45 46 dec dh 46 47 jnz PSSFP_HarddiscLoop 48 mov CurIO_Scanning, 0 ; Reset flag due scanning complete 47 49 48 50 ; Use X-Reference to sync NewPartitionTable with Hide-Config … … 79 81 loop PSSFP_LinuxLoop 80 82 PSSFP_NoPartitions: 81 mov GotLinux, dl ; Set Flag83 mov GotLinux, dl ; Set Flag 82 84 83 85 ; ...and finally check, if we need to set a Drive-Letter
Note:
See TracChangeset
for help on using the changeset viewer.
