Na jednym ze Spectrumowych wątków jest temat o przerabianiu gier z taśmowej na dyskietkową. To mnie skłoniło by naskrobać coś o tym jak to jest w CPC. Najpierw kilka podstawowych informacji.

Na dyskietce CPC stosuje się krótkie nazwy jak w MS-DOSie czyli 8 znaków + kropka + 3 znaki. System pozwala używać w nazwach plików jedynie duże litery, cyfry oraz znaki #$&@`'^~{} no i jedną kropkę we właściwym miejscu. Spacje mogą być pod koniec tych ośmiu lub pod koniec tych trzech znaków, i nie trzeba ich wtedy podawać ani przy zapisie ani przy wczytywaniu pliku. A przy uruchomieniu trzeba podać nazwę co do znaczka. No chyba że końcówka składa się z trzech spacji, .BAS lub .BIN
Natomiast na kasecie można nadawać plikom nazwy o długości do 256 znaków, z dowolnych znaków ASCII od kodu 1 do 255 z wyjątkiem cudzysłowu i wykrzyknika, w tym także zaczynać nazwę od spacji i używać wielu kropek, albo nagrać plik bez nazwy. Przy odczycie w ogóle nie trzeba podawać nazwy, wczyta wtedy pierwszy Basicowy lub Binarny plik jaki znajdzie na taśmie. A gdy nazwę podamy, to pominie inne pliki aż trafi na właściwy.
Co do loaderów. Starsze gry zwykle mają go w Basicu. Bywa że zabezpieczony przed wylistowaniem, ale jak to obejść, to już osobny temat.

Dla przykładu.:
10 MEMORY &5FFF:LOAD"NAZWA.SCR",&6000:CALL &6000 ' obrazek *1
20 LOAD"NAZWA1.BIN",45678 ' *2
20 LOAD"NAZWA2.BIN":CALL 45678 ' *3
*1, jeśli nie jest skompresowany to ma 17KB i od razu wczytuje się pod &C000 i nie trzeba go wywoływać rozkazem CALL. 17KB a nie 16 dlatego że każdy plik w CPC ma nagłówek o długości 128 bajtów co system zaokrągla na dysku w górę do pełnego KB. Nagłówek zawiera w sobie adres spod jakiego został zapisany (np bejziki mają zawsze &0170), potem adres startowy (jeśli jest równy zero to uruchomienie takiego pliku rozkazem RUN" zresetuje kompa), oraz trzecią liczbę długość pliku co do bajta. Do tego jakieś sumy kontrolne i fragment końcówki pliku. (nie wiem po co)

*2, nie zawsze jest podany adres pod jaki ma się wczytać, wtedy wczyta go pod adres zawarty w nagłówku pliku. w zasadzie plik binarny z autostartem innym niż 0 zwykle daje się uruchomić bez bajzikowego loadera, choć ten bywa dodany by po wczytaniu binarki wpisać w nim jakieś nieśmiertelne POKEi.
*3 czasem jest RUN" zamiast LOAD", czasem są jakieś POKEi przed komendą CALL
Jak widzimy taki prosty loader z krótkimi nazwami, to się cieszymy bo nic nie trzeba w nim zmieniać. A w przypadku przegrywania z dysku na taśmę wiadomo w jakiej kolejności nagrać pliki.

Gorzej gdy bejzikowy loader nie wczytuje wszystkich plików z których gra się składa, a ich nazwy nie podpowiadają w jakiej kolejności trzeba je nagrać na kasecie. Można wtedy pozmieniać ich nazwy w nadziei że próba uruchomienia wywali na ekran komunikat z nazwą brakującego pliku, i po kolei przywracamy im początkowe nazwy dedukując w jakiej kolejności powinny być na taśmie.
Tymczasem pliki w grach na kasetach często mają dłuższe nazwy albo w loaderze nie są one podane. Trzeba je wtedy ponadawać i stosownie zmodyfikować basic, podając takie same jak im nadaliśmy. Raz się tylko spotkałem z grą która w binarce miała dłuuugą nazwę kolejnego pliku i choć po przegraniu na dysk zmieniłem tą nazwę na krótszą edytorem dyskowym a stosowny plik był też na dysku to uparcie domagał się by plik się wczytał z taśmy mimo że przyjął do wiadomości nową nazwę. wrrr
Takie metody działają na gry które zwykle mają 30 do 70KB i dające się zlokalizować pliki (krótsze gry zwykle są w jednym pliku), czyli na dysku informacje o położeniu każdego z nich są na Sektorach C1 do C4 na zerowej ścieżce. Choć bywa że część plików jest ukryta, co można zobaczyć i zmodyfikować lepszymi kopierami lub dowolnym edytorem dyskowym, ale to już wyjaśnię innym razem. A w przypadku taśmy są nagrane w standardowych blokach o długości maks 2KB. Innych kopiery nie łykną. A obszerniejsze gry takie na stronę dyskietki lub większe, czyli ponad 180KB, które doczytują sobie dalsze poziomy, łatwiej znaleźć na interesującym nas nośniku niż przerobić. (np. Lemmings) Natomiast te co są tak obszerne, a przy tym doczytują sobie wybraną przez nas postać, autko, poziom czy trasę, nie mają wersji kasetowych. (np. North&South)
No tak, nie wspomniałem jakim kopierem to przegrywać. Polecałem tu kiedyś Discology, ale on działa tylko na 6128 i to tylko na prawdziwym a nie emulowanym. A szczerze jakoś nie zadałem sobie trudu by znaleźć coś co tych wad nie ma. Z wyjątkiem RSXów jakie były na dsk jaki dodałem tu parę tygodni temu. Jednak trzeba tam wpisywać rozkazy na piechotę, można kopiować maks 63KB bo tyle się mieści w Ramdysku i nie odsługują taśmy. Na swoją obronę powiem że nic lepszego w ostatnich miesiącach potrzebne mi nie było, a wygodna nakładka na te rozkazy jest na liście moich rzeczy do zrobienia. Choć idzie mi jak po grudzie, bo mam zbyt liczne zainteresowania poza CPC.
Parę dni temu wklepałem z Bajtka (11-91) program do konwersji plików z Art Studio do wygodnego samo-rozkompresowującego się CSI, który wczytuje się tak jak w cytowanym dziś loaderze. A można nim pokompresować sobie obrazki startowe w starych grach zmniejszając ich objętość nawet o 10KB.

Oczywiście przerobiłem go po swojemu.

Ale trzeba by jeszcze parę pchełek dodać by dsk nie był taki pusty zanim go tutaj wstawię.
