Ignore:
Timestamp:
Mar 12, 2003, 8:51:14 AM (22 years ago)
Author:
kiewitz
Message:

Updated several Sources.
Note: This comment was created after rebuilding the repo. [2011-07]

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/AIR-BOOT/SOURCE/REGULAR/DRIVEIO.ASM

    r23 r26  
    118118; =============================================================================
    119119;  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!) much
     120;  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
    122122;   faster, than the LBA-method. I don't know, why LBA is so slow. Perhaps BIOS.
    123123;
    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.
    125125
    126126Comment *ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
     
    133133 ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ*
    134134DriveIO_LoadPartition           Proc Near  Uses ds si
     135   int 3
    135136   mov     wptr cs:[CurPartition_Location+0], ax
    136137   mov     wptr cs:[CurPartition_Location+2], bx
     
    139140   push    ExecBaseSeg
    140141   pop     ds
    141    mov     si, ExecBasePtr           ; DS:SI - ExecBase
     142   mov     si, ExecBasePtr               ; DS:SI - ExecBase
    142143   call    DriveIO_LoadSector
    143144   clc
    144145   cmp     word ptr ds:[si+LocBR_Magic], 0AA55h
    145146   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
    147154  DIOLP_Success:
    148155   ret
     156  DIOLP_Failed:
     157   jmp     DriveIO_GotLoadError
    149158DriveIO_LoadPartition           EndP
    150159
     
    193202DriveIO_DAP_Absolute       dd        0   ; Absolute Sector
    194203                           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)
     207DriveIO_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
     217DriveIO_GotLoadError            EndP
    195218
    196219Comment *ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
     
    223246      dec     di
    224247      jnz     DIOLS_ErrorLoop
    225       call    MBR_LoadError
     248      ; Sector load failed...
     249      jmp     DriveIO_GotLoadError
    226250
    227251  DIOLS_UseExtension:
     
    240264   pop     cx
    241265   jnc     DIOLS_Success
    242    call    MBR_LoadError
     266   ; Sector load failed...
     267   jmp     DriveIO_GotLoadError
    243268
    244269  DIOLS_Success:
Note: See TracChangeset for help on using the changeset viewer.