Autor Wątek: Środowisko programistyczne dla Z80 na PC-ta - jakie polecacie  (Przeczytany 11560 razy)

coberr

  • ***
  • Wiadomości: 138
  • Miejsce pobytu:
    Gorzów Wlkp
Witam wszystkich.

JAko że tak trochę zabieram sie jak pies do jeża do swoich spectrumów - cobry (ogólnie Z80)  itd... MIałbym do was, fachowców pytanie:

- czy istnieje jakieś w miarę dobre środowisko programowania/debugowania oprogramowania dla z80?
Najlepiej , żeby było darmowe... Platforma - najlepiej PC (windows XP lub ew. linuks)

CHodzi mi raczej o programowanie w assemblerze (C jakoś nie bardzo mi wchodzi...)

Wiem, ze  jest kilka płatnych programów - ale czy warto? I czy mozliwosci odzwierciedlą  pieniądze wydane na zakup?

W sumie od biedy nie musiałoby to być srodowisko zintegrowane - a sam symulator Z80  (assembler/disassembler jest ogólnie dostępny)







Tygrys

  • Administrator
  • *****
  • Wiadomości: 4540
  • Miejsce pobytu:
    Warszawa
  • mistrz ceremonii
Odp: Środowisko programistyczne dla Z80 na PC-ta - jakie polecacie
« Odpowiedź #1 dnia: 2014.01.02, 08:32:59 »
Używam edytora, który umie podświetlać składnie asemblera. Dokładnie jest to Notepad++ ale z pewnością na każdym systemie istnieją edytory programistów z podświetleniem składni. Jako kompilatora, używam pasmo - http://pasmo.speccy.org/ - jego zaletą jest to że potrafi, oprócz czystych plików binarnych, generować .tap oraz kilka innych formatów dla CPC, MSX i coś tam jeszcze.

Czystych debugerow Z80 nie znam, za to korzystam z tych, które są w emulatorach. Najczęściej z ZX Spin. Świetna opcja jest w SpecEmu - pozwala na zgranie do pliku ciągu instrukcji, jakie wykonuje procesor. Mógłby jeszcze zapisywać wartości rejestrów w komentarzach, ale to takie moje pobożne życzenie (zaraz napiszę do autora emulatora w tej sprawie).

RafalM

  • *****
  • Wiadomości: 1133
  • Miejsce pobytu:
    Sulejówek
Odp: Środowisko programistyczne dla Z80 na PC-ta - jakie polecacie
« Odpowiedź #2 dnia: 2014.01.02, 10:48:24 »
W zasadzie powtórzę co powiedział Tygrys :)

Działa to tak że masz kompilatory czyli programy zamieniające kod z pliku tekstowego na plik binarny lub plik emulatora (.sna, .tap). Najpopularniejsze z nich to Sjasm i Pasmo.

Sam kod możesz pisać w edytorze do uniwersalnych zastosowań jak wspomniany Notepad++, Crimson Editor, PsPad itp. Można w nich pracować na wielu plikach tekstowych naraz, podpiąć definicję języka Z80 tak by mieć kolorowanie składni oraz utworzyć skrót klawiszowy by wywoływał kompilator. Kompilator tworzy np plik .sna, po czym na niego klikasz i testujesz rezultat w emulatorze.

Z darmowych emulatorów pod Windows najlepsze są Spin i SpecEmu. Obydwa mają debuggery w których można różne rzeczy testować.

Jeśli masz zamiar w swoich programach korzystać z grafiki to przyda ci się też program Sevenup (konwertuje obrazki z plików graficznych jak gif czy png do różnych formatów możliwych do wykorzystania na Spectrum).

twip

  • **
  • Wiadomości: 61
  • Miejsce pobytu:
    Warszawa, PL
Odp: Środowisko programistyczne dla Z80 na PC-ta - jakie polecacie
« Odpowiedź #3 dnia: 2014.01.02, 14:05:11 »
To ja się podepnę pod wątek ze swoim pytaniem.

