Autor Wątek: Loader SNA/Z80 dla FDD3000  (Przeczytany 5126 razy)

steev

  • *****
  • Wiadomości: 1362
  • Miejsce pobytu:
    inode 42
Loader SNA/Z80 dla FDD3000
« dnia: 2018.01.09, 11:42:27 »
W zasadzie sztuka dla sztuki, a przy okazji chyba największy kawałek w asemblerze z80 jaki napisałem :)
Machines should work. People should think.

tdu

  • *****
  • Wiadomości: 926
  • Miejsce pobytu:
    Gdansk
    • Nasze Wędrowanie
Odp: Loader SNA/Z80 dla FDD3000
« Odpowiedź #1 dnia: 2018.01.09, 14:38:53 »
Coś mi nie chce tego rara rozpakować.

"Archiwum ma niewłaściwy format lub jest uszkodzone"
ZX81/ZX 48k/Zx48k+/ZX +2/ZX +2A/+3/TC2048/FDD3000/FDD5000/3"/3,5'/5,25'/Beta 48k Apina/D+/GP50s/DIVIDE CF/Masterface/Polbasic SamCoupe QL CPC6128/N100 MSX-SVI738  MSX2-VG8235

steev

  • *****
  • Wiadomości: 1362
  • Miejsce pobytu:
    inode 42
Odp: Loader SNA/Z80 dla FDD3000
« Odpowiedź #2 dnia: 2018.01.09, 14:47:21 »
U mnie działa... :)
Machines should work. People should think.

tdu

  • *****
  • Wiadomości: 926
  • Miejsce pobytu:
    Gdansk
    • Nasze Wędrowanie
Odp: Loader SNA/Z80 dla FDD3000
« Odpowiedź #3 dnia: 2018.01.09, 15:44:07 »
Tak ten zip da się rozpakować, rar nie (inne rary rozpakowuje).

ZX81/ZX 48k/Zx48k+/ZX +2/ZX +2A/+3/TC2048/FDD3000/FDD5000/3"/3,5'/5,25'/Beta 48k Apina/D+/GP50s/DIVIDE CF/Masterface/Polbasic SamCoupe QL CPC6128/N100 MSX-SVI738  MSX2-VG8235

Tygrys

  • Administrator
  • *****
  • Wiadomości: 4537
  • Miejsce pobytu:
    Warszawa
  • mistrz ceremonii
Odp: Loader SNA/Z80 dla FDD3000
« Odpowiedź #4 dnia: 2018.01.10, 10:16:20 »
Ciekawy projekt!

Co mniej więcej musiałeś zrobić aby załadować .SNA z dyskietki oraz go 'rozpakować' ?

steev

  • *****
  • Wiadomości: 1362
  • Miejsce pobytu:
    inode 42
Odp: Loader SNA/Z80 dla FDD3000
« Odpowiedź #5 dnia: 2018.01.10, 10:48:08 »
Ciekawy projekt!
Co mniej więcej musiałeś zrobić aby załadować .SNA z dyskietki oraz go 'rozpakować' ?
Nic.
Znaczy - przeczytać jak wygląda nagłówek SNA i pomyśleć jak go uruchomić korzystając z dodatkowego RAMu interfejsu. SNA jest uroczo prosty :)
Z80 już wymagał więcej kombinowania, bo procedura musi go wczytywać po kawałku, sprawdzać czy to co wczytała ma sens i ewentualnie rozpakować do odpowiedniego banku.
Procedura ładująca i uruchamiająca działa z pamięci interfejsu. Dla obu typów snapa działania wyglądają mniej więcej tak samo, choć nieco inna inna jest kolejność.
Dla SNA - wczytać całość do pamięci, odtworzyć wartości rejestrów z nagłówka, uruchomić.
Dla Z80 - wczytać nagłówek, przygotować dane rejestrów, wczytać po kolei bloki pamięci, odtworzyć przygotowane wcześniej wartości rejestrów, uruchomić.
Plus dodatkowa żonglerka procedurami w pamięci, bo starałem się żeby działało nawet na interfejsach z 1kB RAM...
Machines should work. People should think.

Tygrys

  • Administrator
  • *****
  • Wiadomości: 4537
  • Miejsce pobytu:
    Warszawa
  • mistrz ceremonii
Odp: Loader SNA/Z80 dla FDD3000
« Odpowiedź #6 dnia: 2018.01.10, 11:04:21 »
No właśnie, bez dodatkowej pamięci się jednak  obyć nie może.
.Z80 to zdaje się skompresowane dane - to również obsługujesz w swojej procedurze?

