Builder.cz - Informacni server o programovani

Odběr fotomagazínu

Fotografický magazín "iZIN IDIF" každý týden ve Vašem e-mailu.
Co nového ve světě fotografie!

 

Zadejte Vaši e-mailovou adresu:

Kamarád fotí rád?

Přihlas ho k odběru fotomagazínu!

 

Zadejte e-mailovou adresu kamaráda:

VGA mode 13h

Seznam témat     Nová odpověď

Přihlásit se     Registrace     Zapomenuté heslo

Re: VGA mode 13h

Autor: JerryDotaz

16:34:50 31.12.2010

tady je spooooooooooousta knihoven

http://www.azillionmonkeys.com/qed/watfaq.shtml

Citovat příspěvek

 

Re: VGA mode 13h

Autor: Mi.Chal

16:05:33 28.12.2010

JerryDotaz Napsal:
-------------------------------------------------------
> Pokud vím přímý přístup do grafické paměti
> umožňoval Win XP ale Win Vista a 7 už mají
> grafické ovladače v jádru a už to nějak nejde.

v XP by to jit nemelo taky

> Musí se to emulovat přes Virtual PC nebo VMWare
> nebo DosBOX atd. nebo pracovat v MSDOS v8.00 atd.
> Vstup do modu 13h je možný běžně pod Borland
> Pascal 7 nebo Turbo C příkazy programovacího
> jazyka ale přece jenom SlimDX nebo XNA je mnohem
> lepčí.

tohle pod windows slo, ale z toho duvodu, ze tyhle prekladace jsou stary vykopavky generujici 16bit aplikace a ty se na windows NT emulovaly. Na 64bit windows to uz pustit nejde.

Citovat příspěvek

 

Re: VGA mode 13h

Autor: JerryDotaz

14:45:36 28.12.2010

takz tohle je dobrý

http://www.japheth.de/HX.html

a funguje to i pod Windows bey problémů. Dají se tak psát i hry na úrovni 80-90 let

Citovat příspěvek

 

Re: VGA mode 13h

Autor: JerryDotaz

14:42:18 28.12.2010

Ahoj,

pokud vím tak moc pěkné příklady jsou na

http://flatassembler.net/

funguje to přes VESA a samozřejmě i pod Win 7. Pokud vím přímý přístup do grafické paměti umožňoval Win XP ale Win Vista a 7 už mají grafické ovladače v jádru a už to nějak nejde. Musí se to emulovat přes Virtual PC nebo VMWare nebo DosBOX atd. nebo pracovat v MSDOS v8.00 atd. Vstup do modu 13h je možný běžně pod Borland Pascal 7 nebo Turbo C příkazy programovacího jazyka ale přece jenom SlimDX nebo XNA je mnohem lepčí.

;)

Citovat příspěvek

 

Re: VGA mode 13h

Autor: kju: b

10:18:31 27.12.2010

2 JiriValerian: děkuji Vám za odpověď... něco takového jsem potřeboval slyšet... asi se přeorientuju na nějaké jiné odvědví, toto by asi fakt nikam nevedlo :-)

děkuji Vám všem za pomoc, kju: b

Citovat příspěvek

 

Re: VGA mode 13h

Autor: JiriValerian

12:38:22 26.12.2010

Zkuste ještě toto:

