Changeset 567 in xtideuniversalbios for trunk/Assembly_Library


Ignore:
Timestamp:
May 26, 2014, 1:25:15 PM (10 years ago)
Author:
krille_n_@…
google:author:
krille_n_@hotmail.com
Message:

Changes:

  • Renamed MODULE_FEATURE_SETS to MODULE_POWER_MANAGEMENT.
  • Renamed MODULE_VERY_LATE_INITIALIZATION to MODULE_VERY_LATE_INIT and removed it from the official builds.
  • Removed the code that skips detection of slave drives on XT-CF controllers since slave drives can be used with Lo-tech ISA CompactFlash boards.
  • Added autodetection of the SVC ADP50L controller to XTIDECFG.
  • The autodetection of XT-CF controllers now requires MODULE_8BIT_IDE_ADVANCED in the loaded BIOS.
  • Fixed a bug in XTIDECFG from r502 where the "Base (cmd block) address" menu option would be displayed when a serial device was selected as the IDE controller.
  • XTIDECFG would display the "Enable interrupt" menu option for the XTIDE r1 but not for the XTIDE r2. It's now displayed for both controller types.
  • Disabled the "Internal Write Cache" menu option in the Master/Slave Drive menus for serial device type drives.
  • Optimizations and other fixes.
Location:
trunk/Assembly_Library
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/Assembly_Library/Inc/Delay.inc

    r287 r567  
    3030;
    3131; LOOP instruction uses two bytes so aligned fetching will require:
    32 ;   8088:       8 cycles (two BYTE reads)
    33 ;   8086:       4 cycles (one WORD read)
    34 ;   286:        2 cycles + wait states (usually 1)
    35 ;   386:        ?
     32;   8088:       8 cycles (two BYTE reads)
     33;   8086:       4 cycles (one WORD read)
     34;   286:        2 cycles + wait states (usually 1)
     35;   386:        ?
    3636;   486:        Fetched only once to internal cache
    3737;
  • trunk/Assembly_Library/Src/Display/DisplayFormatCompressed.asm

    r526 r567  
    6565;   Parameters:
    6666;       DS:     BDA segment (zero)
    67 ;       AX:     Parameter to Format
     67;       AX:     Parameter to Format
    6868;       ES:DI:  Ptr to cursor location in video RAM
    6969;   Returns:
     
    9494DisplayFormatCompressed_Format_5_x:
    9595    mov     si,16                       ; hex output, change base to 16
    96     mov     bx,(04<<8) + 'h'            ; 4 bytes, with postfix character 'h' to emit
     96    mov     bx,(04<<8) + 'h'            ; 4 bytes, with postfix character 'h' to emit
    9797                                        ; (note that the count includes the 'h')
    9898    jmp     DisplayFormatCompressed_Format_u
  • trunk/Assembly_Library/Src/Display/DisplayPrint.asm

    r532 r567  
    400400;   Parameters:
    401401;       AL:     Character to display
    402 ;               Zero value is ignored (no character is printed)
     402;               Zero value is ignored (no character is printed)
    403403;       DS:     BDA segment (zero)
    404404;       ES:DI:  Ptr to cursor location in video RAM
  • trunk/Assembly_Library/Src/Serial/SerialServer.asm

    r566 r567  
    2727; SerialServer_SendReceive:
    2828;   Parameters:
    29 ;       DX:     Packed I/O port and baud rate
     29;       DX:     Packed I/O port and baud rate
    3030;       ES:SI:  Ptr to buffer (for data transfer commands)
    3131;       SS:BP:  Ptr to SerialServer_Command structure
    3232;   Returns:
    3333;       AH:     INT 13h Error Code
    34 ;       CX:     Number of 512-byte blocks transferred
     34;       CX:     Number of 512-byte blocks transferred
    3535;       CF:     Cleared if success, Set if error
    3636;   Corrupts registers:
     
    334334;   Returns:
    335335;       BP/SI:  Checksum for written bytes, compared against ACK from server in .readLoop
    336 ;       CX:     Zero
     336;       CX:     Zero
    337337;       DL:     Receive/Transmit Register address
    338 ;       ES:DI:  Ptr to buffer
     338;       ES:DI:  Ptr to buffer
    339339;   Corrupts registers:
    340340;       AX
     
    401401;   Parameters:
    402402;       AH:     UART_LineStatus bit to test (20h for write, or 1h for read)
    403 ;               One entry point fills in AH with 20h for write
     403;               One entry point fills in AH with 20h for write
    404404;       DX:     Port address (OK if already incremented to UART_lineStatus)
    405 ;       BX:
    406 ;       Stack:  2 words on the stack below the command/count word
     405;       BX:
     406;       Stack:  2 words on the stack below the command/count word
    407407;   Returns:
    408 ;       Returns when desired UART_LineStatus bit is cleared
    409 ;       Jumps directly to error exit if timeout elapses (and cleans up stack)
     408;       Returns when desired UART_LineStatus bit is cleared
     409;       Jumps directly to error exit if timeout elapses (and cleans up stack)
    410410;   Corrupts registers:
    411 ;       AX
     411;       AX
    412412;--------------------------------------------------------------------
    413413
  • trunk/Assembly_Library/Src/Serial/SerialServerScan.asm

    r526 r567  
    3131; SerialServerScan_ScanForServer:
    3232;   Parameters:
    33 ;       BH:     Drive Select byte for Drive and Head Select Register
    34 ;               0xAx: Scan for drive, low nibble indicates drive
    35 ;               0x0:  Scan for Server, independent of drives
     33;       BH:     Drive Select byte for Drive and Head Select Register
     34;               0xAx: Scan for drive, low nibble indicates drive
     35;               0x0:  Scan for Server, independent of drives
    3636;       DX:     Port and Baud to Scan for
    3737;               0: Scan a known set of ports and bauds
     
    8989; Note: hardware baud multipliers (2x, 4x) will impact the final baud rate and are not known at this level
    9090;
    91         mov     dh,030h * 2     ; multiply by 2 since we are about to divide by 2
     91        mov     dh,030h * 2     ; multiply by 2 since we are about to divide by 2
    9292        mov     dl,[cs:di]      ; restore single byte port address for scan
    9393
     
    119119; SerialServer_CheckForServer_PortAndBaudInDX:
    120120;   Parameters:
    121 ;       BH:     Drive Select byte for Drive and Head Select Register
    122 ;               0xAx: Scan for drive, low nibble indicates drive
    123 ;               0x0:  Scan for Server, independent of drives
     121;       BH:     Drive Select byte for Drive and Head Select Register
     122;               0xAx: Scan for drive, low nibble indicates drive
     123;               0x0:  Scan for Server, independent of drives
    124124;       DX:     Baud and Port
    125125;       CH:     1: We are doing a scan for the serial server
    126 ;               0: We are working off a specific port given by the user
     126;               0: We are working off a specific port given by the user
    127127;       CL:     1, for one sector to read
    128128;       ES:SI:  Ptr to buffer for return
  • trunk/Assembly_Library/Src/Util/Size.asm

    r526 r567  
    113113    rcr     si, 1                   ; Update remainder
    114114    loop    .ShiftLoop
    115     eSHR_IM si, 6                   ; Remainder to SI beginning
     115%ifdef USE_186
     116    shr     si, 6                   ; Remainder to SI beginning
     117%else
     118    mov     cl, 6
     119    shr     si, cl
     120%endif
    116121    pop     cx
    117122    inc     cx                      ; Increment magnitude
Note: See TracChangeset for help on using the changeset viewer.