[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]