Ignore:
Timestamp:
Feb 4, 2012, 6:21:22 PM (12 years ago)
Author:
gregli@…
google:author:
gregli@hotmail.com
Message:

Serial Port: split single byte port and baud into two bytes, taking advantage of the two bytes in DPT_SERIAL, which supports more serial baud rates and in particular fixed a bug where a 4x client machine couldn't talk to a 115.2K server machine. This is a wide change, touching lots of files, but most are shallow changes. DetectPrint.asm took the most significant changes, now it calculates the baud rate to display instead of using characters provided by the Configurator. The Configurator now has a new menu flag, FLG_MENUITEM_CHOICESTRINGS, for specifying that values are not linear and they should be lookedup rather than indexed. Finally, another important bug fixed here is that in some error cases, the serial port code could get into an infinite loop waiting ont the hardware; now it has a timeout.

File:
1 edited

Legend:

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

    r203 r233  
    124124
    125125;--------------------------------------------------------------------
    126 ; IterateToDptWithInterruptInServiceFlagSet
     126; IterateToDptWithFlagsHighInBL
    127127;   Parameters:
    128128;       DS:DI:  Ptr to DPT to examine
     129;       BL:     Bit(s) to test in DPT.bFlagsHigh
    129130;   Returns:
    130131;       CF:     Set if wanted DPT found
     
    134135;--------------------------------------------------------------------
    135136ALIGN JUMP_ALIGN
    136 IterateToDptWithInterruptInServiceFlagSet:
    137     test    BYTE [di+DPT.bFlagsHigh], FLGH_DPT_INTERRUPT_IN_SERVICE     ; Clears CF (but we need the clc
    138                                                                         ; below anyway for callers above)
     137IterateToDptWithFlagsHighInBL:     
     138    test    BYTE [di+DPT.bFlagsHigh], bl        ; Clears CF (but we need the clc
     139                                                ; below anyway for callers above)
    139140    jnz     SHORT ReturnRightDPT
    140141
     
    144145
    145146;--------------------------------------------------------------------
    146 ; FindDPT_ToDSDIforInterruptInService
     147; FindDPT_ToDSDIforSerialDevice
    147148;   Parameters:
    148149;       DS:     RAMVARS segment
     
    154155;       SI
    155156;--------------------------------------------------------------------
    156 ALIGN JUMP_ALIGN
    157 FindDPT_ToDSDIforInterruptInService:
    158     mov     si, IterateToDptWithInterruptInServiceFlagSet
     157ALIGN JUMP_ALIGN       
     158FindDPT_ToDSDIforSerialDevice:         
     159    mov     bl, FLGH_DPT_SERIAL_DEVICE
     160; fall-through
     161               
     162;--------------------------------------------------------------------
     163; FindDPT_ToDSDIforFlagsHigh
     164;   Parameters:
     165;       DS:     RAMVARS segment
     166;       BL:     Bit(s) to test in DPT.bFlagsHigh
     167;   Returns:
     168;       DS:DI:  Ptr to DPT
     169;       CF:     Set if wanted DPT found
     170;               Cleared if DPT not found
     171;   Corrupts registers:
     172;       SI
     173;--------------------------------------------------------------------
     174ALIGN JUMP_ALIGN
     175FindDPT_ToDSDIforFlagsHighInBL:     
     176    mov     si, IterateToDptWithFlagsHighInBL
    159177    ; Fall to IterateAllDPTs
    160178
Note: See TracChangeset for help on using the changeset viewer.