INT 10H

Den aktuella versionen av sidan har ännu inte granskats av erfarna bidragsgivare och kan skilja sig väsentligt från versionen som granskades den 2 november 2019; kontroller kräver 2 redigeringar .

INT 10h , INT 10H eller INT 16  är en assemblerspråksinstruktion för en x86-processor som genererar ett BIOS -programvaruavbrott 10 hex , den 17:e avbrottsvektorn i x86- arkitekturen . BIOS associerar typiskt en avbrottshanterare för verkligt läge med denna vektor för att tillhandahålla en videotjänst. Det inkluderar inställning av videoadapterns videoläge, tecken- och linjeutgång, grafikprimitiv (läser och skriver pixlar i grafikläge).

Att anropa INT 10h är ganska långsamt, så många program kommer åt videoadaptern direkt, utan BIOS. Att ställa in videoläget, vilket vanligtvis görs en gång, kan göras med hjälp av BIOS. Men renderingen måste vara snabb, så direkt åtkomst till videominne är bättre för detta än att anropa BIOS-avbrott för varje pixel.

Lista över videotjänstfunktioner

Fungera Funktionskod alternativ Returvärde
Ställa in videoläget AH=00h AL = lägesnummer AL = videolägesflagga / styrenhet CRT-läge byte
Ställ in textlägesmarkörens form AH=01h CH = startlinje, CL = slutlinje

Vanligtvis har en förtrogenhet 8 rader, 0-7. Då är CX=0607h en normal understrykningsmarkör, CX=0007h är all förtrogenhet. Om den 5:e CH-biten är inställd betyder det vanligtvis "Göm markör". Därför är CX=2607h en osynlig markör.

Vissa grafikkort har 16 rader per tecken, 00h-0Fh.

Vissa grafikkort använder inte den 5:e CH-biten. I det här fallet, för att dölja, ställ in CH > CL (till exempel CX=0706h)

Ställ in markörens position AH=02h BH=sida, DH=rad, DL=kolumn
Få markörens position och form AH=03h BH = sida AX = 0, CH = Cursor Shape Start Row, CL = Cursor Shape End Row, DH = Rad, DL = Kolumn
lätt pennaposition (fungerar inte på VGA- system) AH=04h AH = Status (0=inaktiv, 1=aktiv), BX = X-pixel, CH = Y-pixel, CX = Pixelradnummer för lägena 0Fh-10h, DH = Y-tecken, DL = X-tecken
Ställ in aktiv sida AH=05h AL = sidnummer
Skrolla upp AH=06h AL = antal rader att rulla (0 = rensa, CH, CL, DH, DL används), BH = färgattribut.

CH = övre radens nummer, CL = vänster kolumnnummer, DH = nedersta radens nummer, DL = höger kolumnnummer

Scrolla ner AH=07h se ovan
Läs tecken och attribut vid markörens position AH=08h BH = sida AH = färg, AL = symbol
Skriv tecken och attribut vid markörens position AH=09h AL = tecken, BH = sida, BL = färg, CX = hur många gånger man ska skriva ett tecken
Skriv tecken vid markörens position AH=0Ah AL = tecken, BH = sida, CX = hur många gånger man ska skriva ett tecken
Ställ in bakgrund/kantfärg AH=0Bh, BH=00h BL = Bakgrund/kantfärg (kant endast i textlägen)
Ställ in palett AH=0Bh, BH=01h BL = Palett ID (verklig i CGA -adaptrar, men nyare grafikkort stöder detta i många eller alla grafiklägen)
Ställ in Pixel AH=0Ch AL=färg, BH=sida, CX=x, DX=y
Läs pixelfärg AH=0Dh BH=sida, CX=x, DX=y AL = färg
Utdata från konsolens tecken AH=0Eh AL = tecken, BH = sida, BL = färg (endast grafiskt läge)
Hämta aktuellt videoläge AH=0Fh AL = videoläge, AH = antal teckenkolumner, BH = aktuell sida
Utdatasträng (EGA och högre) AH=13h AL = utdataläge , BH = sida, BL = färg, CX = radlängd, DH = linje (på skärmen), DL = kolumn, ES:BP = adress

Se även

Länkar