Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » Dos4/gw

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
14.07.2002, 13:39 Uhr
dune911



Hi, folgende Frage hab ich heute auch auf einem
englischen Board gepostet... da ich aber denke,
die Antworten hier besser verstehen zu können
poste ich sie hier auch gleich nochmal... Bitte
nicht gleich steinigen, die Frage is mir wichtig...

Kann mir jemand verraten, wie ich in den Vollbildmodus
umschalten kann? Bei einigen Programmen, die ich
runtergeladen hab öffnet sich ganz normal die Konsole
(wie bei meinen bisherigen C-Programmen) und wechselt
nach ein paar Sekunden in den DOS4/GW-Vollbildmodus.

In einem alten Thread hab ich folgenden Text gefunden:
>> Screen 13, also known as Mode 13 is (was) used by
>> demo programmers. This mode supplies 320x200x8 resolution.
>> You can also access the video-mem directly.
>> Which gives the programmer the freedom do to with
>> the screen what he wants :-)

Ich würde gerne Demos (zB www.mlab.uiah.fi/~eye/demos/)
programmieren, weiß aber nicht, ob es nicht vielleicht doch besser
ist, erst mit kleinen simplen Spielen anzufangen, bevor ich mich an
Demos wage. Hat jemand Erfahrung damit? Ist es einfacher, ein Demo
zu programmieren als ein paar Tiles auf dem Bildschirm anzeigen zu
lassen um ein kleines Pixelmännchen darauf rumrennen zu lassen?

Danke für eure Tips!
--
-dune911-
www.midwinter.net
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
14.07.2002, 14:23 Uhr
virtual
Sexiest Bit alive
(Operator)


Ich verschieb Dich mal nach WinAPI, weil ich glaube, das Vollbildmodus was mit WinDOS zu tun hat.
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
14.07.2002, 16:17 Uhr
Uwe
C/C++ Master
(Administrator)


Hallo,
das passt eigentlich nirgendwo, da Compilerabhängig.

Wenn ich mich nicht irre sind z.B. beim Watcom Compiler die bgi Dateien vorhanden, dann sollte das eigentlich mit initgraph(); funktionieren.
--
"Es ist schwierig, ein Programm wirklich idiotensicher zu machen, weil Idioten so genial sind."

Bis dann...
Uwe
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
14.07.2002, 20:18 Uhr
Christian
C/C++ Master
(Operator)


Hallo!

Da mit nicht klar ist, was du genau willst, habe ich den Link einmal ausprobiert. Der geht nicht...

Grüße
--
Grüße, Christian
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
15.07.2002, 08:07 Uhr
FloSoft
Medialer Over-Flow
(Administrator)



Zitat:
Christian postete
Hallo!

Da mit nicht klar ist, was du genau willst, habe ich den Link einmal ausprobiert. Der geht nicht...

Grüße



Du musst hinten die klammer wegmachen, dann geht er
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
17.07.2002, 06:21 Uhr
Bruder Leif
dances with systems
(Operator)


Moin!

*threadzuspätbemerkthab* Das könnt Ihr vergessen... mit BGI-Treibern kommt Ihr bei Demos nicht weit. Der Mode 13 ist gerade deshalb so beliebt, weil er so einfach DIREKT anzusteuern ist. Unter DOS, per direktem Zugriff auf den GraKa-Speicher. Dadurch ist man weder auf lahme BGIs noch auf die lahmen BIOS-Funktionen angewiesen ;-)
Unter Windows wirst Du damit aber nicht allzu weit kommen, dort werden direkte Hardwarezugriffe abgeblockt. Warte mal, irgendwo hab ich noch ne kleine Demo rumliegen... *suchkramwühl* hier:


C++:
#define BYTE unsigned char
#define WORD unsigned short

#include <math.h>

BYTE bSin[1024];
BYTE bCos[1024];

void AddColor( BYTE bRed, BYTE bGreen, BYTE bBlue )
{
        asm mov dx, 0x3c9
        asm mov al, bBlue
        asm out dx, al
        asm mov al, bGreen
        asm out dx, al
        asm mov al, bRed
        asm out dx, al
}

