Changeset 505 in xtideuniversalbios for trunk


Ignore:
Timestamp:
Feb 25, 2013, 4:23:09 PM (11 years ago)
Author:
krille_n_@…
google:author:
krille_n_@hotmail.com
Message:

Changes:

  • Reverted the changes to MenuEvents.inc done in r492 since they broke the F1 key function in XTIDECFG.
  • Added a tail-call optimized variant of the CALL_DISPLAY_LIBRARY macro (JMP_DISPLAY_LIBRARY).
  • Put a block size limit in AH1Eh_ChangeXTCFmodeBasedOnControlRegisterInAL. I think it's needed but if not, it's easy to remove.
  • Other optimizations and fixes.
Location:
trunk
Files:
36 edited

Legend:

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

    r407 r505  
    66%ifndef MODULE_STRINGS_COMPRESSED_PRECOMPRESS
    77;--------------------------------------------------------------------
    8 ; Display Library users need to use this macro since it will provide
     8; Display Library users need to use these macros since it will provide
    99; compatibility with future library versions.
    1010;
    1111; CALL_DISPLAY_LIBRARY
     12; JMP_DISPLAY_LIBRARY
    1213;   Parameters:
    1314;       %1:         Function to call (functionName from DISPLAY_LIB)
     
    2829        mov     di, %1
    2930        call    Display_FunctionFromDI
     31    %endif
     32%endmacro
     33
     34%macro JMP_DISPLAY_LIBRARY 1
     35    %ifidn %1, PushDisplayContext
     36        jmp     DisplayContext_Push
     37    %elifidn %1, PopDisplayContext
     38        call    DisplayContext_Pop
     39        ret
     40    %elifidn %1, PrepareOffScreenBufferInESBXwithLengthInCX
     41        jmp     DisplayContext_PrepareOffScreenBufferInESBXwithLengthInCX
     42    %elifidn %1, FormatNullTerminatedStringFromCSSI
     43        mov     di, %1
     44        call    Display_FunctionFromDI
     45        ret
     46    %else
     47        mov     di, %1
     48        jmp     Display_FunctionFromDI
    3049    %endif
    3150%endmacro
  • trunk/Assembly_Library/Inc/MenuEvents.inc

    r492 r505  
    1 ; File name     :   MenuEvents.inc
    21; Project name  :   Assembly Library
    3 ; Created date  :   13.7.2010
    4 ; Last update   :   18.10.2010
    5 ; Author        :   Tomi Tilli
    62; Description   :   Defines for Menu events send to the user.
    73%ifndef MENUEVENTS_INC
     
    2723;
    2824; 2. If the program needs only one menu, %define MENUEVENT_INLINE_OFFSETS before this include file,
    29 ;    and define (through EQU statements) each of the entry points as offsets from a base address. 
    30 ; 
     25;    and define (through EQU statements) each of the entry points as offsets from a base address.
     26;
    3127
    3228;
     
    4945    ; Returns:
    5046    ;   DS:SI:      Ptr to initialized MENUINIT struct
    51     .InitializeMenuinitFromDSSI     resb    2
    52 MENUEVENT_InitializeMenuinitFromDSSI    equ     MENUEVENT.InitializeMenuinitFromDSSI
     47    .InitializeMenuinitFromDSSI resb    2
     48%define MENUEVENT_InitializeMenuinitFromDSSI    MENUEVENT.InitializeMenuinitFromDSSI
    5349
    5450    ; Parameters:
     
    5753    ;   CF:         Set to exit menu
    5854    ;               Clear to cancel exit
    59     .ExitMenu                       resb    2
    60 MENUEVENT_ExitMenu                  equ     MENUEVENT.ExitMenu
     55    .ExitMenu                   resb    2
     56%define MENUEVENT_ExitMenu                      MENUEVENT.ExitMenu
    6157
    6258%ifdef MENUEVENT_IDLEPROCESSING_ENABLE
     
    6460    ;   None
    6561    ; See the definition of MENUEVENT_IDLEPROCESSING_ENABLE below.
    66     .IdleProcessing                 resb    2
    67 MENUEVENT_IdleProcessing            equ     MENUEVENT.IdleProcessing
     62    .IdleProcessing             resb    2
     63%define MENUEVENT_IdleProcessing                MENUEVENT.IdleProcessing
    6864%endif
    6965
     
    7167    ;   CX:         Index of new highlighted item
    7268    ;   DX:         Index of previously highlighted item or NO_ITEM_HIGHLIGHTED
    73     .ItemHighlightedFromCX          resb    2
    74 MENUEVENT_ItemHighlightedFromCX     equ     MENUEVENT.ItemHighlightedFromCX
     69    .ItemHighlightedFromCX      resb    2
     70%define MENUEVENT_ItemHighlightedFromCX         MENUEVENT.ItemHighlightedFromCX
    7571
    7672    ; Parameters:
    7773    ;   CX:         Index of selected item
    78     .ItemSelectedFromCX             resb    2
    79 MENUEVENT_ItemSelectedFromCX        equ     MENUEVENT.ItemSelectedFromCX
     74    .ItemSelectedFromCX         resb    2
     75%define MENUEVENT_ItemSelectedFromCX            MENUEVENT.ItemSelectedFromCX
    8076
    8177    ; Parameters:
    8278    ;   AL:         ASCII character for the key
    8379    ;   AH:         Keyboard library scan code for the key
    84     .KeyStrokeInAX                  resb    2
    85 MENUEVENT_KeyStrokeInAX             equ     MENUEVENT.KeyStrokeInAX
     80    .KeyStrokeInAX              resb    2
     81%define MENUEVENT_KeyStrokeInAX                 MENUEVENT.KeyStrokeInAX
    8682
    8783    ; Parameters:
    8884    ;   CX:         Index of highlighted item
    8985    ;   Cursor has been positioned to the beginning of first line
    90     .RefreshTitle                   resb    2
    91     .RefreshInformation             resb    2
    92 MENUEVENT_RefreshTitle              equ     MENUEVENT.RefreshTitle
    93 MENUEVENT_RefreshInformation        equ     MENUEVENT.RefreshInformation
     86    .RefreshTitle               resb    2
     87    .RefreshInformation         resb    2
     88%define MENUEVENT_RefreshTitle                  MENUEVENT.RefreshTitle
     89%define MENUEVENT_RefreshInformation            MENUEVENT.RefreshInformation
    9490
    9591    ; Parameters:
    9692    ;   CX:         Index of item to refresh
    9793    ;   Cursor has been positioned to the beginning of item line
    98     .RefreshItemFromCX              resb    2
    99 MENUEVENT_RefreshItemFromCX         equ     MENUEVENT.RefreshItemFromCX
     94    .RefreshItemFromCX          resb    2
     95%define MENUEVENT_RefreshItemFromCX             MENUEVENT.RefreshItemFromCX
    10096endstruc
    10197
    102 %endif ; MENUEVENTS_INLINE_OFFSETS
     98%endif ; MENUEVENT_INLINE_OFFSETS
    10399
    104100%endif ; MENUEVENTS_INC
  • trunk/Assembly_Library/Src/Display/DisplayFormatCompressed.asm

    r445 r505  
    139139
    140140.PrintDigit:
    141     add     al, 90h                     ; Convert binary digit in AL to ASCII hex digit (0 - 9 or A - F)
    142     daa
    143     adc     al, 40h
    144     daa
     141    cmp     al, 10                      ; Convert binary digit in AL to ASCII hex digit ('0'-'9' or 'A'-'F')
     142    sbb     al, 69h
     143    das
    145144
    146145    call    DisplayPrint_CharacterFromAL
  • trunk/Assembly_Library/Src/Display/DisplayPrint.asm

    r492 r505  
    306306%endif
    307307
    308 %ifndef EXCLUDE             
     308%ifndef EXCLUDE
    309309;--------------------------------------------------------------------
    310310; DisplayPrint_RepeatCharacterFromALwithCountInCX
     
    397397;   Parameters:
    398398;       AL:     Character to display
    399 ;               Zero value is ignored (no characer is printed)
     399;               Zero value is ignored (no character is printed)
    400400;       DS:     BDA segment (zero)
    401401;       ES:DI:  Ptr to cursor location in video RAM
     
    407407ALIGN DISPLAY_JUMP_ALIGN
    408408DisplayPrint_CharacterFromAL:
    409     test    al,al
     409    test    al, al
    410410    jz      DisplayPrint_Ret
    411411
  • trunk/Assembly_Library/Src/Menu/CharOutLineSplitter.asm

    r445 r505  
    4545    xchg    ax, dx          ; AL = First text line column offset
    4646    mov     ah, dl          ; AH = Last text line column offset
    47     CALL_DISPLAY_LIBRARY SetCharacterOutputParameterFromAX
    48     ret
     47    JMP_DISPLAY_LIBRARY SetCharacterOutputParameterFromAX
    4948
    5049
  • trunk/Assembly_Library/Src/Menu/Dialog/DialogFile.asm

    r376 r505  
    33
    44;
    5 ; XTIDE Universal BIOS and Associated Tools 
     5; XTIDE Universal BIOS and Associated Tools
    66; Copyright (C) 2009-2010 by Tomi Tilli, 2011-2012 by XTIDE Universal BIOS Team.
    77;
     
    1010; the Free Software Foundation; either version 2 of the License, or
    1111; (at your option) any later version.
    12 ; 
     12;
    1313; This program is distributed in the hope that it will be useful,
    1414; but WITHOUT ANY WARRANTY; without even the implied warranty of
    1515; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    16 ; GNU General Public License for more details.     
     16; GNU General Public License for more details.
    1717; Visit http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
    1818;
     
    197197    call    .FindMatchingFilesAndPrintThemToOffScreenBuffer
    198198
    199     CALL_DISPLAY_LIBRARY PopDisplayContext
    200     ret
     199    JMP_DISPLAY_LIBRARY PopDisplayContext
    201200
    202201;--------------------------------------------------------------------
     
    372371ALIGN JUMP_ALIGN
    373372.FormatStringInCSSIandReturn:
    374     CALL_DISPLAY_LIBRARY FormatNullTerminatedStringFromCSSI
    375     ret
     373    JMP_DISPLAY_LIBRARY FormatNullTerminatedStringFromCSSI
    376374
    377375
     
    755753    call    MenuText_PrepareToDrawInformationArea
    756754    mov     si, g_szLoadingPleaseWait
    757     CALL_DISPLAY_LIBRARY PrintNullTerminatedStringFromCSSI
    758     ret
     755    JMP_DISPLAY_LIBRARY PrintNullTerminatedStringFromCSSI
    759756
    760757
  • trunk/Assembly_Library/Src/Menu/Dialog/DialogProgress.asm

    r491 r505  
    216216ALIGN JUMP_ALIGN
    217217.RepeatProgressCharacterCXtimesFromAL:
    218     jcxz    .NothingToRepeat
    219     CALL_DISPLAY_LIBRARY PrintRepeatedCharacterFromALwithCountInCX
    220 ALIGN JUMP_ALIGN, ret
    221 .NothingToRepeat:
    222     ret
     218    jcxz    NothingToRepeat
     219    JMP_DISPLAY_LIBRARY PrintRepeatedCharacterFromALwithCountInCX
    223220
    224221
     
    236233    mov     bx, [si+PROGRESS_DIALOG_IO.wMaxProgressValue]
    237234    sub     bx, [si+PROGRESS_DIALOG_IO.wMinProgressValue]
     235NothingToRepeat:
    238236    ret
    239237
  • trunk/Assembly_Library/Src/Menu/Dialog/DialogWord.asm

    r376 r505  
    1 ; File name     :   DialogWord.asm
    21; Project name  :   Assembly Library
    3 ; Created date  :   10.8.2010
    4 ; Last update   :   18.11.2010
    5 ; Author        :   Tomi Tilli
    62; Description   :   Displays word input dialog.
    73
    84;
    9 ; XTIDE Universal BIOS and Associated Tools 
     5; XTIDE Universal BIOS and Associated Tools
    106; Copyright (C) 2009-2010 by Tomi Tilli, 2011-2012 by XTIDE Universal BIOS Team.
    117;
     
    1410; the Free Software Foundation; either version 2 of the License, or
    1511; (at your option) any later version.
    16 ; 
     12;
    1713; This program is distributed in the hope that it will be useful,
    1814; but WITHOUT ANY WARRANTY; without even the implied warranty of
    1915; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    20 ; GNU General Public License for more details.     
     16; GNU General Public License for more details.
    2117; Visit http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
    2218;
    23        
     19
    2420
    2521; Section containing code
     
    142138
    143139    xchg    ax, dx
    144     CALL_DISPLAY_LIBRARY SetCursorCoordinatesFromAX
    145     ret
     140    JMP_DISPLAY_LIBRARY SetCursorCoordinatesFromAX
     141
  • trunk/Assembly_Library/Src/Menu/MenuAttributes.asm

    r376 r505  
    44
    55;
    6 ; XTIDE Universal BIOS and Associated Tools 
     6; XTIDE Universal BIOS and Associated Tools
    77; Copyright (C) 2009-2010 by Tomi Tilli, 2011-2012 by XTIDE Universal BIOS Team.
    88;
     
    1111; the Free Software Foundation; either version 2 of the License, or
    1212; (at your option) any later version.
    13 ; 
     13;
    1414; This program is distributed in the hope that it will be useful,
    1515; but WITHOUT ANY WARRANTY; without even the implied warranty of
    1616; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    17 ; GNU General Public License for more details.     
     17; GNU General Public License for more details.
    1818; Visit http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
    1919;
    20        
     20
    2121
    2222; Struct containing border characters for different types of menu window lines
     
    4848MenuAttribute_SetToDisplayContextFromTypeInSI:
    4949    call    MenuAttribute_GetToAXfromTypeInSI
    50     CALL_DISPLAY_LIBRARY SetCharacterAttributeFromAL
    51     ret
     50    JMP_DISPLAY_LIBRARY SetCharacterAttributeFromAL
    5251
    5352
  • trunk/Assembly_Library/Src/Menu/MenuBorders.asm

    r376 r505  
    33
    44;
    5 ; XTIDE Universal BIOS and Associated Tools 
     5; XTIDE Universal BIOS and Associated Tools
    66; Copyright (C) 2009-2010 by Tomi Tilli, 2011-2012 by XTIDE Universal BIOS Team.
    77;
     
    1010; the Free Software Foundation; either version 2 of the License, or
    1111; (at your option) any later version.
    12 ; 
     12;
    1313; This program is distributed in the hope that it will be useful,
    1414; but WITHOUT ANY WARRANTY; without even the implied warranty of
    1515; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    16 ; GNU General Public License for more details.     
     16; GNU General Public License for more details.
    1717; Visit http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
    1818;
    19        
     19
    2020
    2121; Struct containing border characters for different types of menu window lines
     
    296296ALIGN MENU_JUMP_ALIGN
    297297PrintNewlineToEndBorderLine:
    298     CALL_DISPLAY_LIBRARY PrintNewlineCharacters
    299     ret
     298    JMP_DISPLAY_LIBRARY PrintNewlineCharacters
    300299
    301300
     
    325324    call    MenuBorders_PrintMultipleBorderCharactersFromAL ; AL does not matter
    326325
    327     CALL_DISPLAY_LIBRARY PopDisplayContext
    328     ret
     326    JMP_DISPLAY_LIBRARY PopDisplayContext
    329327
    330328
     
    365363ALIGN MENU_JUMP_ALIGN
    366364MenuBorders_PrintSingleBorderCharacterFromAL:
    367     CALL_DISPLAY_LIBRARY PrintCharacterFromAL
    368     ret
     365    JMP_DISPLAY_LIBRARY PrintCharacterFromAL
    369366
    370367ALIGN MENU_JUMP_ALIGN
  • trunk/Assembly_Library/Src/Menu/MenuEvent.asm

    r492 r505  
    33
    44;
    5 ; XTIDE Universal BIOS and Associated Tools 
     5; XTIDE Universal BIOS and Associated Tools
    66; Copyright (C) 2009-2010 by Tomi Tilli, 2011-2012 by XTIDE Universal BIOS Team.
    77;
     
    1010; the Free Software Foundation; either version 2 of the License, or
    1111; (at your option) any later version.
    12 ; 
     12;
    1313; This program is distributed in the hope that it will be useful,
    1414; but WITHOUT ANY WARRANTY; without even the implied warranty of
    1515; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    16 ; GNU General Public License for more details.     
     16; GNU General Public License for more details.
    1717; Visit http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
    1818;
    19        
     19
    2020
    2121; Section containing code
     
    5858    jmp     SHORT MenuEvent_SendFromBX
    5959%endif
    60        
     60
    6161
    6262%ifdef MENUEVENT_IDLEPROCESSING_ENABLE
     
    155155;       AX, BX, DX
    156156;--------------------------------------------------------------------
    157 %ifdef MENUEVENT_KeyStrokInAX
     157%ifdef MENUEVENT_KeyStrokeInAX
    158158ALIGN MENU_JUMP_ALIGN
    159159MenuEvent_KeyStrokeInAX:
  • trunk/Assembly_Library/Src/Menu/MenuText.asm

    r376 r505  
    33
    44;
    5 ; XTIDE Universal BIOS and Associated Tools 
     5; XTIDE Universal BIOS and Associated Tools
    66; Copyright (C) 2009-2010 by Tomi Tilli, 2011-2012 by XTIDE Universal BIOS Team.
    77;
     
    1010; the Free Software Foundation; either version 2 of the License, or
    1111; (at your option) any later version.
    12 ; 
     12;
    1313; This program is distributed in the hope that it will be useful,
    1414; but WITHOUT ANY WARRANTY; without even the implied warranty of
    1515; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    16 ; GNU General Public License for more details.     
     16; GNU General Public License for more details.
    1717; Visit http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
    1818;
    19        
     19
    2020
    2121; Section containing code
     
    4040    jmp     SHORT MenuText_ClearInformationArea.ClearCLlinesOfText
    4141%endif
    42        
     42
    4343ALIGN MENU_JUMP_ALIGN
    4444MenuText_ClearInformationArea:
     
    5353    mov     al, ' '
    5454    CALL_DISPLAY_LIBRARY PrintRepeatedCharacterFromALwithCountInCX
    55     CALL_DISPLAY_LIBRARY PopDisplayContext
    56     ret
     55    JMP_DISPLAY_LIBRARY PopDisplayContext
    5756
    5857
     
    220219
    221220    xchg    ax, bx
    222     CALL_DISPLAY_LIBRARY SetCursorCoordinatesFromAX
    223     ret
     221    JMP_DISPLAY_LIBRARY SetCursorCoordinatesFromAX
    224222
    225223
  • trunk/Assembly_Library/Src/TimerTest.asm

    r376 r505  
    33
    44;
    5 ; XTIDE Universal BIOS and Associated Tools 
     5; XTIDE Universal BIOS and Associated Tools
    66; Copyright (C) 2009-2010 by Tomi Tilli, 2011-2012 by XTIDE Universal BIOS Team.
    77;
     
    1010; the Free Software Foundation; either version 2 of the License, or
    1111; (at your option) any later version.
    12 ; 
     12;
    1313; This program is distributed in the hope that it will be useful,
    1414; but WITHOUT ANY WARRANTY; without even the implied warranty of
    1515; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    16 ; GNU General Public License for more details.     
     16; GNU General Public License for more details.
    1717; Visit http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
    18 ;       
     18;
    1919
    2020; Include .inc files
     
    109109;   Parameters:
    110110;       AX:     Difference in register and memory access durations
    111 ;               (Precise Event Timer Ticks) 
     111;               (Precise Event Timer Ticks)
    112112;   Returns:
    113113;       AX:     Duration for single BYTE in nanosecs
     
    182182    push    dx
    183183    push    ax
    184     CALL_DISPLAY_LIBRARY FormatNullTerminatedStringFromCSSI
    185     ret
     184    JMP_DISPLAY_LIBRARY FormatNullTerminatedStringFromCSSI
    186185
    187186
  • trunk/BIOS_Drive_Information_Tool/Src/Print.asm

    r426 r505  
    33
    44;
    5 ; XTIDE Universal BIOS and Associated Tools 
     5; XTIDE Universal BIOS and Associated Tools
    66; Copyright (C) 2009-2010 by Tomi Tilli, 2011-2012 by XTIDE Universal BIOS Team.
    77;
     
    1010; the Free Software Foundation; either version 2 of the License, or
    1111; (at your option) any later version.
    12 ; 
     12;
    1313; This program is distributed in the hope that it will be useful,
    1414; but WITHOUT ANY WARRANTY; without even the implied warranty of
    1515; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    16 ; GNU General Public License for more details.     
     16; GNU General Public License for more details.
    1717; Visit http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
    18 ;               
     18;
    1919
    2020; Section containing code
     
    3333    mov     bl, ATTRIBUTES_NOT_USED
    3434    mov     ax, DosCharOut
    35     CALL_DISPLAY_LIBRARY    SetCharOutputFunctionFromAXwithAttribFlagInBL
    36     ret
     35    JMP_DISPLAY_LIBRARY SetCharOutputFunctionFromAXwithAttribFlagInBL
     36
    3737
    3838;--------------------------------------------------------------------
     
    7272    call    Print_FormatStringFromSIwithParameterInAX
    7373    stc     ; Keep the CF set
    74 ALIGN JUMP_ALIGN
     74ALIGN JUMP_ALIGN, ret
    7575.NoErrors:
    7676    ret
     
    182182    push    ax
    183183    mov     si, g_szFormatCHS
    184     CALL_DISPLAY_LIBRARY    FormatNullTerminatedStringFromCSSI
    185     CALL_DISPLAY_LIBRARY    PrintNewlineCharacters
     184    CALL_DISPLAY_LIBRARY FormatNullTerminatedStringFromCSSI
     185    CALL_DISPLAY_LIBRARY PrintNewlineCharacters
    186186
    187187    pop     si
     
    243243    call    Print_NullTerminatedStringFromSI
    244244    pop     si
    245        
     245
    246246    ret
    247247
     
    275275;       AX, DI
    276276;--------------------------------------------------------------------
    277 JumpToFormatNullTerminatedStringFromSI:
    278     CALL_DISPLAY_LIBRARY    FormatNullTerminatedStringFromCSSI
    279     ret
     277JumpToFormatNullTerminatedStringFromSI:
     278    JMP_DISPLAY_LIBRARY FormatNullTerminatedStringFromCSSI
    280279
    281280
     
    290289;--------------------------------------------------------------------
    291290Print_NullTerminatedStringFromSI:
    292     CALL_DISPLAY_LIBRARY    PrintNullTerminatedStringFromCSSI
    293     ret
     291    JMP_DISPLAY_LIBRARY PrintNullTerminatedStringFromCSSI
     292
  • trunk/Serial_Server/win32/Win32File.h

    r376 r505  
    77// Routines for accessing the file system under Win32.  It's important
    88// to use these direct Win32 calls for large files, since FILE * routines,
    9 // in particular ftell() and fseek(), are limites to signed 32-bits (2 GB).
     9// in particular ftell() and fseek(), are limited to signed 32-bits (2 GB).
    1010// These are also likely faster since they are more direct.
    11 // 
     11//
    1212
    1313//
    14 // XTIDE Universal BIOS and Associated Tools 
     14// XTIDE Universal BIOS and Associated Tools
    1515// Copyright (C) 2009-2010 by Tomi Tilli, 2011-2012 by XTIDE Universal BIOS Team.
    1616//
     
    1919// the Free Software Foundation; either version 2 of the License, or
    2020// (at your option) any later version.
    21 // 
     21//
    2222// This program is distributed in the hope that it will be useful,
    2323// but WITHOUT ANY WARRANTY; without even the implied warranty of
    2424// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    25 // GNU General Public License for more details.     
     25// GNU General Public License for more details.
    2626// Visit http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
    2727//
     
    6969        {
    7070            if( !CloseHandle( fp ) )
    71                 log( 0, "'%s', could not close file handle", name ? name : "unknown" );         
     71                log( 0, "'%s', could not close file handle", name ? name : "unknown" );
    7272        }
    7373    }
     
    126126
    127127    // LBA 28 limit - 28-bits (could be 1 more, but not worth pushing it)
    128     const static unsigned long MaxSectors = 0xfffffff; 
     128    const static unsigned long MaxSectors = 0xfffffff;
    129129#define USAGE_MAXSECTORS "137438 MB (LBA28 limit)"
    130130
  • trunk/XTIDE_Universal_BIOS/Inc/CustomDPT.inc

    r491 r505  
    7171%endif
    7272%ifdef MODULE_FEATURE_SETS
    73     FLGH_DPT_POWER_MANAGEMENT_SUPPORTED EQU (1<<5)  ; Bit 4, Drive supports power management
     73    FLGH_DPT_POWER_MANAGEMENT_SUPPORTED EQU (1<<5)  ; Bit 5, Drive supports power management
    7474%endif
    7575%ifdef MODULE_ADVANCED_ATA
    76     FLGH_DPT_IORDY                      EQU (1<<7)  ; Bit 5, Controller and Drive supports IORDY
     76    FLGH_DPT_IORDY                      EQU (1<<7)  ; Bit 7, Controller and Drive supports IORDY
    7777%endif
    7878
  • trunk/XTIDE_Universal_BIOS/Inc/RamVars.inc

    r492 r505  
    33
    44;
    5 ; XTIDE Universal BIOS and Associated Tools 
     5; XTIDE Universal BIOS and Associated Tools
    66; Copyright (C) 2009-2010 by Tomi Tilli, 2011-2012 by XTIDE Universal BIOS Team.
    77;
     
    1010; the Free Software Foundation; either version 2 of the License, or
    1111; (at your option) any later version.
    12 ; 
     12;
    1313; This program is distributed in the hope that it will be useful,
    1414; but WITHOUT ANY WARRANTY; without even the implied warranty of
    1515; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    16 ; GNU General Public License for more details.     
     16; GNU General Public License for more details.
    1717; Visit http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
    1818;
     
    2323; Segment when RAMVARS is stored to top of interrupt vectors.
    2424%ifndef USE_AT
    25 LITE_MODE_RAMVARS_SEGMENT   EQU     30h
     25    LITE_MODE_RAMVARS_SEGMENT   EQU     30h
    2626%endif
    2727
    28 %ifdef MODULE_SERIAL_FLOPPY
    29     %define NEED_XLATEVARS
    30 %endif
    3128
    32 %ifdef MODULE_DRIVEXLATE
     29%ifdef MODULE_SERIAL_FLOPPY OR MODULE_DRIVEXLATE
    3330    %define NEED_XLATEVARS
    3431%endif
     
    7774                                        ; and number of drives (low order bit, max 2 drives supported).
    7875                                        ; During initialization, until the end of DetectDrives_FromAllIDEControllers,
    79                                         ; this byte contains the raw number of floppy drives seen 
     76                                        ; this byte contains the raw number of floppy drives seen
    8077                                        ; (using .bFlopCreateCnt)
    8178    %else
     
    105102
    106103;
    107 ; IDEPACK NOTE: The first six bytes of this structure are directly put on the 
     104; IDEPACK NOTE: The first six bytes of this structure are directly put on the
    108105; wire for MODULE_SERIAL, please do not change the order or insert other members.
    109106;
  • trunk/XTIDE_Universal_BIOS/Src/Device/IDE/IdeIO.asm

    r503 r505  
    5656    mov     al, [di+DPT_ATA.bDevice]
    5757    cmp     al, DEVICE_8BIT_XTIDE_REV2
     58    jb      SHORT .InputToALfromRegisterInDX    ; Standard IDE controllers and XTIDE rev 1
     59
     60%ifdef MODULE_8BIT_IDE_ADVANCED
    5861    je      SHORT .ReverseA0andA3fromRegisterIndexInDX
    59     jb      SHORT .InputToALfromRegisterInDX    ; Standard IDE controllers and XTIDE rev 1
    60        
    61 %ifdef MODULE_8BIT_IDE_ADVANCED
     62
    6263    cmp     al, DEVICE_8BIT_JRIDE_ISA
    6364    jne     SHORT .ShlRegisterIndexInDX         ; All XT-CF modes
     
    7172    ret
    7273%endif
    73        
     74
    7475.ReverseA0andA3fromRegisterIndexInDX:
    7576    mov     dl, [cs:bx+g_rgbSwapA0andA3fromIdeRegisterIndex]
     
    7778
    7879.ShlRegisterIndexInDX:
    79     shl     dx, 1
     80    eSHL_IM dx, 1
    8081    ; Fall to .InputToALfromRegisterInDX
    8182
     
    102103    mov     bl, [di+DPT_ATA.bDevice]
    103104    cmp     bl, DEVICE_8BIT_XTIDE_REV2
     105    jb      SHORT .OutputALtoControlBlockRegisterInDX   ; Standard IDE controllers and XTIDE rev 1
     106
     107%ifdef MODULE_8BIT_IDE_ADVANCED
    104108    je      SHORT .ReverseA0andA3fromRegisterIndexInDX
    105     jb      SHORT .OutputALtoControlBlockRegisterInDX   ; Standard IDE controllers and XTIDE rev 1
    106 
    107 %ifdef MODULE_8BIT_IDE_ADVANCED
     109
    108110    cmp     bl, DEVICE_8BIT_JRIDE_ISA
    109111    jne     SHORT .ShlRegisterIndexInDX     ; All XT-CF modes
     
    125127
    126128.ShlRegisterIndexInDX:
    127     shl     dx, 1
     129    eSHL_IM dx, 1
    128130    add     dx, BYTE XTCF_CONTROL_BLOCK_OFFSET
    129131    jmp     SHORT OutputALtoRegisterInDX
     
    152154    mov     bl, [di+DPT_ATA.bDevice]
    153155    cmp     bl, DEVICE_8BIT_XTIDE_REV2
     156    jb      SHORT OutputALtoRegisterInDX    ; Standard IDE controllers and XTIDE rev 1
     157
     158%ifdef MODULE_8BIT_IDE_ADVANCED
    154159    je      SHORT .ReverseA0andA3fromRegisterIndexInDX
    155     jb      SHORT OutputALtoRegisterInDX    ; Standard IDE controllers and XTIDE rev 1
    156 
    157 %ifdef MODULE_8BIT_IDE_ADVANCED
     160
    158161    cmp     bl, DEVICE_8BIT_JRIDE_ISA
    159162    jne     SHORT .ShlRegisterIndexInDX     ; All XT-CF modes
     
    177180
    178181.ShlRegisterIndexInDX:
    179     shl     dx, 1
     182    eSHL_IM dx, 1
    180183    ; Fall to OutputALtoRegisterInDX
    181184
  • trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h/AH0h_HReset.asm

    r503 r505  
    3939AH0h_HandlerForDiskControllerReset:
    4040    ; Reset foreign Floppy and Hard Drives (those handled by other BIOSes)
    41     xor     bx, bx                                      ; Zero BH to assume no errors
    42     or      bl, dl                                      ; Copy requested drive to BL
     41    eMOVZX  bx, dl                                      ; Copy requested drive to BL and zero BH to assume no errors
     42
    4343    xor     ah, ah                                      ; Disk Controller Reset
    4444    call    Int13h_CallPreviousInt13hHandler            ; Reset floppy drives only or floppy drives and foreign hard disks
  • trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h/AH1Eh_XTCF.asm

    r491 r505  
    102102    out     dx, al
    103103
     104    ; We always need to enable 8-bit mode since 16-bit mode is restored
     105    ; when controller is reset (AH=00h or 0Dh)
     106    ePUSH_T bx, AH23h_Enable8bitPioMode
     107
    104108    ; Convert Control Register Contents to device code
    105109    test    al, al
     
    108112    jae     SHORT .SetMemoryMappedMode
    109113
     114; We need to limit block size here. Consider this scenario;
     115; 1. While in PIO mode or memory mapped mode, the drive is set to do
     116;    block transfers larger than XTCF_DMA_MODE_MAX_BLOCK_SIZE.
     117; 2. A call is subsequently made to change device mode to DEVICE_8BIT_XTCF_DMA.
     118; 3. The call to AH24h_SetBlockSize fails but the change in device mode has been made.
     119
    110120    ; Set DMA Mode
    111121    mov     BYTE [di+DPT_ATA.bDevice], DEVICE_8BIT_XTCF_DMA
    112122    mov     al, [di+DPT_ATA.bBlockSize]
    113     call    AH24h_SetBlockSize  ; AH=24h limits block size if necessary
    114     jmp     SHORT .Enable8bitPioMode
     123    MIN_U   al, XTCF_DMA_MODE_MAX_BLOCK_SIZE
     124    jmp     SHORT AH24h_SetBlockSize    ; Returns via AH23h_Enable8bitPioMode
    115125
    116126.SetMemoryMappedMode:
    117     mov     BYTE [di+DPT_ATA.bDevice], DEVICE_8BIT_XTCF_MEMMAP
    118     jmp     SHORT .Enable8bitPioMode
     127    mov     al, DEVICE_8BIT_XTCF_MEMMAP
     128    SKIP2B  bx
    119129
    120130.Set8bitPioMode:
    121     mov     BYTE [di+DPT_ATA.bDevice], DEVICE_8BIT_XTCF_PIO8
    122     ; Fall to .Enable8bitPioMode
    123 
    124     ; We always need to enable 8-bit mode since 16-bit mode is restored
    125     ; when controller is reset (AH=00h or 0Dh)
    126 .Enable8bitPioMode:
    127     jmp     AH23h_Enable8bitPioMode
     131    mov     al, DEVICE_8BIT_XTCF_PIO8
     132    mov     [di+DPT_ATA.bDevice], al
     133    ret     ; Via AH23h_Enable8bitPioMode
    128134
    129135
  • trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h/AH9h_HInit.asm

    r493 r505  
    101101    call    Device_SelectDrive
    102102    STORE_ERROR_FLAG_TO_DPT     FLG_INITERROR_FAILED_TO_SELECT_DRIVE
     103%ifdef USE_386
     104    jc      .ReturnWithErrorCodeInAH
     105%else
    103106    jnc     SHORT .ContinueInitializationSinceDriveSelectedSuccesfully
    104107    jmp     .ReturnWithErrorCodeInAH
    105108.ContinueInitializationSinceDriveSelectedSuccesfully:
     109%endif
    106110
    107111
  • trunk/XTIDE_Universal_BIOS/Src/Handlers/Int19h.asm

    r493 r505  
    33
    44;
    5 ; XTIDE Universal BIOS and Associated Tools 
     5; XTIDE Universal BIOS and Associated Tools
    66; Copyright (C) 2009-2010 by Tomi Tilli, 2011-2012 by XTIDE Universal BIOS Team.
    77;
     
    1010; the Free Software Foundation; either version 2 of the License, or
    1111; (at your option) any later version.
    12 ; 
     12;
    1313; This program is distributed in the hope that it will be useful,
    1414; but WITHOUT ANY WARRANTY; without even the implied warranty of
    1515; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    16 ; GNU General Public License for more details.     
     16; GNU General Public License for more details.
    1717; Visit http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
    18 ;       
     18;
    1919
    2020; Section containing code
     
    107107; The following macro could be easily inlined below.  Why a macro?  Depending on the combination
    108108; of MODULE_HOTKEYS or MODULE_BOOT_MENU, this code needs to either come before or after the
    109 ; call to the boot menu. 
     109; call to the boot menu.
    110110;
    111111%macro TRY_TO_BOOT_DL_AND_DH_DRIVES 0
    112112    push    dx                                  ; it's OK if this is left on the stack, if we are
    113                                                 ; are successful, the following call does not return
     113                                                ; successful, the following call does not return
    114114    call    TryToBootFromPrimaryOrSecondaryBootDevice_AndBoot
    115115    pop     dx
     
    117117    call    TryToBootFromPrimaryOrSecondaryBootDevice_AndBoot
    118118%endmacro
    119                
    120 %ifdef MODULE_HOTKEYS
    121     call    HotkeyBar_ScanHotkeysFromKeyBufferAndStoreToBootvars       
     119
     120%ifdef MODULE_HOTKEYS
     121    call    HotkeyBar_ScanHotkeysFromKeyBufferAndStoreToBootvars
    122122    cmp     al, ROM_BOOT_HOTKEY_SCANCODE
    123     jz      .RomBoot                            ; CF clear so ROM boot
     123    je      .RomBoot                            ; CF clear so ROM boot
    124124%ifdef MODULE_BOOT_MENU
    125125    cmp     al, BOOT_MENU_HOTKEY_SCANCODE
    126     jz      .BootMenu
     126    je      .BootMenu
    127127%endif
    128128    call    HotkeyBar_GetBootDriveNumbersToDX
     
    130130    TRY_TO_BOOT_DL_AND_DH_DRIVES
    131131    ;; falls through to boot menu, if it is present.  If not present, falls through to rom boot.
    132 %endif
     132%endif ; MODULE_HOTKEYS
    133133
    134134%ifdef MODULE_BOOT_MENU
    135 .BootMenu:     
     135.BootMenu:
    136136    call    BootMenu_DisplayAndReturnDriveInDLRomBootClearCF
    137137    jnc     .RomBoot                            ; CF clear so ROM boot
    138138
    139139    mov     dh, dl                              ; Setup for secondary drive
    140     not     dh                                  ; Floppy goes to HD, or vice veras
    141     and     dh, 080h                            ; Go to first drive of the floppy or HD set
     140    not     dh                                  ; Floppy goes to HD, or vice versa
     141    and     dh, 80h                             ; Go to first drive of the floppy or HD set
    142142
    143143%ifdef MODULE_HOTKEYS
    144144    jmp     .TryUsingHotKeysCode
    145145%else
    146     TRY_TO_BOOT_DL_AND_DH_DRIVES       
     146    TRY_TO_BOOT_DL_AND_DH_DRIVES
    147147    jmp     .BootMenu
    148148%endif
    149 %endif
    150 
    151 %ifndef MODULE_HOTKEYS
    152 %ifndef MODULE_BOOT_MENU
     149%endif ; MODULE_BOOT_MENU
     150
     151%ifndef MODULE_HOTKEYS OR MODULE_BOOT_MENU
    153152    xor     dl, dl          ; Try to boot from Floppy Drive A
    154153    call    TryToBootFromPrimaryOrSecondaryBootDevice_AndBoot
    155154    mov     dl, 80h         ; Try to boot from Hard Drive C
    156155    call    TryToBootFromPrimaryOrSecondaryBootDevice_AndBoot
    157 %endif
    158156%endif
    159157
     
    162160    call    DriveXlate_Reset                    ; Clean up any drive mappings before Rom Boot
    163161%endif
    164     clc     
     162    clc
    165163    ;; fall through to JumpToBootSector_or_RomBoot
    166164
     
    174172;   Parameters:
    175173;       DL:     Drive to boot from (translated, 00h or 80h)
    176 ;       CF:     Set for Boot Sector Boot 
     174;       CF:     Set for Boot Sector Boot
    177175;               Clear for ROM Boot
    178176;       ES:BX:  (if CF set) Ptr to boot sector
     
    187185
    188186; clear segment registers before boot sector or rom call
    189     mov     ds, ax     
     187    mov     ds, ax
    190188    mov     es, ax
    191189%ifdef USE_386
     
    202200; Boot by calling INT 18h (ROM Basic of ROM DOS)
    203201.romboot:
    204     int     BIOS_BOOT_FAILURE_INTERRUPT_18h ; Never returns 
    205 
    206 
    207 ;--------------------------------------------------------------------
    208 ; TryToBootFromPrimaryOrSecondaryBootDevice
     202    int     BIOS_BOOT_FAILURE_INTERRUPT_18h ; Never returns
     203
     204
     205;--------------------------------------------------------------------
     206; TryToBootFromPrimaryOrSecondaryBootDevice_AndBoot
    209207;   Parameters
    210208;       DL:     Drive selected as boot device
     
    229227
    230228TryToBoot_FallThroughTo_BootSector_TryToLoadFromDriveDL_AndBoot:
    231 ; fall through to BootSector_TryToLoadFromDriveDL_AndBoot               
    232 %endif
    233        
    234 
     229; fall through to BootSector_TryToLoadFromDriveDL_AndBoot
     230%endif
     231
  • trunk/XTIDE_Universal_BIOS/Src/Handlers/Int19h/BootSector.asm

    r492 r505  
    33
    44;
    5 ; XTIDE Universal BIOS and Associated Tools 
     5; XTIDE Universal BIOS and Associated Tools
    66; Copyright (C) 2009-2010 by Tomi Tilli, 2011-2012 by XTIDE Universal BIOS Team.
    77;
     
    1010; the Free Software Foundation; either version 2 of the License, or
    1111; (at your option) any later version.
    12 ; 
     12;
    1313; This program is distributed in the hope that it will be useful,
    1414; but WITHOUT ANY WARRANTY; without even the implied warranty of
    1515; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    1616; GNU General Public License for more details.
    17 ; Visit http://www.gnu.org/licenses/old-licenses/gpl-2.0.html               
    18 ;       
     17; Visit http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
     18;
    1919
    2020; Section containing code
     
    2222
    2323;--------------------------------------------------------------------
    24 ; BootSector_TryToLoadFromDriveDL
     24; BootSector_TryToLoadFromDriveDL_AndBoot
    2525;   Parameters:
    2626;       DL:     Drive to boot from (translated, 00h or 80h)
     
    3636    call    DetectPrint_TryToBootFromDL
    3737    call    LoadFirstSectorFromDriveDL
     38%ifndef USE_386
    3839    jc      SHORT .FailedToLoadFirstSector
     40%else
     41    jc      DetectPrint_FailedToLoadFirstSector
     42%endif
    3943
    4044    test    dl, dl
     
    4448.AlwaysBootFromFloppyDriveForBooterGames:
    4549    stc
    46     jmp     SHORT JumpToBootSector_or_RomBoot       
     50    jmp     SHORT JumpToBootSector_or_RomBoot
     51
     52%ifndef USE_386
    4753.FailedToLoadFirstSector:
    48     call    DetectPrint_FailedToLoadFirstSector
    49     ret
     54    jmp     DetectPrint_FailedToLoadFirstSector
     55%endif
     56
    5057.FirstHardDiskSectorNotBootable:
    5158    mov     si, g_szBootSectorNotFound
    52     call    DetectPrint_NullTerminatedStringFromCSSIandSetCF
    53     ret
     59    jmp     DetectPrint_NullTerminatedStringFromCSSIandSetCF
    5460
    55 %ifndef CHECK_FOR_UNUSED_ENTRYPOINTS       
     61%ifndef CHECK_FOR_UNUSED_ENTRYPOINTS
    5662  %ifdef MODULE_DRIVEXLATE
    5763    %if TryToBoot_FallThroughTo_BootSector_TryToLoadFromDriveDL_AndBoot <> BootSector_TryToLoadFromDriveDL_AndBoot
     
    7985
    8086.ReadRetryLoop:
    81     call    .LoadFirstSectorFromDLtoESBX
    82     jnc     SHORT .Return
     87    mov     ax, 0201h                       ; Read 1 sector
     88    mov     cx, 1                           ; Cylinder 0, Sector 1
     89    xor     dh, dh                          ; Head 0
     90    int     BIOS_DISK_INTERRUPT_13h
     91    jc      SHORT .FailedToLoadFirstSector
     92.Return:
     93    ret
     94
     95.FailedToLoadFirstSector:
    8396    dec     di                              ; Decrement retry counter (preserve CF)
    8497    jz      SHORT .Return                   ; Loop while retries left
    8598
    8699    ; Reset drive and retry
    87     xor     ax, ax                          ; AH=0h, Disk Controller Reset
     100    xor     ax, ax                          ; AH=00h, Disk Controller Reset
    88101    test    dl, dl                          ; Floppy drive?
    89     eCMOVS  ah, RESET_HARD_DISK             ; AH=Dh, Reset Hard Disk (Alternate reset)
     102    eCMOVS  ah, RESET_HARD_DISK             ; AH=0Dh, Reset Hard Disk (Alternate reset)
    90103    int     BIOS_DISK_INTERRUPT_13h
    91104    jmp     SHORT .ReadRetryLoop
    92105
    93 
    94 ;--------------------------------------------------------------------
    95 ; .LoadFirstSectorFromDLtoESBX
    96 ;   Parameters:
    97 ;       DL:     Drive to boot from (translated, 00h or 80h)
    98 ;       ES:BX:  Destination buffer for boot sector
    99 ;   Returns:
    100 ;       AH:     INT 13h error code
    101 ;       ES:BX:  Ptr to boot sector
    102 ;       CF:     Cleared if read successful
    103 ;               Set if any error
    104 ;   Corrupts registers:
    105 ;       AL, CX, DH
    106 ;--------------------------------------------------------------------
    107 .LoadFirstSectorFromDLtoESBX:
    108     mov     ax, 0201h                       ; Read 1 sector
    109     mov     cx, 1                           ; Cylinder 0, Sector 1
    110     xor     dh, dh                          ; Head 0
    111     int     BIOS_DISK_INTERRUPT_13h
    112 .Return:
    113     ret
  • trunk/XTIDE_Universal_BIOS/Src/Initialization/DetectDrives.asm

    r493 r505  
    5050%ifdef MODULE_HOTKEYS
    5151    call    HotkeyBar_ScanHotkeysFromKeyBufferAndStoreToBootvars        ; Done here while CX is still protected
    52 %endif             
     52%endif
    5353
    5454    pop     cx
     
    7373%ifdef MODULE_HOTKEYS
    7474    cmp     al, COM_DETECT_HOTKEY_SCANCODE  ; Set by last call to HotkeyBar_UpdateDuringDriveDetection above
    75     jz      .DriveDetectLoop
    76 %endif     
     75    je      .DriveDetectLoop
     76%endif
    7777
    7878    mov     al,[cs:ROMVARS.wFlags]          ; Configurator set to always scan?
     
    201201%ifdef MODULE_HOTKEYS
    202202    call    HotkeyBar_UpdateDuringDriveDetection
    203 %endif             
    204        
     203%endif
     204
    205205%ifdef MODULE_8BIT_IDE_ADVANCED
    206206    pop     dx
     
    248248;       Nothing
    249249;   Returns:
    250 ;       CF:     Set (from BootMenuPrint_NullTerminatedStringFromCSSIandSetCF)
     250;       CF:     Set (from DetectPrint_NullTerminatedStringFromCSSIandSetCF)
    251251;   Corrupts registers:
    252252;       AX, SI
  • trunk/XTIDE_Universal_BIOS/Src/Initialization/DetectPrint.asm

    r492 r505  
    33
    44;
    5 ; XTIDE Universal BIOS and Associated Tools 
     5; XTIDE Universal BIOS and Associated Tools
    66; Copyright (C) 2009-2010 by Tomi Tilli, 2011-2012 by XTIDE Universal BIOS Team.
    77;
     
    1010; the Free Software Foundation; either version 2 of the License, or
    1111; (at your option) any later version.
    12 ; 
     12;
    1313; This program is distributed in the hope that it will be useful,
    1414; but WITHOUT ANY WARRANTY; without even the implied warranty of
    1515; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    16 ; GNU General Public License for more details.     
     16; GNU General Public License for more details.
    1717; Visit http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
    18 ;       
     18;
    1919
    2020; Section containing code
     
    3131;--------------------------------------------------------------------
    3232DetectPrint_InitializeDisplayContext:
    33     CALL_DISPLAY_LIBRARY    InitializeDisplayContext
    34     ret
    35 
    36        
     33    JMP_DISPLAY_LIBRARY InitializeDisplayContext
     34
     35
    3736%ifdef MODULE_HOTKEYS
    3837;--------------------------------------------------------------------
     
    4645;--------------------------------------------------------------------
    4746DetectPrint_GetSoftwareCoordinatesToAX:
    48     CALL_DISPLAY_LIBRARY    GetSoftwareCoordinatesToAX
    49     ret
     47    JMP_DISPLAY_LIBRARY GetSoftwareCoordinatesToAX
    5048%endif
    5149
    52        
     50
    5351;--------------------------------------------------------------------
    5452; DetectPrint_StartDetectWithMasterOrSlaveStringInCXandIdeVarsInCSBP
     
    7573;   Corrupts registers:
    7674;       AX, CX, DX, SI, DI
    77 ;--------------------------------------------------------------------   
     75;--------------------------------------------------------------------
    7876DetectPrint_StartDetectWithAutodetectedBasePortInAXandIdeVarsInCSBP:
    7977    mov     dx, [cs:bp+IDEVARS.bDevice-1]   ; for Serial: AL=port address>>2, AH=baud rate
     
    152150DetectPrint_DriveNameFromDrvDetectInfoInESBX:
    153151    push    bp
    154     mov     bp,sp   
     152    mov     bp,sp
    155153    lea     si,[bx+DRVDETECTINFO.szDrvName]
    156154    push    si
     
    158156    jmp     SHORT DetectPrint_FormatCSSIfromParamsInSSBP
    159157
    160                
     158
    161159;--------------------------------------------------------------------
    162160; Prints BIOS name and segment address where it is found.
     
    175173                                        ; so that it can be a different value when using .BootMenuEntry
    176174
    177 .BootMenuEntry: 
     175.BootMenuEntry:
    178176    push    bp
    179177    mov     bp, sp
     
    186184    push    ax
    187185%else
    188     ; szTitle and szVersion have the high order byte of their addresses zero, 
     186    ; szTitle and szVersion have the high order byte of their addresses zero,
    189187    ; so these push instructions are only 2 bytes
    190188    ;
     
    259257
    260258    mov     si, g_szTryToBoot
    261     jmp     SHORT DetectPrint_FormatCSSIfromParamsInSSBP   
     259    jmp     SHORT DetectPrint_FormatCSSIfromParamsInSSBP
    262260
    263261
  • trunk/XTIDE_Universal_BIOS/Src/Menus/BootMenu/BootMenu.asm

    r492 r505  
    33
    44;
    5 ; XTIDE Universal BIOS and Associated Tools 
     5; XTIDE Universal BIOS and Associated Tools
    66; Copyright (C) 2009-2010 by Tomi Tilli, 2011-2012 by XTIDE Universal BIOS Team.
    77;
     
    1010; the Free Software Foundation; either version 2 of the License, or
    1111; (at your option) any later version.
    12 ; 
     12;
    1313; This program is distributed in the hope that it will be useful,
    1414; but WITHOUT ANY WARRANTY; without even the implied warranty of
    1515; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    1616; GNU General Public License for more details.
    17 ; Visit http://www.gnu.org/licenses/old-licenses/gpl-2.0.html       
    18 ;       
     17; Visit http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
     18;
    1919
    2020; Section containing code
     
    2424; Displays Boot Menu and returns Drive or Function number.
    2525;
    26 ; BootMenu_DisplayAndStoreSelection
     26; BootMenu_DisplayAndReturnDriveInDLRomBootClearCF
    2727;   Parameters:
    2828;       DS:     RAMVARS segment
     
    4141
    4242    xchg    cx, ax
    43        
     43
    4444    ; Clear Boot Menu from screen
    4545    mov     ax, ' ' | (MONO_NORMAL<<8)
     
    5252;   Parameters:
    5353;       CX:     Index of menuitem selected from Boot Menu
     54;       DS:     RAMVARS segment
    5455;   Returns:
    5556;       DX:     Drive number to be used for booting
    56 ;       DS:     RAMVARS segment
    5757;       CF:     Set: There is a selected menu item, DL is valid
    5858;               Clear: The item selected is Rom Boot, DL is not valid
    5959;   Corrupts registers:
    60 ;       AX, BX, DI
     60;       AX, BX
    6161;
    6262; NOTE: We can't use the menu structure in here, as we are falling through
    63 ; through from BootMenu_DisplayAndReturnDriveInDLRomBootClearCF when the
     63; from BootMenu_DisplayAndReturnDriveInDLRomBootClearCF when the
    6464; menu structure has already been destroyed.
    6565;--------------------------------------------------------------------
     
    7373    sub     dl, al                          ; Remove floppy drives from index
    7474    call    RamVars_GetHardDiskCountFromBDAtoAX
    75     or      al, 80h                         ; Or 80h into AL before the sub             
     75    or      al, 80h                         ; Or 80h into AL before the sub
    7676    cmp     dl, al                          ; Set CF if hard disk
    7777                                            ; Clear CF if last item, beyond hard disk list, which indicates ROM boot
  • trunk/XTIDE_Universal_BIOS/Src/Menus/DriveXlate.asm

    r493 r505  
    33
    44;
    5 ; XTIDE Universal BIOS and Associated Tools 
     5; XTIDE Universal BIOS and Associated Tools
    66; Copyright (C) 2009-2010 by Tomi Tilli, 2011-2012 by XTIDE Universal BIOS Team.
    77;
     
    1010; the Free Software Foundation; either version 2 of the License, or
    1111; (at your option) any later version.
    12 ; 
     12;
    1313; This program is distributed in the hope that it will be useful,
    1414; but WITHOUT ANY WARRANTY; without even the implied warranty of
    1515; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    16 ; GNU General Public License for more details.     
     16; GNU General Public License for more details.
    1717; Visit http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
    18 ;       
     18;
    1919
    2020; Section containing code
     
    4848%if HotkeyBar_FallThroughTo_DriveXlate_ConvertDriveLetterInDLtoDriveNumber <> DriveXlate_ConvertDriveLetterInDLtoDriveNumber
    4949    %error "DriveXlate_ConvertDriveLetterInDLtoDriveNumber must be at the top of DriveXlate.asm, and that file must immediately follow HotKeys.asm"
    50 %endif     
    5150%endif
    52        
     51%endif
     52
    5353;--------------------------------------------------------------------
    5454; DriveXlate_ConvertDriveNumberFromDLtoDriveLetter
     
    6464;--------------------------------------------------------------------
    6565DriveXlate_ConvertDriveNumberFromDLtoDriveLetter:
    66     test    dl, dl
    67     jns     SHORT .GetDefaultFloppyDrive
     66    xor     dl, 80h
     67    js      SHORT .GetDefaultFloppyDrive
    6868
    6969    ; Store default hard drive to boot from
    7070    call    DriveXlate_GetLetterForFirstHardDriveToAX
    71     sub     dl, 80h
    7271    add     dl, al
    7372    stc
     
    7574
    7675.GetDefaultFloppyDrive:
    77     add     dl, DEFAULT_FLOPPY_DRIVE_LETTER     ; Clears CF
     76    sub     dl, 80h - DEFAULT_FLOPPY_DRIVE_LETTER   ; Clears CF
    7877    ret
    7978
     
    9695    MAX_U   al, DEFAULT_HARD_DRIVE_LETTER
    9796    ret
    98                
     97
    9998
    10099;--------------------------------------------------------------------
     
    168167    mov     al, dl              ; Store floppy translation
    169168    SKIP2B  di
    170 .SetHardDriveToSwap:   
     169.SetHardDriveToSwap:
    171170    mov     ah, dl              ; Store HD translation
    172171    mov     WORD [RAMVARS.xlateVars+XLATEVARS.wFDandHDswap], ax
  • trunk/XTIDE_Universal_BIOS/Src/Menus/HotkeyBar.asm

    r500 r505  
    3434    call    HotkeyBar_ScanHotkeysFromKeyBufferAndStoreToBootvars
    3535    ; Fall to HotkeyBar_DrawToTopOfScreen
    36        
    37        
     36
     37
    3838;--------------------------------------------------------------------
    3939; HotkeyBar_DrawToTopOfScreen
     
    127127    call    FormatFunctionHotkeyString
    128128%endif
    129     ; Fall to .PrintRomBootHotkey       
     129    ; Fall to .PrintRomBootHotkey
    130130
    131131;--------------------------------------------------------------------
     
    169169;--------------------------------------------------------------------
    170170HotkeyBar_ClearRestOfTopRow:
    171     CALL_DISPLAY_LIBRARY    GetColumnsToALandRowsToAH
     171    CALL_DISPLAY_LIBRARY GetColumnsToALandRowsToAH
    172172    eMOVZX  cx, al
    173     CALL_DISPLAY_LIBRARY    GetSoftwareCoordinatesToAX
     173    CALL_DISPLAY_LIBRARY GetSoftwareCoordinatesToAX
    174174    sub     cl, al
    175175    mov     al, ' '
    176     CALL_DISPLAY_LIBRARY    PrintRepeatedCharacterFromALwithCountInCX
    177     ret
     176    JMP_DISPLAY_LIBRARY PrintRepeatedCharacterFromALwithCountInCX
    178177
    179178
     
    216215
    217216    mov     si, ATTRIBUTE_CHARS.cHurryTimeout       ; Selected hotkey
    218     jz      SHORT GetDescriptionAttributeToDX       ; From compare with bScancode above
     217    je      SHORT GetDescriptionAttributeToDX       ; From compare with bScancode above
    219218
    220219GetNonSelectedHotkeyDescriptionAttributeToDX:
     
    226225    call    MenuAttribute_GetToAXfromTypeInSI
    227226    xchg    dx, ax                  ; DX = Description attribute
    228     ;;  fall through to PushHotkeyParamsAndFormat 
     227    ;;  fall through to PushHotkeyParamsAndFormat
    229228
    230229
     
    232231
    233232    mov     dx, (COLOR_ATTRIBUTE(COLOR_YELLOW, COLOR_CYAN) << 8) | MONO_REVERSE_BLINK
    234     jz      SHORT SelectAttributeFromDHorDLbasedOnVideoMode         ; From compare with bScancode above
     233    je      SHORT SelectAttributeFromDHorDLbasedOnVideoMode     ; From compare with bScancode above
    235234
    236235GetNonSelectedHotkeyDescriptionAttributeToDX:
     
    245244    mov     dl, dh
    246245.AttributeLoadedToDL:
    247     ;;  fall through to PushHotkeyParamsAndFormat       
     246    ;;  fall through to PushHotkeyParamsAndFormat
    248247
    249248%endif ; MODULE_BOOT_MENU
     
    277276    push    di              ; Description string
    278277    push    cx              ; Description string parameter
    279        
     278
    280279    push    si              ; Key attribute for last space
    281280
     
    308307;--------------------------------------------------------------------
    309308HotkeyBar_RestoreCursorCoordinatesFromAX:
    310     CALL_DISPLAY_LIBRARY    SetCursorCoordinatesFromAX
    311     ret
     309    JMP_DISPLAY_LIBRARY SetCursorCoordinatesFromAX
    312310
    313311
     
    325323HotkeyBar_StoreHotkeyToBootvarsForDriveLetterInDL:
    326324    eMOVZX  ax, dl
    327     xor     al, 32  ; Upper case drive letter to lower case keystroke
     325    or      al, 32  ; Upper case drive letter to lower case keystroke
    328326    jmp     SHORT HotkeyBar_StoreHotkeyToBootvarsIfValidKeystrokeInAX
    329327
     
    364362    ; All scancodes are saved, even if it wasn't a drive letter,
    365363    ; which also covers our function key case.  Invalid function keys
    366     ; will not do anything (won't be printed, won't be accepted as input)       
     364    ; will not do anything (won't be printed, won't be accepted as input)
    367365    mov     [es:di], ah
    368        
     366
    369367    ; Drive letter hotkeys remaining, allow 'a' to 'z'
    370368    call    Char_IsLowerCaseLetterInAL
    371369    jnc     SHORT .KeystrokeIsNotValidDriveLetter
    372     xor     al, 32                  ; We want to print upper case letters
     370    and     al, ~32                 ; We want to print upper case letters
    373371
    374372    ; Clear HD First flag to assume Floppy Drive hotkey
     
    377375
    378376    ; Determine if Floppy or Hard Drive hotkey
    379     eMOVZX  cx, al                  ; Clear CH to clear scancode
     377    xchg    cx, ax
    380378    call    DriveXlate_GetLetterForFirstHardDriveToAX
    381379    cmp     cl, al
     
    386384
    387385.StoreDriveLetter:
    388     sbb     di, BYTE 1          ; Sub CF if Floppy Drive
     386    sbb     di, BYTE 1              ; Sub CF if Floppy Drive
    389387    xchg    ax, cx
    390     mov     [es:di], al         ; AH = zero to clear function hotkey
    391 
    392 .KeystrokeIsNotValidDriveLetter:       
     388    mov     [es:di], al
     389
     390.KeystrokeIsNotValidDriveLetter:
    393391NoHotkeyToProcess:
    394392    mov     al, [es:BOOTVARS.hotkeyVars+HOTKEYVARS.bScancode]
     
    407405HotkeyBar_GetBootDriveNumbersToDX:
    408406    mov     dx, [es:BOOTVARS.hotkeyVars+HOTKEYVARS.wFddAndHddLetters]
    409     test    BYTE [es:BOOTVARS.hotkeyVars+HOTKEYVARS.bFlags], FLG_HOTKEY_HD_FIRST       
     407    test    BYTE [es:BOOTVARS.hotkeyVars+HOTKEYVARS.bFlags], FLG_HOTKEY_HD_FIRST
    410408    jnz     .noflip
    411409    xchg    dl, dh
    412 .noflip:   
     410.noflip:
    413411    call    DriveXlate_ConvertDriveLetterInDLtoDriveNumber
    414412    xchg    dl, dh
    415     ; Fall to HotkeyBar_FallThroughTo_DriveXlate_ConvertDriveLetterInDLtoDriveNumber       
    416        
    417 HotkeyBar_FallThroughTo_DriveXlate_ConvertDriveLetterInDLtoDriveNumber:     
    418 
     413    ; Fall to HotkeyBar_FallThroughTo_DriveXlate_ConvertDriveLetterInDLtoDriveNumber
     414
     415HotkeyBar_FallThroughTo_DriveXlate_ConvertDriveLetterInDLtoDriveNumber:
     416
  • trunk/XTIDE_Universal_BIOS/Src/Strings.asm

    r492 r505  
    8686g_szRomBootDash:        db  " -  "                  ; String fall through to g_szRomBoot
    8787%endif
    88 %ifdef MODULE_HOTKEYS OR MODULE_BOOT_MENU       
    89 g_szRomBoot:            db  "Rom%cBoot", NULL       ; "RomBoot" or "Rom Boot"
    90 %endif
    91        
     88%ifdef MODULE_HOTKEYS OR MODULE_BOOT_MENU
     89g_szRomBoot:            db  "Rom%cBoot",NULL        ; "RomBoot" or "Rom Boot"
     90%endif
     91
    9292
    9393%ifdef MODULE_BOOT_MENU
  • trunk/XTIDE_Universal_BIOS/Src/StringsCompressed.asm

    r492 r505  
    177177
    178178%endif
    179 %ifdef MODULE_HOTKEYS OR MODULE_BOOT_MENU       
    180 g_szRomBoot:            ; db    "Rom%cBoot", NULL       ; "RomBoot" or "Rom Boot"
     179%ifdef MODULE_HOTKEYS OR MODULE_BOOT_MENU
     180g_szRomBoot:            ; db    "Rom%cBoot",NULL        ; "RomBoot" or "Rom Boot"
    181181                        ; db     52h,  6fh,  6dh,  25h,  63h,  42h,  6fh,  6fh,  74h,  00h    ; uncompressed
    182182                          db     58h,  75h,  73h,  3ch,  48h,  75h,  75h, 0bah                ; compressed
  • trunk/XTIDE_Universal_BIOS/Src/VariablesAndDPTs/RamVars.asm

    r493 r505  
    33
    44;
    5 ; XTIDE Universal BIOS and Associated Tools 
     5; XTIDE Universal BIOS and Associated Tools
    66; Copyright (C) 2009-2010 by Tomi Tilli, 2011-2012 by XTIDE Universal BIOS Team.
    77;
     
    1010; the Free Software Foundation; either version 2 of the License, or
    1111; (at your option) any later version.
    12 ; 
     12;
    1313; This program is distributed in the hope that it will be useful,
    1414; but WITHOUT ANY WARRANTY; without even the implied warranty of
    1515; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    16 ; GNU General Public License for more details.     
     16; GNU General Public License for more details.
    1717; Visit http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
    18 ;       
     18;
    1919
    2020; Section containing code
     
    9898;; when entering the boot menu and also before transferring control at boot time and
    9999;; for ROM boots (in int19h.asm).
    100        
     100
    101101    pop     es
    102102    ret
     
    158158    call    RamVars_GetCountOfKnownDrivesToAX
    159159    push    ds
    160     LOAD_BDA_SEGMENT_TO ds, cx
     160    LOAD_BDA_SEGMENT_TO ds, bx
    161161    mov     bl, [BDA.bHDCount]
    162162    MAX_U   al, bl
  • trunk/XTIDE_Universal_BIOS/makefile

    r493 r505  
    1616# Following modules can be included or excluded:                                                   #
    1717# MODULE_8BIT_IDE             Support for 8-BIT IDE cards like XTIDE                               #
    18 # MODULE_8BIT_IDE_ADVANCED    Support for memory mapped and DMA based cards like JRIDE and XTCF    #
     18# MODULE_8BIT_IDE_ADVANCED    Support for memory mapped and DMA based cards like JRIDE and XTCF    #
    1919# MODULE_ADVANCED_ATA         Native support for some VLB IDE controllers                          #
    2020# MODULE_BOOT_MENU            Boot Menu for selection of drive to boot from                        #
     
    101101DEFINES_XT = $(DEFINES_COMMON) ELIMINATE_CGA_SNOW MODULE_8BIT_IDE MODULE_SERIAL MODULE_SERIAL_FLOPPY
    102102DEFINES_XTPLUS = $(DEFINES_COMMON) $(DEFINES_XT) USE_186
    103 DEFINES_AT = $(DEFINES_COMMON) USE_AT USE_286 USE_UNDOC_INTEL RELOCATE_INT13H_STACK MODULE_IRQ MODULE_SERIAL MODULE_SERIAL_FLOPPY MODULE_ADVANCED_ATA 
     103DEFINES_AT = $(DEFINES_COMMON) USE_AT USE_286 USE_UNDOC_INTEL RELOCATE_INT13H_STACK MODULE_IRQ MODULE_SERIAL MODULE_SERIAL_FLOPPY MODULE_ADVANCED_ATA
    104104
    105105DEFINES_XT_LARGE = $(DEFINES_XT) $(DEFINES_COMMON_LARGE)
  • trunk/XTIDE_Universal_BIOS_Configurator_v2/Src/AutoConfigure.asm

    r504 r505  
    114114
    115115    ; Point to next IDEVARS
     116    add     si, IDEVARS_size
    116117    cmp     si, ROMVARS.ideVars3
    117     jae     SHORT .AllPortsAlreadyDetected
    118     add     si, IDEVARS_size
    119     jmp     SHORT .DetectFromNextPort
     118    jbe     SHORT .DetectFromNextPort
    120119.AllPortsAlreadyDetected:
    121120    ret
  • trunk/XTIDE_Universal_BIOS_Configurator_v2/Src/IdeAutodetect.asm

    r504 r505  
    2222
    2323;--------------------------------------------------------------------
    24 ; IdeAutodetect_DetectIdeDeviceFromPortDXAndReturnControlBlockInCX
     24; IdeAutodetect_DetectIdeDeviceFromPortDXAndReturnControlBlockInSI
    2525;   Parameters:
    2626;       DX:     IDE Base Port or segment address (Command Block)
     
    193193    jne     SHORT .InvalidStatusRegister
    194194
    195     ; Bytes were the same but it is possible they were both FFh, for 
     195    ; Bytes were the same but it is possible they were both FFh, for
    196196    ; example. We must make sure bits are what is expected from valid
    197197    ; IDE Status Register. So far all drives I've tested return 50h
  • trunk/XTIDE_Universal_BIOS_Configurator_v2/Src/Main.asm

    r497 r505  
    33
    44;
    5 ; XTIDE Universal BIOS and Associated Tools 
     5; XTIDE Universal BIOS and Associated Tools
    66; Copyright (C) 2009-2010 by Tomi Tilli, 2011-2012 by XTIDE Universal BIOS Team.
    77;
     
    1010; the Free Software Foundation; either version 2 of the License, or
    1111; (at your option) any later version.
    12 ; 
     12;
    1313; This program is distributed in the hope that it will be useful,
    1414; but WITHOUT ANY WARRANTY; without even the implied warranty of
    1515; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    16 ; GNU General Public License for more details.     
     16; GNU General Public License for more details.
    1717; Visit http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
    18 ;       
     18;
    1919
    2020; Include .inc files
    21        
     21
    2222%define INCLUDE_MENU_DIALOGS
    2323%define INCLUDE_SERIAL_LIBRARY
    24        
     24
    2525%include "AssemblyLibrary.inc"  ; Assembly Library. Must be included first!
    2626%include "Romvars.inc"          ; XTIDE Universal BIOS variables
     
    103103    CALL_DISPLAY_LIBRARY InitializeDisplayContext   ; Reset cursor etc
    104104    xchg    ax, dx
    105     CALL_DISPLAY_LIBRARY ClearScreenWithCharInALandAttrInAH
    106     ret
     105    JMP_DISPLAY_LIBRARY ClearScreenWithCharInALandAttrInAH
    107106
    108107
  • trunk/XTIDE_Universal_BIOS_Configurator_v2/Src/MenuEvents.asm

    r376 r505  
    33
    44;
    5 ; XTIDE Universal BIOS and Associated Tools 
     5; XTIDE Universal BIOS and Associated Tools
    66; Copyright (C) 2009-2010 by Tomi Tilli, 2011-2012 by XTIDE Universal BIOS Team.
    77;
     
    1010; the Free Software Foundation; either version 2 of the License, or
    1111; (at your option) any later version.
    12 ; 
     12;
    1313; This program is distributed in the hope that it will be useful,
    1414; but WITHOUT ANY WARRANTY; without even the implied warranty of
    1515; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    16 ; GNU General Public License for more details.     
     16; GNU General Public License for more details.
    1717; Visit http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
    18 ;       
     18;
    1919
    2020; Section containing code
     
    204204    call    .PrintStatusOfUnsavedChanges
    205205    stc
     206.ReturnSinceNothingToPrint:
    206207    ret
    207208
     
    209210.PrintProgramName:
    210211    mov     si, g_szProgramTitle
    211     CALL_DISPLAY_LIBRARY PrintNullTerminatedStringFromCSSI
    212     ret
     212    JMP_DISPLAY_LIBRARY PrintNullTerminatedStringFromCSSI
    213213
    214214ALIGN JUMP_ALIGN
     
    223223.PrintNothingLoaded:
    224224    mov     si, g_szBiosIsNotLoaded
    225     CALL_DISPLAY_LIBRARY PrintNullTerminatedStringFromCSSI
    226     ret
     225    JMP_DISPLAY_LIBRARY PrintNullTerminatedStringFromCSSI
    227226
    228227ALIGN JUMP_ALIGN
     
    248247    mov     bx, es
    249248    lea     si, [di+ROMVARS.szVersion]
    250     CALL_DISPLAY_LIBRARY PrintNullTerminatedStringFromBXSI
    251     ret
     249    JMP_DISPLAY_LIBRARY PrintNullTerminatedStringFromBXSI
    252250
    253251ALIGN JUMP_ALIGN
    254252.PrintUnidentifiedType:
    255253    mov     si, g_szUnidentified
    256     CALL_DISPLAY_LIBRARY PrintNullTerminatedStringFromCSSI
    257     ret
     254    JMP_DISPLAY_LIBRARY PrintNullTerminatedStringFromCSSI
    258255
    259256ALIGN JUMP_ALIGN
     
    262259    jz      SHORT .ReturnSinceNothingToPrint
    263260    mov     si, g_szUnsaved
    264     CALL_DISPLAY_LIBRARY PrintNullTerminatedStringFromCSSI
    265 .ReturnSinceNothingToPrint:
    266     ret
     261    JMP_DISPLAY_LIBRARY PrintNullTerminatedStringFromCSSI
Note: See TracChangeset for help on using the changeset viewer.