Maryjan

  • *****
  • Wiadomości: 6650
  • Miejsce pobytu:
    Skarżysko-Kam.
  • Scotch whiskey and West Highland Terrier
Odp: Loader SNA/Z80 dla FDD3000
« Odpowiedź #7 dnia: 2018.01.10, 11:47:25 »
To znaczy, jak to działa.
Plik .SNA jest ładowany do pamięci stacji a następnie poprzez procedurę dekodującą umieszczoną w pamięci interface przesyłany do pamięci ZX-a ?
To ze stacją FDD 3 raczej nie będzie działało, bo ma ona 16 kB RAM.
"Co miałem powiedzieć - przeczytałem..." Nikodem Dyzma

Tygrys

  • Administrator
  • *****
  • Wiadomości: 4537
  • Miejsce pobytu:
    Warszawa
  • mistrz ceremonii
Odp: Loader SNA/Z80 dla FDD3000
« Odpowiedź #8 dnia: 2018.01.10, 11:55:06 »
Jeżeli to działa na poziomie interface to znaczy że możesz ładować dane po sektorze... zatem 1kB RAM wystarczy, a przynajmniej rozumiem że tak to jest zrobione.

steev

  • *****
  • Wiadomości: 1362
  • Miejsce pobytu:
    inode 42
Odp: Loader SNA/Z80 dla FDD3000
« Odpowiedź #9 dnia: 2018.01.10, 12:00:28 »
Przekombinowaliście.
SNA jest ładowany pod adres $4000-nagłówek. Procedurą interfejsu, en masse, bez zabawy w sektory.
W ten sposób końcówka pamięci interfejsu zawiera sam nagłówek, pamięć speca zawiera resztę SNA (czyli pamięć speca :) )
Pozostaje odczytać z nagłówka wartości rejestrów i gotowe.

@tygrys oczywiście że obsługuje spakowane z80... :)
Machines should work. People should think.

Maryjan

  • *****
  • Wiadomości: 6650
  • Miejsce pobytu:
    Skarżysko-Kam.
  • Scotch whiskey and West Highland Terrier
Odp: Loader SNA/Z80 dla FDD3000
« Odpowiedź #10 dnia: 2018.01.10, 12:03:18 »
To już rozumiem.
No Widzisz, ile osób tyle pomysłów :)
"Co miałem powiedzieć - przeczytałem..." Nikodem Dyzma

tdu

  • *****
  • Wiadomości: 926
  • Miejsce pobytu:
    Gdansk
    • Nasze Wędrowanie
Odp: Loader SNA/Z80 dla FDD3000
« Odpowiedź #11 dnia: 2018.01.11, 16:30:34 »
Z początku nie chciało mi działać, bo dyskietkę miałem w stacji B.
Po przełożeniu do A działa.

Jaki sposób proponujesz na przenoszenie plików SNA i Z80 na dyskietkę ?
ZX81/ZX 48k/Zx48k+/ZX +2/ZX +2A/+3/TC2048/FDD3000/FDD5000/3"/3,5'/5,25'/Beta 48k Apina/D+/GP50s/DIVIDE CF/Masterface/Polbasic SamCoupe QL CPC6128/N100 MSX-SVI738  MSX2-VG8235

steev

  • *****
  • Wiadomości: 1362
  • Miejsce pobytu:
    inode 42
Odp: Loader SNA/Z80 dla FDD3000
« Odpowiedź #12 dnia: 2018.01.11, 19:28:21 »
Fakt, program zakłada że wszystko się dzieje na dysku A.
Obraz dyskietki tworzyłem przez tap2tos (dodawanie plików binarnych z utworzeniem nagłówka)
Fizycznych dyskietek nie tworzyłem :)
Machines should work. People should think.

Tygrys

  • Administrator
  • *****
  • Wiadomości: 4537
  • Miejsce pobytu:
    Warszawa
  • mistrz ceremonii
Odp: Loader SNA/Z80 dla FDD3000
« Odpowiedź #13 dnia: 2018.01.12, 09:51:52 »
A jak się ma obsługa SNA i .Z80 dla zx128?
To też udało się zrobić? ;-)

steev

  • *****
  • Wiadomości: 1362
  • Miejsce pobytu:
    inode 42
Odp: Loader SNA/Z80 dla FDD3000
« Odpowiedź #14 dnia: 2018.01.12, 13:10:59 »
Nie.
Ale głównie dlatego, że nie mam emulatora fdd3000 podpiętego pod zx128 (rom stavi zdaje się daje radę)
Technicznie niewiele się różni od ładowania snapa pod 48k
Machines should work. People should think.