Oznámení

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

Assembler - všeobecná logika

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

    Autorem citovaného textu je Defor Přejít na původní příspěvek
    K dispozici je celkem nedávný systém od Leonarda - LDOS. https://github.com/arnaud-carre/ldos
    Systém je hlavně udělán k tomu, aby načítal separátní exáče (opět bez přispění OS), rozbalil je, naalokoval paměť (udělal relokaci) a spustil. Ale myslím, že v něm je možnost i načítat datové soubory (víc https://github.com/arnaud-carre/ldos...dos/kernel.inc). Ale myslím, že neumí používat žádný stávající file-system, takže image diskety se musí nejdřív vytvořit v nějakém jeho toolu.
    LDOS - pouze mé postřehy

    Postupne se prokousavam tim LDOSem. Vypada to zatim dobre, jen si to je treba osahat. Jo, vyslednim ADF nebude klasicky amiga format, tedy to z diskety pujde spustit, ale jinak se nebude dat nacist tak, aby jsme viděli na ni klasicke soubory. LDOS by mel mit minimalni naroky 512 KB CHIP RAM + 512 nejake dalsi RAM. Ja se zatim zameruji na disketu, ale mel by mit i zavadec na HDD. LDOS obsahuje i hudebni prehravac. Je reprezentovany jako nejrychlejsi hudebni prehravac na Amize co by mohlo byt, ale neco za neco. Neprehrava klasicke MODy. Hudebni MOD si LDOS prevede do nejakeho sveho specifickeho formatu, Pri spravnem nastaveni by se tohle melo udelat automaticky, ten prevod pri vytvareni ADF / HDD verze. Ja tohle obejdu a dnes se mi povedlo udelat format LDOSu BIN. Jsou v nem binarni data, se kterym vas zdrojovy kod v assembleru pracuje. Ja si jako tyhle data urcil samotny MOD. Kazda skladba bude jeden BIN, tim docilim toho ze se budou MODy nacitavat do pameti postupne, Jako BIN muzete mit i jina data se kterymi potrebuje pracovat. Na to aby jste BIN mohli vytvorit potrebujete mit v adresari krome zdrojoveho kodu a MODu taky soubory LDOSu "M" a "VC". V souboru M si pomoci editace urcite cestu a nazev zdrojoveho kodu v ASM a nazev samotneho BIN, ktery se vam jeste jen vytvori. Ja mam ve zdrojovem kodu pouze INCBIN na konkretni MOD. Kazdy zdrojovy kod musi jeste nelepe někde na zacatku obsahovat i direktivu INCLUDE "kernel.inc". To je soubor LDOSu. Pokud je vse OK a spustite soubor M, LDOS vam vytvori soubor BIN. Ten si pak jiz nactete ve zdrojovem kodu. Tedy priprava ADFka by se dle vseho mela delat na dvakrat. Pripravite si BINy, ktere uvedete ve zdrojovem kodu a pak samotne vytvoreni ADFka. Dle vseho az tim krokem, jak se bude vytvaret ADF / HDD by se mela ucinit i samotna komprimace, kterou LDOS podporuje a tedy na disketu date vice dat. LDOS je dle vseho dost komplexni system, jde tam hodne veci nastavovat. Lze napriklad nastavit, aby se po nacitani dat a spusteni programu zacali nacitat hned dalsi data ktere jsou potreba. Tohle se muze a nemusi vyuzit dle potreby. Programator Leonard je jeden z dalsich expertu v ramci programovani. Jednoduse Oxygene . Ja v jednu dobu dost šlapal na hudebnim disku Amigatari, ktereho je koder Leonard a pouziva LDOS. System LDOS obsahuje i navod, ja pouzivam navod v kombinaci s ukazkovym kodem / soubory pro ADF. Samotny navod by mi nestacil, ale v kombinaci to zatim celkem jde. Tak zatim jen takove me postrehy a snad se zadaří
    Naposledy upravil Lisiak; 12.04.2024, 23:48:56.
    Amiga - PMD 85

    Komentovat


      Kodér Leonard a pak popis 1 problému, co mám s LDOSem

      Drobátko teď OT, ale standardně mně to pobavilo a myslím, že jsem nalezl jednu z možných příčin, proč mi tvůrce LDOSu zatím neodepsal

      Info z Twitteru:



      @leonard_coder

      Apr 6
      hey twitter's friends! Soon is my first family trip to Japan (10 to 20 April), visiting Osaka, Kyoto, Tokyo and Hakone. Is there anything we should definitely see/do? #Japan
      ·

      U LDOSu řeším ještě 1 věc. Nedaří se mi z hudby MOD udělat jeho BIN soubor, neboli ho udělám, ale kód ho nenačte a hudba tedy nehraje. Pokud do ADF zpracované LDOSem vložím klasický MOD, tak mi hudba hraje. Tedy pomocí LDOSu mám vše ok kromě toho MODu a já ten BIN potřebuji, aby se ty MODy načítali postupně a ne naraz, čím bych měl snžit pamětovou náročnost. Vytvoreny BIN soubor meho programu je ok. U MODu postupuji stejně. Já vlastně ten MOD jen zabalím do BIN. Ta spojitost v kodu je pak nasledovná:

      načtu BIN do A1 (návěstí Mod0) a dole v kódu mám INCBIN:
      Code:
      Mod0 lea ModScr0,a1
      
      ModScr0 incbin "ModMediev.bin"

      ve druhém souboru mám (první řádek je direktiva LDOSU, ve druhém jen načítám samotný MOD):
      Code:
      include "../../ldos/kernel.inc"
      
      incbin "mediev.MOD"
      Druhý soubor dle postupu zabalím do BIN souboru a soubor BIN se mi pak vytvoří. Soubor BIN pak načítám místo MODU, aby mi s ním LDOS uměl pracovat. Pak vytvorim BIN i z meho kodu soucasne s ADF souborem. Hudba mi vsak nezacne hrat.

      Pokud pouziju v kodu

      ModScr0 incbin "Mediev.MOD"
      místo:
      ModScr0 incbin "ModMediev.bin"

      a použiju LDOS, který mi vytbori BIN soubor z meho kodu a soubezne se mi vytvori ADF, ktereho je BIN z meho kodu soucasti, hudba z takhle vytvoreneho ADF mi hraje a vse je ok.

      Tak za chvíli se vraci koder LDOSu Leonard z Japonka, třeba prohodíme pár vět, pokud se to nevyřeší...
      Naposledy upravil Lisiak; 17.04.2024, 13:43:54.
      Amiga - PMD 85

      Komentovat


        Ještě dnes druhý příspěvek, pouze info.

        Ještě předtím, než jsem zacal resit vyse popsany problem jsem resil 1 chybove hlaseni LDOSu. Bylo to neco jako, ze nemuze najit soubor s indexem 0001. Leonard popisuje pouze problem, pokud je pamět preplněna, jak se to pokusit resit. Ten problem mam taky, ale to jsem docasne vyresil tim, ze nacitavam zatim pouze 2 MODy. Ve vysledku se ten problem s indexem souboru 0001 vyresil tim, ze jsem odstavil / vymazal cely kod od Photona, co mi odstavuje system. Domnívám ze, ze LDOS ma takovyhle kod svuj. Asi mu nesedelo 2 krat po sobe odstavovat system, popripade neco z Photonova kodu, co odstavuje system. To je jen ma domnenka. Po odstaveni Photonova kodu se chybova hlaska prestala zobrazoat a ja i dle chovani predpokladal, ze se mi jiz spustil muj kod i kdyz v te dobe bez hudby a ja pokacoval v bádání dál
        Naposledy upravil Lisiak; 17.04.2024, 14:32:13.
        Amiga - PMD 85

        Komentovat


          LDOS - pouze info

          Tak poslední 3 dny jsem si nasel cas na LDOS a pred chvili jsem zaznamenal uspech. Jeden francouz, co sepsal strucny navod na LDOS mne nasmeroval spravnym smerem. V navode se neresi co jsem potreboval a i kdyz mi napsal vseobecny postup, tak jsem si na par veci prisel sam. Ono je to o tom, ze LDOS si dela svou vlastni kompilaci a clovek presne nevi co se tam deje a jak to pracuje a ze zdrojovych kodu jsem pro mne potrebne veci nevycetl, nebo je tam nenasel. Co byla moje prvni chyba bylo to, ze jsem si udelal potrebne struktury a pak se snazil MOD nacist jiz klasicky pomoci assembleru s tim ze pri kompilaci LDOSem se potrebne veci jiz udelaji. Chyba. Je treba pouzit dal specificky pristup LDOSu. Na to mne nasmeroval ten francouz co sepsal navod. I tak jsem mel problem zahrat MOD. Tak jsem samotny MOD nezpracoval LDOSem na soubor BIN, ale dal jsem ho do struktury primo (čistý MOD) s tim, ze jsem ho nacetl pomoci LDOSu. MOD se mi spustil. Zatim ho pro jednoduchost mam primo v CHIP RAM. Samotny nazev MODu uvadim tedy i v souborech LDOSu, ktere mi pouzite subory slinkuji. V zaveru jsem zkusil samotne nacteni MODu ani neuvest v kodu. I tohle funguje. Samotny LDOS ho pri slinkovani priradi do ADFka. Je tam nevyhoda, ze si nemuzete urcit, do jake pameti se MOD nakopiruje. Myslim, ze by to melo byt do te, se kterou se pracuje v kodu, kde se s LDOSem nacita samotny soubor.

          Jak jsem koukal na kod LDOSu, tak jsem zatim nic lepsiho nevidel. Strasne "tvrdy kod". Skoda ze prace s LDOSem neni lepe popsana.

          Mel bych jit spat....
          Naposledy upravil Lisiak; 29.04.2024, 12:00:26.
          Amiga - PMD 85

          Komentovat

          Zpracovávám...
          X