forum speccy.pl

ZX Spectrum => PROGRAMOWANIE => Wątek zaczęty przez: apk w 2019.03.12, 12:56:49

Tytuł: Asembler Z80 i 8080 pod Windows
Wiadomość wysłana przez: apk w 2019.03.12, 12:56:49
Czy są jakieś darmowe kompilatory asemblera Z80 i 8080 działające pod Win10?
Tytuł: Odp: Asembler Z80 i 8080 pod Windows
Wiadomość wysłana przez: SAJ w 2019.03.12, 13:23:49
Z80 Dev Studio wyglada na to ze dziala.
Kompiler jest na bazie Pasmo, takze powinien obsluzyc Z80 i 8080.

https://sourceforge.net/p/zdevstudio/wiki/Home/


Tytuł: Odp: Asembler Z80 i 8080 pod Windows
Wiadomość wysłana przez: apk w 2019.03.12, 13:29:15
Dzięki, przetestuję.
Tytuł: Odp: Asembler Z80 i 8080 pod Windows
Wiadomość wysłana przez: SAJ w 2019.03.12, 13:33:30
Udalo mi sie skompilowac CP/J do Elwro 800 Junior w tym systemie ze zrodel, ktore przyszly w formie kodu pod 8080.
Zrodla te miescily sie w kilku plikach, co ten system obsluguje i poprawki jakie musialem wprowadzic mozna bylo policzyc na palcach jednej reki.

Pozdr.

Ps. Dorzuce, ze przetestowalem na maszynie podpietej pod domene ze sporymi ograniczeniami, takze na domowych kompach nie powinno byc zadnego problemu.

Ta.
Tytuł: Odp: Asembler Z80 i 8080 pod Windows
Wiadomość wysłana przez: apk w 2019.03.12, 13:45:34
Zainstalowałem, działa :)
Tytuł: Odp: Asembler Z80 i 8080 pod Windows
Wiadomość wysłana przez: LaPi w 2019.03.20, 11:06:54
Program generuje plik z rozszerzeniem zdsp. W jaki sposób to uruchomić na emulatorze???
Tytuł: Odp: Asembler Z80 i 8080 pod Windows
Wiadomość wysłana przez: Tygrys w 2019.03.20, 11:17:22
Takim darmowym cross-compilatorem jest pasmo. Potrafi skompilować program dla Z80 i 8080. Do tego bez problemu generuje pliki .tap.
Tytuł: Odp: Asembler Z80 i 8080 pod Windows
Wiadomość wysłana przez: SAJ w 2019.03.20, 11:20:41
Program generuje plik z rozszerzeniem zdsp. W jaki sposób to uruchomić na emulatorze???

Program generuje pliki z takim rozszerzeniem jakie chcesz, wlacznie z tap czy tzx.
Poczytaj w dokumentacji jak to zrobic.

Pozdr.
Tytuł: Odp: Asembler Z80 i 8080 pod Windows
Wiadomość wysłana przez: SAJ w 2019.03.20, 11:22:26
Takim darmowym cross-compilatorem jest pasmo.

Z80Dev Studio jest zbudowane wlasnie na bazie i wokolo kompilera Pasmo.

To jest kompiler i IDE w jednym.
Tytuł: Odp: Asembler Z80 i 8080 pod Windows
Wiadomość wysłana przez: LaPi w 2019.03.20, 11:56:55
Bardzo dziękuję za odpowiedzi. Wszystko działa. W latach 80 programowało się w języku Basic. O asemblerze nawet wtedy nie słyszałem. Mam prośbę. Książka, kurs, przykłady od zupełnych podstaw asemblera dla ZX Spectrum. Byłbym bardzo wdzięczny.
Tytuł: Odp: Asembler Z80 i 8080 pod Windows
Wiadomość wysłana przez: SAJ w 2019.03.20, 12:34:46
Byłbym bardzo wdzięczny.

Ja tez,

LDA - zaladuj akumulator
STA - rozladuj akumulator

Czy nie ?

:)

Moze na start ktos by mogl wrzucic krotki program z minimalnym tym, co jest potrzebne, zeby ustabilizowac system.

Najpierw trzeba ustawic Stos.

Co jeszcze ?
Tytuł: Odp: Asembler Z80 i 8080 pod Windows
Wiadomość wysłana przez: pear w 2019.03.20, 12:39:18
LDA - zaladuj akumulator
STA - rozladuj akumulator

Czy nie ?
Nie
http://speccy.pl/wiki/index.php?title=Lista_rozkaz%C3%B3w (http://speccy.pl/wiki/index.php?title=Lista_rozkaz%C3%B3w)
Tytuł: Odp: Asembler Z80 i 8080 pod Windows
Wiadomość wysłana przez: SAJ w 2019.03.20, 12:43:41
No i tu jest wlasnie problem.
Masz liste rozkazow i sie baw.

No to juz sie nauczylem :)

Dzieki, jutro wysylam prace na kompo :)



Tytuł: Odp: Asembler Z80 i 8080 pod Windows
Wiadomość wysłana przez: pear w 2019.03.20, 12:45:27
O co Ci chodzi ?
Ja niczego więcej na starcie nie miałem ;D
Mało tego - nie miałem nawet komputera i przeliczałem mnemoniki na kody na papierze według tabeli z zeszytu.
Jak się chce, to się da :D
Tytuł: Odp: Asembler Z80 i 8080 pod Windows
Wiadomość wysłana przez: SAJ w 2019.03.20, 12:48:23
O co Ci chodzi ?
Ja niczego więcej na starcie nie miałem ;D

Ja tez nie :)

Moze czas wydac ksiazeczke pt "poprogramuj mi mamo" albo cos.
Moze jakis watek na jakims forum, gdzie ktos, kto juz wie co i jak moglby wprowadzic w temat.

W kazdym razie pojawil sie popyt.

Myslisz, ze to dobry pomysl ?

Tytuł: Odp: Asembler Z80 i 8080 pod Windows
Wiadomość wysłana przez: pear w 2019.03.20, 12:50:24
Pomysł świetny i sam też bym skorzystał, tylko ... nie ma kto zrobić :(
Tytuł: Odp: Asembler Z80 i 8080 pod Windows
Wiadomość wysłana przez: SAJ w 2019.03.20, 12:51:42
nie ma kto zrobić :(

Trzeba poszukac kogos, kto zawsze twierdzil, ze jest za duzo lutosceny i za malo programowania.

Znamy kogos takiego ?
Tytuł: Odp: Asembler Z80 i 8080 pod Windows
Wiadomość wysłana przez: matofesi w 2019.03.20, 12:52:21
To ja się po raz kolejny bezwstydnie zareklamuję ;)
http://speccy.pl/articles.php?article_id=11 i http://speccy.pl/articles.php?article_id=12
Teksty być może nie są całkiem dla początkujących, ale jak się do tego otworzy opis listy rozkazów to wydaje mi się, że da się załapać jakąś "bazę" ;)

Pisząc starałem się wyjaśniać wszystko po kolei, ale jako, że nie specjalnie mam zacięcie pedagogiczne różnie z tym może być. Dlatego też raczej nie podjąłbym się pisania tekstów zupełnie od podstaw - po prostu uczyłem się tego wszystkiego tak dawno, że nie pamiętam jak to było jak nie umiałem ;)
Tytuł: Odp: Asembler Z80 i 8080 pod Windows
Wiadomość wysłana przez: matofesi w 2019.03.20, 12:55:14
nie ma kto zrobić :(

Trzeba poszukac kogos, kto zawsze twierdzil, ze jest za duzo lutosceny i za malo programowania.

Znamy kogos takiego ?

A to nie było tak, że temat już-już był obcykany i tylko jakichś szlifów brakowało? ;)
Tytuł: Odp: Asembler Z80 i 8080 pod Windows
Wiadomość wysłana przez: SAJ w 2019.03.20, 12:55:57
Jakas szansa, zeby w komentarzach przy kazdej linii assemblera bylo wytlumczone co linia robi i po co tam jest ?

czy

org 32768

Oznacza, ze ZX Spectrum w polowie pamieci dostaje orgazmu ?

:)
Tytuł: Odp: Asembler Z80 i 8080 pod Windows
Wiadomość wysłana przez: Maryjan w 2019.03.20, 13:01:37
... a przy 65536 szczytuje :P
Tytuł: Odp: Asembler Z80 i 8080 pod Windows
Wiadomość wysłana przez: matofesi w 2019.03.20, 13:02:53
W tych artykułach? Żadna ;) W tekście jest opis "funkcjonalny", ale niestety zakłada, że rozumiesz poszczególne rozkazy (czyli sięgnąłeś do manuala Z80 albo na wiki). Mogę się ewentualnie pokusić o "rozpisanie" pierwszego ze scrollerów, ale prawdopodobnie na cokolwiek więcej nie będę miał zacięcia ;)
Tytuł: Odp: Asembler Z80 i 8080 pod Windows
Wiadomość wysłana przez: KWF w 2019.03.20, 13:37:39
Ja niczego więcej na starcie nie miałem ;D
Mało tego - nie miałem nawet komputera i przeliczałem mnemoniki na kody na papierze według tabeli z zeszytu.
Jak się chce, to się da :D

Wszytko OK, jesli masz nascie lat, jestes zdolnym leniem i masz duuzo czasu. Jesli na karku czwarty krzyzyk, do tego zwapnialy mozg niezdolny do szybkiego kojarzenia faktow (pisze o sobie!!!), to juz nie jest tak prosto. :P Bez podrecznika typu "ASM Z80 dla idiotow" raczej nie pojdzie.
Tytuł: Odp: Asembler Z80 i 8080 pod Windows
Wiadomość wysłana przez: matofesi w 2019.03.20, 13:54:53
OK. Pierwszy przykład z pierwszego artykułu rozpisany do poziomu rozkazów i tego, co one robią ;)

        org 32768         ; dyrektywa assemblera - adres początku programu

main_loop:                ; etykieta - logiczny adres zamiast fizycznego
        halt              ; zaczekaj na przerwanie niemaskowalne
        call one_scroll   ; wywołaj podprogram one_scroll - adres następnego rozkazu
                          ; odkłądany jest na stos
        ld bc,$7ffe       ; załaduj do pary rejestrów bc liczbą $7ffe -
                          ; - adres portu klawiatury zawierającego m.in. spację
        in a,(c)          ; odczytaj bajt z portu z adresem w BC do akumulatora (A)
        and 1             ; wykonaj logiczne I pomiędzy A i liczbą 1 - w tym wypadku
                          ; zeruje wszystkie bity poza najmłodszym i jeśli był zerem
                          ; to ustawia wskaźnik Z procesora
        jr nz, main_loop  ; skocz do main_loop jeśli Z nie jest ustawiony
                          ; w efekcie zamyka pętlę jeśli NIE była wciśnięta spacja
        ret               ; wyjście z podprogramu - w tym wypadku powrót do procedury
                          ; ROM kończącej obsługę funkcji USR

one_scroll:
        ld a,(bpos)       ; załaduj do A bajt z pamięci pod adresem bpos
        or a              ; wykonaj logiczne LUB między A i A - efektem jest
                          ; ustawienie znacznika Z jeśli w A jest zero
        jr z,move_text    ; skocz jeśli w A jest zero
        dec a             ; zmniejsz A o jeden
        ld (bpos),a       ; zapisz A do pamięci pod adres bpos
        jr do_scroll      ; skocz dalej
                          ; cały powyższy kawałek to liczniki pikseli pojedynczego znaku
                          ; warunek nie będzie spełniony 8 razy czyli 8 razy następi
                          ; skok do do_scroll a przy ósmym wywołaniu najpierw nastąpi
                          ; przeskok do move_tekst
move_text:
        ld a,7            ; załaduj do A 7 - licznik pikseli
        ld (bpos),a       ; zapisz A do pamięci pod adres bpos - z wcześniejszego
                          ; kawałka pod bpos było 0 i teraz to zmieniliśmy przygotowując
                          ; kolejną pętlę ośmiu wywołań
text_adr: equ $+1         ; $ to adres aktualnego miejsca do którego zapisana zostanie
                          ; kolejna instrukcja przy assemblacji
                          ; dyrektywa equ $+1 przypisuje stałej text_adr adres o jeden dalej
                          ; niż następny adres assemblacji
        ld hl,text        ; tutaj do pary rejestrów HL ładujemy liczbę będącą adresem
                          ; tekstu scrollera (etykieta text)
                          ; sam rozkaz składa się z trzech bajtów - pierwszy to kod
                          ; rozkazu a dwa kolejne to sam adres - equ $+1 wskazuje właśnie
                          ; na miejsce w pamięci pod którym znajduje się ten adres
        ld a,(hl)         ; ładujemy do A bajt spod adresu znajdującego się w HL
        inc hl            ; zwiększamy HL o 1
        ld (text_adr),hl  ; zapisujemy HL do pamięci pod adres text_adr
                          ; w efekcie przy następnym wywołaniu poprzednie "ld hl,text"
                          ; będzie zawierało ld hl,text+1
        cp 13             ; porównanie A do liczby 13 - tak na prawdę wewnętrznie procesor
                          ; odejmuje 13 od A i ustawia odpowiednio znaczniki - jeśli
                          ; w A było 13 to ustawiony zostanie znacznik Z
        jr nz,get_char    ; skocz jeśli Z nie było ustawione, czyli nie mieliśmy w A 13
        ld hl,text        ; jeśli mieliśmy to znaczy, że doszliśmy do końca tekstu i trzeba
                          ; go "zapętlić" - ładujemy do HL adres etykiety "text"
        ld a,(hl)         ; pobieramy do A bajt spod adresu w HL
        inc hl            ; zwiększamy HL o jeden
        ld (text_adr),hl  ; zapisujemy HL do pamięcie jak poprzednio


