Oznámení

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

Vývojové prostředí - Assembler 68k

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

    #31
    O: Vývojové prostředí - Assembler 68k

    Keď si prejdem tento program z Amiga Review č.6 v debugeru v ASM-Pro 1.18, tak mi to skončí na inštrukcii jsr _LVOWrite(a6). Nemožem sa vrátiť nazpat do editácie programu. V lište z výberu vyberať možem, ale to je tak všetko. Keď dám vybrať editor, nič sa nestane. To je normálny stav? Je to program na vypísanie textu "Nazdar mamlasos!" pomocou systému. Program je tu vypísaný bez správneho odriadkovania. Program ako EXE funguje.

    Code:
    ;exec.library:
    _LVOOpenLibrary = -552
    _LVOCloseLibrary = -414
    ;dos.library:
    _LVOOutput = -60
    _LVOWrite = -48
    
    section prg,code
    START move.l 4.w,a6 ; báze exec do a6
    lea dosname(pc),a1 ; jméno dos.library
    moveq #0,d0 ; jakákoli verze
    jsr _LVOOpenLibrary(a6) ; otevřít
    tst.l d0 ; mám dos.library?
    beq .fuj1 ; ne->padám
    move.l d0,a6 ; jo->do a6 s ní
    jsr LVOOutput(a6) ; zjistit výstup
    move.l d0,d1 ; mám ho v D1?
    beq .fuj2 ; ne->padám
    move.l #text,d2 ; adresu textu do d2
    move.l #textlen,d3 ; délku textu do d3
    jsr _LVOWrite(a6) ; Vypsat
    .fuj2 move.l a6,a1 ; dosbase do a1
    move.l 4.w,a6 ; execbase do a6
    jsr LVOCloseLibrary(a6) ; zavřít dos
    .fuj1 moveq #0,d0 ; normální kód
    rts ; skončit
    
    dosname dc.b "dos.library",0 ; jméno dosu
    text dc.b "Nazdar mamlasos!",10 ; text,<LF>
    textlen equ *-text ; výpočet délky textu
    Naposledy upravil Lisiak; 04.01.2016, 19:24:20.
    Amiga - PMD 85

    Komentovat


      #32
      O: Vývojové prostředí - Assembler 68k

      Asi to bude k ničomu, ale v prílohe je zdroják. Dal som súboru príponu TXT, aby som ju sem mohol vložiť, ale AsmPro zobral súbor aj s tou príponou.
      Přiložené soubory
      Amiga - PMD 85

      Komentovat


        #33
        O: Vývojové prostředí - Assembler 68k

        Vsetko je v poriadku, program ktory si sem dal pocita s tym ze je spusteny z CLI a do okna CLI chce aj vypisat text.
        Ak ho spustas/krokujes v debugeru tak vyzera ze "nefunguje". Nebol spusteny z CLI.
        Velmi jednoducho vysvetlene.

        Ak by si pridal ikonu k programu tak by asi tiez nefungoval.
        Naposledy upravil ObiWanKen; 04.01.2016, 19:40:51.
        MiST | Amiga 600 Furia EC020 | Amiga 1200 ACA 1231 | Sharp MZ800 | ZX Spectrum 48k | Didaktik M | Didaktik Gama | C64 U1541II | Atari 800XL | Atari 130XE U1MB+SIDE2.

        Komentovat


          #34
          O: Vývojové prostředí - Assembler 68k

          Jasne, nepredpokladám, že keď budem program v debugeru krokovať, že sa mi pri tom vypíše text, ale zarazilo ma to, že som potom nútený reštartovat systém, spustit AsmPro znovu, aby som mohol opať program editovať... .
          Amiga - PMD 85

          Komentovat


            #35
            O: Vývojové prostředí - Assembler 68k

            Aha, ja som tvoj program krokoval a vsetko prebehlo OK.
            Teda vratil sa do editoru a mohol som pracovat dalej. Nemusel som restartovat.
            MiST | Amiga 600 Furia EC020 | Amiga 1200 ACA 1231 | Sharp MZ800 | ZX Spectrum 48k | Didaktik M | Didaktik Gama | C64 U1541II | Atari 800XL | Atari 130XE U1MB+SIDE2.

            Komentovat


              #36
              O: Vývojové prostředí - Assembler 68k

              OK, pokiaľ dám šípku dole a som na inštrukcii jsr _LVOWrite(a6), tak sa do editora ešte vrátiť možem, ale pokial z tejto inštrukcie dám šípku dole, tak nastane stav, keď sa neposunie "kurzor" o pozíciu nižšie (teda zostane v inzerte stále inštrukcia jsr _LVOWrite(a6)) a už sa do editoru vrátiť nemožem.
              Amiga - PMD 85

              Komentovat


                #37
                O: Vývojové prostředí - Assembler 68k

                Prišiel som na to. Chudák, mal problém s tým, že som z programu z ktorého som spustil AsmPro, teda z Dopusu po spustení AsmPro samotný Dopus zrušil. Keď som Dopus nechal spustený po spustení AsmPro, tak sa aj mne celý program pri krokovaní v debugeru správne ukončil a mohol som sa vrátiť do editácie. Som si vravel, že by tam mohla byť spojitosť so systémom, keď sa program snaží vypísať niečo do CLI. Zaujímavé .
                Amiga - PMD 85

                Komentovat


                  #38
                  O: Vývojové prostředí - Assembler 68k

                  Predpokladam ze chces vystup na obrazovku. Ako som uz pisal, niesom v laske so systemovym programovanim na Amige a som z toho aj blbec.
                  Preto si radsej nieco taketo robim sam. Tu mas moj programik na drobne sprtanie.

                  Balicek obsahuje dva Includes (Offsets.i a Custom.i) tie si skopiruj do adresara ktory mas nastaveny v nastaveniach v DEFAULT DIR:
                  tieto includi sa ti hodia aj do buducna. Mozes si ich nahrat priamo do assembleru a pozriet co obsahuju.

                  dalej je tam subor zo znakovou sadou "Charset5x_768x50x1.rn".
                  V zdrojaku najdes cestu odkial ho chce "nahrat" pri kompilacii. Mozes si ho dat kam chces ale musis tuto cestu zmenit kde sa nachadza.

                  Skusaj a pitaj sa. Mas tam vlastu Vram, Copper list, alokaciu, uvolnenie pamate atd.
                  Přiložené soubory
                  MiST | Amiga 600 Furia EC020 | Amiga 1200 ACA 1231 | Sharp MZ800 | ZX Spectrum 48k | Didaktik M | Didaktik Gama | C64 U1541II | Atari 800XL | Atari 130XE U1MB+SIDE2.

                  Komentovat


                    #39
                    O: Vývojové prostředí - Assembler 68k

                    Super díky, ja to beriem tak, že nejako je treba začat. Tak som začal s programom z AR6, ktorý som tu napísal, potom bolo povedané, ze nesystémovo je lepšie, OK, assembler, ako assembler. Cesta učenia nejaká bola a aj nejaká bude. Všetko chce čas. Vieš, keď programátor z AR6 napíše niečo v zmysle, nech ťa ani nenapadne odstaviť systém pri programovaní tak to tak berieš. Ale tak trochu inak sa aj asi bral systém v dobe keď bola amiga predsa len viac v kurze ako teraz. Systémové programovanie má význam asi hlavne na nejaké aplikácie, prípadne niečoho iného, kde si v rámci výkonu Amigy v dostatočnej rezerve.

                    Má inak zmysel sa niečo učiť zo systémových funkcií? Nie ich používať, ale jednoducho sa pozreiť ako to systémová funkcia robí a odstrániť z nej prácu s multitaskingom, aby nám už potom zostal len prístup na HW?
                    Amiga - PMD 85

                    Komentovat


                      #40
                      O: Vývojové prostředí - Assembler 68k

                      Ja by som to napisal takto. AlienBreed systemovo nenaprogramujes aby si dosiahol taku plynulost ako ma original. Ale ak chces aby tvoj Program fungoval od 600 cez A1200 az po A4000 s PPC pouzi system.

                      Aj ked jedna z mojich najoblubenejsich hier - Colonization je naprogramovana systemovo a je to Klenot ! (Samozrejme je to strategia a nie akcna hra).
                      A1260 34MB Ram SCSI; A600 Furia EC020; A500; A500+; CDTV; A3000;

                      Komentovat


                        #41
                        O: Vývojové prostředí - Assembler 68k

                        Ako pise Voodoo, velmi lahko spoznas co bolo urobene Sys a NoSys. Systemove programovanie bolo odporucane pre "buduce" zariadenia.
                        Ak sa dobre pamatam tak AAA malo uz pouzivat uplne ine HW registre a vsetko NoSys by tam nefungovalo.
                        Dnes je uz asi kazdemu jasne ze nic nove na svet od Commodore nepride (skoda).

                        Nieco zo systemovych veci potrebujes, aspon ja pouzivam nasledujuce.

                        Alokacia/uvolnenie pamate (_LVOAllocMem/_LVOFreeMem)
                        Odstavenie/spustenie multitasking-u (_LVOForbid/_LVOPermit)
                        Odstavenie/spustenie preruseni (_LVODisable/_LVOEnable)
                        Praca s diskom (_LVOOpen,_LVORead,_LVOWrite,_LVOClose) a ktomu treba _LVOOpenLibrary,_LVOCloseLibrary (potrebujes otvorit dos.library).

                        A tiez by si mal vediet kto ta spustil (CLI/WB). Je rozdiel ci bol program spusteny z CLI alebo s ikonou z WB.
                        _LVOFindTask, _LVOWaitPort, _LVOGetMsg, _LVOReplyMsg.

                        Mozno ich bude do 20 bez ktorých sa nezaobides.
                        MiST | Amiga 600 Furia EC020 | Amiga 1200 ACA 1231 | Sharp MZ800 | ZX Spectrum 48k | Didaktik M | Didaktik Gama | C64 U1541II | Atari 800XL | Atari 130XE U1MB+SIDE2.

                        Komentovat


                          #42
                          O: Vývojové prostředí - Assembler 68k

                          Ďakujem za nasmerovanie, akurát som hľadal hry, ktoré boli robené systémovo. Aj som našiel, ale tak to teda nie! . OK, najbližšie sa idem pokúsiť programovať v assembleru nesystémovo - pokiaľ na to mám a bude ma to baviť. Ale pokračujem nabudúce... - možno .
                          Amiga - PMD 85

                          Komentovat


                            #43
                            O: Vývojové prostředí - Assembler 68k

                            Systemove hry su napr. Doom, Quake, Payback, Wipeout, NemacIV, Gloom, Heretic, Hexen, Descent, Shogo, onEscapee, Nightlong, Myst, SimonTheSorcerer2, FlyinHight, VirtualGP, Napalm, Foundation, Exodus, Earth 2140,atd..
                            A v podstate vsetky hry (alebo dema,programy), ktore idu na grafickej karte su systemove, lebo ku gfx karte sa nesystemovo nedostanes (CGX,PICASSO...).
                            Amiga 1200T (E/Box)+BlizzardPPC 603p/363+060/66+BVision PPC+256MB+KS3.1+Cocolino+Lyra 2+Fast Ata MK-IV+320GB WD Blue 3200AAJB PATA HDD(PFS3)+dvdrw+dvd+cf2ide
                            Amiga 1200+BlizzardPPC 603e/210+040/25+128MB+KS3.1+CF4GB(PFS3)

                            Komentovat


                              #44
                              O: Vývojové prostředí - Assembler 68k

                              OK, pozeral som na to a to sú všetko hry, čo chcú aspoň 030ku. Mal som za to, že aspoň ten Simon The Sorcerer 2 bude na 020ku, ale podľa všetkého ani ten na ňu neni, aj keď by to 020ka zvládnuť podľa mňa mala a teda pokiaľ by sa jednalo o nejakú adventúru, na ňu by malo stačit u 020ky aj systémové programovanie, ale asi systémovo neni dovod písať, keď sa chcú použit povodné grafické možnosti Amigy. U použití grafickej karty sa už tá situácia mení a musí sa ísť teda na grafiku systémovo.

                              EDIT: Vínimku tvorí už spomínaný Colonization, ktorý je pre klasickú Amigu a naprogramovaný systémovo.
                              Naposledy upravil Lisiak; 05.01.2016, 14:17:12.
                              Amiga - PMD 85

                              Komentovat


                                #45
                                O: Vývojové prostředí - Assembler 68k

                                ASM-Pro 1.18

                                Jedná sa mi o debuger. Keď v ňom krokujem, je vynechané z krokovania návestie. V mojom prípade lokálne návestie. Pokiaľ som to dobre pochopil, lokálne návestie (a teda asi aj globálne - nevidím dovod prečo by tomu tak nemalo byť), aj keď na neho nebolo skočené pomocou inštrukcie beq sa vykoná, keď na neho príde rada v rámci chodu programu. Debuger sa mi ale zastaví pred týmto návestím. Je to normálne?

                                Mám to chápať tak, že aj keď neni skočené na návestie pomocou inštrukcie beq, teda v oprande máme adresu a nie nulu (čo je v poriadku) a príznak operandu teda neni Z, debuger vykoná toto návestie pri inštrukcii beq a ja len teda vidím pozíciu miesta vykonávania v programe umiestnením kurzora na inštrukcii beq?
                                Amiga - PMD 85

                                Komentovat

                                Zpracovávám...
                                X