CAS
From Atariki
Wersja z dnia 12:13, 5 sty 2024 Mono (Dyskusja | wkład) (→Odnośniki zewnętrzne - link do a8cas-tools) ← Previous diff |
Aktualna wersja Seban (Dyskusja | wkład) (strona E.R.Schreursa już nie istnieje, zamiana odnośnika na ten z WayBack Machine.) |
||
Linia 31: | Linia 31: | ||
Blok typu "FUJI" występuje tylko raz, na początku pliku. Pole ''aux'' jest ignorowane, natomiast ''data'' zawiera ciąg ASCII będący (czytelnym dla użytkownika) opisem pliku. | Blok typu "FUJI" występuje tylko raz, na początku pliku. Pole ''aux'' jest ignorowane, natomiast ''data'' zawiera ciąg ASCII będący (czytelnym dla użytkownika) opisem pliku. | ||
====baud==== | ====baud==== | ||
- | Blok typu "baud" określa częstotliwość (w bodach) następujących po nim bloków typu "data" (aż do następneg bloku "baud"). Blok ten ma długość ''length'' równą 0, a pole ''aux'' zawiera częstotliwość. Standardowa prędkość transmisji wynosi 600 bodów i taka też wartość jest domyślnie przyjmowana przez program CAS2WAV dla bloków "data", których nie poprzedza blok "baud". | + | Blok typu "baud" określa częstotliwość (w bodach) następujących po nim bloków typu "data" (aż do następnego bloku "baud"). Blok ten ma długość ''length'' równą 0, a pole ''aux'' zawiera częstotliwość. Standardowa prędkość transmisji wynosi 600 bodów i taka też wartość jest domyślnie przyjmowana przez program CAS2WAV dla bloków "data", których nie poprzedza blok "baud". |
+ | |||
====data==== | ====data==== | ||
Blok typu "data" zawiera właściwe dane - pojedynczy rekord pliku taśmowego. Pole ''aux'' zawiera długość w milisekundach przerwy (IRG - Inter Record Gap) znajdującej się '''przed''' rekordem, a ''data'' zawiera kolejne bajty znajdujące się w rekordzie. | Blok typu "data" zawiera właściwe dane - pojedynczy rekord pliku taśmowego. Pole ''aux'' zawiera długość w milisekundach przerwy (IRG - Inter Record Gap) znajdującej się '''przed''' rekordem, a ''data'' zawiera kolejne bajty znajdujące się w rekordzie. | ||
Linia 45: | Linia 46: | ||
==Odnośniki zewnętrzne== | ==Odnośniki zewnętrzne== | ||
- | * [http://home.planet.nl/~ernest/atarixle.html Strona domowa Ernesta R. Schreursa] - m. in. programy WAV2CAS, CAS2WAV | + | * [https://web.archive.org/web/20230101130543/http://home.planet.nl/~ernest/atarixle.html Strona domowa Ernesta R. Schreursa] - m. in. programy WAV2CAS, CAS2WAV |
* [https://a8cas.sourceforge.net/format-cas.html Strona programu a8cas-tools] napisanego przez [[Krótki]]ego z opisem rozszerzonego protokołu | * [https://a8cas.sourceforge.net/format-cas.html Strona programu a8cas-tools] napisanego przez [[Krótki]]ego z opisem rozszerzonego protokołu | ||
Aktualna wersja
Plik zawierający obraz taśmy z Atari. Przygotowywany jest przy pomocy programu WAV2CAS - zamiana modulacji częstotliwości WAV na postać binarną.
Analogicznie, program CAS2WAV zamienia pliki CAS na format WAV, który następnie można zapisać na kasetę.
Format CAS został zaprojektowany przez Ernesta R. Schreursa, autora pakietu WAV2CAS.
Spis treści |
Opis formatu CAS
Plik CAS składa się z bloków, z których każdy ma nagłówek długości 8 bajtów. Każdy blok ma następującą postać:
Offset | Rozmiar (bajty) | Nazwa | Znaczenie |
---|---|---|---|
0 | 4 | type | Typ bloku - 4-znakowy napis. |
4 | 2 | length | długość bloku (najpierw LSB; długość nagłówka nie wliczona) |
6 | 2 | aux | zależne od typu bloku |
8 | length | data | dane (znaczenie zależne od typu bloku) |
Zatem cały blok ma długość length+8.
Liczby w nagłówku są zapisane w formacie little-endian.
Plik CAS ma następującą strukturę: najpierw blok typu "FUJI", a następnie dowolna kombinacja bloków typu "baud" i "data".
Typy bloków
Nazwa typu bloku jest jednocześnie wartością pola type nagłówka.
FUJI
Blok typu "FUJI" występuje tylko raz, na początku pliku. Pole aux jest ignorowane, natomiast data zawiera ciąg ASCII będący (czytelnym dla użytkownika) opisem pliku.
baud
Blok typu "baud" określa częstotliwość (w bodach) następujących po nim bloków typu "data" (aż do następnego bloku "baud"). Blok ten ma długość length równą 0, a pole aux zawiera częstotliwość. Standardowa prędkość transmisji wynosi 600 bodów i taka też wartość jest domyślnie przyjmowana przez program CAS2WAV dla bloków "data", których nie poprzedza blok "baud".
data
Blok typu "data" zawiera właściwe dane - pojedynczy rekord pliku taśmowego. Pole aux zawiera długość w milisekundach przerwy (IRG - Inter Record Gap) znajdującej się przed rekordem, a data zawiera kolejne bajty znajdujące się w rekordzie.
W bloku typu "data" można przechować wyłącznie standardowe rekordy SIO (aczkolwiek mogą mieć dowolną długość, nie tylko standardowe 132 bajty). W standardowym rekordzie SIO każdy bajt jest zakodowany na 10 bitach: bit startu = 0, 8 bitów danych (poczynając od najmniej znaczącego bitu), bit stopu = 1. Nie jest możliwe zapisanie rekordu, w środku którego zmienia się prędkość odczytu, ani żadnych innych nietypowych danych. Format CAS nie pozwala zatem zarchiwizować taśm zabezpieczonych przed kopiowaniem.
Użyteczność
Oprócz programów WAV2CAS i CAS2WAV, format CAS jest także obsługiwany przez emulator Atari800 i pochodne, aczkolwiek wszystkie rekordy są tam wczytywane z prędkością 600 bodów (stan z wersji 2.0.3). Plik CAS można także wysłać bespośrednio do Atari za pomocą kabla SIO2PC i programu CAS2SIO/cassio, a także za pomocą SIO2USB.
Pliki CAS są też dobrze wspierane przez AtariSIO i APE.
AtariSIO poczynając od deweloperskiego snapshotu z dnia 13.01.2010 obsługuje długie bloki oraz nieoficjalne rozszerzenie formatu CAS o blok typu 'fsk ' (opisane na stronach projektu A8CAS). Dzięki temu możliwe jest wczytywanie przez kabel SIO2PC kaset z zabezpieczeniami, zarchiwizowanych w formacie CAS.
Odnośniki zewnętrzne
- Strona domowa Ernesta R. Schreursa - m. in. programy WAV2CAS, CAS2WAV
- Strona programu a8cas-tools napisanego przez Krótkiego z opisem rozszerzonego protokołu