home *** CD-ROM | disk | FTP | other *** search
/ Media Share 9 / MEDIASHARE_09.ISO / mag&info / msjv7_6.zip / TOPTEN.ARJ / ETO.ARJ / ETO.COD < prev    next >
Text File  |  1992-10-01  |  42KB  |  1,282 lines

  1. ; File eto.c
  2. ; #include <windows.h>
  3. ; #include "basedefs.h"
  4. ; #include "eto.h"
  5. ; WINPROC WndProc     ( WINDOWS_PARAMS );
  6. ; void TestIDM_RECT_FILLRECT ( HWND hWnd );
  7. ; void TestIDM_RECT_ETO      ( HWND hWnd );
  8. ; void TestIDM_TEXT_TEXTOUT  ( HWND hWnd );
  9. ; void TestIDM_TEXT_ETO      ( HWND hWnd );
  10. ; /**************************************************************
  11. ; *                                                             *
  12. ; *                   Global Variables                          *
  13. ; *                                                             *
  14. ; **************************************************************/
  15. ; HANDLE   ghInst;
  16. ; HWND     ghWnd;
  17. ; char     szNullString[] = "";
  18. ; char     szAppName[] = "ETO";
  19. ; HBRUSH   hRGBBrush[16];
  20. ; COLORREF dwRGB[16];
  21. ; /**************************************************************
  22. ; *                                                             *
  23. ; *                      WinMain                                *
  24. ; *                                                             *
  25. ; **************************************************************/
  26. ; int PASCAL WinMain (HANDLE hInstance,  HANDLE hPrevInstance, 
  27. ;                     LPSTR lpszCmdLine, int    nCmdShow       )
  28. ; {
  29. ; Line 34
  30. ; nCmdShow = 0006
  31. ; lpszCmdLine = 0008
  32. ; hPrevInstance = 000c
  33. ; hInstance = 000e
  34.                     WinMain:
  35.     *** 000000    8c d8             mov    ax,ds
  36.     *** 000002    90             xchg    ax,ax
  37.     *** 000003    45             inc    bp
  38.     *** 000004    55             push    bp
  39.     *** 000005    8b ec             mov    bp,sp
  40.     *** 000007    1e             push    ds
  41.     *** 000008    8e d8             mov    ds,ax
  42.     *** 00000a    81 ec 00 00         sub    sp,OFFSET L01464
  43.     *** 00000e    56             push    si
  44.     *** 00000f    57             push    di
  45. ; i = fffa
  46. ; wndclass = ffe0
  47. ; msg = ffce
  48. ;   MSG         msg       ;
  49. ; Line 35
  50. ;   WNDCLASS    wndclass  ;
  51. ; Line 36
  52. ;   int         i;
  53. ; Line 37
  54. ;   if (!hPrevInstance) 
  55. ; Line 39
  56.     *** 000010    83 7e 0c 00         cmp    WORD PTR 12[bp],OFFSET 0
  57.     *** 000014    74 03 e9 00 00         jne    L01342
  58. ;     {
  59. ; Line 40
  60. ;     // Register the Parent Window
  61. ;     wndclass.style         = CS_BYTEALIGNCLIENT;
  62. ; Line 43
  63.     *** 000019    c7 46 e0 00 10         mov    WORD PTR -32[bp],OFFSET 4096
  64. ;     wndclass.lpfnWndProc   = (WNDPROC)WndProc ;
  65. ; Line 44
  66.     *** 00001e    c7 46 e2 00 00         mov    WORD PTR -30[bp],OFFSET WndProc
  67.     *** 000023    c7 46 e4 00 00         mov    WORD PTR -28[bp],SEG WndProc
  68. ;     wndclass.cbClsExtra    = 0 ;
  69. ; Line 45
  70.     *** 000028    c7 46 e6 00 00         mov    WORD PTR -26[bp],OFFSET 0
  71. ;     wndclass.cbWndExtra    = 0 ;
  72. ; Line 46
  73.     *** 00002d    c7 46 e8 00 00         mov    WORD PTR -24[bp],OFFSET 0
  74. ;     wndclass.hInstance     = hInstance ;
  75. ; Line 47
  76.     *** 000032    8b 46 0e         mov    ax,WORD PTR 14[bp]
  77.     *** 000035    89 46 ea         mov    WORD PTR -22[bp],ax
  78. ;     wndclass.hIcon         = NULL;
  79. ; Line 48
  80.     *** 000038    c7 46 ec 00 00         mov    WORD PTR -20[bp],OFFSET 0
  81. ;     wndclass.hCursor       = LoadCursor (NULL, IDC_ARROW) ;
  82. ; Line 49
  83.     *** 00003d    6a 00             push    OFFSET 0
  84.     *** 00003f    6a 00             push    OFFSET 0
  85.     *** 000041    68 00 7f         push    OFFSET 32512
  86.     *** 000044    9a 00 00 00 00         call    FAR PTR LoadCursor
  87.     *** 000049    89 46 ee         mov    WORD PTR -18[bp],ax
  88. ;     wndclass.hbrBackground = GetStockObject ( LTGRAY_BRUSH ) ;
  89. ; Line 50
  90.     *** 00004c    6a 01             push    OFFSET 1
  91.     *** 00004e    9a 00 00 00 00         call    FAR PTR GetStockObject
  92.     *** 000053    89 46 f0         mov    WORD PTR -16[bp],ax
  93. ;     wndclass.lpszMenuName  = (LPSTR)"PlainMenu" ;
  94. ; Line 51
  95.     *** 000056    b8 00 00         mov    ax,OFFSET L01343
  96.     *** 000059    8c da             mov    dx,ds
  97.     *** 00005b    89 46 f2         mov    WORD PTR -14[bp],ax
  98.     *** 00005e    89 56 f4         mov    WORD PTR -12[bp],dx
  99. ;     wndclass.lpszClassName = szAppName ;
  100. ; Line 52
  101.     *** 000061    b8 1c 00         mov    ax,OFFSET _szAppName
  102.     *** 000064    8c da             mov    dx,ds
  103.     *** 000066    89 46 f6         mov    WORD PTR -10[bp],ax
  104.     *** 000069    89 56 f8         mov    WORD PTR -8[bp],dx
  105. ;     if (!RegisterClass (&wndclass))
  106. ; Line 54
  107.     *** 00006c    8d 46 e0         lea    ax,WORD PTR -32[bp]
  108.     *** 00006f    8c d2             mov    dx,ss
  109.     *** 000071    52             push    dx
  110.     *** 000072    50             push    ax
  111.     *** 000073    9a 00 00 00 00         call    FAR PTR RegisterClass
  112.     *** 000078    3d 00 00         cmp    ax,OFFSET 0
  113.     *** 00007b    74 03 e9 00 00         jne    L01344
  114. ;          return FALSE;
  115. ; Line 55
  116.     *** 000080    b8 00 00         mov    ax,OFFSET 0
  117.     *** 000083    e9 00 00         jmp    L01338
  118. ;     }
  119. ; Line 57
  120.                     L01344:
  121. ;   // Generate sixteen cached brushes, for each of the solid colors,
  122. ;   // and fill in the dwRGB array
  123. ;   for ( i = 0; i < 16; i++ )
  124. ; Line 62
  125.                     L01342:
  126.     *** 000086    c7 46 fa 00 00         mov    WORD PTR -6[bp],OFFSET 0
  127.     *** 00008b    e9 00 00         jmp    L01348
  128.                     L01345:
  129. ;     hRGBBrush[i] = CreateSolidBrush ( dwRGB[i] =
  130. ; Line 63
  131. ;                                        RGB
  132. ; Line 64
  133. ;                                            ( 
  134. ;                                              min ((((i%8)&4)/4)*(((i%16)/8)+1)*128, 255),
  135. ;                                              min ((((i%8)&2)/2)*(((i%16)/8)+1)*128, 255),
  136. ;                                              min ((((i%8)&1)/1)*(((i%16)/8)+1)*128, 255)
  137. ;                                            )
  138. ;                                      );
  139. ; Line 70
  140.     *** 00008e    b9 08 00         mov    cx,OFFSET 8
  141.     *** 000091    8b 46 fa         mov    ax,WORD PTR -6[bp]
  142.     *** 000094    99             cwd
  143.     *** 000095    f7 f9             idiv    cx
  144.     *** 000097    8b c2             mov    ax,dx
  145.     *** 000099    25 01 00         and    ax,OFFSET 1
  146.     *** 00009c    b9 01 00         mov    cx,OFFSET 1
  147.     *** 00009f    99             cwd
  148.     *** 0000a0    f7 f9             idiv    cx
  149.     *** 0000a2    b9 10 00         mov    cx,OFFSET 16
  150.     *** 0000a5    89 46 cc         mov    WORD PTR -52[bp],ax
  151.     *** 0000a8    8b 46 fa         mov    ax,WORD PTR -6[bp]
  152.     *** 0000ab    99             cwd
  153.     *** 0000ac    f7 f9             idiv    cx
  154.     *** 0000ae    8b c2             mov    ax,dx
  155.     *** 0000b0    b9 08 00         mov    cx,OFFSET 8
  156.     *** 0000b3    99             cwd
  157.     *** 0000b4    f7 f9             idiv    cx
  158.     *** 0000b6    8b c8             mov    cx,ax
  159.     *** 0000b8    83 c1 01         add    cx,OFFSET 1
  160.     *** 0000bb    8b 46 cc         mov    ax,WORD PTR -52[bp]
  161.     *** 0000be    f7 e9             imul    cx
  162.     *** 0000c0    c1 e0 07         shl    ax,OFFSET 7
  163.     *** 0000c3    3d ff 00         cmp    ax,OFFSET 255
  164.     *** 0000c6    7c 03 e9 00 00         jge    L01466
  165.     *** 0000cb    b9 08 00         mov    cx,OFFSET 8
  166.     *** 0000ce    8b 46 fa         mov    ax,WORD PTR -6[bp]
  167.     *** 0000d1    99             cwd
  168.     *** 0000d2    f7 f9             idiv    cx
  169.     *** 0000d4    8b c2             mov    ax,dx
  170.     *** 0000d6    25 01 00         and    ax,OFFSET 1
  171.     *** 0000d9    b9 01 00         mov    cx,OFFSET 1
  172.     *** 0000dc    99             cwd
  173.     *** 0000dd    f7 f9             idiv    cx
  174.     *** 0000df    b9 10 00         mov    cx,OFFSET 16
  175.     *** 0000e2    89 46 ca         mov    WORD PTR -54[bp],ax
  176.     *** 0000e5    8b 46 fa         mov    ax,WORD PTR -6[bp]
  177.     *** 0000e8    99             cwd
  178.     *** 0000e9    f7 f9             idiv    cx
  179.     *** 0000eb    8b c2             mov    ax,dx
  180.     *** 0000ed    b9 08 00         mov    cx,OFFSET 8
  181.     *** 0000f0    99             cwd
  182.     *** 0000f1    f7 f9             idiv    cx
  183.     *** 0000f3    8b c8             mov    cx,ax
  184.     *** 0000f5    83 c1 01         add    cx,OFFSET 1
  185.     *** 0000f8    8b 46 ca         mov    ax,WORD PTR -54[bp]
  186.     *** 0000fb    f7 e9             imul    cx
  187.     *** 0000fd    c1 e0 07         shl    ax,OFFSET 7
  188.     *** 000100    e9 00 00         jmp    L01465
  189.                     L01466:
  190.     *** 000103    b8 ff 00         mov    ax,OFFSET 255
  191.                     L01465:
  192.     *** 000106    25 ff 00         and    ax,OFFSET 255
  193.     *** 000109    ba 00 00         mov    dx,OFFSET 0
  194.     *** 00010c    b9 10 00         mov    cx,OFFSET 16
  195.     *** 00010f    9a 00 00 00 00         call    FAR PTR __aFlshl
  196.     *** 000114    89 46 c6         mov    WORD PTR -58[bp],ax
  197.     *** 000117    89 56 c8         mov    WORD PTR -56[bp],dx
  198.     *** 00011a    b9 08 00         mov    cx,OFFSET 8
  199.     *** 00011d    8b 46 fa         mov    ax,WORD PTR -6[bp]
  200.     *** 000120    99             cwd
  201.     *** 000121    f7 f9             idiv    cx
  202.     *** 000123    8b c2             mov    ax,dx
  203.     *** 000125    25 02 00         and    ax,OFFSET 2
  204.     *** 000128    b9 02 00         mov    cx,OFFSET 2
  205.     *** 00012b    99             cwd
  206.     *** 00012c    f7 f9             idiv    cx
  207.     *** 00012e    b9 10 00         mov    cx,OFFSET 16
  208.     *** 000131    89 46 c4         mov    WORD PTR -60[bp],ax
  209.     *** 000134    8b 46 fa         mov    ax,WORD PTR -6[bp]
  210.     *** 000137    99             cwd
  211.     *** 000138    f7 f9             idiv    cx
  212.     *** 00013a    8b c2             mov    ax,dx
  213.     *** 00013c    b9 08 00         mov    cx,OFFSET 8
  214.     *** 00013f    99             cwd
  215.     *** 000140    f7 f9             idiv    cx
  216.     *** 000142    8b c8             mov    cx,ax
  217.     *** 000144    83 c1 01         add    cx,OFFSET 1
  218.     *** 000147    8b 46 c4         mov    ax,WORD PTR -60[bp]
  219.     *** 00014a    f7 e9             imul    cx
  220.     *** 00014c    c1 e0 07         shl    ax,OFFSET 7
  221.     *** 00014f    3d ff 00         cmp    ax,OFFSET 255
  222.     *** 000152    7c 03 e9 00 00         jge    L01469
  223.     *** 000157    b9 08 00         mov    cx,OFFSET 8
  224.     *** 00015a    8b 46 fa         mov    ax,WORD PTR -6[bp]
  225.     *** 00015d    99             cwd
  226.     *** 00015e    f7 f9             idiv    cx
  227.     *** 000160    8b c2             mov    ax,dx
  228.     *** 000162    25 02 00         and    ax,OFFSET 2
  229.     *** 000165    b9 02 00         mov    cx,OFFSET 2
  230.     *** 000168    99             cwd
  231.     *** 000169    f7 f9             idiv    cx
  232.     *** 00016b    b9 10 00         mov    cx,OFFSET 16
  233.     *** 00016e    89 46 c2         mov    WORD PTR -62[bp],ax
  234.     *** 000171    8b 46 fa         mov    ax,WORD PTR -6[bp]
  235.     *** 000174    99             cwd
  236.     *** 000175    f7 f9             idiv    cx
  237.     *** 000177    8b c2             mov    ax,dx
  238.     *** 000179    b9 08 00         mov    cx,OFFSET 8
  239.     *** 00017c    99             cwd
  240.     *** 00017d    f7 f9             idiv    cx
  241.     *** 00017f    8b c8             mov    cx,ax
  242.     *** 000181    83 c1 01         add    cx,OFFSET 1
  243.     *** 000184    8b 46 c2         mov    ax,WORD PTR -62[bp]
  244.     *** 000187    f7 e9             imul    cx
  245.     *** 000189    c1 e0 07         shl    ax,OFFSET 7
  246.     *** 00018c    e9 00 00         jmp    L01468
  247.                     L01469:
  248.     *** 00018f    b8 ff 00         mov    ax,OFFSET 255
  249.                     L01468:
  250.     *** 000192    c1 e0 08         shl    ax,OFFSET 8
  251.     *** 000195    89 46 c0         mov    WORD PTR -64[bp],ax
  252.     *** 000198    b9 08 00         mov    cx,OFFSET 8
  253.     *** 00019b    8b 46 fa         mov    ax,WORD PTR -6[bp]
  254.     *** 00019e    99             cwd
  255.     *** 00019f    f7 f9             idiv    cx
  256.     *** 0001a1    8b c2             mov    ax,dx
  257.     *** 0001a3    25 04 00         and    ax,OFFSET 4
  258.     *** 0001a6    b9 04 00         mov    cx,OFFSET 4
  259.     *** 0001a9    99             cwd
  260.     *** 0001aa    f7 f9             idiv    cx
  261.     *** 0001ac    b9 10 00         mov    cx,OFFSET 16
  262.     *** 0001af    89 46 be         mov    WORD PTR -66[bp],ax
  263.     *** 0001b2    8b 46 fa         mov    ax,WORD PTR -6[bp]
  264.     *** 0001b5    99             cwd
  265.     *** 0001b6    f7 f9             idiv    cx
  266.     *** 0001b8    8b c2             mov    ax,dx
  267.     *** 0001ba    b9 08 00         mov    cx,OFFSET 8
  268.     *** 0001bd    99             cwd
  269.     *** 0001be    f7 f9             idiv    cx
  270.     *** 0001c0    8b c8             mov    cx,ax
  271.     *** 0001c2    83 c1 01         add    cx,OFFSET 1
  272.     *** 0001c5    8b 46 be         mov    ax,WORD PTR -66[bp]
  273.     *** 0001c8    f7 e9             imul    cx
  274.     *** 0001ca    c1 e0 07         shl    ax,OFFSET 7
  275.     *** 0001cd    3d ff 00         cmp    ax,OFFSET 255
  276.     *** 0001d0    7c 03 e9 00 00         jge    L01471
  277.     *** 0001d5    b9 08 00         mov    cx,OFFSET 8
  278.     *** 0001d8    8b 46 fa         mov    ax,WORD PTR -6[bp]
  279.     *** 0001db    99             cwd
  280.     *** 0001dc    f7 f9             idiv    cx
  281.     *** 0001de    8b c2             mov    ax,dx
  282.     *** 0001e0    25 04 00         and    ax,OFFSET 4
  283.     *** 0001e3    b9 04 00         mov    cx,OFFSET 4
  284.     *** 0001e6    99             cwd
  285.     *** 0001e7    f7 f9             idiv    cx
  286.     *** 0001e9    b9 10 00         mov    cx,OFFSET 16
  287.     *** 0001ec    89 46 bc         mov    WORD PTR -68[bp],ax
  288.     *** 0001ef    8b 46 fa         mov    ax,WORD PTR -6[bp]
  289.     *** 0001f2    99             cwd
  290.     *** 0001f3    f7 f9             idiv    cx
  291.     *** 0001f5    8b c2             mov    ax,dx
  292.     *** 0001f7    b9 08 00         mov    cx,OFFSET 8
  293.     *** 0001fa    99             cwd
  294.     *** 0001fb    f7 f9             idiv    cx
  295.     *** 0001fd    8b c8             mov    cx,ax
  296.     *** 0001ff    83 c1 01         add    cx,OFFSET 1
  297.     *** 000202    8b 46 bc         mov    ax,WORD PTR -68[bp]
  298.     *** 000205    f7 e9             imul    cx
  299.     *** 000207    c1 e0 07         shl    ax,OFFSET 7
  300.     *** 00020a    e9 00 00         jmp    L01470
  301.                     L01471:
  302.     *** 00020d    b8 ff 00         mov    ax,OFFSET 255
  303.                     L01470:
  304.     *** 000210    25 ff 00         and    ax,OFFSET 255
  305.     *** 000213    8b 4e c0         mov    cx,WORD PTR -64[bp]
  306.     *** 000216    0b c1             or    ax,cx
  307.     *** 000218    ba 00 00         mov    dx,OFFSET 0
  308.     *** 00021b    8b 4e c6         mov    cx,WORD PTR -58[bp]
  309.     *** 00021e    8b 5e c8         mov    bx,WORD PTR -56[bp]
  310.     *** 000221    0b c1             or    ax,cx
  311.     *** 000223    0b d3             or    dx,bx
  312.     *** 000225    8b 5e fa         mov    bx,WORD PTR -6[bp]
  313.     *** 000228    d1 e3             shl    bx,OFFSET 1
  314.     *** 00022a    d1 e3             shl    bx,OFFSET 1
  315.     *** 00022c    89 87 00 00         mov    WORD PTR _dwRGB[bx],ax
  316.     *** 000230    89 97 02 00         mov    WORD PTR _dwRGB+2[bx],dx
  317.     *** 000234    52             push    dx
  318.     *** 000235    50             push    ax
  319.     *** 000236    9a 00 00 00 00         call    FAR PTR CreateSolidBrush
  320.     *** 00023b    8b 5e fa         mov    bx,WORD PTR -6[bp]
  321.     *** 00023e    d1 e3             shl    bx,OFFSET 1
  322.     *** 000240    89 87 00 00         mov    WORD PTR _hRGBBrush[bx],ax
  323.                     L01346:
  324.     *** 000244    83 46 fa 01         add    WORD PTR -6[bp],OFFSET 1
  325.                     L01348:
  326.     *** 000248    83 7e fa 10         cmp    WORD PTR -6[bp],OFFSET 16
  327.     *** 00024c    7d 03 e9 3d fe         jl    L01345
  328.                     L01347:
  329. ;   ghInst   = hInstance;
  330. ; Line 72
  331.     *** 000251    8b 46 0e         mov    ax,WORD PTR 14[bp]
  332.     *** 000254    a3 00 00         mov    WORD PTR _ghInst,ax
  333. ;   ghWnd =        CreateWindow (szAppName, "Tiny Windows App",
  334. ; Line 75
  335. ;                                WS_OVERLAPPEDWINDOW,
  336. ; Line 76
  337. ;                                CW_USEDEFAULT, 0,
  338. ; Line 77
  339. ;                                CW_USEDEFAULT, 0,
  340. ; Line 78
  341. ;                                NULL, NULL, hInstance, NULL) ;
  342. ; Line 79
  343.     *** 000257    b8 1c 00         mov    ax,OFFSET _szAppName
  344.     *** 00025a    8c da             mov    dx,ds
  345.     *** 00025c    52             push    dx
  346.     *** 00025d    50             push    ax
  347.     *** 00025e    b8 0a 00         mov    ax,OFFSET L01349
  348.     *** 000261    8c da             mov    dx,ds
  349.     *** 000263    52             push    dx
  350.     *** 000264    50             push    ax
  351.     *** 000265    68 cf 00         push    OFFSET 207
  352.     *** 000268    6a 00             push    OFFSET 0
  353.     *** 00026a    68 00 80         push    OFFSET -32768
  354.     *** 00026d    6a 00             push    OFFSET 0
  355.     *** 00026f    68 00 80         push    OFFSET -32768
  356.     *** 000272    6a 00             push    OFFSET 0
  357.     *** 000274    6a 00             push    OFFSET 0
  358.     *** 000276    6a 00             push    OFFSET 0
  359.     *** 000278    ff 76 0e         push    WORD PTR 14[bp]
  360.     *** 00027b    6a 00             push    OFFSET 0
  361.     *** 00027d    6a 00             push    OFFSET 0
  362.     *** 00027f    9a 00 00 00 00         call    FAR PTR CreateWindow
  363.     *** 000284    a3 00 00         mov    WORD PTR _ghWnd,ax
  364. ;   ShowWindow ( ghWnd, nCmdShow );
  365. ; Line 82
  366.     *** 000287    ff 36 00 00         push    WORD PTR _ghWnd
  367.     *** 00028b    ff 76 06         push    WORD PTR 6[bp]
  368.     *** 00028e    9a 00 00 00 00         call    FAR PTR ShowWindow
  369. ;   UpdateWindow ( ghWnd );
  370. ; Line 83
  371.     *** 000293    ff 36 00 00         push    WORD PTR _ghWnd
  372.     *** 000297    9a 00 00 00 00         call    FAR PTR UpdateWindow
  373. ;   while (GetMessage((LPMSG)&msg, NULL, 0, 0))
  374. ; Line 85
  375.                     L01351:
  376.     *** 00029c    8d 46 ce         lea    ax,WORD PTR -50[bp]
  377.     *** 00029f    8c d2             mov    dx,ss
  378.     *** 0002a1    52             push    dx
  379.     *** 0002a2    50             push    ax
  380.     *** 0002a3    6a 00             push    OFFSET 0
  381.     *** 0002a5    6a 00             push    OFFSET 0
  382.     *** 0002a7    6a 00             push    OFFSET 0
  383.     *** 0002a9    9a 00 00 00 00         call    FAR PTR GetMessage
  384.     *** 0002ae    3d 00 00         cmp    ax,OFFSET 0
  385.     *** 0002b1    75 03 e9 00 00         je    L01352
  386. ;     {
  387. ; Line 86
  388. ;     TranslateMessage(&msg);
  389. ; Line 87
  390.     *** 0002b6    8d 46 ce         lea    ax,WORD PTR -50[bp]
  391.     *** 0002b9    8c d2             mov    dx,ss
  392.     *** 0002bb    52             push    dx
  393.     *** 0002bc    50             push    ax
  394.     *** 0002bd    9a 00 00 00 00         call    FAR PTR TranslateMessage
  395. ;     DispatchMessage(&msg);
  396. ; Line 88
  397.     *** 0002c2    8d 46 ce         lea    ax,WORD PTR -50[bp]
  398.     *** 0002c5    8c d2             mov    dx,ss
  399.     *** 0002c7    52             push    dx
  400.     *** 0002c8    50             push    ax
  401.     *** 0002c9    9a 00 00 00 00         call    FAR PTR DispatchMessage
  402. ;     }
  403. ; Line 89
  404. ; Line 89
  405.     *** 0002ce    e9 cb ff         jmp    L01351
  406.                     L01352:
  407. ;   for ( i = 0; i < 16; i++ )
  408. ; Line 91
  409.     *** 0002d1    c7 46 fa 00 00         mov    WORD PTR -6[bp],OFFSET 0
  410.     *** 0002d6    e9 00 00         jmp    L01357
  411.                     L01354:
  412. ;     DeleteObject ( hRGBBrush[i] );
  413. ; Line 92
  414.     *** 0002d9    8b 5e fa         mov    bx,WORD PTR -6[bp]
  415.     *** 0002dc    d1 e3             shl    bx,OFFSET 1
  416.     *** 0002de    ff b7 00 00         push    WORD PTR _hRGBBrush[bx]
  417.     *** 0002e2    9a 00 00 00 00         call    FAR PTR DeleteObject
  418.                     L01355:
  419.     *** 0002e7    83 46 fa 01         add    WORD PTR -6[bp],OFFSET 1
  420.                     L01357:
  421.     *** 0002eb    83 7e fa 10         cmp    WORD PTR -6[bp],OFFSET 16
  422.     *** 0002ef    7d 03 e9 e5 ff         jl    L01354
  423.                     L01356:
  424. ;  
  425. ;   return msg.wParam ;
  426. ; Line 94
  427.     *** 0002f4    8b 46 d2         mov    ax,WORD PTR -46[bp]
  428.     *** 0002f7    e9 00 00         jmp    L01338
  429. ; }
  430. ; Line 95
  431. ; Line 95
  432.                     L01338:
  433.     *** 0002fa    5f             pop    di
  434.     *** 0002fb    5e             pop    si
  435.     *** 0002fc    8d 66 fe         lea    sp,WORD PTR -2[bp]
  436.     *** 0002ff    1f             pop    ds
  437.     *** 000300    5d             pop    bp
  438.     *** 000301    4d             dec    bp
  439.     *** 000302    ca 0a 00         ret    OFFSET 10
  440. Local Size: 68
  441. ; Line 0
  442. ; /*********************************************************************
  443. ; *                                                                    *
  444. ; *                       WndProc: Main Message Translator             *
  445. ; *                                                                    *
  446. ; *********************************************************************/
  447. ; WINPROC WndProc ( WINDOWS_PARAMS )
  448. ; {
  449. ;   switch ( msg )
  450. ;     {
  451. ;     case WM_COMMAND :
  452. ;       switch ( wParam )
  453. ;         {
  454. ;         case IDM_RECT_FILLRECT: TestIDM_RECT_FILLRECT ( hWnd ); break;
  455. ;         case IDM_RECT_ETO     : TestIDM_RECT_ETO      ( hWnd ); break;
  456. ;         case IDM_TEXT_TEXTOUT : TestIDM_TEXT_TEXTOUT  ( hWnd ); break;
  457. ;         case IDM_TEXT_ETO     : TestIDM_TEXT_ETO      ( hWnd ); break;
  458. ;         }
  459. ;       break;
  460. ;     case WM_CREATE  :
  461. ;       break;
  462. ;     case WM_DESTROY :
  463. ;       PostQuitMessage (0) ;
  464. ;       break ;
  465. ;     default :
  466. ;       return DefWindowProc ( hWnd, msg, wParam, lParam );
  467. ;     }
  468. ;   return 0L ;
  469. ; }
  470. ; //*************************************************************************
  471. ; //
  472. ; //
  473. ; //
  474. ; //*************************************************************************
  475. ; void TestIDM_RECT_FILLRECT ( HWND hWnd )
  476. ; {
  477. ;   RECT r;
  478. ;   int  i, j;
  479. ;   HDC  hDC;
  480. ;   GetClientRect ( hWnd, &r );
  481. ;   hDC = GetDC ( hWnd );
  482. ;   for ( j = 0; j < 3; j++ )
  483. ;     for ( i = 0; i < 16; i++ )
  484. ;       FillRect ( hDC, &r, hRGBBrush[i] );
  485. ;   ReleaseDC ( hWnd, hDC );
  486. ;   
  487. ; }
  488. ; //*************************************************************************
  489. ; //
  490. ; //
  491. ; //
  492. ; //*************************************************************************
  493. ; void TestIDM_RECT_ETO      ( HWND hWnd )
  494. ; {
  495. ;   RECT r;
  496. ;   int  i, j;
  497. ;   HDC  hDC;
  498. ;   GetClientRect ( hWnd, &r );
  499. ;   hDC = GetDC ( hWnd );
  500. ;   for ( j = 0; j < 3; j++ )
  501. ;     for ( i = 0; i < 16; i++ )
  502. ;       {
  503. ;       SetBkColor ( hDC, dwRGB[i] );
  504. ;       ExtTextOut ( hDC, 0, 0, ETO_OPAQUE, &r, NULL, NULL, NULL );
  505. ;       }
  506. ;   ReleaseDC ( hWnd, hDC );
  507. ; }
  508. ; //*************************************************************************
  509. ; //
  510. ; //
  511. ; //
  512. ; //*************************************************************************
  513. ; void TestIDM_TEXT_TEXTOUT  ( HWND hWnd )
  514. ; {
  515. ;   RECT r;
  516. ;   int  i, j, k;
  517. ;   HDC  hDC;
  518. ;   int  iNumLines;
  519. ;   WORD wCharHeight;
  520. ;   char szTest[] = "This is a test!!!! ABCDEFGHIJKLMNOPQRSTUVWXYZ";
  521. ;   int  cbTest = lstrlen ( szTest );
  522. ; Line 104
  523. ; lParam = 0006
  524. ; wParam = 000a
  525. ; msg = 000c
  526. ; hWnd = 000e
  527.                     WndProc:
  528.     *** 000306    8c d8             mov    ax,ds
  529.     *** 000308    90             xchg    ax,ax
  530.     *** 000309    45             inc    bp
  531.     *** 00030a    55             push    bp
  532.     *** 00030b    8b ec             mov    bp,sp
  533.     *** 00030d    1e             push    ds
  534.     *** 00030e    8e d8             mov    ds,ax
  535.     *** 000310    81 ec 00 00         sub    sp,OFFSET L01472
  536.     *** 000314    56             push    si
  537.     *** 000315    57             push    di
  538. ;   GetClientRect ( hWnd, &r );
  539. ; Line 105
  540.     *** 000316    8b 46 0c         mov    ax,WORD PTR 12[bp]
  541.     *** 000319    e9 00 00         jmp    L01367
  542. ; Line 106
  543. ;   hDC = GetDC ( hWnd );
  544. ; Line 107
  545.                     L01371:
  546. ;   wCharHeight = HIWORD (GetTextExtent(hDC, szTest, cbTest));
  547. ; Line 109
  548.     *** 00031c    8b 46 0a         mov    ax,WORD PTR 10[bp]
  549.     *** 00031f    e9 00 00         jmp    L01372
  550. ; Line 110
  551. ;   r.left = LOWORD (GetTextExtent(hDC, szTest, cbTest));
  552. ; Line 111
  553.                     L01376:
  554.     *** 000322    ff 76 0e         push    WORD PTR 14[bp]
  555.     *** 000325    9a 00 00 00 00         call    FAR PTR _TestIDM_RECT_FILLRECT
  556.     *** 00032a    83 c4 02         add    sp,OFFSET 2
  557.     *** 00032d    e9 00 00         jmp    L01373
  558. ; Line 112
  559.                     L01377:
  560.     *** 000330    ff 76 0e         push    WORD PTR 14[bp]
  561.     *** 000333    9a 00 00 00 00         call    FAR PTR _TestIDM_RECT_ETO
  562.     *** 000338    83 c4 02         add    sp,OFFSET 2
  563.     *** 00033b    e9 00 00         jmp    L01373
  564. ;   iNumLines = r.bottom / wCharHeight;
  565. ; Line 113
  566.                     L01378:
  567.     *** 00033e    ff 76 0e         push    WORD PTR 14[bp]
  568.     *** 000341    9a 00 00 00 00         call    FAR PTR _TestIDM_TEXT_TEXTOUT
  569.     *** 000346    83 c4 02         add    sp,OFFSET 2
  570.     *** 000349    e9 00 00         jmp    L01373
  571. ; Line 114
  572.                     L01379:
  573.     *** 00034c    ff 76 0e         push    WORD PTR 14[bp]
  574.     *** 00034f    9a 00 00 00 00         call    FAR PTR _TestIDM_TEXT_ETO
  575.     *** 000354    83 c4 02         add    sp,OFFSET 2
  576.     *** 000357    e9 00 00         jmp    L01373
  577. ;   for ( j = 0; j < 3; j++ )
  578. ; Line 115
  579. ; Line 115
  580.     *** 00035a    e9 00 00         jmp    L01373
  581.                     L01372:
  582.     *** 00035d    3d 64 00         cmp    ax,OFFSET 100
  583.     *** 000360    75 03 e9 bd ff         je    L01376
  584.     *** 000365    3d 65 00         cmp    ax,OFFSET 101
  585.     *** 000368    75 03 e9 c3 ff         je    L01377
  586.     *** 00036d    3d 66 00         cmp    ax,OFFSET 102
  587.     *** 000370    75 03 e9 c9 ff         je    L01378
  588.     *** 000375    3d 67 00         cmp    ax,OFFSET 103
  589.     *** 000378    75 03 e9 cf ff         je    L01379
  590.     *** 00037d    e9 00 00         jmp    L01373
  591.                     L01373:
  592. ;     for ( i = 0; i < 16; i++ )
  593. ; Line 116
  594.     *** 000380    e9 00 00         jmp    L01368
  595. ;       {
  596. ;       SetBkColor   ( hDC, dwRGB[i]    );
  597. ; Line 118
  598.                     L01380:
  599. ;       SetTextColor ( hDC, dwRGB[15-i] );
  600. ; Line 120
  601.     *** 000383    e9 00 00         jmp    L01368
  602. ;       for ( k = 0; k < iNumLines; k++ )
  603. ;         {
  604. ; Line 122
  605.                     L01381:
  606. ;         r.top    = k*wCharHeight;
  607. ;         r.bottom = r.top + wCharHeight;
  608. ; Line 124
  609.     *** 000386    6a 00             push    OFFSET 0
  610.     *** 000388    9a 00 00 00 00         call    FAR PTR PostQuitMessage
  611. ;         TextOut ( hDC, 0, k*wCharHeight, szTest, cbTest ); 
  612. ; Line 125
  613.     *** 00038d    e9 00 00         jmp    L01368
  614. ;         FillRect ( hDC, &r, hRGBBrush[i] );
  615. ;         }
  616. ; Line 127
  617.                     L01382:
  618. ;       
  619. ;       }
  620. ; Line 129
  621.     *** 000390    ff 76 0e         push    WORD PTR 14[bp]
  622.     *** 000393    ff 76 0c         push    WORD PTR 12[bp]
  623.     *** 000396    ff 76 0a         push    WORD PTR 10[bp]
  624.     *** 000399    ff 76 08         push    WORD PTR 8[bp]
  625.     *** 00039c    ff 76 06         push    WORD PTR 6[bp]
  626.     *** 00039f    9a 00 00 00 00         call    FAR PTR DefWindowProc
  627.     *** 0003a4    e9 00 00         jmp    L01366
  628. ;   ReleaseDC ( hWnd, hDC );
  629. ; Line 131
  630. ; Line 131
  631.     *** 0003a7    e9 00 00         jmp    L01368
  632.                     L01367:
  633.     *** 0003aa    3d 01 00         cmp    ax,OFFSET 1
  634.     *** 0003ad    75 03 e9 d1 ff         je    L01380
  635.     *** 0003b2    3d 02 00         cmp    ax,OFFSET 2
  636.     *** 0003b5    75 03 e9 cc ff         je    L01381
  637.     *** 0003ba    3d 11 01         cmp    ax,OFFSET 273
  638.     *** 0003bd    75 03 e9 5a ff         je    L01371
  639.     *** 0003c2    e9 cb ff         jmp    L01382
  640.                     L01368:
  641. ; }
  642. ; Line 132
  643.     *** 0003c5    b8 00 00         mov    ax,OFFSET 0
  644.     *** 0003c8    ba 00 00         mov    dx,OFFSET 0
  645.     *** 0003cb    e9 00 00         jmp    L01366
  646. ; Line 133
  647. ; Line 133
  648.                     L01366:
  649.     *** 0003ce    5f             pop    di
  650.     *** 0003cf    5e             pop    si
  651.     *** 0003d0    8d 66 fe         lea    sp,WORD PTR -2[bp]
  652.     *** 0003d3    1f             pop    ds
  653.     *** 0003d4    5d             pop    bp
  654.     *** 0003d5    4d             dec    bp
  655.     *** 0003d6    ca 0a 00         ret    OFFSET 10
  656. Local Size: 4
  657. ; Line 0
  658. ; //*************************************************************************
  659. ; //
  660. ; //
  661. ; //
  662. ; //*************************************************************************
  663. ; void TestIDM_TEXT_ETO      ( HWND hWnd )
  664. ; {
  665. ;   RECT r;
  666. ;   int  i, j, k;
  667. ;   HDC  hDC;
  668. ;   int  iNumLines;
  669. ;   WORD wCharHeight;
  670. ;   char szTest[] = "This is a test!!!! ABCDEFGHIJKLMNOPQRSTUVWXYZ";
  671. ;   int  cbTest = lstrlen ( szTest );
  672. ;   GetClientRect ( hWnd, &r );
  673. ;   hDC = GetDC ( hWnd );
  674. ;   wCharHeight = HIWORD (GetTextExtent(hDC, szTest, cbTest));
  675. ;   iNumLines = r.bottom / wCharHeight;
  676. ;   for ( j = 0; j < 3; j++ )
  677. ;     for ( i = 0; i < 16; i++ )
  678. ;       {
  679. ;       SetBkColor   ( hDC, dwRGB[i]    );
  680. ;       SetTextColor ( hDC, dwRGB[15-i] );
  681. ;       for ( k = 0; k < iNumLines; k++ )
  682. ;         {
  683. ;         r.top    = k*wCharHeight;
  684. ;         r.bottom = r.top + wCharHeight;
  685. ;         ExtTextOut ( hDC, 0, k*wCharHeight, ETO_OPAQUE, &r, szTest, cbTest, NULL ); 
  686. ;         }
  687. ;       
  688. ;       }
  689. ;   ReleaseDC ( hWnd, hDC );
  690. ; }
  691. ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; Line 141
  692. ; hWnd = 0006
  693.                     _TestIDM_RECT_FILLRECT:
  694.     *** 0003da    8c d8             mov    ax,ds
  695.     *** 0003dc    90             xchg    ax,ax
  696.     *** 0003dd    45             inc    bp
  697.     *** 0003de    55             push    bp
  698.     *** 0003df    8b ec             mov    bp,sp
  699.     *** 0003e1    1e             push    ds
  700.     *** 0003e2    8e d8             mov    ds,ax
  701.     *** 0003e4    81 ec 00 00         sub    sp,OFFSET L01473
  702.     *** 0003e8    56             push    si
  703.     *** 0003e9    57             push    di
  704. ; hDC = fffa
  705. ; i = fff8
  706. ; r = fff0
  707. ; j = ffee
  708. ; ; Line 142
  709. ; ; Line 143
  710. ; ; Line 144
  711. ; ; ; Line 146
  712.     *** 0003ea    ff 76 06         push    WORD PTR 6[bp]
  713.     *** 0003ed    8d 46 f0         lea    ax,WORD PTR -16[bp]
  714.     *** 0003f0    8c d2             mov    dx,ss
  715.     *** 0003f2    52             push    dx
  716.     *** 0003f3    50             push    ax
  717.     *** 0003f4    9a 00 00 00 00         call    FAR PTR GetClientRect
  718. ; ; ; Line 148
  719.     *** 0003f9    ff 76 06         push    WORD PTR 6[bp]
  720.     *** 0003fc    9a 00 00 00 00         call    FAR PTR GetDC
  721.     *** 000401    89 46 fa         mov    WORD PTR -6[bp],ax
  722. ; ; ; Line 150
  723.     *** 000404    c7 46 ee 00 00         mov    WORD PTR -18[bp],OFFSET 0
  724.     *** 000409    e9 00 00         jmp    L01393
  725.                     L01390:
  726. ; ; Line 151
  727.     *** 00040c    c7 46 f8 00 00         mov    WORD PTR -8[bp],OFFSET 0
  728.     *** 000411    e9 00 00         jmp    L01397
  729.                     L01394:
  730. ; ; Line 152
  731.     *** 000414    ff 76 fa         push    WORD PTR -6[bp]
  732.     *** 000417    8d 46 f0         lea    ax,WORD PTR -16[bp]
  733.     *** 00041a    8c d2             mov    dx,ss
  734.     *** 00041c    52             push    dx
  735.     *** 00041d    50             push    ax
  736.     *** 00041e    8b 5e f8         mov    bx,WORD PTR -8[bp]
  737.     *** 000421    d1 e3             shl    bx,OFFSET 1
  738.     *** 000423    ff b7 00 00         push    WORD PTR _hRGBBrush[bx]
  739.     *** 000427    9a 00 00 00 00         call    FAR PTR FillRect
  740.                     L01395:
  741.     *** 00042c    83 46 f8 01         add    WORD PTR -8[bp],OFFSET 1
  742.                     L01397:
  743.     *** 000430    83 7e f8 10         cmp    WORD PTR -8[bp],OFFSET 16
  744.     *** 000434    7d 03 e9 db ff         jl    L01394
  745.                     L01396:
  746.                     L01391:
  747.     *** 000439    83 46 ee 01         add    WORD PTR -18[bp],OFFSET 1
  748.                     L01393:
  749.     *** 00043d    83 7e ee 03         cmp    WORD PTR -18[bp],OFFSET 3
  750.     *** 000441    7d 03 e9 c6 ff         jl    L01390
  751.                     L01392:
  752. ; ; ; Line 154
  753.     *** 000446    ff 76 06         push    WORD PTR 6[bp]
  754.     *** 000449    ff 76 fa         push    WORD PTR -6[bp]
  755.     *** 00044c    9a 00 00 00 00         call    FAR PTR ReleaseDC
  756. ; ; ; Line 156
  757. ; Line 156
  758.                     L01385:
  759.     *** 000451    5f             pop    di
  760.     *** 000452    5e             pop    si
  761.     *** 000453    8d 66 fe         lea    sp,WORD PTR -2[bp]
  762.     *** 000456    1f             pop    ds
  763.     *** 000457    5d             pop    bp
  764.     *** 000458    4d             dec    bp
  765.     *** 000459    cb             ret    OFFSET 0
  766. Local Size: 18
  767. ; Line 0
  768. ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; Line 165
  769. ; hWnd = 0006
  770.                     _TestIDM_RECT_ETO:
  771.     *** 00045a    8c d8             mov    ax,ds
  772.     *** 00045c    90             xchg    ax,ax
  773.     *** 00045d    45             inc    bp
  774.     *** 00045e    55             push    bp
  775.     *** 00045f    8b ec             mov    bp,sp
  776.     *** 000461    1e             push    ds
  777.     *** 000462    8e d8             mov    ds,ax
  778.     *** 000464    81 ec 00 00         sub    sp,OFFSET L01474
  779.     *** 000468    56             push    si
  780.     *** 000469    57             push    di
  781. ; hDC = fffa
  782. ; i = fff8
  783. ; r = fff0
  784. ; j = ffee
  785. ; ; Line 166
  786. ; ; Line 167
  787. ; ; Line 168
  788. ; ; ; Line 170
  789.     *** 00046a    ff 76 06         push    WORD PTR 6[bp]
  790.     *** 00046d    8d 46 f0         lea    ax,WORD PTR -16[bp]
  791.     *** 000470    8c d2             mov    dx,ss
  792.     *** 000472    52             push    dx
  793.     *** 000473    50             push    ax
  794.     *** 000474    9a 00 00 00 00         call    FAR PTR GetClientRect
  795. ; ; ; Line 172
  796.     *** 000479    ff 76 06         push    WORD PTR 6[bp]
  797.     *** 00047c    9a 00 00 00 00         call    FAR PTR GetDC
  798.     *** 000481    89 46 fa         mov    WORD PTR -6[bp],ax
  799. ; ; ; Line 174
  800.     *** 000484    c7 46 ee 00 00         mov    WORD PTR -18[bp],OFFSET 0
  801.     *** 000489    e9 00 00         jmp    L01408
  802.                     L01405:
  803. ; ; Line 175
  804.     *** 00048c    c7 46 f8 00 00         mov    WORD PTR -8[bp],OFFSET 0
  805.     *** 000491    e9 00 00         jmp    L01412
  806.                     L01409:
  807. ; ; Line 176
  808. ; ; Line 177
  809.     *** 000494    ff 76 fa         push    WORD PTR -6[bp]
  810.     *** 000497    8b 5e f8         mov    bx,WORD PTR -8[bp]
  811.     *** 00049a    d1 e3             shl    bx,OFFSET 1
  812.     *** 00049c    d1 e3             shl    bx,OFFSET 1
  813.     *** 00049e    ff b7 02 00         push    WORD PTR _dwRGB+2[bx]
  814.     *** 0004a2    ff b7 00 00         push    WORD PTR _dwRGB[bx]
  815.     *** 0004a6    9a 00 00 00 00         call    FAR PTR SetBkColor
  816. ; ; Line 178
  817.     *** 0004ab    ff 76 fa         push    WORD PTR -6[bp]
  818.     *** 0004ae    6a 00             push    OFFSET 0
  819.     *** 0004b0    6a 00             push    OFFSET 0
  820.     *** 0004b2    6a 02             push    OFFSET 2
  821.     *** 0004b4    8d 46 f0         lea    ax,WORD PTR -16[bp]
  822.     *** 0004b7    8c d2             mov    dx,ss
  823.     *** 0004b9    52             push    dx
  824.     *** 0004ba    50             push    ax
  825.     *** 0004bb    6a 00             push    OFFSET 0
  826.     *** 0004bd    6a 00             push    OFFSET 0
  827.     *** 0004bf    6a 00             push    OFFSET 0
  828.     *** 0004c1    6a 00             push    OFFSET 0
  829.     *** 0004c3    6a 00             push    OFFSET 0
  830.     *** 0004c5    9a 00 00 00 00         call    FAR PTR ExtTextOut
  831. ; ; Line 179
  832.                     L01410:
  833. ; Line 179
  834.     *** 0004ca    83 46 f8 01         add    WORD PTR -8[bp],OFFSET 1
  835.                     L01412:
  836.     *** 0004ce    83 7e f8 10         cmp    WORD PTR -8[bp],OFFSET 16
  837.     *** 0004d2    7d 03 e9 bd ff         jl    L01409
  838.                     L01411:
  839.                     L01406:
  840. ; Line 179
  841.     *** 0004d7    83 46 ee 01         add    WORD PTR -18[bp],OFFSET 1
  842.                     L01408:
  843.     *** 0004db    83 7e ee 03         cmp    WORD PTR -18[bp],OFFSET 3
  844.     *** 0004df    7d 03 e9 a8 ff         jl    L01405
  845.                     L01407:
  846. ; ; ; Line 181
  847.     *** 0004e4    ff 76 06         push    WORD PTR 6[bp]
  848.     *** 0004e7    ff 76 fa         push    WORD PTR -6[bp]
  849.     *** 0004ea    9a 00 00 00 00         call    FAR PTR ReleaseDC
  850. ; ; Line 182
  851. ; Line 182
  852.                     L01400:
  853.     *** 0004ef    5f             pop    di
  854.     *** 0004f0    5e             pop    si
  855.     *** 0004f1    8d 66 fe         lea    sp,WORD PTR -2[bp]
  856.     *** 0004f4    1f             pop    ds
  857.     *** 0004f5    5d             pop    bp
  858.     *** 0004f6    4d             dec    bp
  859.     *** 0004f7    cb             ret    OFFSET 0
  860. Local Size: 18
  861. ; Line 0
  862. ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; Line 191
  863. ; hWnd = 0006
  864.                     _TestIDM_TEXT_TEXTOUT:
  865.     *** 0004f8    8c d8             mov    ax,ds
  866.     *** 0004fa    90             xchg    ax,ax
  867.     *** 0004fb    45             inc    bp
  868.     *** 0004fc    55             push    bp
  869.     *** 0004fd    8b ec             mov    bp,sp
  870.     *** 0004ff    1e             push    ds
  871.     *** 000500    8e d8             mov    ds,ax
  872.     *** 000502    81 ec 00 00         sub    sp,OFFSET L01475
  873.     *** 000506    56             push    si
  874.     *** 000507    57             push    di
  875. ; hDC = fffa
  876. ; cbTest = fff8
  877. ; szTest = ffca
  878. ; i = ffc8
  879. ; wCharHeight = ffc6
  880. ; r = ffbe
  881. ; j = ffbc
  882. ; k = ffba
  883. ; iNumLines = ffb8
  884. ; ; Line 192
  885. ; ; Line 193
  886. ; ; Line 194
  887. ; ; Line 195
  888. ; ; Line 196
  889. ; ; Line 197
  890.     *** 000508    6a 2e             push    OFFSET 46
  891.     *** 00050a    b8 20 00         mov    ax,OFFSET L01425
  892.     *** 00050d    8c da             mov    dx,ds
  893.     *** 00050f    52             push    dx
  894.     *** 000510    50             push    ax
  895.     *** 000511    8d 46 ca         lea    ax,WORD PTR -54[bp]
  896.     *** 000514    8c d2             mov    dx,ss
  897.     *** 000516    52             push    dx
  898.     *** 000517    50             push    ax
  899.     *** 000518    9a 00 00 00 00         call    FAR PTR __fmemcpy
  900.     *** 00051d    83 c4 0a         add    sp,OFFSET 10
  901. ; ; Line 198
  902.     *** 000520    8d 46 ca         lea    ax,WORD PTR -54[bp]
  903.     *** 000523    8c d2             mov    dx,ss
  904.     *** 000525    52             push    dx
  905.     *** 000526    50             push    ax
  906.     *** 000527    9a 00 00 00 00         call    FAR PTR lstrlen
  907.     *** 00052c    89 46 f8         mov    WORD PTR -8[bp],ax
  908. ; ; ; Line 200
  909.     *** 00052f    ff 76 06         push    WORD PTR 6[bp]
  910.     *** 000532    8d 46 be         lea    ax,WORD PTR -66[bp]
  911.     *** 000535    8c d2             mov    dx,ss
  912.     *** 000537    52             push    dx
  913.     *** 000538    50             push    ax
  914.     *** 000539    9a 00 00 00 00         call    FAR PTR GetClientRect
  915. ; ; ; Line 202
  916.     *** 00053e    ff 76 06         push    WORD PTR 6[bp]
  917.     *** 000541    9a 00 00 00 00         call    FAR PTR GetDC
  918.     *** 000546    89 46 fa         mov    WORD PTR -6[bp],ax
  919. ; ; ; Line 204
  920.     *** 000549    ff 76 fa         push    WORD PTR -6[bp]
  921.     *** 00054c    8d 46 ca         lea    ax,WORD PTR -54[bp]
  922.     *** 00054f    8c d2             mov    dx,ss
  923.     *** 000551    52             push    dx
  924.     *** 000552    50             push    ax
  925.     *** 000553    ff 76 f8         push    WORD PTR -8[bp]
  926.     *** 000556    9a 00 00 00 00         call    FAR PTR GetTextExtent
  927.     *** 00055b    b9 10 00         mov    cx,OFFSET 16
  928.     *** 00055e    9a 00 00 00 00         call    FAR PTR __aFulshr
  929.     *** 000563    25 ff ff         and    ax,OFFSET -1
  930.     *** 000566    83 e2 00         and    dx,OFFSET 0
  931.     *** 000569    89 46 c6         mov    WORD PTR -58[bp],ax
  932. ; ; ; Line 206
  933.     *** 00056c    ff 76 fa         push    WORD PTR -6[bp]
  934.     *** 00056f    8d 46 ca         lea    ax,WORD PTR -54[bp]
  935.     *** 000572    8c d2             mov    dx,ss
  936.     *** 000574    52             push    dx
  937.     *** 000575    50             push    ax
  938.     *** 000576    ff 76 f8         push    WORD PTR -8[bp]
  939.     *** 000579    9a 00 00 00 00         call    FAR PTR GetTextExtent
  940.     *** 00057e    89 46 be         mov    WORD PTR -66[bp],ax
  941. ; ; ; Line 208
  942.     *** 000581    8b 46 c4         mov    ax,WORD PTR -60[bp]
  943.     *** 000584    2b d2             sub    dx,dx
  944.     *** 000586    f7 76 c6         div    WORD PTR -58[bp]
  945.     *** 000589    89 46 b8         mov    WORD PTR -72[bp],ax
  946. ; ; ; Line 210
  947.     *** 00058c    c7 46 bc 00 00         mov    WORD PTR -68[bp],OFFSET 0
  948.     *** 000591    e9 00 00         jmp    L01430
  949.                     L01427:
  950. ; ; Line 211
  951.     *** 000594    c7 46 c8 00 00         mov    WORD PTR -56[bp],OFFSET 0
  952.     *** 000599    e9 00 00         jmp    L01434
  953.                     L01431:
  954. ; ; Line 212
  955. ; ; Line 213
  956.     *** 00059c    ff 76 fa         push    WORD PTR -6[bp]
  957.     *** 00059f    8b 5e c8         mov    bx,WORD PTR -56[bp]
  958.     *** 0005a2    d1 e3             shl    bx,OFFSET 1
  959.     *** 0005a4    d1 e3             shl    bx,OFFSET 1
  960.     *** 0005a6    ff b7 02 00         push    WORD PTR _dwRGB+2[bx]
  961.     *** 0005aa    ff b7 00 00         push    WORD PTR _dwRGB[bx]
  962.     *** 0005ae    9a 00 00 00 00         call    FAR PTR SetBkColor
  963. ; ; Line 214
  964.     *** 0005b3    ff 76 fa         push    WORD PTR -6[bp]
  965.     *** 0005b6    bb 0f 00         mov    bx,OFFSET 15
  966.     *** 0005b9    2b 5e c8         sub    bx,WORD PTR -56[bp]
  967.     *** 0005bc    d1 e3             shl    bx,OFFSET 1
  968.     *** 0005be    d1 e3             shl    bx,OFFSET 1
  969.     *** 0005c0    ff b7 02 00         push    WORD PTR _dwRGB+2[bx]
  970.     *** 0005c4    ff b7 00 00         push    WORD PTR _dwRGB[bx]
  971.     *** 0005c8    9a 00 00 00 00         call    FAR PTR SetTextColor
  972. ; ; ; Line 216
  973.     *** 0005cd    c7 46 ba 00 00         mov    WORD PTR -70[bp],OFFSET 0
  974.     *** 0005d2    e9 00 00         jmp    L01438
  975.                     L01435:
  976. ; ; Line 217
  977. ; ; Line 218
  978.     *** 0005d5    8b 46 ba         mov    ax,WORD PTR -70[bp]
  979.     *** 0005d8    f7 6e c6         imul    WORD PTR -58[bp]
  980.     *** 0005db    89 46 c0         mov    WORD PTR -64[bp],ax
  981. ; ; Line 219
  982.     *** 0005de    8b 46 c0         mov    ax,WORD PTR -64[bp]
  983.     *** 0005e1    03 46 c6         add    ax,WORD PTR -58[bp]
  984.     *** 0005e4    89 46 c4         mov    WORD PTR -60[bp],ax
  985. ; ; Line 220
  986.     *** 0005e7    ff 76 fa         push    WORD PTR -6[bp]
  987.     *** 0005ea    6a 00             push    OFFSET 0
  988.     *** 0005ec    8b 46 ba         mov    ax,WORD PTR -70[bp]
  989.     *** 0005ef    f7 6e c6         imul    WORD PTR -58[bp]
  990.     *** 0005f2    50             push    ax
  991.     *** 0005f3    8d 46 ca         lea    ax,WORD PTR -54[bp]
  992.     *** 0005f6    8c d2             mov    dx,ss
  993.     *** 0005f8    52             push    dx
  994.     *** 0005f9    50             push    ax
  995.     *** 0005fa    ff 76 f8         push    WORD PTR -8[bp]
  996.     *** 0005fd    9a 00 00 00 00         call    FAR PTR TextOut
  997. ; ; Line 221
  998.     *** 000602    ff 76 fa         push    WORD PTR -6[bp]
  999.     *** 000605    8d 46 be         lea    ax,WORD PTR -66[bp]
  1000.     *** 000608    8c d2             mov    dx,ss
  1001.     *** 00060a    52             push    dx
  1002.     *** 00060b    50             push    ax
  1003.     *** 00060c    8b 5e c8         mov    bx,WORD PTR -56[bp]
  1004.     *** 00060f    d1 e3             shl    bx,OFFSET 1
  1005.     *** 000611    ff b7 00 00         push    WORD PTR _hRGBBrush[bx]
  1006.     *** 000615    9a 00 00 00 00         call    FAR PTR FillRect
  1007. ; ; Line 222
  1008.                     L01436:
  1009. ; Line 222
  1010.     *** 00061a    83 46 ba 01         add    WORD PTR -70[bp],OFFSET 1
  1011.                     L01438:
  1012.     *** 00061e    8b 46 b8         mov    ax,WORD PTR -72[bp]
  1013.     *** 000621    39 46 ba         cmp    WORD PTR -70[bp],ax
  1014.     *** 000624    7d 03 e9 ac ff         jl    L01435
  1015.                     L01437:
  1016. ; ; ; Line 224
  1017.                     L01432:
  1018. ; Line 224
  1019.     *** 000629    83 46 c8 01         add    WORD PTR -56[bp],OFFSET 1
  1020.                     L01434:
  1021.     *** 00062d    83 7e c8 10         cmp    WORD PTR -56[bp],OFFSET 16
  1022.     *** 000631    7d 03 e9 66 ff         jl    L01431
  1023.                     L01433:
  1024.                     L01428:
  1025. ; Line 224
  1026.     *** 000636    83 46 bc 01         add    WORD PTR -68[bp],OFFSET 1
  1027.                     L01430:
  1028.     *** 00063a    83 7e bc 03         cmp    WORD PTR -68[bp],OFFSET 3
  1029.     *** 00063e    7d 03 e9 51 ff         jl    L01427
  1030.                     L01429:
  1031. ; ; ; Line 226
  1032.     *** 000643    ff 76 06         push    WORD PTR 6[bp]
  1033.     *** 000646    ff 76 fa         push    WORD PTR -6[bp]
  1034.     *** 000649    9a 00 00 00 00         call    FAR PTR ReleaseDC
  1035. ; ; Line 227
  1036. ; Line 227
  1037.                     L01415:
  1038.     *** 00064e    5f             pop    di
  1039.     *** 00064f    5e             pop    si
  1040.     *** 000650    8d 66 fe         lea    sp,WORD PTR -2[bp]
  1041.     *** 000653    1f             pop    ds
  1042.     *** 000654    5d             pop    bp
  1043.     *** 000655    4d             dec    bp
  1044.     *** 000656    cb             ret    OFFSET 0
  1045. Local Size: 72
  1046. ; Line 0
  1047. ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; Line 236
  1048. ; hWnd = 0006
  1049.                     _TestIDM_TEXT_ETO:
  1050.     *** 000658    8c d8             mov    ax,ds
  1051.     *** 00065a    90             xchg    ax,ax
  1052.     *** 00065b    45             inc    bp
  1053.     *** 00065c    55             push    bp
  1054.     *** 00065d    8b ec             mov    bp,sp
  1055.     *** 00065f    1e             push    ds
  1056.     *** 000660    8e d8             mov    ds,ax
  1057.     *** 000662    81 ec 00 00         sub    sp,OFFSET L01477
  1058.     *** 000666    56             push    si
  1059.     *** 000667    57             push    di
  1060. ; hDC = fffa
  1061. ; cbTest = fff8
  1062. ; szTest = ffca
  1063. ; i = ffc8
  1064. ; wCharHeight = ffc6
  1065. ; r = ffbe
  1066. ; j = ffbc
  1067. ; k = ffba
  1068. ; iNumLines = ffb8
  1069. ; ; Line 237
  1070. ; ; Line 238
  1071. ; ; Line 239
  1072. ; ; Line 240
  1073. ; ; Line 241
  1074. ; ; Line 242
  1075.     *** 000668    6a 2e             push    OFFSET 46
  1076.     *** 00066a    b8 4e 00         mov    ax,OFFSET L01450
  1077.     *** 00066d    8c da             mov    dx,ds
  1078.     *** 00066f    52             push    dx
  1079.     *** 000670    50             push    ax
  1080.     *** 000671    8d 46 ca         lea    ax,WORD PTR -54[bp]
  1081.     *** 000674    8c d2             mov    dx,ss
  1082.     *** 000676    52             push    dx
  1083.     *** 000677    50             push    ax
  1084.     *** 000678    9a 00 00 00 00         call    FAR PTR __fmemcpy
  1085.     *** 00067d    83 c4 0a         add    sp,OFFSET 10
  1086. ; ; Line 243
  1087.     *** 000680    8d 46 ca         lea    ax,WORD PTR -54[bp]
  1088.     *** 000683    8c d2             mov    dx,ss
  1089.     *** 000685    52             push    dx
  1090.     *** 000686    50             push    ax
  1091.     *** 000687    9a 00 00 00 00         call    FAR PTR lstrlen
  1092.     *** 00068c    89 46 f8         mov    WORD PTR -8[bp],ax
  1093. ; ; ; Line 245
  1094.     *** 00068f    ff 76 06         push    WORD PTR 6[bp]
  1095.     *** 000692    8d 46 be         lea    ax,WORD PTR -66[bp]
  1096.     *** 000695    8c d2             mov    dx,ss
  1097.     *** 000697    52             push    dx
  1098.     *** 000698    50             push    ax
  1099.     *** 000699    9a 00 00 00 00         call    FAR PTR GetClientRect
  1100. ; ; ; Line 247
  1101.     *** 00069e    ff 76 06         push    WORD PTR 6[bp]
  1102.     *** 0006a1    9a 00 00 00 00         call    FAR PTR GetDC
  1103.     *** 0006a6    89 46 fa         mov    WORD PTR -6[bp],ax
  1104. ; ; ; Line 249
  1105.     *** 0006a9    ff 76 fa         push    WORD PTR -6[bp]
  1106.     *** 0006ac    8d 46 ca         lea    ax,WORD PTR -54[bp]
  1107.     *** 0006af    8c d2             mov    dx,ss
  1108.     *** 0006b1    52             push    dx
  1109.     *** 0006b2    50             push    ax
  1110.     *** 0006b3    ff 76 f8         push    WORD PTR -8[bp]
  1111.     *** 0006b6    9a 00 00 00 00         call    FAR PTR GetTextExtent
  1112.     *** 0006bb    b9 10 00         mov    cx,OFFSET 16
  1113.     *** 0006be    9a 00 00 00 00         call    FAR PTR __aFulshr
  1114.     *** 0006c3    25 ff ff         and    ax,OFFSET -1
  1115.     *** 0006c6    83 e2 00         and    dx,OFFSET 0
  1116.     *** 0006c9    89 46 c6         mov    WORD PTR -58[bp],ax
  1117. ; ; ; Line 251
  1118.     *** 0006cc    8b 46 c4         mov    ax,WORD PTR -60[bp]
  1119.     *** 0006cf    2b d2             sub    dx,dx
  1120.     *** 0006d1    f7 76 c6         div    WORD PTR -58[bp]
  1121.     *** 0006d4    89 46 b8         mov    WORD PTR -72[bp],ax
  1122. ; ; ; Line 253
  1123.     *** 0006d7    c7 46 bc 00 00         mov    WORD PTR -68[bp],OFFSET 0
  1124.     *** 0006dc    e9 00 00         jmp    L01455
  1125.                     L01452:
  1126. ; ; Line 254
  1127.     *** 0006df    c7 46 c8 00 00         mov    WORD PTR -56[bp],OFFSET 0
  1128.     *** 0006e4    e9 00 00         jmp    L01459
  1129.                     L01456:
  1130. ; ; Line 255
  1131. ; ; Line 256
  1132.     *** 0006e7    ff 76 fa         push    WORD PTR -6[bp]
  1133.     *** 0006ea    8b 5e c8         mov    bx,WORD PTR -56[bp]
  1134.     *** 0006ed    d1 e3             shl    bx,OFFSET 1
  1135.     *** 0006ef    d1 e3             shl    bx,OFFSET 1
  1136.     *** 0006f1    ff b7 02 00         push    WORD PTR _dwRGB+2[bx]
  1137.     *** 0006f5    ff b7 00 00         push    WORD PTR _dwRGB[bx]
  1138.     *** 0006f9    9a 00 00 00 00         call    FAR PTR SetBkColor
  1139. ; ; Line 257
  1140.     *** 0006fe    ff 76 fa         push    WORD PTR -6[bp]
  1141.     *** 000701    bb 0f 00         mov    bx,OFFSET 15
  1142.     *** 000704    2b 5e c8         sub    bx,WORD PTR -56[bp]
  1143.     *** 000707    d1 e3             shl    bx,OFFSET 1
  1144.     *** 000709    d1 e3             shl    bx,OFFSET 1
  1145.     *** 00070b    ff b7 02 00         push    WORD PTR _dwRGB+2[bx]
  1146.     *** 00070f    ff b7 00 00         push    WORD PTR _dwRGB[bx]
  1147.     *** 000713    9a 00 00 00 00         call    FAR PTR SetTextColor
  1148. ; ; ; Line 259
  1149.     *** 000718    c7 46 ba 00 00         mov    WORD PTR -70[bp],OFFSET 0
  1150.     *** 00071d    e9 00 00         jmp    L01463
  1151.                     L01460:
  1152. ; ; Line 260
  1153. ; ; Line 261
  1154.     *** 000720    8b 46 ba         mov    ax,WORD PTR -70[bp]
  1155.     *** 000723    f7 6e c6         imul    WORD PTR -58[bp]
  1156.     *** 000726    89 46 c0         mov    WORD PTR -64[bp],ax
  1157. ; ; Line 262
  1158.     *** 000729    8b 46 c0         mov    ax,WORD PTR -64[bp]
  1159.     *** 00072c    03 46 c6         add    ax,WORD PTR -58[bp]
  1160.     *** 00072f    89 46 c4         mov    WORD PTR -60[bp],ax
  1161. ; ; Line 263
  1162.     *** 000732    ff 76 fa         push    WORD PTR -6[bp]
  1163.     *** 000735    6a 00             push    OFFSET 0
  1164.     *** 000737    8b 46 ba         mov    ax,WORD PTR -70[bp]
  1165.     *** 00073a    f7 6e c6         imul    WORD PTR -58[bp]
  1166.     *** 00073d    50             push    ax
  1167.     *** 00073e    6a 02             push    OFFSET 2
  1168.     *** 000740    8d 46 be         lea    ax,WORD PTR -66[bp]
  1169.     *** 000743    8c d2             mov    dx,ss
  1170.     *** 000745    52             push    dx
  1171.     *** 000746    50             push    ax
  1172.     *** 000747    8d 46 ca         lea    ax,WORD PTR -54[bp]
  1173.     *** 00074a    8c d2             mov    dx,ss
  1174.     *** 00074c    52             push    dx
  1175.     *** 00074d    50             push    ax
  1176.     *** 00074e    8b 46 f8         mov    ax,WORD PTR -8[bp]
  1177.     *** 000751    50             push    ax
  1178.     *** 000752    6a 00             push    OFFSET 0
  1179.     *** 000754    6a 00             push    OFFSET 0
  1180.     *** 000756    9a 00 00 00 00         call    FAR PTR ExtTextOut
  1181. ; ; Line 264
  1182.                     L01461:
  1183. ; Line 264
  1184.     *** 00075b    83 46 ba 01         add    WORD PTR -70[bp],OFFSET 1
  1185.                     L01463:
  1186.     *** 00075f    8b 46 b8         mov    ax,WORD PTR -72[bp]
  1187.     *** 000762    39 46 ba         cmp    WORD PTR -70[bp],ax
  1188.     *** 000765    7d 03 e9 b6 ff         jl    L01460
  1189.                     L01462:
  1190. ; ; ; Line 266
  1191.                     L01457:
  1192. ; Line 266
  1193.     *** 00076a    83 46 c8 01         add    WORD PTR -56[bp],OFFSET 1
  1194.                     L01459:
  1195.     *** 00076e    83 7e c8 10         cmp    WORD PTR -56[bp],OFFSET 16
  1196.     *** 000772    7d 03 e9 70 ff         jl    L01456
  1197.                     L01458:
  1198.                     L01453:
  1199. ; Line 266
  1200.     *** 000777    83 46 bc 01         add    WORD PTR -68[bp],OFFSET 1
  1201.                     L01455:
  1202.     *** 00077b    83 7e bc 03         cmp    WORD PTR -68[bp],OFFSET 3
  1203.     *** 00077f    7d 03 e9 5b ff         jl    L01452
  1204.                     L01454:
  1205. ; ; ; Line 268
  1206.     *** 000784    ff 76 06         push    WORD PTR 6[bp]
  1207.     *** 000787    ff 76 fa         push    WORD PTR -6[bp]
  1208.     *** 00078a    9a 00 00 00 00         call    FAR PTR ReleaseDC
  1209. ; ; Line 269
  1210. ; Line 269
  1211.                     L01441:
  1212.     *** 00078f    5f             pop    di
  1213.     *** 000790    5e             pop    si
  1214.     *** 000791    8d 66 fe         lea    sp,WORD PTR -2[bp]
  1215.     *** 000794    1f             pop    ds
  1216.     *** 000795    5d             pop    bp
  1217.     *** 000796    4d             dec    bp
  1218.     *** 000797    cb             ret    OFFSET 0
  1219. Local Size: 72
  1220. ; Line 0
  1221.