get_char:
        ld h,0            ; ładujemy do H (wyższej połówki pary HL) zero
        ld l,a            ; ładujemy do L (niższej połówki pary HL) zawartość A
                          ; w tym wypadku jest to kod kolejnego znaku do "wyscrollowania"
        add hl,hl         ; dodajemy HL do HL - w efekcie mnożymy HL przez 2
        add hl,hl         ; ...przez 4
        add hl,hl         ; ...przez 8
        ld de,$3C00       ; łądujemy do pary rejestrów DE $3C00 - pod adresem $3D00 w ROMie
                          ; znajduje się standardowy generator znaków
                          ; używamy adresu o 256 niższego, bo w A mieliśmy kod ASCII znaku
                          ; które to kody zaczynają się od 32 - 32 * 8 daje właśnie 256, o
                          ; które pomniejszamy adres
        add hl,de         ; dodajemy do HL zawartość DE - w efekcie w HL mamy adres w ROM
                          ; bitmapy kolejnego znaku

        ld de,buf         ; do DE ładujemy adres bufora znaku na którym będziemy dalej pracować 
        rept 8            ; dyrektywa assemblera - powtarza 8 razy wszystko aż do następnego endm
          ldi             ; LDI to złożona instrukcja transferu - pobiera bajt danych spod
                          ; adresu w HL, zapisuje pod adres w DE, zwiększa HL i DE i zmniejsza
                          ; BC (które w instrukcji LDIR jest jużwane jako automatyczny licznik
                          ; powodujący wykonanie całej procedury zadaną w BC liczbę razy)
                          ; nie uzywamy LDIR, bo 8 razy LDI jest szybsze niż LDIR, bo nie
                          ; wykonuje wewnętrznie sprawdzenia zawartości BC
        endm              ; koniec dla rept

do_scroll:
        ld hl,20704+31    ; ładujemy do HL adres końca linii w której chcemy wyświetlać scroller
                          ; adres trzeba sobie policzyć zgodnie z organizacją pamięci Spectrum
                          ; tutaj jest to ostatnia ośmiopikselowa linia ekranu
        ld de,buf         ; ładujemy do DE adres bufora znaku, do którego skopiowaliśmy
                          ; 8 bajtów bitmapy
        ld b,8            ; ładujemy do B 8 - b jest licznikiem dla pętli scrollującej

loop1:                    ; tu zaczyna się pętla zewnętrzna  - 8 linii
        push hl           ; odkładamy HL na stos
        ld c,32           ; ładujemy do C 32 - liczba znaków w wierszu
        ld a,(de)         ; pobieramy do A bajt pamięci adresowany przez DE - bajt bufora znaku
        rla               ; przesuwamy zawartość A arytmetycznie o jeden bit w lewo
                          ; oznacza to, że znacznik CY (przepełnienia) wsuwany jest na najmłodszy
                          ; bit A a najstarszy bit A jest wysuwany do znacznika CY
                          ; to pierwsze nie ma dla nas znaczenia, to drugie powoduje, że piksel
                          ; z bufora znajduje się teraz w CY a w A mamy bajt przesunięty o jeden
                          ; piksel
        ld (de),a         ; zapisujemy bajt z A pod DE - z powrotem do bufora

loop2:                    ; tu zaczyna się pętla wewnętrzna - 32 bajty w linii
        ld a,(hl)         ; ładujemy do A bajt spod HL czyli bajt z ekranu, który będziemy scrollować
        rla               ; przesuwamy ten bajt tak jak poprzednio - tym razem bit, który
                          ; wysunęliśmy z bufora do CY wsuwa się od prawej a najstarszy bit z lewej
                          ; wysuwa się do CY
        ld (hl),a         ; ładujemy bajt z A pod HL - przesunięty i uzupełniony o nowy piksel
                          ; z powrotem w ekran
        dec l             ; zmniejszamy L (a co za tym idzie HL) o 1
        dec c             ; zmniejszamy C o 1
                          ; trzeba pamiętać, że INC i DEC nie są tak na prawdę instrukcjami
                          ; arytmetycznymi i jako takie nigdy nie "psują" CY w którym cały
                          ; czas mamy piksel do wsunięcia do kolejnego bajtu
        jr nz,loop2       ; jeśli C nie zawiera 0 to nie uztawił się znacznik Z i w takim
                          ; wypadku skaczemy na początek pętli wewnętrznej scrollując kolejne
                          ; bajty ekranu
        inc de            ; jeśli pętla wewnętrzna się zakończyła zwiększamy DE o 1 - przeskakujemy
                          ; w buforze do kolejnego bajtu znaku
        pop hl            ; podnosimy HL ze stosu
        inc h             ; zwiększamy H o 1 - w efekcie zwiększamy HL o 256
                          ; dzięki organizacji ekranu Spectrum i wybraniu odpowiedniego adresu
                          ; scrollera daje nam to przeskok adresu dokładnie o jedną linię ekranu
        djnz loop1        ; zamykamy pętlę - DJNZ zmniejsza B o 1 i jeśli w wyniku ustawi się
                          ; znacznik Z (czyli B osiągnęło 0) nie wykonuje skoku, w przeciwnym
                          ; razie skacze domykając pętlę zewnwtrzną
        ret               ; wyskakujemy z podprogramu

buf:    ds 8              ; dyrektrywa assemblera rezerwująca 8 bajtów w pamięci
bpos:   db 0              ; dyrektywa assemblera rezerwująca jeden bajt pamięci ustawiająca go na 0
text:   defm "Tekst scrollera... wpisany jako parametr dla defm albo "
                          ; dyrektywa assemblera zapisująca do pamięci ciąg bajtów
                          ; będących reprezentacją kodów ASCII tekstu
        defm "w dowolne miejsce w pamieci a wtedy zamiast text: defm "
        defm "nalezy uzyc text: equ adres_tekstu "
        db 13             ; dyrektywa assemblera rezerwująca jeden bajt pamięci ustawiająca go na 13
        end 32768         ; dyrektywa assemblera - jeśli użyjemy przy kompilacji typu
                          ; wyniku --tapbas to pasmo automatycznie doda loader w którym podany
                          ; adres będzie użyty jako adres startu a to samo minus jeden jako
                          ; adres RAMTOP (a co za tym idzie stos) ustawiony przed załadowaniem
                          ; kodu do pamięci

Zakładając, że kod zapisany jest w pliku scroller.asm kompilujemy go tak:
pasmo --tapbas scroller.asm scroller.tap

W efekcie dostajemy TAP z automatycznie wygenerowanym loaderem.
Tytuł: Odp: Asembler Z80 i 8080 pod Windows
Wiadomość wysłana przez: KWF w 2019.03.20, 14:02:47
No to pierwsze pytanie. Dlaczego adres startowy wybrałeś 32768, a nie np. 24000 czy 49159?
Tytuł: Odp: Asembler Z80 i 8080 pod Windows
Wiadomość wysłana przez: SAJ w 2019.03.20, 14:13:29
Bo tam jest orgazm  :)

Mysle, ze dobrze jest poznac mape pamieci Komputera, bo na 16Kilo-bajtowym ZetIksie to nie ruszy.
Tytuł: Odp: Asembler Z80 i 8080 pod Windows
Wiadomość wysłana przez: matofesi w 2019.03.20, 14:18:09
No to pierwsze pytanie. Dlaczego adres startowy wybrałeś 32768, a nie np. 24000 czy 49159?

Przyzwyczajenie - pamięć od 32768 nie jest contended i jeśli tylko kod się mieści to zawsze go umieszcza właśnie tam.

Mysle, ze dobrze jest poznac mape pamieci Komputera, bo na 16Kilo-bajtowym ZetIksie to nie ruszy.

A to jest jakby oczywiste. Nigdy nic nie pisałem na ZXS 16K i raczej nie zamierzam sobie tym zawracać głowy ;)
Tytuł: Odp: Asembler Z80 i 8080 pod Windows
Wiadomość wysłana przez: Maryjan w 2019.03.20, 15:09:12
Czy taki kod jest relokowalny ?
Tzn. da się go załadować i uruchomić z innego adresu ?

Dlaczego pytam, ponieważ interesuje mnie umieszczanie kodu np. w lini 0 po REM.
Czy umieszczenie takiego programu w 2-gim trybie przerwań, pozwoli na załadowanie czegoś np. z dyskietki ?

Kiedyś widziałem taki loader dla programu dla FDD 3000.
Stacja doczytywała, a w tle grała muzyka i leciał scroll.
Tytuł: Odp: Asembler Z80 i 8080 pod Windows
Wiadomość wysłana przez: steev w 2019.03.20, 15:23:08
Czy taki kod jest relokowalny ?
Tzn. da się go załadować i uruchomić z innego adresu ?
Zazwyczaj nie.
Musisz go wtedy skompilować tak, żeby wpadł pod konkretny adres.

Kiedyś widziałem taki loader dla programu dla FDD 3000.
Stacja doczytywała, a w tle grała muzyka i leciał scroll.
Z FDD3000 to nie sztuka.
Przy ładowaniu danych procesor albo się nudzi, albo odbiera dane od stacji...
Tytuł: Odp: Asembler Z80 i 8080 pod Windows
Wiadomość wysłana przez: matofesi w 2019.03.20, 15:28:35
Czy taki kod jest relokowalny ?
Tzn. da się go załadować i uruchomić z innego adresu ?

Nie jest. Ale jak się uprzeć da się to zrobić tylko to jest albo kombinowanie, żeby adresy zmiennych/tablic jakoś wyliczać w locie albo trzeba zrobić procedurę relokującą na początku. Ogólnie - prostsze rzeczy daje się dość łatwo zrobić tak, żeby były relokowalne, większe znacznie trudniej.

Najprostszą metodą jest skompilowanie pod konkretny adres gdzieś wyżej i dopisanie na początku procedury, która ustali, gdzie się znajduje i przerzuci to co jest za nią we właściwe miejsce i skoczy gdzie trzeba. A na koniec trzeba to wszystko skleić, zrobić odpowiednio dużo miejsca po REM i wkopiować cały sklejony kod.
Tytuł: Odp: Asembler Z80 i 8080 pod Windows
Wiadomość wysłana przez: matofesi w 2019.03.20, 15:40:21
Zakładając, że kod, który chcesz uruchomić masz w pliku "scroller1.bin" "odpalacz" można zrobić np. tak:
          org 24000
         
          call $0052
l1:
          dec sp
          dec sp
          pop hl
          ld de,l2-l1
          add hl,de
          ld de,$8000
          ld bc,l3-l2
          ldir
          jp $8000
l2:
          incbin "scroller1.bin"
l3:

Adres przy org nie ma znaczenia - może być dowolny. Pierwszy CALL skacze do ROMu do pierwszego RETa jakiego udało mi się znaleźć, po powrocie cofa stos o dwa bajty i podnosi to, co tam znajdzie, czyli adres powrotu dla tego CALLa a więc i adres pod którym znajduje się aktualnie wykonywany kod. Potem do DE ładuje przesunięcie do przerzucanego kodu, dodaje je do HL a następnie do DE ładuje właściwy adres docelowy - w tym wypadku $8000, do BC długość dodatkowego bloku i całość przerzuca LDIRem a następnie skacze pod $8000 odpalając kod. Kompilujesz oba bloki tak:
pasmo --bin scroller1.asm scroller1.bin
pasmo --bin move_it.asm move_it.bin

W wyniku dostajesz plik move_it bin o długości właściwego kodu + 21 bajtów, który możesz odpalić spod dowolnego adresu w tym z linii BASICa po wklejeniu do REMa.
Tytuł: Odp: Asembler Z80 i 8080 pod Windows
Wiadomość wysłana przez: Maryjan w 2019.03.20, 16:11:28
Dzięki.
Muszę w chwili wolnego poeksperymentować i przypomnieć sobie co nie co.
Tytuł: Odp: Asembler Z80 i 8080 pod Windows
Wiadomość wysłana przez: Dalthon w 2019.03.20, 16:31:41
Dlaczego pytam, ponieważ interesuje mnie umieszczanie kodu np. w lini 0 po REM.
Praktycznie to:
- piszesz pod dowolny (32768) adres
- gdy jest gotowe, zmieniasz ORG na 2476x czy inny adres (zależy gdzie masz ten REM)
- tworzysz .tap
- wyciągasz z .tap bin z kodem
- wrzucasz bin pod dany adres pamięci
- zgrywasz .tap z programem po REM
Tytuł: Odp: Asembler Z80 i 8080 pod Windows
Wiadomość wysłana przez: KWF w 2019.03.20, 17:41:47
 >:( pojechaliście Panowie, miało być przystępnie dla „Kowalskiego”, ale doceniam Waszą wiedzę.
Tytuł: Odp: Asembler Z80 i 8080 pod Windows
Wiadomość wysłana przez: matofesi w 2019.03.20, 18:31:28
@Dalthon Wszystko pięknie, pod warunkiem, że wiesz, gdzie masz REMa. Jak zaczniesz podłączać np. interfejsy dyskowe itp., to ci się program przesunie i adresy rozjadą.

@Klaud ja tylko odpowiadam na pytania ;)
Tytuł: Odp: Asembler Z80 i 8080 pod Windows
Wiadomość wysłana przez: LaPi w 2019.03.20, 20:56:07
A czy w prasie komputerowe nie było nigdy kursu asemblera? Może są dostępne skany? Ewentualnie, może ktoś poleci książkę o programowaniu w asemblerze?
Tytuł: Odp: Asembler Z80 i 8080 pod Windows
Wiadomość wysłana przez: trojacek w 2019.03.20, 21:12:06
Jasne, że były, ale trzeba by to wszystko żmudnie przeglądać.
Jest kilka dobrych książek, m.in. "ABC asemblera" Rolanda Wacławka, do znalezienia na zaprzyjaźnionym serwerze FTP (ftp://speccy:[email protected]).
Na tym ftp-ie znajdziesz też inne książki i skany popularnych czasopism.
Tytuł: Odp: Asembler Z80 i 8080 pod Windows
Wiadomość wysłana przez: KWF w 2019.03.20, 21:19:17
Chyba najlepsza jaką miałem w rękach to ta: https://en.wikipedia.org/wiki/Programming_the_Z80 ("Programming the Z80" autorstwa  Rodnay'a Zaksa)
Tytuł: Odp: Asembler Z80 i 8080 pod Windows
Wiadomość wysłana przez: Gryzor w 2019.03.20, 21:40:58
Byl tez kurs w ostatnich zeszytach Konkret. To czego brakuje to pewno kurs przy uzyciu obecnych narzedzi, a dzis malo kto koduje przy uzyciu DevPac.

Jak ktos lubi VisualStudio, to ostatnio powstalo tez cos takiego:

https://dotneteer.github.io/spectnetide/
Tytuł: Odp: Asembler Z80 i 8080 pod Windows
Wiadomość wysłana przez: Dalthon w 2019.03.20, 22:21:16
@Dalthon Wszystko pięknie, pod warunkiem, że wiesz, gdzie masz REMa. Jak zaczniesz podłączać np. interfejsy dyskowe itp., to ci się program przesunie i adresy rozjadą.
Mówimy o sytuacjach "normalnych" - nie "extremalnych" :) Poza tym wygoda pisania na emulatorach jest na tyle wielka że nikt nie będzie robił na prawdziwym sprzęcie - na nim to testowanie finalnej produkcji :P

>:( pojechaliście Panowie, miało być przystępnie dla „Kowalskiego”, ale doceniam Waszą wiedzę.
Nie wina odpowiadających że takie pytania były :D Zaczynałbym od prostych rzeczy aby się nie zniechęcać a dopiero potem zabierał się za wymarzone projekty.

A czy w prasie komputerowe nie było nigdy kursu asemblera? Może są dostępne skany? Ewentualnie, może ktoś poleci książkę o programowaniu w asemblerze?
Polecam zajrzeć tutaj: https://chuntey.wordpress.com/category/z80-assembly/

Praktycznie większość zagadnień jest bardzo dobrze opisany z przykładami - co prawda jak zrobić grę na zx ale znaleźć można odpowiedź na 99% pytań. Po resztę na forum speccy.pl ;)
Tytuł: Odp: Asembler Z80 i 8080 pod Windows
Wiadomość wysłana przez: matofesi w 2019.03.21, 07:54:47
@Dalthon Wszystko pięknie, pod warunkiem, że wiesz, gdzie masz REMa. Jak zaczniesz podłączać np. interfejsy dyskowe itp., to ci się program przesunie i adresy rozjadą.
Mówimy o sytuacjach "normalnych" - nie "extremalnych" :) Poza tym wygoda pisania na emulatorach jest na tyle wielka że nikt nie będzie robił na prawdziwym sprzęcie - na nim to testowanie finalnej produkcji :P

Ale ja wcale nie mówię o jakichś egzotycznych sprzętach. Podłączenie Bety z TR-DOSem przesuwa PROG. Podłączenie IF1 i jakieś zabawy na kanałach przesuwają PROG w te i z powrotem. Rozumiem, że w jakichś 95% przypadków będziesz trafiał w 23755, ale nie jest to reguła i bezpieczniej jest się na to przygotować ;)

I to właśnie emulatory dają wygodę sprawdzenia, czy twój kod będzie się poprawnie zachowywał właśnie w takich sytuacjach - możesz sobie te różne interfejsy "popodłączać" i potestować ;)
Tytuł: Odp: Asembler Z80 i 8080 pod Windows
Wiadomość wysłana przez: Phonex w 2019.03.21, 08:43:37
>:( pojechaliście Panowie, miało być przystępnie dla „Kowalskiego”, ale doceniam Waszą wiedzę.

A czy w prasie komputerowe nie było nigdy kursu asemblera? Może są dostępne skany? Ewentualnie, może ktoś poleci książkę o programowaniu w asemblerze?

Polecam The Complete Machine Code Tutor - http://www.worldofspectrum.org/infoseekid.cgi?id=0008031
lub po polsku - http://www.speccy.pl/archive/prod.php?id=416
Ma w sobie symulator i przykłady, w moim przypadku się sprawdził! :D
Tytuł: Odp: Asembler Z80 i 8080 pod Windows
Wiadomość wysłana przez: Tygrys w 2019.03.21, 08:46:28
Wątków dotyczących programowania było kilka, ostatnio załozyłem taki ponad rok temu - było zerowe zainteresowanie.

Kiedyś, czyli jakiś rok temu, w hackroomie prowadziłem warsztaty z asemblera. W kilka godzin uczestnicy opanowali kilka podstawowych rzeczy, które pozwoliły na napisanie bardzo prostej gry. Jeżeli będzie więcej chętnych, można to powtórzyć.
Tytuł: Odp: Asembler Z80 i 8080 pod Windows
Wiadomość wysłana przez: Maryjan w 2019.03.21, 08:55:38
U mnie chodzi o to, że mogę zaprojektować i wykonać hardware, ale nie ma mi kto tego oprogramować.
Więc ze względu, na powyższe, żeby to działało, muszę zapoznać się z asemblerem Z80.
Poza tym, jak będę znał podstawy, to będzie mi łatwiej wytłumaczyć osobie - programiście, o co mi chodzi.
Na razie, uczę się myśleć w hex-ie :)
Tytuł: Odp: Asembler Z80 i 8080 pod Windows
Wiadomość wysłana przez: matofesi w 2019.03.21, 09:42:08
A czy w prasie komputerowe nie było nigdy kursu asemblera? Może są dostępne skany? Ewentualnie, może ktoś poleci książkę o programowaniu w asemblerze?

Polecam The Complete Machine Code Tutor - http://www.worldofspectrum.org/infoseekid.cgi?id=0008031
lub po polsku - http://www.speccy.pl/archive/prod.php?id=416
Ma w sobie symulator i przykłady, w moim przypadku się sprawdził! :D

A to też jest dobry początek - ja też na tym zaczynałem. Na koniec "kursu BASICa" w lokalnym Domu Kultury prowadzący widząc, że szukam czegoś "bardziej" odpalił TCMCT (po angielsku w czasach jak moja znajomość języka była mocno taka sobie ;)) - w podstawy assemblera wprowadza całkiem nieźle, mimo ograniczeń w symulatorze itp.
Tytuł: Odp: Asembler Z80 i 8080 pod Windows
Wiadomość wysłana przez: LaPi w 2019.03.21, 10:34:24
Wątków dotyczących programowania było kilka, ostatnio załozyłem taki ponad rok temu - było zerowe zainteresowanie.

Kiedyś, czyli jakiś rok temu, w hackroomie prowadziłem warsztaty z asemblera. W kilka godzin uczestnicy opanowali kilka podstawowych rzeczy, które pozwoliły na napisanie bardzo prostej gry. Jeżeli będzie więcej chętnych, można to powtórzyć.

Pierwszy chętny już jest :)
Tytuł: Odp: Asembler Z80 i 8080 pod Windows
Wiadomość wysłana przez: KWF w 2019.03.21, 10:42:14
Drugi tez, ale do Wawy ma daleko ;)
Tytuł: Odp: Asembler Z80 i 8080 pod Windows
Wiadomość wysłana przez: zipp w 2019.03.21, 12:31:52
A może jakiś live na Youtube z takich warsztatów.
Tytuł: Odp: Asembler Z80 i 8080 pod Windows
Wiadomość wysłana przez: Skinner w 2019.03.21, 17:58:47
Też byłbym chętny, ale też daleko  :(
Tytuł: Odp: Asembler Z80 i 8080 pod Windows
Wiadomość wysłana przez: Sir David w 2019.03.21, 18:14:51
Chyba nikt nie zauważył, więc zapytam:
        halt              ; zaczekaj na przerwanie niemaskowalne

Czy na pewno chodzi o niemaskowalne? ;)
Tytuł: Odp: Asembler Z80 i 8080 pod Windows
Wiadomość wysłana przez: steev w 2019.03.21, 18:37:42
Chyba nikt nie zauważył, więc zapytam:
        halt              ; zaczekaj na przerwanie niemaskowalne

Czy na pewno chodzi o niemaskowalne? ;)
Też działa :)
Tytuł: Odp: Asembler Z80 i 8080 pod Windows
Wiadomość wysłana przez: Sir David w 2019.03.21, 18:56:57
Tylko teoretycznie, bo w Spectrum bez odpowiedniego urządzenia zewnętrznego nic go nie wywoła ;)
Tytuł: Odp: Asembler Z80 i 8080 pod Windows
Wiadomość wysłana przez: matofesi w 2019.03.21, 19:07:22
Pewnie, że maskowalne. Takie są efekty pisania komentarzy na kolanie ;)

Brakuje tam też wyjaśnienia, co to ma tak na prawdę robić - HALT czeka na przerwanie, w wypadku Spectrum przerwania niemaskowalne generowane są 50 razy na sekundę przez ULA na początku każdej ramki ekranu. Wywołanie HALT na początku generowania kolejnej ramki animacji zapewnia synchronizację z ekranem i płynne działanie animacji - tutaj scrollera.
Tytuł: Odp: Asembler Z80 i 8080 pod Windows
Wiadomość wysłana przez: Sir David w 2019.03.21, 19:15:20
w wypadku Spectrum przerwania niemaskowalne generowane są 50 razy na sekundę przez ULA na początku każdej ramki ekranu.

Znowu pisałeś na kolanie? ;)
Tytuł: Odp: Asembler Z80 i 8080 pod Windows
Wiadomość wysłana przez: trojacek w 2019.03.21, 19:27:04
w wypadku Spectrum przerwania niemaskowalne generowane są 50 razy na sekundę przez ULA na początku każdej ramki ekranu.

Aż strach pomyśleć, co się będzie wyprawiać, jak podepniesz divIDE/divMMC ;)
Tytuł: Odp: Asembler Z80 i 8080 pod Windows
Wiadomość wysłana przez: Sir David w 2019.03.21, 19:37:09
A co do nauki asemblera, ja się go nauczyłem jeszcze w podstawówce dzięki książce Rolanda Wacławka "ABC asemblera". Książka omawia wszystko od absolutnych podstaw, tak że (za przeproszeniem) każdy głupi by zrozumiał ;) Ja nie tylko od razu zrozumiałem, ale pokochałem asembler Z80. I dlatego wciąż coś dłubię na SAMie.

Nawiasem mówiąc, książka ma na okładce C64, a dotyczy procesora Z80. Do dziś nie wiem, co autor okładki chciał przez to przekazać ;)
Tytuł: Odp: Asembler Z80 i 8080 pod Windows
Wiadomość wysłana przez: Maryjan w 2019.03.21, 20:26:04
Właśnie ją czytam.
Faktycznie, włożone tam wszystko jest łopatologicznie.

Pewnie dali C64 na okładkę, bo nie wiedzieli, czego dotyczy treść, a zdjęcie z C64 było "pod ręką".
Tytuł: Odp: Asembler Z80 i 8080 pod Windows
Wiadomość wysłana przez: Skinner w 2019.03.21, 21:30:09
Ktoś ma tą pozycję w wersji elektronicznej? Była dostępna na WOS ale link nie działa :(
Tytuł: Odp: Asembler Z80 i 8080 pod Windows
Wiadomość wysłana przez: trojacek w 2019.03.21, 21:32:55
"ABC asemblera" Rolanda Wacławka, do znalezienia na zaprzyjaźnionym serwerze FTP (ftp://speccy:[email protected]).
Na tym ftp-ie znajdziesz też inne książki i skany popularnych czasopism.
Tytuł: Odp: Asembler Z80 i 8080 pod Windows
Wiadomość wysłana przez: Dalthon w 2019.03.21, 21:39:36
A co do nauki asemblera, ja się go nauczyłem jeszcze w podstawówce dzięki książce Rolanda Wacławka "ABC asemblera".
Ja miałem tylko "Przewodnik po Zx Spectrum" ale dzięki Dodatkowi B: Lista rozkazów Z80 wszystkiego się nauczyłem. Każda komenda jest dokładnie opisana razem ze zmianami znaczników, czasem trwania i ilością bajtów. Zresztą książka ta przy pisaniu na zx w dalszym ciągu się przydaje ;)
Do pobrania z ftp którego powyżej podał trojacek!
Tytuł: Odp: Asembler Z80 i 8080 pod Windows
Wiadomość wysłana przez: trojacek w 2019.03.21, 22:36:54
Też intensywnie korzystałem z "Przewodnika...", ale uważam go za dobrą pomoc doraźną, a nie materiał do nauki assemblera. Pod tym względem Wacławek jest naprawdę lepszy. Za to "Przewodnik..." ma wszystko, co potrzeba - i opis zmiennych systemowych, i trochę o ROM-ie, n o i faktycznie dobre zestawienie rozkazów Z80.
Tytuł: Odp: Asembler Z80 i 8080 pod Windows
Wiadomość wysłana przez: matofesi w 2019.03.22, 06:58:14
Qna... Co mnie te niemaskowalne... ;)

A co do książek to jest jeszcze "Mikroprocesor Z80" Jerzego Karczmarczuka - nie uczy wprost assemblera, ale bardzo szczegółowo opisuje procesor, rozkazy itp. a na koniec pokazuje parę zaawansowanych przykładów, w tym disassem ler Z80.
Tytuł: Odp: Asembler Z80 i 8080 pod Windows
Wiadomość wysłana przez: trojacek w 2019.03.22, 08:25:35
To ta z procesorem i zapałką na okładce? Kompletnie mi nie podeszła, ale faktycznie była szczegółowa. Podobnie, jak ta z żółtą okładką - "Systemy mikroprocesorowe Z80", K. Fedyny i kogoś tam jeszcze, szczegółowo opisywała całą rodzinę układów Z80.
Tytuł: Odp: Asembler Z80 i 8080 pod Windows
Wiadomość wysłana przez: matofesi w 2019.03.22, 10:19:10
@trojacek Tak - ta z zapałką ;)

Jakby komuś brakowało to zeskanowałem (ale bez okładki ;)) i wrzuciłem na FTP. To jest moja mocno używana kopia w związku z tym w końcowych fragmentach są tam jakieś moje dopiski - używaliśmy disassemblera z tej książki jako bazy do Summer'a a potem EMona ;)
Tytuł: Odp: Asembler Z80 i 8080 pod Windows
Wiadomość wysłana przez: Gryzor w 2019.03.22, 20:36:46
ABC assemblera jest prawie wszedzie np.:
https://archive.org/details/abc-asemblera

Mozna sobie tez wpisac "Z80" i czytac do konca zycia  :D

W sumie fajnie bylo zrobic reduxy polskich ksiazek, chocby do normalnego PDFa. Zawsze chcialem zrobic to z Przewodnikiem i przy okazji wymienic obrazki na kolorowe. Nie wiem tylko jak teraz z jakoscia OCR-ow, trzeba by potestowac.
Tytuł: Odp: Asembler Z80 i 8080 pod Windows
Wiadomość wysłana przez: matofesi w 2019.03.25, 10:16:41
Nie wiem tylko jak teraz z jakoscia OCR-ow, trzeba by potestowac.

Wiele się nie zmieniło. Zwłaszcza jak OCRujesz 20-30 letnie (albo i starsze) książki, które były drukowane na słabym papierze słabymi maszynami itp. Da się, ale licz się z kupą roboty przy korekcie - ja swoje rzeczy (nie techniczne - wystarczyło mi zabawy z "ULA Bookiem") koryguję przynajmniej trzy razy.
Tytuł: Odp: Asembler Z80 i 8080 pod Windows
Wiadomość wysłana przez: LaPi w 2019.03.25, 12:58:55
https://chuntey.wordpress.com/category/z80-assembly/ (https://chuntey.wordpress.com/category/z80-assembly/)

To bardzo fajna strona z przydatnym tekstem i przykładami. Czy istnieje coś podobnego w języku polskim?
Tytuł: Odp: Asembler Z80 i 8080 pod Windows
Wiadomość wysłana przez: Tygrys w 2019.03.25, 13:20:14
Nie istnieje. A z pomysłem wprowadzenia osób zainteresowanych nauką asemblera Z80 powrócę już po party.
Tytuł: Odp: Asembler Z80 i 8080 pod Windows
Wiadomość wysłana przez: SAJ w 2019.03.25, 13:23:38
Chetnie bym sie zapisal na taki kurs, coby w koncu zrozumiec roznice miedzy LDA i STA i wszystkimi tymi nawiasami :)

Pozdr.
Tytuł: Odp: Asembler Z80 i 8080 pod Windows
Wiadomość wysłana przez: LaPi w 2019.03.25, 13:35:15
       ld a,2              ; upper screen
       call 5633           ; open channel
loop   ld de,string        ; address of string
       ld bc,eostr-string  ; length of string to print
       call 8252           ; print our string
       jp loop             ; repeat until screen is full

string defb 'Speccy is cool'
eostr  equ $

Mam coś takiego i jak rozumiem powinien pijawić się napis. Kod się kompiluje do pliku .tap. Ale nic się nie dzieje.

Tytuł: Odp: Asembler Z80 i 8080 pod Windows
Wiadomość wysłana przez: matofesi w 2019.03.25, 13:51:47
Brakuje jakiegoś ORGa na początku i ewentualnie ENDa na końcu. Dopisz "org $8000" w pierwszej linii, "end $8000" w ostatniej, zrób "pasmo --tapbas plik.asm plik.tap" i odpal plik.tap.
Tytuł: Odp: Asembler Z80 i 8080 pod Windows
Wiadomość wysłana przez: Dalthon w 2019.03.25, 14:54:37
Chetnie bym sie zapisal na taki kurs, coby w koncu zrozumiec roznice miedzy LDA i STA i wszystkimi tymi nawiasami :)
Akurat to wszystko (i nawet więcej) będzie wyjaśniane na party :)
Tytuł: Odp: Asembler Z80 i 8080 pod Windows
Wiadomość wysłana przez: KWF w 2019.03.25, 15:14:18
Zeszycik na notatki i zaostrzony ołówek mam już przygotowany na tę okazję ;).
Tytuł: Odp: Asembler Z80 i 8080 pod Windows
Wiadomość wysłana przez: SAJ w 2019.03.25, 15:24:14
będzie wyjaśniane :)

A czy mozna by w sposob taki, ze zaczynajac od laptopa ze swiezo zainstalowanym Windows i niczym wiecej ?
Pytam , bo czesto na kursach jest takie cos jak np:

MOVLW   0x00                        ; Zaladuj Wartosc 0 Do Rejestru W
MOVWF   "Jakies miejse w pamieci"   ; Wyrzuc to zero do pamieci pod tym adressem

Dwie linijki kodu i juz sie program sypie, bo nikt nie wytlumaczyl, ze "jakies miejsce w pamieci" musi byc zdeklarowane, po czym przy zdeklarowniu znowu sie sypie bo Stack pointer nie jest ustawiony, albo ustawiony w miejscu, gdzie nie ma pamieci... a potem znowu sie sypie, bo np:

Brakuje jakiegoś ORGa na początku i ewentualnie ENDa na końcu.

Tak jesli mozna, to poprosilbym o jakby wszystko krok po kroku co trzeba poustawiac i co jest potrzebne, zeby np wyswietlic punkt na ekranie na emulatorze ZX Spectrum.

Czy daloby sie to zrobic w takim lub podobnym formacie ?

Pozdr.
Tytuł: Odp: Asembler Z80 i 8080 pod Windows
Wiadomość wysłana przez: Dalthon w 2019.03.25, 15:46:16
Założenia (moje) są takie że opowiem (i pokażę) jak przygotować się do pisania (edytor, asembler, emulator), jak to wszystko skonfigurować by obsługa była łatwa i przyjemna (niestety przykłady tylko dla win).
Tworzenie programu od podstaw: jak wygląda "szkielet" programu i jak go "wypełniać".
Jak tworzony jest obraz w zx, mapa pamięci itd. itp.
Opis komend z80 - oczywiście nie wszystkich ale jak je "czytać" i stosować.
Przykładowe programy - z racji czytelności będą na atrybutach by od razu zobaczyć efekt ;)
Tytuł: Odp: Asembler Z80 i 8080 pod Windows
Wiadomość wysłana przez: apk w 2019.03.25, 16:11:29
A czy może z tego powstać zapis video na youtubie? Nie wszyscy zainteresowani przecierz tam będą, a taki filmik przyda się też uczestnikom na przyszłość.
Tytuł: Odp: Asembler Z80 i 8080 pod Windows
Wiadomość wysłana przez: Dalthon w 2019.03.25, 16:37:12
Podejrzewam że materiały z prezentacji będą dostępne na speccy.pl :)
Tytuł: Odp: Asembler Z80 i 8080 pod Windows
Wiadomość wysłana przez: LaPi w 2019.03.25, 21:23:39
A czy może z tego powstać zapis video na youtubie? Nie wszyscy zainteresowani przecierz tam będą, a taki filmik przyda się też uczestnikom na przyszłość.

Lub ewentualnie chociaż skrypt z wykładów.
Tytuł: Odp: Asembler Z80 i 8080 pod Windows
Wiadomość wysłana przez: KWF w 2019.03.25, 21:54:43
Albo ksero z notatek ;) jak na studiach ;)
Tytuł: Odp: Asembler Z80 i 8080 pod Windows
Wiadomość wysłana przez: apk w 2019.04.18, 11:43:43
Wracając do początku wątku. Zainstalowałem zDevStudio i próbuję zrobić deasemblację kodu wynikowego. Wybieram Tools/Disassembler potem open, wybieram plik i robię proces. I teraz niezależnie od tego jaki plik wciągnę zawsze mam jeden rezultat czyli coś takiego:

0000: RST 38h
0001: RST 38h
0002: RST 38h
0003: RST 38h
0004: RST 38h
0005: RST 38h
0006: RST 38h
0007: RST 38h
0008: RST 38h
0009: RST 38h
000A: RST 38h
000B: RST 38h
000C: RST 38h
000D: RST 38h
000E: RST 38h
000F: RST 38h
0010: RST 38h
0011: RST 38h
0012: RST 38h
0013: RST 38h
0014: RST 38h
.
.
.


