Autor Wątek: BIN > CDT  (Przeczytany 6143 razy)

anton

  • ****
  • Wiadomości: 351
  • Miejsce pobytu:
    Nowa Sól
BIN > CDT
« dnia: 2014.12.14, 13:30:18 »
w jaki sposób zamienic  pliki BIN na CDT lub WAV, wyodrębniłem je z DSK  mam cpc464 i chciałbym to sobie nagrać na taśmę?
lista moich komputerów nie mieści się tutaj.

ZbyniuR

  • *****
  • Wiadomości: 3333
  • Miejsce pobytu:
    Carlisle w UK
  • CPC AGA PSX
Odp: BIN > CDT
« Odpowiedź #1 dnia: 2014.12.14, 15:13:26 »
Na prawdziwym 6128 zrobiłbym to za pomocą Discology, bo ma także opcje do kopiowania dysk<>taśma. Niestety on nie działa ani na 464 (bez rozszerzenia RAMu), ani na żadnym emulatorze. Jest sporo prostszych kopierów, ale nie pamiętam ich nazw. Za mało miałem do czynienia z CDT by udawać że słyszałem o jakimś konwerterze plików z DSK. Ale jeśli znasz adres początkowy i długość tych binarek to można to wklepać na piechotę w Basicu.

Można rozpoznać te wartości programikiem CAT+.BAS  który jest pod obrazkiem w pliku  "Bajtek 1988 dla CPC v2.dsk"
tu: http://speccy.pl/forum/index.php/topic,1319.msg19444.html#msg19444 
Wpierw podaje pocz i dług szesnastkowo a potem dziesiętnie. To "b" po nazwie w SAVE oznacza że ma być zapisany jako binarny.

A potem tylko przestawić dość nisko HIMEM, wczytać plik, przełączyć na taśmę i SAVE. Wszystko jedno czy na prawdziwym, czy w emulatorze. W drugim przypadku podłączyć magnetofon by nagrywał dźwięk z PC. :)

MEMORY adrpocz-1:LOAD"nazwa",adrpocz: |TAPE:SPEED WRITE 1:SAVE"nazwa",b,adrpocz,dług,[start]
Ostatni parametr konieczny tylko jeśli jest inny niż 0.

Jeśli plik jest z obszaru powyżej standardowej wartości HIMEM (gdzieś tam powyżej 42000 zależy od wersji kompa i ustawienia SYMBOL AFTER), np z pamięci ekranu, to nie trzeba rozkazu MEMORY. A w przypadku gdy początek jest poniżej ok 3000 (zależy czy masz w pamięci jakiś Basic), to pewnie nie jest to plik do użycia w Basicu. I można wtedy zastosować taki trick który w takich przypadkach stosowały bardzo stare kopiery napisane w Basicu, czyli obniżyć MEMORY tyle ile się da, wczytać plik powyżej niż docelowo ma trafić (działa na plikach do ok 40KB) zapisać go z miejsca gdzie mamy, ale poprzedzić 11bajtami asemblera z rozkazem LDIR by się potem po wczytaniu przesunął niżej i ewentualnie dodać instrukcję skoku pod adres startowy. Jak coś nie teges to pisz, możesz na GG. :)
- Jeśli masz w domu światło i wodę, tzn. że masz światłowód. ;)

anton

  • ****
  • Wiadomości: 351
  • Miejsce pobytu:
    Nowa Sól
Odp: BIN > CDT
« Odpowiedź #2 dnia: 2014.12.14, 15:53:34 »
jeżeli się prościej nie da to sobie odpuszczę z braku czasu choć chęci mam  :)
lista moich komputerów nie mieści się tutaj.

Tygrys

  • Administrator
  • *****
  • Wiadomości: 4538
  • Miejsce pobytu:
    Warszawa
  • mistrz ceremonii
Odp: BIN > CDT
« Odpowiedź #3 dnia: 2014.12.14, 22:33:13 »
kompilator asemblera 'pasmo' potrafi wygenerować plik .cdt.

Możesz mniej więcej zrobić to w ten sposób:
- stworzyć plik bin.asm, gdzie będzie:
Cytuj
    org ADRES
    incbin "plik.bin"

-  skompilować za pomocą pasmo
Cytuj
pasmo --cdt bin.asm wynik.cdt

Pisałem to z pamięci, więc nie jest przetestowane. Jak będziesz mieć jakieś problem, daj znać.

anton

  • ****
  • Wiadomości: 351
  • Miejsce pobytu:
    Nowa Sól
Odp: BIN > CDT
« Odpowiedź #4 dnia: 2014.12.21, 19:55:07 »
jeden plik udało mi się ale gorzej jest z czterema gra to Giana sisters pliki to giana ,giana2,giana3,giana4 wyzej opisanym sposobem PASMO zamienia mi tylko pierwszy plik reszty nie zapisuje :
org ADRES
incbin "plik.bin"    zapisuje tylko ten
incbin "plik.bin"
incbin "plik.bin"
incbin"plik.bin"
lista moich komputerów nie mieści się tutaj.

steev

  • *****
  • Wiadomości: 1363
  • Miejsce pobytu:
    inode 42
Odp: BIN > CDT
« Odpowiedź #5 dnia: 2014.12.21, 21:47:10 »
No to chyba coś robisz...

org 32768
incbin "IE.png"
incbin "n1.svg"
incbin "peng.gif"
incbin "ss.svg"

-rw-r--r-- 1 steev steev  5001 2005-07-01  IE.png
-rw-rw-r-- 1 steev steev  5072 2009-08-07  n1.svg
-rw-r--r-- 1 steev steev  4464 2005-12-18  peng.gif
-rw-r--r-- 1 steev steev  4515 2005-10-03  ss.svg

-rw-r--r-- 1 steev steev 22420 12-21 21:35 test.cdt
Machines should work. People should think.

matofesi

  • *****
  • Wiadomości: 2049
  • Miejsce pobytu:
    Toruń/Poland
Odp: BIN > CDT
« Odpowiedź #6 dnia: 2014.12.22, 09:20:02 »
Wszystko fajnie, tylko bierzcie pod uwagę to, że prawie na pewno wyjściowe CDT to jest jeden plik binarny w którym będą siedziały wszystkie kolejno incbinowane pliki. Można tego użyć do konwersji pojedynczego pliku albo kilku pojedynczych plików. Każdy z takich CDTów trzeba potem na taśmę zgrywać osobno.

ZbyniuR

  • *****
  • Wiadomości: 3333
  • Miejsce pobytu:
    Carlisle w UK
  • CPC AGA PSX
Odp: BIN > CDT
« Odpowiedź #7 dnia: 2014.12.22, 17:50:03 »
Z tego co się przyjrzałem Great Giana Sister na DSK to wczytuje pliki w odwrotnej kolejności niż numer w nazwie plików, a loader w .BAS jest w ogóle zbędny. Czyli na taśmie muszą być nagrane w kolejności GIANA4 / GIANA3 / GIANA2
- Jeśli masz w domu światło i wodę, tzn. że masz światłowód. ;)

ikci

  • *****
  • Wiadomości: 1216
  • Miejsce pobytu:
    Kraków
Odp: BIN > CDT
« Odpowiedź #8 dnia: 2014.12.22, 23:16:56 »
Zbyniu, absolutnie nie chcę Ci wchodzić w paradę bo jesteś dla mnie Amstradowym Guru, ale czy w tym przypadku jesteś pewien tego co piszesz?

Loader w BASICu nie jest niczym zabezpieczony więc bez trudu go załadowałem i wylistowałem.



Widać w loaderze, że wczytują się bloki po kolei a później jest jeszcze jakiś programik w kodzie maszynowym (40 bajtów) wczytujacy się od adresu 200.

Oczywiście możemy pisać o dwóch różnych wersjach The Great Giana Sisters - z tym, że tutaj akurat nie mamy większego wyboru ponieważ ta gra nie została w pełni dokończona w wersji na CPC i nie ma zbyt wiele dostępnych wersji w internecie.

