Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » Assembler » Pixel in Konsole mitAssembler

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 ] > 2 <
010
30.10.2004, 21:51 Uhr
RedEagle



aha, das ist nicht so schlimm, da kann ich ja "cout" für nehmen

ps.: Wie mache ich denn jetzt nen bunten Pixel??
Hab in der msdn nach "SetConsoleTextAttribute" u.ä. gesucht (und gefunden) aber alles nciht das was ich suche, mit SetConsoleTextAttribute kann man nur Text in Farbe machen
--
MFG RedEagle

Dieser Post wurde am 30.10.2004 um 22:00 Uhr von RedEagle editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
011
30.10.2004, 22:09 Uhr
Bruder Leif
dances with systems
(Operator)


Moin!

So, bin wieder da. Hier das Plasma in C++ (Vorsicht, wieder 16 Bit):


C++:
#include <math.h>

#define byte unsigned char
#define word unsigned int

void SetPort( word wPortNr, byte bVar )
{
    asm
    {
        push dx
        push ax
        mov dx, wPortNr
        mov al, bVar
        out dx, al
        pop ax
        pop dx
    }
}

void main( void )
{
    byte ft    [512];
    byte sint  [256];
    byte i1, a, b, c, d, od, color, bStatus;
    word x, y, k, i;


    asm
    {
                mov ax, 0x013
        int 0x010
    }

/*        SetPort( 0x03d4, 0x09 );

        asm
    {
        mov dx, 0x03d5
        in al,dx
        and al,0x0e0
        add al,3
        out dx,al
    }
*/

        SetPort( 0x03c8, 0 );    

    for( i=0; i<=255; i++ )
    {
                SetPort( 0x03c9, ( i / 5 ) );
                SetPort( 0x03c9, ( i / 4 ) );
                SetPort( 0x03c9, ( i / 2 ) );
        }                          


    for( i=0; i<=511; i++ ) ft[i] = 64+63*sin( i / 40.74 );
    for( i=0; i<=255; i++ ) sint[i] = 128+127*sin( i / 40.74 );

    i1 = 0;

    do
    {
        i1++;
                c-=2;
        od++;
        d=od;
                for( y=0; y<=200; y++ )
        {
                        k = y*320+(y & 1);
            k -= ( i1 & 1 ) * 320;
            d+=2;
            a = sint[(c+y) & 255];
            b = sint[(d) & 255];
            for( x=0; x<=159; x++ )
            {
                /* Anfang SetPixel */
                color = ft[a+b]+ft[y+b];

                asm mov ax, 0x0a000
                asm mov es, ax
                asm mov di, k
                asm mov al, color
                                asm mov es:[di], al

                /* Ende SetPixel */

                a+=( 1 + color * 128 );
                b += 2;
                k += 2;
            }            
        }
        asm mov ah, 0x0b
        asm int 0x021
        asm mov bStatus, al
    }
    while( bStatus == 0 );
}



Fragt mich nicht, wie das als Win32-Quelltext aussieht...
--
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
012
30.10.2004, 22:28 Uhr
RedEagle



als ansatz reichte, jetzt hab ich wenigstens etwas wo ich dran arbeiten kann
--
MFG RedEagle
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: [ 1 ] > 2 <     [ Assembler ]  


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: