Rev 558 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 558 | Rev 630 | ||
---|---|---|---|
Line 12... | Line 12... | ||
12 | 12 | ||
Line 13... | Line 13... | ||
13 | API_VERSION equ 0x01000100 |
13 | API_VERSION equ 0x01000100 |
Line -... | Line 14... | ||
- | 14 | ||
- | 15 | DEBUG equ 1 |
|
14 | 16 | ||
Line 15... | Line 17... | ||
15 | DEBUG equ 1 |
17 | STRIDE equ 8 |
16 | 18 | ||
17 | VID_ATI equ 0x1002 |
19 | VID_ATI equ 0x1002 |
Line 58... | Line 60... | ||
58 | CURSOR CURSOR |
60 | CURSOR CURSOR |
59 | end virtual |
61 | end virtual |
Line 60... | Line 62... | ||
60 | 62 | ||
Line 61... | Line -... | ||
61 | CURSOR_SIZE equ 32 |
- | |
62 | - | ||
63 | R8500 equ 0x514C ;R200 |
- | |
64 | R9000 equ 0x4966 ;RV250 |
- | |
65 | R9200 equ 0x5961 ;RV280 |
- | |
66 | R9200SE equ 0x5964 ;RV280 |
- | |
67 | R9500 equ 0x4144 ;R300 |
- | |
68 | R9500P equ 0x4E45 ;R300 |
- | |
69 | R9550 equ 0x4153 ;RV350 |
- | |
70 | R9600 equ 0x4150 ;RV350 |
- | |
71 | R9600XT equ 0x4152 ;RV360 |
- | |
72 | R9700P equ 0x4E44 ;R300 |
- | |
73 | R9800 equ 0x4E49 ;R350 |
- | |
74 | R9800P equ 0x4E48 ;R350 |
- | |
75 | R9800XT equ 0x4E4A ;R360 |
63 | CURSOR_SIZE equ 32 |
76 | 64 | ||
- | 65 | OS_BASE equ 0x80000000 |
|
Line 77... | Line 66... | ||
77 | OS_BASE equ 0x80000000 |
66 | SLOT_BASE equ (OS_BASE+0x0080000) |
78 | SLOT_BASE equ (OS_BASE+0x0080000) |
67 | LFB_BASE equ 0xFE000000 |
Line 79... | Line 68... | ||
79 | 68 | ||
Line 99... | Line 88... | ||
99 | RD_MEM_CNTL equ 0140h |
88 | RD_MEM_CNTL equ 0140h |
100 | RD_CRTC_GEN_CNTL equ 0050h |
89 | RD_CRTC_GEN_CNTL equ 0050h |
101 | RD_CRTC_CUR_EN equ 10000h |
90 | RD_CRTC_CUR_EN equ 10000h |
102 | RD_DISPLAY_BASE_ADDR equ 023ch |
91 | RD_DISPLAY_BASE_ADDR equ 023ch |
103 | RD_DEFAULT_OFFSET equ 16e0h |
92 | RD_DEFAULT_OFFSET equ 16e0h |
- | 93 | ||
104 | CUR_HORZ_VERT_OFF equ 0268h |
94 | CUR_HORZ_VERT_OFF equ 0268h |
105 | CUR_HORZ_VERT_POSN equ 0264h |
95 | CUR_HORZ_VERT_POSN equ 0264h |
106 | CUR_OFFSET equ 0260h |
96 | CUR_OFFSET equ 0260h |
- | 97 | ||
- | 98 | ||
107 | RD_RB3D_CNTL equ 1c3ch |
99 | RD_RB3D_CNTL equ 1c3ch |
108 | RD_RBBM_STATUS equ 0e40h |
100 | RD_RBBM_STATUS equ 0e40h |
109 | RD_RBBM_FIFOCNT_MASK equ 007fh |
101 | RD_RBBM_FIFOCNT_MASK equ 007fh |
110 | RD_RBBM_ACTIVE equ 80000000h |
102 | RD_RBBM_ACTIVE equ 80000000h |
111 | RD_TIMEOUT equ 2000000 |
103 | RD_TIMEOUT equ 2000000 |
Line 177... | Line 169... | ||
177 | section '.flat' code readable align 16 |
169 | section '.flat' code readable align 16 |
Line 178... | Line 170... | ||
178 | 170 | ||
Line 179... | Line 171... | ||
179 | proc START stdcall, state:dword |
171 | proc START stdcall, state:dword |
180 | 172 | ||
Line 181... | Line 173... | ||
181 | cmp [state], 1 |
173 | cmp [state], 1 |
182 | jne .exit |
174 | jne .restore |
183 | 175 | ||
184 | if DEBUG |
176 | if DEBUG |
Line 185... | Line 177... | ||
185 | mov esi, msgInit |
177 | mov esi, msgInit |
186 | call SysMsgBoardStr |
178 | call SysMsgBoardStr |
187 | end if |
179 | end if |
Line -... | Line 180... | ||
- | 180 | ||
- | 181 | call detect_ati |
|
- | 182 | test eax, eax |
|
- | 183 | jz .fail |
|
- | 184 | ||
- | 185 | mov ebx, [SelectHwCursor] |
|
188 | 186 | mov ecx, [SetHwCursor] |
|
189 | call detect_ati |
187 | mov edx, [HwCursorRestore] |
- | 188 | mov esi, [HwCursorCreate] |
|
- | 189 | ||
190 | test eax, eax |
190 | mov [oldSelect], ebx |
Line 191... | Line 191... | ||
191 | jz .fail |
191 | mov [oldSet], ecx |
192 | 192 | mov [oldRestore], edx |
|
193 | call init_ati |
193 | mov [oldCreate], esi |
194 | test eax, eax |
194 | |
Line 202... | Line 202... | ||
202 | add edx, 8 |
202 | add edx, 8 |
203 | mov [cursor_end], edx |
203 | mov [cursor_end], edx |
Line 204... | Line 204... | ||
204 | 204 | ||
205 | stdcall RegService, sz_ati_srv, service_proc |
205 | stdcall RegService, sz_ati_srv, service_proc |
206 | test eax, eax |
206 | test eax, eax |
- | 207 | jz .restore |
|
- | 208 | ||
- | 209 | mov ebx, [fnSelect] |
|
- | 210 | mov ecx, [fnSet] |
|
- | 211 | ||
207 | jz .fail |
212 | mov [SelectHwCursor], ebx |
208 | mov dword [SetHwCursor], drvCursorPos ;enable hardware cursor |
213 | mov [SetHwCursor], ecx |
209 | mov dword [HwCursorRestore], drv_restore |
214 | mov dword [HwCursorRestore], drv_restore |
- | 215 | mov dword [HwCursorCreate], ati_cursor |
|
- | 216 | ||
- | 217 | ret |
|
- | 218 | .restore: |
|
- | 219 | mov eax, [oldSelect] |
|
- | 220 | mov ebx, [oldSet] |
|
- | 221 | mov ecx, [oldRestore] |
|
- | 222 | mov edx, [oldCreate] |
|
- | 223 | ||
- | 224 | mov [SelectHwCursor], eax |
|
- | 225 | mov [SetHwCursor], ebx |
|
- | 226 | mov [HwCursorRestore], ecx |
|
- | 227 | mov [HwCursorCreate], edx |
|
- | 228 | ||
210 | mov dword [HwCursorCreate], ati_cursor |
229 | xor eax, eax |
- | 230 | ret |
|
211 | ret |
231 | |
212 | .fail: |
232 | .fail: |
213 | if DEBUG |
233 | if DEBUG |
214 | mov esi, msgFail |
234 | mov esi, msgFail |
215 | call SysMsgBoardStr |
235 | call SysMsgBoardStr |
Line 216... | Line -... | ||
216 | end if |
- | |
217 | 236 | end if |
|
218 | .exit: |
- | |
219 | xor eax, eax |
- | |
220 | ; mov ebx, SetHwCursor |
237 | |
221 | ; mov dword [ebx], eax ;force disable hardware cursor |
238 | xor eax, eax |
Line 222... | Line 239... | ||
222 | ret |
239 | ret |
223 | endp |
240 | endp |
Line 284... | Line 301... | ||
284 | test ebx, ebx |
301 | test ebx, ebx |
285 | jz .next |
302 | jz .next |
Line 286... | Line 303... | ||
286 | 303 | ||
287 | cmp eax, ebx |
304 | cmp eax, ebx |
288 | je .found |
305 | je .found |
289 | add edi, 4 |
306 | add edi, STRIDE |
290 | jmp @B |
- | |
291 | 307 | jmp @B |
|
292 | .next: |
308 | .next: |
293 | inc [devfn] |
309 | inc [devfn] |
294 | cmp [devfn], 256 |
310 | cmp [devfn], 256 |
295 | jb .next_dev |
311 | jb .next_dev |
Line 299... | Line 315... | ||
299 | cmp eax, [last_bus] |
315 | cmp eax, [last_bus] |
300 | jna .next_bus |
316 | jna .next_bus |
301 | xor eax, eax |
317 | xor eax, eax |
302 | ret |
318 | ret |
303 | .found: |
319 | .found: |
304 | xor eax, eax |
320 | mov eax, [edi+4] |
305 | inc eax |
- | |
306 | ret |
321 | ret |
307 | .err: |
322 | .err: |
308 | xor eax, eax |
323 | xor eax, eax |
309 | ret |
324 | ret |
310 | endp |
325 | endp |
Line 311... | Line 326... | ||
311 | 326 | ||
312 | align 4 |
327 | align 4 |
Line 313... | Line 328... | ||
313 | proc init_ati |
328 | proc init_r200 |
314 | 329 | ||
315 | stdcall AllocKernelSpace, dword 0x10000 |
330 | stdcall AllocKernelSpace, dword 0x10000 |
Line 344... | Line 359... | ||
344 | mov ebx, 2 |
359 | mov ebx, 2 |
345 | shl ebx,20 |
360 | shl ebx,20 |
346 | or eax, ebx |
361 | or eax, ebx |
347 | mov [edi+0x50], eax |
362 | mov [edi+0x50], eax |
Line 348... | Line 363... | ||
348 | 363 | ||
- | 364 | call r200_ShowCursor |
|
- | 365 | ||
- | 366 | mov [fnSelect], r200_SelectCursor |
|
- | 367 | mov [fnSet], r200_SetCursor |
|
- | 368 | ||
- | 369 | xor eax, eax |
|
- | 370 | inc eax |
|
- | 371 | .fail: |
|
- | 372 | ret |
|
- | 373 | endp |
|
- | 374 | ||
- | 375 | align 4 |
|
- | 376 | proc init_r500 |
|
- | 377 | ||
- | 378 | stdcall AllocKernelSpace, dword 0x10000 |
|
- | 379 | test eax, eax |
|
- | 380 | jz .fail |
|
- | 381 | ||
- | 382 | mov [ati_io], eax |
|
- | 383 | ||
- | 384 | stdcall PciRead32, [bus], [devfn], dword 0x18 |
|
- | 385 | and eax, 0xFFFF0000 |
|
- | 386 | mov esi, eax |
|
- | 387 | ||
- | 388 | mov edi, [ati_io] |
|
- | 389 | mov edx, 16 |
|
- | 390 | @@: |
|
- | 391 | stdcall MapPage,edi,esi,PG_SW+PG_NOCACHE |
|
- | 392 | add edi, 0x1000 |
|
- | 393 | add esi, 0x1000 |
|
- | 394 | dec edx |
|
- | 395 | jnz @B |
|
- | 396 | ||
- | 397 | mov [fnSelect], r500_SelectCursor |
|
- | 398 | mov [fnSet], r500_SetCursor |
|
- | 399 | ||
- | 400 | rdr eax, 0x6110 |
|
- | 401 | mov [r500_LFB], eax |
|
- | 402 | ||
- | 403 | wrr 0x6410, 0x001F001F |
|
- | 404 | wrr 0x6400, dword (3 shl 8) |
|
349 | call drvShowCursor |
405 | |
350 | xor eax, eax |
406 | xor eax, eax |
351 | inc eax |
407 | inc eax |
352 | .fail: |
408 | .fail: |
353 | ret |
409 | ret |
Line -... | Line 410... | ||
- | 410 | endp |
|
354 | endp |
411 | |
355 | 412 | ||
356 | align 4 |
413 | align 4 |
Line -... | Line 414... | ||
- | 414 | drv_restore: |
|
- | 415 | ret 8 |
|
- | 416 | ||
- | 417 | ||
- | 418 | align 4 |
|
- | 419 | proc r500_SelectCursor stdcall,hcursor:dword |
|
- | 420 | ||
- | 421 | mov esi, [hcursor] |
|
- | 422 | ||
- | 423 | mov edx, [esi+CURSOR.base] |
|
- | 424 | sub edx, LFB_BASE |
|
- | 425 | add edx, [r500_LFB] |
|
- | 426 | wrr 0x6408, edx |
|
- | 427 | ||
- | 428 | mov eax, [esi+CURSOR.hot_x] |
|
- | 429 | shl eax, 16 |
|
- | 430 | mov ax, word [esi+CURSOR.hot_y] |
|
- | 431 | wrr 0x6418, eax |
|
357 | drv_restore: |
432 | ret |
- | 433 | endp |
|
- | 434 | ||
- | 435 | align 4 |
|
- | 436 | proc r500_SetCursor stdcall, hcursor:dword, x:dword, y:dword |
|
- | 437 | pushfd |
|
- | 438 | cli |
|
- | 439 | ||
- | 440 | mov esi, [hcursor] |
|
- | 441 | mov edi, [ati_io] |
|
- | 442 | ||
- | 443 | mov eax, [x] |
|
- | 444 | shl eax, 16 |
|
- | 445 | mov ax, word [y] |
|
- | 446 | ||
- | 447 | mov [edi+0x6414], eax |
|
- | 448 | or dword [edi+0x6400], 1 |
|
- | 449 | ||
- | 450 | popfd |
|
- | 451 | ret |
|
358 | ret 8 |
452 | endp |
- | 453 | ||
- | 454 | align 4 |
|
- | 455 | r500_ShowCursor: |
|
- | 456 | ||
- | 457 | mov edi, [ati_io] |
|
- | 458 | or dword [edi+0x6400], 1 |
|
- | 459 | ret |
|
359 | 460 | ||
Line 360... | Line 461... | ||
360 | align 4 |
461 | align 4 |
361 | drvShowCursor: |
462 | r200_ShowCursor: |
362 | mov edi, [ati_io] |
463 | mov edi, [ati_io] |
363 | 464 | ||
Line -... | Line 465... | ||
- | 465 | mov eax, [edi+RD_CRTC_GEN_CNTL] |
|
- | 466 | bts eax,16 |
|
- | 467 | mov [edi+RD_CRTC_GEN_CNTL], eax |
|
- | 468 | ret |
|
- | 469 | ||
- | 470 | ||
- | 471 | align 4 |
|
364 | mov eax, [edi+RD_CRTC_GEN_CNTL] |
472 | proc r200_SelectCursor stdcall,hcursor:dword |
365 | bts eax,16 |
473 | |
366 | mov [edi+RD_CRTC_GEN_CNTL], eax |
474 | ret |
367 | ret |
475 | endp |
Line 368... | Line 476... | ||
368 | 476 | ||
369 | align 4 |
477 | align 4 |
Line 814... | Line 922... | ||
814 | jnz @B |
922 | jnz @B |
815 | .exit: |
923 | .exit: |
816 | ret |
924 | ret |
817 | endp |
925 | endp |
Line -... | Line 926... | ||
- | 926 | ||
818 | 927 | ||
819 | align 4 |
928 | align 4 |
820 | engWaitForFifo: |
929 | engWaitForFifo: |
821 | cnt equ bp+8 |
930 | cnt equ bp+8 |
822 | push ebp |
931 | push ebp |
Line 856... | Line 965... | ||
856 | .exit: |
965 | .exit: |
857 | call engFlush |
966 | call engFlush |
858 | ret |
967 | ret |
859 | endp |
968 | endp |
Line -... | Line 969... | ||
- | 969 | ||
860 | 970 | ||
861 | align 4 |
971 | align 4 |
Line 862... | Line 972... | ||
862 | proc engRestore |
972 | proc engRestore |
863 | 973 | ||
Line 922... | Line 1032... | ||
922 | call engWaitForIdle |
1032 | call engWaitForIdle |
Line 923... | Line 1033... | ||
923 | 1033 | ||
924 | ret |
1034 | ret |
Line 925... | Line -... | ||
925 | endp |
- | |
926 | - | ||
927 | align 4 |
- | |
928 | engSetupSolidFill: |
- | |
Line 929... | Line -... | ||
929 | push ebp |
- | |
930 | mov ebp, esp |
- | |
Line -... | Line 1035... | ||
- | 1035 | endp |
|
- | 1036 | ||
- | 1037 | ||
- | 1038 | ||
- | 1039 | align 4 |
|
- | 1040 | dword2str: |
|
- | 1041 | mov esi, hex_buff |
|
- | 1042 | mov ecx, -8 |
|
931 | 1043 | @@: |
|
- | 1044 | rol eax, 4 |
|
- | 1045 | mov ebx, eax |
|
- | 1046 | and ebx, 0x0F |
|
- | 1047 | mov bl, [ebx+hexletters] |
|
Line 932... | Line 1048... | ||
932 | push dword 3 |
1048 | mov [8+esi+ecx], bl |
933 | call engWaitForFifo |
1049 | inc ecx |
Line 934... | Line 1050... | ||
934 | 1050 | jnz @B |
|
935 | wrr RD_DP_GUI_MASTER_CNTL, cmdSolidFill |
1051 | ret |
- | 1052 | ||
- | 1053 | hexletters db '0123456789ABCDEF' |
|
936 | 1054 | hex_buff db 8 dup(0),13,10,0 |
|
- | 1055 | ||
- | 1056 | R8500 equ 0x514C ;R200 |
|
- | 1057 | R9000 equ 0x4966 ;RV250 |
|
- | 1058 | R9200 equ 0x5961 ;RV280 |
|
- | 1059 | R9200SE equ 0x5964 ;RV280 |
|
937 | mov eax, [ebp+8] |
1060 | R9500 equ 0x4144 ;R300 |
- | 1061 | R9500P equ 0x4E45 ;R300 |
|
- | 1062 | R9550 equ 0x4153 ;RV350 |
|
Line 938... | Line 1063... | ||
938 | wrr RD_DP_BRUSH_FRGD_CLR,eax |
1063 | R9600 equ 0x4150 ;RV350 |
939 | - | ||
940 | mov edi, [ati_io] |
- | |
941 | mov dword [edi+RD_DP_CNTL],(RD_DST_X_LEFT_TO_RIGHT or RD_DST_Y_TOP_TO_BOTTOM) |
- | |
942 | leave |
- | |
943 | ret 4 |
- | |
944 | - | ||
945 | - | ||
946 | align 4 |
- | |
947 | drvSolidFill: |
- | |
Line -... | Line 1064... | ||
- | 1064 | R9600XT equ 0x4152 ;RV360 |
|
- | 1065 | R9700P equ 0x4E44 ;R300 |
|
- | 1066 | R9800 equ 0x4E49 ;R350 |
|
- | 1067 | R9800P equ 0x4E48 ;R350 |
|
948 | ;x:word,y:word,w:word,h:word,color:dword |
1068 | R9800XT equ 0x4E4A ;R360 |
- | 1069 | ||
- | 1070 | ||
- | 1071 | align 4 |
|
- | 1072 | ||
- | 1073 | devices dd (R8500 shl 16)+VID_ATI, init_r200 |
|
- | 1074 | dd (R9000 shl 16)+VID_ATI, init_r200 |
|
- | 1075 | dd (R9200 shl 16)+VID_ATI, init_r200 |
|
- | 1076 | dd (R9200SE shl 16)+VID_ATI, init_r200 |
|
- | 1077 | dd (R9500 shl 16)+VID_ATI, init_r200 |
|
- | 1078 | dd (R9500P shl 16)+VID_ATI, init_r200 |
|
- | 1079 | dd (R9550 shl 16)+VID_ATI, init_r200 |
|
- | 1080 | ||
949 | push ebp |
1081 | dd (R9600 shl 16)+VID_ATI, init_r200 |
- | 1082 | dd (R9600XT shl 16)+VID_ATI, init_r200 |
|
- | 1083 | dd (0x4155 shl 16)+VID_ATI, init_r200 ;RV350 9600 |
|
- | 1084 | dd (0x4151 shl 16)+VID_ATI, init_r200 ;RV350 9600 |
|
- | 1085 | dd (0x4E51 shl 16)+VID_ATI, init_r200 ;RV350 9600 |
|
- | 1086 | ||
- | 1087 | dd (R9700P shl 16)+VID_ATI, init_r200 |
|
- | 1088 | ||
- | 1089 | dd (0x4148 shl 16)+VID_ATI, init_r200 ;R350 9800 |
|
- | 1090 | dd (R9800 shl 16)+VID_ATI, init_r200 |
|
- | 1091 | dd (R9800P shl 16)+VID_ATI, init_r200 |
|
- | 1092 | dd (R9800XT shl 16)+VID_ATI, init_r200 |
|
- | 1093 | ||
- | 1094 | dd (0x5B60 shl 16)+VID_ATI, init_r200 ;RV370 X300/X550 |
|
- | 1095 | dd (0x5B63 shl 16)+VID_ATI, init_r200 ;RV370 X550 |
|
- | 1096 | dd (0x5B62 shl 16)+VID_ATI, init_r200 ;RV380x X600 |
|
- | 1097 | dd (0x3E50 shl 16)+VID_ATI, init_r200 ;RV380 X600/X550 |
|
- | 1098 | ||
- | 1099 | dd (0x5B4F shl 16)+VID_ATI, init_r200 ;RV410 X700 |
|
- | 1100 | dd (0x5B4D shl 16)+VID_ATI, init_r200 ;RV410 X700 |
|
- | 1101 | dd (0x5B4B shl 16)+VID_ATI, init_r200 ;RV410 X700 |
|
- | 1102 | dd (0x5B4C shl 16)+VID_ATI, init_r200 ;RV410 X700 |
|
- | 1103 | ||
- | 1104 | dd (0x4a49 shl 16)+VID_ATI, init_r200 ;R420 X800 PRO/GTO |
|
- | 1105 | dd (0x4a4B shl 16)+VID_ATI, init_r200 ;R420 X800 |
|
- | 1106 | dd (0x5549 shl 16)+VID_ATI, init_r200 ;R423 X800 |
|
- | 1107 | dd (0x4a4A shl 16)+VID_ATI, init_r200 ;R420 X800 |
|
- | 1108 | dd (0x554F shl 16)+VID_ATI, init_r200 ;R430 X800 |
|
- | 1109 | dd (0x554D shl 16)+VID_ATI, init_r200 ;R430 X800 |
|
- | 1110 | dd (0x554E shl 16)+VID_ATI, init_r200 ;R430 X800 |
|
- | 1111 | dd (0x5D57 shl 16)+VID_ATI, init_r200 ;R423 X800 XT |
|
- | 1112 | dd (0x4A50 shl 16)+VID_ATI, init_r200 ;R420 X800 XT |
|
- | 1113 | dd (0x554A shl 16)+VID_ATI, init_r200 ;R423 X800 XT |
|
- | 1114 | dd (0x5D4F shl 16)+VID_ATI, init_r200 ;R423 X800/X850 |
|
- | 1115 | dd (0x554B shl 16)+VID_ATI, init_r200 ;R423 X800 GT |
|
- | 1116 | ||
- | 1117 | dd (0x4B4B shl 16)+VID_ATI, init_r200 ;R481 X850 |
|
- | 1118 | dd (0x4B49 shl 16)+VID_ATI, init_r200 ;R481 X850 |
|
- | 1119 | dd (0x4B4C shl 16)+VID_ATI, init_r200 ;R481 X850 |
|
- | 1120 | ||
- | 1121 | dd (0x5D4D shl 16)+VID_ATI, init_r200 ;R480 X850 |
|
- | 1122 | dd (0x5D52 shl 16)+VID_ATI, init_r200 ;R480 X850 |
|
- | 1123 | ||
- | 1124 | dd (0x791E shl 16)+VID_ATI, init_r500 ;RS690 X1200 |
|
- | 1125 | ||
- | 1126 | dd (0x7140 shl 16)+VID_ATI, init_r500 ;RV515 X1300 |
|
- | 1127 | dd (0x7142 shl 16)+VID_ATI, init_r500 ;RV515 X1300 |
|
- | 1128 | dd (0x7146 shl 16)+VID_ATI, init_r500 ;RV515 X1300 |
|
- | 1129 | dd (0x714D shl 16)+VID_ATI, init_r500 ;RV515 X1300 |
|
- | 1130 | dd (0x714E shl 16)+VID_ATI, init_r500 ;RV515 X1300 |
|
- | 1131 | ||
- | 1132 | dd (0x7183 shl 16)+VID_ATI, init_r500 ;RV515 X1300 |
|
- | 1133 | dd (0x7187 shl 16)+VID_ATI, init_r500 ;RV515 X1300 |
|
- | 1134 | dd (0x718F shl 16)+VID_ATI, init_r500 ;RV515 X1300 |
|
- | 1135 | ||
- | 1136 | dd (0x7143 shl 16)+VID_ATI, init_r500 ;RV515 X1550 |
|
- | 1137 | dd (0x7147 shl 16)+VID_ATI, init_r500 ;RV515 X1550 |
|
- | 1138 | dd (0x715F shl 16)+VID_ATI, init_r500 ;RV515 X1550 |
|
- | 1139 | dd (0x7193 shl 16)+VID_ATI, init_r500 ;RV515 X1550 |
|
- | 1140 | dd (0x719F shl 16)+VID_ATI, init_r500 ;RV515 X1550 |
|
- | 1141 | ||
- | 1142 | dd (0x71C0 shl 16)+VID_ATI, init_r500 ;RV530 X1600 |
|
- | 1143 | dd (0x71C1 shl 16)+VID_ATI, init_r500 ;RV535 X1650 |
|
- | 1144 | dd (0x71C2 shl 16)+VID_ATI, init_r500 ;RV530 X1600 |
|
- | 1145 | dd (0x71C3 shl 16)+VID_ATI, init_r500 ;RV535 X1600 |
|
- | 1146 | dd (0x71C6 shl 16)+VID_ATI, init_r500 ;RV530 X1600 |
|
- | 1147 | dd (0x71C7 shl 16)+VID_ATI, init_r500 ;RV534 X1650 |
|
- | 1148 | ||
- | 1149 | dd (0x7181 shl 16)+VID_ATI, init_r500 ;RV515 X1600 |
|
- | 1150 | dd (0x71CD shl 16)+VID_ATI, init_r500 ;RV530 X1600 |
|
- | 1151 | ||
- | 1152 | dd (0x7291 shl 16)+VID_ATI, init_r500 ;R580 X1650 |
|
- | 1153 | dd (0x7293 shl 16)+VID_ATI, init_r500 ;R580 X1650 |
|
- | 1154 | ||
- | 1155 | dd (0x7100 shl 16)+VID_ATI, init_r500 ;RV520 X1800 |
|
- | 1156 | dd (0x7109 shl 16)+VID_ATI, init_r500 ;RV520 X1800 |
|
- | 1157 | dd (0x710A shl 16)+VID_ATI, init_r500 ;RV520 X1800 GTO |
|
- | 1158 | ||
- | 1159 | dd (0x7249 shl 16)+VID_ATI, init_r500 ;RV580 X1900 |
|
- | 1160 | dd (0x724B shl 16)+VID_ATI, init_r500 ;RV580 X1900 GT |
|
- | 1161 | ||
- | 1162 | dd (0x7240 shl 16)+VID_ATI, init_r500 ;RV580 X1950 |
|
- | 1163 | dd (0x7244 shl 16)+VID_ATI, init_r500 ;RV580 X1950 |
|
- | 1164 | dd (0x7248 shl 16)+VID_ATI, init_r500 ;RV580 X1950 |
|
- | 1165 | ||
Line 950... | Line -... | ||
950 | mov ebp, esp |
- | |
951 | x equ ebp+8 |
1166 | dd (0x7288 shl 16)+VID_ATI, init_r500 ;R580 X1950 GT |
952 | y equ ebp+12 |
- | |
953 | w equ ebp+16 |
1167 | dd (0x7280 shl 16)+VID_ATI, init_r500 ;R580 X1950 PRO |
954 | h equ ebp+20 |
- | |
955 | color equ ebp+24 |
- | |
956 | - | ||
957 | push dword [ebp+24] |
- | |
958 | call engSetupSolidFill |
- | |
Line 959... | Line -... | ||
959 | - | ||
960 | push dword 2 |
- | |
961 | call engWaitForFifo |
- | |
962 | - | ||
963 | mov edi, [ati_io] |
- | |
964 | - | ||
965 | mov eax, [y] |
- | |
966 | mov ebx, [x] |
- | |
967 | shl eax,16 |
- | |
Line 968... | Line -... | ||
968 | or eax, ebx |
- | |
969 | - | ||
970 | mov ecx, [w] |
- | |
971 | mov edx, [h] |
- | |
972 | shl ecx,16 |
- | |
973 | or ecx, edx |
- | |
974 | mov [edi+RD_DST_Y_X], eax |
- | |
975 | mov [edi+RD_DST_WIDTH_HEIGHT], ecx |
- | |
976 | call engFlush |
- | |
977 | leave |
- | |
978 | ret 20 |
- | |
979 | - | ||
980 | align 4 |
- | |
981 | devices dd (R8500 shl 16)+VID_ATI |
- | |
982 | dd (R9000 shl 16)+VID_ATI |
1168 | |
Line 983... | Line 1169... | ||
983 | dd (R9200 shl 16)+VID_ATI |
1169 | dd (0x94C3 shl 16)+VID_ATI, init_r500 ;RV610 HD 2400 PRO |
Line -... | Line 1170... | ||
- | 1170 | dd (0x94C1 shl 16)+VID_ATI, init_r500 ;RV610 HD 2400 XT |
|
984 | dd (R9200SE shl 16)+VID_ATI |
1171 | |
Line 985... | Line 1172... | ||
985 | dd (R9500 shl 16)+VID_ATI |
1172 | dd (0x9589 shl 16)+VID_ATI, init_r500 ;RV630 HD 2600 PRO |
986 | dd (R9500P shl 16)+VID_ATI |
1173 | dd (0x958A shl 16)+VID_ATI, init_r500 ;RV630 HD 2600 X2 |
987 | dd (R9550 shl 16)+VID_ATI |
1174 | dd (0x9588 shl 16)+VID_ATI, init_r500 ;RV630 HD 2600 XT |
988 | dd (R9600 shl 16)+VID_ATI |
1175 | |
- | 1176 | dd (0x9403 shl 16)+VID_ATI, init_r500 ;R600 HD 2900 PRO |
|
- | 1177 | dd (0x9409 shl 16)+VID_ATI, init_r500 ;R600 HD 2900 XT |
|
- | 1178 | ||
- | 1179 | ||
- | 1180 | dd 0 ;terminator |
|
- | 1181 | ||
- | 1182 | version dd (5 shl 16) or (API_VERSION and 0xFFFF) |
|
- | 1183 | ||
- | 1184 | ||
- | 1185 | sz_ati_srv db 'HWCURSOR',0 |
|
- | 1186 | ||
- | 1187 | msgInit db 'detect hardware...',13,10,0 |
|
- | 1188 | msgPCI db 'PCI accsess not supported',13,10,0 |
|
- | 1189 | msgFail db 'device not found',13,10,0 |
|
- | 1190 | msg_neg db 'neg ecx',13,10,0 |
|
989 | dd (R9600XT shl 16)+VID_ATI |
1191 | |
990 | dd (R9700P shl 16)+VID_ATI |
1192 | if 0 |
Line 991... | Line 1193... | ||
991 | dd (R9800 shl 16)+VID_ATI |
1193 | msg6100 db '6100: ',0 |
Line 1010... | Line 1212... | ||
1010 | 1212 | ||
1011 | cursor_map rd 2 |
1213 | cursor_map rd 2 |
1012 | cursor_start rd 1 |
1214 | cursor_start rd 1 |
Line -... | Line 1215... | ||
- | 1215 | cursor_end rd 1 |
|
- | 1216 | ||
- | 1217 | fnSelect rd 1 |
|
- | 1218 | fnSet rd 1 |
|
- | 1219 | oldSelect rd 1 |
|
- | 1220 | oldSet rd 1 |
|
- | 1221 | oldRestore rd 1 |
|
- | 1222 | oldCreate rd 1 |
|
- | 1223 | ||
1013 | cursor_end rd 1 |
1224 | r500_LFB rd 1 |
1014 | 1225 | ||
1015 | bus dd ? |
1226 | bus dd ? |