Changeset 370 in xtideuniversalbios


Ignore:
Timestamp:
Mar 29, 2012, 4:40:50 PM (12 years ago)
Author:
krille_n_@…
google:author:
krille_n_@hotmail.com
Message:

Changes:

  • Added some missing PIO mode timings to ATA_ID.inc (based on info from http://www.singlix.net/specs/cfspc4_0.pdf)
  • Updated Configuration_FullMode.txt but it may need additional changes as the Tandy info doesn't match the wiki.
  • Optimizations.
  • Excluded some unused code from XTIDECFG.
Location:
trunk
Files:
22 edited

Legend:

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

    r341 r370  
    5050    .SetCursorShapeFromAX                           resb    2
    5151    .SetCursorCoordinatesFromAX                     resb    2
     52%ifndef EXCLUDE_FROM_XTIDECFG
    5253    .SetNewPageFromAL                               resb    2
     54%endif
    5355    .SynchronizeDisplayContextToHardware            resb    2
    5456
  • trunk/Assembly_Library/Inc/Menu.inc

    r205 r370  
    8080    .RefreshInformation                         resb    2
    8181
     82%ifndef EXCLUDE_FROM_XTIDECFG
    8283    .StartSelectionTimeoutWithTicksInAX         resb    2
     84%endif
    8385
    8486%ifdef INCLUDE_MENU_DIALOGS
  • trunk/Assembly_Library/Src/AssemblyLibrary.asm

    r369 r370  
    1616    %include "DisplayCursor.asm"
    1717    %include "DisplayPage.asm"
    18     %include "DisplayPrint.asm"                 ; must come before DisplayFormat/DisplayFormatCompressed           
     18    %include "DisplayPrint.asm"                 ; must come before DisplayFormat/DisplayFormatCompressed
    1919%ifdef MODULE_STRINGS_COMPRESSED
    2020    %include "DisplayFormatCompressed.asm"
    2121%else
    22     %include "DisplayFormat.asm"       
     22    %include "DisplayFormat.asm"
    2323%endif
    2424%endif
     
    3434  %ifndef KEYBOARD_JUMP_ALIGN
    3535    %define KEYBOARD_JUMP_ALIGN 1
    36   %endif       
     36  %endif
    3737    %include "Keyboard.asm"
    3838%endif
     
    4141  %ifndef MENU_JUMP_ALIGN
    4242    %define MENU_JUMP_ALIGN 1
    43   %endif               
     43  %endif
    4444    %include "CharOutLineSplitter.asm"
    4545    %include "Menu.asm"
     
    7272  %ifndef STRING_JUMP_ALIGN
    7373    %define STRING_JUMP_ALIGN 1
    74   %endif               
     74  %endif
    7575    %include "Char.asm"
    7676    %ifndef EXCLUDE_FROM_XTIDE_UNIVERSAL_BIOS
     
    8282%ifdef INCLUDE_SERIAL_LIBRARY
    8383    %include "Serial.inc"
    84 %endif     
     84%endif
    8585%ifdef INCLUDE_SERIALSERVER_LIBRARY
    8686    %include "SerialServer.asm"
    8787    %include "SerialServerScan.asm"
    8888    %define INCLUDE_TIME_LIBRARY
    89 %endif     
     89%endif
    9090
    9191%ifdef INCLUDE_TIME_LIBRARY
    9292    %ifndef EXCLUDE_FROM_XTIDE_UNIVERSAL_BIOS
    9393        %include "Delay.asm"
    94         %include "SystemTimer.asm"
     94        %ifndef EXCLUDE_FROM_XTIDECFG
     95            %include "SystemTimer.asm"
     96        %endif
    9597    %endif
    9698    %include "TimerTicks.asm"
     
    100102  %ifndef UTIL_SIZE_JUMP_ALIGN
    101103    %define UTIL_SIZE_JUMP_ALIGN 1
    102   %endif       
     104  %endif
    103105    %ifndef EXCLUDE_FROM_XTIDE_UNIVERSAL_BIOS
    104106        %include "Bit.asm"
  • trunk/Assembly_Library/Src/Display/Display.asm

    r369 r370  
    6868    %define SetCursorShapeFromAX                            DisplayCursor_SetShapeFromAX
    6969    %define SetCursorCoordinatesFromAX                      DisplayCursor_SetCoordinatesFromAX
     70%ifndef EXCLUDE_FROM_XTIDECFG
    7071    %define SetNewPageFromAL                                DisplayPage_SetFromAL
     72%endif
    7173    %define SynchronizeDisplayContextToHardware             DisplayContext_SynchronizeToHardware
    7274
  • trunk/Assembly_Library/Src/Display/DisplayPage.asm

    r369 r370  
    1515;       AX, DX
    1616;--------------------------------------------------------------------
    17 %ifndef EXCLUDE_FROM_XTIDE_UNIVERSAL_BIOS
     17%ifndef EXCLUDE_FROM_XTIDE_UNIVERSAL_BIOS OR EXCLUDE_FROM_XTIDECFG
    1818ALIGN DISPLAY_JUMP_ALIGN
    1919DisplayPage_SetFromAL:
  • trunk/Assembly_Library/Src/Menu/Menu.asm

    r369 r370  
    5050    %define RefreshInformation                              MenuText_RefreshInformation
    5151
     52%ifndef EXCLUDE_FROM_XTIDECFG
    5253    %define StartSelectionTimeoutWithTicksInAX              MenuTime_StartSelectionTimeoutWithTicksInAX
     54%endif
    5355
    5456%ifdef INCLUDE_MENU_DIALOGS
  • trunk/Assembly_Library/Src/Menu/MenuTime.asm

    r369 r370  
    1515;       AX, BX
    1616;--------------------------------------------------------------------
     17%ifndef EXCLUDE_FROM_XTIDECFG
    1718ALIGN MENU_JUMP_ALIGN
    1819MenuTime_StartSelectionTimeoutWithTicksInAX:
     
    2324    pop     ds
    2425    ret
     26%endif
    2527
    2628
  • trunk/Assembly_Library/Src/Time/TimerTicks.asm

    r131 r370  
    2424;--------------------------------------------------------------------
    2525%ifndef EXCLUDE_FROM_XTIDE_UNIVERSAL_BIOS
     26%ifndef EXCLUDE_FROM_XTIDECFG
    2627ALIGN JUMP_ALIGN
    2728TimerTicks_GetHoursToAXfromTicksInDXAX:
     
    2930    div     cx      ; Divide DX:AX by CX, Hours to AX, remainder ticks to DX
    3031    ret
     32%endif ; EXCLUDE_FROM_XTIDECFG
    3133
    3234ALIGN JUMP_ALIGN
     
    3739    div     cx      ; Divide DX:AX by CX, Minutes to AX, remainder ticks to DX
    3840    ret
    39 %endif
     41%endif ; EXCLUDE_FROM_XTIDE_UNIVERSAL_BIOS
    4042
    4143ALIGN JUMP_ALIGN
  • trunk/Assembly_Library/Src/Util/Registers.asm

    r222 r370  
    6969;   Corrupts registers:
    7070;       AX, CX
    71 ; 
    72 ; Inline of NORMALIZE_FAR_POINTER so that we can share the last 2/3 of the 
     71;
     72; Inline of NORMALIZE_FAR_POINTER so that we can share the last 2/3 of the
    7373; routine with Registers_NormalizeFinish.
    74 ; 
     74;
    7575;--------------------------------------------------------------------
    76 %ifndef EXCLUDE_FROM_XTIDE_UNIVERSAL_BIOS
     76%ifndef EXCLUDE_FROM_XTIDE_UNIVERSAL_BIOS OR EXCLUDE_FROM_XTIDECFG
    7777ALIGN JUMP_ALIGN
    7878Registers_NormalizeESSI:
     
    8787;;; fall-through
    8888
    89 ALIGN JUMP_ALIGN       
    90 Registers_NormalizeFinish:     
     89ALIGN JUMP_ALIGN
     90Registers_NormalizeFinish:
    9191    eSHR_IM     cx, 4
    9292    mov         ax, es
  • trunk/XTIDE_Universal_BIOS/Inc/ATA_ID.inc

    r364 r370  
    2121PIO_3_MIN_ADDRESS_VALID_NS  EQU     30
    2222PIO_4_MIN_ADDRESS_VALID_NS  EQU     25
    23 PIO_5_MIN_ADDRESS_VALID_NS  EQU     25      ; Could not find info
    24 PIO_6_MIN_ADDRESS_VALID_NS  EQU     25      ; Could not find info
     23PIO_5_MIN_ADDRESS_VALID_NS  EQU     15
     24PIO_6_MIN_ADDRESS_VALID_NS  EQU     10
    2525
    2626; PIO Minimum Active Times (t2)
     
    3030PIO_3_MIN_ACTIVE_TIME_NS    EQU     80
    3131PIO_4_MIN_ACTIVE_TIME_NS    EQU     70
    32 PIO_5_MIN_ACTIVE_TIME_NS    EQU     70      ; Could not find info
    33 PIO_6_MIN_ACTIVE_TIME_NS    EQU     70      ; Could not find info
     32PIO_5_MIN_ACTIVE_TIME_NS    EQU     65
     33PIO_6_MIN_ACTIVE_TIME_NS    EQU     55
    3434
    3535; PIO Minimum Recovery Times or Inactive Times (t2i) can be calculated
    36 ; from Minimum Cycle Time (t0) - Minimum Active Time (t2) - Address Valid Time (t1). 
     36; from Minimum Cycle Time (t0) - Minimum Active Time (t2) - Address Valid Time (t1).
    3737; I'm not sure about this calculation so correct me if I'm wrong!
    3838; Recovery time should be calculated at run time since Cycle Time t0 can be
     
    5454    .wBpTrck    resw 1  ; 4F, Number of unformatted bytes per track
    5555    .wBpSect    resw 1  ; 5F, Number of unformatted bytes per sector
    56     .wSPT       resw 1  ; 6F, Number of sectors per track 
     56    .wSPT       resw 1  ; 6F, Number of sectors per track
    5757                resw 3  ; 7...9X
    5858    .strSerial  resb 20 ; 10...19F, Serial number (20 ASCII characters, 0000h=not specified)
     
    136136                resw 1  ; 4X
    137137                resw 1  ; 5X
    138     .wSPT       resw 1  ; 6F, Number of logical sectors per track 
     138    .wSPT       resw 1  ; 6F, Number of logical sectors per track
    139139                resw 3  ; 7...9X
    140140    .strSerial  resb 20 ; 10...19F, Serial number (20 ASCII characters, 0000h=not specified)
     
    166166    .bBlockSel  resb 1  ; 59[0-7]V, Current setting for number of sectors that
    167167                        ;           can be transferred per interrupt on R/W multiple command
    168     .bBlockFlgs resb 1  ; 59[8-15]VR, bit 0 set if Multiple sector setting is valid 
     168    .bBlockFlgs resb 1  ; 59[8-15]VR, bit 0 set if Multiple sector setting is valid
    169169    .dwLBACnt   resd 1  ; 60...61F, Total number of user addressable sectors (LBA mode only)
    170170    .bSDMASupp  resb 1  ; 62[0-7]F, Single word DMA transfer modes supported
     
    172172    .bMDMASupp  resb 1  ; 63[0-7]F, Multiword DMA transfer modes supported
    173173    .bMDMAAct   resb 1  ; 63[8-15]V, Multiword DMA transfer mode active
    174    
     174
    175175    ; Words 64-70 are valid only if bit1 is set in .wFields (ATA2+)
    176176    .bPIOSupp   resb 1  ; 64[0-7]F, Advanced PIO Transfer Modes Supported
     
    220220                resw 1  ; 4X
    221221                resw 1  ; 5X
    222                 resw 1  ; 6X, Obsolete (Number of logical sectors per track) 
     222                resw 1  ; 6X, Obsolete (Number of logical sectors per track)
    223223                resw 2  ; 7...8V, Reserved for assignment by the CompactFlash Association
    224224                resw 1  ; 9X
  • trunk/XTIDE_Universal_BIOS/Inc/CustomDPT.inc

    r365 r370  
    9191struc DPT_SERIAL
    9292    .dpt                        resb    DPT_size
    93 
    9493    .wSerialPortAndBaud:
    9594    .bSerialPort                resb    1   ; Serial connection I/O port address, divided by 4
     
    126125    jnz     SHORT %%LoadMaxValueToAX
    127126    cmp     ax, MAX_LCHS_CYLINDERS
    128     jbe     SHORT %%NoNeedToModify
     127    jb      SHORT %%NoNeedToModify
    129128%%LoadMaxValueToAX:
    130129    mov     ax, MAX_LCHS_CYLINDERS
  • trunk/XTIDE_Universal_BIOS/Inc/IDE_8bit.inc

    r363 r370  
    3030; XTIDE_INSW
    3131;   Parameters:
    32 ;       BX:     Bit mask for toggling XTIDE data low/high reg
     32;       BL:     Bit mask for toggling XTIDE data low/high reg
    3333;       DX:     XTIDE Data Low Register address
    3434;       ES:DI:  Ptr to destination buffer
     
    4141%ifdef USE_186  ; INS instruction available
    4242    insb                        ; Load low byte from port DX to [ES:DI]
    43     xor     dx, bx              ; IDE Data Reg to XTIDE Data High Reg
     43    xor     dl, bl              ; IDE Data Reg to XTIDE Data High Reg
    4444    insb                        ; Load high byte from port DX to [ES:DI]
    45     xor     dx, bx              ; Restore to IDE Data Register
     45    xor     dl, bl              ; Restore to IDE Data Register
    4646%else   ; If 8088/8086
    4747    in      al, dx              ; Load low byte from port
    48     xor     dx, bx              ; IDE Data Reg to XTIDE Data High Reg
     48    xor     dl, bl              ; IDE Data Reg to XTIDE Data High Reg
    4949    stosb                       ; Store byte to [ES:DI]
    5050    in      al, dx              ; Load high byte from port
    51     xor     dx, bx              ; Restore to IDE Data Register
     51    xor     dl, bl              ; Restore to IDE Data Register
    5252    stosb                       ; Store byte to [ES:DI]
    5353%endif
     
    6060; XTIDE_OUTSW
    6161;   Parameters:
    62 ;       BX:     Bit mask for toggling XTIDE data low/high reg
     62;       BL:     Bit mask for toggling XTIDE data low/high reg
    6363;       DX:     XTIDE Data Low Register address
    6464;       DS:SI:  Ptr to source buffer
     
    7171%ifdef USE_186  ; OUTS instruction available
    7272    lodsb                       ; Load low byte from [DS:SI] to AL
    73     xor     dx, bx              ; IDE Data Reg to XTIDE Data High Reg
     73    xor     dl, bl              ; IDE Data Reg to XTIDE Data High Reg
    7474    outsb                       ; Output high byte from [DS:SI]
    75     xor     dx, bx              ; XTIDE Data High Reg to Data Low Reg
     75    xor     dl, bl              ; XTIDE Data High Reg to Data Low Reg
    7676    out     dx, al              ; Output low byte from AL
    7777%else   ; If 8088/8086
    7878    lodsw                       ; Load word from [DS:SI]
    79     xor     dx, bx              ; IDE Data Reg to XTIDE Data High Reg
     79    xor     dl, bl              ; IDE Data Reg to XTIDE Data High Reg
    8080    xchg    al, ah              ; => AL=high byte, AH=low byte
    8181    out     dx, al              ; Output high byte
    82     xor     dx, bx              ; XTIDE Data High Reg to Data Low Reg
     82    xor     dl, bl              ; XTIDE Data High Reg to Data Low Reg
    8383    mov     al, ah              ; Copy low byte to AL
    8484    out     dx, al              ; Output low byte
  • trunk/XTIDE_Universal_BIOS/Src/Device/IDE/IdeTransfer.asm

    r365 r370  
    102102    ; Return number of successfully read sectors
    103103ReturnWithTransferErrorInAH:
     104%ifdef USE_386
     105    movzx   cx, [bp+PIOVARS.bSectorsDone]
     106%else
    104107    mov     cl, [bp+PIOVARS.bSectorsDone]
    105108    mov     ch, 0                               ; Preserve CF
     109%endif
    106110    ret
    107111
     
    180184    ; Store sizes
    181185    mov     [bp+PIOVARS.bSectorsLeft], ah
    182     eMOVZX  ax, BYTE [di+DPT_ATA.bBlockSize]
     186    eMOVZX  ax, [di+DPT_ATA.bBlockSize]
    183187    mov     [bp+PIOVARS.wSectorsInBlock], ax
    184188    mov     [bp+PIOVARS.bSectorsDone], ah       ; Zero
     
    218222ReadBlockFromXtideRev1:
    219223    UNROLL_SECTORS_IN_CX_TO_QWORDS
    220     mov     bx, 8       ; Bit mask for toggling data low/high reg
     224    mov     bl, 8       ; Bit mask for toggling data low/high reg
    221225ALIGN JUMP_ALIGN
    222226.InswLoop:
     
    287291    push    bx
    288292    UNROLL_SECTORS_IN_CX_TO_QWORDS
    289     mov     bx, 8       ; Bit mask for toggling data low/high reg
     293    mov     bl, 8       ; Bit mask for toggling data low/high reg
    290294    push    es          ; Copy ES...
    291295    pop     ds          ; ...to DS
  • trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h/AH9h_HInit.asm

    r365 r370  
    227227;               Set if error flag was set
    228228;   Corrupts registers:
    229 ;       BX, ES
     229;       Nothing
    230230;--------------------------------------------------------------------
    231231SetErrorFlagFromALwithErrorCodeInAH:
  • trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h/AHDh_HReset.asm

    r369 r370  
    5252
    5353    ; Initialize Master and Slave drives
    54     eMOVZX  ax, BYTE [di+DPT.bIdevarsOffset]    ; (AL) pointer to controller we are looking to reset
     54    eMOVZX  ax, [di+DPT.bIdevarsOffset]         ; (AL) pointer to controller we are looking to reset
    5555                                                ; (AH) initialize error code, assume success
    5656
     
    8585IterateAndResetDrives:
    8686    cmp     al, [di+DPT.bIdevarsOffset]         ; The right controller?
    87     jne     .done
     87    jne     .Done
     88    push    cx
    8889    push    ax
    89     push    cx
    9090    call    AH9h_InitializeDriveForUse          ; Reset Master and Slave (Master will come first in DPT list)
    9191
    9292%ifdef MODULE_ADVANCED_ATA
    9393    jc      SHORT .SkipControllerInitSinceError
    94     call    InitializeAdvancedIdeControllers    ; Done after drive init so drives are first set to advanced PIO mode, then the controller
     94    ; Here we initialize the more advanced controllers (VLB and PCI) to get better performance for systems with 32-bit bus.
     95    ; This step is optional since the controllers use slowest possible settings by default if they are not initialized.
     96
     97    pop     ax
     98    push    ax
     99    cmp     al, [di+LARGEST_DPT_SIZE+DPT.bIdevarsOffset]    ; We check if next DPT is for the same IDE controller.
     100    je      SHORT .SkipInitializationUntilNextDrive         ; If it is, we skip the initialization.
     101    call    AdvAtaInit_InitializeControllerForDPTinDSDI     ; Done after drive init so drives are first set to advanced PIO mode, then the controller
     102.SkipInitializationUntilNextDrive:
    95103.SkipControllerInitSinceError:
    96 %endif
     104%endif  ; MODULE_ADVANCED_ATA
    97105
     106    pop     ax
    98107    pop     cx
    99     pop     ax
    100     jnc     .done
     108    jnc     .Done
    101109    or      ah, (RET_HD_RESETFAIL << 1) | 1     ; OR in Reset Failed error code and CF, will SHR into position later
    102 .done:
     110.Done:
    103111    stc                                         ; From IterateAllDPTs perspective, the DPT is never found (continue iteration)
    104112    ret
    105113
    106 
    107 %ifdef MODULE_ADVANCED_ATA
    108 ;--------------------------------------------------------------------
    109 ; Here we initialize the more advanced controllers (VLB and PCI)
    110 ; to get better performance for systems with 32-bit bus.
    111 ;
    112 ; This step is optional since the controllers use slowest possible
    113 ; settings by default if they are not initialized.
    114 ;
    115 ; InitializeAdvancedIdeController
    116 ;   Parameters:
    117 ;       DS:DI:  Ptr to DPT
    118 ;   Returns:
    119 ;       CF:     Cleared if success or no controller to initialize
    120 ;               Set if error
    121 ;   Corrupts registers:
    122 ;       AX, BX, CX, DX
    123 ;--------------------------------------------------------------------
    124 InitializeAdvancedIdeControllers:
    125     ; We want to initialize the advanced controller only after both
    126     ; Master and Slave drive are initialized to correct PIO mode.
    127     ; We check if next DPT is for the same IDE controller. If it is,
    128     ; we skip the initialization.
    129     mov     al, [di+DPT.bIdevarsOffset]
    130     cmp     al, [di++LARGEST_DPT_SIZE+DPT.bIdevarsOffset]
    131     je      SHORT .SkipInitializationUntilNextDrive ; CF cleared
    132 
    133     jmp     AdvAtaInit_InitializeControllerForDPTinDSDI
    134 .SkipInitializationUntilNextDrive:
    135     clc
    136     ret
    137 
    138 %endif  ; MODULE_ADVANCED_ATA
  • trunk/XTIDE_Universal_BIOS/Src/Initialization/AdvAtaInit.asm

    r364 r370  
    114114;--------------------------------------------------------------------
    115115AdvAtaInit_SelectSlowestCommonPioTimingsToBXandCXfromDSSIandDSDI:
    116     eMOVZX  bx, BYTE [di+DPT_ADVANCED_ATA.bPioMode]
     116    eMOVZX  bx, [di+DPT_ADVANCED_ATA.bPioMode]
    117117    mov     cx, [di+DPT_ADVANCED_ATA.wMinPioCycleTime]
    118118    test    si, si
  • trunk/XTIDE_Universal_BIOS/Src/Initialization/AtaID.asm

    r364 r370  
    8989    ; Get PIO mode and cycle time for PIO 0...2
    9090    mov     bx, [es:si+ATA1.bPioMode]
     91    mov     ax, bx                  ; AH = 0, AL = PIO mode 0, 1 or 2
    9192    shl     bx, 1                   ; Shift for WORD lookup
    9293    mov     cx, [cs:bx+.rgwPio0to2CycleTimeInNanosecs]
    93     shr     bx, 1
    94     xchg    ax, bx                  ; AH = 0, AL = PIO mode 0, 1 or 2
    9594
    9695    ; Check if IORDY is supported
     
    105104    ; Get Advanced PIO mode
    106105    ; (Hard Disks supports up to 4 but CF cards can support 5 and 6)
    107     mov     bx, [es:si+ATA2.bPIOSupp]
     106    mov     bl, [es:si+ATA2.bPIOSupp]
    108107.CheckNextFlag:
    109108    inc     ax
    110     shr     bx, 1
     109    shr     bl, 1
    111110    jnz     SHORT .CheckNextFlag
    112111    MIN_U   al, 6                       ; Make sure not above lookup tables
  • trunk/XTIDE_Universal_BIOS/Src/Initialization/Vision.asm

    r364 r370  
    4545IsConfigRegisterWithIDinAL:
    4646    mov     ah, al
    47     and     ah, MASK_QDCONFIG_CONTROLLER_ID
    48     cmp     ah, ID_QD6500 << 4
     47    and     al, MASK_QDCONFIG_CONTROLLER_ID
     48    cmp     al, ID_QD6500 << 4
    4949    je      SHORT VisionControllerDetected
    50     cmp     ah, ID_QD6580 << 4
     50    cmp     al, ID_QD6580 << 4
    5151    je      SHORT VisionControllerDetected
    52     cmp     ah, ID_QD6580_ALTERNATE << 4
     52    cmp     al, ID_QD6580_ALTERNATE << 4
    5353VisionControllerDetected:
     54    xchg    ah, al
    5455    ret
    5556
     
    175176    mov     bp, QD6500_MAX_ACTIVE_TIME_CLOCKS | (QD6500_MIN_ACTIVE_TIME_CLOCKS << 8)
    176177
    177     ; We need the PIO Cycle Time in CX to calculate Active and Recovery Times. 
     178    ; We need the PIO Cycle Time in CX to calculate Active and Recovery Times.
    178179.CalculateTimingsForQD65xx:
    179180    call    AdvAtaInit_SelectSlowestCommonPioTimingsToBXandCXfromDSSIandDSDI
  • trunk/XTIDE_Universal_BIOS/makefile

    r369 r370  
    196196
    197197xt_unused: xt
    198     $(AS) "$(SRC_ASM)" $(ASFLAGS) $(DEFS_XT) -o"$(TARGET)_xt_unused.asm" -E -DCHECK_FOR_UNUSED_ENTRYPOINTS
    199     perl ..\tools\unused.pl $(TARGET)_xt.lst $(TARGET)_xt_unused.asm
    200 
     198    @$(AS) "$(SRC_ASM)" $(ASFLAGS) $(DEFS_XT) -o"$(TARGET)_xt_unused.asm" -E -DCHECK_FOR_UNUSED_ENTRYPOINTS
     199    @perl ..\tools\unused.pl $(TARGET)_xt.lst $(TARGET)_xt_unused.asm
     200
  • trunk/XTIDE_Universal_BIOS_Configurator_v2/Inc/Help/Configuration_FullMode.txt

    r68 r370  
    1 Full mode supports up to 5 IDE controllers (10 drives). Full mode reserves a bit of RAM from top of Conventional memory. This makes possible to use ROM BASIC and software that requires top of interrupt vectors where XTIDE Universal BIOS parameters would be stored in Lite mode.
     1Full mode supports up to 4 IDE controllers (8 drives). Full mode reserves a bit of RAM from the top of Conventional memory. This makes it possible to use ROM BASIC and other software that requires the interrupt vectors where XTIDE Universal BIOS parameters would be stored in Lite mode.
    22
    3 Lite mode supports only one IDE controller (2 drives) and stores parameters to top of interrupt vectors (30:0h) so no Conventional memory needs to be reserved. Lite mode cannot be used if some software requires top of interrupt vectors. Usually this is not a problem since only IBM ROM BASIC uses them.
     3Lite mode supports only one IDE controller (2 drives) and stores parameters to the top of the interrupt vectors (30:0h) so no Conventional memory needs to be reserved. Lite mode cannot be used if some software requires the top of interrupt vectors. Usually this is not a problem since only IBM ROM BASIC uses them.
    44
    5 Tandy 1000 models with 640 kiB or less memory need to use Lite mode since top of Conventional memory gets dynamically reserved by video hardware. This happens only with Tandy integrated video controller and not when using expansion graphics cards. It is possible to use Full mode if reserving RAM for video memory + what is required for XTIDE Universal BIOS. This would mean 129 kiB but most software should work with 65 kiB reserved.
     5Tandy 1000 models with 640 kiB or less memory need to use Lite mode since the top of Conventional memory gets dynamically reserved by video hardware. This happens only with Tandy integrated video controller and not when using expansion graphics cards. It is possible to use Full mode if reserving RAM for video memory + what is required for XTIDE Universal BIOS. This would mean 129 kiB but most software should work with 65 kiB reserved.
  • trunk/XTIDE_Universal_BIOS_Configurator_v2/Src/Flash.asm

    r293 r370  
    3333
    3434    loop    .FlashNextPage
     35%ifndef CHECK_FOR_UNUSED_ENTRYPOINTS
    3536%if FLASH_RESULT.success = 0    ; Just in case this should ever change
    3637    mov     [bp+FLASHVARS.flashResult], cl
    3738%else
    3839    mov     BYTE [bp+FLASHVARS.flashResult], FLASH_RESULT.success
     40%endif
    3941%endif
    4042    ret
  • trunk/XTIDE_Universal_BIOS_Configurator_v2/makefile

    r293 r370  
    131131    @upx -qq --8086 --ultra-brute $(TARGET).$(EXTENSION)
    132132    @echo Done! XT version is ready for release.
     133
     134xt_unused: xt
     135    @$(AS) "$(SRC_ASM)" $(ASFLAGS) $(DEFS_XT) -o"$(TARGET)_xt_unused.asm" -E -DCHECK_FOR_UNUSED_ENTRYPOINTS
     136    @perl ..\tools\unused.pl $(TARGET)_xt.lst $(TARGET)_xt_unused.asm
     137
Note: See TracChangeset for help on using the changeset viewer.