i ten kod się ciągnie dalej. Prawdopodobnie nie rozumiem zasady działania zDev Studio i coś robię źle. Czy mógłby ktoś naświetlić mi jak mam uzyskać kod pochodzący z mojego wciągniętego pliku, a nie pochodzący z wnętrza zDevStudio?
Tytuł: Odp: Asembler Z80 i 8080 pod Windows
Wiadomość wysłana przez: SAJ w 2019.04.18, 14:40:10
Czy mozesz podrzucic plik, ktory wczytujesz ?

Pzodr.
Tytuł: Odp: Asembler Z80 i 8080 pod Windows
Wiadomość wysłana przez: matofesi w 2019.04.18, 14:49:50
"RST 38h" to rozkaz o kodzie $FF - albo coś źle wybierasz albo disassembler idzie "w kartofle". Więcej niestety nie poradzę, bo nie używam tego narzędzia.
Tytuł: Odp: Asembler Z80 i 8080 pod Windows
Wiadomość wysłana przez: SAJ w 2019.04.18, 14:56:04
Otworzylem kilka plikow i disassembler dziala.
Jest bardzo prymitywny i potrafi w sumie tylko zamieniac wartosci na komendy, ale cos tam wyswietla.
Tytuł: Odp: Asembler Z80 i 8080 pod Windows
Wiadomość wysłana przez: apk w 2019.04.18, 15:06:45
Załączam plik. To 6 ROM do Meritum. Może w projekcie trzeba coś ustawić albo co?
Tytuł: Odp: Asembler Z80 i 8080 pod Windows
Wiadomość wysłana przez: SAJ w 2019.04.18, 15:24:19
Disassembler Przemielil ale zaznaczony kod w ROMie wyglada tak:

"CP/M LOAD ERROR"

Potrzebny Ci bedzie lepszy Disassembler niz ten, bo ten nie widzi ani tekstu ani relatywnych skokow na bazie tego co jest w pamieci ani nie robi innych reczy potrzebnych do tego, zeby wyciagnac z tego dzialajacy kod zrodlowy.

Gdzies chyba tutaj jest artykul na ten temat.


Pozdr.
Tytuł: Odp: Asembler Z80 i 8080 pod Windows
Wiadomość wysłana przez: apk w 2019.04.18, 15:32:09
Dzięki, poszukam. A może ktoś coś może polecić? Tylko pod Win bo mam tylko taki system :(
Tytuł: Odp: Asembler Z80 i 8080 pod Windows
Wiadomość wysłana przez: matofesi w 2019.04.18, 15:35:35
No ja używam tego: https://www.speccy.pl/forum/index.php?topic=4001.msg60967#msg60967

Do moich potrzeb sprawdza się w 100% ;)
Tytuł: Odp: Asembler Z80 i 8080 pod Windows
Wiadomość wysłana przez: Tygrys w 2019.04.18, 20:20:05
Był wątek o disassemblerach, a tu: https://www.speccy.pl/forum/index.php?topic=4001
Może któryś okaże się przydatny.
Tytuł: Odp: Asembler Z80 i 8080 pod Windows
Wiadomość wysłana przez: apk w 2019.04.19, 10:18:38
Przejrzałem te linki i wyszło mi z nich, że:
- yazd - to trzeba skompilować, a ja się na tym nie znam i pewnie nie mam czym :(

- IDA - jast płatna, a wersji 4.1 nie udało mi sie znaleźć do sciągnięcia

- mdz80 - to tez wymaga skompilowania :(

- ogryzka nie mam

- skoolkit - znowy nie wiem co z tym zrobić, w przypadku PC jestem na poziomie "uruchom execa"

- z80dis od matofesi - nie patrzyłem jeszcze

- xpeccy - ściągnałem emulator, ale nie wiem gdzie jest debugger, malo się na tym znam


Sprawdzę jeszcze nietestowane.

Tytuł: Odp: Asembler Z80 i 8080 pod Windows
Wiadomość wysłana przez: matofesi w 2019.04.19, 11:18:35
To żeby cię zmotywować i pokazać co z twoim plikiem robi mój disassembler masz w załączniku zdisassemblowany plik ;) (przy założeniu, że ma ORG $3000 - tak mi wychodziło z oględzin i na oko etykiety trafiają gdzie trzeba)
Tytuł: Odp: Asembler Z80 i 8080 pod Windows
Wiadomość wysłana przez: ZX Freeq w 2019.04.19, 11:29:08
- xpeccy - ściągnałem emulator, ale nie wiem gdzie jest debugger, malo się na tym znam

Naciśnij ESC na klawiaurze, uruchomisz debugger. :)
Tytuł: Odp: Asembler Z80 i 8080 pod Windows
Wiadomość wysłana przez: Gryzor w 2019.04.21, 19:58:16
Masz jeszcze to:
http://www.inkland.org.uk/dz80/

Darmowa IDA jest tu, ale nie wiem czy wspiera Z80:
https://www.hex-rays.com/products/ida/support/download_freeware.shtml
Tytuł: Odp: Asembler Z80 i 8080 pod Windows
Wiadomość wysłana przez: trojacek w 2019.04.22, 13:36:33
Darmowa IDA jest tu, ale nie wiem czy wspiera Z80:

Wygląda na to, że IDA wspiera tylko x86.
Ja do deasemblacji używam wspomnianego dz80.
Tytuł: Odp: Asembler Z80 i 8080 pod Windows
Wiadomość wysłana przez: SAJ w 2019.04.22, 15:09:11
Wrzucilem Ida 4.1 na babel.no-ip.pl pod katalogiem Programy PC.
Z Autopsji nauczylem sie, ze najlepiej IDA dziala, jesli sie jej podlozy cale 64 Kb Ramu z wklejonym programem do dekompilacji, zeby IDA mogla dzialac na pamieci.
Ten Dekompiler robi tak, ze nie tylko zamienia Watrosci na kod ale tez go wykonuje, co pomaga w skokach na bazie tego, co jest w pamieci itd. W ten sposob dekompilowany jest tylko kod, a dane sa zostawione w spokoju.
Oczywiscienie ma emulacji urzazen I/O takze niektore czesci kodu, np te, ktore sa wykonywane po nacisnieciu klawisza czy innego urzadzenia nie sa dekompilowane z buta i trzeba zaznaczyc, ze to kod nie dane.
W Ten sposob, gdy razem z IDA odpalimy emulator, ktory mam mozliwosc wykonywania kody krok po kroku mozna zdekompilowac i latwiej jest zrozumiec dekompilowany kod. Ida ma tez ta zalete, ze gdy gdy jest skok do jakiegos miejsca w pamieci a chwile pozniej powrot, to zaklada, ze to jest funkcja i ladnie to opisuje.

Pozdr.
Tytuł: Odp: Asembler Z80 i 8080 pod Windows
Wiadomość wysłana przez: Tygrys w 2019.04.24, 08:52:17
- yazd - to trzeba skompilować, a ja się na tym nie znam i pewnie nie mam czym :(

yazd jest do ściągnięcia w postaci binarek dla Windows: https://github.com/toptensoftware/yazd/blob/master/yazd.zip

Ma wiele przydatnych opcji, dlatego teraz tylko tego używam.
Dobry też jest dz80.

Tytuł: Odp: Asembler Z80 i 8080 pod Windows
Wiadomość wysłana przez: apk w 2019.04.25, 01:57:44
Sprawdzę pozostałe opcje, tylko na razie z czasem kiepsko.