[size=14px][code][color=#0000FF]#include[/color] [color=#800080][/color]

[color=#0000FF]void[/color] nastav [color=#800000]([/color][color=#0000FF]char[/color] mod[color=#800000])[/color]
[color=#800000]{[/color]
asm mov ah[color=#800000],[/color][color=#0000FF]0[/color][color=#800000];[/color]
asm mov al[color=#800000],[/color]mod[color=#800000];[/color]
asm [color=#0000FF]int[/color] [color=#0000FF]0x10[/color][color=#800000];[/color]
[color=#800000]}[/color][color=#800000];[/color]

[color=#0000FF]int[/color] main [color=#800000]([/color][color=#0000FF]void[/color][color=#800000])[/color]
[color=#800000]{[/color]
nastav[color=#800000]([/color][color=#0000FF]0x13[/color][color=#800000])[/color][color=#800000];[/color]
getchar[color=#800000]([/color][color=#800000])[/color][color=#800000];[/color]
[color=#0000FF]return[/color] [color=#0000FF]0[/color][color=#800000];[/color]
[color=#800000]}[/color][color=#800000];[/color]
[/code][/size]
Ale problém bude nejspíš v tom, že Turbo C 2.01 nepodporuje přímý překlad inline assembleru a tak z toho C zdrojáku, ve kterém je vložen ten kousek inline assembleru jen vyprodukuje *.asm zdroják, na který se pokusí zavolat TASM, ale ten zase není free a tudíž není ani v instalaci Turbo C 2.01 a volně se dají stáhnout jenom nějaké klony, které patrně budou mít problém s tím přeložit to co vyprodukoval Turbo C.

Tenhle boj s pravěkými překladači je dost zbytečný. Pouvažujte spíš o tom opustit cestu těchto archaismů a začít psát pro současné OS. To Vám přinese do budoucna lépe využitelné zkušenosti.

Citovat příspěvek

 

Re: VGA mode 13h

Autor: kju: b

10:32:06 26.12.2010

děkuji Vám... opět moje blbost, že jsem si špatně přečetl chybová hlášení, nicméně ani po úpravě to Turbo C nevzal... nerad to říkám, ale asi mode13h odložím na neurčito, a začnu se nejdříve zabývat 16 bitovými kompilátory... :-)

Citovat příspěvek

 

Re: VGA mode 13h

Autor: JiriValerian

20:20:28 25.12.2010

[color=#008000]kju: b Napsal:
-------------------------------------------------------
> Turbo C Version 2.01 Copyright (c) 1987, 1988
> Borland International
> mod.c:
> Warning mod.c 10: Restarting compile using
> assembly in function nastav
> Error mod.c 11: Undefined symbol 'mov' in function
> nastav
> Warning mod.c 11: Code has no effect in function
> nastav
> Error mod.c 11: Statement missing ; in function
> nastav
> Warning mod.c 12: Code has no effect in function
> nastav
> Error mod.c 12: Statement missing ; in function
> nastav
> Error mod.c 13: Expression syntax in function
> nastav
> Warning mod.c 14: Parameter 'mod' is never used in
> function nastav
> Error mod.c 15: Declaration syntax error
> *** 5 errors in Compile ***[/color]

[size=14px][code][color=#0000FF]#include[/color] [color=#800080][/color]

[color=#0000FF]void[/color] nastav [color=#800000]([/color][color=#0000FF]char[/color] mod[color=#800000])[/color]
[color=#800000]{[/color]
[color=#0000FF]asm[/color] [color=#800000]{[/color]
mov ah[color=#800000],[/color][color=#0000FF]0[/color]
mov al[color=#800000],[/color]mod
[color=#0000FF]int[/color] [color=#0000FF]0x10[/color]
[color=#800000]}[/color][color=#800000];[/color]
[color=#800000]}[/color][color=#800000];[/color]

[color=#0000FF]int[/color] main [color=#800000]([/color][color=#0000FF]void[/color][color=#800000])[/color]
[color=#800000]{[/color]
nastav[color=#800000]([/color][color=#0000FF]0x13[/color][color=#800000])[/color][color=#800000];[/color]
getchar[color=#800000]([/color][color=#800000])[/color][color=#800000];[/color]
[color=#0000FF]return[/color] [color=#0000FF]0[/color][color=#800000];[/color]
[color=#800000]}[/color][color=#800000];[/color]
[/code][/size]

Citovat příspěvek

 

Re: VGA mode 13h

Autor: tcesky

20:17:44 25.12.2010

A nebo Huge.

TC

Citovat příspěvek

 

Re: VGA mode 13h

Autor: tcesky

19:50:03 25.12.2010

Oprava. V roce 1980 jsem prechazel na Turbo Pascal na CP/M (samo-domo pocitac na Z-80). Turbo C prislo az na stara kolena po 1985.

Zdravim

TC

Citovat příspěvek

 

Re: VGA mode 13h

Autor: tcesky

19:20:40 25.12.2010

V Turbo C se nastavuje v projektu model. Kdyz se chce udelat COM tak je potreba Tiny model. Jinak je nejlepsi se s tim nesrat a delat vsechno Large.

Ja uz si to moc nepamatuju, protoze na Turbo C jsem prechazel az v roce 1980, tedy v pokrocilem veku a to uz se cloveku v pameti toho moc neuchyti.

Zdravim

TC

Citovat příspěvek

 

Re: VGA mode 13h

Autor: kju: b

18:42:28 25.12.2010

[code]
Turbo C Version 2.01 Copyright (c) 1987, 1988 Borland International
mod.c:
Warning mod.c 10: Restarting compile using assembly in function nastav
Error mod.c 11: Undefined symbol 'mov' in function nastav
Warning mod.c 11: Code has no effect in function nastav
Error mod.c 11: Statement missing ; in function nastav
Warning mod.c 12: Code has no effect in function nastav
Error mod.c 12: Statement missing ; in function nastav
Error mod.c 13: Expression syntax in function nastav
Warning mod.c 14: Parameter 'mod' is never used in function nastav
Error mod.c 15: Declaration syntax error
*** 5 errors in Compile ***

Available memory 430482
[/code]

far odstraněno.... definovat model paměti? mohl byste to trochu rozepsat? :-) je to pro mě něco nového... je vidět, že TC už není nejmladší

Citovat příspěvek

 

Re: VGA mode 13h

Autor: tcesky

18:32:12 25.12.2010

[ital]V Turbo C se musel definovat model paměti v jakém to pracuje. [/ital]

Tiny/Small/Medium/Compact/Large

TC

Citovat příspěvek

 

Re: VGA mode 13h

Autor: starous

18:16:14 25.12.2010

Zrušil bych ten identifikátor far u metody. V Turbo C se musel definovat
model paměti v jakém to pracuje. Měl jsem myslím nastaven nějaký vyšší
model, aby bylo možné používat víc segmentů paměti.

Ještě upozornění. Když sem vkládáš kód, tak ho obaluj do tagu code.
Zapisuje se to podobně jako XML, jen místo ostrých závorek se používají
hranatý.

Dne 25.12.2010 17:42, kju: b napsal(a):
>
>
> jednu chubu to vyřešilo, díky, neuvědomil jsem si to :-) nicméně 5 stále zbývá.. kdyby Vám pomohl přesný výpis chybových hlášení, tak ho sem pošlu...


Příspěvek zaslán emailem

Citovat příspěvek

 

Re: VGA mode 13h

Autor: tcesky

18:12:27 25.12.2010

[ital] kdyby Vám pomohl přesný výpis chybových hlášení[/ital] Ne, dekuji. Pomoc nepotrebuji.

TC

Citovat příspěvek

 

Re: VGA mode 13h

Autor: kju: b

17:42:17 25.12.2010

jednu chubu to vyřešilo, díky, neuvědomil jsem si to :-) nicméně 5 stále zbývá.. kdyby Vám pomohl přesný výpis chybových hlášení, tak ho sem pošlu...

Citovat příspěvek

 

Re: VGA mode 13h

Autor: tcesky

17:29:18 25.12.2010

#define MOD 0x13h

Citovat příspěvek

 

Re: VGA mode 13h

Autor: kju: b

17:10:35 25.12.2010

vyzkoušel jsem Turbo C, program s Vaší f-cí, ale TC mně vypisuje (pro mě) docela nesmyslné chyby, chybějící závorky tam, kde je podle mě kód vpořádku atd.... má Turbo C nějaké atypické chování nebo potřeby oproti ostatním překladačům?
přikládám kód:

#define MOD 13h
void far nastav(char mod);

int main(void){
nastav(MOD);
return 0;
}

void far nastav(char mod){
asm{
mov ah, 0;
mov al, mod;
int 10h;
}
}

vypisuje chyby jako:
ř.5:chybějící pravá závorka
ř.11: nedefinovaný symbol mov
ř.12: chybí středník
atd, celkem 6 chyb

vím že je to 22 let starý překladač, ale C99 by se zase tak lišit neměla, ne? :-)

Citovat příspěvek

 

Re: VGA mode 13h

Autor: kju: b

15:50:05 25.12.2010

jop! U Turbo C asi skončím, tady tím TCC byl myšlen Tiny C compiler. Potřebuju přesně to, co píšete, jen jsem to doteĎ zkoušel psát v Tiny C compileru, kde je GNU assembler s odlišnou syntaxí (proto zapsáno obráceně)

Citovat příspěvek

 

Re: VGA mode 13h

Autor: starous

15:04:25 25.12.2010

Turbo C by mělo komplikovat 16bitové aplikace, takže tady bych problém
neviděl. Koukal jsem se do toho vlákna a moc nechápu ten tvůj kousek
kódu. Jestli dobře chápu problém, tak chceš uložit do AX hodnotu 13H a
pak zavolat přerušení 10H.
Mate mě ale, že to máš zápis obráceně. V assembleru by to mělo být

[code]
mov AH, 00h
mov AL, 03h
int 10h
[/code]


Koukal jsem se sveho stareho zdrojaku a mam to deklarovany takto:
[code]
void far rezim (char mod)
{
asm {
mov ah,0;
mov al,mod;
int 10h;
}
};
[/code]

Metoda rezim zajistuje prepnuti do pozadovaneho rezimu VGA.


Dne 25.12.2010 14:19, kju: b napsal(a):
>
>
> mám 32bit win. Možná se můj problém částečně vyřešil... doteďka jsem byl přesvědčený že TCC je 16bit, teď hledám a nikde ani zmínka o 16 bit.... pokud se to potvrdí, tak se omlouvám za blbé dotazy :-) jinak díky za odkazy, mrknu na to, myslím, že se to bude hodit


Příspěvek zaslán emailem

Citovat příspěvek

 

Re: VGA mode 13h

Autor: kju: b

14:19:15 25.12.2010

mám 32bit win. Možná se můj problém částečně vyřešil... doteďka jsem byl přesvědčený že TCC je 16bit, teď hledám a nikde ani zmínka o 16 bit.... pokud se to potvrdí, tak se omlouvám za blbé dotazy :-) jinak díky za odkazy, mrknu na to, myslím, že se to bude hodit

Citovat příspěvek

 

Re: VGA mode 13h

Autor: JiriValerian

13:22:26 25.12.2010

[color=#008000]kju: b Napsal:
-------------------------------------------------------
> spouštím to přes konzoli ve win... standardně by
> to mělo přepnout do černé obrazovky a zůstat v ní,
> v tomto případě se to fakt kousne, program provedl
> neplatnou op.atd ... když jsem to kdysi psal v
> čistém assembleru (nebyl to GAS), tak to fungovalo
> bez problémů...[/color]

Pokud je to přeloženo jako Win32 nebo Win64 konzolovka, tak to v současných Windows fungovat nebude, protože tam tohle už na úrovni OS není podporováno. Je to potřeba přeložit a slinkovat jako aplikaci pro DOS, která funguje i bez Windows (pozn. Win32/Win64 konzolovka není totéž jako aplikace pro DOS).

Pokud to bude aplikace pro DOS, která funguje i bez Windows pak to poběží pod současnými 32-bitovými Windows ve virtuálním stroji, pro který Windows emulují tyto možnosti staré grafiky, ale ve Win64 už to nativně nespustíte.

Doporučuji stáhnout si pro tento účel raději [b]Virtual PC 2007[/b] viz odkaz

http://www.microsoft.com/downloads/en/details.aspx?FamilyID=04d26402-3199-48a3-afa2-2dc0b40a73b6&displaylang=en

a po nainstalování [b]Virtual PC 2007[/b] si vytvořit nový virtuální stroj a do něj pak nainstalovat balík [b]Free DOS[/b] viz další odkaz

http://www.freedos.org/freedos/files/

Plný balík [b]Free DOS[/b] obsahuje instalaci DOSu včetně různých aplikací a her pro DOS a také je tam překladač a linker pro vývoj aplikací pro DOS. Tam si můžete tyhle techniky ladit až do zblbnutí, ale pro současné OS se tím v podstatě nic nenaučíte, protože tam už jsou tyto techniky dávno pasé a už se tam vůbec nepoužívají.

Citovat příspěvek

 

Re: VGA mode 13h

Autor: Mi.Chal

12:54:12 25.12.2010

kju: b Napsal:
-------------------------------------------------------
> spouštím to přes konzoli ve win... standardně by
> to mělo přepnout do černé obrazovky a zůstat v ní,
> v tomto případě se to fakt kousne, program provedl
> neplatnou op.atd ... když jsem to kdysi psal v
> čistém assembleru (nebyl to GAS), tak to fungovalo
> bez problémů...

jakou mas verzi windows a te tvoji aplikace? pod 64bit windows uz nejdou spoustet 16bitove aplikace z dosu. Jeste to muzes zkusit pustit treba v dosboxu

a byvalo zvykem, ze aplikace po dobehnuti vratil zpatky textovy mod

Citovat příspěvek

 

Re: VGA mode 13h

Autor: kju: b

12:10:43 25.12.2010

spouštím to přes konzoli ve win... standardně by to mělo přepnout do černé obrazovky a zůstat v ní, v tomto případě se to fakt kousne, program provedl neplatnou op.atd ... když jsem to kdysi psal v čistém assembleru (nebyl to GAS), tak to fungovalo bez problémů...

Citovat příspěvek

 

Re: VGA mode 13h

Autor: Mi.Chal

12:02:46 25.12.2010

kju: b Napsal:
-------------------------------------------------------
> kód normálně přeložím, bez chybových hlášení, měl
> by přepnout do graf. režimu (řerná obrazovka),
> místo toho se program po chvilce kousne

kde to poustis? primo v DOSu nebo nejaky nadstavbe (treba konzole ve win) ? Je mozny, ze po dobehnuti to prepne zpatky do text modu a jestli tam nemas zadny cekani, tak to proste problikne a skonci.


Jinak taky moc nechapu smysl, proc se timhle dneska zabyvat - pokud si nepises vlastni sw nahrazujici OS, tak ti budou tyhle znalosti vicemene k nicemu, protoze pod normalnim OS to stejne budes muset resit jinak.

Citovat příspěvek

 

Re: VGA mode 13h

Autor: kju: b

11:39:11 25.12.2010

ještě jedna věc, netýká se to až tak úplně Cčka, ale zkusím to nejdřív hodit sem.... potřebuju se přepnout do 13h, překladač TCC, inline assembler (GAS), následující kód je nejspíš syntakticky správně, ale přesto nefunguje :-) nevíte někdo co s tím? děkuji

static inline void mode(void);

int main(void){
mode();
return 0;
}

static inline void mode(void){
__asm__ __volatile__(
"movb $0x00, %ah\n"
"movb $0x13, %al\n"
"int $0x10\n"
);
}

kód normálně přeložím, bez chybových hlášení, měl by přepnout do graf. režimu (řerná obrazovka), místo toho se program po chvilce kousne

Citovat příspěvek

 

Re: VGA mode 13h

Autor: kju: b

11:31:00 25.12.2010

zdravím... Allegro bych bez váhání volil v případě, kdybych pracoval na herním projektu, ve 2D by bylo asi bezkonkurenčně nejjednodušší, ale jak jsem psal výš, beru to spíš formou studia, kde si myslím, že mně tento přístup dá daleko víc zkušeností než jen používání knihovních f-cí allegra... navíc v allegru jsem si už nějaké věci vykreslil a rozpohyboval, takže tady bych volil jiný přístup..... nejspíš se inline assembleru nevyhnu :-)

Citovat příspěvek

 

Re: VGA mode 13h

Autor: JiriValerian

15:12:11 24.12.2010

[color=#008000]jjjjssss Napsal:
-------------------------------------------------------
> To neni tak uplne pravda. Puvodni Allegro bezelo
> pod DOSem a GO32 extenderem (zlaty casy). Pak se
> to nejak zacalo predelavat i pro windowsy a
> naroubovali to na OpenGL a DX.
> [/color]

Já ovšem měl na mysli Allegro používané pro současné OS a ne pro starý DOS. U aplikací psaných pro současné OS už ty staré DOS techniky nefungují, a to je i důvod proč je to řešeno i v Allegru pro novější OS úplně jinak s využitím OpenGL a DirectX.

Citovat příspěvek

 

Re: VGA mode 13h

Autor: jjjjssss

13:55:52 24.12.2010

JiriValerian Napsal:
-------------------------------------------------------
>
>
> Allegro je nadstavba nad OpenGL případně DirectX.
> Bohužel minimalistické záležitosti známé z doby
> DOSu už jsou pryč a nadstavby jako je třeba zrovna
> Allegro se snaží co nejvíce ulehčit práci tím, že
> obalují a v mnohém zjednodušují poměrně
> komplikované knihovny jako jsou OpenGL nebo
> DirectX a dá se říct, že Allegro patří mezi to
> nejjednodušší co je v současnosti v tomto ohledu k
> dispozici. Takže pokud to chcete řešit
> minimalisticky pak je Allegro vhodná volba.
>
>

To neni tak uplne pravda. Puvodni Allegro bezelo pod DOSem a GO32 extenderem (zlaty casy). Pak se to nejak zacalo predelavat i pro windowsy a naroubovali to na OpenGL a DX.

Citovat příspěvek

 

Re: VGA mode 13h

Autor: JiriValerian

13:46:29 24.12.2010

[color=#008000]kju: b Napsal:
-------------------------------------------------------
> děkuji Vám za odpověď... vím, že 13h byl
> dominantou 80./začátku 90. let a nyní už je to
> archaismus, ale zaujala mě jeho jednoduchost.... s
> Allegrem jsem se už setkal, OpenGL bych zatím
> nechal bokem.... nejde mně ani tak o vytvoření
> nějaké hry nebo tak, ale spíš o zkušenosti.... a
> přímý přístup do VGA a jednoduchá práce s tímto
> módem mě zaujala :-)
>
> P.S. Allegro taky umožňuje přímý přístup do VGA,
> ale rád bych to řešil pokud možno minimalisicky :-)
>
> s pozdravem, kju: b[/color]

Allegro je nadstavba nad OpenGL případně DirectX. Bohužel minimalistické záležitosti známé z doby DOSu už jsou pryč a nadstavby jako je třeba zrovna Allegro se snaží co nejvíce ulehčit práci tím, že obalují a v mnohém zjednodušují poměrně komplikované knihovny jako jsou OpenGL nebo DirectX a dá se říct, že Allegro patří mezi to nejjednodušší co je v současnosti v tomto ohledu k dispozici. Takže pokud to chcete řešit minimalisticky pak je Allegro vhodná volba. ;)

Citovat příspěvek

 

Strana výpisu

1

 

 

Přihlášení k mému účtu

Uživatelské jméno:

Heslo: