Ignore:
Timestamp:
Nov 23, 2011, 8:42:19 PM (12 years ago)
Author:
gregli@…
google:author:
gregli@hotmail.com
Message:

Reworked the 'skip detecting the slave if there was no master' code to be more complete (includes configurator drives) and to take into account int13h/25h calls. Some of the changes in my last checkin have been rolled back as a result (they are no longer needed). I did take a byte out of RAMVARS, but there was an alignment byte available for the taking. I also added a perl script for padding and adding the checksum byte to a binary image, which can be invoked manually or with 'make checksum'.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/XTIDE_Universal_BIOS/Src/VariablesAndDPTs/FindDPT.asm

    r200 r203  
    124124
    125125;--------------------------------------------------------------------
    126 ; IterateToDptWithFlagsHighSet:
     126; IterateToDptWithInterruptInServiceFlagSet
    127127;   Parameters:
    128128;       DS:DI:  Ptr to DPT to examine
    129 ;       AL:     Bit in bFlagsHigh to test
    130129;   Returns:
    131130;       CF:     Set if wanted DPT found
     
    135134;--------------------------------------------------------------------
    136135ALIGN JUMP_ALIGN
    137 IterateToDptWithFlagsHighSet:
    138     test    BYTE [di+DPT.bFlagsHigh], al    ; Clears CF (but we need the clc below anyway callers above)
     136IterateToDptWithInterruptInServiceFlagSet:
     137    test    BYTE [di+DPT.bFlagsHigh], FLGH_DPT_INTERRUPT_IN_SERVICE     ; Clears CF (but we need the clc
     138                                                                        ; below anyway for callers above)
    139139    jnz     SHORT ReturnRightDPT
    140140
     
    145145;--------------------------------------------------------------------
    146146; FindDPT_ToDSDIforInterruptInService
    147 ; FindDPT_ToDSDIforSerialDevice
    148147;   Parameters:
    149148;       DS:     RAMVARS segment
     
    153152;               Cleared if DPT not found
    154153;   Corrupts registers:
    155 ;       SI, AX, BX (for SerialDevice only)
     154;       SI
    156155;--------------------------------------------------------------------
    157156ALIGN JUMP_ALIGN
    158        
    159 %ifdef MODULE_SERIAL
    160 FindDPT_ToDSDIforSerialDevice: 
    161     mov     al, FLGH_DPT_SERIAL_DEVICE
    162 
    163     SKIP2B  bx
    164 %endif
    165        
    166 ; do not align due to SKIP2B above
    167157FindDPT_ToDSDIforInterruptInService:
    168     mov     al, FLGH_DPT_INTERRUPT_IN_SERVICE
    169 
    170     mov     si, IterateToDptWithFlagsHighSet
     158    mov     si, IterateToDptWithInterruptInServiceFlagSet
    171159    ; Fall to IterateAllDPTs
    172160
Note: See TracChangeset for help on using the changeset viewer.