Autor Wątek: Kody źródłowe ROMów do ZXów  (Przeczytany 1656 razy)

Klaud

  • *****
  • Wiadomości: 5904
  • Miejsce pobytu:
    trzecia planeta od Słońca
  • KL
Kody źródłowe ROMów do ZXów
« dnia: 2021.04.10, 06:59:07 »
Zdeasemblowane źródła ROMów do:

  • ZX80 - John Grant of Nine Tiles (1979)
  • ZX81 - John Grant & Steve Vickers of Nine Tiles (1980)
  • Spectrum 48K - Steve Vickers & Richard Altwasser of Nine Tiles (1981)
  • Spectrum 128K - Martin Brennan, Steve Berry, Andrew Cummins, Rupert Goodwins and Kevin Males of Sinclair
  • Spectrum +2 - Cliff Lawson of Amstrad (1985/1986)
  • Spectrum +3 - Cliff Lawson of Amstrad (1986/1987)

Zebrane w jednym miejscu: https://github.com/ZXSpectrumVault/rom-disassemblies


P.S. Jeśli wątek jest w złej kategorii, proszę go o przesunięcie do odpowiedniej.
« Ostatnia zmiana: 2021.04.10, 07:23:39 wysłana przez Klaud »
KL
-----
R Tape loading error 0:1

tooloud

  • *****
  • Wiadomości: 2999
  • Miejsce pobytu:
    Warszawa
  • mydłem go!
Odp: Kody źródłowe ROMów do ZXów
« Odpowiedź #1 dnia: 2021.04.10, 13:49:00 »
Dzięki Klaud, wszystko w jednym miejscu, wg mnie kategoria dobra. Jak to Tygrys mawia - przyda się tym paru osobom w PL :)
dużo sprzętu mało czasu.

Klaud

  • *****
  • Wiadomości: 5904
  • Miejsce pobytu:
    trzecia planeta od Słońca
  • KL
Odp: Kody źródłowe ROMów do ZXów
« Odpowiedź #2 dnia: 2021.04.10, 14:11:45 »
Główną wadą tych źródeł jest użyty kompilator, archaiczny TASM (Telemark Cross Assembler). Na szczęście wersja 3.1 działa poprawne pod DOSboxem.

Na własny użytek na podstawie kodu ROMU 48K robiłem sobie źródło pod Timexa TC2048. TASM generuje poprawny ROM, taki sam jak zrzut z Timexa. Jakby ktoś był zainteresowany, mogę udostępnić.
KL
-----
R Tape loading error 0:1

tapy

  • **
  • Wiadomości: 98
Odp: Kody źródłowe ROMów do ZXów
« Odpowiedź #3 dnia: 2021.04.10, 17:56:33 »
Główną wadą tych źródeł jest użyty kompilator, archaiczny TASM (Telemark Cross Assembler).

Myślę, że coś Cię ominęło. Z powodzeniem do dziś go używam w Windows 10 x64, często z rozszerzoną tablicą symboli dla Z280 - z tym, że to wersja 3.2

Klaud

  • *****
  • Wiadomości: 5904
  • Miejsce pobytu:
    trzecia planeta od Słońca
  • KL
Odp: Kody źródłowe ROMów do ZXów
« Odpowiedź #4 dnia: 2021.04.10, 18:01:54 »
Wersja 3.2 jest datowana na 2002r. Sorry, ale to prehistoria, co prawda działająca tylko z linii komend Windowsa i wymagająca środowiska 32 bitowego. Poza tym, nie każdy jest okienkowy.
KL
-----
R Tape loading error 0:1

tapy

  • **
  • Wiadomości: 98
Odp: Kody źródłowe ROMów do ZXów
« Odpowiedź #5 dnia: 2021.04.10, 19:40:13 »
Przepraszam, musiałem ;D Skoro 2002 to prehistoria, to co możemy powiedzieć o speecy, nie wspominając o procesorze z 1976 roku i jego niezmienionej ISA od tamtej pory.
TASM3.2 nadal doskonale sobie daje radę, pod CP/M używam assemblerów z 1984, które również wypluwają poprawny kod, choć obecnie rozwijany ZSM4 jest już naprawdę dobry. Użytkownicy Linuxa od lat mają doskonały assembler, zaś środowisko Windows ma niewielki ich wybór. Jedyna wada omawianego, to brak możliwości użycia znaku ";" w deklaracjach tekstowych, ale zastąpienie ASCII kodem 3Bh rozwiązuje problem. Warto o tym ograniczeniu pamiętać.

matofesi

  • *****
  • Wiadomości: 1871
  • Miejsce pobytu:
    Toruń/Poland
Odp: Kody źródłowe ROMów do ZXów
« Odpowiedź #6 dnia: 2021.04.11, 14:55:17 »
Używanie czterdziestoletniego hardware'u i odpowiadającego mu software'u jest wyborem. Używanie na siłę na współczesnym sprzęcie dwudziestoletniego softu tylko dlatego, że nie ma wyboru jest rodzajem masochizmu ;)

edit: Tak na szybko ściągnąłem źródło ROMu 48... Z tym TASMem to przesadzacie - kod na oko jest bardzo standardowy a do kompilacji TASMem został na siłę dostosowany. Żeby się skompilował w PASMO trzeba wykomentować na samym początku 6 linii #define dostosowujących kod do TASMa oraz na samym końcu (w linii 20313) konstrukcję '#end' - również specyficzną dla TASMa. Po tych zmianach 'pasmo --bin Spectrum48.asm rom.bin' generuje binarkę identyczną z oryginalnym ROMem. Pozostałe źródła wydają się wymagać TASMa na tym samym poziomie - wywalamy #define na początku, .end albo inne konstrukcje na końcu i ewentualnie poprawiamy .org na org i wszystko ładnie się kompiluje PASMO ;)
« Ostatnia zmiana: 2021.04.11, 15:05:12 wysłana przez matofesi »

Klaud

  • *****
  • Wiadomości: 5904
  • Miejsce pobytu:
    trzecia planeta od Słońca
  • KL
Odp: Kody źródłowe ROMów do ZXów
« Odpowiedź #7 dnia: 2021.04.11, 16:11:59 »
mat: dzięki, ale nie każdy jest oblatany w tych wszystkich kompilatorach.
KL
-----
R Tape loading error 0:1