Czy jest sens korzystać z języka nieco wyższego poziomu niż assembler? Chodzi mi właściwie o język C. Jak to ogarnąć (korzystając do programowania z PC) i czy ma to rację bytu? Pamiętam ze swojego doświadczenia jeszcze spod pecetowego DOSa, że fajnie było łączyć C i assembler. C był dobry do spięcia wszystkiego w całość, a assembler do pisania zoptymalizowanych funkcji. Jak to jest pod ZX Spectrum?
ZX Spectrum+, "szarak" +2, DivIDE+, Speccy2010, "chlebak" C64 + SD2IEC i plany na więcej...

matofesi

  • *****
  • Wiadomości: 2049
  • Miejsce pobytu:
    Toruń/Poland
Odp: Środowisko programistyczne dla Z80 na PC-ta - jakie polecacie
« Odpowiedź #4 dnia: 2014.01.02, 15:49:03 »
@twip Tu (http://speccy.pl/forum/index.php/topic,1139.0.html) masz przykłady tego jak do problemów podchodzą ludzie i co z nimi potrafi zrobić kompilator. Generalnie można się pewnie pokusić o robienie pewnych rzeczy w C, ale bez porządnego optymalizującego kompilatora (a dla Z80 taki nie jest dostępny) jest to trochę bez sensu - rozmiar generowanego kodu a co się z tym wiąże czasy jego wykonania będą zwykle nieporównywalne z tym, co uzyskasz pisząc to samo od razu w assemblerze. No chyba, że planujesz pisanie programów robiących skomplikowane obliczenia numeryczne itp, ale wtedy używanie do tego celu Z80 jest średnim rozwiązaniem ;)

Learning curve w wypadku assemblera jest oczywiście bardziej strome niż w wypadku języków wyższego poziomu, ale jeśli chcesz wykorzystać ograniczone zasoby ośmiobitowych komputerków to raczej przyjdzie ci nauczyć się assemblera :)

twip

  • **
  • Wiadomości: 61
  • Miejsce pobytu:
    Warszawa, PL
Odp: Środowisko programistyczne dla Z80 na PC-ta - jakie polecacie
« Odpowiedź #5 dnia: 2014.01.02, 17:08:26 »
Czyli rozumiem, że nikt raczej pod zx nie pisze w C. Jeśli już to assembler. W sumie ma to sens, bo faktycznie jest tak mało dostępnej pamięci, że narzut związany z C może boleć. Zastanawia mnie trochę fakt, że Z80 nie doczekał się porządnego kompilatora C. Przecież był (jest?) używany w masie urządzeń.
ZX Spectrum+, "szarak" +2, DivIDE+, Speccy2010, "chlebak" C64 + SD2IEC i plany na więcej...

Tygrys

  • Administrator
  • *****
  • Wiadomości: 4540
  • Miejsce pobytu:
    Warszawa
  • mistrz ceremonii
Odp: Środowisko programistyczne dla Z80 na PC-ta - jakie polecacie
« Odpowiedź #6 dnia: 2014.01.02, 17:50:23 »
Pisać w C to pisze. Artykuł o tym znajduje się tu: http://speccy.pl/articles.php?article_id=22 Opisany jest SDCC. Jest też z88dk, który generuje mniej wydajny kod.

Jest wiele gier napisanych i kompilowanych przez z88dk, tak więc się da. Trzeba jednak poznać ograniczenia wydajnościowe, i tam zastępować kod w C - odpowiednikiem w asemblerze.

RafalM

  • *****
  • Wiadomości: 1133
  • Miejsce pobytu:
    Sulejówek
Odp: Środowisko programistyczne dla Z80 na PC-ta - jakie polecacie
« Odpowiedź #7 dnia: 2014.01.02, 19:12:17 »
W latach 80-tych istotnie C nie nadawał się na Spectrumie raczej do niczego ale czas nie stoi w miejscu i dziś w kombinacji C+assembler można napisać  szybką grę nie do dróżnienia od tej pisanej w czystym asemblerze

Przykładowa współczesna gra napisana w C (jest też link do kodów źródłowych)
http://www.worldofspectrum.org/infoseekid.cgi?id=0027372

Przyznam się jednak że  osobiście nie bardzo takie kombinacje ogarniam ;)

