[Back to EGAVGA SWAG index]  [Back to Main SWAG index]  [Original]


{
> I don't see the need for Ystart.  Offset address =
well, Ystart is needed basically because I'm using two pages, and depending
on which page is visible at the time, ystart varies...

> (BytesPerScanLine * y)+x. Point_VESA should not XOR AX,AX after
> @skip.  The AH contains the error return from $4f05 function.
> AH=00h is success.

ok, but this doesn't solve my problem...  my problem is that I always get to
'see' the wrong colors - I don't mind which error codes there are :-))

> P.S.  Can you show me how to VESA PutPixel to 640x480x16 without using BGI?
sure, but 640x480x16 still is a normal VGA and not a VESA mode:
}

PROCEDURE plot_640x480x16; ASSEMBLER;
ASM
  MOV ES, SEGA000
  MOV DI, px
  MOV CX, DI
  SHR DI, 3
  MOV AX, py
  SHL AX, 4
  ADD DI, AX
  SHL AX, 2
  ADD DI, AX
  AND CL, $07
  MOV AH, $80
  SHR AH, CL
  MOV AL, $08
  MOV DX, $03CE
  OUT DX, AX
  MOV AX, pc
  MOV AH, [ES:DI]
  MOV [ES:DI], AL
END;

{
this should work (as always: px,py are the coordinates and pc is the color
(all global INTEGERs)
}

[Back to EGAVGA SWAG index]  [Back to Main SWAG index]  [Original]