Druga sprawa - gra jest 128K więc nie uruchomimy tego na CPC464 ze standardowym RAMem.

Próbowałem przegrać grę z DSK na plik taśmowy przy pomocy Discology v.7.3 (F) który działa bez problemu w WinAPE.
Udało się bez problemu tzn powstał plik WAV o długości  18Mb, ale udało się teoretycznie bo niestety nie działa - tzn czyta się do końca
i nie startuje gra.
Plik WAV można sciągnąć tutaj: http://www.marcin-marcin-marcin.com/giana.zip       po skompresowaniu ZIPem ma tylko 360Kb

Także próbowałem programiku 2CDT - który tworzy obrazy taśm z plików Amstradowskich.

Najpierw otworzyłem plik DSK w programie CPCDiskXP



Przy okazji możemy zobaczyć pod jaki adres wczytują się bloki BIN

Ale ja wykorzystałem CPCDiskXP do wyekstraktowania (wydzielenia) plików BAS oraz BIN i zapisałem je w katalogu
z programem 2CDT.
Natępnie napisąłem krótki plik wsadowy BAT z taką zawartyością:

2cdt -n -t 0 -r giana.bas giana.bas giana.cdt      [tworzy nowy plik CDT o nazwie giana.cdt i wprowadza do niego plik giana.bas]
2cdt -t 0 -r giana1.bin giana1.bin giana.cdt    [do istniejącego pliku giana.cdt dodaje plik giana1.bin, parametr -t 0 podaje że ma być "PURE DATA" a nie turbo]
2cdt -t 0 -r giana2.bin giana2.bin giana.cdt
2cdt -t 0 -r giana3.bin giana3.bin giana.cdt
2cdt -t 0 -r giana4.bin giana4.bin giana.cdt


Powstał plik giana.cdt  ale ku mojemu zdumieniu ten plik składa się z 86 (!) bloków danych. Czyta się do końca i nie uruchamia się gra.
WYMIĘKAM.

W załączniku plik pack.zip zawierający program 2CDT oraz ten wygenerowany plik giana.cdt, który niestety nie działa...



 
ZX Spectrum 48K, ZX Spectrum +, ZX Spectrum 128K, ZX Spectrum +2, ZX Spectrum +2B, ZX Spectrum +3, TIMEX TC2048, UNIPOLBRIT Komputer 2068, Didaktik Gama 80kB, 
Amstrad/Schneider CPC6128, Schneider CPC464, Commodore C64, Atari 800XL, 65XE 130XE, A500+, A600, A1200, ATARI 1040 STF

ikci

  • *****
  • Wiadomości: 1216
  • Miejsce pobytu:
    Kraków
Odp: BIN > CDT
« Odpowiedź #9 dnia: 2014.12.23, 13:32:56 »
Ech.. już mi się nie udało edytować mojego poprzedniego postu.

Dla ciekawych jak w WinAPE kopiować pliki DSK --> taśma  przy pomocy DISCOLOGY - polecam filmik na YouTube:

http://youtu.be/r1UTF_glmtk
ZX Spectrum 48K, ZX Spectrum +, ZX Spectrum 128K, ZX Spectrum +2, ZX Spectrum +2B, ZX Spectrum +3, TIMEX TC2048, UNIPOLBRIT Komputer 2068, Didaktik Gama 80kB, 
Amstrad/Schneider CPC6128, Schneider CPC464, Commodore C64, Atari 800XL, 65XE 130XE, A500+, A600, A1200, ATARI 1040 STF

ZbyniuR

  • *****
  • Wiadomości: 3333
  • Miejsce pobytu:
    Carlisle w UK
  • CPC AGA PSX
