Oznámení

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

Assembler - všeobecná logika

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

    Rychlost nahrání 170 KB MODu z diskety. ADF vytvořeno LDOSem, který MOD zpakoval na 100 KB
    Na nahrání MODu do paměti byla použita funkce LDOSu "LDOS_LOAD_BINARY_BLOB"

    Amiga - PMD 85

    Komentovat


      Autorem citovaného textu je Lisiak Přejít na původní příspěvek
      Rychlost nahrání 170 KB MODu...
      Tak gratuluji, že to nakonec celé funguje. Taky asi někdy LDOS použiju.

      Komentovat


        LDOS, programovani, poznamkovy blok pro psani kodu - pouze info

        Od doby co se hraju s LDOS-em pouzivam na upravu kodu klasicky poznamkovy blok pod Win. Je to pouzitelnejsi, nez jsem si puvodne myslel. Mírně hůře prehledny (2 barvy a ASM-pro mám ve 3 barvách - nechci tam vic barev), u poznamkoveho bloku celkem hledam, kde mam kurzor (tenka carka), ASM-pro ma neprehlednutelny ctverec / obdelnik. Minimalne u ladeni pro LDOS je poznamkovy blok fajn kombinace, veskerou kompilaci kodu dela jiz program LDOSu a k dispozici mate klasicke chybove hlasky co se tyce chyb v kodu. Poznamkovy blok ma pak pro mne jeden dost dulezity bonus, ukazuje vam, jestli byla v kodu udelana nejaka zmena od jeho posledniho ulozeni, to je vec, ktera mi v ASM-pro vyslovene chybi. Nevyhodu u poznamkoveho bloku vnimam, ze vyhledavani textu v kodu odlisuje, jestli hledame velike nebo male pismena, pokud se tedy spleteme ve velikosti pismena hledaneho textu, vysledek nebude nalezen. Samozrejme vyhodou ASM-pro je debuger a jeho moznost trasovani programu u ktereho si muzeme overit funkci nejake instrukce, nebo vyhledavat slozitejsi chybu.

        V posledni dobe ted resim u LDOSu jeste 1 věc. Nedari se mi nacist 2.skladbu po hrani prvni skladby. Druhou skladbu muzu zacit hrat, pokud ji zacnu hrat nejdrive, ale pokud hraju prvni skladbu a pak chci nacist tu druhou, LDOS tak zatim neudela. Psal jsem uživateli Soundy-mu (autor pdf navodu k LDOSu), se kterym resim me problemy s LDOS-em. Napsal mi, ze dle vseho nemam celkove ukoncenou mou hudebi rutinu po tom co chci s LDOS-em pracovat. To se mi potvrdilo, vadi mu ma hudeni rutina, ze je aktivni. Celkem jsem se hudebni rutinu snazil ruzne odstavit, udelat LDOS-u čas na to, aby se mohl inicializovat, ale nepovedlo se zatim.

        Zjistil jsem v me hudebni rutine chybu. 1 situaci jsem nemel odchycenou, to jsem vcera vyresil. Spolu s tim jsem udelal snad spravnejsi ukonceni hrani MODu u me hudebni rutiny, kdy jsem misto primeho skoku v kodu hudebni rutine podstrcil stav, ze prave hraje posledni pattern ze skladby, co je si myslim asi lepsi a dle vseho to funguje spravne.

        Zkusim ted opet par veci, jak mou hudebni rutinu odstavit, nebo pak zacnu odstavovat jednotlive casti kodu v hudebni rutine, aby jsem zjistil, co LDOS-u vadí
        Amiga - PMD 85

        Komentovat


          Pri pouziti soboroveho manazeru LDOS mam problem nacist druhou a dalsi skladbu. Zjistil jsem, ze mu vadi pritomnost CIA casovani. Kdyz dam kod s CIA do poznamky, LDOS mi nacte i druhou skladbu. Zatim se pokousim neuspesne odstavit CIA casovac v mem programu, kdyz chci pouzit LDOS pro nacteni dalsi skladby.
          V D0 mam hodnotu pro casovac. Muj casovac:

          Code:
                                 move.b  #$00,$bfde00   ;CIA primary timer, 2000=1/100 second
                                 move.b  #$7f,$bfdd00 ;
                                 move.w  d0,$bfd500 ;
                                 move.b  #$09,$bfde00 ;
          
          primaryTimer  
                                 btst.b #0,$bfdd00 ;
                                 beq primaryTimer ;


          EDIT: nemuze byt pouzit ani jen 1 kterykoliv radek z casovace co pracuje s nejakym registrem, jakmile je pouzit, LDOS nenacte druhou skladbu. Jedinou vyjimku tvori radek s BTST. S tim mi LDOS druhou skladbu nacte.
          Naposledy upravil Lisiak; 17.08.2024, 20:58:49.
          Amiga - PMD 85

          Komentovat


            ...ono to vypadá, ze casovac CIA budu muset odstavit dostatecne dopredu pokud budu chtit nacist dalsi skladbu. Kdyz kod casovace v kodu mam aktivni, ale preskakuji ho pomoci BRA, tak se mi druha skladba pomoci LDOS nacita.
            Amiga - PMD 85

            Komentovat


              Podívej se do zdrojáků LDOSu. Nejspíš používá CIA časovač. Podle toho, co jsi uvedl, používáš timer CIAB ($bfdX00) obvodu. Pokud to koliduje s LDOS, můžeš využít CIAA ($bfeX01).
              Naposledy upravil Defor; 21.08.2024, 01:28:52.

              Komentovat


                Mně již Soundy (The Deadliners) napsal postup, ale když se k tomu dostanu tak asi až přes víkend. Se Soundym jsem si již ohledně LDOSu pár krát psal. Je velice ochotný, tedy supr
                Amiga - PMD 85

                Komentovat


                  Soundy-ho postup, já se k tomu dostanu později...

                  Code:
                  Hi Martin,
                  
                  Good to read you're back to code!
                  So you're right, LDOS needs the CIA to update itself. If you stop the CIA, LDOS won't update automatically. You have 2 options:
                  
                  Option 1: Make sure CIA is enabled (CIA + Disk DMA)
                  move.w #$8000|(1<<13),$dff09a ; CIA interrupt enabled
                  move.w #$c000|(1<<1),$dff09a ; Enable Disk DMA Int
                  move.w #$8000|(1<<4),$dff096 ; Enable DMA Disk
                  
                  Option 2 (if you need CIA-A off, or linked to something else): Call LDOS_TRACKLOADER_FRAME_TICK at every VBL so that LDOS does not need the CIA to update itself (make sure DMA Disk is enabled though).​
                  Amiga - PMD 85

                  Komentovat


                    Tak postup od Soundy-ho pro zprovozneni nahravani 2. a dalsi skladby nezafungoval. Kdyz jsem pouzil CIA-A tak mi sel LDOS do chyby i pri prvni skladbe, ktera se jinak normalne nahraje a hraje. Nicmene pri pouziti CIA-A je jiny postup pri pouzivani LDOSu pokud tomu dobre rozumim dle toho co Soundy psal. Tak jsem sel do zdrojoveho kodu LDOSu jak psal i Defor. Videl jsem cely podprogram pro praci CIA a cely jsem ho zkopiroval do meho kodu pred inicializaci LDOSu pro hrani druhe skladby. To zafungovalo a LDOS se mi konecne inicializoval a skladbu nahral. Skladbu mi jen hral ve spatnem tempu. Pochopil jsem ze se mi nastaveni meho casovace v hudebni rutine "neprevezme" tak jsme si z LDOSu vzal predpokladane preruseni a dal neco pred a neco za casovac me hudebni rutiny stejne jako to mel LDOS. To zafungovalo a jiz se mi i druha skladba hraje casovacem me hudebni rutiny a ne casovacem samotneho LDOSu. Asi tam mam nejake casti kodu i navic, priste se na to opet podivam, nicmene hlavni problem dle vseho vyresen. Tak jsem si opet v ASM zablbnul a mam radost ze se to povedlo
                    Amiga - PMD 85

                    Komentovat

                    Zpracovávám...
                    X