Oznámení

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

Assembler - všeobecná logika

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

  • sailor
    odpověděl
    Sice jsem assembler motoroly už dávno zapoměla, tak tomu nerozumím. Ale slovo kolíše je úžasné, děkuji.

    Vložit komentář:


  • Lisiak
    odpověděl
    Včera jsem program Textro zprovoznil v mé nehudební rutině. Dal jsem to v hudební rutině do velké smyčky a měl možnost vidět, jak tahle nízká frekvence smyčky pro práci s bitplanem na pro mně chtěné úrovni nepostačuje. Viděl jsem hezky, jak ta rychlost práce s bitplanem i kolíše. Dnes jsem Textro dal do krátké smyčky v mé hudební rutině. Tam vůči velké smyčce dokáži pracovat s až 32 násobní rychlostí. Tam to již litá o 106, asi to i zpomalím. Ono se to vše po chvíli chodu začne sypat, ale to je na tuhle fázi normální stav. Přišel jsem o pár taktů vůči umístění ve velké smyčce. V registry D2 mám pro pomocnou proměnnou již jen 2 byte místo 4, tedy jsem moveq vyměnil za move.w i kvůli instrukci DBF, které pracuje pouze s rozsahem Word a já musel mít vynulovaný v D2 i druhý byte. Ale DBF je fajn, na to že sníží proměnnou a udělá skok si vezme jen 4 takty, co mně mile překvapilo. Měl jsem zato, že je tahle instrukce pomalejší. Na to že si samotné move v rozsahu 1 byte vezme nepletuli se taky 4 takty. Na 2 takty se dostaneme až s instrukci moveq.

    Vložit komentář:


  • Lisiak
    odpověděl
    A dnes ráno jsem vyřešil tu druhou chybu. Chyba začátečníka kdy jsem v A2 neobnovoval načtení adresy pro znaky potom co jsem A2 použil i pro načtení adresy na RAW obrázek.

    Tedy program Textro je opět funkční i s úpravami aby běžel s mou hudební rutinou aniž by byl použitý zásobník. Tedy 2 programy v registrech D0-D7 a A0-A6. Registr A7 je zásobník.
    Naposledy upravil Lisiak; 31.01.2022, 13:53:28.

    Vložit komentář:


  • Lisiak
    odpověděl
    Defor měl si pravdu, jde o promazání registrů. Ještě to nemám zcela funkční. Ve smyčce, která hledá správné písmeno z napsaného textu jsem použil move.W místo move.B pro zápis čísla 39 které se v cyklu mění, písmeno se po tvé optimalizaci hledá od konce k začátku. To zlepšilo stabilitu, neseká se to, ale vypíše se všude stejný znak, který snad ani není z abecedy. Až budu mít více času, podívám se na to ještě. Díky za nesměrování!

    Vložit komentář:


  • Prisko
    odpověděl
    Autorem citovaného textu je Lisiak4 Přejít na původní příspěvek
    Ja je mám taky všechny, poslední čtvrtá série není nadabovaná. Někdy si to ještě pustím i teď, ale jako vše se to okouká. Ale já zbožňuji suchý anglický humor 🙂
    Nadabovány jsou samozřejmě všechny 4 série. Pátá série je jen jeden poslední díl a jde jen o "grandiózní finále" s titulkama Ajťáci: Přichází internet. To samozřejmě víme přece všichni

    Vložit komentář:


  • Dedy
    odpověděl
    I když je český dabing na úrovni, tak já se raději koukám na origo s titulkama. Ono to nutí i naposlouchat a přiučit se anglině, i když to není ono. Občas si pouštím známé věci bez titulků.

    Omlouvám se za

    Vložit komentář:


  • Lisiak
    odpověděl
    Autorem citovaného textu je IDEfix Přejít na původní příspěvek

    Tak jistě, můj oblíbený séroš...
    Ja je mám taky všechny, poslední čtvrtá série není nadabovaná. Někdy si to ještě pustím i teď, ale jako vše se to okouká. Ale já zbožňuji suchý anglický humor 🙂. A Moss je v některých aspektech takové mé druhé já 🙂

    Vložit komentář:


  • Defor
    odpověděl
    Autorem citovaného textu je Lisiak4 Přejít na původní příspěvek
    Nakonec to byl register kde je pointer na obrázek. Dle všeho s tím Amiga pracuje snad i na pozadí a když do něj dám něco jiného tak se program sekne/guru/nezobrazí správně grafiku anebo třeba i zobrazí ale jen při prvním spuštění a sekne se to při druhém spuštění.
    Tohle celé je nějaké divné. Pokud máš systém zastavený, nemělo by nic padat kvůli tomu, že "s tím Amiga pracuje snad i na pozadí". Pokud chceš, aby tvůj program udělal kompletní "system takeover", tak vřele doporučuji používat třeba Photonův MiniWrapper
    http://coppershade.org/articles/Code...Dream_in_Code/

    Stačí na začátek tvého zdrojáku dát (include) jeho MiniWrapper, ten všechno vypne, skočí do tvého kódu, a když se z něho vrátí, tak po sobě zase uklidí. Je to ověřené, používá to fůra lidí, případně si jiní naprogramovali něco, co je tomu stejně velmi podobné (ne-li identické).
    Pokud tvůj program někdy funguje a někdy padá, tak si ověř, že na začátku je v registrech to, co očekáváš, resp. že jsou vynulovány. Systém je totiž nemaže, a tak když bys třeba udělal toto:
    Code:
       .....
       move.w d1,d0
       .....
       add.l d0,a0  ; Tady mozna predpokladas ze hornich 16 bitu d0 je nulovych, ale to neni zarucene Je treba si je radeji predem smazat.
    Taky je při programování zvykem, že rutiny nejdříve uloží obsah registrů které modifikují na zásobník a před návratem je zase vrátí do původního stavu:
    Code:
    MySuperDuperRoutine:
       movem.l d0-d3/a0-a4,-(sp)
       ..... ; Tady si vesele pouzivam a menim registry d0-d3,a0-a4, ale je to jedno, protoze...
       movem.l (sp)+,d0-d3/a0-a4  ; tady je zase vratim do puvodniho stavu
       rts
    Tím máš zajištěno, že ti zavolání tvé rutiny nenaruší chod zbytku programu.
    Tvůj kód by rozhodně neměl zaseknout WinUAE tak, že ten pak nereaguje. Na reálné Amize to bylo naopak zcela běžné Tady bych spíš tipoval na nějaký problém ve tvém PC/Windows?
    Naposledy upravil Defor; 29.01.2022, 20:07:19.

    Vložit komentář:


  • Dedy
    odpověděl

    Vložit komentář:


  • IDEfix
    odpověděl
    Autorem citovaného textu je Dedy Přejít na původní příspěvek

    Taky koukáš na IT Crowd?
    Tak jistě, můj oblíbený séroš...

    Vložit komentář:


  • Dedy
    odpověděl
    Autorem citovaného textu je IDEfix Přejít na původní příspěvek

    A zkoušel si to vypnout a zapnout...?




    Jo, takhle to má pípat....
    Taky koukáš na IT Crowd?

    Vložit komentář:


  • Lisiak
    odpověděl
    Autorem citovaného textu je IDEfix Přejít na původní příspěvek

    A zkoušel si to vypnout a zapnout...?




    Jo, takhle to má pípat....
    Ne, pardon, to mne nenapadlo. Tak já to zkusím 🙂

    Vložit komentář:


  • IDEfix
    odpověděl
    Autorem citovaného textu je Lisiak4 Přejít na původní příspěvek
    Jednou se mi seklo WinUAE tak, že nešlo zavřít ani přes křížek. Až po tak 4 minutách se PC vzpamatovalo v době kdy jsem se jo již chystal restartovat. To taky pobavilo. Chudák PC 😁
    A zkoušel si to vypnout a zapnout...?




    Jo, takhle to má pípat....

    Vložit komentář:


  • Prisko
    odpověděl
    Definice programátora:

    Programátor je člověk, který zcela nepochopitelným způsobem řeší problémy, o jejichž existenci vy nemáte ani potuchy

    Vložit komentář:


  • Predseda
    odpověděl
    Dvě kouzelná slova: Task Manager

    Vložit komentář:

Zpracovávám...
X