Odp: BIN > CDT
« Odpowiedź #10 dnia: 2014.12.24, 01:55:32 »
Po 1sze Gianę na jakiej obczajałem pliki wziąłem z 1go lepszego linka jaki mi polecił Google, i dołączam ją na końcu postu. Nie mam pojęcia czemu nie pomyślałem że mogą w necie krążyć i inne jej wersje.
Nie wiedziałem że to gra tylko na 128, (dziwne bo przecież nie jest to wypasiona gra). Sprawdziłem to na emulatorze. Nie wiem jak twoja wersja ale ta którą mam działa tylko na 6128 lub na 664 z dodatkowym min 64K. Na 464 nie działa nawet z dodatkowym RAMem. Jeśli w twojej wersji jest podobnie to to jest raczej koniec tematu, bo nie widzę sensu by w takiej sytuacji przerabiać to na taśmę. Choć ciekawe jest to że twój loader ma w nazwach plików po LOAD wykrzyknik co nie jest częścią nazwy pliku, a poleceniem by w przypadku wczytywania pliku z taśmy nie wyświetlał informacji o wczytywanych w danej chwili blokach ani o ewentualnych błędach odczytu.

Z tego co wiem to ta gra jest klonem Nintendoskiego Mario Bros, i jedynie prawa do nazwy skłoniły wydawców, do zmiany brata na siostrę. Ale wersja na CPC jest dość niemrawa w porównaniu z wersją na C64. Myślę że przyjemniej będzie się w to grało na innej platformie, lub sięgnąć po inne tytuły jak ktoś koniecznie chce grać na CPC. :)

Jak widać w mojej wersji loader nie ma żadnego POKE ani INKa, ale wydaje mi się że tam jest jakaś ukryta linijka, bo z widocznej części oraz faktu że adres startowy wpisany w pliku 4 jest taki sam jak przy CALL w BAS powinno się uruchamiać przez RUN"GIANA4  a jednak to nie działa. Nie ma też pliku GIANA1 który u ciebie jest najwyraźniej nieskompresowanym obrazkiem.

Nie wiem jakim cudem tam wyszło 86 bloków które przecież powinny mieć po 2KB. Chyba nagrał je w jakimś niestandardowym rozmiarze i może przez to się nie wczytuje. To że piszczy nie znaczy że się wczytuje zwłaszcza że wykrzykniki sprawiają że nie wyświetla informacji o błędach. Nie wiem też czemu CPCDiskXP pokazuje Size raz 189 a dalej 254, choć obie są większe od standardowej. Najwyraźniej żadne ze mnie Guru. hahaha :D  Czasem jak czytam swoje wpisy sprzed roku czy 2óch to nie wiem czemu takie głupoty pisałem. Na szczęście tak mało tu ludzi zagląda, że moja ignorancja i wodolejstwo nie zawsze wychodzi na jaw. ;)

Oki mniejsza. :) - Ja zdaję sobie sprawę z tego że moje odpowiedzi na to jak przenosić pliki DSK z neta na prawdziwego 464 bez stacji - nie są satysfakcjonujące dla pytających. Większość aktywnych na forach (mam tu raczej na myśli zagraniczne), Amstradowców to posiadacze 6128 lub wypasionych rozbudowanych wersji 464. Na FB jest spora grupa posiadaczy gołych 464 zbierających oryginalne kasety i tylko takie uruchamianie ich interesuje. Ciszej siedzą emulatorowcy (a zwykle używają wirtualnych stacji), natomiast ci co chcą uruchamiać pliki z DSK (bo takie najłatwiej znaleźć w necie), na prawdziwych gołych 464 (bo takie najtaniej kupić), przez wszystkich powyższych są traktowani po macoszemu. Dlatego zaintrygowała mnie informacja o tym że istnieje wersja Discology która działa na emulatorze. (Czytałem kiedyś wywiad z jego twórcą, który wspomniał że emulatory jeszcze nie emulują pewnych niuansów zachowania stacji przez co ten program się wiesza, ale że nie bardzo mu się chce to modyfikować). Czyżby jednak ktoś to poprawił?  A tam są fajne opcje do kopiowania DYSK<>TAŚMA. ;)  Ale że już jestem w świątecznym (czyt. leniwym do kwadratu) nastroju, to dziś tego nie obczaję, ale dzięki Ikci za info. ;)
- Jeśli masz w domu światło i wodę, tzn. że masz światłowód. ;)