source: xtideuniversalbios/trunk/XTIDE_Universal_BIOS/Src/Initialization/DetectPrint.asm @ 189

Last change on this file since 189 was 189, checked in by gregli@…, 12 years ago

Additional space optimizations, including making IdleProcessing an option in MENUEVENT. Note the fall-through from one file to another, but that there are assembler checks to ensure the proper linkage is maintained. First version of StringsCompress.pl, a perl script to make StringsCompressed.asm from Strings.asm.

File size: 2.2 KB
RevLine 
[88]1; Project name  :   XTIDE Universal BIOS
[3]2; Description   :   Functions for printing drive detection strings.
3
4; Section containing code
5SECTION .text
6
7;--------------------------------------------------------------------
8; Prints BIOS name and segment address where it is found.
9;
10; DetectPrint_RomFoundAtSegment
11;   Parameters:
12;       Nothing
13;   Returns:
14;       Nothing
15;   Corrupts registers:
[120]16;       AX, SI, DI
[3]17;--------------------------------------------------------------------
18DetectPrint_RomFoundAtSegment:
[88]19    push    bp
[97]20    mov     bp, sp
[3]21    mov     si, g_szRomAt
[88]22    ePUSH_T ax, ROMVARS.szTitle         ; Bios title string
23    push    cs                          ; BIOS segment
24    jmp     BootMenuPrint_FormatCSSIfromParamsInSSBP
[3]25
26
27;--------------------------------------------------------------------
[97]28; DetectPrint_StartDetectWithMasterOrSlaveStringInAXandIdeVarsInCSBP
[3]29;   Parameters:
[88]30;       CS:AX:  Ptr to "Master" or "Slave" string
[3]31;       CS:BP:  Ptr to IDEVARS
[189]32;       SI:     Ptr to template string 
[3]33;   Returns:
34;       Nothing
35;   Corrupts registers:
[120]36;       AX, SI, DI
[3]37;--------------------------------------------------------------------
[97]38DetectPrint_StartDetectWithMasterOrSlaveStringInAXandIdeVarsInCSBP:
[88]39    push    bp
[189]40    mov     di, [cs:bp+IDEVARS.wPort]
[88]41    mov     bp, sp
42    push    ax                          ; Push "Master" or "Slave"
[189]43    push    di                          ; Push port number
[88]44    jmp     BootMenuPrint_FormatCSSIfromParamsInSSBP
[3]45
46
47;--------------------------------------------------------------------
[98]48; DetectPrint_DriveNameFromBootnfoInESBX
[3]49;   Parameters:
50;       ES:BX:  Ptr to BOOTNFO (if drive found)
51;   Returns:
52;       Nothing
53;   Corrupts registers:
[88]54;       AX, SI
[3]55;--------------------------------------------------------------------
[98]56DetectPrint_DriveNameFromBootnfoInESBX:
[88]57    push    di
58    push    bx
59
[3]60    lea     si, [bx+BOOTNFO.szDrvName]
[88]61    mov     bx, es
62    CALL_DISPLAY_LIBRARY PrintNullTerminatedStringFromBXSI
63    CALL_DISPLAY_LIBRARY PrintNewlineCharacters
64
65    pop     bx
66    pop     di
67    ret
68
[98]69
70;--------------------------------------------------------------------
71; DetectPrint_DriveNotFound
72;   Parameters:
73;       Nothing
74;   Returns:
75;       Nothing
76;   Corrupts registers:
77;       AX, SI
78;--------------------------------------------------------------------
79DetectPrint_DriveNotFound:
[3]80    mov     si, g_szNotFound
[98]81    jmp     BootMenuPrint_NullTerminatedStringFromCSSIandSetCF
Note: See TracBrowser for help on using the repository browser.