source: xtideuniversalbios/trunk/Assembly_Library/Src/LibraryTests.asm @ 41

Last change on this file since 41 was 41, checked in by aitotat, 14 years ago

Initial commit for Assembly Library.

File size: 15.4 KB
Line 
1; File name     :   LibraryTests.asm
2; Project name  :   Assembly Library
3; Created date  :   27.6.2010
4; Last update   :   15.9.2010
5; Author        :   Tomi Tilli
6; Description   :   Tests for Assembly Library.
7;                   This file should not be included when using the library on
8;                   some other project.     
9
10; Include .inc files
11%define INCLUDE_MENU_DIALOGS
12%include "AssemblyLibrary.inc"  ; Assembly Library. Must be included first!
13
14
15; Section containing code
16SECTION .text
17
18; Program first instruction.
19ORG 100h                        ; Code starts at offset 100h (DOS .COM)
20Start:
21    jmp     LibraryTests_Start
22
23; Include library sources
24%include "AssemblyLibrary.asm"
25
26
27;--------------------------------------------------------------------
28; Program start
29;--------------------------------------------------------------------
30ALIGN JUMP_ALIGN
31LibraryTests_Start: 
32    CALL_DISPLAY_LIBRARY InitializeDisplayContext
33    CALL_DISPLAY_LIBRARY ClearScreen
34
35    call    LibraryTests_ForDisplayLibrary
36    ;call   LibraryTests_ForKeyboardLibrary
37    call    LibraryTests_ForMenuLibrary
38
39    ; Exit to DOS
40    ;mov        ax, CURSOR_XY(1, 1)
41    ;CALL_DISPLAY_LIBRARY SetCursorCoordinatesFromAX
42    CALL_DISPLAY_LIBRARY SynchronizeDisplayContextToHardware
43    mov     ax, 4C00h           ; Exit to DOS
44    int     21h
45
46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
47ALIGN JUMP_ALIGN
48LibraryTests_ForMenuLibrary:
49    mov     [cs:g_dialogInputOutput+DIALOG_INPUT.fszTitle+2], cs
50    mov     [cs:g_dialogInputOutput+DIALOG_INPUT.fszItems+2], cs
51    mov     [cs:g_dialogInputOutput+DIALOG_INPUT.fszInfo+2], cs
52
53    mov     bx, .MenuEventHandler
54    call    MenuInit_DisplayMenuWithHandlerInBXandUserDataInDXAX
55    ret
56
57ALIGN JUMP_ALIGN
58.MenuEventHandler:
59    jmp     [cs:bx+.rgfnMenuEvents]
60.NotHandled:
61    clc     ; Not handled so clear
62    ret
63
64ALIGN JUMP_ALIGN
65.InitializeMenu:
66    mov     WORD [si+MENUINIT.wTimeoutTicks], 10000 / 55    ; 10 seconds
67    mov     WORD [si+MENUINIT.wItems], 51
68    mov     BYTE [si+MENUINIT.bWidth], 40
69    mov     BYTE [si+MENUINIT.bHeight], 20
70    mov     BYTE [si+MENUINIT.bTitleLines], TEST_MENU_TITLE_LINES
71    mov     BYTE [si+MENUINIT.bInfoLines], TEST_MENU_INFO_LINES
72    mov     ax, 1
73    CALL_MENU_LIBRARY HighlightItemFromAX
74    stc
75    ret
76
77ALIGN JUMP_ALIGN
78.RefreshTitle:
79    mov     si, .szMenuTitle
80    CALL_DISPLAY_LIBRARY PrintNullTerminatedStringFromCSSI
81    stc
82    ret
83.szMenuTitle:
84    db      "First line for menu title.",CR,LF,
85    db      "This is the second line.",NULL
86
87ALIGN JUMP_ALIGN
88.RefreshInformation:
89    push    bp
90    mov     bp, sp
91    mov     si, .szInfoTitle
92    CALL_DISPLAY_LIBRARY FormatNullTerminatedStringFromCSSI
93    pop     bp
94    stc
95    ret
96.szInfoTitle:
97    db      "Information line 1,",CR,LF,
98    db      "Information line 2,",CR,LF,
99    db      "This is the last information line.",NULL
100
101ALIGN JUMP_ALIGN
102.RefreshItemFromCX:
103    cmp     cx, TEST_MENU_VALID_ITEMS
104    jb      SHORT .PrintKnownItem
105
106    push    bp
107    mov     si, .szItem
108    mov     bp, sp
109    push    cx              ; Item index
110    CALL_DISPLAY_LIBRARY FormatNullTerminatedStringFromCSSI
111    pop     bp
112    stc
113    ret
114.szItem:
115    db  "This is item %d.",NULL
116.PrintKnownItem:
117    mov     si, cx
118    shl     si, 1
119    mov     si, [cs:si+.rgszItems]
120    CALL_DISPLAY_LIBRARY PrintNullTerminatedStringFromCSSI
121    stc
122    ret
123
124ALIGN JUMP_ALIGN
125.ItemSelectedFromCX:
126    push    cs
127    pop     ds
128    cmp     cx, TEST_MENU_VALID_ITEMS
129    jae     SHORT .ReturnWithoutHandling
130    mov     bx, cx
131    shl     bx, 1
132    jmp     [bx+.rgfnSelectionHandler]
133.ReturnWithoutHandling:
134    stc
135    ret
136
137ALIGN WORD_ALIGN
138.rgfnSelectionHandler:
139    dw      .ExitMenu
140    dw      .ToggleTitle
141    dw      .ToggleInfo
142    dw      .ShowMessageDialogWithUnformattedText
143    dw      .AskWordFromUser
144    dw      .AskStringFromUser
145    dw      .AskSelectionFromUser
146    dw      .AskFileFromUser
147    dw      .TestProgressBar
148
149
150ALIGN JUMP_ALIGN
151.ExitMenu:
152    CALL_MENU_LIBRARY Close
153    stc
154    ret
155
156ALIGN JUMP_ALIGN
157.ToggleTitle:
158    mov     al, [bp+MENUINIT.bTitleLines]
159    xor     al, TEST_MENU_TITLE_LINES
160    CALL_MENU_LIBRARY SetTitleHeightFromAL
161    jmp     SHORT .RefreshMenuWindow
162ALIGN JUMP_ALIGN
163.ToggleInfo:
164    mov     al, [bp+MENUINIT.bInfoLines]
165    xor     al, TEST_MENU_INFO_LINES
166    CALL_MENU_LIBRARY SetInformationHeightFromAL
167.RefreshMenuWindow:
168    CALL_MENU_LIBRARY RestartTimeout
169    CALL_MENU_LIBRARY RefreshWindow
170    stc
171    ret
172
173ALIGN JUMP_ALIGN
174.ShowMessageDialogWithUnformattedText:
175    mov     di, g_szVeryLongString
176    jmp     .ShowDialogWithStringInCSDI
177
178ALIGN JUMP_ALIGN
179.AskWordFromUser:
180    mov     si, g_dialogInputOutput
181    mov     BYTE [si+WORD_DIALOG_IO.bNumericBase], 10
182    mov     WORD [si+WORD_DIALOG_IO.wMin], 10
183    mov     WORD [si+WORD_DIALOG_IO.wMax], 20
184    CALL_MENU_LIBRARY GetWordWithIoInDSSI
185
186    mov     ax, [si+WORD_DIALOG_IO.wReturnWord]
187    mov     di, g_szBuffer
188    call    .FormatWordFromAXtoStringBufferInCSDI
189    call    .ShowDialogWithStringInCSDI
190    stc
191    ret
192
193ALIGN JUMP_ALIGN
194.AskStringFromUser:
195    mov     si, g_dialogInputOutput
196    mov     WORD [si+STRING_DIALOG_IO.fnCharFilter], NULL
197    mov     WORD [si+STRING_DIALOG_IO.wBufferSize], 17
198    mov     WORD [si+STRING_DIALOG_IO.fpReturnBuffer], g_szBuffer
199    mov     [si+STRING_DIALOG_IO.fpReturnBuffer+2], cs
200    CALL_MENU_LIBRARY GetStringWithIoInDSSI
201
202    mov     di, g_szBuffer
203    call    .ShowDialogWithStringInCSDI
204    stc
205    ret
206
207ALIGN JUMP_ALIGN
208.AskSelectionFromUser:
209    mov     si, g_dialogInputOutput
210    mov     WORD [si+DIALOG_INPUT.fszItems], .szSelections
211    CALL_MENU_LIBRARY GetSelectionToAXwithInputInDSSI
212
213    mov     di, g_szBuffer
214    call    .FormatWordFromAXtoStringBufferInCSDI
215    call    .ShowDialogWithStringInCSDI
216    stc
217    ret
218.szSelections:
219    db      "Cancel",LF
220    db      "Yes",LF
221    db      "No",NULL
222
223ALIGN JUMP_ALIGN
224.AskFileFromUser:
225    mov     si, g_dialogInputOutput
226    mov     WORD [si+DIALOG_INPUT.fszItems], g_szBuffer
227    mov     BYTE [si+FILE_DIALOG_IO.bDialogFlags], FLG_FILEDIALOG_DIRECTORY | FLG_FILEDIALOG_NEW | FLG_FILEDIALOG_DRIVES
228    mov     BYTE [si+FILE_DIALOG_IO.bFileAttributes], FLG_FILEATTR_DIRECTORY | FLG_FILEATTR_ARCHIVE
229    mov     WORD [si+FILE_DIALOG_IO.fpFileFilterString], .szAllFiles
230    mov     [si+FILE_DIALOG_IO.fpFileFilterString+2], cs
231    mov     [si+STRING_DIALOG_IO.fpReturnBuffer+2], cs
232    CALL_MENU_LIBRARY GetFileNameWithIoInDSSI
233    cmp     BYTE [g_dialogInputOutput+FILE_DIALOG_IO.bUserCancellation], TRUE
234    je      SHORT .FileSelectionCancelled
235
236    mov     di, g_dialogInputOutput + FILE_DIALOG_IO.szFile
237    call    .ShowDialogWithStringInCSDI
238.FileSelectionCancelled:
239    stc
240    ret
241.szAllFiles:
242    db      "*.*",NULL
243
244
245ALIGN JUMP_ALIGN
246.FormatWordFromAXtoStringBufferInCSDI:
247    push    bp
248    push    di
249    mov     si, di
250    xchg    cx, ax
251    CALL_DISPLAY_LIBRARY PushDisplayContext
252
253    mov     bx, cs
254    mov     ax, si
255    CALL_DISPLAY_LIBRARY SetCharacterPointerFromBXAX
256    mov     ax, BUFFER_OUTPUT_WITH_CHAR_ONLY
257    CALL_DISPLAY_LIBRARY SetCharacterOutputFunctionFromAX
258    lea     ax, [si+STRING_BUFFER_SIZE]
259    CALL_DISPLAY_LIBRARY SetCharacterOutputParameterFromAX
260
261    mov     si, .szFormatWord
262    mov     bp, sp
263    push    cx
264    CALL_DISPLAY_LIBRARY FormatNullTerminatedStringFromCSSI
265    mov     al, NULL
266    CALL_DISPLAY_LIBRARY PrintCharacterFromAL   ; Terminate buffer with NULL
267
268    CALL_DISPLAY_LIBRARY PopDisplayContext
269    pop     di
270    pop     bp
271    ret
272.szFormatWord:
273    db      "Integer %d selected!",NULL
274
275
276ALIGN JUMP_ALIGN
277.ShowDialogWithStringInCSDI:
278    push    cs
279    pop     ds
280    mov     si, g_dialogInputOutput
281    mov     WORD [si+DIALOG_INPUT.fszItems], di
282    CALL_MENU_LIBRARY DisplayMessageWithInputInDSSI
283    stc
284    ret
285
286
287ALIGN JUMP_ALIGN
288.TestProgressBar:
289    push    cs
290    pop     ds
291    mov     si, g_dialogInputOutput
292    mov     WORD [si+PROGRESS_DIALOG_IO.wCurrentProgressValue], 0
293    mov     WORD [si+PROGRESS_DIALOG_IO.wMaxProgressValue], 500
294    mov     WORD [si+PROGRESS_DIALOG_IO.wMinProgressValue], 0
295    mov     WORD [si+PROGRESS_DIALOG_IO.fnTaskWithParamInDSSI], .ProgressTaskWithParamInDSSI
296    mov     ax, 500         ; Counter for progress task
297    CALL_MENU_LIBRARY StartProgressTaskWithIoInDSSIandParamInDXAX
298    stc
299    ret
300
301ALIGN JUMP_ALIGN
302.ProgressTaskWithParamInDSSI:
303    mov     ax, 50000                   ; 50 millisec delay
304    call    Delay_MicrosecondsFromAX
305    dec     si
306    CALL_MENU_LIBRARY SetUserDataFromDSSI
307    mov     ax, 500
308    sub     ax, si
309    push    si
310    CALL_MENU_LIBRARY SetProgressValueFromAX
311    pop     si
312    test    si, si
313    jnz     .ProgressTaskWithParamInDSSI
314    ret
315   
316   
317
318ALIGN WORD_ALIGN
319.rgfnMenuEvents:
320    dw      .InitializeMenu     ; .InitializeMenuinitToDSSI
321    dw      .NotHandled         ; .ExitMenu
322    dw      .NotHandled         ; .IdleProcessing
323    dw      .NotHandled         ; .ItemHighlightedFromCX
324    dw      .ItemSelectedFromCX ; .ItemSelectedFromCX
325    dw      .NotHandled         ; .KeyStrokeInDX
326    dw      .RefreshTitle       ; .RefreshTitle
327    dw      .RefreshInformation ; .RefreshInformation
328    dw      .RefreshItemFromCX  ; .RefreshItemFromCX
329
330.rgszItems:
331    dw      .szExitMenu
332    dw      .szToggleTitle
333    dw      .szToggleInfo
334    dw      .szShowMessage
335    dw      .szAskWord
336    dw      .szAskString
337    dw      .szAskSelection
338    dw      .szAskFile
339    dw      .szTestProgress
340.szExitMenu:    db  "Exit menu",NULL
341.szToggleTitle: db  "Toggle title",NULL
342.szToggleInfo:  db  "Toggle information",NULL
343.szShowMessage: db  "Display unformatted message",NULL
344.szAskWord:     db  "Input word",NULL
345.szAskString:   db  "Input string",NULL
346.szAskSelection:db  "Display selection dialog",NULL
347.szAskFile:     db  "Display file dialog",NULL
348.szTestProgress:db  "Display progress bar",NULL
349TEST_MENU_VALID_ITEMS           EQU     9
350TEST_MENU_TITLE_LINES           EQU     2
351TEST_MENU_INFO_LINES            EQU     3
352
353
354
355;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
356ALIGN JUMP_ALIGN
357LibraryTests_ForKeyboardLibrary:
358    mov     ax, CURSOR_XY(0, 6)
359    CALL_DISPLAY_LIBRARY SetCursorCoordinatesFromAX
360    call    ReadUnsignedDecimalInteger
361    call    ReadHexadecimalWord
362    ret
363
364
365ReadUnsignedDecimalInteger:
366    mov     si, .szEnterUnsignedWord
367    CALL_DISPLAY_LIBRARY PrintNullTerminatedStringFromCSSI
368    CALL_DISPLAY_LIBRARY SynchronizeDisplayContextToHardware    ; Move hardware cursor
369
370    mov     bx, 10          ; Numeric base
371    call    Keyboard_ReadUserInputtedWordWhilePrinting
372
373    mov     si, .szWordEntered
374    mov     bp, sp
375    push    ax
376    CALL_DISPLAY_LIBRARY FormatNullTerminatedStringFromCSSI
377    ret
378.szWordEntered:
379    db  ". Word entered: %u",LF,CR,NULL
380.szEnterUnsignedWord:
381    db  "Enter unsigned word: ",NULL
382
383
384ReadHexadecimalWord:
385    mov     si, .szEnterHexadecimalWord
386    CALL_DISPLAY_LIBRARY PrintNullTerminatedStringFromCSSI
387    CALL_DISPLAY_LIBRARY SynchronizeDisplayContextToHardware    ; Move hardware cursor
388
389    mov     bx, 16          ; Numeric base
390    call    Keyboard_ReadUserInputtedWordWhilePrinting
391
392    mov     si, .szWordEntered
393    mov     bp, sp
394    push    ax
395    CALL_DISPLAY_LIBRARY FormatNullTerminatedStringFromCSSI
396    ret
397.szWordEntered:
398    db  ". Word entered: %x",LF,CR,NULL
399.szEnterHexadecimalWord:
400    db  "Enter hexadecimal word: ",NULL
401
402
403
404;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
405ALIGN JUMP_ALIGN
406LibraryTests_ForDisplayLibrary:
407    CALL_DISPLAY_LIBRARY PushDisplayContext
408    call    PrintHorizontalRuler
409    call    PrintVerticalRuler
410
411    mov     ax, CURSOR_XY(0, 1)
412    CALL_DISPLAY_LIBRARY SetCursorCoordinatesFromAX
413    mov     al, COLOR_ATTRIBUTE(COLOR_BRIGHT_WHITE, COLOR_BLACK)
414    CALL_DISPLAY_LIBRARY SetCharacterAttributeFromAL
415    call    PrintFormattedStrings
416
417    CALL_DISPLAY_LIBRARY PopDisplayContext
418    ret
419
420
421PrintHorizontalRuler:
422    mov     ax, CURSOR_XY(0, 0)
423    CALL_DISPLAY_LIBRARY SetCursorCoordinatesFromAX
424    CALL_DISPLAY_LIBRARY GetColumnsToALandRowsToAH
425    eMOVZX  cx, al
426    mov     bx, 10<<8           ; Divider 10 to BH
427.ColumnNumberLoop:
428    eMOVZX  ax, bl              ; Column index to AX (0...79)
429    div     bh                  ; AH = 0...9, AL = attribute
430    mov     dx, ax
431    inc     ax                  ; Increment attribute for non-black foreground
432    CALL_DISPLAY_LIBRARY SetCharacterAttributeFromAL
433    xchg    ax, dx
434    mov     al, '0'
435    add     al, ah              ; AL = '0'...'9'
436    CALL_DISPLAY_LIBRARY PrintCharacterFromAL
437    inc     bx                  ; Increment column index
438    loop    .ColumnNumberLoop
439    ret
440
441
442PrintVerticalRuler:
443    CALL_DISPLAY_LIBRARY GetColumnsToALandRowsToAH
444    eMOVZX  cx, ah              ; Number of rows to CX
445    dec     ax                  ; Last column
446    xor     ah, ah
447    CALL_DISPLAY_LIBRARY SetCursorCoordinatesFromAX
448
449    dec     cx                  ; Decrement rows to print last row outside loop
450    mov     bx, 10<<8           ; BH = 10 (divider), BL = 0 (row index)
451    mov     si, .szVerticalRulerCharacter
452.RowNumberLoop:
453    call    .PrintRowNumberFromBL
454    inc     bx                  ; Increment row index
455    loop    .RowNumberLoop
456
457    ; Last row
458    mov     si, .szLastVerticalRulerCharacter
459.PrintRowNumberFromBL:
460    eMOVZX  ax, bl              ; Row index to AX (0...24)
461    div     bh                  ; AH = 0...9, AL = attribute
462    add     al, COLOR_GRAY      ; Start from color GRAY
463    mov     bp, sp              ; Prepare BP for string formatting
464    push    ax                  ; Push attribute
465    eMOVZX  ax, ah
466    push    ax                  ; Push row index
467    CALL_DISPLAY_LIBRARY FormatNullTerminatedStringFromCSSI
468    ret
469
470.szVerticalRulerCharacter:
471    db  "%A%u",LF,NULL
472.szLastVerticalRulerCharacter:
473    db  "%A%u",NULL
474
475
476PrintFormattedStrings:
477    call    .PrintIntegers
478    call    .PrintHexadecimals
479    call    .PrintCharacters
480    call    .PrintStrings
481    call    .RepeatChar
482    ret
483
484.PrintIntegers:
485    mov     si, .szIntegers
486    mov     bp, sp
487    ePUSH_T ax, COLOR_ATTRIBUTE(COLOR_RED, COLOR_BLACK)
488    ePUSH_T ax, -32768
489    ePUSH_T ax, -1
490    ePUSH_T ax, 0
491    ePUSH_T ax, 1
492    ePUSH_T ax, 65535
493    CALL_DISPLAY_LIBRARY FormatNullTerminatedStringFromCSSI
494    ret
495.szIntegers:
496    db  "Integers -32768, -1, 0, 1, 65535:          %A|%6d|%6d|%6d|%6d|%6u|",LF,CR,NULL
497
498.PrintHexadecimals:
499    mov     si, .szHexadecimals
500    mov     bp, sp
501    ePUSH_T ax, COLOR_ATTRIBUTE(COLOR_RED, COLOR_BLACK)
502    ePUSH_T ax, 0CACAh
503    ePUSH_T ax, 0FFFFh
504    ePUSH_T ax, 0
505    ePUSH_T ax, 5A5Ah
506    ePUSH_T ax, 0A5A5h
507    CALL_DISPLAY_LIBRARY FormatNullTerminatedStringFromCSSI
508    ret
509.szHexadecimals:
510    db  "Hexadecimals CACAh, FFFFh, 0, 5A5Ah, A5A5h:%A|%6x|%6x|%6x|%6x|%6x|",LF,CR,NULL
511
512.PrintCharacters:
513    mov     si, .szCharacters
514    mov     bp, sp
515    ePUSH_T ax, COLOR_ATTRIBUTE(COLOR_RED, COLOR_BLACK)
516    ePUSH_T ax, 'a'
517    ePUSH_T ax, 'B'
518    ePUSH_T ax, 'c'
519    ePUSH_T ax, 'D'
520    CALL_DISPLAY_LIBRARY FormatNullTerminatedStringFromCSSI
521    ret
522.szCharacters:
523    db  "Characters a, B, c, D, percent:            %A|%6c|%6c|%6c|%6c|%6%|",LF,CR,NULL
524
525.PrintStrings:
526    mov     si, .szStrings
527    mov     bp, sp
528    ePUSH_T ax, COLOR_ATTRIBUTE(COLOR_RED, COLOR_BLACK)
529    ePUSH_T ax, .szCSSI
530    ePUSH_T ax, .szFar
531    push    cs
532    CALL_DISPLAY_LIBRARY FormatNullTerminatedStringFromCSSI
533    ret
534.szStrings:
535    db  "Strings ",'"',"Hello CSSI",'"'," and ",'"',"Far",'"',":            %A|%20s|%13S|",LF,CR,NULL
536.szCSSI:
537    db  "Hello CSSI",NULL
538.szFar:
539    db  "Far",NULL
540   
541.RepeatChar:
542    mov     si, .szRepeat
543    mov     bp, sp
544    ePUSH_T ax, COLOR_ATTRIBUTE(COLOR_RED, COLOR_BLACK)
545    ePUSH_T ax, '-'
546    ePUSH_T ax, 36
547    CALL_DISPLAY_LIBRARY FormatNullTerminatedStringFromCSSI
548    ret
549.szRepeat:
550    db  "Repeating character '-':                   %A%t",LF,CR,NULL
551       
552
553
554; Section containing initialized data
555;SECTION .data
556
557g_szDialogTitle:
558    db      "This is a generic title for all dialogs.",NULL
559g_szDialogInfo:
560    db      "This is a generic information for all dialogs.",NULL
561g_szVeryLongString:
562    db      "This is a very long string containing multiple lines of text. This is needed "
563    db      "so scroll bars and message dialog can be tested. This string does not use "
564    db      "formatting so it should be simple to display this correctly. This string "
565    db      "does, however, use newline characters. Lets change line right now!",CR,LF,
566    db      "Well did it work? Let's try line feed alone",LF,"Well? "
567    db      "We could also see what two spaces does _  _. There was two spaces between "
568    db      "underscores. Lets try three this time _   _. Well, did they work correctly? "
569    db      "What next, I guess that was all, no wait. Let's see what TAB does! Here it "
570    db      "goes:",TAB,"Well did it work? Just one more time:",TAB,"Well are we good? "
571    db      "No since LF is the only supported control character, unfortunately. "
572    db      "This is the last sentence of this long string!",NULL
573
574g_dialogInputOutput:
575istruc DIALOG_INPUT
576    at  DIALOG_INPUT.fszTitle,  dw  g_szDialogTitle
577    at  DIALOG_INPUT.fszInfo,   dw  g_szDialogInfo
578iend
579    times   20  db  0
580
581
582; Section containing uninitialized data
583SECTION .bss
584
585STRING_BUFFER_SIZE          EQU     100
586g_szBuffer:
Note: See TracBrowser for help on using the repository browser.