Graphics & Ports

5 отговора 215 прегледа
#1

Graphics & Ports

Как се инициализира графичен режим под дадена VC на Асемблер?
Тоест как от текстов режим на видео картата си да пусна 640х480 например(че и с 256 цвята)?Има ли въобще начин?

А с инструкциите in & out как се работи? Т.е. тези портове са горе-долу COM1(2/3/4) / LPT mouse i keyboard само, че с пореден номер? А ако е така тогава на какъв порт (номер) отговаря клавиатурата?

Благодаря!

"640 kB са достатъчни на всекий за всичко" - Бил Гейтс
Отговор
в отговор на mialy #2

Re: Graphics & Ports

Za da premime6 ot tekstov rejim kum video rejim i obratnoto izpolzvai funkciata 00 na video prekusvaneto int 10h:

mov ah,00 ;funkciata 00
mov al,12 ;smenqme ot textov v 640x480 video rejim VGA 16 cvqtq
int 10h

A kolkoto do in i out:

in cel,nomer na port
out cel nomer na port

Отговор
в отговор на OO1O3O3 #3

Re: Graphics & Ports

А няма ли режим с 256 цвята?

"640 kB са достатъчни на всекий за всичко" - Бил Гейтс
Отговор
в отговор на mialy #4

Re: Graphics & Ports

Trjabwa da se oburnesh kum razshirenite VESA funckii - ne si spomnjam sega detailite (wurtjat mi se edni 0x4B00 0x4C00 neshto si - no ne si spomnjam)

potursi po net - interrupt listite - kljuchowa duma: "Ralph Brown" - toj gi poddurzhashe - sled tova razgledaj VESA funckiite - ili napravo w texta tursi "640x480" ili "640 x 480"

Sushto wizh saita na SDD Tech - te praviha edin SDD Tech Doctor - kojto dawashe VESA 1.2 / 2.0 ? 3.0? za mnogo video karti (razni razshirenia)

W momenta da se poddurzha DOS prilozhenie, osobeno sus razni neshta koito uspjaha da se zadurzhat samo za 1-2 godini e mnogo trudno...

To err is human
To stderr is inhuman
Отговор
в отговор на mialy #5

Re: Graphics & Ports

мисля че режимите се сетваха със функция 4f02h на int 10h , това е веса функция. режима се слага в BH, а в BL се слагаше флаг дали да изтрие екрана. имаше разни тънкости за организация на страницирането, ама не ги помня. палитрата се сетва през портове 3c8, 3c9 като в 3c8 се записва номер на цвета, а след това се записват 3 поредни 6 битови стойности в 3с9 за трите цвята. номера върви дори под windows, стига да ти позволи да бараш портовете.
с инструкциите in, out се работи като номера на порта се зареди в dx и след това се изпълнява in al,dx или out dx,al. портовете на lpt i com ги пише в ресурсите на windows или в таблицата при рестарт. нормално са 3f8, 2f8,378 съответно за ком1,2 и лпт. те заемат няколко адреса, но най-важния е първия - той е за данни и при трите. ако използваш лпт като вход трябва да запишеш 255 преди да четеш от него - той е чувствителен към 0 на входа, затова 1 сам трябва да си подава.
порта на клавиатурата е 60h. там се подават позиционни кодове, които нямат нищо общо с ascii.

Отговор
в отговор на mialy #6

Re: Graphics & Ports

za graficnia rejim ti kazaha...

za portovete:
znaci, nomera na porta ot vhodno-izhodnoito prostranstvo nema nisot obsto s COM1, COM2, LPT portovete!
portovete s koito s epobrastas s instrukciite IN, OUT sa 65536 i vsiako periferno ustroistvo zaema obast ot tezi portove (PCI ustroistvata sa malko po zapleteni).
primerno, ako varjes edin svetodiod na LPT mejdi masa i D0 da kajem, kato pises v port 378 1 toi ste svetne, a ako pises 0 sa izgasne.
obace LPT ima oste nekolkoi porta crez koito mu se ukazva rejima i kato celo rabotata ne e tolkova prosta.

za povece podrobnosti GOOGLE!! :-)

Отговор