coberr

  • ***
  • Wiadomości: 138
  • Miejsce pobytu:
    Gorzów Wlkp
Odp: Środowisko programistyczne dla Z80 na PC-ta - jakie polecacie
« Odpowiedź #8 dnia: 2014.01.02, 19:50:57 »
Bardzo dziękuję wszystkim za odpowiedzi.

No własnie jak na złośc - coś ten specemu wykrzacza mnie się na dzien dobry po odpaleniu pod moją wingrozą XP :)

Narazie wynalazłem takie cus:

Barleywood z80 simulator... (wersja 1 -miesięczna ) - zobaczę co to jest warte....


kurcze - na 8051 - na którym czasem sobie cos piszę i dłubię - jest tego pełno a z80 lezy i kwiczy :)

matofesi

  • *****
  • Wiadomości: 2049
  • Miejsce pobytu:
    Toruń/Poland
Odp: Środowisko programistyczne dla Z80 na PC-ta - jakie polecacie
« Odpowiedź #9 dnia: 2014.01.02, 22:37:48 »
Bo 8051 to mikrokontroler i ma ciut szersze zastosowania "przemysłowe" choćby dlatego, że spora część tego, co do Z80 trzeba dołożyć tam już jest wbudowana. Pamiętam, że w którymś momencie pisałem jakiś soft na AVRa (nie pamiętam modelu, ale na pewno przed Atmegą) i tam też było sporo narzędzi, które przydałyby się przy Z80. A i tak skończyło się na tym, że cały projekt przepisałem od początku w asmie AVRa oszczędzając furę miejsca na dodatkowe funkcje.

coberr

  • ***
  • Wiadomości: 138
  • Miejsce pobytu:
    Gorzów Wlkp
Odp: Środowisko programistyczne dla Z80 na PC-ta - jakie polecacie
« Odpowiedź #10 dnia: 2014.01.03, 14:13:27 »
Zgadza się :)

Z drugiej strony nic nie stoi na przeszkodzie - aby zaimplementować łyse z80 wraz z pamięcią na PC-ta...
DLatego się dziwie, ze tak mało tego powstało...

Miałby ktoś jeszcze jakies sugestie?
A SDCC nie ma czasem jakiegos debuggera?

coberr

  • ***
  • Wiadomości: 138
  • Miejsce pobytu:
    Gorzów Wlkp
Odp: Środowisko programistyczne dla Z80 na PC-ta - jakie polecacie
« Odpowiedź #11 dnia: 2014.01.03, 22:03:55 »
Wynalazłem wersję 2.8 specemu - ruszył...
Nawet debugger działa  - co prawda za wygodny jakos tam specjalnie nie jest ale na początek wystarczy.

Zatem zacząłem sobie analizowac procedury EPROMu swojej COBRY :) (zracji tego - ze ROM w cobrze startuje od adr. 49152 - załadowałem go na wersje spectrum 128)
Wyszło tego 22 strony po desasemblacji...

I juz na dzien dobry sa kwiatki typu - modyfikowalny; wykonywujacy się  kod programu w pamięci RAM :)...
JAk tak dalej twórcy maja mnie raczyc takimi kwiatkami - to sam sie zastanawiam czy sie przez to przekopię :)

Abrimaal

  • *****
  • Wiadomości: 965
  • Miejsce pobytu:
    Lemmingrad
  • Zamulator
    • Games for ULA plus
Odp: Środowisko programistyczne dla Z80 na PC-ta - jakie polecacie
« Odpowiedź #12 dnia: 2014.01.10, 21:13:37 »
Jako debugger polecam ZX Spin.
- zatrzymanie programu w dowolnych miejscach (breakpoint)
- wyświetlanie w DEC/HEX
- możliwość zapisu i załadowania fragmentu kodu .bin
- eksport do assemblera .asm/.txt
- adresy w disassembly działają jak linki
- opcje oznaczenia wybranych bajtów jako kod lub dane DEFB itp.
- edycja wartości rejestrów
i dużo innych możliwości, dzieki którym można testować działanie programu.
AY Music, ULA plus.