Oznámení

Sbalit
Aktuálně žádná oznámení.

Programování Amiga C , Amiga Python a rozdíly mezi Amigou a PC v jejich používání

Sbalit
X
 
  • Filtr
  • Čas
  • Zobrazit
Vymazat vše
new posts

    O: Programování Amiga C , Amiga Python a rozdíly mezi Amigou a PC v jejich používání

    Tak ja sa poserem! Ja som ten parameter SA_Quiet zkúšal, až na to že som mu dal parameter FALSE! ). Ale to že mám zvrátenú logiku neni u mňa nič nové, takže nabudúce radšej skúsim aj TRUE aj FALSE OK aj v Pythone je toto() funkcia.

    Už mi všetko, čo som zatiaľ chcel funguje, Díky!

    Taká podotázka. Počítám s tým, že bude treba ešte ponastavovať asi nejaké veci, ale takto sa otvára obrazovka pre nejakú hru?

    Pokračujem nabudúce, mám v sebe 2 jedenástky a v tomto stave ma myslenie dosť bolí... .

    Inak ja sa neučievam veci naspamať (to ma ani nebaví a na taký sposob uvažovania moje fungovanie neni stavané ).
    Uvidím, či sa v Amiga C zorientujem. Vacsinou s týmto mám problém aj v dokumentácii Pythonu, preto si rád píšem veci po svojom a u ostatného sa zatiaľ vždy nájde niekto, kto mi to vysvetlí. Ale ver, že tak nečiním z mojej lenivosti! Pokiaľ by mi oriantácia v Autodocs činila dlhodobejší problém, rád si dané zorientovanie sa v ňom dám vysvetliť. Mám za to, že sa všetko dá naučiť. Mám na mysli naučiť sa princíp.
    Amiga - PMD 85

    Komentovat


      O: Programování Amiga C , Amiga Python a rozdíly mezi Amigou a PC v jejich používání

      Autorem citovaného textu je DJM Přejít na původní příspěvek
      Potom mozes preist ku graphics.library, v ktorej su funkcie pre pracu s grafikou a pre teba vhodne vykreslovanie blitter objektov (BOBov). Neskor by si pridal double buffe,atd....
      Double buffe = Režim Dual Playfield?
      Amiga - PMD 85

      Komentovat


        O: Programování Amiga C , Amiga Python a rozdíly mezi Amigou a PC v jejich používání

        Nie.
        Dual su dve hracie plochy ktore vydis vo vacsine hier (popredie/pozadie). Vacsinou aj roluju inou rychlostou.

        Double buffer je ked skladas obraz mimo obrazovky, a ked je hotovy das ho zobrazit. Napriklad zmenou ukazatelov (pointrov) Bitplanov (BplxPtrH).
        Dokonca mozes pouzit aj TripleBuffer.
        Ukazem ti to v piatok
        Naposledy upravil ObiWanKen; 11.06.2015, 11:59:23.
        A600 Furia020 | A1200 PiStorm32 Lite | A1200 ACA 1231 | Sharp MZ800 | ZX Spectrum | Didaktik M | Didaktik Gama | C64 U1541II | Atari 800XL | Atari 130XE U1MB+SIDE2 | Nintendo DS | MiST

        Komentovat


          O: Programování Amiga C , Amiga Python a rozdíly mezi Amigou a PC v jejich používání

          Autorem citovaného textu je Lisiak4 Přejít na původní příspěvek
          Double buffe = Režim Dual Playfield?
          naprosto ne.
          Dual Playfield je specialni mod, kdy mas bitplany, z kterych je slozeny screen rozdelene

          OCS - 6 bitplanu, v dual playfield modu mas 3 a 3 bitplany tj. 8 a 8 barev respektive 8 + 7 a pruhledna
          AGA - 8 bitplanu, v dual playfield modu mas 4 a 4 bitplany tj.16 a 16 barev (16+ 15 a pruhledna)

          takze mas vzdy dva playfieldy na sobe, ten horni ma jednu barvu pruhlednou
          typicky priklad - hra kde ve spodnim playfieldu bezi akce a ve vrchnim je treba ovladaci panel, score a pod.
          A vtip je v tom ze muzes menit obsah tech playfieldu nezavisle

          double buffer je metoda jak dosahnout "plynulejsiho" obrazu
          kdybys vykresloval primo do framebufferu, tak by to vypadalo divoce, misto toho mas buffery dva, jeden je zobrazeny, do druheho kreslis a prehazujes je.

          Komentovat


            O: Programování Amiga C , Amiga Python a rozdíly mezi Amigou a PC v jejich používání

            Tak ako napisal Obiwanken a Exie. V double buffery ide o to, aby ti to nepreblikovalo, ukazujes bufer do ktorej nekreslis. Dual playfield sa mi nelubi, lebo prichadzas o farby...
            Amiga 1200T (E/Box)+BlizzardPPC 603p/363+060/66+BVision PPC+256MB+KS3.1+Cocolino+Lyra 2+Fast Ata MK-IV+320GB WD Blue 3200AAJB PATA HDD(PFS3)+dvdrw+dvd+cf2ide
            Amiga 1200+BlizzardPPC 603e/210+040/25+128MB+KS3.1+CF4GB(PFS3)

            Komentovat


              O: Programování Amiga C , Amiga Python a rozdíly mezi Amigou a PC v jejich používání

              Autorem citovaného textu je DJM Přejít na původní příspěvek
              Potom mozes preist ku graphics.library, v ktorej su funkcie pre pracu s grafikou a pre teba vhodne vykreslovanie blitter objektov (BOBov).
              Při pokusu kompilovat program z Amiga Profi to hodí chybu v místě programu, kde se otevírá graphics.library. V adresáři LIBS jsem soubor graphics.library nenašel. Na netu jsem našel pouze nejaké beta verze graphics.library 40.26 beta 3 a graphics.library 42.8 beta 12, co se mi nezdá. Kde se graphics.library dá stáhnout?
              Amiga - PMD 85

              Komentovat


                O: Programování Amiga C , Amiga Python a rozdíly mezi Amigou a PC v jejich používání

                Autorem citovaného textu je Lisiak4 Přejít na původní příspěvek
                Kde se graphics.library dá stáhnout?
                Nikde, je obsažena v kickstartu (v ROM).
                Pegasos II (1266MHz), 2048MB RAM, Radeon 9250 (256MB), HDD 200GB, USB 2.0, ZIP250 USB, USB floppy, SB Live!, HP LaserJet 1100, AmigaOS 4.1 Final Edition

                Komentovat


                  O: Programování Amiga C , Amiga Python a rozdíly mezi Amigou a PC v jejich používání

                  Kompilátoru je jedno zda máš v LIBS: knihovnu či né. To spíše budeš mít špatný zápis v C...
                  Autorem citovaného textu je Lisiak4 Přejít na původní příspěvek
                  Při pokusu kompilovat program z Amiga Profi to hodí chybu v místě programu, kde se otevírá graphics.library. V adresáři LIBS jsem soubor graphics.library nenašel. Na netu jsem našel pouze nejaké beta verze graphics.library 40.26 beta 3 a graphics.library 42.8 beta 12, co se mi nezdá. Kde se graphics.library dá stáhnout?
                  Naposledy upravil bigmac; 14.06.2015, 21:26:23.
                  Minimig 4MB/ARM ; FPGA Arcade ; Amiga 500 ; Amiga 2000 ; Amiga 1200 ; AOS 4.1 FE -> WinUAE

                  Komentovat


                    O: Programování Amiga C , Amiga Python a rozdíly mezi Amigou a PC v jejich používání

                    No program je beze změn z Amiga Profi, tedy soubor stažen z diskety, na které jsou příklady z knihy. Jde mi o používání grafiky. Možná že to jde dělat i jednodušeji, zatím mi šlo pouze o kompilaci programu, co se nepovedlo. Kompiluji pomocí SAS C6.50.

                    Code:
                    #include "exec/types.h"
                    #include "graphics/gfx.h"
                    #include "graphics/rastport.h"
                    #include "graphics/copper.h"
                    #include "graphics/view.h"
                    #include "graphics/gels.h"
                    #include "graphics/regions.h"
                    #include "graphics/clip.h"
                    #include "exec/exec.h"
                    #include "graphics/text.h"
                    #include "graphics/gfxbase.h"
                    #include "hardware/dmabits.h"
                    #include "hardware/custom.h"
                    #include "hardware/blit.h"
                    #include "devices/keymap.h"
                    
                    #define DUAL1 3
                    #define DUAL2 4
                    #define DBUFF1 DUAL1
                    #define DBUFF2 DUAL2+1
                    
                    UWORD BUFF[2]={DBUFF1,DBUFF2};
                    
                    int Trigger;
                    
                    struct View View;
                    struct ViewPort ViewPorts[4];
                    
                    struct RasInfo RasInfos[6];
                    struct BitMap BitMaps[6];
                    struct RastPort RastPorts[6];
                    
                    SHORT i,j,k,l,n;
                    
                    struct GfxBase *GfxBase;
                    
                    struct View *oldview;
                    
                    UWORD ColorTable[4][16]={
                        {0x000,0x00F,0x0F0,0xF00,
                        0xFF0,0x0FF,0xF0F,0xABC,
                        0xFF2,0xD30,0x7CF,0x4C3,
                        0x7A8,0x9C6,0x1D6,0xFD9},
                    
                        {0x000,0x00F,0x0F0,0xF00,
                        0xFF0,0x0FF,0xF0F,0xABC,
                        0xFF2,0xD30,0x7CF,0x4C3,
                        0x7A8,0x9C6,0x1D6,0xFD9},
                    
                        {0x000,0x100,0x200,0x300,
                        0x400,0x500,0x600,0x700,
                        0x800,0x900,0xA00,0xB00,
                        0xC00,0xD00,0xE00,0xF00},
                    
                        {0x000,0x00F,0x0F0,0xF00,
                        0xFF0,0x0FF,0xF0F,0xABC,
                        0xFF2,0xD30,0x7CF,0x4C3,
                        0x7A8,0x9C6,0x1D6,0xFD9}
                        };
                    
                    int x,y;
                    int Red,Green,Blue;
                    int Length;
                    
                    char *LeftMouse=(char *)0xBFE001;
                    char *LaceString="Very tight (and flickering...)";
                    char *HAMString="Thaťs HAM mode!";
                    char *HighString="Do you like HIRES?";
                    char *Pf2String="Nothing in Foreground!";
                    
                    struct cprlist *LOF[2];
                    struct cprlist *SHF[2];
                    
                    int Edges[4][2]={{50,23},{270,23},{50,43},{270,43}};
                    
                    int Veloc[4][2]={{2,-3},{3,2},{-3,-2},{-2,3}};
                    
                    VOID Make();
                    VOID FreeMemory();
                    
                    main()
                    {
                      if((GfxBase=(struct GfxBase *)
                        OpenLibrary("graphics.library",0))==NULL)
                          Exit(1000);
                    
                      oldview=GfxBase->ActiView;
                    
                      InitView(&View);
                      for(i=0;i<4;i++)
                        InitVPort(&ViewPorts[i]);
                    
                      View.ViewPort=&ViewPorts[0];
                    
                      View.Modes=HIRES|LACE;
                    
                      InitBitMap(&BitMaps[0],6,320,65);
                      InitBitMap(&BitMaps[1],4,640,35);
                    
                      InitBitMap(&BitMaps[2],6,320,67);
                    
                      InitBitMap(&BitMaps[DUAL1],3,320,67);
                      InitBitMap(&BitMaps[DUAL2],3,320,67);
                    
                      InitBitMap(&BitMaps[DBUFF2],3,320,65);
                    
                      for(i=0;i<6;i++)
                        {
                          RasInfos[i].BitMap=&BitMaps[i];
                          RasInfos[i].RxOffset=0;
                          RasInfos[i].RyOffset=0;
                          RasInfos[i].Next=NULL;
                        }
                    
                      ViewPorts[0].DxOffset=0;
                      ViewPorts[0].DyOffset=0;
                      ViewPorts[0].DWidth=320;
                      ViewPorts[0].DHeight=64;
                      ViewPorts[0].RasInfo=&RasInfos[0];
                      ViewPorts[0].Modes=LACE|EXTRA_HALFBRITE;
                      ViewPorts[0].Next=&ViewPorts[1];
                    
                      ViewPorts[1].DxOffset=0;
                      ViewPorts[1].DyOffset=33;
                      ViewPorts[1].DWidth=640;
                      ViewPorts[1].DHeight=32;
                      ViewPorts[1].RasInfo=&RasInfos[1];
                      ViewPorts[1].Modes=HIRES;
                      ViewPorts[1].Next=&ViewPorts[2];
                    
                      ViewPorts[2].DxOffset=0;
                      ViewPorts[2].DyOffset=66;
                      ViewPorts[2].DWidth=320;
                      ViewPorts[2].DHeight=66;
                      ViewPorts[2].RasInfo=&RasInfos[2];
                      ViewPorts[2].Modes=HAM;
                      ViewPorts[2].Next=&ViewPorts[3];
                    
                      ViewPorts[3].DxOffset=0;
                      ViewPorts[3].DyOffset=133;
                      ViewPorts[3].DWidth=320;
                      ViewPorts[3].DHeight=66;
                      ViewPorts[3].RasInfo=&RasInfos[DUAL1];
                      ViewPorts[3].Modes=DUALPF|PFBA;
                      ViewPorts[3].Next=NULL;
                    
                      RasInfos[DUAL1].Next=&RasInfos[DUAL2];
                    
                      ViewPorts[0].ColorMap=(struct ColorMap *) 
                        GetColorMap(16);
                    
                      ViewPorts[1].ColorMap=(struct ColorMap *) 
                        GetColorMap(16);
                    
                      ViewPorts[2].ColorMap=(struct ColorMap *) 
                        GetColorMap(16);
                    
                      ViewPorts[3].ColorMap=(struct ColorMap *) 
                        GetColorMap(16);
                    
                      for(i=0;i<4;i++)
                        LoadRGB4(&ViewPorts[i],&ColorTable[i][0],16);
                    
                      for(i=0;i<6;i++)
                        {
                          if((BitMaps[0].Planes[i]=(PLANEPTR)AllocRaster(320,65))==NULL)
                            Exit(1000);
                    
                          BltClear((UBYTE *)BitMaps[0].Planes[i],RASSIZE(320,65),0);
                        }
                    
                      for(i=0;i<4;i++)
                        {
                          if((BitMaps[1].Planes[i]=(PLANEPTR)AllocRaster(640,33))==NULL)
                            Exit(1000);
                    
                          BltClear((UBYTE *)BitMaps[1].Planes[i],RASSIZE(640,33),0);
                        }
                    
                      for(i=0;i<6;i++)
                        {
                          if((BitMaps[2].Planes[i]=(PLANEPTR)AllocRaster(320,67))==NULL)
                            Exit(1000);
                    
                          BltClear((UBYTE *)BitMaps[2].Planes[i],RASSIZE(320,67),0);
                        }
                    
                      for(i=0;i<3;i++)
                        {
                          if((BitMaps[DUAL1].Planes[i]=(PLANEPTR)AllocRaster(320,67))==NULL)
                            Exit(1000);
                    
                          BltClear((UBYTE *)BitMaps[DUAL1].Planes[i],RASSIZE(320,67),0);
                        }
                    
                      for(i=0;i<3;i++)
                        {
                          if((BitMaps[DUAL2].Planes[i]=(PLANEPTR)AllocRaster(320,67))==NULL)
                            Exit(1000);
                    
                          BltClear((UBYTE *)BitMaps[DUAL2].Planes[i],RASSIZE(320,67),0);
                        }
                    
                      for(i=0;i<3;i++)
                        {
                          if((BitMaps[DBUFF2].Planes[i]=(PLANEPTR)AllocRaster(320,67))==NULL)
                            Exit(1000);
                    
                          BltClear((UBYTE *)BitMaps[DBUFF2].Planes[i],RASSIZE(320,67),0);
                        }
                    
                      for(i=0;i<6;i++)
                        {
                          InitRastPort(&RastPorts[i]);
                          RastPorts[i].BitMap=&BitMaps[i];
                        }
                    }
                      MakeVPort(&View,&ViewPorts[0]);
                      MakeVPort(&View,&ViewPorts[1]);
                      MakeVPort(&View,&ViewPorts[2]);
                      MakeVPort(&View,&ViewPorts[3]);
                    
                      MrgCop(&View);
                    
                      LOF[0]=View.LOFCprList;
                      SHF[0]=View.SHFCprList;
                    
                      ViewPorts[3].RasInfo=&RasInfos[DBUFF2];
                      RasInfos[DBUFF2].Next=&RasInfos[DUAL2];
                    
                      View.LOFCprList=NULL;
                      View.SHFCprList=NULL;
                    
                      MakeVPort(&View,&ViewPorts[0]);
                      MakeVPort(&View,&ViewPorts[1]);
                      MakeVPort(&View,&ViewPorts[2]);
                      MakeVPort(&View,&ViewPorts[3]);
                    
                      MrgCop(&View);
                    
                      LOF[1]=View.LOFCprList;
                      SHF[1]=View.SHFCprList;
                    
                      for(x=0;x<16;x++)
                        {
                          SetAPen(&RastPorts[0],x);
                          RectFill(&RastPorts[0],x*(320/16)+1,1,(x+1)*(320/16)-1,31);
                          SetAPen(&RastPorts[0],x+32);
                          RectFill(&RastPorts[0],x*(320/16)+1,32,(x+1)*(320/16)-1,63);
                        }
                    
                      SetAPen(&RastPorts[0],2);
                    
                      Move(&RastPorts[0],0,0);
                      Draw(&RastPorts[0],319,0);
                      Draw(&RastPorts[0],319,63);
                      Draw(&RastPorts[0],0,63);
                      Draw(&RastPorts[0],0,0);
                    
                      SetAPen(&RastPorts[0],5);
                      SetDrMd(&RastPorts[0],JAM1);
                      Length=TextLength(&RastPorts[0],LaceString,strlen(LaceString));
                      Move(&RastPorts[0],320/2-Length/2,64/2+RastPorts[0].TxBaseline);
                      Text(&RastPorts[0],LaceString,strlen(LaceString));
                    
                      for(i=1;i<31;i++)
                        {
                          SetAPen(&RastPorts[1],i%16);
                          Move(&RastPorts[1],1,i);
                          Draw(&RastPorts[1],638,30-i);
                        }
                    
                      for(i=1;i<638;i++)
                        {
                          SetAPen(&RastPorts[1],i%16);
                          Move(&RastPorts[1],i,1);
                          Draw(&RastPorts[1],638-i,31);
                        }
                    
                      SetAPen(&RastPorts[1],2);
                    
                      Move(&RastPorts[1],0,0);
                      Draw(&RastPorts[1],639,0);
                      Draw(&RastPorts[1],639,31);
                      Draw(&RastPorts[1],0,31);
                      Draw(&RastPorts[1],0,0);
                    
                      SetDrMd(&RastPorts[1],JAM1);
                      SetAPen(&RastPorts[1],0);
                      Length=TextLength(&RastPorts[1],HighString,strlen(HighString));
                      Move(&RastPorts[1],640/2-Length/2,32/2+RastPorts[1].TxBaseline);
                      Text(&RastPorts[1],HighString,strlen(HighString));
                    
                      SetAPen(&RastPorts[2],15+0x20);
                    
                      Move(&RastPorts[2],0,0);
                      Draw(&RastPorts[2],319,0);
                      Draw(&RastPorts[2],319,65);
                      Draw(&RastPorts[2],0,65);
                      Draw(&RastPorts[1],0,0);
                    
                      SetDrMd(&RastPorts[2],JAM1);
                      SetAPen(&RastPorts[2],14+0x30);
                    
                      x=0;
                      y=1;
                      Red=0;
                      Green=0;
                    
                      for(i=0;i<64;i++)
                        {
                          x=320/2-(64+8)/2;
                    
                        for(l=0;l<4;l++)
                          {
                            SetAPen(&RastPorts[2],(Red+0x20));
                            WritePixel(&RastPorts[2],x,y+i);
                            x++;
                            SetAPen(&RastPorts[2],(Green+0x30));
                            WritePixel(&RastPorts[2],x,y+i);
                            x++;
                    
                            for(Blue=0;Blue<16;Blue++)
                              {
                                SetAPen(&RastPorts[2],(Blue+0x10));
                                WritePixel(&RastPorts[2],x,y+i);
                                x++;
                              }
                          Green++;
                        }
                    
                        if(Green==16)
                        {
                          Green=0;
                          Red++;
                        }
                      }
                    
                      l=2;
                      Length=TextLength(&RastPorts[2],HAMString,strlen(HAMString));
                    
                      for(i=1;i<(66-RastPorts[2].TxHeight);
                        i+=RastPorts[2].TxHeight)
                      {
                        SetAPen(&RastPorts[2],l);
                        l++;
                        Move(&RastPorts[2],l,i+RastPorts[2].TxBaseline);
                        Text(&RastPorts[2],HAMString,strlen(HAMString));
                        Move(&RastPorts[2],320-Length-l,i+RastPorts[2].TxBaseline);
                        Text(&RastPorts[2],HAMString,strlen(HAMString));
                      }
                    
                      SetAPen(&RastPorts[DUAL2],1);
                    
                      RectFill(&RastPorts[DUAL2],0,0,319,6);
                      RectFill(&RastPorts[DUAL2],0,59,319,65);
                      RectFill(&RastPorts[DUAL2],0,6,16,59);
                      RectFill(&RastPorts[DUAL2],303,6,319,59);
                    
                      SetAPen(&RastPorts[DUAL2],2);
                    
                      Length=TextLength(&RastPorts[DUAL2],Pf2String,strlen(Pf2String));
                      Move(&RastPorts[DUAL2],320/2-Length/2,66/2+RastPorts[DUAL2].TxBaseline);
                      Text(&RastPorts[DUAL2],Pf2String,strlen(Pf2String));
                    
                      Trigger=0;
                    
                      SetAPen(&RastPorts[BUFF[0]],10);
                      SetAPen(&RastPorts[BUFF[1]],10);
                    
                      while((*LeftMouse & 0x40)==0x40)
                        {
                          SetRast(&RastPorts[BUFF[Trigger]],0);
                          Move(&RastPorts[BUFF[Trigger]],Edges[0][0],Edges[0][1]);
                    
                        for(i=1;i<4;i++)
                          {
                            Draw(&RastPorts[BUFF[Trigger]],Edges[i][0],Edges[i][1]);
                          }
                    
                        Draw(&RastPorts[BUFF[Trigger]],Edges[0][0],Edges[0][1]);
                    
                        for(i=0;i<4;i++)
                          {
                            Edges[i][0]+=Veloc[i][0];
                            Edges[i][1]+=Veloc[i][1];
                    
                            if((Edges[i][0]<=0) || (Edges[i][0]>=319))
                              {
                                Edges[i][0]-=Veloc[i][0];
                                Veloc[i][0]=-Veloc[i][0];
                              }
                    
                            if ((Edges[i][1]<0) || (Edges[i][1]>=65))
                              {
                                Edges[i][1]-=Veloc[i][1];
                                Veloc[i][1]=-Veloc[i][1];
                              }
                          }
                    
                       {
                         Make(&View,Trigger);
                         Trigger=1;
                       }
                    
                         LoadView(oldview);
                         FreeMemory();
                         return(0);
                       }
                      
                    
                    VOID make(View,Trigger);
                    struct View *View;
                    int Trigger;
                      {
                        View->LOFCprList=LOF[Trigger];
                        View->SHFCprList=SHF[Trigger];
                        LoadView(View);
                        WaitTOF();
                      }
                    
                    VOID FreeMemory()
                     {
                        for(i=0;i<6;i++)
                          FreeRaster(BitMaps[0],Planes[i],320,64);
                        
                        for(i=0;i<4;i++)
                          FreeRaster(BitMaps[1],Planes[i],640,32);
                        
                        for(i=0;i<6;i++)
                          FreeRaster(BitMaps[2],Planes[i],320,66);
                        
                        for(i=0;i<3;i++)
                          FreeRaster(BitMaps[DUAL1],Planes[i],320,66);
                        
                        for(i=0;i<3;i++)
                          FreeRaster(BitMaps[DUAL2],Planes[i],320,66);
                        
                        for(i=0;i<3;i++)
                          FreeRaster(BitMaps[DBUFF2],Planes[i],320,66);
                        
                        for(i=0;i<4;i++)
                          FreeColorMap(ViewPorts[i],ColorMap);
                        
                        for(i=0;i<4;i++)
                          FreeVPortCopLists(&ViewPorts[i]);
                        
                        FreeCprList(LOF[0]);
                        FreeCprList(SHF[0]);
                        FreeCprList(LOF[1]);
                        FreeCprList(SHF[1]);
                    
                        CloseLibrary(GfxBase);
                      }
                    Amiga - PMD 85

                    Komentovat


                      O: Programování Amiga C , Amiga Python a rozdíly mezi Amigou a PC v jejich používání

                      Já SAS C nemám nainstalovaný, mám pouze GCC. Zkusil jsem to zkompilovat ale hlásí mi to spousty chyb. I když problém na řádce s otevřením knihovny, GCC nehlásí.
                      Co ti to přesně píše za chybovou hlášku?

                      Autorem citovaného textu je Lisiak4 Přejít na původní příspěvek
                      No program je beze změn z Amiga Profi, tedy soubor stažen z diskety, na které jsou příklady z knihy. Jde mi o používání grafiky. Možná že to jde dělat i jednodušeji, zatím mi šlo pouze o kompilaci programu, co se nepovedlo. Kompiluji pomocí SAS C6.50.
                      Minimig 4MB/ARM ; FPGA Arcade ; Amiga 500 ; Amiga 2000 ; Amiga 1200 ; AOS 4.1 FE -> WinUAE

                      Komentovat


                        O: Programování Amiga C , Amiga Python a rozdíly mezi Amigou a PC v jejich používání

                        Ani mně to již nehlásí problém s otevřením knihovny. Nevím proč. Tedy to asi budou stejné chyby co s kompilací pomocí GCC. Zatím jsem neměl čas se kouknout na dokumentaci C lépe. Nicméně potřebuji přístup ke grafice. Tedy třeba zobrazit pixel.
                        Amiga - PMD 85

                        Komentovat


                          O: Programování Amiga C , Amiga Python a rozdíly mezi Amigou a PC v jejich používání

                          Autorem citovaného textu je Lisiak4 Přejít na původní příspěvek
                          Ani mně to již nehlásí problém s otevřením knihovny. Nevím proč. Tedy to asi budou stejné chyby co s kompilací pomocí GCC. Zatím jsem neměl čas se kouknout na dokumentaci C lépe. Nicméně potřebuji přístup ke grafice. Tedy třeba zobrazit pixel.
                          Lisiak, tebe to vypisuje ( keby si si precital message browser), ze nemoze naist subory s inkludami. V 12 riadkoch mas rovnaku chybu "file not found". Kedze sa kompileru zda, ze uz je tam prilis vela chyb, tak zastavi kompilaciu. Zrejme ti chybaju na spravnom mieste na disku tie subory ( inkludy ).

                          Skusal som to kompilovat a mne to tiez vypisuje vela chyb ( ale nie tykajucich sa inklud ) a nechce sa mi opravovat takyto stary program. Radsej ti uvediem priklad po svojom.

                          Keby si si pozrel graphics.library v autodocs, tak tam mas vypisane funkcie - okrem ineho aj na vykreslenie pixelu - WritePixel(), ktory ma ako vstup ukazatel na RastPort strukturu a suradnice x,y.

                          Tu mas uplne jednoduchy priklad:

                          Code:
                          #include <stdlib.h>
                          #include <proto/intuition.h>
                          #include <proto/exec.h>
                          #include <proto/dos.h>
                          #include <proto/graphics.h>
                          
                          #define rp &screen->RastPort
                          #define vp &screen->ViewPort
                          
                                   struct Screen *screen;
                          
                                   struct TextAttr tattr;
                                   struct TextFont *tfont=NULL;
                          
                                   UBYTE c;
                          
                                   char *lmb=(char *)0xbfe001;
                          
                          void main()
                          {
                                   // otvorenie fontu z romky
                                   tattr.ta_Name="topaz.font";
                                   tattr.ta_YSize=8;
                                   tfont=OpenFont(&tattr);
                                   if(!tfont) goto Koniec;
                          
                                   // otvorenie obrazovky
                                   screen=OpenScreenTags(NULL,
                                   SA_Left,        0,
                                   SA_Top,         0,
                                   SA_Width,       320,
                                   SA_Height,      256,
                                   SA_Depth,       8,
                                   SA_Quiet,       TRUE,
                                   SA_Title,       "Custom Screen",
                                   SA_ShowTitle,   FALSE,
                                   SA_Type,        CUSTOMSCREEN,
                                   SA_AutoScroll,  FALSE,
                                   SA_Draggable,   FALSE,
                                   SA_Overscan,    OSCAN_STANDARD,
                                   SA_VideoControl,NULL,
                                   SA_MinimizeISG, TRUE,
                                   SA_DisplayID,   PAL_MONITOR_ID|LORES_KEY,
                                   TAG_DONE);
                                   if(!screen) goto Koniec;
                          
                                   // nastavenie fontu
                                   SetFont(rp,tfont);
                          
                                   // nastavenie farieb
                                   SetRGB32(vp,0,0,0,0);
                                   SetRGB32(vp,1,0xff000000,0xff000000,0xff000000);
                                   SetRGB32(vp,2,0xff000000,0xff000000,0);
                                   SetRGB32(vp,3,0,0xff000000,0);
                                   SetRGB32(vp,4,0xff000000,0,0);
                                   SetRGB32(vp,5,0,0xff000000,0xff000000);
                                   SetRGB32(vp,6,0,0,0xff000000);
                                   SetRGB32(vp,7,255<<24,30<<24,238<<24);
                          
                                   // bod
                                   SetAPen(rp,1);
                                   WritePixel(rp,160,100);
                          
                                   // text 1
                                   SetAPen(rp,2);
                                   Move(rp,32,32);
                                   Text(rp,"Text",4);
                          
                                   // text 2
                                   SetAPen(rp,3);
                                   Move(rp,0,255-18);
                                   Text(rp,"Par funkcii",11);
                                   Move(rp,0,255-8);
                                   Text(rp,"z graphics.library",18);
                          
                                   // ciara
                                   SetAPen(rp,4);
                                   Move(rp,32,80);
                                   Draw(rp,140,180);
                          
                                   // elipsa
                                   SetAPen(rp,5);
                                   DrawEllipse(rp,240,140,32,48);
                          
                                   // vyplnena oblast
                                   SetAPen(rp,6);
                                   RectFill(rp,180,20,270,70);
                          
                                   // cyklus
                                   while((*lmb & 0x40)==0x40) {
                          
                                   c++;
                          
                                   SetAPen(rp,c);
                                   Move(rp,320-64,255-8);
                                   Text(rp,"LMB exit",8);
                          
                                   WritePixel(rp,rand()%320,rand()%256);
                          
                                   WaitTOF();
                          
                                   }
                          
                          Koniec:
                                   if(screen) { CloseScreen(screen); screen=NULL; }
                                   if(tfont) { CloseFont(tfont); tfont=NULL; }
                          }
                          Amiga 1200T (E/Box)+BlizzardPPC 603p/363+060/66+BVision PPC+256MB+KS3.1+Cocolino+Lyra 2+Fast Ata MK-IV+320GB WD Blue 3200AAJB PATA HDD(PFS3)+dvdrw+dvd+cf2ide
                          Amiga 1200+BlizzardPPC 603e/210+040/25+128MB+KS3.1+CF4GB(PFS3)

                          Komentovat


                            O: Programování Amiga C , Amiga Python a rozdíly mezi Amigou a PC v jejich používání

                            Nejaky pokrok, nejaka zmena, nieco nove ? Pytaj sa, kritizuj a bav sa..
                            Amiga 1200T (E/Box)+BlizzardPPC 603p/363+060/66+BVision PPC+256MB+KS3.1+Cocolino+Lyra 2+Fast Ata MK-IV+320GB WD Blue 3200AAJB PATA HDD(PFS3)+dvdrw+dvd+cf2ide
                            Amiga 1200+BlizzardPPC 603e/210+040/25+128MB+KS3.1+CF4GB(PFS3)

                            Komentovat


                              O: Programování Amiga C , Amiga Python a rozdíly mezi Amigou a PC v jejich používání

                              Postupne rozoberám ten tvoj posledný program na prácu s grafikou. Mal som teraz pár náročných dní v práci, ale dnes som si napríklad našiel čas. Skončil som na práci s pointery. Otázky by boli, ale nechcem sa pýtať skor, než sa sám poriadne na vec nepozriem.
                              Amiga - PMD 85

                              Komentovat


                                O: Programování Amiga C , Amiga Python a rozdíly mezi Amigou a PC v jejich používání

                                Som rad !!! Pointer = tzv. ukazatel = adresa v pamati a nie obsah na tej adrese..
                                Amiga 1200T (E/Box)+BlizzardPPC 603p/363+060/66+BVision PPC+256MB+KS3.1+Cocolino+Lyra 2+Fast Ata MK-IV+320GB WD Blue 3200AAJB PATA HDD(PFS3)+dvdrw+dvd+cf2ide
                                Amiga 1200+BlizzardPPC 603e/210+040/25+128MB+KS3.1+CF4GB(PFS3)

                                Komentovat

                                Zpracovávám...
                                X