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

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

    Umím... přepracovanost, stres, málo spánku, hodně kávy
    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


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

      Náhodou spánek vylepšuji. Večer jsem vytuhnul o té 12, vzbudil se o 5. pak se chvíli hrál s Scrsh... ) po 7 ráno jsem si lehl, vzbudil se v poledne o 12 a byl jsem jako by mne někdo přetáhl kladivem .
      Amiga - PMD 85

      Komentovat


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

        AmigaPython:

        Tak jsem se trochu hrál s utilitou ShellScr. Je to fajn, ale narazil jsem na jedno úskalí. Pokud ji použiji, je mi znemožněno dodatečného načítání různých palet barev přes AmigaPython. Utilita si napevno veme nastavení přes: Prefs/Palette a tím to pro ní hasne. Tohle mne primělo se opět vrátit k myšlence udělat si pozadí bez lišt bez použítí téhle utility. Tak jsem si postupně po svém přes různé nastavení začal zpřístupňovat rozlišení Low-Res. Co se mi nakonec povedlo. Né k úplné spokojenosti, ale k použitelnosti již jo . Jediné, co se mi zatím nepovedlo je můj starý problém. Nějak se nedokáži vypořádat s pozadím, které je v Classic Workbench, kdy CW ignoruje nastavení pozadí přes: Prefs/Palette a dá tam pozadí své . S tímhle se autor utility ShellScr vypořádal. Při její použití se i u Classic Workbench načetlo pozadí právě z: Prefs/Palette. Řekl bych, že to je asi již jediný rozdíl, který je mezi utilitou ShellScr a mým nastavením, bez její použití. A přitom můžu měnit paletu barev v průběhu programu . To jak v součané době vypadá mé osekané okno WB vidíte na foto. V horní části kolem horní lišty je rámeček v barvě spomínaného pozadí... . Další možností je, že dám horní liště nějakou z použitých barev, co by mohlo vypadat malinko méně rušivě (spíše méně blbě ), než takovýhle prázdný rámeček. Na foto je zobrazená ještě okrouhlá závorka a současná pozice vozíku (kurzoru) ).

        Klikni pro plné zobrazení obrázku

Jméno: pozadi.jpg
Počet zobrazení: 1
Velikost: 5,1 KB
ID: 107755
        Naposledy upravil Lisiak; 29.01.2014, 15:08:54.
        Amiga - PMD 85

        Komentovat


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

          AmigaPython - malé odlehčení:

          Včera jsem dokončil předělávání toho mála z mé animace a přizpůsobil zobrazení z High Res na Low Res. Dnes jsem se hrál s jednoduchou myšlenkou. Potřeboval jsem dosáhnout přeformátování textu. A to celý text rozdělit po 4 znacích. Nebudu se zde hrát na slepou bábu a řeknu hned, že 1. dvojice znaků reprezentuje barvu bodu a 2. dvojice hodnotu zobrazeného grafického znaku v hexa hodnotě. Tohle by měl být základ toho, aby jsem si zpřístupnil kterýkoliv bod na obrazovce z nejakého řekneme obrázku. Taky se nebudu hrát na slepou bábu, když řeknu, že se chci pokusit udělat převod třeba černobíle fotografie (s pár omezeníma, co takovéhle zobrazení má). A nebudu se hrát na slepou bábu, když napíšu, že převod bude udělán na nejmenované platformě, aby pak výsledek mohla zobrazit Amiga - přesněji AmigaPython. Uvidím jestli to zvládnu. Ale zpět k tomu, co jsem potřeboval dosáhnout.

          text = "aaaabbbbccccdddd"

          a já chci:

          text = "aaaa","bbbb","cccc","dddd" (4 body)

          Pokud by jsem chtěl dosáhnout tohodle: text = "a a a a b b.....", není nic jednoduchšího. Stačí napsat:

          text = " ".join(text)

          Tak nějak jsem si říkal, že by jsem tuhle metodu použil i na rozdělení 4 znaků. Spletl jsem se. Nemám rád cykly, jsou pomalé . Ale udělá se to jen jednou, tak dobře. Zde je jeden z možných postupů:

          Code:
          text = "aaaabbbbccccdddd"
          
          text = text[:4], text[4:]
          for f in range(len(text[1])/4 - 1):
              text = text[:-1] + (text[-1][:4], text[-1][4:])
          
          print text
          >>> 
          ('aaaa', 'bbbb', 'cccc', 'dddd')
          Howgh )
          Amiga - PMD 85

          Komentovat


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

            Dobre, som zvedavy na vysledny obrazok.
            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


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

              Díky! Snáď sa skamarátim s Python Imaging Library
              Amiga - PMD 85

              Komentovat


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

                AmigaPython:

                Potřebuji se tak nějak odreagovat, tak si zde něco opět naklepu. Mozek mám již pro dnešek z programování vypálen, tak s ním již nehnu. Hledal jsem dnes 1 chybu v skripte tak alespoň 2 hodiny - skvělá to zábava - hlavně když problém byl o jednu úroveň výše, než jsem hledal . Tak se teď tomu akorát hezky směju. Jak jsem psal v předešlém příspěvku, Python Imaging Library jsem zatím odložil k ledu, nicméně jak jsem kdesi psal, co se týče zobrazování obrázku s omezením, že bude 5 pixelú nad sebou v jedné barvě, jo tohle je jeden způsob zobrazení se kterým se pak dokážu pohybovat v rozsahu celého obrázku. Pokud by nám ale šlo pouze o zobrazení obrázku bez toho, aby jsme s ním něco chtěli dělat, je zde ještě možnost plného rozlišení Workbenche za použití AmigaPythonu a ESC sekvencí. Způsob je jednoduchý a nepřišel jsem na něj samozřejmě já - tohle vše jsou staré věci. Máme tedy dvě ESC sekvence, které nám dokáži hýbat celou obrazovkou . Jedna v osi X, druhá v osi Y v rozsahu presnosti na 1 pixel. Pokud budeme posouvat okno Workbenche po 1 pixelu smerem dolů, myslíte, že se původní zobrazení mimo samotné okno Workbenche smaže? Ne nesmaže. Dá se tedy říci, že z těch 5 pixelů nad sebou, které jsou použity v 1 způsobu zobrazení, použiji vždy jen horní 1 pixel, ostatní useknu a nahradím dalším zobrazením. Takhle jsme v zobrazení na rozlišení Workbenche! . S omezením jeho barevné palety. Pomocí ESC sekvencí můžu zobrazit naráz 8 barev dle libosti.

                Tak já jen tak, aby řeč nestála .
                Amiga - PMD 85

                Komentovat


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

                  AmigaPython:

                  Akorát jsem se dostal před zajimavou situaci. Dělám na jednom enginu pro textovou hru. V programu mám řekneme 2 hlavní proměnné se kterýma pracuji a které používám na různe operace. A jednu proměnnou mám ve stavu, že k ní nechci přidávat něco, co k ní nepatří. Tahle proměnná je "f" od příkazu "for", kterou používám pro "for" a řadu dalších věcí. Druhá proměnná je "r" od "raw_input()", kterou používám kromě "raw_input()" na řadu dalších věcí. Jen "r" mám tedy k dispozici. Celý engine je založen na správném formátování textu. Tím chci říci, že vše pro 1 místnost je v jednom řádku + obslužný program, který s touhle informaci pracuje. Dostal jsem se do situace, kdy potřebuji text, který může mít 1 nebo více částí.

                  Pro názornost, zde je jedna část: r = ["Ahoj světě!"]
                  a dvě části: r = ["Ahoj", "světě!"]

                  Nicméně vždy poslední část textu potřebuji zpracovat trochu jinak. A mám k dispozici 1 proměnnou. Potřebuji se tedy dostat k informaci, že se jedná o poslední část textu. Pokud ale budeme chtít procházet jednotlivými částmi textu třeba takhle: for r in r, informaci o tom, kolik prvků mělo "r" ztrácím. Jednou z možností je použít proměnnou sloužíci k běhu samotného programu a přidat tam informaci, kolik prvku má "r", aby jsem ji pak při použití: for r in r mohl použít a pak tuhle informaci z proměnné pro běh programu odebrat. To si mi ale moc nelíbí, další možnost je vytvořit novou proměnou a pak ji hned smazat, co s mojí tvrdohlavostí pracovat s co nejméně proměnnýma taky neprošlo. Pak jsem přišel na způsob, který ale funguje jen pod mojí novější verzí Pythonu co mám na nejmenované platformě (verze 2.7.2.). My máme ale AmigaPython verze 2.3.3 a tam tenhle způsob nelze použít z jednoduchýho důvodu. Příkaz "enumerate", co má funkci jako "for", jen k prvku přidává i info o tom, s kolikátým prvkem se právě pracuje. AmigaPython pracuje jen s "enumerate" a jedným argumentem. Pokud by uměl pracovat se dvouma argumentama, kde 2. argument udává index, od kterého se má začít počítat číslo udávající pořadí prvku, mám vyhráno a vyřešil bych můj problém nejsympatičtěji. Před tím, než by jsem stratil informaci o samotném počtu prvků, co má proměnná "r", by jsem info o tom, který prvek je tím posledným zahrnul nasledovným způsobem:

                  for r in enumerate(r, -len(r))

                  "len" zjištuje počet prvků v "r", tím že číslu přiřadíme zápornou hodnotu bude mít poslední prvek vždy hodnotu "-1". Pokud by mělo "r" 3 prvky, tak by index byl nasledovný "-3", "-2" a pak "-1" co je poslední prvek, který potřebuji zpracovat trochu jinak a to by mi ke štěstí stačilo. Náš amigaPython ale pracuje s "enumerate" bez udání 2. parametru, který určuje číslo, od kterého se má začít počítat. Takže jak jsem se nakonec pokusil danou věc řešit, když mám k dispozici 1 proměnnou a aby jsem byl se zápisem i spokojen? Teď je načase uvést i fakt, že žjištění počtu prvku v "r" mám i o úroveň výše v samotném programu. Naštěstí indexace, která mi zjištuje tenhle počet prvků není nijak složitá a tedy ji v jedném případě použiji podruhé, aby jsem si informaci zabezpečující počet prvků v původním "r" mohl obnovit.

                  vypadá nasledovně : r = f[int(f[0][0])][2:].split(";")

                  Pokud by byla indexace složitější, asi by jsem se přiklonil k tomu, že by jsem info o počtu prvků v proměnné "r" přidal k proměnné určené pro běh programu a pak by jsem tohle info hned odebral.

                  a zde je již výslední kód s použitím 1 proměnné v našem AmigaPythonu:

                  Code:
                  r = f[int(f[0][0])][2:].split(";")
                  if len(r) > 2:
                      r = r[:-2]
                      for r in r: sys.stdout.write(r + "\n    ")
                      r = f[int(f[0][0])][2:].split(";")
                  sys.stdout.write(r[-2])
                  a takhle by mělo vypadat řešení, pokud by "enumerate" pracoval se 2 parametrama. Teď to píšu z hlavy, tak tam snad nebude chyba :
                  Code:
                  r = f[int(f[0][0])][2:].split(";")
                  for r in enumerate(r[:-1], -len(r)):
                      if r[0] < -1: sys.stdout.write(r[1] + "\n    ")
                      else: sys.stdout.write(r[1])
                  Co je přeci jenom sympatičtější provedení ze kterého by mělo být i srozumitelnější o co mi přesně šlo. Jen o to, aby po poslední části textu nebylo zalomení textu s mezerou o šířce 4 znaků.
                  Naposledy upravil Lisiak; 15.04.2014, 18:18:38.
                  Amiga - PMD 85

                  Komentovat


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

                    AmigaPython:

                    Jak si tak pomalu píšu svůj engine na textovú hru - prograsivní rychlostí... 24.4. jsem začal psát logiku pro položení a vzetí věcí, kde jsem namyslel, co a jak bude fungovat, napsal 3 řádky kódu a pak si uvědomil, že jsem si v proměnné pro řízení běhu programu nevytvořil proměnnou pro věci v inventáři - jsem to nedal a zavřel program ). Musel jsem si svůj cca 100 řádkový kód přeindexovat a to nesnáším. A tuplem to nesnáším, když jsem přeindexovával minulý den. To první přeindexování bylo určené vývojem, to druhé mojí blbostí. Včera jsem našel místo ve skriptu u kterého mne napadlo, jak to vylepšit. Dnes jsem to vylepšení dokončil a udělal přeindexování. Opět takové pohodové tempo a při té mé relaxaci jsem si řekl, že vyzkouším, co si zatím ten nedokončení engine veme z RAM.

                    A dostávám se k tomu hlavnímu, co jsem chtěl napsat. Údaje budou přibližné, ale na orientaci to stačí. Bral jsem je z horní lišty WB (používám Classic WB v emulaci a CWB si veme své). Vím, že samotný Python potřebuje cca 2 MB RAM. Má verze Prince Jasoňa měla cca 8500 řádků v kódu a potřebovala 11,5 MB RAM. Můj současný kód má cca 100 řádků. Minimum s čím počítám bude asi 200 řádků a z těch 100 řádků navíc bude 80 řádku pro místnosti. Začal jsem tedy zkoušet, kolik RAM bude přibližně potřebovat současný kód. Začal jsem na 5,5 MB RAM co minimum z toho, čeho jsem chtěl dosáhnout a ejhle, funguje. Dám 4,5 a funguje, dám 3,5 a funguje, pak 2,5 a funguje. Dám 1,5 (vše údaje po startu CWB) CWB začíná mít problém a Python hlásí nedostatek paměti. Dám 2 MB RAM. Python jsem schopen spustit a i program funguje. I když program není hotový rozhodně není v počátečné fázy. I když jsou třeba požadavky 3 MB RAM pro textovku hodně, rozhodně jsem někde jinde, než s 11,5 MB RAM, co potřeboval Princ Jasoň. Pro mne je tohle neočekávané zlepšení a mám z toho radost .
                    Amiga - PMD 85

                    Komentovat


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

                      Instalace kompilátoru SASC6.50 a spuštení našeho prvního programu v jazyku C

                      Aktuální funkční link pro kompilátor jazyka C - SAS C6.50 a mé první postřehy z instalace po delší době:


                      Úplně horní odkaz "/Commodore_Amiga/Misc/The Zone!/S/SAS C Compiler v6.50.rar" obsahuje všech 6 potřebných disket.

                      Když nebudete mít standardní startup sekvenci, nakonci instalace nám bude oznámeno, co je třeba doeditovat ručně do samotné sekvence. Po instalaci sice editor "se" (cesta: sc/c/se) bez této editace startovací sekvence naběhne, ale po restaru systému již ne. V editoru mi nefunguje "help" přes klávesu F1, nejsem si vědom, že by jsem u instalace kompilátoru SAS C nezadal její instalaci, ale není to zcela vyloučeno. Tohle mne ale v současné a možná i budoucí době netrápí (V staré verzi SAS C 6.50 ve které jsem včera něco asi omylem smazal mi "help" fungoval).

                      Přes editor SE si napíšeme klasiku všech klasik:
                      Code:
                      #include <stdio.h>
                       
                      void main()
                      {
                         printf("Hello World!");
                      }
                      Uložíme třeba jako "program.c" do místa, kde se nachází i editor SE a skompilujeme stiskem "PravaAmiga+B" v mém případe pod emulací "PravýWin+B". Vytvoří se soubor "program". A máme hotovo.
                      Amiga - PMD 85

                      Komentovat


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

                        K tomu F1:
                        Mas v adresary SC: adresar Help a v nom potrebne guides ? ( sc:help/se.guide )

                        "Uložíme třeba jako "program.c" do místa, kde se nachází i editor SE"
                        Z tohto by som pochopil ze to ukladas do SC:c/ , kde sa nachadza kompiler,editor a ine programiky...
                        V SAS C sa standartne robi kopia adresara starter_project. Kopiu si premenujes na nazov svojho projektu a potrebne casti programu ukladas do tohto adresara.
                        Ten adresar obsahuje ikonky s odkazmi pre editor (sc:c/se),build,debugger,atd...

                        Ku SAS C 6.0 a vyssie existuje este programik ProjectMan211, co je vlastne projekt manazer, v ktorom mozes prehladne kompilovat a linkovat viac suborov...
                        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


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

                          Jasné, počítal som s tým, že je treba potom uložiť program kam patrí a odtiaľ to spúšťať. U povodnej verzie mi to nekompilovalo z inej cesty, ktorú je treba asi len zadať. Išiel som na to najjednoduchšie, aby mi fungovala kompilácia, ostatné príde časom. K tomu "helpu" cez F1. Adresár HELP v SC nemám, problém je vyriešený, asi som to len nenainštaloval .

                          Nepojdem na to hrrr, pojdem pekne od začiatku (výkrik do tmy - "neviete niekto z hlavy, ako se cez ALT zadáva velké a malé písmeno O so strieškou?" - mám tu českú klávesnicu )
                          Postupne si začnem čítať knihu: Učebnice jazka C - Pavel Herout - 1.diel (česká verzia) a pokúsim sa v kľude portovať svoj nedokončený engine pre textovů hru napísanu v Pythone. Po dokončení prepisu potom napíšem kúsok v Pythone a hneď to prevediem do verzie pre C. Takto by som chcel pokračovať až do konca. Hádam to tak nejako bude fungovať. Vo finále verziu pre C smažem a pustím do obehu verziu napísanu v Pythone . Namyslené to mám dobre, tak som zvedavý, či u toho prepisovanie do C padnem na hubu.
                          Amiga - PMD 85

                          Komentovat


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

                            Amiga C:

                            Přes jaký příkaz/knihovnu se dělá test stisku klávesy?
                            Amiga - PMD 85

                            Komentovat


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

                              Jedna z moznosti je keyboard.device ...
                              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


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

                                No nazdar...



                                Snad to nějak pochopím, jinak jsem v prdeli!
                                Amiga - PMD 85

                                Komentovat

                                Zpracovávám...
                                X