RE: MDA video detection request.

From: Soeren Sonnenburg (sonnenburg@informatik.hu-berlin.de)
Date: Sun Jul 09 2000 - 10:18:19 EST


How about (found somewhere in net):

btw: is someone to do hi-resolution(80x43) for hercules (hga not mda -
cards) ?

greetings,
Soeren.
-----------snip------------

Hercules Graphics Adapter

  3B0h synonym for 3B4h

  3B1h synonym for 3B5h

  3B2h synonym for 3B4h

  3B3h synonym for 3B5h

  3B8h (W)
  bit 1 Hercules graphics mode if set, text mode else
      3 Video enabled if set
      5 Blink enabled if set
      7 Graphics page 1 displayed if set, page 0 else

  3BAh (R) Status Register
  bit 0 Horizontal sync
      3 Video signal
      7 Vertical sync

  3BAh (W) Mode Select Register
  bit 3 132-column text for monochrome

  3BBh (W) Lightpen Strobe Reset
         Writing to this register will clear the lightpen strobe.

  3BFh (W)
  bit 0 Setting of graphics mode bit (3B8h bit 1) enabled if set
      1 Setting of graphics page bit (3B8h bit 7) enabled if set

  ID Hercules Graphics Card:

  old:=rdinx($3B4,$a);
  outp($3B5,6); {Change Cursor End}
  for x:=1 to 50 do; {Wait for CRTC to respond}
  val:=inp($3B5);
  outp($3B5,old);
  if val=6 then
  begin
    x:=50000;
    repeat
      dec(x);
      y:=inp($3BA);
    until (y and $80)=0) or (x=0);
    if x=0 then __MDA__
    else
      case y and $70 of
        $50:Hercules Incolor;
        $10:Hercules Graphics Plus
      else Hercules Graphics Card;
      end;
  end;

  Hercules GRAFIX BIOS Interface:
  GRAFIX is a memory resident program, not a part of the Hercules
Graphics Card.

----------1040-------------------------------
INT 10 - VIDEO - SET GRAPHICS MODE (Hercules GRAFIX)
        AH = 40h
SeeAlso: AH=41h
----------1041-------------------------------
INT 10 - VIDEO - SET TEXT MODE (Hercules GRAFIX)
        AH = 41h
SeeAlso: AH=40h
----------1042-------------------------------
INT 10 - VIDEO - CLEAR CURRENT PAGE (Hercules GRAFIX)
        AH = 42h
SeeAlso: AH=45h
----------1043-------------------------------
INT 10 - VIDEO - SELECT DRAWING PAGE (Hercules GRAFIX)
        AH = 43h
        AL = page number (0,1)
SeeAlso: AH=44h,AH=45h
----------1044-------------------------------
INT 10 - VIDEO - SELECT DRAWING FUNCTION (Hercules GRAFIX)
        AH = 44h
        AL = drawing function
             00h clear pixels
             01h set pixels
             02h invert pixels
SeeAlso: AH=44h,AH=46h,AH=4Ch,AH=4Dh
----------1045-------------------------------
INT 10 - VIDEO - SELECT PAGE TO DISPLAY (Hercules GRAFIX)
        AH = 45h
        AL = page number (0,1)
SeeAlso: AH=42h,AH=43h
----------1046-------------------------------
INT 10 - VIDEO - DRAW ONE PIXEL (Hercules GRAFIX)
        AH = 46h
        DI = x (0-720)
        BP = y (0-347)
Note: function 44h determines operation and function 43h which page to
use
SeeAlso: AH=0Ch,AH=47h,AH=49h,AH=4Ch,AH=4Dh
----------1047-------------------------------
INT 10 - VIDEO - FIND PIXEL VALUE (Hercules GRAFIX)
        AH = 47h
        DI = x (0-720)
        BP = y (0-347)
Return: AL = 00h pixel clear
        AL = 01h pixel set
Note: function 43h specifies which page is used
SeeAlso: AH=0Dh,AH=46h
----------1048-------------------------------
INT 10 - VIDEO - MOVE TO POINT (Hercules GRAFIX)
        AH = 48h
        DI = x (0-720)
        BP = y (0-347)
SeeAlso: AH=49h
----------1049-------------------------------
INT 10 - VIDEO - DRAW TO POINT (Hercules GRAFIX)
        AH = 49h
        DI = x (0-720)
        BP = y (0-347)
Note: function 48h or 49h specify first point, 44h operation and 43h
      page to use
SeeAlso: AH=43h,AH=44h,AH=48h,AH=4Ch,P = y (0-347)
Note: unlike the other BIOS character functions character position is
      specified in pixels rather than rows
        DI = x coordinate of lower left corner
        BP = y coordinate of lower left corner
        BX = height in pixels
        CX = width in pixels
Note: draws a solid rectangle
SeeAlso: AH=4Eh
----------104B-------------------------------
INT 10 - VIDEO - DISPLAY CHARACTER (Hercules GRAFIX)
        AH = 4Bh
        AL = character to display
        DI = x (0-720)
        BP = y (0-347)
Note: unlike the other BIOS character functions character position is
      specified in pixels rather than rows and columns
SeeAlso: AH=09h,AH=0Ah
----------104C-------------------------------
INT 10 - VIDEO - DRAW ARC (Hercules GRAFIX)
        AH = 4Ch
        AL = quadrant (1 = upper right, 2 = upper left, et cetera)
        DI = x coordinate of center
        BP = y coordinate of center
        BX = radius
SeeAlso: AH=49h,AH=4Dh
----------104D-------------------------------
INT 10 - VIDEO - DRAW CIRCLE (Hercules GRAFIX)
        AH = 4Dh
        DI = x of center
        BP = y of center
        BX = radius
SeeAlso: AH=49h,AH=4Ch
----------104E-------------------------------
INT 10 - VIDEO - FILL AREA (Hercules GRAFIX)
        AH = 4Eh
        DI = x coordinate of an interior point
        BP = y coordinate of an interior point
Notes: fills convex polygonal areas
       the first fill makes the figure solid, the second erases it
SeeAlso: AH=4A
-----------snip------------

----
Always leave room to add an explanation if it doesn't work out.

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Sat Jul 15 2000 - 21:00:10 EST