void SetPalette( void )
{
        WORD wCounter;

        asm mov dx, 0x3c8
        asm xor al, al
        asm out dx, al
/*
        for( wCounter = 0; wCounter <= 63; wCounter++ )
        AddColor( 63-wCounter, 0, wCounter );
        for( wCounter = 0; wCounter <= 63; wCounter++ )
        AddColor( 0, wCounter/2, 63-(wCounter/2) );
        for( wCounter = 0; wCounter <= 63; wCounter++ )
        AddColor( wCounter, 31-(wCounter/2), 32+(wCounter/2) );
        for( wCounter = 0; wCounter <= 63; wCounter++ )
        AddColor( 63-wCounter, wCounter, 63-wCounter );
*/


        for( wCounter = 0; wCounter <= 63; wCounter++ )
        AddColor( (63-wCounter)/2, 63-wCounter, wCounter );
        for( wCounter = 0; wCounter <= 63; wCounter++ )
        AddColor( wCounter/2, wCounter,  63-wCounter );
        for( wCounter = 0; wCounter <= 63; wCounter++ )
        AddColor( 31+(wCounter/2), 63-wCounter, wCounter );
        for( wCounter = 0; wCounter <= 63; wCounter++ )
        AddColor( 63-wCounter, wCounter, 63-wCounter );
}

void DrawPlasma( BYTE dx, BYTE dy )
{
        WORD x, y;
        BYTE bColor, bBuffer;
        BYTE bValue1, bValue2;
        WORD wOffset = 0;

        for( y=0; y<=199; y++ )
        {
                bBuffer = bSin[ ( y + dy ) ];
                for( x=0; x<=319; x++ )
                {
                        bValue1 = x + bBuffer;
                        bValue2 = y + bSin[ (x + dx) ];
                        bColor = ( bCos[ bValue1] + bCos[ bValue2 ] ) >> 1;

                        asm  // PutPixel
                        {
                                mov di, wOffset
                                mov ax, 0xa000
                                mov es, ax
                                mov al, bColor
                                stosb
                                mov wOffset, di
                        }
                }
        }
}

void main( void )
{
        int iCounter, iDoIt;

        for( iCounter=0; iCounter<1024; iCounter++ )
        {
                bSin[ iCounter ] = 63 * ( sin( iCounter * 3.14159 / 128 ) + 1 );
                bCos[ iCounter ] = 127 * ( cos( iCounter * 3.14159 / 128 ) + 1 );
        }

        asm mov ax, 0x13
        asm int 0x10    

        SetPalette();    

        iDoIt = 1;
        while( iDoIt )
        {
                DrawPlasma( iCounter, iCounter );
                iCounter++;

                asm
                {
                        mov ah, 1
                        int 0x16
                        jz _Ja
                        mov iDoIt, 0
                        jmp _Fertig
_Ja:                    mov iDoIt, 1
_Fertig:
                        // auf vert. Retrace warten
                        mov dx, 0x3da
_Retrace:
                        in al, dx
                        and al, 8
                        jz _Retrace
                }
        }
        asm mov ax, 0x03
        asm int 0x10    
}



Das ist ein einfaches Sinus-Plasma. Nicht besonders optimiert, Du kannst mit den Werten rumexperimentieren, bis es Dir gefällt. Wenn's sich überhaupt nich compilieren läßt... ich hab's damals mit einem Symantec-C-Compiler übersetzt.

Mit Spielen hab ich weniger Erfahrung... auf dem C64 hab ich Unmengen an Demos programmiert, da isset sowieso viel einfacher als auf dem PC ;-)
Probiers einfach mal, mehr als dazulernen kannst Du nicht ;-)

Tschöööööööö

Leifus
--
Mit 40 Fieber sitzt man nicht mehr vor dem PC.
Man liegt im Bett.
Mit dem Notebook.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
12.11.2002, 18:37 Uhr
~arz
Gast


hei,
hab grad beim rumstoebern den code oben gefunden. leider hat das compilieren nicht geklappt (55 fehler 7 warnungen ) .
muss da noch was incl werden ? tricks?
ich habs mit visualc++ / konsolenanwendung probiert.
danke
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: