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

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

    Prosím o jednoduchý príklad na keyboard.device, kde po stisknutí klávesy A sa napíše nejaký text.
    Amiga - PMD 85

    Komentovat


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

      Na stránce Thomase Rappa je spousta užitečných příkladů (examples), mrkni na to. Možná je toto zrovna to co hledáš KeyJoy.c.
      Minimig 4MB/ARM ; FPGA Arcade ; Amiga 500 ; Amiga 2000 ; Amiga 1200 ; AOS 4.1 FE -> WinUAE

      Komentovat


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

        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:

        keytest.lha
        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


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

          Tak jsem se koukal okrajově na používaní device, chce to již umět práci s nižší úrovní programování v C, tam ale ze základů v C nechci skákat, takže se vrchnu na nějakou textovku. Práce s device bude až někdy později.
          Amiga - PMD 85

          Komentovat


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

            Dnes jsem zkusil, jak si Python poradí se zpomalováním.

            Na zpomalení zde máme funkci SLEEP. Ta je přesnější než zpomalení pomocí AmigaDOSu, které pokud se nepletu pracuje pouze v rozsahu zpomalení po 1 vteřině. Pod PC pracuje funkce SLEEP s přesností na jednu tisícinu. V rámci AmigaPythonu je to s přesností na jednu setinu. Udělal jsem si jednoduchý program:

            Code:
            t = time.time()
            for a in range(100):
                time.sleep(0.26)
            print time.time() -t
            V rozsahu v rámci setiny to ale krokuje po dvou, tedy mám stejný výsledek u zpomalení o 0.26 i u o 0.27 a to je 30.5 vteřiny. Až u zpomalení o 0.28 je výsledek rozdílný a to 32.5 vteřiny. Tedy pro zpomalení 0.27 by měl být výsledek 31.5 ale tenhle časový skok v rámci zpomalení mi chybí.

            Mám teď takový technický dotaz pro ujištění se. Předpokladám, že když nemá Amiga hodiny reálného času, tak v rámci OS je vždy nejaký čas nastaven, tedy měření času v rámci téhle metody bude OK, kde výslední čas určuji v posledním řádku kódu tak, že odečtu čas, kdy byl program spuštěn (-t) od času, kdy byl program ukončen (time.time())?
            Amiga - PMD 85

            Komentovat


              #81
              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
              Mám teď takový technický dotaz pro ujištění se. Předpokladám, že když nemá Amiga hodiny reálného času, tak v rámci OS je vždy nejaký čas nastaven, tedy měření času v rámci téhle metody bude OK, kde výslední čas určuji v posledním řádku kódu tak, že odečtu čas, kdy byl program spuštěn (-t) od času, kdy byl program ukončen (time.time())?
              Ano, Amiga ma systemovy cas, ktory je po zapnuti pocitaca na 0 a automaticky rastie s presnostou na mikrosekundy ( = 1/1000000 sekundy ). Viac info v dokumentacii o "timer.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


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

                Moc zpomalovat Python nemá smysl v rámci plynulého zobrazení nečeho. Detekce rychlosti fungovala, ale rozsah je moc malý na to, aby to bylo užitečné pro nejaké plynulé zobrazování. Ten rozsah se pohybuje v rozmezí 0-0.06 sekundy, pro jakýkoliv procesor (konfiguraci v rámci rychlosti). Tohle plynulé zobrazování v rámci Pythonu i tak bez chyby dává jen A4000. Takže zpomalovat jo, ale né pro úplně plynulý přechod do nečeho. Mažu co jsem naprogramoval a pudu na to jednodušeji, tak aby to dala i A1200.
                Amiga - PMD 85

                Komentovat


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

                  Python nema zmysel spomalovat a nie to este pouzivat na Amige (classic)... Neviem preco sa chces o niecom uistovat, ked to nechces (!) pouzivat ! Nehnevaj sa, ale ja ti poviem ako casovat a ty mi odpovies, ze "Moc zpomalovat Python nemá smysl". Cakal som otazky o timer.device, ale v pythone ju asi nepouzijes. Neviem, na C si sa nedal a ci nerobim chybu, ze reagujem na tvoje "questiony" ? Verim v teba a tvoje vytvory, nech su vytvorene v hocicom a dakujem ti za podporu nasej "chabej" Amiga komunity. A ak sa mam priznat tak Amiga OS je fakt super system, lebo inac by som sa nevratil k pocitacu ktory mam od 1994 (5?) po 12tich rokoch. Verim tomu, ze za kratku chvilu sa presiti trh na konzolach a pc, a developery prejdu na AOS4. A ja kym sa dostanem k OS 4 na "tvrdo", tak si stale vychutnavam OS3.9 bez zavad ! 8-) Pekny zvysok vecera a na zdravie !!!
                  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


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

                    Hele v klidu, mám v AmigaPythoně ještě strašně moc rezerv (hodně toho neumím a vím že to jde). K Amiga HW mám v Pythoně přístup jen pomocí Assembleru. Já když nemám chuť na Python zatím velice okrajově si rozšiřuji obzory (pár krát jsem si četl o assembleru na Amize, pár krát o algoritmech na jednoduché výpočty pro grafiku, okrajově Pillow, co je knižnice pro PC a výsledek bych pak použil pro Amigu na zpřístupnění grafiky u Pythonu). S Pythonem nechci skončit, samozřejmě né kvůli Amize, ale kvůli PC. Kdyby jsem chtěl programovat jen pro Amigu seknu s Pythonem během 1 vteřiny. Ale to nechci, tedy nestíhám a tak se hraju na Amize jak se hraju. AmigaPython má tak 4 levely poznání (+ kombinace s assemblerem) aby se využilo vše co se na něm dá udělat. Já jsem v současné době na 2. levely. Možná se dostanu i na 4. level, to pak mám šanci posrat pár inter/dem na Amize v Assembleru/C/nebo v nečem jiném a to je taky zábava. V současné době se chci pokusit ukázat na RESETkání level č.2.

                    Těma mýma dotazama si rozšiřuji obzory, rád vím jak věci fungují, byl bych nerad, aby si to bral, jako že mi něco napíšeš a já si z toho nic nevemu, to není pravda! Jsem vděčný tomu, že mi na takové dotazy tady může někdo odpovědět. To zamozřejmě platí pro všechny.
                    Amiga - PMD 85

                    Komentovat


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

                      Jak jsem již psal, v rámci zpomalení je u Pythonu pod Amigou minimum 1 setina, krokuje se ale po dvou, až pak je vidět rozdíl v rychlosti, tedy minimální krok je po 0,02 vteřiny aby se mi v rámci Pythonu pod Amigou měnila rychlost běhu programu. Píšu to, že jsem náhodou zakopl o článek na Wikipedii o zvukovém formátu MOD.

                      Citace: "Minimální časový rámec MOD souboru je 0,02 sekundy, protože originální software využíval VSync monitoru, který běžel v 50 Hz časovacím cyklu."

                      To možná nebude náhoda a nebo jen blbá náhoda... .

                      Celý článek:
                      Amiga - PMD 85

                      Komentovat


                        #86
                        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
                        Citace: "Minimální časový rámec MOD souboru je 0,02 sekundy, protože originální software využíval VSync monitoru, který běžel v 50 Hz časovacím cyklu."
                        50Hz (PAL) = 50FPS, cize 1 frame trva 1/50 sekundy=0.02

                        Skus to pri inom screenmode, napr. pri 60Hz NTSC trva 1 frame 1/60=0.016

                        Co sa tyka toho MODu, tak tam to zalezi od rychlosti. 1 riadok v module trva 0.02 sekundy len pri standartnej rychlosti - SPEED=06 a BPM=125
                        Naposledy upravil DJM; 23.02.2015, 09:06:26.
                        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


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

                          Iný screenmode nerieši moju situáciu, kedy potrebujem dosiahnúť rovnakú rýchlosť na všetkých Amigách, teda hlavne tých čo sú v PALe. Pokiaľ nebudem mocť dosiahnúť chcenú rýchlosť budem to musieť riešiť menším zlom, teda pustím to buď o niečo pomalšie, alebo rýchlejšie. Zatiaľ je teda záver, že správnu rýchlosť na všetkých Amigách by som dosiahol časovaním pomocou Assembleru. Mám závažnejší problém. Neviem, či dokážem stopnúť hudbu, ktorú spustím AmigaDOSom pomocou RUN, NIL a utilitou pre CLI. Sice keď pustím program mi začne hrať MOD, ale ten mi hrá aj keď sa program ukončí...vtipné. Tiež to beriem ako zatiaľ fakt a budem si programovať ďalej keď bude čas.
                          Amiga - PMD 85

                          Komentovat


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

                            Ještě mne pak napadlo, nechci se tím moc teď zabývat, ale možná tu 0,01 vteřinu kterou někdy potřebuji na zpomalení, aby byla rychlost zobrazení OK, by jsem mohl zabezpečit pomocí skoku z Pythonu do Assembleru v něm by se pozdržet program o 0,01 a dál by si opět pokračovalo v Pythoně. Tedy pokud by jsem pouze s Pythonem mohl dosáhnout správné rychlosti, skok do Assembleru by se nekonal, pokud ale by s Pythonem nešlo dosáhnout správné rychlosti, zpomalil by jsem Pythonem program tak aby byl o 0,01 vteřinu rychlejší (další možný skok v rámci Pythonu o 0,02 vteřiny by již program zpomalil moc) a nasledovalo by zpomalení o 0,01 vteřiny Assemblerem. Nevím jestli by to fungovalo, jen jedno z možných rešení a v rámci Assembleru nejjednoduchších, kde by program vždy zpomaloval o 0,01 vteřiny a buď by se dle potřeby vykonal, nebo nevykonal. Tímhle se ale moc nechci teď zdržovat, to mne napadá tak nějak samo tak jsem to zde napsal.
                            Amiga - PMD 85

                            Komentovat


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

                              Tak jsem zkusil Python zrychlit tím, že dám WB z režimu zobrazení PAL do NTSC. WB, alespoň v režimu emulace ve Win-UAE se v ražimu NTSC chová jinak než v PALu v rámci zalamování řádku. V PALU se posune řádek o úroveň výš až na konci obrazovky. Pokud ale zalomíme v Pythonu řádek u NTSC, posouvá se o úroveň výše vždy, i když jsme v 1. řádku. Proto se musí kurzor (vozík) posunout před samotným zalomením řádku o 1 úroveň výše, aby se třeba text v rámci pozice, kterou udávám každému písmenu zvlášť zobrazoval v jednom řádku.

                              V režimu NTSC funguje stejné zpomalení, jako v režimu PAL, tedy po 0,02 vteřiny. Tohle chování, že se v NTSC nedosáhne zrychlení ale přisuzuji samotnému portu Pythonu, který asi byl optimalizovaný pouze pro zobrazení v režimu PAL.
                              Naposledy upravil Lisiak; 01.03.2015, 10:58:44.
                              Amiga - PMD 85

                              Komentovat


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

                                Dobrá zpráva je, že už začínáš nahlas uvažovat asi jako pravý programátor. I když popisuješ pro sebe zcela jasnou věc, já nerozumím ničemu
                                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

                                Zpracovávám...
                                X