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í

    Autorem citovaného textu je Prober Přejít na původní příspěvek
    Ty se zase v nečem hrabeš? Ten tvůj poslední experiment se ZenBookem museli dávat dohromady dva lidi z opačných koutů republiky
    No jo, rýpu se, a za zatu pomoc jsem asi zapomněl veřejně poděkovat Tobě a tuším Dodovi? To už jsem zapomněl, tak mně oprav pokud jsem se spletl, a tímto se omlouvám za opžděné díky.
    Amiga 600, Fúria EC020 OS 3.2.2.1, eX601, Indivision ECS, IDE Laylines, PBook 1.67GHz, MOS 3.18, iBOOK G4, 1.2GHz, MOS3.18, Asus UX433FA, MX-23.4 Libretto

    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
      Takýmto sposobom sa testuje aj stisk klávesy? Len zmením adresu? Pokiaľ áno, kde nájdem tabuľku týchto adries?
      spoustu informaci najdes treba tu http://ada.evergreen.edu/~tc_nik/fil...dRefManual.pdf

      stisk klavesy muzes cist z 0xbfec01

      Komentovat


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

        Zdá se, že jsem byl opět těsně vedle a i tenhle manuál měl otevřenej, ale hledal jsem pomocí funkce hledání řetězec 0xbfe001 a ne bfe001 a to byl ten problém.... . Zase tady na mne někdo zkouší tu angličtinu... . OK, zdá se, že na téhle adrese se mi klasicky načte všech 8 Bitů, tedy hodnata 0-255 co je celá znaková sada.
        Amiga - PMD 85

        Komentovat


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

          AmigaPython

          Pro nostalgii uvádím kódy v AmigaPythonu pro neoficiální pozvánku na RESETkání 2015 a příspěvek na akci s názvem "aby jsem něco měl" (co je v rámci kódu jednodušší program .) Měli by to být poslední verze, ale to je již jedno .
          Pokračujem samozřejmě v C.

          Neoficiální pozvánka na RESETkání 2015:
          Code:
          #-*- coding: latin2 -*-
          
          import os,sys,time
          
          os.system("setFont Topaz-L2 30 SCALE PROP") #Topaz-L2
          time.sleep(3)
          sys.stdout.write("\033[0y\033[34x\033[>7m\033[0x\f\033[47m\033[7;28H\033[40m\n \033[47m")
          
          txt = ("Neoficiální pozvánka","na RESETkání 2015","""od Lisiaka4
                                                                      """,
                 "                    ","                 ","           ",
                 "           Hudba","""           looke
                                                                      """,
                 "                ",  "                ",
                 "Datum konání akce:","""30. dubna - 3. května
                                                                      """,
                 "Adresa: Centrum denních","služeb pro sluchově  ","""postižené, Vodova 35, Brno
                                                                      """,
                 "Popis akce:            ","Non-stop projekce dem","""a hraní na Amize          
                                                  """,
                 "2 oddělené sály pro",    "demoscénu a hraní    ","""                
                                                  """,
                 "Možnost spaní na místě","(v oddělené místnosti) nebo","""v pronajatém ubytování
                                                  """,
                 "Projekce dem na přání ","Multiplayer turnaje        ","""Občerstvení na baru   
                                                  """,
                 "4 dny párty          ","Posezení na zahradě","""Demoscene compo    
                                                  """,
                 "           ","                   ","                 ",
                 "Demoscene kategorie:","""ASCII Art
                                   """,
                 """Photo Art
                                   """,
                 """Music Art
                                   """,
                 """Static Art
                                   """,
                 """Dynamic Art
                                                  """,
                 "                    ","           ",
                 "Web:","""  resetkani.untergrund.net
                                                                      """,
                 "    ","                          ")
          txt2 = ("Text se bude ještě jednou","""opakovat...
                                                  """,
                  "                         ","           ")
          txt3 = "                                    ",
          txt4 = "           Hudba","           looke","     Neverending_v2.MOD"
          
          def pr3(b,c,d,f):
              if c[0] != 8:sys.stdout.write("\033[8;%sH\033[3%sm%s\033[%s;%sH\033[3%sm%s\033[2;%sH\033[3%sm%s\033[7;28H\n" %(c[1]+d[0],c[0],c[2][c[1]], x,d[1],f,b, c[1]+d[0],c[0],c[2][c[1]]))
              else: sys.stdout.write("\033[%s;%sH\033[3%sm%s\033[7;28H\n" %(x,d[1],f,b)) #\033[2;19H\n ###d+1
              time.sleep(z)
              return c,d
          
          def pr25(c,d):
              c = c[0],c[1] +1,c[2]
              d = d[0]+8, d[1]
              if c[1] == 9:
                  c = c[0]-1,0,c[2]
                  d = 69, d[1]
                  if c[0] == 0: c = 7,0,c[2]
              return c,d
          
          def pr2(b,c,d,f):
              if f == 0 and b != " ":
                  f = 1
                  for f in range(7,0,-1):
                      c,d = pr3(b,c,d,f)
                      if c[0] !=8: c,d = pr25(c,d)
              else:
                  c,d = pr3(b,c,d,1)
                  if c[0] !=8: c,d = pr25(c,d)
          
              if f == 1 and b == " ": f = 0
              return c,d,f
          
          def pr(c,d):
              d = d[0], 0
              f = 0
              for b in a[1]:
                  c,d,f = pr2(b,c,d,f)
                  d = d[0], d[1]+8
              return c,d
          
          c = 7,0,"RESETkání"
          d = 69, #RESETkani, ###\033[x,xH
          z = 0 #0.04, 0,02 zpomaleni
          
          
          for f in range(2):
              y = "456456454545456456456456456456456455555454545"
              for a in enumerate(txt):
                  x = int(y[a[0]])
                  c,d = pr(c,d)
          
              if f == 0:
                  y = "4545"
                  for a in enumerate(txt2):
                      x = int(y[a[0]])
                      c,d = pr(c,d)
              else:
                  for a in enumerate(txt3):
                      c,d = pr(c,d)
                  c = 8,
                  y = "345"
                  for a in enumerate(txt4):
                      x = int(y[a[0]])
                      c,d = pr(c,d)
          "aby jsem něco měl":

          Code:
          # -*- coding: latin2 -*-
          
          import os, sys, time
          
          os.system("run > nil dh1:playmods/playmymods dh1:playmods/hope-rmx.mod")
          os.system("c:setfont Helvetica2reset-L2 19 SCALE BOLD PROP")
          
          lisiak = 10,"\xa0\xa1\xa2\xa1\xa3\xa4\xa8"
          looke = 490," \xa5\xa6\xa6\xa4\xa7 "
          c = 1,-1,8,2,0,0
          
          sys.stdout.write("\033[0y\033[34x\033[>7m\033[0x\f\033[47m\033[7;28H\033[40m\n \033[47m\033[8;0HH\n")
          
          text = (".....Ahoj, tak jsem něco málo       naprogramoval. Tuhle hudbu udělal   looke. Chtěl jsem vybrat od něj...                                                                                                               ",
                  "jinou, ale vše řeším za běhu        a tenhle MOD  mám k dispozici. Dnes v sobotu večer jak jsem...                                                                                                                       ",
                  "na RESETkání, tedy dne 2.5.2015     o 21:55 se mi s lookem povedlo      spojit a dal mi souhlas...                                                                                                                       ",
                  "na použití jeho MODu tak se těším,  až si to tady pěkně vypeckujem!!!   Tohle jsem naprogramoval...                                                                                                                      ",
                  "aby jsem něco měl na RESET. Můj     první skrolující text.                                                                                                                                                               ",
                  "Naprogramováno opět v Pythonu,      ale snad se někdy polepším... ;).                                                                                                                                                    ",
                  "Rád bych pozdravil pár lidí...                                                                                                                                                                                           ",
                  "Adfko        Amigoun      bigmac    Boboo        bogy         Busy      CodEx        Chain        crayon                                                                                                                 ",
                  "DaMi         davesade     Dedy      Delihc       Dex          DJM       Antony/DTA   Doda         eKe                                                                                                                    ",
                  "EXA          ExiE         Factor6   Falcon_11    FCI          Fery      Flegy        Hoborg       holyna                                                                                                                 ",
                  "hunter7933     IDEfix     jack-3d   jamesd_007     JanciB     Jax       ja_jsem_cd     Josh       k0x                                                                                                                    ",
                  "kavi         killjoy      krtek11   krupkaj      lanex_       Lasice    Luky         Marien       MarK                                                                                                                   ",
                  "martin.demsky   Marwin    mborik128 misticjoe       Mr.Holub  natalieCZ nobomi          Nooly     Noro                                                                                                                   ",
                  "ObiW\xFEanKen      oldrick     Omachel oxcom           pavlor      pecaN   pedromagician   pepapantak  Predseda                                                                                                               ",
                  "Prober       Redegast     rEVERz    Robert_nj    RomanOn      rombor    Sindlarv     Sláma        Sledge                                                                                                                 ",
                  "Solaris104   springy     Starej_MrafŠlacha       trafo       Trixie     Turrican     uunek       Vejce                                                                                                                   ",
                  "venox        voodoo       W\xFEayne    W\xFEolfus      zdenek_j     zxcygnus  zxretrosoft  zz_indigo                                                                                                                           ",
                  "..........a všechny ostatní...................co jsem zde neuvedl....................................Lisiak4                                                                                                             ",
                  "              hudba                               looke                            hope-rmx.MOD                                                                                                                          ",
                  "                                                                                                                                                                                                                         ",
                  "                                                                                                                                                                                                                         ")
          
          sys.stdout.write("\f")
          while 1:
              if lisiak[0] == 470:
                  c = -1,1,c[2],c[3],c[4],c[5]
                  lisiak = lisiak[0] +c[0], lisiak[1]
                  looke = looke[0] +c[1], looke[1]
              elif lisiak[0] == 10:
                  c = 1,-1,c[2],c[3],c[4],c[5]
                  lisiak = lisiak[0] +c[0], lisiak[1]
                  looke = looke[0] +c[1], looke[1]
              else:
                  lisiak = lisiak[0] +c[0], lisiak[1]
                  looke = looke[0] +c[1], looke[1]
              d = 4
              for a in range(7):
                  sys.stdout.write("\033[3;%sH%s\033[4;%sH%s" %(a*20+lisiak[0],lisiak[1][a],a*20+looke[0],looke[1][a]))
              sys.stdout.write("\033[%s;%sH\033[31m%s\033[7;28H\n" %(c[2],c[3]*16,text[c[5]][c[4]]))
              c = c[:3] + (c[3]+1,c[4]+1,c[5])
          
              if c[3] == 38:
                  c = c[:2] +(c[2]+1,2,c[4],c[5])
                  if c[2] == 12: c = c[:2] +(11,2,c[4],c[5])
              if c[4] == 217: c = c[:2] +(8,2,0,c[5]+1)
              if c[5] == 21: c = c[:2] +(8,2,0,0,)
              time.sleep(0.02)
          Naposledy upravil Lisiak; 07.07.2015, 15:58:29.
          Amiga - PMD 85

          Komentovat


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

            Nacitat hodnotu klavesy je trochu zlozitejsie, amiga berie klavesnicu ako seriove zariadenie. Po nacitani treba tuto hodnotu este upravit a "povedat" klavesnici ze si ju nacital (handshake). V tej hodnote je este info ci je klavesa stlacena alebo bola uvolnena atd. Ale myslim ze C-cko bude mat priamo prikaz na ziskanie klavesy (Getchar). Teraz som na dovolenke preto len tak na rychlo.
            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
              Code:
              char *lmb=(char *)0xbfe001;
              Takýmto sposobom sa testuje aj stisk klávesy? Len zmením adresu? Pokiaľ áno, kde nájdem tabuľku týchto adries?
              Len by som ta chcel upozornit, ze toto su uz hardware "hacky" a v Cecku sa ide vacsinou cez system. Ked chces pouzivat priamo hardware, tak mas lepsi assembler. Co sa tyka klavesnice, skus si znova pozriet prispevok #78 v tomto vlakne..
              Naposledy upravil DJM; 07.07.2015, 19:25:07.
              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
                Co sa tyka klavesnice, skus si znova pozriet prispevok #78 v tomto vlakne..
                Príspevok dávám aj sem, nech to mám bližšie.

                Autorem citovaného textu je DJM Přejít na původní příspěvek
                V tom KeyJoy.c testuje klavesy pomocou IDCMP_RAWKEY z intuitionu. Testovat klavesy pomocou intuitionu (IDCMP_RAWKEY alebo IDCMP_VANILLAKEY) je podla mna vhodne pre programy alebo dema (kde sa pouziva napr. len ESC pre exit, alebo F pre zobrazenie FPS), kde netreba stlacat viac klaves naraz. Navyse to potrebuje mat otvorene okno...
                Pre hry sa mi zda lepsie pouzivat keyboard.device, ktora umoznuje nacitat celu maticu klaves a necaka na intuition.

                Na Lisiakovu prosbu som si dovoli napisat priklad na test klavesy A, B a ESC pomocou keyboard device:

                [ATTACH]5681[/ATTACH]
                Amiga - PMD 85

                Komentovat


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

                  Jen příklad z přílohy "keytest.lha", jak budu mít čas, budu se snažit tomu porozumět. Zatím jsem na to ještě vůbec nekoukal, jen asi minutu, trochu jsem zbledl, ale to já někdy blednu i před svým programem v Pythonu v rámci indexace, co jsem schopen vyprodukovat, tohle je samozřejmě C:

                  Code:
                  // keytest.c - priklad testu klavesy pre Lisiaka a aj pre inych ktorym to poradi...
                  //           - 29.10.2014 DJM / DTA za podpory Bukasoveho Masivu ;-)
                  #include <stdio.h>
                  #include <devices/keyboard.h>
                  #include <proto/exec.h>
                  
                  // konstanty s raw hodnotami
                  #define KESC 0x45
                  #define KA 0x20
                  #define KB 0x35
                  
                  // pomocne makro na kontrolu danej klavesy v keyboard matici
                  #define KEY(x) (KeyboardMatrix[(x)>>3]&(1L<<((x)&7L)))
                  
                           struct MsgPort *KeyboardMsgPort=NULL;
                           struct IOStdReq *KeyboardIO=NULL;
                           UBYTE KeyboardMatrix[16];
                  
                  void main()
                  {
                           //otvorenie keyboardu
                           if((KeyboardMsgPort=(struct MsgPort *)CreateMsgPort())==NULL) { printf("chyba\n"); goto Koniec; }
                           if((KeyboardIO=(struct IOStdReq *)CreateIORequest(KeyboardMsgPort,sizeof(struct IOStdReq)))==NULL) { printf("chyba\n"); goto Koniec; }
                           if(OpenDevice("keyboard.device",0,(struct IORequest *)KeyboardIO,0)) { printf("chyba\n"); goto Koniec; }
                  
                           printf("KeyTest - test klaves A,B a ESC=exit\n");
                           printf("Klikni mimo toto output okno, aby si sem nepisal..\n");
                  
                           // cyklus
                  engine:
                           //naplnenie matice a test klaves
                           KeyboardIO->io_Data    = KeyboardMatrix;
                           KeyboardIO->io_Length  = 16;
                           KeyboardIO->io_Flags   = 0;
                           KeyboardIO->io_Command = KBD_READMATRIX;
                           DoIO((struct IORequest *)KeyboardIO);
                  
                           if(CheckIO((struct IORequest *)KeyboardIO)) {
                           if(KEY(KESC)) { printf("ESC stlacene = exit\n"); goto Koniec; }
                           if(KEY(KA) && KEY(KB)) printf("A + B stlacene naraz\n");
                           else {
                           if(KEY(KA)) printf("A stlacene = staci tento text?\n");
                           if(KEY(KB)) printf("B stlacene\n");
                           }
                           }
                  
                           goto engine;
                  
                  Koniec:
                           //zrusenie keyboardu
                           if(KeyboardIO) { DeleteIORequest((struct IOStdReq *)KeyboardIO); KeyboardIO=NULL; }
                           if(KeyboardMsgPort) { DeleteMsgPort(KeyboardMsgPort); KeyboardMsgPort=NULL; }
                  }
                  Amiga - PMD 85

                  Komentovat


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

                    Code:
                    #define KEY(x) (KeyboardMatrix[(x)>>3]&(1L<<((x)&7L)))
                    OK, pokusím se trochu rozebrat tohle makro s parametrem "x".

                    Nepovedlo se mi v V AUTODOCS 3.x guide najít parametr "KeyboardMatrix", tohle tedy možná bude proměnná, do které se něco zapisuje, rád se nechám nasměrovat, zaměřil jsem se tedy pak na výraz:

                    [(x)>>3]&(1L<<((x)&7L))

                    Zde se dle všeho násobí a dělí bitovým posunem. Kde "(x)>>3" dělíme číslem 8 a výraz "(x)&7L" násobíme číslem 2 (1L<<).

                    Postupné zpracovávání výrazu bude snad následující (ve výrazu zvýrazněno):

                    1. [(x)>>3]&(1L<<((x)&7L))
                    "x" vydělíme číslem 8

                    2. [(x)>>3]&(1L<<((x)&7L))
                    s "x" provedeme bitový součin s číslem 7 typu long, číslo 7 ve dvojkové soustavě je 111

                    3. [(x)>>3]&(1L<<((x)&7L))
                    "x" pak násobíme číslem 2 (dodržujeme typ long), číslo 2 ve dvojkové soustavě je 10

                    4. [(x)>>3]&(1L<<((x)&7L))
                    mezi oběma výrazy pak provedeme bitový součin

                    Pokud jsem to pochopil špatně tak prosím o nasměrovaní, jak mám zpracování výrazu správne chápat. Pokud se nepletu, všechny výrazy by se měli číst zleva doprava a pak už jsem šel na to jen logikou Pythonu. Tohle je samozřejmě C.
                    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
                      Nepovedlo se mi v V AUTODOCS 3.x guide najít parametr "KeyboardMatrix", tohle tedy možná bude proměnná, do které se něco zapisuje, rád se nechám nasměrovat,
                      Tak ked si pozries pozorne moj program, tak zistis (asi na 17tom riadku), ze KeyboardMatrix je deklarovane ako pole 16tych prvkov typu UBYTE !!! ( UBYTE KeyboardMatrix[16]; )

                      Autorem citovaného textu je Lisiak4 Přejít na původní příspěvek
                      Postupné zpracovávání výrazu bude snad následující (ve výrazu zvýrazněno):

                      1. KeyboardMatrix [ (x) >> 3 ] & ( 1L << ((x)&7L) )
                      "x" vydělíme číslem 8
                      Tento krok suhlasi, x sa posunie o 3 bity doprava a hranate zatvorky znamenaju, ze sa vyberie tento prvok z pola KeyboardMatrix.

                      Autorem citovaného textu je Lisiak4 Přejít na původní příspěvek
                      2. KeyboardMatrix [ (x) >> 3 ] & ( 1L << ( (x) & 7L ) )
                      s "x" provedeme bitový součin s číslem 7 typu long, číslo 7 ve dvojkové soustavě je 111
                      S tymto tiez suhlasim, dufam ze je ti jasne, ze to x je povodne x zadane v KEY(x).

                      Autorem citovaného textu je Lisiak4 Přejít na původní příspěvek
                      3. KeyboardMatrix [ (x) >> 3 ] & ( 1L << ( (x) & 7L ) )
                      "x" pak násobíme číslem 2 (dodržujeme typ long), číslo 2 ve dvojkové soustavě je 10
                      Tu to chapes zle ! Tu sa posuva 1 typu long dolava o tolko bitov, kolko ti vyslo v kroku 2 (teda x&7L). Vzdy posuvas to co je vlavo tym (o tolko bitov) co je vpravo.
                      Priklad: Ked zapisem a=2<<3; tak posuniem cislo 2 o 3 bity dolava co je vo vysledku 16.

                      Autorem citovaného textu je Lisiak4 Přejít na původní příspěvek
                      4. KeyboardMatrix [ (x) >> 3 ] & ( 1L << ( (x) & 7L ) )
                      mezi oběma výrazy pak provedeme bitový součin
                      To sedi.

                      Na taketo veci si mohol prist aj sam.. Zakladne operatory by si mal mat nastudovane a vyskusat si jednoduchy priklad s nimi a vysledok vypisat napriklad pomocou printf...
                      Naposledy upravil DJM; 15.07.2015, 22:54:04.
                      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í

                        OK,

                        k tomu KeyboardMatrix. Prepáč za tú moju slepotu, ale niesom zvyknutý na deklarácie zadané po časti kódu, kde sa samotná deklarácia používá. Tu je to podľa všetkého možné, pretože sa program kompiluje. V Pythone to samozrejme možné nebolo (skriptovací jazyk). Áno, v kroku 3 mám blbú chybu, ktorá je daná len tým, že potrebujem ísť v rámci C čo najrýchlejšie dopredu a čas, ktorý by som venoval praktickým príkladom venujem učeniu sa teórie. čo má za následok chybné pochopenie niektorých logík dané aj mojou nezkúsenosťou/ľahostajnosťou/debilitou. Ničmenej v daný moment v rámci času je to vždy moje maximum a samozrejme toto maximum ja a aj Ty posúvame ďalej a ďalej.

                        Praktické príklady plánujem až po relatívnom pochopení programu, ktorý teraz rozoberám/rozoberáme.

                        Skúsim sa na to vrhnúť pohlave a začnem su "ťukať" Sabotéra, pokiaľ s tým budem mať veliký problém, prejdem na niečo jednoduchšie.

                        OK, sú u mňa na rade jednorozmerné polia.

                        EDIT: Alebo začnem robiť intro (teda nie Sabotéra), ešte sa rozhodnem.
                        Naposledy upravil Lisiak; 16.07.2015, 05:55:25.
                        Amiga - PMD 85

                        Komentovat


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

                          Polia mas jednoduche a viac ako jednorozmerne polia ani nebudes potrebovat.

                          deklaracia pola 'pole' o 2-och prvkov ( 0 az 1 ) typu int:

                          int pole[2];
                          alebo
                          int pole[2]={ 1,2 };

                          pouzitie:

                          pole[0]=30;
                          pole[1]=24;

                          printf("pole[0]=%d a pole[1]=%d, adresa pole[0]=%d\n",pole[0],pole[1],&pole[0]);

                          pole[0]=pole[1];

                          atd.

                          Keby si chcel pouzivat viacrozmerne pole, napr. dvojrozmerne, tak odporucam radsej deklaraciu pre jednorozmerne pole int pole[32*32]; ako int pole[32][32];

                          Po kompilacii mas aj tak z viacrozmernych poli len jednorozmerne, akurat to komplikovanejsie kompiler prelozi a je to pomalsie.

                          PS: Zacni cim chces, dolezite je co sa ti podari dokoncit. Hlavne treba vela skusat v praxi.
                          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í

                            Code:
                            struct MsgPort *KeyboardMsgPort=NULL;
                            struct IOStdReq *KeyboardIO=NULL;
                            UBYTE KeyboardMatrix[16];
                            Code:
                            //otvorenie keyboardu
                            if((KeyboardMsgPort=(struct MsgPort *)CreateMsgPort())==NULL) { printf("chyba\n"); goto Koniec; }
                            if((KeyboardIO=(struct IOStdReq *)CreateIORequest(KeyboardMsgPort,sizeof(struct IOStdReq)))==NULL) { printf("chyba\n"); goto Koniec; }
                            if(OpenDevice("keyboard.device",0,(struct IORequest *)KeyboardIO,0)) { printf("chyba\n"); goto Koniec; }
                            Asi budem za debila, ale čo sa deje v tých troch IF? V učebnici mám len podstatne jednoduchšie príklady, ktoré mi nepomáhajú, aby som videl čo sa deje v tejto časti programu. OK, tu napíšem možno nejaké blbosti o prvom IF: mám tu premennú KEYBOARDMSGPORT, ukazujúcu na štruktúru MSGPORT, táto premenná ukazuje na adresu. V dokumentácii som našiel tiež CREATEMSGPORT (to je knižnica?).

                            Ako obvykle, ďakujem za navedenie!
                            Amiga - PMD 85

                            Komentovat


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

                              if((KeyboardMsgPort=(struct MsgPort *)CreateMsgPort())==NULL) { printf("chyba\n"); goto Koniec; }

                              V podstate je to skrateny zapis tohto:

                              KeyboardMsgPort=CreateMsgPort();
                              if(KeyboardMsgPort==NULL) { printf("chyba\n"); goto Koniec; }

                              To znamena, ze do KeyboardMsgPort sa zapise vysledok exec funkcie CreateMsgPort().
                              Ked si pozries autodocs/exec, tak zistis ze tato funkcia vracia MsgPort strukturu alebo nulu (NULL) ak sa stala chyba.
                              V pripade chyby vypise chyba a skoci na koniec programu.

                              Obdobne je to aj v druhom pripade if, kde sa pouziva funkcia CreateIORequest().

                              V tretom pripade:
                              if(OpenDevice("keyboard.device",0,(struct IORequest *)KeyboardIO,0)) { printf("chyba\n"); goto Koniec; }

                              Tu zase funkcia OpenDevice vracia nulu, ak je vsetko v poriadku, inac ( v pripade chyby ) vracia error kod.
                              Cize: if(nieco nenuloveho) { chyba }

                              Treba pouzivat autodocs, aby si vedel co ktora funkcia vracia - to uz sa asi opakujem, ale je to tak !

                              Este maly priklad na if:

                              a=1;
                              if(a) printf("tato podmienka plati vzdy, pretoze a je nieco nenuloveho = 1 \n");

                              a=0;
                              if(a) printf("tato podmienka nebude splnena nikdy,pretoze a=0 \n");
                              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í

                                Code:
                                KeyboardMsgPort==NULL
                                Áno, toto bola jedna z možností logík s ktorou som pracoval. Hej hej, snažím sa používať autodocs a aj ho používám (zatiaľ bohužiaľ zle ), ale pochopenie IFu bolo pre mňa prvoradé a dalšie veci som radšej ani neriešil. Zase mám nad čím premýšlať. Super, díky za navedenie!
                                Amiga - PMD 85

                                Komentovat

                                Zpracovávám...
                                X