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, 22: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, 12: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, 13: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, 11:00:26.
          Amiga - PMD 85

          Komentovat


            LDOS - pouze info

            Šlo mi o to, jestli se zpakovava MOD, pokud z nej nedelam LDOSacky BIN a zpakovava, Takhle nejak vypada kompilace, kde davam jeden MOD primo do CHIP RAM. Skladbu mi to da z nejakych 170 KB na 100 KB.

            Windows-ácká kompilace LDOSu na ADF:

            Klikni pro plné zobrazení obrázku

Jméno: LDOS.jpg
Počet zobrazení: 136
Velikost: 283,9 KB
ID: 167449
            Amiga - PMD 85

            Komentovat


              Myslel jsem, že LDOS jen vezme konfigurační soubor, který obsahuje cesty k binárním souborům, a vygeneruje obsah diskety (ADF). Soubory můžou být buď jakékoliv obecné binárky a nebo amigácké EXE soubory. LDOS umí obojí podle potřeby načíst při běhu (po nabootování z diskety) do paměti. Pokud jsou EXE soubory v pořádku, obsahují podporované HUNK sekce (viz. dokumentace k AmigaDOS), tak by je měl umět správně načíst -- tedy rozpoznat co je HUNK s kódem, co je HUNK s relokační tabulkou a co jsou HUNKy s daty nebo BSS (tedy jen s informací o alokaci paměti). Myslel jsem si, že by to mělo být celkem snadné k používání. Pokud chce uživatel načíst nějaká vlastní data (a tedy je nedávat do EXE), tak to LDOS myslím taky umožňuje. LDOS automacky všechna data na disketu zabalí ARJ7 kompresním algoritmem a dekomprese je "zadarmo", protože běží ve stejný čas, kdy se další data načítají z pomalé diskety.

              Ve tvém případě by mělo stačit udělat si jeden exáč, ve kterém do datové sekce (section data_c) dáš svůj modul a do kódové sekce (section code) dáš jeho přehrávání. Prostě normální exáč. Akorát tam už nemusíš psát odstavování systému, protože to za tebe už předem udělá LDOS. Tento exáč dáš do konfiguračního souboru a vytvoříš LDOS utilitou disketu (ADF). Disketa bude mít LDOS boot-block, který asi načítá nějaký dodatečný LDOS kód (pokud se to autorovi celé nevlezlo do boot-blocku) a ten pak načte tvůj "exáč" a spustí. Mělo by to fungovat. Aspoň jsem si to myslel.
              Ta "genialita" LDOSu podle mne spočívá právě v tom, že uživatel dělá normální Amiga exáče (v jakémkoliv assembleru, nebo klidně i v jiném programovacím jazyce) a ze svého kódu pak jen LDOSu říká, jaký exáč má načíst a spustit (když se produkce skládá z více částí).
              Naposledy upravil Defor; 01.05.2024, 21:33:22.

              Komentovat


                Jsou na to postupy jak jsem psal viz soubor v odkazu (LDOS_User_Manual.pdf​):

                Leonard Demo Operating System (Amiga version). Contribute to arnaud-carre/ldos development by creating an account on GitHub.



                Soundy, autor návodu mne pak ještě nasměroval:

                Hi Martin,


                First, I am NOT Leonard. I did not write LDOS. I'm Soundy, I wrote the doc and shared my experience using and customizing LDOS.
                It seems you want to create a sound disk. Ideally, you would need a customized version of LDOS that Leonard will release soon. The problem with the current version is that the files order is linear: you can't have a menu to choose what the next music will be. Files will be loaded in the same order as script.txt.
                With the current version of LDOS, you have 2 options:

                Option 1:
                Create 1 executable (.BIN) per music, each .BIN would contain your music player and include the music using incbin. That's bad because the music player's code is duplicated for each music, but it's easy to do and you load the next music using LDOS_PRELOAD_NEXT_FX.

                Option2:
                You can have a single .BIN that contains your menu and your music player. Then you can load the different musics using LDOS_LOAD_BINARY_BLOB, then copy the resulting file to CHIP RAM (you pre-allocated in your .BIN with a BSS_C section) and play the music from CHIP RAM.
                Normally, LDOS_LOAD_BINARY_BLOB can be called several times, the memory taken by the previous blob will be freed.

                Best,
                Frederic.
                ​​

                Myslim, ze LDOSu je treba umet rici co a kdy se ma nacitat, nebo kdyz tak z meho pohledu je lepsi, kdyz se mu to muze rici a LDOS tohle umi.


                Veskere prikazy, se kterymi se LDOS ridi primo v kodu jsou zde a sam Leonard, autor LDOSu je ve svych prikladech, ktere jsou soucasti LDOSu pouziva:

                ;---------------------------------------------------------
                ;
                ; LDOS (Leonard Demo Operating System)
                ; AMIGA version
                ; Written by Leonard/Oxygene
                ; https://github.com/arnaud-carre/ldos
                ;
                ; Public function library
                ;
                ;---------------------------------------------------------

                LDOS_VERSION = 130

                LDOS_BASE = $4
                LDOS_MUSIC_PLAYER_ENABLED = 1


                ; Pre-load & depack the next FX. Once the current FX end (using RTS) the next one
                ; is executed immediatly.
                ; NOTE: if you don't pre-load, next FX will be loaded & depacked once the previous one ends
                LDOS_PRELOAD_NEXT_FX = 0*4

                ; Stop the demo and display ASSERT message (debugging purpose)
                ; a0: text message to display
                LDOS_ASSERT = 1*4

                ; Start music if already loaded
                LDOS_MUSIC_START = 2*4

                ; Get LSP music frame tick
                ; Use this counter if you want to sync gfx with music
                ; returns d0.l: music frame tick
                LDOS_MUSIC_GET_TICK = 3*4

                ; Stop music playing
                ; Note: This also free music memory (so music won't play again if you LDOS_MUSIC_START)
                LDOS_MUSIC_STOP = 4*4

                ; Check if demo disk 2 is inserted or not
                ; out : d0.b: $ff if disk 2 inserted, $00 if not
                LDOS_IS_DISK2_INSERTED = 5*4

                ; Alloc persistent CHIP memory block between two FX
                ; in : d0.l: size of block
                ; out: d0.l: Addr of the block
                LDOS_PERSISTENT_CHIP_ALLOC = 6*4

                ; Retreive any previously persistent CHIP memory block between two FX
                ; in : none
                ; out: d0.l: Addr of block ( or NULL if no persistent block)
                ; d1.l: Size of block ( in bytes )
                LDOS_PERSISTENT_CHIP_GET = 7*4

                ; Free any previously persistent CHIP memory block
                ; in : none
                ; out: none
                LDOS_PERSISTENT_CHIP_TRASH = 8*4

                ; Load binary blob
                ; in : d0.w: file id (same order as your script.txt)
                ; out: a0.l: allocated & loaded file buffer
                ; : d0.l: file size
                LDOS_LOAD_BINARY_BLOB = 9*4

                ; Returns a pseudo random entropy number. You can use as a seed to PRNG
                ; out: d0.w: pseudo random number
                LDOS_GET_ENTROPY = 10*4

                ; In case you need to shut down the LDOS 50Hz tick CIA timer,
                ; you have to call this each frame if you want to trackload
                ; WARNING: Trash all registers
                LDOS_TRACKLOADER_FRAME_TICK = 11*4

                ; out: d0.l 32bits clock counter
                ; This clock is incremented with internal 50hz-ish frequency.
                ; The frequency depends on ; the main music BPM. ( standard is 50hz if no music ).
                ; This counter is *not* synced to VBlank ( use your own VBL or Copper handler
                ; if you want VBL synced counter)
                LDOS_GET_CLOCK_TICK = 12*4

                ; Returns the current MOD music sequence position
                ; out: d0.w 16bits
                LDOS_MUSIC_GET_SEQ_POS = 13*4



                LDOS_MEM_ANY_RAM = (1<<30)
                LDOS_MEM_CLEAR = (1<<29)
                Nevim jestli LDOS umi nejak sam rozdelovat. kdy ma co nacist, tedy jestli LDOS umi byt vice radoby samostatnejsi. Ono to neni slozite, jen ze zacatku pro slabsiho programatora a ne pro hardcore asm killera je obtiznejsi tomu hned porozumet. Z meho pohledu je k tomu nedostatecna dokumentace, ale jiz se do toho dostavam snad

                Ja to vnimam jako vyhodu mit moznost si rici, kdy se ma co nacist do pameti. Jestli LDOS umi pracovat i s celym exe, tak co jsem ted v rychlosti koukal do toho navodu tak jsem neco takoveho nevycetl. Dle vseho je LDOS jednoduse pro programatory a tam se pocita, ze jsou k dispocici asi spise kody.
                Naposledy upravil Lisiak; 01.05.2024, 22:10:31.
                Amiga - PMD 85

                Komentovat


                  Jestli LDOS umi pracovat i s celym exe, tak co jsem ted v rychlosti koukal do toho navodu tak jsem neco takoveho nevycetl.
                  V README.md se píše
                  Each demo part should be a standard Amiga executable.
                  a taky o něco dále
                  Just put all the exe of your demo in a script.txt...
                  Jednotlivé části (říká jim FX) by tedy měly být vytvořeny jako standardní Amiga EXE soubory. LDOS utilitka si to už přelouská a dá na disketu. Ale na disketu se mohou dát i obecná data (říká jim BLOB). Asi je třeba je dát až za EXE části, když se bohužel všechny načítají postupně za sebou (při RTS z tvého kódu zpátky do LDOSu).
                  Naposledy upravil Defor; 03.05.2024, 01:10:16.

                  Komentovat


                    Soundy mi psal, že Leonard pracuje na verzi LDOSu, u které se již ty pasáže nebudou muset načítat pouze za sebou. Já potřebuji skladby načítat různě, ne pouze jak jsou za sebou a v kombinací snížení paměťové náročnosti a tedy aby jsem měl vždy načteny v paměti Chip pouze jeden MOD mne nenapadá jiná alternativa, než to načítat přímo z kódu. Ono způsob, o kterém Soundy píše, že bych s každý MOD měl k sobě pribalenou i hudebni rutinu - chci použít svou, to mne napadlo ještě před tím, nez mi to psal. To je ta první možnost od něj.
                    Naposledy upravil Lisiak; 03.05.2024, 09:28:32.
                    Amiga - PMD 85

                    Komentovat


                      LDOS...

                      Tak dalsi uspech / neuspech... info.

                      Hral jsem se s pameti, snazil se nacist data pomoci LDOS postupne po 1 MODe z bezne pameti - treba slow do CHIP RAM. Uvedomil si, ze kdyz nepouzivam PC relativni adresaci na pointer v pameti, ktery ukazuje na zacatek MODu, musim si tohle misto v pameti asi pamatovat, tak jsem si ho ulozil do volneho registru, aby po nacteni dat do CHIP jsem se mohl vratit na misto v pameti, kde mi tenhle MOD zacina a zacit ho z CHIP RAM hrat. To se mi nakonec povedlo, ale ne zcela spravne. MOD se mi nepovedlo pomoci LDOSu spravne indexovat. Ve vysledku jsem musel mit v pameti pred hranym MODem jeste nejake dalsi data, klidne jiny MOD. A problem nebyl jen v indexaci, to jsme si potvrdil. Privedlo mne to k myslence, ze by jsem s tim co jsem zjistil jak LDOS funguje, z toho co jsem zatim vedel zkusil samotny MOD zabalit do souboru LDOS - BIN. Ale nepovedlo se mi MOD spustit. Jak jsem si to vse co jsem vedel daval do hromady a s faktem, ktery jsem si uvedomil, ze je vlastne spravne, kdyz pri kompilaci LDOSu se mi data nezobrazuji v pameti CHIP, co je vlastne chtena vec, protoze je chci az pak do ni nacist, tedy jeden MOD, ktery chci hrat, jsem se vratil na "zacatek" a uvedomil si, ze LDOS mi konkretni MOD do CHIP RAM vlastne nakpiruje sam, aniz bych to musel delat v kodu ja, A ze to, co bude v pameti CHIP by mohla urcovat jen indexace pomoci direktivy
                      LDOS_LOAD_BINARY_BLOB
                      Pred touto direktivou se uvadi v registru D0 index souboru, ktery si LDOS načte ze souboru "script.txt" a tim ze mam program v CHIP RAM, tedy do pameti CHIP. Takhle mi to zda se funguje spravne. Nepovedlo se mi jen program rozbehat na nejnizsi konfiguraci co LDOS podporuje a to je 512 KB CHIP RAM + 512 KB dalsi pameti. Povedlo se mi to rozbehat na 1 MB CHIP RAM. Spusteni MODu na 512 KB CHIP RAM se mi nepovedlo, ani kdyz jsem nacetl jiny mensi 88 KB MOD. Doposud jsem spoustel nejmene 150 KB MOD. Na druhou stranu, pokud jsem dal na disketu data, ktere maji celkem kolem 1,3 MB. LDOS je pakuje a ve vysledku se na 1 disketu vejdou. Pokud jsem spoustel MOD, spustil se mi porad na konfiguraci 1 MB CHIP RAM bez jakekoliv dalsi pridavne RAM.

                      Mozna si budu muset lepe odridit praci s pameti v mem hlavnim programu, ale jiz narocnost 1 MB CHIP RAM pro mne zacia byt zajimava, Tedy ve vysledku LDOS v ramci toho, s cim jsem doposud mel moznost pracovat - ruzne packere je pro mne nejvetsim prinosem, pokud se nechci zalamovat s tim, ze si takovou vec musim naprogramovat, co prozatim fakt nechci a jsme rad ze nemusim
                      Amiga - PMD 85

                      Komentovat


                        LDOS....

                        Ke dnešnímu postu jen dopíšu, ze jsem nahral do ADFka pouze ten 88 KB MOD a porad to potrebuje 1 MB CHIP RAM. Tyhle naroky (1 MB CHIP RAM místo 512 KB CHIP RAM + 512 KB dalsí ram) jsou tedy neni zpusobeny LDOSem... .
                        Amiga - PMD 85

                        Komentovat


                          LDOS....info

                          Pokud zabalim EXE soubor do BIN LDOSu - spusti se mi exe (ma hudebni rutina + MOD) na nejnizsi konfiguraci 512 CHIP RAM + 512 dalsi RAM. To by jsem ale musel nacitat hudbu postupne a nemohl si tedy urcovat, kterou presne kdy zahrat. Zaroven bych musel mit ke kazdemu MODu zabalenou i mou hudebni rutinu, ale ta nema vic nez 5 KB.

                          Pokud bych chtel urcovat, ktera skladba se mi pomoci LDOSu zahraje, musi se pouzit direktiva
                          LDOS_LOAD_BINARY_BLOB

                          a i kdyz ma vse dohromady, tedy hudebni rutina a kratky MOD tak 15 KB, hudba mi zacne hrat, az kdyz se pouzije alepson 1 MB CHIP RAM. Pri pouzivani LDOSu jsem si vsiml ze pametovim naroku pomaha prubezne nakopirovani vzdy pouze 1 MODu do CHIP RAM, U direktivy:
                          LDOS_LOAD_BINARY_BLOB
                          jsem mel problem data MODu prenest do CHIP RAM a z ni ji pak zahrat. Nakonec se mi to myslim povedlo. Ale ani tenhle postup nesnizil pametove naroky na spusteni MODu a porad to potrebovalo alespon 1 MB CHIP RAM.

                          Je dost mozny, ze jsem neco prehlidl, ale i kdyz by mela byt minimalni konfigurace 1 MB CHIP RAM je to s tim, co nabizi LDOS jiz pro mne zajimave. Pokud je tohle vlastnost LDOSu, tak to treba jeho pristi verze bude resit, jak jsem psal, melo by se pracovat na verzi LDOSu, kde jiz postupne nacitani EXE souboru za sebou dle vseho nebude muset byt.
                          Amiga - PMD 85

                          Komentovat


                            Dnes jsem napsal Soundy-mu a o pul 12 v noci (je v nasem casovem pasmu) odepsal:

                            Hi Martin,


                            I know you mentioned you directly loaded the BLOB to CHIP mem, but I don't know how you do it.
                            LDOS_LOAD_BINARY_BLOB will alloc randomly CHIP or FAST RAM. There are chances that with a default config, it loads to (fake) FAST, but if you increase CHIP, you increase the chances to load to CHIP RAM. Maybe that's why it runs with 1MB CHIP.

                            If it's the case, you can either :
                            Solution 1:
                            declare a bss_c zone and copy with the CPU your loaded blob to that zone
                            Solution 2:
                            Change the LDOS code: In kernel.asm, locate function "nextEXEDoAlloc" and replace "bsr allocAnyMem" by "bsr allocChipMem". That way, your blobs will be loaded directly to CHIP.
                            To recompile LDOS, execute LDOS\ldos\src\build.cmd

                            Hope it helps!
                            Ja tak nejak tusil, ze se mi to dava spatne do chip mem. Sekci BSS_C jsem mel zadanou. Kopiroval jsem data do chip-mem po bytech od pointru v chip-mem. Vratil jsem se SUBem (SUB je jistejsi) o pocet bytu, co ma skladba aby jsem ji mohl zacit hrat. Vse fungovalo ale az od 1 MB CHIP. Udelal jsem tedy jednoduchou upravu primo v kodu jak pise Soundy. Ted se jiz nemusi nic kopirovat. Rovnou ctu od pointru na MOD, ktery mi vrati funkce "LDOS_LOAD_BINARY_BLOB". MOD mi zacne hrat v zakladni konfiguraci 512 KB CHIP + 512 KB dalsi pameti tak supr!
                            Naposledy upravil Lisiak; 08.05.2024, 00:45:42.
                            Amiga - PMD 85

                            Komentovat


                              LDOS.... problem s pameti odstranen

                              ono vas souvislosti vetsinou spravne smeruji k tomu, aby se problem vyresil. Mne to nedalo a zkompiloal jsem si zpet LDOS tak, aby mi pracoval i s OTHER RAM a ne jen s primym zapisem vseho do CHIP RAM. Overil jsem si, ze hudebni MOD kopiruji do CHIP RAM spravne. To kopiruji, tak jsem sel dal. Chyba poukazovala na pointer MODu v CHIP RAM. Reseni je, ze pokud se nacita pointer na MOD do adresoveho registru a pouzije se direktiva "LDOS_LOAD_BINARY_BLOB", tak se nacteni pointeru na MOD musi zadat za touhle direktivou LDOSu. Já pro pointer na MOD pouzil adresovy registr A1, ten minimalne v ramci vystupu a vstupu direktiva LDOSu nepouziva. Ted jiz se mi MOD zacne prehravat s 512 KB CHIP RAM a ne az s 1 MB CHIP RAM jak to bylo predtim. Ja ale zatim i tak budu pouzivat prime nahravani vseho do CHIP RAM, tedy s drobnou upravou LDOSu jak mi poradil Soundy (autor PDF navodu a dle vseho dobry hudebnik a koder), ale ted jiz vim, kde byl problem...
                              Amiga - PMD 85

                              Komentovat


                                Napsal jsem to včera i Soundy-mu.

                                Dáme si krátký jazykový okénko

                                ​​​​​​
                                Le ven. 10 mai 2024 à 23:00, Martin a écrit :
                                A teď již v citaci odpověď od Soundy-ho:
                                ha! A1 was definitely overwritten by LDOS
                                ok no 🙂 ​
                                Amiga - PMD 85

                                Komentovat

                                Zpracovávám...
                                X