===== 01 SGR F17 GPUSTAT AND GPUREAD | BIOS 19951204 System ROM Version 3.0 11/18/96 A BadVaddr as the group starts: 00000480 GPUSTAT bits 24-30 read four times back to back after a GP1 write, with k NOPs first (row 32, G:24-31), cached code, two samples; then GPUREAD after C0h reads (row 33). GP1(04h) 1, 0 NOPs: 14 36 36 36 / 14 36 36 36 GP1(04h) 1, 1 NOPs: 14 36 36 36 / 14 36 36 36 GP1(04h) 1, 2 NOPs: 34 36 36 36 / 34 36 36 36 GP1(04h) 1, 4 NOPs: 36 36 36 36 / 36 36 36 36 GP1(04h) 1, 8 NOPs: 36 36 36 36 / 36 36 36 36 GP1(04h) 2, 0 NOPs: 14 56 56 56 / 14 56 56 56 GP1(04h) 2, 1 NOPs: 14 56 56 56 / 14 56 56 56 GP1(04h) 2, 2 NOPs: 54 56 56 56 / 54 56 56 56 GP1(04h) 2, 4 NOPs: 56 56 56 56 / 56 56 56 56 GP1(04h) 2, 8 NOPs: 56 56 56 56 / 56 56 56 56 GP1(04h) 3, 0 NOPs: 14 74 74 74 / 14 74 74 74 GP1(04h) 3, 1 NOPs: 14 74 74 74 / 14 74 74 74 GP1(04h) 3, 2 NOPs: 74 74 74 74 / 74 74 74 74 GP1(04h) 3, 4 NOPs: 74 74 74 74 / 74 74 74 74 GP1(04h) 3, 8 NOPs: 74 74 74 74 / 74 74 74 74 GP1(01h) after 100 words of A0h, 0 NOPs: 10 10 10 14 / 10 10 10 14 GP1(01h) after 100 words of A0h, 1 NOPs: 10 10 10 14 / 10 10 10 14 GP1(01h) after 100 words of A0h, 2 NOPs: 10 10 10 14 / 10 10 10 14 GP1(01h) after 100 words of A0h, 4 NOPs: 10 10 10 14 / 10 10 10 14 GP1(01h) after 100 words of A0h, 8 NOPs: 10 10 14 14 / 10 10 14 14 C0h reads of a 32x2 block at 0,300 whose pixel x,y is 1000h+100h*(y-300)+x: the words, GPUSTAT, then three more GPUREAD loads. C0h 1x1 at 0,300: 10011000; GPUSTAT 14062518; then 44444444 44444444 44444444 C0h 2x1 at 2,300: 10031002; GPUSTAT 14062518; then 44444444 44444444 44444444 C0h 3x1 at 4,300: 10051004 10071006; GPUSTAT 14062518; then 10051004 10051004 10051004 C0h 4x1 at 8,300: 10091008 100B100A; GPUSTAT 14062518; then 10091008 10091008 10091008 C0h 2x2 at 12,300: 100D100C 110D110C; GPUSTAT 14062518; then 100D100C 100D100C 100D100C C0h 4x2 at 16,300: 10111010 10131012 11111110 11131112; GPUSTAT 14062518; then 10111010 10111010 10111010 Done.