Graphics & Ports
5 отговора
215 прегледа
Graphics & Ports
Как се инициализира графичен режим под дадена VC на Асемблер?
Тоест как от текстов режим на видео картата си да пусна 640х480 например(че и с 256 цвята)?Има ли въобще начин?
А с инструкциите in & out как се работи? Т.е. тези портове са горе-долу COM1(2/3/4) / LPT mouse i keyboard само, че с пореден номер? А ако е така тогава на какъв порт (номер) отговаря клавиатурата?
Благодаря!
"640 kB са достатъчни на всекий за всичко" - Бил Гейтс
Тоест как от текстов режим на видео картата си да пусна 640х480 например(че и с 256 цвята)?Има ли въобще начин?
А с инструкциите in & out как се работи? Т.е. тези портове са горе-долу COM1(2/3/4) / LPT mouse i keyboard само, че с пореден номер? А ако е така тогава на какъв порт (номер) отговаря клавиатурата?
Благодаря!
"640 kB са достатъчни на всекий за всичко" - Бил Гейтс
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
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
Re: Graphics & Ports
А няма ли режим с 256 цвята?
"640 kB са достатъчни на всекий за всичко" - Бил Гейтс
"640 kB са достатъчни на всекий за всичко" - Бил Гейтс
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
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
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.
с инструкциите in, out се работи като номера на порта се зареди в dx и след това се изпълнява in al,dx или out dx,al. портовете на lpt i com ги пише в ресурсите на windows или в таблицата при рестарт. нормално са 3f8, 2f8,378 съответно за ком1,2 и лпт. те заемат няколко адреса, но най-важния е първия - той е за данни и при трите. ако използваш лпт като вход трябва да запишеш 255 преди да четеш от него - той е чувствителен към 0 на входа, затова 1 сам трябва да си подава.
порта на клавиатурата е 60h. там се подават позиционни кодове, които нямат нищо общо с ascii.
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!! :-)
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!! :-)