Oznámení

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

Assembler - všeobecná logika

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

  • Lisiak
    odpověděl
    Ok, díky za rady. To kopírování Longu místo Wordu jsem zatím vůbec neřešil, ale díky za upozornění. Makra jsou u mně ještě není v pořadí. Já jsem se zatím jen prohrabával tím principem toho kódu a udělal drobné změny. V rámci logiky jsem třeba udělal test 1, tedy konec řádku před 0, tedy konec celého textu. Původně se 0 testovala před 1, co už tedy vadilo i mně v i tak zatím rozdělaném kódu. Restore systému, možná se na to podívám, ale taky to teď není hlavní problém, každopádně dobré o tom vědět.
    Mně by třeba zajímalo, v Amiga Review se píše, že se má Cooper odstartovat zapsáním nějaké hodnoty na register dff088, nebo dff08a. V programu, ani v původní verzi se tohle nedělá. Není to tedy nutné a co Copper odstartuje, pokud ho odstartovat je třeba?

    Vložit komentář:


  • Defor
    odpověděl
    Asi by to chtělo dát tam i exáč, ať si to člověk nemusí buildovat sám.

    Pár poznámek ke code (si nemůžu pomoct, co?):
    - Nejsem si jistý, jestli se dá spoléhat na to, že se po povolení multitaskingu na konci programu vždy správně automaticky nastaví původní screen. Asi to obvykle zafunguje, ale i tak se doporučuje zavolat LoadView() s uloženým původním View. Problémy jsou údajně s RTG. Aby se zbytečně nevynalézalo kolo, tak doporučuji z netu stáhnout například Photonův MiniWrapper, který dělá shutdown/restore systému (ale pozor: ruší VBL přerušení, takže to ani tak nemusí vše v systému přežít bez úhony).
    - Není to sice u tak krátkého programu vůbec důležité, ale i tak to uvedu: Na některých místech se tam zbytečně dělá aritmetická operace s long-wordem, i když by stačil jen word -- add.l #40,a2 se dá zcela nahradit za add.w #40,a2, protože 680x0 všechny aritmetické operace s adresovými registry automaticky rozšiřuje na 32 bitů. Totéž také platí pro add.l d1,a3, kde stačí použít add.w d1,a3, pokud máme v d1 jen max šestnáctibitové číslo se znaménkem. Obecně platí, že když pracujeme jen s číselnými rozsahy, které se vlezou do 16ti bitů, je zbytečné používat operace nad long-wordy, které jsou vždy pomalejší.
    - A toto už vůbec není důležité, ale je to taková obecná rada, jak dělat na staré dobré Amize o něco rychlejší kód: Rozvinout smyčky (loop unroll). Pokud dopředu vím, kolikrát se něco má ve smyčce udělat (nebo mám nějaký rozumný odhad) a vnitřek smyčky je malý (pár instrukcí), je režie odskoku na začátek smyčky (bxx,b nebo dbxx.b) velká. Klidně i desítky procent v případě krátkých smyček. Je tedy lepší ty instrukce zkopírovat za sebe (vhodná jsou pro to makra). Sice to bude zabírat více paměti, ale bude to rychlejší.

    Naposledy upravil Defor; 12.12.2021, 20:37:15.

    Vložit komentář:


  • Lisiak
    odpověděl
    Program pro psaní textu.

    Další úpravy, dávám sem hlavně kvůli raw obrázku, ze kterého se berou data pro text, který jsem doposud ke kódu nepřidal. Druhé DBF v programu nechávám, má své opodstatnění a neměním jej za mě oblíbené BRA. 1 drobná úprava v logice. Další zjednodušení kódu pro jednoduché vypsání jenom textu. Ještě se podívám na Copper list a základ programu by měl být hotov. V současné době má kód cca 100 řádků z původních asi 150. Z programu jsem odstranil zesvětlí a ztmavnutí textu. Text se jen zobrazí.

    Je to hezká část kódu.
    Přiložené soubory

    Vložit komentář:


  • Lisiak
    odpověděl
    Pracuji na tom průběžně. Další úprava je
    DBF D3, SEARCHTAB
    nahradit
    BRA SEARCHTAB

    Změna v kódu není zahrnuta. Já jsem instrukci DBF zatím nepřišel na chuť a nepoužívám ji. Nicméně teď ani použita být nemůže.

    EDIT: ještě tam pak přidám ten raw obrázek, ze kterého si to tahá to písmo 😁
    Přiložené soubory
    Naposledy upravil Lisiak; 11.12.2021, 15:11:17.

    Vložit komentář:


  • Lisiak
    odpověděl
    Před pár dny jsem dával na FB jedno starší video z tvorby mě hudební rutiny. Post z FB dávám i sem. Dnes jsem zapracoval na 1 drobnosti (a v nejbližší době dokončím), kterou mne formát MOD naučil a to efekt vibrato hned v prvním řádku patternu s nově hraným tónem, doposud se vibrato dalo aktivovat až v 2.řádku patternu. To jsem spravil. Vibrato můžu hrát jen v 1 určeném hudebním kanálu. Mně to zatím stačí a nechci to dělat zbytečně složité. Možnost zahrát efekt vibrato v prvním řádku s tónem mne stalo co se týče mého formátu další 1 bit. Kompletní šířka mého formátu je 20 byte. Bez dodatečných funkcí dokážu hrát skladbu pomocí 4 byte. Celkově nevyužité a k dispozici ještě 3 byte. Tedy plně využitých zatím 17 byte z 20.

    zde je post z FB s videem:

    Našel jsem při třídění v mobilu jedno starší video z listopadu 2018, které jsem si myslím nikdy nezveřejnil. Jedná se o opravu efektu vibrata, které se ve zvuku sekalo v mé hudební rutině hrající můj vlastní hudební formát. Je to i s nekvalitním zvukovým komentem. V současné době jsem již o kus dál s daným kódem. Přišlo mi to zajímavé. Pouštím skladbu z trackeru 8 bit Atari a pak to zahraju v mém formátu přes sample v emulaci na Amize. Tak si to můžete pustit. ❤️ Amiga

    Vložit komentář:


  • Lisiak
    odpověděl
    O: Assembler - všeobecná logika

    Autorem citovaného textu je Lisiak4 Přejít na původní příspěvek
    Nevím, jestli a kdy bude grafika, tak zatím takhle pánové

    Skladba: Atari Goes On!
    Autor 8 bit Atari verze: PG


    Amiga 4 kanálová očesaná verze aktuální k 19.10.2019 :


    Speciální díky: PG, DJM, zxretrosoft
    Již delší dobu jsem na něco zapomínám. Opravit mé speciální díky, když se mi to vše povede dotáhnout do konce. Resetkání je nedílnou součástí toho co mne zatím žene dopředu

    Speciální díky: PG, jack-3d, DJM, zxretrosoft

    Vložit komentář:


  • Lisiak
    odpověděl
    O: Assembler - všeobecná logika

    Bude se jeste ladit vibrato

    Vložit komentář:


  • Lisiak
    odpověděl
    O: Assembler - všeobecná logika

    V nejblizsich dnech, po tom co mi PG napise, ze je to ok, uvolnim EXE soubor ciste s hudbou, bude to jen zamerne zkraceno o 3 patterny. Testovano na A1200, 4 MB fast RAM. Musi PG napsat, ze je to OK.

    Vložit komentář:


  • rok
    odpověděl
    O: Assembler - všeobecná logika

    paráda

    Vložit komentář:


  • springy
    odpověděl
    O: Assembler - všeobecná logika

    Boží!

    Vložit komentář:


  • Lisiak
    odpověděl
    O: Assembler - všeobecná logika

    Snížené vibrato, hlasitost nechávám původní, již i 105 procent bylo dle mne hodně.

    Vložit komentář:


  • Lisiak
    odpověděl
    O: Assembler - všeobecná logika

    Ahoj, s asm na Amize se pořád hraju a zatím rozhodně nějak zásadně nepolevuji

    V rámci mé hudební rutiny jsem v poslední době řešil hraní sólového nástroje. Zanášela sa mi mi do něj vysoká frekvence. Byl jsem na to upozorněn (od PGho). V současné verzi používám na sólo 7 samplů, které střídám při hraní skladby dle potřeby. Jde o to, že je třeba sampl ve skladbě hrát dostatečnou rychlostí. Viz tabulka je sampl 96 v 1.oktávě posunutý o oktávu níže vůči originálu. Aby jsem dosáhl dostatečné rychlosti hraju každý tón samplu 96 o 2 oktávy výše (čím vyšší tón, tím rychleji se sampl hraje). Na zahrání tónu A1 a A1# nemůžu použít sampl 96. Hraje se moc rychle a sampl se již nehraje bezchybně. Tyhle tóny hraju pomocí G1#, tedy vlastně o 2 oktávy výše a to je G3#. Pomocí G3# zahraju za použití 2 samostatných samplu (97,98.) určených pouze pro tyhle 2 tóny ve skutečnosti A1 a A1#. Pak mám sampl 99, který není v rámci vzorku posunutý o oktávu níže. Je tedy frekvenčně na své původní hodnotě. Tento sampl nicméně hraju o 1 oktávu výše. Sampl 96 jsem hrál výše o 2 oktávy. Sample 9a a 9b jsou samostatné a fungují stejně jako sample 97 a 98. Mám je přesamplované v Protrackeru, aby mi hráli vyšší tóny nižší rychlostí. Ve skladbě Atari Goes On! se tón H2 nehraje a tak používám samostatný sampl přesamplovaný Protrackerem a hraju C3 pomocí nejvyšší možné rychlosti tónem G2#. Sample 9a,9b a 9c již o oktávu výše nehraju. Snad jsem to napsal srozumitelně . Ještě skusím zjemnit vibrato a dát hlasitost sólového nástroje nahoru. Amiga má pro mne v současné době rozsah 4 oktáv (0-3). 4.oktávu mám sice nadefinovanou, ale tón samplu se v ní již nezvyšuje. Sólový nástroj je po zvukové stránce chiptune. Původně jsem hrál již i pouze 1 sínusovku. Nicméně u jednoho přesamplování jsem měl délku samplu 1 sínusovky v nepárném počtu bajtů a s tím si Amiga neporadí. Tak jsem použil sínusovek v každém samplu více. Po zvukové stránce je hraní nástroje z tak 98 procent shodné jako by jsem ho hrál pouze s 1 sínusovkou. No a v odkazu je tohle vše v "pohybu"
    Code:
     0.oktáva        1.oktáva          2.oktáva           3.oktáva        4.oktáva
    
     01 1712 C0      0d(96) 856 C1     19(99) 428 C2      25(9c) 214 C3   31 107 C4
     02 1616 C0#     0e(96) 808 C1#    1a(99) 404 C2#     26 202 C3#      32 101 C4#
     03 1525 D0      0f(96) 762 D1     1b(99) 381 D2      27 190 D3       33  95 D4
     04 1440 D0#     10(96) 720 D1#    1c(99) 360 D2#     28 180 D3#      34  90 D4#
     05 1357 E0      11(96) 678 E1     1d(99) 339 E2      29 170 E3       35  85 E4
     06 1281 F0      12(96) 640 F1     1e(99) 320 F2      2a 160 F3       36  80 F4
     07 1209 F0#     13(96) 604 F1#    1f(99) 302 F2#     2b 151 F3#      37  76 F4#
     08 1141 G0      14(96) 570 G1     20(99) 285 G2      2c 143 G3       38  71 G4
     09 1077 G0#     15(96) 538 G1#    21(99) 269 G2#     2d 135 G3#      39  67 G4#
     0a 1017 A0      16(97cA) 508 A1   22(9acA) 254 A2    2e 127 A3       3a  64 A4
     0b  961 A0#     17(98cAm)480 A1#  23(9bcAm)240 A2#   2f 120 A3#      3b  60 A4#
     0c  907 H0      18(99) 453 H1     24(-----)226 H2    30 113 H3       3c  57 H4

    Vložit komentář:


  • Lisiak
    odpověděl
    O: Assembler - všeobecná logika

    Nevím, jestli a kdy bude grafika, tak zatím takhle pánové

    Skladba: Atari Goes On!
    Autor 8 bit Atari verze: PG


    Amiga 4 kanálová očesaná verze aktuální k 19.10.2019 :


    Speciální díky: PG, DJM, zxretrosoft

    Vložit komentář:


  • Lisiak
    odpověděl
    O: Assembler - všeobecná logika

    Nemám rád cizí logiku v programování, nerozumím ji, ale z prvního pohledu se logika práce s grafikou dá pochopit, co mne těší. Tak jsem v té euforii napsal, že jsem se zamiloval

    Vložit komentář:


  • springy
    odpověděl
    O: Assembler - všeobecná logika

    Doufám, že je to platonické.

    Vložit komentář:

Zpracovávám...
X