source: xtideuniversalbios/trunk/Assembly_Library/Inc/Debug.inc @ 510

Last change on this file since 510 was 142, checked in by aitotat, 13 years ago

Changes to Assembly Library:

  • Size_GetSizeToAXAndCharToDLfromBXDXAXwithMagnitudeInCX now returns right value on 8086/8088 build.
  • Debug macros again work on XTIDE Universal BIOS.
File size: 2.3 KB
Line 
1; Project name  :   Assembly Library
2; Description   :   Debugging macros.
3%ifndef DEBUG_INC
4%define DEBUG_INC
5
6
7;--------------------------------------------------------------------
8; DISPLAY_DEBUG_WORD_AND_WAIT_ANY_KEY
9;   Parameters:
10;       %1:     Debug word
11;       %2:     Numeric base (2, 10, 16)
12;   Returns:
13;       Nothing
14;   Corrupts registers:
15;       Nothing
16;--------------------------------------------------------------------
17%macro DISPLAY_DEBUG_WORD_AND_WAIT_ANY_KEY 2
18    pushf
19    push    di
20    push    bx
21    push    ax
22
23    mov     ax, %1
24    mov     bx, %2
25    CALL_DISPLAY_LIBRARY PrintWordFromAXwithBaseInBX
26%ifndef EXCLUDE_FROM_XTIDE_UNIVERSAL_BIOS
27    call    Keyboard_RemoveAllKeystrokesFromBuffer
28%endif
29    call    Keyboard_GetKeystrokeToAXandWaitIfNecessary
30
31    pop     ax
32    pop     bx
33    pop     di
34    popf
35%endmacro
36
37
38;--------------------------------------------------------------------
39; DISPLAY_DEBUG_CHARACTER_AND_WAIT_ANY_KEY
40;   Parameters:
41;       %1:     Character to print
42;   Returns:
43;       Nothing
44;   Corrupts registers:
45;       Nothing
46;--------------------------------------------------------------------
47%macro DISPLAY_DEBUG_CHARACTER_AND_WAIT_ANY_KEY 1
48    pushf
49    push    di
50    push    ax
51
52    mov     al, %1
53    CALL_DISPLAY_LIBRARY PrintCharacterFromAL
54%ifndef EXCLUDE_FROM_XTIDE_UNIVERSAL_BIOS
55    call    Keyboard_RemoveAllKeystrokesFromBuffer
56%endif
57    call    Keyboard_GetKeystrokeToAXandWaitIfNecessary
58
59    pop     ax
60    pop     di
61    popf
62%endmacro
63
64
65;--------------------------------------------------------------------
66; DISPLAY_DEBUG_CHARACTER
67;   Parameters:
68;       %1:     Character to print
69;   Returns:
70;       Nothing
71;   Corrupts registers:
72;       Nothing
73;--------------------------------------------------------------------
74%macro DISPLAY_DEBUG_CHARACTER 1
75    pushf
76    push    di
77    push    ax
78    mov     al, %1
79    CALL_DISPLAY_LIBRARY PrintCharacterFromAL
80    pop     ax
81    pop     di
82    popf
83%endmacro
84
85
86;--------------------------------------------------------------------
87; WAIT_ANY_KEY_TO_CONTINUE
88;   Parameters:
89;       Nothing
90;   Returns:
91;       Nothing
92;   Corrupts registers:
93;       Nothing
94;--------------------------------------------------------------------
95%macro WAIT_ANY_KEY_TO_CONTINUE 0
96    push    ax
97%ifndef EXCLUDE_FROM_XTIDE_UNIVERSAL_BIOS
98    call    Keyboard_RemoveAllKeystrokesFromBuffer
99%endif
100    call    Keyboard_GetKeystrokeToAXandWaitIfNecessary
101    pop     ax
102%endmacro
103
104
105%endif ; DEBUG_INC
Note: See TracBrowser for help on using the repository browser.