Autor Wątek: tapsplit i nagłówki TOS  (Przeczytany 27385 razy)

Phonex

  • *****
  • Wiadomości: 1261
  • Miejsce pobytu:
    Warszawa
Odp: tapsplit i nagłówki TOS
« Odpowiedź #15 dnia: 2013.09.23, 21:08:30 »
Chodzi o to, żeby podzielić tap? Tak żeby w jednym tap był jeden blok?

tdu

  • *****
  • Wiadomości: 926
  • Miejsce pobytu:
    Gdansk
    • Nasze Wędrowanie
Odp: tapsplit i nagłówki TOS
« Odpowiedź #16 dnia: 2013.09.23, 21:28:21 »
Kazdy blok skladowy pliku TAP w oddzielnym pliku DOS, zaopatrzony w odpowiedni nagłówek systemu TOS.

Jedynym programem który znam o takim dzialaniu jest tapslit, nietety dla innego systemu.

Dlatego wyszedlem z propozycją dla programistów o zmodyfikowanie go, jest dostępny kod źródłowy.

W pliku TAP pliki nagrane są po kolei tak jak na taśmie i posiadają nagłówki taśmowe.
Więc podział i dorobienie nagłówków TOS powinno być niezbyt wielkim problemem.

Jedyne na czym utknąłem to nie wiem jak rozpoznać początek bloku beznagłówkowego,
co jest na taśmie często spotykane, a w TOS nie ma racji bytu.
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: 4540
  • Miejsce pobytu:
    Warszawa
  • mistrz ceremonii
Odp: tapsplit i nagłówki TOS
« Odpowiedź #17 dnia: 2013.09.23, 21:38:52 »
Zastanawiałeś się co dalej z tymi plikami począć?

tdu

  • *****
  • Wiadomości: 926
  • Miejsce pobytu:
    Gdansk
    • Nasze Wędrowanie
Odp: tapsplit i nagłówki TOS
« Odpowiedź #18 dnia: 2013.09.23, 21:52:13 »
program tosdos lub BU i powinno byc ok
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: 1366
  • Miejsce pobytu:
    inode 42
Odp: tapsplit i nagłówki TOS
« Odpowiedź #19 dnia: 2013.09.24, 13:47:28 »
Jedyne na czym utknąłem to nie wiem jak rozpoznać początek bloku beznagłówkowego,
co jest na taśmie często spotykane, a w TOS nie ma racji bytu.
Nie można.
Gdy przerabiałem gry na FDD, po prostu zmieniałem procedurę ładowania tak, że z danych identyfikujących blok beznagłówkowy (bo zawsze jakieś były) generowała nazwę pod którą zapisywałem na dyskietce plik.
Machines should work. People should think.

Phonex

  • *****
  • Wiadomości: 1261
  • Miejsce pobytu:
    Warszawa
Odp: tapsplit i nagłówki TOS
« Odpowiedź #20 dnia: 2013.09.24, 13:58:59 »
Jedyne na czym utknąłem to nie wiem jak rozpoznać początek bloku beznagłówkowego,
co jest na taśmie często spotykane, a w TOS nie ma racji bytu.

Ah! "rozpoznać początek" to znaczy znaleźć adres startowy, tak? Adres pod który załadować blok bez nagłówka?
Trzeba przeszukać loader i znaleźć w nim "LD IX, adres"  8)
Jak będzie jeden, to prawdopodobnie jest to adres startowy, jak więcej to sprawdzić który. Gorzej jak w ogóle nie będzie...

steev

  • *****
  • Wiadomości: 1366
  • Miejsce pobytu:
    inode 42
Odp: tapsplit i nagłówki TOS
« Odpowiedź #21 dnia: 2013.09.24, 14:28:16 »
Jedyne na czym utknąłem to nie wiem jak rozpoznać początek bloku beznagłówkowego,
co jest na taśmie często spotykane, a w TOS nie ma racji bytu.

Ah! "rozpoznać początek" to znaczy znaleźć adres startowy, tak? Adres pod który załadować blok bez nagłówka?
Trzeba przeszukać loader i znaleźć w nim "LD IX, adres"  8)
Jak będzie jeden, to prawdopodobnie jest to adres startowy, jak więcej to sprawdzić który. Gorzej jak w ogóle nie będzie...

Ale... po co?
Przecież blok danych można załadować pod dowolny adres.
Nagłówek nie musi zawierać poprawnego adresu startu, ważne żeby zawierał właściwą długość i tp bloku.
Machines should work. People should think.

Phonex

  • *****
  • Wiadomości: 1261
  • Miejsce pobytu:
    Warszawa
Odp: tapsplit i nagłówki TOS
« Odpowiedź #22 dnia: 2013.09.24, 14:35:25 »
Jasne - wszystko jedno, czy znajdzie się adres startowy przy tworzeniu pliku dyskowego, czy przy tworzeniu loadera do całości. Kiedyś i tak trzeba go znaleźć.
Jeżeli wszystko jedno, to można wybrać rozwiązanie elegantsze. :)

tdu

  • *****
  • Wiadomości: 926
  • Miejsce pobytu:
    Gdansk
    • Nasze Wędrowanie
Odp: tapsplit i nagłówki TOS
« Odpowiedź #23 dnia: 2013.09.24, 14:36:01 »
Witam !
Chodziło mi raczej jak ten blok bez nagłówkowy z pliku TAP wyłuskać.
Nie znalazłem jeszcze na to metody (jakiś znacznik)
Przed każdym blokiem z nagłówkiem są dwa bajty 19 i 0 i to już jest informacja ze następne bajty mogą byc nagłówkiem.
Przed blokiem bez nagłowka tego nie ma.

A co potem zrobic ze zgranym blokiem, no to wiadomo, analiza loadera, i albo się dojdzie do tego  gdzie ma być załadowany, albo nie :-)




 
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

Phonex

  • *****
  • Wiadomości: 1261
  • Miejsce pobytu:
    Warszawa
Odp: tapsplit i nagłówki TOS
« Odpowiedź #24 dnia: 2013.09.24, 14:45:57 »
A to nie rozumiem.
Przecież są podane długości bloków. Więc ten beznagłówkowy o numerze n będzie się zaczynał od dług(1)+nagł(1)+dod(1)+...+dług(n-1)+nagł(n-1)+dod(n-1), gdzie dług - to długość bloku, nagł - długość nagłówka, a dod - ilość dodatkowych bajtów dla każdego bloku (znana i stała dla danego typu bloku).

Tygrys

  • Administrator
  • *****
  • Wiadomości: 4540
  • Miejsce pobytu:
    Warszawa
  • mistrz ceremonii
Odp: tapsplit i nagłówki TOS
« Odpowiedź #25 dnia: 2013.09.24, 14:46:52 »
Nie możesz zakładać że przed każdym blokiem będziesz nagłówek 19 bajtowy.
A to 19 i 0 oznacza młodszy i starszy bajt długości = 0*256 + 19 = 19 bajtów.

Poza tym, w .tap informacje czy to jest nagłówek (wartość 0, czy też blok binarny  - 0xff).
Dana ta znajduje się jako 3 bajt w bloku danych. Od 4 bajtu zaczynają się właściwe dane.

Gratuluję zapału, ale on może osłabnąć po tym jak się przekonasz że zrobileś kawał dobrej, do niczego nie potrzebnej roboty, o której pisałem kilka postów wcześniej.

tdu

  • *****
  • Wiadomości: 926
  • Miejsce pobytu:
    Gdansk
    • Nasze Wędrowanie
Odp: tapsplit i nagłówki TOS
« Odpowiedź #26 dnia: 2013.09.24, 16:50:30 »
W tapach które testowałem każdy blok nagłówkowy jest poprzedzony bajtami 19 i 0
Czy to jest Basic (0) czy Code (3) jest wpisane w bajcie 4.
Potem następuje nazwa itd., analogicznie jak na taśmie, w końcu jest to obraz taśmy.

Podglądacz kodu plików TAP napisałem tutaj

http://tdu.glt.pl/tdu/glowna.php?v=2&d=zx


 

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: 4540
  • Miejsce pobytu:
    Warszawa
  • mistrz ceremonii
Odp: tapsplit i nagłówki TOS
« Odpowiedź #27 dnia: 2013.09.24, 17:07:21 »
Proponuję przeczytać chociażby to co jest napisane na tej stronie: http://www.nvg.ntnu.no/sinclair/faq/fileform.html#TAPZ
Następnie przeczytaj mój post. Jeżeli się coś nie zgadza, czynność należy powtórzyć.

RafalM

  • *****
  • Wiadomości: 1133
  • Miejsce pobytu:
    Sulejówek
Odp: tapsplit i nagłówki TOS
« Odpowiedź #28 dnia: 2013.09.24, 20:11:55 »
Cytuj
Jeśli wiesz jak podzielić pliki TAP i skopiować na dyskietkę TOS,
to nadstawiam uszu.

Do przenoszenia bloków między obrazami taśmy mogę polecić program Tapir:
ftp://ftp.worldofspectrum.org/pub/sinclair/tools/pc/tapir1.0.zip

Robisz sobie nowy obraz taśmy i przenosisz jeden blok lub więcej, przy czym nagłówek to osobny blok.

O systemie TOS nie mam natomiast bladego pojęcia :)

Phonex

  • *****
  • Wiadomości: 1261
  • Miejsce pobytu:
    Warszawa
Odp: tapsplit i nagłówki TOS
« Odpowiedź #29 dnia: 2013.09.24, 21:04:27 »
Można Tapirem, można nowocześniej wyglądającym ZX-Blockeditor, ale wystarczy emulator ZX-Spin. W jego Tape Browser można użyć Kopiuj/Wklej. Czy nawet jeszcze prościej: utworzyć tyle kopii tap ile zawiera bloków i w każdej kopii, Tape Browserem skasować wszystkie bloki z wyjątkiem potrzebnego :) Tylko potem trzeba wymyśleć jak to przekształcić na obraz dysku...

Można też odtworzyć tap z peceta i użyć na realnym sprzęcie ZEBRA COPY. ;)

Ale zrozumiałem, że tdu chce zrobić full-automat: wskazuję tap i dostaję obraz dysku.