20.09.2008, 11:16
Ahja, stimmt, das waren 6Bit-Werte:
Und der interessante Teil:
Genaugenommen ist das aber ja nur ein Darstellungsproblem, die Indizes müssten auch mit falscher Palette stimmen. Also Pixeldaten beschaffen, Screenshot-Palette zuweisen, ändern, Pixeldaten wieder zurückschieben. Dass Schick intern mit 6Bit-Paletten arbeitet, sollte da völlig egal sein.
Code:
procedure viewfac;
begin
asm
mov ax,13h
int 10h
mov ax,1012h
mov bx,0
mov cx,256
mov dx,seg pal
mov es,dx
mov dx,offset pal
int 10h
end;
for y:=0 to 31 do
for x:=0 to 31 do
mem[$a000:y*320+x]:=dat[$2ca+y*32+x];
if keypressed then if readkey=#0 then readkey;
asm
mov ax,3
int 10h
end;
end;
Und der interessante Teil:
Zitat:VIDEO - SET BLOCK OF DAC REGISTERS (VGA/MCGA)
AX = 1012h
BX = starting color register
CX = number of registers to set
ES: DX -> table of 3*CX bytes where each 3 byte group represents one
byte each of red, green and blue (0-63)
Genaugenommen ist das aber ja nur ein Darstellungsproblem, die Indizes müssten auch mit falscher Palette stimmen. Also Pixeldaten beschaffen, Screenshot-Palette zuweisen, ändern, Pixeldaten wieder zurückschieben. Dass Schick intern mit 6Bit-Paletten arbeitet, sollte da völlig egal sein.