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.
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 |
Få 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 |